1,基于.NET的免费开源的模板引擎---VTemplate

2021-03-04 20:28

阅读:473

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
file 模板块数据文件的路径地址,可以绝对或相对地址
charset 模板块数据文件的编码,如果未定义则如果存在父级模板块的话则采用父级模板块的编码,否则采用系统默认编码
render 定义用于处理此模块数据的实例,可以为字符串常量或变量表达式(以$字符开头),格式:"类实例,程序集"。如果已定义此属性但未定义rendermethod属性,则类实例必须已实现ITemplateRender接口。(可不定义)
rendermethod 定义用于处理此模块数据的类实例的方法,可以为字符串常量或变量表达式(以$字符开头),此方法必须已标记TemplateRenderMethodAttribute特性。(可不定义)

 

6.2、文件包含标签元素

此标签用于包含外部文件。

标签样例:

…………………………

或自闭合的样例:

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
file 模板块数据文件的路径地址,可以绝对或相对地址
charset 模板块数据文件的编码,如果未定义此属性则如果存在父级模板块的话则采用父级模板块的编码,否则采用系统默认编码

 

6.3、循环标签元素

此标签用于定义数据循环,类似于程序语言中的for循环。

标签样例:

…………………………

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
from 循环起始值,可为一个数值常量(如:1)或变量表达式(必须以$字符开头,如:$i)
to 循环结束值,可为一个数值常量(如:1)或变量表达式(必须以$字符开头,如:$i)
step 循环值的步值,可为一个数值常量(如:1)或变量表达式(必须以$字符开头,如:$i),如果未定义此属性,则默认为1
index 定义存储循环索引值的变量标识,注:此索引值是一个LoopIndex实例。(可不定义)

 

 

6.4、集合数据循环标签元素

此标签用于定义处理集合数据的循环,类似于程序语言中的foreach循环。

标签样例:

…………………………

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
from 变量表达式
item 定义存储当前循环值的变量标识。(可不定义)
index 定义存储循环索引值的变量标识,注:此索引值是一个LoopIndex实例。(可不定义)
groupsize

设置拆分数据集合时的组大小,可以为数值常量(如:2)或变量表达式(以$字符开头)。(可不定义)
如果定义此属性值,并且值大于1,则模板引擎在解析此foreach标签时,先将from属性定义的变量表达式的结果值折分成一组组集合数据再进行解析。

例如:from的变量表达式的结果值原是“1,2,3,4,5,6”数组集合,如果groupsize设置为2,则将会拆成"[1,2],[3,4],[5,6]"的数据集合,再用此新的数据集合进行循环解析。

 

6.5、空集合数据循环标签元素

此标签用于定义当集合数据为空(数量为0)时显示处理的节点。此标签必须在标签中定义,并且此标签为单节点标签(即不需要配对的结束标签)。

标签样例:

{$:i}、我叫{$:user.name},今年{$:user.age}岁

没有任何用户

注:当users集合数据为空时则显示"没有任何用户"字样,否则不显示此字样。

 

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)

 

6.6、条件判断标签元素

此标签用于定义数据条件判断,类似于程序语言中的if语句。

标签样例:

">…………………………

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 用于判断条件的变量表达式
value 用于比较条件的值,可为数值/字符串常量或变量表达式(必须以$字符开头,如:$i)
注:此属性可以多次定义,当var变量表达式中的值和其中一个value属性值匹配时即符合条件。
compare

比较的方式,可以为字符串常量或变量表达式(以$字符开头),值的定义范围:
> : 大于
>= : 大于等于
!=或 : 不等于
= 或== : 相等

^= : 判断是否以某些值开始(字符比较)

$= : 判断是否以某些值结束(字符比较)

*= : 判断是否包含有某些值(字符比较)
如果未定义此属性则表示采用“相等”比较。

expression 定义需要简单运算的表达式,可以为字符串常量或变量表达式(以$字符开头),表达式中支持 “{0}”标记,用于代替var属性的变量表达式的值。(可不定义)

 

6.7、条件分支判断标签元素

此标签用于定义数据条件的分支判断。类似于程序语言中的else if语句。此标签可以同时支付一个或多个。此标签只能在标签中定义,并且此标签为单节点标签(即不需要配对的结束标签)。

标签样例:

20岁用户

30岁用户

40岁用户

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 用于判断条件的变量表达式。如果未定义此属性,则为标签所在的标签中的var属性值
value 用于比较条件的值,可为数值/字符串常量或变量表达式(必须以$字符开头,如:$i)
注:此属性可以多次定义,当var变量表达式中的值和其中一个value属性值匹配时即符合条件。
compare

比较的方式,可以为字符串常量或变量表达式(以$字符开头),值的定义范围:
> : 大于
>= : 大于等于
!=或 : 不等于
= 或== : 相等

^= : 判断是否以某些值开始(字符比较)

