如何得到一个处理一个动态的ImageButton在Ajax面板回传
-
21-08-2019 - |
题
我写的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);
点击新的ImageButton,我似乎无法得到它的句柄。我看到它在Page_PreRender事件,其中I也重新加载在每次回发的表。
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);
在Page_Load,然后抓住它在点击事件:
switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...
但是,因为有被添加和删除的新行,这得到比较难看编程。我想必须有一个完美的解决方案,以动态的ImageButton创建和检索从服务器端代码的飞行。我已经做了挖掘了很多,但是这个人是我绊倒。
预先感谢...
解决方案
如果你在页生命周期的事件处理阶段创建动态控件(例如,在该项目的选择的事件),那么控制将被在下一个回发了。
为了进行动态控制,以与视图状态被登记,它们在事件的生命周期的Init相位被创建。
另外,你说你通过遍历窗体的控件...当你添加的ImageButton的表中的单元格。你递归下降的控制层次结构来寻找ImageButton的?
不隶属于 StackOverflow