0

无法在回发中捕获 Imagebuttonclick 事件。

我正在使用以下代码进行按钮单击并尝试使用 Imagebutton 但是“按钮”单击它的工作而不是图像按钮。

public Control GetPostBackControl(Page page)
    {
        Control control = null;

        string ctrlname = page.Request.Params.Get("__EVENTTARGET");
        if ((ctrlname != null) & ctrlname != string.Empty)
        {
            control = page.FindControl(ctrlname);
        }
        else
        {
            foreach (string ctl in page.Request.Form)
            {
                Control c = page.FindControl(ctl);
                if (c is System.Web.UI.WebControls.Button)
                {
                    control = c;
                    break;
                }
            }
        }
        return control;
    }

有什么解决办法吗?

4

2 回答 2

0

尝试用这个替换你的按钮检查块:

if (c is System.Web.UI.WebControls.ImageButton)
            {
                control = c;
                break;
            }
于 2012-11-06T12:06:49.973 回答
0

得到了解决方案:

在上述代码中添加了一项检查, // 处理 ImageButton 回发

        if (control == null)
        {
            for (int i = 0; i < page.Request.Form.Count; i++)
            {

                if ((page.Request.Form.Keys[i].EndsWith(".x")) || (page.Request.Form.Keys[i].EndsWith(".y")))
                {
                    control = page.FindControl(page.Request.Form.Keys[i].Substring(0, page.Request.Form.Keys[i].Length - 2));                     
                }
            }
        }

现在我能够捕获 ImageButton 回发事件。

谢谢

于 2012-11-06T12:10:01.307 回答