如果关闭弹出窗口并打开它,如何防止 kendo ui 显示多于一个网格?
How to prevent kendo ui from displaying more that one grid if a close the popup and open it?
我有一个 jquery 对话框,其中包含一个 Kendo UI 网格。
$("#" + popupElementName).dialog({
modal: true,
open: function () {
//Kendo grid here ...
},
close: function (event, ui) {
$(this).dialog("destroy").remove();
}
});
如果我单击 X 符号关闭对话框然后再次打开弹出窗口,我会得到 2 个 Kendo 网格。我得到的网格与我关闭和打开 jquery 对话框的次数一样多。
经过一些研究,我发现我可以使用命令 destroy 来初始化对话框。不幸的是,它似乎不起作用。我仍然得到多个网格。
部分帖子建议添加删除。但是,使用 remove 的问题是对话框不再工作,因为不再有在对话框中转换的 div。
您不应在每次打开事件时都初始化网格。
var grid= $("#grid").data("kendoGrid");
if (!grid) {
//initalize if not already initialized
}
否则你应该销毁 kendo 网格并在关闭时清除 window 并在每次打开时重新初始化网格
open: function () {
//Kendo grid here ...
},
close: function (event, ui) {
$("#grid").data("kendoGrid").destroy();
$(this).empty();
}
我有一个 jquery 对话框,其中包含一个 Kendo UI 网格。
$("#" + popupElementName).dialog({
modal: true,
open: function () {
//Kendo grid here ...
},
close: function (event, ui) {
$(this).dialog("destroy").remove();
}
});
如果我单击 X 符号关闭对话框然后再次打开弹出窗口,我会得到 2 个 Kendo 网格。我得到的网格与我关闭和打开 jquery 对话框的次数一样多。
经过一些研究,我发现我可以使用命令 destroy 来初始化对话框。不幸的是,它似乎不起作用。我仍然得到多个网格。
部分帖子建议添加删除。但是,使用 remove 的问题是对话框不再工作,因为不再有在对话框中转换的 div。
您不应在每次打开事件时都初始化网格。
var grid= $("#grid").data("kendoGrid");
if (!grid) {
//initalize if not already initialized
}
否则你应该销毁 kendo 网格并在关闭时清除 window 并在每次打开时重新初始化网格
open: function () {
//Kendo grid here ...
},
close: function (event, ui) {
$("#grid").data("kendoGrid").destroy();
$(this).empty();
}