個人的には、すべてのコントロール バインドをサーバー上で行うのが好きです (たとえば、ドロップダウンの入力/バインド、テキスト ボックスへの入力など)。ページが読み込まれると、ページ上のすべてのコントロールをバインドする BindControls() を呼び出します。ユーザーが UpdatePanel 内のドロップダウン オプションを変更すると、ポストバックでサーバーにヒットし、BindControls() を再度呼び出します。
問題は、UpdatePanels が、UpdatePanel 内のコントロールのビューステートだけではなく、ページのビューステート全体をやり取りしているように見えることです。これがなぜなのかはわかりませんが、速度に関する限り、かなり大きなパフォーマンス ヒットです。
以前、サーバーに渡すコントロールのビューステートを指定できる Telerik の RadAjaxManager を使用しました。クライアント側のコードを必要とせず、ビューステートの転送を小さく保ちながら、すべてのバインディング ロジックをサーバーに統合できるため、これは完璧でした。
誤解しないでほしいのですが、私は AJAX、Json、および JavaScript が大好きですが、それらを使用してバインド操作を実行するのは好きではありません。そうは言っても、特定のコントロールのビューステートのみを転送するように UpdatePanel を構成する方法を見つけるか、サーバー上のコントロールをバインドして更新された HTML をサーバーに配信できる代替コントロールを見つける方法を見つけたいと思います。クライアント。