- - PR -
[ASP.NET 2.0]ポスト元のボタン名の判定方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-02-13 09:44
いつもお世話になります。
ポストを発生させたボタン名を取得し判定を行いたいのですができますでしょうか? 具体的にやりたいことはボタン1のクリックイベントによるポストなのか、ボタン2のクリックイベントによるポストなのかをPage_Initで判定したいのです。 | ||||
|
投稿日時: 2008-02-13 10:40
解として、Request.Form.AllKeysにButtonIDと同一のKeyがあれば
そのボタンが押されたと判断してよろしいかと思います。 余計な事かもしれませんが・・・ 何故Page_Initでイベント発生元のコントロールを特定したいのか?と思います。 http://msdn2.microsoft.com/ja-jp/library/h84w616y(VS.80).aspx MSDNにも記述されていますが・・・
このように適切なイベントハンドラにて処理すべきだと思うのですが。 「クリックされたボタン」に限らず「イベント発生元のコントロール」としても同様です。 | ||||
|
投稿日時: 2008-02-13 11:40
ご回答ありがとうございます。
ポストバック時には必ずPage_Init/Page_Loadが走る為、イベント発生元によって共通処理を行いたい為です。 例えば、ボタン1とボタン2の場合は、特定の処理をしたあとイベントハンドラで処理を行う、その他の場合は、別の処理をしたあとイベントハンドラで処理を行う、のようなイメージです。 それぞれのイベントハンドラに記述するより、Page_Initで判定した方が、後のメンテがしやすいと考えます。 | ||||
|
投稿日時: 2008-02-13 12:22
でしたら、ページのRaisePostBackEventをオーバーライドして
そこでコントロールを判断し共通処理を行った方が良いのではないでしょうか? | ||||
|
投稿日時: 2008-02-13 13:07
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43480&forum=7&1「静的なボタンでは下記でできました」と書いてある方法でできると思います。
上記にもあるようにリンクボタンの場合は多少異なるようです。
Page_Loadのあとじゃタイミング的に遅いって場合は別でしょうけど、 ・・あ、一部内容がくまっちさんの最初のレスとかぶってますね。。;; [ メッセージ編集済み 編集者: べる 編集日時 2008-02-14 00:05 ] | ||||
|
投稿日時: 2008-02-13 13:17
Init だと、まだ判断出来ないんじゃないかなぁ?まぁ、ポストされたメッセージを直接いじるっていうなら別だけど。
判断したさきで、入力された内容を読んだりするつもりです? 一度、ウェブ アプリケーションで発生するイベントの順番とタイミングを調べておくことを勧めます。 | ||||
|
投稿日時: 2008-02-14 16:32
皆様、多くのご回答ありがとうございました。
様々な対処方法があるみたいなので、この中でより適したものを考えてみたいと思います。 またなにかありましたらよろしくお願いします。 |
1