在datalist下使用控制事件

时间:2009-01-09 14:37:03

标签: asp.net events datalist

我有一个datalist控件,其中有一些控件(例如:按钮)。我想在按钮的click事件中写一些代码,这是在datalist控件中。但是在页面后面的代码中,我无法将控件的名称显示为datalist。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

将您的事件附加到datalist的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);
        }
    } 

答案 1 :(得分: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

  }

}