VTemplate模版引擎的使用--进阶篇
2010-09-30 20:52:25 来源:WEB开发网核心提示: 上面两块的VT模版代码看起来很相似,但是经解析后A中的var1与inc这个<vt:template>模版块下的变量var1分别独立存在,VTemplate模版引擎的使用--进阶篇(2),互不影响!而B中的变量var1与inc这个<vt:include>的变量var1相等,
上面两块的VT模版代码看起来很相似,但是经解析后A中的var1与inc这个<vt:template>模版块下的变量var1分别独立存在,互不影响!而B中的变量var1与inc这个<vt:include>的变量var1相等,都是引用同一个变量(其它变量类似)。
现假如A、B两块的VT模版代码都通过过下面的程序来处理:
this.Document.Variables.SetValue("var1", 1);
this.Document.Variables.SetValue("names", new string[] { "张三", "李四", "王五" });
也即是只对外部变量var1、names赋值,最终经模版引擎解析输出后,它们的输出结果如下:
从图可知,<vt:template>包含的没有数据输出,而用<vt:include>包含则有数据输出并且和外部数据一模一样!所以可把<vt:template>标签看成是程序语言里的类,它能拥有它自己的变量,改变外部变量的值不会影响到其内部的同名变量,并且外部标签可通过其id获取其内部变量!
具体的示例代码,请参考:http://net-vtemplate.googlecode.com/svn/src/VTemplate.WebTester/template_include_test.ashx.cs
2、使用变量表达式
变量表达式可用在标签属性,也可用在变量元素中。它的作用就是用于获取变量中某个字段、属性、函数方法或索引的结果值。比如上例中的#.var1就是说明获取var1变量的值,也即是数值“1”。
对于变量值类型中真实存在的字段、属性或函数方法,VT模版引擎将通过反射获取其结果值,例如以下VT模版代码:
更多精彩
赞助商链接