2

2 つのユーザー コントロールを持つ asp.net ページがあります。それぞれが個別の updatepanel にある 1 つのユーザー コントロールには 3 つのテキスト ボックスがあります。最初のユーザー コントロールのテキスト/フォーカス アウトの変更に基づいて、2 番目の updatepanel を更新したいと考えています。ユーザーコントロールのテキストボックスとページ内の他のコントロールの両方にアクセスし、テキストの変更時に updatepanel を更新するにはどうすればよいですか?

updatepanel1
 user control1
   textbox1
   textbox2
   textbox3

updatepane2
  usercontrol2
  label1

よろしく、 アシフ・ハメド

4

1 に答える 1

1

おっと、UpdatePanels! それは私を元に戻します。UpdatePanels をトリガーしてクライアントから非同期に「ポストバック」することは、常に少し面倒でした。一般的な方法は、AsyncPostBackTrigger を隠しボタンのクリック イベントに登録し、クライアント側でそのクリック イベントを明示的に呼び出すことでした。ただし、間接的なレイヤーをいくつか減らしたソリューションは、ASP.NET AJAX ライブラリの __doPostback() JS 関数を呼び出すことです。

jQuery を使用していると仮定すると (まだ UpdatePanels を使用していることを考えると大げさかもしれません!)、UserControl1 の「focusout」イベントにイベント ハンドラーを追加して、UpdatePanel2 の非同期ポストバックをトリガーすることができます。この JS を UpdatePanels の外に置くことをお勧めします。

$('#userControl1').on('focusout', function() {
  __doPostback('UpdatePanel2UniqueId', '');
});

__doPostback を使用するテクニックをもう少し詳しく説明している良い記事を見つけました。

JavaScript を使用して UpdatePanel を簡単に更新する

于 2012-06-25T00:13:57.647 に答える