2009-02-26 5 views
0

私はAJAXの問題があります。 ASP.NETページには、ポストバック時に無効にして再度有効にするボタンがいくつかありますが、これは他の理由で行う必要があります。 AJAXを使用するアップデートパネルには2つのドロップダウンメニューがあります。最初のドロップダウンメニューで2番目のドロップダウンメニューが更新されます。クライアント側onblurが最初のドロップダウンに__doPostBackを呼び出し、onselectedindexchangedイベントハンドラへのサーバー呼び出しがドロップダウンリストで何か変更された場合に呼び出されます。問題は、クライアントonblurイベントが速過ぎると、ポストバックが速すぎてボタンが無効のままになっているように見えることです。誰かがAJAX競争条件を手伝ってボタンを無効にすることはできますか?

たとえば、ユーザーがドロップダウンリストからすばやくタブを移動した場合に発生します。私は、サーバーの応答が少し遅く、部分的なレンダリングが事態を混乱させる場合、これがAJAXの問題だと読んだことがあります。

誰にでも解決策がありますか?

+0

私たちがあなたを助けるためには、より多くの情報が必要です。特定のAJAXフレームワークを使用していますか? – Eddie

答えて

0

一般的な解決方法は、コントロールでカウンターを使用することです。デクリメントとディセーブルは、< = 0の場合にのみ有効で、0より大きい場合はインクリメントして有効にしてください。)++/- 演算子はアトムでは保証されませんが、十分に良好です。

0

AJAXの最初の文字が何を表しているかを覚えておいてください:非同期。あなたのコールバックメソッドが実際に実行されるとき、あなたは準備できません。または、2回の呼び出し(AとB)を行うと、AとBの応答が返されている可能性がありますが、次にBとAの応答が返される可能性があります。

0

多分、 onselectedindexchangedイベントメソッドでコードを実行する前に、AJAXメソッドが完了して確認するのを待っています。そうすれば、onselectedindexchangedイベントメソッドはAJAXメソッドが終了していない場合は何もしません。

関連する問題