C# GridView FindControl HTML неупорядоченный список
Я хочу найти unordered list
внутри моего GridView
так что я могу скрыть это на основе условия. Я не знаю, что бросить объект, как бы то ни было. С помощью 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;
}
}
1 ответ
Решение
System.Web.UI.HtmlControls.HtmlGenericControl - правильное приведение для ul.
Кроме того, вам даже не нужно приводить к HtmlGenericControl, поскольку Visible является свойством System.Web.UI.Control, от которого унаследованы все веб-элементы управления.
Вам просто нужен следующий код -
(row.FindControl("myUnorderedList")).Visible = false;