如何刷新 KendoUI/Angular 网格的列

How to refresh columns of KendoUI/Angular grid

根据Kendo UI/Angular文档(see here),网格不支持在实例化小部件后重新定义列。这就是 Kendo 提供 k-ng-delay 关键字的原因。这很好用,但是我需要多次重新定义网格列,而不仅仅是一次。有没有办法在 Angular 中以编程方式重新创建网格?或者关于如何多次重新定义网格列的任何其他想法?

您应该使用 k-rebind 属性让小部件在某些范围变量更改时自动更新:

例如:

<div kendo-grid="grid" k-options="gridOptions" k-rebind="gridOptions">
</div>

在这种情况下,我已指定如果更新 gridOptions 范围变量,则需要销毁并重新创建网格。

我创建了一个演示:http://plnkr.co/edit/sMaIMfrEw5hFRLzFpXvn

More information about k-rebind

希望对您有所帮助!

只是为了扩展 Paulo Soto 的回答(谢谢!)

我正在自动生成列,这就是我如何重新绑定到一个全新的结果集 + 列架构:

var grid = $("#grid").data("kendoGrid"); $scope.mainGridOptions.columns = columnSchema.COLUMNS; $scope.mainGridOptions.dataSource.schema = columnSchema.SCHEMA; $scope.mainGridOptions.dataSource.data = data;

网格如下所示:

<kendo-grid id="grid" class="qs-site-plannerGrid" k-options="mainGridOptions" k-rebind="mainGridOptions">    </kendo-grid>