【C#、VB】UpdatePanelの使い方

UpdatePanelとは、部分レンダリングを可能にするコントロールです。

使い方にちょっと癖があるので下記に実装例を載せます。

Button、CheckBox、DropDownListの場合

まずScriptManagerを定義する

その際、EnablePartialRenderingがFalseになっていないことを確認してください。
Falseになっていると部分レンダリングが発生しません。

部分レンダリングを行いたい箇所を囲むようにUpdatePanelを定義する

実際の対象コントロールはContentTemplate内に配置します。

部分レンダリングを発生させるコントロールも全てUpdatePanel内にあるのなら、これだけでOKなのですが、部分レンダリングを発生させるコントロールがUpdatePanel外にある場合、TriggersのAsyncPostBackTriggerで、そのコントロールを指定してあげます。

ただし、なぜかDropDownListコントロールは、UpdatePanel内にあってもTriggersで指定してあげないとダメです。

ListViewの場合


ListViewでも基本は同じですが、注意する点としてListViewを囲むようにUpdatePanelを定義することです。
子要素内でUpdatePanelを指定しても、エラーにはなりませんが思うような動きにはなりません。

また、部分レンダリングを発生させるコントロールには、ClientIDMode=”AutoID”属性を付加します。
この設定がないと複数行に渡るコントロールのIDがうまく取得できません。

また、ListView内のDropDownListだとTriggers指定がなくても問題なく動きます。
この辺りはちょっと謎ですね。

下記がよくまとまっていて参考になりました。
Update Panelについての備忘録(ステートレス/フル通信の違い)

jQueryを使った非同期処理がしたい場合はこちら

【C#、VB】jQueryを使ったAjax処理

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


ABOUTこの記事をかいた人

子どもが産まれたことをきっかけに働き方を見直し、フリーランスSEになった30代の父親。 埼玉県某市在住。 妻と娘(5歳)とペット(フェレット)で、日々悩みながらも楽しく過ごしています。