2010-11-09 35 views
0

我有表indatalist,我必須在表中找到tr的id我做了我的代碼,但錯誤apeared(object refrence ...)。在datalist中找到tr的ID

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

TR,TD不會被映射到HtmlGenericControl而是HtmlTableRowHtmlTableCell。我更喜歡一個演員基地控制 - HtmlControl。簡而言之,如下所示更改代碼片段:

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