我正在尝试使用中继器制作表格。但是,在转发器的项目中,我需要对某些特定控件实施一些逻辑,例如 div。
我试过了,但没有用,我总是得到:
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
源错误:
Line 35: HtmlGenericControl myDiv = (HtmlGenericControl)e.Item.FindControl("RepeaterBG");
Line 36:
Line 37: myDiv.Style.Add("background-color","green");
Line 38: }
Line 39: }
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
我的 HTML 是:
<asp:Repeater runat="server" ID="MyStudents"
OnItemDataBound="rptArticleContent_ItemDataBound">
<HeaderTemplate>
<table><tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<div runat="server" ID="RepeaterBG" > helli there</div>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("RegistrationDate") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Email") %>'></asp:Label>
</td>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>
我的.CS
protected void rptArticleContent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lb = new Label();
lb.Text = "</tr><tr>";
e.Item.Controls.Add(lb);
HtmlGenericControl myDiv = (HtmlGenericControl)e.Item.FindControl("RepeaterBG"); // i get null here, it seems to not find it at all!
myDiv.Style.Add("background-color","green"); // problem here
}
我哪里做错了?!