【发布时间】:2013-03-10 13:31:06
【问题描述】:
我想在后面的代码中使用 ID 为 TextLabel 的 Label 控件,但这给了我以下异常 Object reference not set to an instance of an object. 异常出现在代码后面文件中的这行代码上:
Label label = e.Item.FindControl("TextLabel") as Label;
string text = label.Text;
我在这里犯了什么错误?如何在后面的代码中找到“TextLabel”控件?
aspx代码:
<asp:Repeater ID="UserPostRepeater" runat="server" OnItemDataBound="UserPostRepeater_ItemDataBound">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="TextLabel" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
代码隐藏:
protected void UserPostRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
BlogProfileEntities blogProfile = new BlogProfileEntities();
Label label = e.Item.FindControl("TextLabel") as Label;
string text = label.Text;
}
【问题讨论】:
-
检查您的 html 输出。您可能会看到它给了它一个类似 TextLabel_1 的 ID,这就是您无法使用该 ID 找到它的原因。
标签: c# asp.net exception repeater