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 类

Sys.Application.load Event

Sys.WebForms.PageRequestManager Class

概念

Ajax Client Life-Cycle Events