- - PR -
PostBackの発生したイベント
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-05 18:22
いつもお世話になります。現在、ASP.NET(VS2005)にて開発を行っています。
1つのASPXファイルに Webコントロール コンボボックスA Webコントロール コンボボックスB Webコントロール ボタン Webコントロール GridView を配置し、 ボタンを押した段階で、コンボボックスA、Bのデータを検索条件としDBアクセスし、結果を GridViewに表示する処理をしたいと思っています。 そこで、問題があるのが、検索条件の選択方法として コンボボックスAを選択したときにはAutoPostBackにてそれに関連する内容をコンボボックスBに コンボボックスBを選択したときにはAutoPostBackにてそれに関連する内容をコンボボックスAに表示させたいのですが、ボタンを押したタイミングで、 結果をGridViewに表示する処理まで動いてしまいます。 ボタンを押したあとにFormLoad内(他でもいいのですが)でボタンが押されたために発生したPostBackか それともコンボボックスを選択したため発生したPostBackかを見分ける方法はないでしょうか? | ||||||||
|
投稿日時: 2006-07-05 18:51
ボタンを押す??? AutoPostBack なんですよね? このボタンにはどういう機能があるんですか? | ||||||||
|
投稿日時: 2006-07-05 18:52
何かにその情報を退避させときゃいいんじゃないの? PostBackがAutoで走るから困っているって? | ||||||||
|
投稿日時: 2006-07-05 19:10
ボタンか否かを知りたいなら Button1=表示 みたいなPOSTパラメータがわたってくると思います。 AutoPostBackしたコントロールを知りたいなら,HTML出力をよくみるとわかりますが ["__EVENTTARGET"] というパラメータ(.NETが勝手に付けたものですが)に入っていると思います。 [ メッセージ編集済み 編集者: べる 編集日時 2006-07-05 19:11 ] | ||||||||
|
投稿日時: 2006-07-05 20:12
>かるあさん
ボタンは通常のWebUIControls.Buttonで、 クリックするとPostBackが発生するだけのものになります。 >ぶさいくろうさん 待避の方法がわからなかったもんで。。。 >べるさん Page.FindControl("__EVENTTARGET")で取ればよいということですか? | ||||||||
|
投稿日時: 2006-07-05 20:51
__EVENTTARGETというname属性を持ったhiddenのinputタグができます。 AutoPostBackする瞬間にjavascriptでコントロール名が入る仕組みになってるみたいです。 だからPOSTパラメータ(ってわかっています?)で取得できます。 Page.FindControlではなく、Request.Formのインデクサです(Requestだけでもとれるけど)
ドロップダウンでしたときと、とかそういう意味でした。 | ||||||||
|
投稿日時: 2006-07-05 21:30
Page_Load あたりに全部の処理を書いてるんじゃない?
それぞれのコントロールの、それぞれのイベントにハンドラをアサインして、ハンドラメソッドの中で処理すれば、それだけしかやらないはずだけど? 追加:
なんか、矛盾しそう。。。 [ メッセージ編集済み 編集者: Jitta 編集日時 2006-07-05 21:31 ] |
1