我有一个带有自定义弹出窗口的kendo网格:
columns.Command(commands =>
{
commands.Edit();
}
.Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.PopUp))
每次单击编辑按钮时,窗口都会弹出,但是当我关闭它时,窗口不会从DOM中删除。
我看到这篇文章:http://www.telerik.com/forums/popup-windows-do-not-get-removed-from-dom和Telerik说这个问题已得到解决。
有什么事情会导致这种行为?
已更新
如果有帮助,此网格将嵌套在Kendo TabStrip中。除此之外,我没有看到任何与众不同的东西。弹出窗口完全由网格管理。
更新2 所以我得到了网格的未最小化代码(kendo.grid.min.js,版本2013.3.1119,从第1172行开始),将其放入我的项目中并使用两个日志语句修改以下内容以验证销毁被约束并被召唤:
_destroyEditable: function () {
var that = this;
var destroy = function () {
if (that.editable) {
// My edit
console.log("...destroy() called");
that._detachModelChange();
that.editable.destroy();
that.editable = null;
that._editContainer = null;
}
};
if (that.editable) {
if (that._editMode() === "popup") {
// My edit
console.log("Binding destroy() to 'deactivate'...");
that._editContainer.data("kendoWindow").bind("deactivate", destroy).close();
} else {
destroy();
}
}
},
每次单击编辑然后关闭窗口时,我都会看到预期的两条消息,但窗口未被删除。以下是调试器的屏幕截图:
概述的窗口是生成的dom元素。
答案 0 :(得分:1)
经过多次试验和错误以及深度潜水后发现这个问题与我们网站布局中的脚本有关。在某些时候,任何设置剑道脚本的人都不仅要使用“kendo.all.min.js”。但就在它之后,kendo.web.min.js' kendo.aspnetmvc.min.js'然后大约10个单独的剑道。*。js包括网格。
查看此链接后:
http://docs.telerik.com/kendo-ui/getting-started/javascript-dependencies
我意识到该网站正在多次创建这些对象。根据上面的链接删除脚本引用可以解决问题。