我看到了一个使用Expression Builders的例子,并在这里创建了自己的Custom Expression Builder类:
http://aspnet.4guysfromrolla.com/articles/022509-1.aspx
但是,我没有看到使用这种方法的价值。它似乎没有比在后面的代码中以编程方式设置值更容易。
据我所知,你唯一可以做的就是设置属性。也许它们对某些控件的默认设置有用吗?
有人能说明这个ASP.NET功能在哪些方面变得强大吗?
答案 0 :(得分:4)
我们正在使用自定义表达式构建器来本地化我们的应用程序。例如。标记看起来像这样:
<asp:LinkButton Text="<%$ Str:SomeString %>" ... />
表达式构建器从资源文件中读取具有ID SomeString的字符串(考虑当前用户的语言首选项)并将其分配给LinkButton的Text属性。
这非常灵活:我们可以通过简单地将资源文件复制到应用程序目录来添加语言。如果客户希望为该链接按钮添加不同的文本,他只需将自定义字符串添加到资源文件中,并更改表达式构建器中的字符串ID(无需更改代码隐藏)。
答案 1 :(得分:1)
如果你关心ViewState(你应该),自定义表达式很方便。请参阅TRULY Understanding ViewState。
答案 2 :(得分:0)
当您需要在页面生命周期的早期执行表达式时,它非常有用。当需要参数不在页面生命周期的特定点时执行。
另请参阅制作通用'Code' expression builder。
答案 3 :(得分:-1)
使一些客户端javascript参数“动态”,这是一个很好的用途。
因此,假设您在web.config文件中有一个设置,您希望在javascript标记中将其设置为客户端。您可以在后面的代码中处理OnRender事件并在那里使用js进行处理,但这会很难看。在ASPX中做这样的事情要好得多:
<script type="text/javascript">
var sessionKill = <%$ AppSettings:ClientSessionTimeOut%>