首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ajax面板回发中获取动态图像按钮的句柄

问如何在ajax面板回发中获取动态图像按钮的句柄
EN

Stack Overflow用户
提问于 2009-05-14 22:46:52
回答 1查看 966关注 0票数 1

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

代码语言:javascript
复制
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事件中看到了这一点,我还在每次回发时重新加载表。

代码语言:javascript
复制
string returnData = Request.Form.ToString();

但是遍历表单可以控制图像:

代码语言:javascript
复制
if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)

找不到它。我可以找到它,如果我手动输入:

代码语言:javascript
复制
imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);

在Page_Load中,然后在单击事件中抓取它:

代码语言:javascript
复制
switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...

但是因为有新的行被添加和删除,这在编程上变得相当丑陋。我在想,对于动态图像按钮的创建和从服务器端代码中的动态检索,肯定有一个优雅的解决方案。我做了很多调查,但这一次把我难住了。

先谢谢你...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-14 22:56:15

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

为了将动态控件注册到ViewState,必须在事件生命周期的初始化阶段创建它们。

此外,您还说您正在遍历窗体的控件...将imagebutton添加到表格的单元格时。您是否在递归地向下递归地向下递归控件层次结构以查找imagebutton?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/866258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档