【问题标题】:Using event of control under datalist在datalist下使用控制事件
【发布时间】:2009-01-10 19:24:05
【问题描述】:

我有一个 datalist 控件,其中包含一些控件(例如:按钮)。我想在 datalist 控件中的按钮的单击事件中编写一些代码。但是在页面后面的代码中,我看不到数据列表中的控件名称。我该如何解决这个问题?

【问题讨论】:

    标签: asp.net events datalist


    【解决方案1】:

    将您的事件附加到数据列表的 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);
            }
        } 
    

    【讨论】:

    • 当然,事情。查看编辑并让我知道是否清楚。
    【解决方案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
    
      }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多