使用AngularJs删除Kendo UI Grid中的单个项目

时间:2015-04-10 09:10:42

标签: angularjs kendo-ui

我在AngularJs的网站上有一个Kendo UI Grid。如何更新/添加/删除DataSource中的单个数组项,并在不刷新整个网格的情况下进行网格更新?

如果我尝试更换DataSource对象,网格确实有足够的更新,但所有分组,列排序和排序都会重置。

更新#1 - 持续滚动位置

我通过阅读这篇文章来实现这一目标:http://www.telerik.com/forums/kendo-grid-how-to-keep-scoll-position-after-calling-sync-(with-batch-property-set-to-true)以此代码结束:



$scope.activityGridOptions = {
  scrollable: true,
  dataBound: function(e) {
    restoreScrollState();
  },
  dataBinding: function(e) {
    saveScrollState();
  }
  // ...
}

function saveScrollState() {
  $("#kendogrid .k-grid-content").scroll(function () {
    webStorage.local.add("gridScrollTop", $(this).scrollTop());
    webStorage.local.add("gridScrollLeft", $(this).scrollLeft());
  });
}

function restoreScrollState() {
  // Restore scroll state
  $("#kendogrid .k-grid-content").scrollTop(webStorage.local.get("gridScrollTop"));
  $("#kendogrid .k-grid-content").scrollLeft(webStorage.local.get("gridScrollLeft"));
}




更新#2:Angular ui-grid

在与Kendo UI Grid争夺两周之后,我终于在昨天晚上放弃了整个框架。然后我选择了其中一个顶级的其他网格 - 最后得到Angular ui-grid,我能够在大约7个小时的工作后编程替换Kendo UI Grid。

我不是说Kendo UI是不好的软件,但对我而言,它似乎并不能说好Angular。至少不符合我的具体要求。

1 个答案:

答案 0 :(得分:1)

DataSource公开了您可以使用的以下方法: - add - at - get - insert - remove

使用这些,您可以更新/添加/删除DataSource中的项目,而无需完全替换它。 所有这些方法都将DataSource设置为“脏”,因此UI会自动更新。