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.
essayez de suivre le code.
$("#Grid").data('kendoGrid').dataSource.data([]);
pour la démo cliquez ici
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
Si vous travaillez avec Angularjs, essayez de suivre ce code:
$scope.gridData.data([]);
Où gridData
est k-data-source="gridData"
CA marchait bien pour moi.
var grid = $("#Grid").data("kendoGrid");
var newDataSource = new kendo.data.DataSource({
data: []
});
grid.setDataSource(newDataSource);