【问题标题】:DataList ASP.NET catch eventDataList ASP.NET 捕获事件
【发布时间】:2013-01-25 09:00:13
【问题描述】:

我有一个包含 Web 用户控件 (ascx2) 的 Web 用户控件 (ascx1)。在 ascx2 里面有一个 dataList。

ASCX1

Page_Load 
{ 
var bp = (Mbp)Page.LoadControl(<b>ASCX2</b>); 
bp.dataSource = new List<...> { ... }; 
placeholder.Controls.Add(bp); 
} 

ASCX2

public List<TBusiness> dataSource; 
private static List<...> ds; 
private static ITemplate itemTemplate; 
private static ITemplate editTemplate; 

Page_Load
{ 
... 

    if (!this.IsPostBack) 
    { 
    ds = this.dataSource;   
    itemTemplate = new CustomTemplate(...);
    editTemplate = new CustomTemplate(...); 
    }

dataList.ItemTemplate = itemTemplate; 
dataList.EditItemTemplate = editTemplate; 
dataList.DataSource = ds; 
dataList.DataBind(); 
} 

项目模板

ImageButton {CommmandName="Edit"} 

protected void dataList_EditCommand(object source, DataListCommandEventArgs e) 
    { 
        dataList.EditItemIndex = e.Item.ItemIndex; 
        dataList.DataBind(); 
    } 


编辑模板:

ImageButton {CommmandName="Delete"} 
ImageButton {CommmandName="Cancel"} 
ImageButton {CommmandName="Update"} 

问题: 单击 ImageButton{CommmandName="Edit"} 将模板更改为 EditTemplate。可以编辑元素,但忽略 EditTemplate 上的 ImageButton 事件(删除、取消、更新)。单击这些 Imagebuttons 时什么都不做,只需更改回 itemTemplate。无法捕获这些 ImageButton 的事件(删除、取消、更新)。

【问题讨论】:

    标签: c# asp.net imagebutton datalist


    【解决方案1】:

    您需要处理 ItemCommand 事件。我在您的代码中没有看到这方面的证据。

    检查 CommandName 参数以确定要执行的操作。

    void Item_Command(Object sender, DataListCommandEventArgs e) 
    {
       if ( e.CommandName = "Delete" ){
         // Perform Delete, etc.
         MyDL.EditItemIndex = -1;
         DataList.DataBind();
       }    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2010-12-06
      相关资源
      最近更新 更多