2012-10-07 111 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,不是吗?

相关问题