2011-11-07 19 views
0

定義されていませんデータベース。sender._postBackSettings.sourceElementは、これは私がやろうとしているものです

updatepanelがデータを取得しているうちに、特定の更新パネルが終了したときに非表示にするupdateprogressを表示します。私はまた、任意の相互作用から画面を「ブロック」したいと思う。データがロードされた後、フォームに追加のボタンがあり、部分ポストバックの場合はすべてをブロックしたいと思います。

$(document).ready(function() 
     { 
      if(<% =(Not Page.isPostBack).ToString().ToLower() %>) 
      { 
      __doPostBack('upShipping'); 
      } 
     } 
     function pageLoad() { 
      var prm = Sys.WebForms.PageRequestManager.getInstance(); 
      prm.add_beginRequest(BeginRequestHandler); 
      prm.add_endRequest(EndRequestHandler); 
     } 
function BeginRequestHandler(sender, args) 
      { 
       $('.blur').css("display", "block"); 
       if (args._postBackElement.id == 'upShipping') { 
        $get('divCalculating').className = 'Show'; 
       } 
      } 


     function EndRequestHandler(sender, args) 
      { 
       $('.blur').css("display", "none"); 
       if (sender._postBackSettings.sourceElement.id == 'upShipping') 
       { 
        $get('divCalculating').className = 'Hidden'; 
       } 
       } 

私は、画面上で「クリック」していない場合は、すべてが素晴らしい作品:ここ

はコードです。しかし、updatepanelが "EndRequestHandler"を起動していないときに画面上のどこかをクリックするだけで、起動せず、ロード中のGIFとブロックされた画面が表示されます。 ブラウザのエラーコンソールに次のエラーが表示されます。sender._postBackSettings.sourceElementは定義されていません

アイデアはありますか?

ありがとうございます!何らかの理由sender._postBackSettings.sourceElementについては

ニック

答えて

0

EndRequestHandlerにNULLとして戻って来続けました。

グローバル変数を定義してBeginRequestHandlerに値を割り当て、その代わりにその値をEndRequestHandlerにチェックしました。
これで問題は解決しました。

関連する問題