Telerik Kendogrid destroy()并在新数据源上重新创建表,为什么旧表列仍然存在?

Telerik Kendogrid destroy()并在新数据源上重新创建表,为什么旧表列仍然存在?,telerik,kendo-ui,telerik-grid,kendo-grid,Telerik,Kendo Ui,Telerik Grid,Kendo Grid,在KendoUI网格中调用destroy(),然后在新的数据源上重新创建表时:为什么旧表列仍然存在 这里唯一有发言权的元素是元素。我如何告诉网格读取新的数据源列(它读取所有其他内容都是正确的) (如果我创建了两个不同的元素,它们都会正确填充,但我宁愿保留一个元素,并用destroy和reinit替换元素表)这很可能是因为您没有清除网格容器中的内容。e、 g $('#gridName').data().kendoGrid.destroy(); $('#gridName').empty(); 或更

在KendoUI网格中调用
destroy()
,然后在新的
数据源上重新创建表时:为什么旧表列仍然存在

这里唯一有发言权的元素是元素。我如何告诉网格读取新的数据源列(它读取所有其他内容都是正确的)


(如果我创建了两个不同的元素,它们都会正确填充,但我宁愿保留一个元素,并用destroy和reinit替换元素表)

这很可能是因为您没有清除网格容器中的内容。e、 g

$('#gridName').data().kendoGrid.destroy();
$('#gridName').empty();
或更短的语法

$('#gridName').kendoGrid('destroy').empty();

另一种方式是网格考虑了遗留的旧html—不要忘记网格可以从表中初始化。

我在angular框架中工作,似乎无法使用新数据源和新列重新构建剑道网格。在第二个网格init上没有任何功能。我试过:

  if (vm.mainHierGrid != null) {
            //vm.mainHierGrid.data().kendoGrid.destroy();
            $('#mainGrid').data().kendoGrid.destroy();
            //$('#mainGrid').empty();
            vm.mainHierGrid.destroy();
        }

我只想澄清彼得·苏比夫的最后一点回答,因为它帮助了我:

“不要忘记网格可以从表中初始化,如”

这只是说在HTML中使用了
标记,而不是
标记。使用
标记将网格表数据与网格列分开,因此,当您使用$('#gridName').kendoGrid('destroy').empty()时,它只是销毁/清空表数据,而不是列信息


将HTML
标记切换到
标记以获得所需结果。

销毁剑道网格并重新绑定它

if ($('#kgCopyEntityGrid').hasClass("k-grid")) {
                    $('#kgCopyEntityGrid').kendoGrid('destroy').empty();
                }

                var kgCopyGrid = $("#kgCopyEntityGrid").kendoGrid({
// your code here
                }).data("kendoGrid");

我也遇到了同样的问题,我最终在jQuery中使用了嵌入在角度方向中的网格。我最终遇到了一个Javascript运行时错误:无法获取未定义或空引用的属性“kendoGrid”。当我尝试执行上述javascript时。