0

ポストバックでImagebuttonclickイベントをキャプチャできません。

私はボタンクリックに以下のコードを使用しており、Imagebuttonも試しましたが、「ボタン」クリックは機能しており、Imageボタンではありません。

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

解決策を得ました:

上記のコードにもう 1 つのチェックを追加しました。 // 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 に答える