Как удалить все строки из сетки Kendo

Я использую Kendo grid.

Я хочу удалить все строки из Kendo grid с помощью JavaScript.

Я удалил их с помощью цикла for, но я хочу найти лучший способ удалить все строки.

Ответы

Ответ 1

попробуйте следующий код.

$("#Grid").data('kendoGrid').dataSource.data([]);

для демонстрации нажмите здесь

Ответ 2

Если вы работаете с Angualrjs, попробуйте следовать этому коду:

 $scope.gridData.data([]);

Где gridData есть k-data-source="gridData"

Ответ 3

Это не реально перемещает базовые данные сетки, оно просто очищает отображаемые строки. Если вы отсортируете "пустую" сетку, все строки снова появятся из базовых данных.

Если вместо удаления данных, как показано ниже:

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

Ответ 4

Это сработало для меня.

var grid = $("#Grid").data("kendoGrid");
var newDataSource = new kendo.data.DataSource({
    data: []
});
grid.setDataSource(newDataSource);