C# GridView FindControl HTML 无序列表
本文关键字:无序 列表 HTML FindControl GridView | 更新日期: 2023-09-27 18:35:39
我想在我的GridView
中找到一个unordered list
,以便我可以根据条件隐藏它。但是,我不知道该如何铸造该对象。使用HtmlGenericControl
似乎不起作用。我收到Object reference not set to an instance of an object
错误。
标记:
<asp:GridView ID="myGV" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="myCb" runat="server" Text='Hi'/>
<ul id="myUnorderedList" runat="server" Visible="True">
<li>
<asp:TextBox ID="myTb" runat="server" Width="300" />
</li>
</ul>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#:
foreach (GridViewRow row in myGV.Rows)
{
if (Some Condition)
{
//works bc properly casted to CheckBox
((CheckBox) row.FindControl("myCb")).Visible = false;
//Does not work. What to cast this to?
((System.Web.UI.HtmlControls.HtmlGenericControl) row.FindControl("myUnorderedList")).Visible = false;
}
}
System.Web.UI.HtmlControls.HtmlGenericControl 是 ul 的正确转换。
此外,您甚至不需要强制转换为 HtmlGenericControl,因为 Visible 是 System.Web.UI.Control 的属性,所有 Web 控件都继承自该属性。
你只需要以下代码 -
(row.FindControl("myUnorderedList")).Visible = false;