【问题标题】:How to refresh columns of KendoUI/Angular grid如何刷新 Kendo UI/Angular 网格的列
【发布时间】:2015-03-28 04:23:45
【问题描述】:

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

【问题讨论】:

  • 据我了解,没有直接的方法可以这样做,但您可以从该 div / 父级中删除元素(网格),并使用新的配置或列和数据重新创建整个网格。
  • 如何重新创建角度网格?使用 jquery?
  • 我对angular不是很熟悉,所以无法评论如何实现网格重新创建。但是使用 Jquery / JS 就简单多了。
  • 有更新吗?我有同样的问题。我有角度网格和两个按钮,一个绑定 5 列,另一个绑定 2,但是当我单击它们时,网格总是显示 5 列....如何解决这个问题?

标签: angularjs kendo-ui kendo-grid


【解决方案1】:

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

例如:

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

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

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

More information about k-rebind

希望这会有所帮助!

【讨论】:

  • 我尝试使用 k-rebind 但遇到了很多问题,最终将 jQuery KendoGrid 包装在指令中
  • 您的解决方案工作正常,但... 不起作用
  • 不使用js有什么办法吗?我有同样的问题。我有角度网格和两个按钮,一个绑定 5 列,另一个绑定 2,但是当我单击它们时,网格总是显示 5 列....如何解决这个问题?
【解决方案2】:

只是为了扩展 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>

【讨论】:

    猜你喜欢
    • 2017-06-10
    • 2013-05-04
    • 2014-03-18
    • 2018-03-12
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    相关资源
    最近更新 更多