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