2
我有一个datalist控件,里面有一些控件(例如:button)。我想写一些代码到datalist控件中的按钮的click事件中。但是在页面后面的代码中,我无法将控件的名称查看到datalist中。我怎么解决这个问题?在datalist下使用事件控制
我有一个datalist控件,里面有一些控件(例如:button)。我想写一些代码到datalist控件中的按钮的click事件中。但是在页面后面的代码中,我无法将控件的名称查看到datalist中。我怎么解决这个问题?在datalist下使用事件控制
如果你不希望将处理程序添加到所有的子活动,你可以代替你的代码添加到OnItemCommand。
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Button ID="btnDoSomething" Runat=server CommandName="DoSomething"
CommandArgument="<%# DataBinder.Eval(Container.DataItem, "SomeID")
%>"></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
protected void DataList1_ItemCommand(
object source, DataListCommandEventArgs e)
{
if (e.CommandName == "DoSomething")
{
//Do stuff
}
}
将您的事件附加到数据列表的OnItemCreated事件中的控件。
编辑补充样本
private void DataList_ItemCreated(object sender,
System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl("btnWhatever");
if (btn != null) btn.Click += new EventHandler(SomHandler);
}
}
你可以简化一下吗?一些示例代码可以帮助。 – mavera 2009-01-09 14:51:40
当然,事情。查看编辑并让我知道如果清楚。 – cmsjr 2009-01-09 14:54:04