28

我正在使用Kendo grid.

我想从Kendo grid使用中删除所有行JavaScript

我使用 for 循环删除了它们,但我想找到删除所有行的最佳方法。

4

4 回答 4

58

尝试遵循代码。

var grid = $("#Grid").data('kendoGrid');           

grid.dataSource.data([]); 
grid.setDataSource([]);

演示点击这里

更新:修复排序问题...谢谢@Windle

于 2013-07-29T07:23:19.933 回答
8

这并没有真正移动网格的基础数据,它只是清除了正在显示的行。如果您对“空”网格进行排序,所有行都会从基础数据中重新出现。

如果不是像这样删除您的数据:

dataSource.data([]);

而是用一个新的数据数组替换它,比如名为 result.Data.. 像这样:

dataSource.data(result.Data)

您将看到数据交换,但如果排序或分页,则会再次显示原始数据。

任何人都知道如何实际更改数据并让新数据替换网格的源数据?

更新:答案是也使用 setDataSource 方法:

var grid = $("#grid").data("kendoGrid");
var dataSource = grid.dataSource;
dataSource.data([]);//clear out old data
dataSource.data(result.Data);//add new data
grid.setDataSource(result.Data);//set the new data as the grids new datasource
dataSource.sync();//refresh grid
于 2016-12-02T21:42:28.820 回答
5

如果您正在使用 Angualrjs,请尝试遵循以下代码:

 $scope.gridData.data([]);

gridData在哪里k-data-source="gridData"

于 2016-03-24T12:21:59.720 回答
2

这对我来说很好。

var grid = $("#Grid").data("kendoGrid");
var newDataSource = new kendo.data.DataSource({
    data: []
});
grid.setDataSource(newDataSource);
于 2017-04-27T10:01:48.770 回答