web-dev-qa-db-fra.com

Comment supprimer toutes les lignes d'une grille Kendo

J'utilise Kendo grid.

Je souhaite supprimer toutes les lignes de Kendo grid en utilisant JavaScript.

Je les ai supprimés en utilisant une boucle for mais je veux trouver le meilleur moyen de supprimer toutes les lignes.

24
Rikin Patel

essayez de suivre le code.

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

pour la démo cliquez ici

51
Rikin Patel

Cela ne déplace pas vraiment les données sous-jacentes de la grille, cela efface simplement les lignes affichées. Si vous triez la grille "vide", toutes les lignes réapparaissent à partir des données sous-jacentes.

Si au lieu de supprimer vos données comme indiqué comme ceci:

dataSource.data([]);

et au lieu de cela, remplacez-le par un nouveau tableau de données, par exemple appelé result.Data .. comme ceci:

dataSource.data(result.Data)

vous verrez l'échange de données, mais si tri ou page, les données d'origine sont à nouveau affichées.

Quelqu'un sait-il comment modifier réellement les données et faire remplacer les nouvelles données par les données sources de la grille?

MISE À JOUR: La réponse est d'utiliser également la méthode 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
6
Paul Gorbas

Si vous travaillez avec Angularjs, essayez de suivre ce code:

 $scope.gridData.data([]);

gridData est k-data-source="gridData"

5
Shafeeq

CA marchait bien pour moi.

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