表达式未评估

时间:2012-06-04 10:15:16

标签: asp.net user-controls

我将以下代码放入用户控件

<td class="column <%# GetCssClass(SomeAttributes) %>" >

并且它正常工作,使用GetCssClass方法输出正确的CSS类。但我也有该表的其他一些单元格,代码如下

<td class="column <%# GetCssClass(SomeAttributes) %>" runat="server" Visible="<%# ShowColumn %>"

存在一些问题,并且没有评估方法GetCssClass,而是将其字面上发送到输出。

有任何帮助吗? (我是一个新的asp.net开发人员)

1 个答案:

答案 0 :(得分:1)

当我们尝试将参数/对象传递到runat="server"行时,我们使用<%# ..%>

您可以使用Visible="<%# ShowColumn %>,其中ShowColumn是布尔值。

在这种情况下class="column <%# GetCssClass(SomeAttributes) %>"你不是试图传递一个参数而是一个字符串,为此,<%# GetCssClass(SomeAttributes) %>被视为一个字符串。

class="column <%# GetCssClass(SomeAttributes) %>"是转换为字符串,并呈现为字符串。渲染GetCssClass返回字符串的替代方法是使用转换为字符串值的<%= %>并将其放在html上(不传递给控件)

这个class="<%# GetCssClass(SomeAttributes) %>"是GetCssClass

返回的类

这个Visible="<%# ShowColumn %>"在Visible变量上放置了ShowColumn值。