1

いくつかのボタンを持つユーザー コントロールがあります。

で、特定のボタンが押さpage_loadれていない限りメソッドを実行したい。

ユーザーコントロール内で送信者をチェックするpage_loadと、ボタン自体ではなく、ユーザーコントロールの名前が取得されます。

どのボタンが押されたかを特定する方法はありますpage_loadか? それ以外の場合は、問題を解決するためのハックな方法を考え出す必要があります。

4

4 に答える 4

2

確認できると思いますRequest.Form ("__EVENTTARGET")-それにはClientID、コントロールの が含まれている必要があります。

これは、ユーザーがクリックしたものを追跡するために ASP.NET イベント処理フレームワークが使用する非表示フィールドの値を参照します。ユーザーがポストバックをトリガーすると、ページ上の一部の JavaScript がClientID、フォームを送信する前にクリックしたコントロールのこの非表示フィールドを設定します。

于 2008-11-18T01:10:58.820 に答える
0

特定のボタンが押されたかどうかを確認する簡単な方法は次のとおりです。

protected bool isButtonClicked(string buttonName)
    {
        bool isClicked = false;
        foreach (string ctl in this.Request.Form)
        {
            if (ctl.EndsWith(buttonName))
            {
                isButtonClicked = true;
                break;
            }
        }
        return isClicked;
    } 
于 2009-02-10T22:55:51.063 に答える
0

クリックされたボタンを返す(またはフラグなどを設定する)ために、ユーザーコントロールにプロパティを作成し、ユーザーコントロール内の各ボタンのクリックイベントに設定できますか?

于 2008-11-18T01:07:15.630 に答える
0

ページ モデルを正しく処理していますか? Page Load イベントが (サーバー側オブジェクト モデルを構築するために) 発生すると、コントロールはコントロールにバインドされたボタン クリック イベントを処理します。

ページの読み込みは、ユーザー コントロールのボタンがクリックされる以外にも、さまざまなポストバックの理由で発生する可能性があります。

ページ上の他のコントロールのボタンはどうですか?

これを行う正当な理由がある場合もありますが、ASP.NET ページ モデルをハッキングしているだけなのではないかと心配しています。

于 2008-11-18T01:16:40.307 に答える