![](/img/trans.png)
[英]How to find a control located inside datalist itemtemplate, on a Page_Load event?
[英]find control inside datalist on page load
我想在页面加载方法的数据列表中找到一个项目,这是我的代码
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”的对象。
Page_Load
不是由LinkButton触发的事件,因此发件人不能是LinkButton。 这是一个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";
}
在这行上:
LinkButton LinkButton6 = (LinkButton)sender;
sender
对象是Page
,不是LinkButton
,不是吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.