如何刷新KendoUI / Angular网格的列

时间:2015-01-29 03:01:21

标签: angularjs kendo-ui kendo-grid

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

2 个答案:

答案 0 :(得分:6)

当某个范围变量发生变化时,您应该使用 k-rebind 属性来自动更新窗口小部件:

例如:

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

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

我创建了一个演示:https://stackoverflow.com/a/28418469/4713311

http://plnkr.co/edit/sMaIMfrEw5hFRLzFpXvn

希望这有帮助!

答案 1 :(得分:0)

只需扩展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>