使用数据绑定控制html控件的可见性

时间:2009-12-04 11:13:05

标签: c# asp.net data-binding

我正在尝试使用数据绑定和<td>来控制是否呈现某些runat="server"元素:

<td runat="server" visible="<%# this.SomeBool %>"><tr>Hello world!</tr></td>

麻烦的是SomeBool属性没有被调用。

如果我明确将visible设置为false,就像这样:

<td runat="server" visible="False"><tr>Hello world!</tr></td>

然后一切都很好,元素不会被渲染。

如何让这个数据绑定工作?

3 个答案:

答案 0 :(得分:3)

我的方法没有被调用的原因是因为我的页面上的DataBind()方法没有被调用 - 即使只是将以下内容放到页面某处也没有做任何事情:

<%# "Hello world" %>

我必须在页面顶部添加this.DataBind()的来电:

<%@ Page ... %>
<% this.DataBind(); %>

然后每个人都按预期工作。

答案 1 :(得分:1)

尝试类似:

<td <%# this.SomeBool ? "" : "style=\"display:none;\"" %>><tr>Hello world!</tr></td>

答案 2 :(得分:1)

尝试围绕&lt; %%&gt;的单引号标记:

<tr runat="server" visible='<%# this.SomeBool %>'><td>Hello world!</td></tr>

塞尔吉奥的想法看起来也很整洁。