如何从Kendo网格中删除所有行

Rik*_*tel 24 javascript jquery kendo-ui kendo-grid

我在用Kendo grid.

我想删除所有Kendo grid使用的行JavaScript.

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

Rik*_*tel 51

尝试以下代码.

$("#Grid").data('kendoGrid').dataSource.data([]);
Run Code Online (Sandbox Code Playgroud)

为演示点击这里

  • @PaulGorbas在[他的答案](http://stackoverflow.com/a/40941272/298278)中提到了这个问题。更新了答案中的小提琴以演示[问题](http://jsfiddle.net/fsvSE/115/)。如果删除所有行,然后单击列标题以对数据进行排序,则会返回。 (2认同)

Pau*_*bas 6

这实际上并不会移动网格的基础数据,而只是清除正在显示的行。如果对“空”网格进行排序,则所有行将重新出现在基础数据中。

如果不是像这样显示删除数据,则:

dataSource.data([]);
Run Code Online (Sandbox Code Playgroud)

而是将其替换为新的数据数组,例如称为result.Data ..,如下所示:

dataSource.data(result.Data)
Run Code Online (Sandbox Code Playgroud)

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

有谁知道如何实际更改数据并使新数据替换网格的源数据?

更新:答案是还可以使用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
Run Code Online (Sandbox Code Playgroud)


小智 5

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

 $scope.gridData.data([]);
Run Code Online (Sandbox Code Playgroud)

哪里gridDatak-data-source="gridData"