无法捕获ImageButton单击回发事件

时间:2012-11-06 12:02:08

标签: asp.net

无法在回发中捕获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;
    }

任何解决方案?

2 个答案:

答案 0 :(得分:0)

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

if (c is System.Web.UI.WebControls.ImageButton)
            {
                control = c;
                break;
            }

答案 1 :(得分: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回发事件。

由于