当用户选择列表中的一项时,我向新行中的表格单元格写入一个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);当单击新的图像按钮时,我似乎无法获得它的句柄。我在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);在Page_Load中,然后在单击事件中抓取它:
switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...但是因为有新的行被添加和删除,这在编程上变得相当丑陋。我在想,对于动态图像按钮的创建和从服务器端代码中的动态检索,肯定有一个优雅的解决方案。我做了很多调查,但这一次把我难住了。
先谢谢你...
发布于 2009-05-14 22:56:15
如果在页面生命周期的事件处理阶段(例如,在item selected事件中)创建动态控件,则该控件将在下一次回发时消失。
为了将动态控件注册到ViewState,必须在事件生命周期的初始化阶段创建它们。
此外,您还说您正在遍历窗体的控件...将imagebutton添加到表格的单元格时。您是否在递归地向下递归地向下递归控件层次结构以查找imagebutton?
https://stackoverflow.com/questions/866258
复制相似问题