- PR -

AutoEventWireup="True"で、データグリッド表示不正

1
投稿者投稿内容
ゆき
会議室デビュー日: 2003/11/11
投稿数: 19
投稿日時: 2003-11-27 17:28
お世話になってます。
今まで、@PageディレクティブをAutoEventWireup="True"で開発していた
のですが、この場合、Page_Loadを2回繰り返して実行しているらしく、
Page_Load内のデータ参照処理にて、データグリッドに、同一データを2度追加
されていました(汗
要するに、本当は3件なのに、ABCABCと6件追加されます。

そこで、質問なのですが、データグリッドがある画面では、AutoEventWireup="True"
にしてはいけないのでしょうか?
それとも、データグリッドの設定が悪くて引き起こされる不具合なのでしょうか?
ご存知の方、宜しくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2003-11-27 17:57
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconwebformseventmodel.asp
ここのページの中央あたりにAutoEventWireupについての記述があります。

「AutoEventWireupがtrueに設定されている場合、Page_Initメソッドおよび
Page_Loadメソッドが自動的に呼び出されます」とのことですね。

DataGridうんぬんではなくてVisualStudio.netがコードを自動生成したから
ですね。

どうしてもAutoEventWireupをtrueにしたいならばInitializeComponentの中に
自動生成された
this.Load += new System.EventHandler(this.Page_Load);
を消せば2回よばれずにすみます。(こんなことしていいのかは
わかりませんが)

(Page_Initのことはよくわかりませんが、自分でPage_Initを作って
AutoEventWireupをtrueに設定したら確かに自動的に呼ばれました)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-27 18:52
ついでに

07.Page_Loadは何故うごく?
http://homepage3.nifty.com/dotnetfan/web/web07.html
ゆき
会議室デビュー日: 2003/11/11
投稿数: 19
投稿日時: 2003-11-28 09:46
ありがとうございます。
マイクロソフトの以下の説明でかなりすっきりしました。

>ページの実行時に、同じイベント コードが 2 回呼び出されることがあります。このため、
>Visual Studio では AutoEventWireup を常に false に設定する必要があります。
1

スキルアップ/キャリアアップ(JOB@IT)