2012-10-07 39 views
0

我想找到在頁面加載方法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.LinkBut​​ton'。

+0

_ **阿尼的幫助!** _ –

+1

'Page_Load'是不是LinkBut​​ton的觸發,發送者不能是一個LinkBut​​ton的事件。這是一個Page事件。 – codingbiz

+0

你想達到什麼目的,你想找到頁面加載項目? – codingbiz

回答

1

Page_Load不是由LinkBut​​ton觸發的事件,所以發件人不能是LinkBut​​ton。這是一個Page事件。使用OnItemDataBound代替

標記

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

代碼隱藏

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

中的linkbutton的文本,所以我不會在頁面加載時寫代碼! –

+0

是的。頁面加載應該是分開的 – codingbiz

0

在此行中:

LinkButton LinkButton6 = (LinkButton)sender; 

sender對象是Page,不LinkButton,不是嗎?

相關問題