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を使った非同期処理がしたい場合はこちら
コメントを残す