所以我有类似的东西: 静态配置类,在项目的任何地方使用,具有bool属性,让我们说属性。 所以我想找到一种在aspx标记中设置此属性的方法。
<asp:Column ..... Visible='<%: Config.Property %>' >
不起作用。我也尝试过:
'<%# Config.Property %>'
'<%$ Config.Property %>'
'<%= Config.Property %>'
'<% Config.Property %>'
以及以上所有没有&#34;&#39;&#34;。 有没有办法解决这个问题?我不想在后面的代码中设置它,我有理由不这样做。
答案 0 :(得分:1)
您遇到问题的原因是因为服务器控件上每个属性的字符串值被计算并解析为所需类型。因此,您可以将属性设置为“True”或“true”,但不能设置为需要评估的表达式。为了解决这个问题,您必须使用数据绑定语法,如下所示:
<asp:Column ..... Visible="<%# Config.Property %>" >
使用数据绑定表达式的问题是您需要在控件本身或页面本身上执行DataBind()方法。如果您决定稍后在页面上的其他位置使用绑定控件,则在页面上调用它本身会产生不良副作用。因此,为此,我们将添加一个执行DataBind()方法的“伪元标记”,如下所示:
<asp:Column ..... Visible="<%# Config.Property %>" meta:bind='<% DataBind(); %>' >
您无需将其称为bind
。您可以随意调用元标记。这将强制ASP.NET引擎在此控件上执行DataBind,它应该评估并解析Config.Property
表达式。