2009-12-04 50 views
2

我想控制一些<td>元素是否被渲染或者不使用数据绑定和runat="server" HTML控件控制可视性:使用数据绑定

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

麻烦的是,SomeBool财产只是心不是被调用。

如果我明确设置为false可见,像这样:

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

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

如何获取此数据绑定的工作?

+0

你怎么知道SomeBool没有被调用?你是否在调试器中用断点检查它?代码是做什么的?它返回一个字符串或布尔?您使用哪种控件进行数据绑定?此外,小点,但你的td和tr标签是相反的。 – RickNZ 2009-12-04 11:20:38

+0

什么是倒票?! – Justin 2009-12-04 13:11:52

+0

没有必要坚持[解决]只是在几天内将您的答案设置为正确的答案 – 2009-12-04 13:17:45

回答

3

之所以wasnt被称为是因为我的网页上的DataBind()方法没有被调用我的方法 - 即使只是把以下到页面的某个地方什么也没做:

<%# "Hello world" %> 

我不得不到this.DataBind()通话添加到我的网页的顶部:

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

而everyting然后都按预期。

1

试着这么做:

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

1

试着在<%%>标签单引号:

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

Sergio的想法看起来整洁了。