我的转发器控件具有表头(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”为
答案 0 :(得分:0)
如果要在代码隐藏中访问它,则需要添加runat="server"
属性。
答案 1 :(得分:0)
问题是e.Item.FindControl("header1")
不会返回任何内容,因为header1
表标题不是e.Item
的一部分(基本上包含ItemTemplate
的呈现内容)。您需要在控制树中搜索Repeater,而不是单个项目。