动态表达式的目的是在解析时设置控件属性,而不必依赖于数据绑定机制。为了了解动态表达式的要旨,回想使用#表达式时生成的代码。如果使用一个#表达式,则在DataBinding事件处理程序内完成属性赋值。如果使用$表达式,则属性赋值在生成该控件的方法内完成。

所有的动态表达式都是ExpressionBuider公共类的实例。该类定义了一个表达式解析引擎,并返回一棵代表表达式的CodeDom树。

要以声明方式把一个控件属性绑定到该表达式的值,请遵循如下模式:

<%$ Prefix:Expression %>

$ConnectionStrings表达式生成器,可以访问配置文件中的ConnectionStrings配置节的属性,如

<%$ ConnectionString:LocalNWind.ConnectionString %>

$AppSettings表达式生成器<%$ AppSettings:KeyName %>

$Resources表达式生成器<%$ Resources:MyResources,AppTitle %>

编写一个自定义的表达式生成器

要创建一个自定义的表达式,有两个任务要执行。首先,创建一个继承自ExpressionBuilder的类,并在配置文件的<compilation>节中注册它。具体的可以参看MSDN中关于ExpressionBuilder的说明!

实例下载

    posted @ 2007-01-16 20:42 太阳 阅读(163) 评论(0) 编辑