4

使用 KendoUI 显示一个弹出窗口,我注意到如果我通过调用refresh它来重用现有窗口,它会短暂显示旧内容,直到 AJAX 请求完成。

我的代码:

function clickHandler(evt) {
    evt.preventDefault();

    var dta=this.dataItem($(evt.currentTarget).closest("tr"));

    convertWindow.refresh({ type: "GET", url: "CallMeConvert?AppointmentId="+dta.AppointmentId});
    convertWindow.center();
    convertWindow.open();
    }

有什么办法可以防止这种情况发生,还是我每次都必须销毁并重新创建窗口?

4

2 回答 2

8

最后,这很简单。您只需要在重置之前立即清除 HTML,如下所示:

$("#convert-window").html("");
convertWindow.refresh({ type:"GET", url:url }).center().open();
于 2013-10-04T17:21:11.353 回答
0

尝试在开始刷新时而不是在刷新完成时打开窗口。您需要做的是使用该refresh事件:

function clickHandler(evt) {
    evt.preventDefault();

    var dta=this.dataItem($(evt.currentTarget).closest("tr"));

    converWindow.bind("refresh", function() {
        convertWindow.center().open();
    });

    convertWindow.refresh({ type: "GET", url: "CallMeConvert?AppointmentId="+dta.AppointmentId});
}

注意您实际上不需要bind refresh每次都事件,您可以在窗口初始化期间定义它。

var convertWindow = $("#my_window").kendoWindow({
    ...
    refresh : function () {
        convertWindow.center().open();
    }
});
于 2013-10-04T04:47:14.153 回答