KendoUI窗口闪烁旧内容

时间:2013-10-04 01:06:49

标签: javascript ajax kendo-ui

使用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();
    }

有没有办法防止这种情况发生,或者每次都必须销毁并重新创建窗口?

2 个答案:

答案 0 :(得分:6)

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

$("#convert-window").html("");
convertWindow.refresh({ type:"GET", url:url }).center().open();

答案 1 :(得分: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事件,您可以在Window初始化期间定义它。

var convertWindow = $("#my_window").kendoWindow({
    ...
    refresh : function () {
        convertWindow.center().open();
    }
});