J'ai une grille Kendo et je mets cette source de données
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("GetWorker", "Worker"))
J'ai un bouton sur ma page et je veux changer de source de données lorsque j'appuie sur ce bouton (utilisez Java). Je veux faire quelque chose comme ça
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("GetDisabled", "Worker"))
J'essaye de faire comme ça
var grid = $("grid").data("kenodGrid");
grid.dataSource().read()
mais je ne sais pas quoi faire après grid.dataSource (). comment puis-je changer la source de données? Thnaks et j'espère pour vous aider
Je pense que vous devez d'abord créer une nouvelle DataSource (voir http://demos.kendoui.com/web/datasource/remote-data.html pour les données distantes)
var dataSource = new kendo.data.DataSource({
data: [
{ name: "John Doe", age: 33 }
]
});
Et puis ajoutez-le à la grille en utilisant la méthode setDataSource ( http://docs.kendoui.com/api/web/grid#methods-setDataSource )
var grid = $("#grid").data("kendoGrid");
grid.setDataSource(dataSource);
Puisque vous souhaitez modifier l'action de votre lecture, vous pouvez simplement le faire. Selon cette question vous pouvez simplement définir l'URL de lecture de la source de données et actualiser vos données de grille avec quelque chose comme ça:
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url = "newUrlPath";
grid.dataSource.read();
grid.refresh();
Si vous ne voulez pas vraiment changer votre source de données mais vos données et éventuellement obtenir votre liste d'éléments d'une demande ajax en tant que json, je vais écrire ma façon de le faire comme exemple au cas où quelqu'un le voudrait.
var jsonData = ... // From some ajax response
var newKendoDatasource = newKendoDS(jsonData);
$("#grid").data("kendoGrid").dataSource.data(newKendoDatasource._data);
La fonction est à peu près comme ci-dessus
function newKendoDS(ndata) {
var datasource = new kendo.data.DataSource({ data: ndata });
datasource.read(); // In order to refresh
return datasource;
}