我有一个 datalist 控件,其中包含一些控件(例如:按钮)。我想在 datalist 控件中的按钮的单击事件中编写一些代码。但是在页面后面的代码中,我看不到数据列表中的控件名称。我怎么解决这个问题?
mavera
问问题
1632 次
2 回答
3
将您的事件附加到数据列表的 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);
}
}
于 2009-01-09T14:44:32.750 回答
2
如果您不想为所有子事件添加处理程序,则可以将代码添加到 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
}
}
于 2009-01-10T11:24:05.573 回答