为什么我不能做一个TH runat =“server”

时间:2012-05-04 21:35:40

标签: asp.net

对于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;

更新

我的错,我复制了一些东西而且在发布之前我没有改变它...它已在代码中修复了

2 个答案:

答案 0 :(得分:0)

这可能是额头拍打者,但是:

因为你的名字叫“thMyCell”,而不是“thLastColumn”

答案 1 :(得分:0)

如果您的实施与示例一样直截了当,那么您应该遇到问题。它没有给我任何问题,编译没有任何错误。

<table>
    <tr>
        <th id="test" runat="server"></th>
    </tr>
</table> 

在代码隐藏的intellisense中将其选为HtmlTableCell,但这应该不是问题:

test.ColSpan = 2;

如果这不适合您,我会尝试隔离它 - 创建一个新的Web表单并粘贴我上面的标记,然后尝试在代码隐藏中访问它。 Intellisense应该没有问题地拿起它,表格应该编译得很好。