- - PR -
[ASP.NET Ajax] UpdatePanelの中のGridViewの表示が更新されない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-08 14:15
いつもお世話になっております。
初心者でございます。 ■やりたいこと クライアントからポーリングでDBを参照して、変更箇所があれば画面表示させる。 ページのリロードではなく、変更箇所だけ変化させたい。 ■やったこと UpdatePanelの中にGridViewとTimerを入れました。 Timerは5秒ごとにTickイベントを発行し、Tickイベント内でUpdatePanelを更新しています。(UpdatePanel1.Update()) これで5秒ごとにDB変更が自動的に反映されるはずと思いましたが、いっこうに変化しない。 デバックの要素含めてUpdatePanelの中と外にに日時表示するラベルを貼り付けて、ラベルのLoad時に、その瞬間の日時をセットするようにした。 結果、UpdatePanel内の時刻表示ラベルは更新されますが、Updatelabel外の時刻表示ラベルは更新されない。ってことはUpdatePanelは5秒ごとに更新されている。 ページをリロードすると、DBの反映が表示される。 なにぶん初心者で。。。やり足りないことや、違うよ的な情報をいただけましたら幸いです。 よろいしくお願いいたします。 |
|
投稿日時: 2008-07-08 15:27
自己回答
TickEvent内で GridView1.DataBind() でデータが反映されました。もう少しいじってみます。 |
|
投稿日時: 2008-07-08 21:38
GridViewのEnableViewStateをfalseにすればDataBindはいらないと思います。
あと、一回目はGridViewのデータがでるようになってるんですよね。であれば UpdatePanelのUpdateModeをtrueにしておけばUpdatePanel1.Updateもいらないと思います。 他のコントロールとの絡みがあるならしょうがないですが。 |
|
投稿日時: 2008-07-08 22:16
ありがとうゴザイマス。
ご指摘のとおり、 GridViewのEnableViewStateをfalse → DataBind不要 UpdatePanelのUpdateModeをConditional → updatepanle1.update()不要 でした。 結果的にTimerでTickイベントを発生してあげるだけでDBの最新情報が表示されるようになりました。 |
1