2010-11-09 2 views
0

У меня была таблица indatalist, и мне пришлось найти идентификатор tr в таблице. Я сделал свой код, но ошибка apeared (object refrence ...).find id of tr in datalist

ASPX:

<asp:DataList ID="DataList2" runat="server" RepeatColumns="4" 
    RepeatDirection="Horizontal" onitemdatabound="DataList2_ItemDataBound"> 
    <ItemTemplate> 

        <table width="90%" border="0" cellspacing="0" cellpadding="2"> 
         <tr id="AllText" runat="server"> 
          <td class="media_ved_tit_aro" id="AllArrow" runat="server"> 
           &nbsp; 
          </td> 
          <td class="media_txt_b " > 
          <asp:Label ID="Label4" runat="server" Text='<%#Eval(Globals.Translate("YoutubeTitle_EN", Page))%>' /> 
          </td> 
         </tr> 
        </table> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 
</asp:DataList> 

CS:

protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    string LanguageID = Globals.GetSuitableLanguage(Page); 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      ArrowAll = e.Item.FindControl("AllArrow") as HtmlGenericControl; 
      TextAll = e.Item.FindControl("AllText") as HtmlGenericControl; 
     } 
     if (LanguageID == "ar") 
     { 

      ArrowAll.Attributes.Add("Class", "media_ved_tit_aro_AR"); 
      TextAll.Attributes.Add("Class", "News_Image"); 
     } 
} 

ответ

0

тр, тд не получает отображается в HtmlGenericControl, а скорее HtmlTableRow и HtmlTableCell. Я бы предпочел, чтобы литой был установлен базовый элемент управления - HtmlControl. Короче говоря, измените ниже фрагмент кода, как показано:

ArrowAll = e.Item.FindControl("AllArrow") as HtmlControl; 
TextAll = e.Item.FindControl("AllText") as HtmlControl;