我有一个KendoUI网格。其中,其中一列定义了自定义命令:
command: { text: "Add", click: addLine }
当用户点击按钮时,此网格显示在Kendo窗口内。同一个按钮会重新呈现网格并首先清除HTML:
$("#kendoGridQuick").html("");
$("#kendoGridQuick").kendoGrid({
创建网格后,窗口显示。我的问题是,这个命令被完全激发了很多次,我已经显示了这个窗口并创建了网格。所以它第一次工作正常,但是第二次被调用两次,第三次被调用三次等等。
答案 0 :(得分:3)
问题在于您没有销毁Grid
对象。在清除HTML之前,您应该调用Grid.destroy
方法。
var grid = $("#kendoGridQuick").data("kendoGrid");
// detach events
grid.destroy();
此外,尝试节省CPU和内存关闭和打开但不破坏网格。只要您始终使用相同的基本结构,您就可以在窗口即将打开时重新绑定/重新读取新数据(更快更简单)。
答案 1 :(得分:2)
而不是浪费CPU创建和销毁网格。在加载页面时仅初始化网格一次,并在单击按钮时显示/隐藏窗口(您不需要重新初始化它)。
如果您仍然遇到困难,请分享一些代码,以便我们可以看到您在何处以及如何初始化网格。
答案 2 :(得分:-1)
这是剑道网格。但是,我们可以在再次出价数据之前处理以下内容以清除网格。
$("#gridSaleEvent&#34)的HTML。("&#34);