共用方式為


isLoading 屬性

取得 Boolean 值,這個值表示網頁是否正在執行回傳或用戶端控制項是否正在載入內容。

注意事項注意事項

若要取得或設定用戶端 API 屬性的屬性值,您必須呼叫名稱前置詞為 get_ 和 set_ 的屬性存取子方法。

 var loading = $find(viewerId).get_isLoading();

傳回值

如果網頁正在執行回傳或用戶端控制項正在載入內容,則為 true,否則為 false。

備註

當用戶端控制項正在載入內容時,它可能正在執行回傳 (例如以新資料重新整理報表) 或回傳後正在瀏覽器中載入其內容。 當網頁或用戶端控制項正在執行回傳時,這個屬性不會造成例外狀況。 請使用這個屬性檢查報表或網頁是否正在更新以及您是否可以存取方法和屬性。

如果您實作自訂工具列,可以使用這個屬性切換工具列項目的啟用和停用狀態。 例如,您可以在 ScriptManager 控制項中加入下列 JavaScript 程式碼的指令碼參考,以切換外部按鈕的啟用和停用狀態。

注意事項注意事項

ScriptManager 控制項會確保在用戶端控制項載入前執行參考的指令碼。這允許事件處理常式處理所有 isLoading 屬性變更。

Sys.Application.add_load(function () {
    $find("ReportViewer1").add_propertyChanged(viewerPropertyChanged);
});

function viewerPropertyChanged(sender, e) {
    if (e.get_propertyName() === "isLoading") {
        var viewer = $find("ReportViewer1");
        var button = document.getElementById("Button1");
        button.disabled = viewer.get_isLoading();
    }
}

萬一用戶端控制項執行長時間執行的回傳,您可以使用 Sys.WebForms.PageRequestManager.abortPostBack 方法取消回傳。 例如:

function cancelPostBack() {
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prmn.get_isInAsyncPostBack()) {
        prm.abortPostBack();
    }
}

請參閱

參考

ReportViewer 類別

其他資源

Ajax Client Life-Cycle Events

Sys.Application.load Event

Sys.WebForms.PageRequestManager Class