数据列表 ASP.NET 捕获事件
本文关键字:事件 NET 列表 ASP 数据 | 更新日期: 2023-09-27 17:55:48
我有一个包含 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"}
将模板更改为编辑模板。可以编辑元素,但忽略编辑模板上的图像按钮事件(删除、取消、更新)。单击这些图像按钮时,什么都不做,只需更改回项目模板。无法捕获这些图像按钮的事件(删除、取消、更新)。
您需要处理 ItemCommand 事件。我在您的代码中没有看到这方面的证据。
检查命令名称参数以确定要执行的操作。
void Item_Command(Object sender, DataListCommandEventArgs e)
{
if ( e.CommandName = "Delete" ){
// Perform Delete, etc.
MyDL.EditItemIndex = -1;
DataList.DataBind();
}
}