$= : 判断是否以某些值结束(字符比较)

*= : 判断是否包含有某些值(字符比较)
如果未定义此属性则表示采用“相等”比较。

expression 定义需要简单运算的表达式,可以为字符串常量或变量表达式(以$字符开头),表达式中支持 “{0}”标记,用于代替var属性的变量表达式的值。(可不定义)

 

6.8、条件分支判断标签元素

此标签用于定义数据条件的分支判断,即当标签中的所有条件分支都条件不成立时用于显示处理的节点。类似于程序语言中的else语句。此标签只能在标签中定义,并且此标签为单节点标签(即不需要配对的结束标签)。

标签样例:

20岁用户

30岁用户

未知岁数

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)

 

6.9、表达式标签元素

此标签用于对变量表达式进行简单数据运算。

标签样例:

 

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 存储表达式运算结果的变量标识
args 参与表达式计算的数值或变量表达式(以$字符开头)。(可不定义)
注:此属性可以多次定义,在表达式中分别以{0},{1}表示各个args属性的变量表达式值
expression 要进行运算的表达式,可以为字符串常量或变量表达式(以$字符开头)。
output 是否在解析标签时输出标签的结果值true/false,如果定义此属性且值设为true,则可以不定义var属性(即不存储结果值),默认不输出标签结果值。(可不定义)

 

6.10、服务器数据标签元素

此标签用于获取服务器的部分数据,如Session、Application、DateTime等等。

标签样例:

 

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 存储服务器数据的变量标识
type

要获取服务器数据的类型,可以为字符串常量或变量表达式(以$字符开头)。值的定义:

类型 说明
Time

获取服务器时间

item 属性值可定义为以下值:

today = 获取今天的日期(不带时间部分)

yesterday = 获取昨天的日期(不带时间部分)

tomorrow = 获取明天的日期(不带时间部分)

其它值 = 获取服务器现在的时间

Random

获取一个0---1之间的双精度随机数

item 属性不需要定义

Application

获取服务器当前上下文的HttpApplicationState对象.如果模板引擎不在Web程序上使用则无效

item 属性值则为Application集合的键值key

Session

获取服务器当前上下文的HttpSessionState对象.如果模板引擎不在Web程序上使用则无效

item 属性值则为Session集合的键值key

Cache

获取服务器当前上下文的缓存对象

item 属性值则为Cache集合的键值key

QueryString

获取服务器当前上下文的Request.QueryString数据集合.如果模板引擎不在Web程序上使用则无效

item 属性值则为Request.QueryString集合的键值key

Form 获取服务器当前上下文的Request.Form数据集合.如果模板引擎不在Web程序上使用则无效

item 属性值则为Request.Form集合的键值key

Cookie

获取服务器当前上下文的Request.Cookie数据集合.如果模板引擎不在Web程序上使用则无效 

item 属性值则为Request.Cookie集合的键值key,如果item值包含“.”号,则表示属于某个Cookie下的某个Value值,例如:

item="user"则表示是Request.Cookie["user"]值;
item="user.name"则表示是Requst.Cookie["user"]["name"]值

ServerVariables 获取服务器当前上下文的Request.ServerVariables数据集合.如果模板引擎不在Web程序上使用则无效

item 属性值则为Request.ServerVariables集合的键值key

RequestParams 获取服务器当前上下文的Request.Params数据集合.如果模板引擎不在Web程序上使用则无效

item 属性值则为Request.Params集合的键值key

Request 获取服务器当前上下文的HttpRequest对象.如果模板引擎不在Web程序上使用则无效

item 属性不需要定义

Environment 获取服务器系统平台的环境参数

item 属性不需要定义

AppSetting 获取当前应用程序配置文件里的AppSettings配置参数

item 属性值则为ConfigurationManager.AppSettings集合的键值key

item 要获取的数据项,此属性值根据type值而具有不同的意义,具体的看上表,可以为字符串常量或变量表达式(以$字符开头)。
output 是否在解析标签时输出标签的结果值true/false,如果定义此属性且值设为true,则可以不定义var属性(即不存储结果值),默认不输出标签结果值。(可不定义)

 

  

6.11、数据读取标签元素

此标签用于直接从数据源读取数据。
注意:此标签必须采用TagOpenMode=Full的TemplateDocumentConfig时才允许使用。

标签样例:

  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 存储返回数据的变量标识
connection

数据源名称.此名称必须已在项目配置文件(如:web.config)里的connectionStrings节点里定义,可以为字符串常量或变量表达式(以$字符开头).

commandtext 数据查询语句(SQL语句) ,可以为字符串常量或变量表达式(以$字符开头)
commandtype

数据查询语句的类型。值范围对应于System.Data.CommandType枚举,可以为字符串常量(如:Text)或变量表达式(以$字符开头)。(可不定义)

