- PR -

ASP.NETのイベント呼び出し順序について

1
投稿者投稿内容
みっちー
常連さん
会議室デビュー日: 2006/01/06
投稿数: 22
投稿日時: 2006-06-26 17:42
お世話になっております。
ASP.NETの動作で質問があります。

ASP.NETにおいて、ポストバック時の動作は、Page_Load→各イベントハンドラの順で
実行されると認識していたのですが、Page_Loadより先に、イベントハンドラが実行
されてしまうケースが発生して困っております。

具体的には、DataGridのItemCreatedイベントを定義している状況で、
ポストバックを発生させると、ItemCreated→Page_Load→ItemCreatedという順序で
イベントが発生します(なぜかItemCreatedは二回・・)

Page_Loadが発生する前で、勝手にDataBindが行われているという事でしょうか?
理解できずに困っております。
よろしくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-06-26 18:27
引用:
ASP.NETにおいて、ポストバック時の動作は、Page_Load→各イベントハンドラの順で
実行されると認識していたのですが、Page_Loadより先に、イベントハンドラが実行
されてしまうケースが発生して困っております。

関連付けられているイベントが起きた順に発生するでしょう。
(Page_Loadは普通Loadイベントに関連付けられています。)

引用:
具体的には、DataGridのItemCreatedイベントを定義している状況で、
ポストバックを発生させると、ItemCreated→Page_Load→ItemCreatedという順序で
イベントが発生します(なぜかItemCreatedは二回・・)

そもそもどこでどのようにItemを追加しているかわかりませんが、

推測ですが、ViewStateのデータを復元するときに発生してるかもしれません。

DataGridのEnableViewStateを"False"にしてみてください。
みっちー
常連さん
会議室デビュー日: 2006/01/06
投稿数: 22
投稿日時: 2006-06-26 19:21
ご指摘の通り、DataGridのEnableViewStateを"False"にしたところ、
発生しなくなりました(Page_Loadが一番最初にくるものだとばかり思っていました
どうも、ありがとうごさいました。
1

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