我正在尝试将标签隐藏在转发器中。
<td>
<div>
<asp:Repeater ID="rpt1" runat="server"
OnItemDataBound="rpt1_ItemDataBound">
<HeaderTemplate>
<table>
<tr>
<td>
<div>
<label id="lbl1" runat="server">
<b>Project</b>
</label>
</div>
</td>
</tr>
</table>
</HeaderTemplate>
</asp:Repeater>
</div>
</td>
我想动态隐藏Label lbl1。
protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
//IT COMES HERE
Label label = e.Item.FindControl("lbl1") as Label;
label.Visible = false;
// ERROR: OBJECT REFERENCE NOT SET TO AN INSTANCE OF AN OBJ
}
}
在这里,当我尝试调试代码时,它进入了循环,但给我的对象引用未设置为对象错误的实例。
更新
如果我尝试,
HtmlGenericControl label = e.Item.FindControl("lbl1") as HtmlGenericControl;
label.Visible = false;
有效
最佳答案
将您的标签转换为 asp:Label with a runat="server"
<asp:label id="lbl1" runat="server">
或者保持你写的那样并在你的codebihind中添加runat="server"
HtmlGenericControl label = e.Item.FindControl("lbl1") as HtmlGenericControl;
关于c# - 在运行时隐藏标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28730466/