从aspx页面中的静态类计算布尔属性

本文关键字:静态类 计算 布尔 属性 aspx | 更新日期: 2023-09-27 18:25:18

所以我有这样的东西:静态配置类,该类在项目中随处使用,具有bool属性,比如property。因此,我想找到一种在aspx标记中设置此属性的方法。

<asp:Column ..... Visible='<%: Config.Property %>' > 

不起作用。我也试过:

'<%# Config.Property %>'
'<%$ Config.Property %>'
'<%= Config.Property %>'
'<% Config.Property %>'

以上所有内容都不带"。有什么办法解决吗?我不想在后面的代码中设置它,我有理由不这样做。

从aspx页面中的静态类计算布尔属性

出现问题的原因是服务器控件上每个属性的字符串值都被求值并解析为所需类型。因此,您可以将属性设置为"True"或"True",但不能设置为需要计算的表达式。为了解决这个问题,您必须使用数据绑定语法,如以下所示:

<asp:Column ..... Visible="<%# Config.Property %>" >

使用数据绑定表达式的问题在于,需要在控件本身或页面本身上执行DataBind()方法。如果您以后决定在页面的其他地方使用绑定控件,那么在页面本身调用它可能会产生不良的副作用。因此,要做到这一点,我们将添加一个执行DataBind()方法的"伪元标记",如下所示:

<asp:Column ..... Visible="<%# Config.Property %>" meta:bind='<% DataBind(); %>' >

你不必称之为bind。你可以随意调用元标签。这将强制ASP.NET引擎对此控件执行DataBind,并且它应该计算和解析Config.Property表达式。