使用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();
}
有没有办法防止这种情况发生,或者每次都必须销毁并重新创建窗口?
答案 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();
}
});