HTMLtableCell不适用于asp.net中的表头(th)

时间:2011-07-14 17:44:07

标签: asp.net

我的转发器控件具有表头(th)和表格单元格(td)。我想在代码中访问td和th。我在转发器代码中使用HTMLTableCell,我可以访问td,但是它不起作用。有什么建议 这是代码示例:

<asp:Repeater ID="rpt" runat="server" OnItemDataBound="repeater_ItemDataBound" >
<HeaderTemplate>
    <table id="tbl" >
    <thead>
    <tr>
      <th id="header1" runat="server">head 1/th>
      <th">Head 2</th>
 </tr>
    </thead>  
</HeaderTemplate>
<ItemTemplate>
    <tr>
      <td id="td1" runat="server" ><asp:Literal ID="litTD1" runat="server" /></td>
      <td  ><asp:Literal ID="litTD2" runat="server" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>
</asp:Repeater>

in code behind

HtmlTableCell header1= e.Item.FindControl("header1") as HtmlTableCell;
HtmlTableCell td1= e.Item.FindControl("td1") as HtmlTableCell;

此代码适用于td1(即单元格)但header1上的对象空引用异常 对不起,我确实有runat =“server”为

2 个答案:

答案 0 :(得分:0)

如果要在代码隐藏中访问它,则需要添加runat="server"属性。

答案 1 :(得分:0)

问题是e.Item.FindControl("header1")不会返回任何内容,因为header1表标题不是e.Item的一部分(基本上包含ItemTemplate的呈现内容)。您需要在控制树中搜索Repeater,而不是单个项目。