2014-12-30 3 views
0

Я хочу найти unordered list внутри моего GridView, чтобы я мог скрыть его на основе условия. Однако я не знаю, что делать с объектом. Использование HtmlGenericControl не работает. Я получаю ошибку Object reference not set to an instance of an object.C# GridView FindControl HTML неупорядоченный список

разметки:

<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 является правильным, поданных за ул.

Кроме того, вам не нужно даже бросить в HtmlGenericControl, потому что Видимый является свойством System.Web.UI.Control, от которого унаследовал все веб-управления.

Вам просто нужно следующий код -

(row.FindControl("myUnorderedList")).Visible = false; 
Смежные вопросы