web-dev-qa-db-ja.com

1つの更新パネルと複数の更新パネル

特定の条件やボタンのクリックなどで最適に更新する必要があるさまざまなフィールドを表示するASP.NET Webページがあります。目に見えるポストバックを回避するためにASP.NET更新パネルを使用して、AJAXを実装しました。

元々、この能力を必要とするのはoneエリアのみでした...すぐに他のフィールドに拡大しました。現在、私のWebページには複数のUpdatePanelがあります。

フォーム全体を単一のUpdatePanelでラップするのが良いのか、それとも個々のUpdatePanelを保持するのが良いのかと思います。

ASP.NET UpdatePanelを使用するためのベストプラクティスは何ですか?

47
mattruma

複数のパネルがはるかに優れています。 UpdatePanelsを使用する主な理由の1つは、トラフィックを減らし、必要な部分だけをネットワーク経由で送受信するためです。 1つの更新パネルのみを使用することで、毎回ほぼ完全なポストバックを実行し、ちらつきのないページを更新するために小さなJavascriptを使用しているだけです。

一緒に更新する必要があるページの一部がある場合、他のパネルをトリガーして更新するようにトリガーする方法があります。しかし、間違いなく複数の更新パネルを使用する必要があります。

48
Wayne

複数の更新パネルがある場合は注意が必要になることに注意してください。 UpdateModeがConditionalに設定されていることを確認してください。そうでない場合、1つの更新パネルがサーバーに「ポストバック」されると、それらすべてがポストバックされます。

これらのツールを使用することを強くお勧めします

Web開発ヘルパー (ここに簡単なチュートリアルがあります Web開発ヘルパーとASP.NET Ajax

フィドラー

36
Jon

これらの回答はいずれも、選択肢間の保守性の比較については言及していません。 3番目のオプションは、更新パネルを使用せず、リバースajaxを使用することです。興味深いプロジェクトをチェックしてください: PokeIn および VisualJS.NET

7
BigbangO

POST UpdatePanelが生成するサイズのために、可能であれば複数のUpdatePanelを使用するのが最善だと思います。手動でAJAXフィールドの更新などの小さなことへのアプローチ。WPFは、これを実現するためのいくつかのJavaScript関数とメソッドを提供します。役立つリンクがいくつかあります。

5
craigmoliver

単一の更新パネルを使用するのではなく、複数の更新パネルを使用することに完全に同意します。ページ全体をポストバックする場合、特定の部分のみをポストバックする場合は、単一の更新パネルを使用することをお勧めします。

すべての更新パネルでupdatemode = "conditional"になっていることを確認してください。そうしないと、すべての更新パネルが更新されます。

また、更新パネルの完全な使用法については、以下の投稿をチェックしてください

http://www.codeproject.com/KB/aspnet/Select_List_Box.aspx

2
Chintan

複数のアップデートパネルをお勧めします。複数のupdatepanelを使用すると、asp.net Webアプリケーションでupdatepanelを使用する本当の意味が維持されます。また、1つの更新パネルを別の更新パネルからトリガーすることもできるため、ページ全体のコントロールと動作のコーディングが簡単になります。

2
sangam

ベストプラクティスについてはわかりませんが、私の経験では、複数のパネルがうまく機能し、一度に送信されるデータの量が減り、結果として全体の応答時間が増加します。複数のパネルにより、各サーバー呼び出しの複雑さも軽減されます。

1
Raithlin