Asp.net 如何在ajax面板回发中获取动态imagebutton的句柄

Asp.net 如何在ajax面板回发中获取动态imagebutton的句柄,asp.net,ajax,postback,imagebutton,Asp.net,Ajax,Postback,Imagebutton,当用户选择列表中的项目时,我将imagebutton写入新行中的表格单元格: ImageButton imgbtnRemove = new ImageButton(); imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName; imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName; imgbtnRemove.Image

当用户选择列表中的项目时,我将imagebutton写入新行中的表格单元格:

ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);
当单击new imagebutton时,我似乎无法控制它。我在Page_PreRender事件中看到它,在每次回发时我也会重新加载表

string returnData = Request.Form.ToString();
但在表单中迭代控制图像:

if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)
没有找到它。如果我手动输入一个:

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);
在页面中,加载并在单击事件中抓取它:

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...
但由于有新行被添加和删除,这在编程上变得相当糟糕。我认为必须有一个优雅的解决方案来动态创建imagebutton并从服务器端代码中动态检索。我做了很多挖掘工作,但这一次让我难堪


提前感谢…

如果您在页面生命周期的事件处理阶段(例如,在所选项目事件中)创建动态控件,则该控件将在下一次回发时消失

string returnData = Request.Form.ToString();
为了向ViewState注册动态控件,必须在事件生命周期的初始阶段创建它们


另外,您说您正在迭代表单的控件。。。将imagebutton添加到表的单元格时。您是否递归地降低控件继承权限以查找imagebutton?

将表重新创建移动到OnInit允许我在(递归)控件方法中找到控件,但在加载面板后,我丢失了新行add…但我认为我可以解决它。谢谢