对于ASP.Net,我知道我可以制作很多不同的HTML元素runat =“server”所以我可以从服务器上做一些具体的事情,但是我无法得到一个TH来runat =“服务器”。
为什么不呢?
示例:
<table>
<tr>
<td id="tdMyCell" runat="server"></td>
<th id="thMyCell" runat="server"></th>
</tr>
</table>
但是从服务器端,我只能访问TD。我试过下面两行,第一行不会编译,第二行总是返回一个空对象。
thMyCell.Visible = false;
(this.FindControl("thMyCell") as System.Web.UI.HtmlControls.HtmlTableCell).Visible = false;
更新
我的错,我复制了一些东西而且在发布之前我没有改变它...它已在代码中修复了
答案 0 :(得分:0)
这可能是额头拍打者,但是:
因为你的名字叫“thMyCell”,而不是“thLastColumn”
答案 1 :(得分:0)
如果您的实施与示例一样直截了当,那么您应该遇到问题。它没有给我任何问题,编译没有任何错误。
<table>
<tr>
<th id="test" runat="server"></th>
</tr>
</table>
在代码隐藏的intellisense中将其选为HtmlTableCell
,但这应该不是问题:
test.ColSpan = 2;
如果这不适合您,我会尝试隔离它 - 创建一个新的Web表单并粘贴我上面的标记,然后尝试在代码隐藏中访问它。 Intellisense应该没有问题地拿起它,表格应该编译得很好。