これが私がやろうとしていることです -
ドキュメントの準備ができており、ページがポストバックされていない場合は、jQuery を使用して updatepanel の手動ポストバックを発行し、データベースからデータを取得します。
updatepanel がデータを取得している間、特定の 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';
}
}
画面上で「クリック」しないと、すべてうまくいきます。しかし、更新パネルの更新中に画面のどこかをクリックしただけでは、「EndRequestHandler」が起動せず、読み込み中の gif とブロックされた画面で立ち往生します。ブラウザーのエラー コンソールに次のエラーが表示されます。sender._postBackSettings.sourceElement は未定義です。
何か案は?
ありがとう!
ニック