注:当未定义时默认为CommandType.CommandText值

rowindex 要获取行的行号,可以为数值常量(如:1)或变量表达式(以$字符开头)(可不定义)
注:当此值不定义时将返回一个表结构(DataTable),而如果定义此值,则将返回对应行的数据行(DataRow),如果行不存在则返回null
parameters

数据查询语句中的附加参数的数值/字符串常量或变量表达式(以$字符开头)(可不定义)
注:此属性可以多次定义,在数据查询语句中分别以@p0,@p1表示各个parameters属性的变量表达式值

例子:

ParameterFormat

数据查询参数的格式,可以为字符串常量或变量表达式(以$字符开头),默认为"@p{0}",其中"{0}"是占位符,表示各查询参数的索引数字(也即是parameters属性的先后顺序)。(可不定义)

注:如果定义此属性则commandtext里的语句也必须相应更改。

例子:

 

 

 

 

6.12、函数调用标签元素

此标签用于直接调用函数。标签样例:


  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 存储函数返回值的变量标识
method

函数方法名,可以为字符串常量或变量表达式(以$字符开头)

type 包含静态函数方法的类型或包含函数方法的类型,可以为字符串常量或变量表达式(必须以$字符开头,如:$i) (可不定义)
注:当未定义此属性时,将从模板块里获取注册的“用户自定义函数”,函数的原型参考UserDefinedFunction委托。
args

参与函数运算的参数,可为数值/字符串常量或变量表达式(必须以$字符开头,如:$i) (可不定义)
注:此属性可以多次定义,但其定义顺序必须与函数方法的参数顺序一致。

output 是否在解析标签时输出标签的结果值true/false,如果定义此属性且值设为true,则可以不定义var属性(即不存储结果值),默认不输出标签结果值。(可不定义)

 

 

6.13、获取字段或属性值标签元素

此标签用于直接获取字段或属性值。标签样例:


  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 存储字段或属性值的变量标识
field

字段或属性名,可以为字符串常量或变量表达式(以$字符开头).

type 包含静态字段或属性的类型或包含字段或属性的类型,可以为字符串常量或变量表达式(必须以$字符开头,如:$i)
output 是否在解析标签时输出标签的结果值true/false,如果定义此属性且值设为true,则可以不定义var属性(即不存储结果值),默认不输出标签结果值。(可不定义)

 

 

6.14、变量赋值标签元素

此标签用于向模板变量赋值。标签样例:


  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 需要赋值的变量标识
value

要赋于变量的值,可为数值/字符串常量或变量表达式(必须以$字符开头,如:$i)
注:此属性可以多次定义,但如果多次定义则必须定义format属性。

format 用于格式化变量值的格式,可以为字符串常量或变量表达式(以$字符开头)。(可不定义)
注:在格式表达式中分别以{0},{1}表示各个value属性的变量值
output 是否在解析标签时输出标签的结果值true/false,如果定义此属性且值设为true,则可以不定义var属性(即不存储结果值),默认不输出标签结果值。(可不定义)

 

 

6.15、数据输出标签元素

此标签可输出某个标签或文件的数据。标签样例:


  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
tagid 需要输出数据的其它标签元素Id,可以为字符串常量或变量表达式(以$字符开头)。(可不定义)
注:如果未定义此属性则需要定义file属性
file

需要输出数据的文件,可以为绝对路径或相对路径,可以为字符串常量或变量表达式(以$字符开头)。(可不定义)

注:如果未定义此属性则需要定义tagid属性

charset 读取文件时使用的编码,可以为字符串常量或变量表达式(以$字符开头)。(可不定义)

 

 

 

6.16、类型导入标签元素

此标签可导入某个类型。标签样例:


  
标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。(可不定义)
name 标签元素的名称。(可不定义)
var 用于保存类型的变量标识
type

需要导入的类型,可以为字符串常量或变量表达式(以$字符开头)

assembly 需要导入的类型所在的程序集,可以为字符串常量或变量表达式(以$字符开头),值可以定义为某个程序集文件或程序集名称。(可不定义)

 

 

 

 

 

 

6.17、数据面板标签元素

此标签可方便用于实现“母版页”(MasterPage)的功能。标签样例:

定义容器面板:

 

定义内容数据面板,此内容标签里的数据将在对应的容器面板里输出。

这是头部内容

 >

 

上面定义的标签的数据将会在id="header"里的panel标签里输出。

标签中已定义的属性列表:

名称 说明
id 标签元素的Id,建议唯一但不强制。如果定义了此id则表示此面板标签可以做为一个容器面板使用(可不定义)
name 标签元素的名称。(可不定义)
container 定义输出容器面板的id。如果定义此属性则表示此面板数据只在容器面板里输出。(可不定义)

 

注意:此标签必须定义id或者container之一属性,或者全都定义

 

 

 


评论


亲,登录后才可以留言!