2012-10-07 6 views
0

Я хочу, чтобы найти элемент в DataList по методе загрузки страницы это мой кодуправления находят внутри DataList загрузки страницы

protected void Page_Load(object sender, EventArgs e) 
{ 
    //some code here 

    for (int i = 0; i < count ; i++) 
    { 
     LinkButton LinkButton6 = (LinkButton)sender; 
     DataListItem item = (DataListItem)LinkButton6.NamingContainer; 
     LinkButton lnkbtn6 = (LinkButton)DataList1.Items[item.ItemIndex].FindControl("LinkButton6"); 
    } 
} 

, но эта ошибка кажется мне: Не удается привести объект типа «ASP. default2_aspx 'для ввода «System.Web.UI.WebControls.LinkButton».

+0

_ ** Ani помощь! ** _ –

+1

'Page_Load' это не событие вызвано LinkButton поэтому отправитель не может быть LinkButton. Это событие страницы. – codingbiz

+0

Что вы пытаетесь достичь, чтобы найти элемент в загрузке страницы? – codingbiz

ответ

1

Page_Load не является событием, вызванным LinkButton, поэтому отправитель не может быть LinkButton. Это событие страницы. Используйте OnItemDataBound вместо

Markup

<asp:DataList OnItemDataBound="DataList1_OnItemDataBound" runat="server" ID="MdataList"> 
<ItemTemplate> 
    <asp:LinkButton runat="server" ID="LinkButton6" Text="Text"></asp:LinkButton> 
</ItemTemplate> 
</asp:DataList> 

Codebehind

protected void Page_Load(object sender, EventArgs e) 
{ 

} 

protected void DataList1_OnItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    LinkButton lnkBtn6 = (LinkButton)e.Item.FindControl("LinkButton6"); 
    lnkBtn6.Text = "Some Text Here"; 
} 
+0

, поэтому я не буду писать код на странице load!? –

+0

Да. Загрузка страницы должна быть отдельной – codingbiz

0

На этой линии:

LinkButton LinkButton6 = (LinkButton)sender; 

sender объект является Page, не LinkButton, не так ли?

Смежные вопросы