È possibile impostare a livello di programmazione il parametro sort di un KendoUI DataSource prima di leggere i dati ed evitare una seconda lettura del server? L'ambito sta impostando un ordinamento predefinito su una determinata interazione utente. Come?KendoUI: impostazione della griglia in ordine programmato
Ecco un esempio di ciò che sto cercando di fare, perché le risposte non stanno arrivando al punto (o forse non sto capendo come funzionano le cose).
definisco un Kendo DataSource con un ordinamento iniziale:
var datasource = new kendo.data.DataSource({
parameterMap: function (inputParams, operation) {
return JSON.stringify(inputParams)
},
// default sort
sort: [
{field: "field_1", dir: "asc"},
{field: "field_2", dir: "asc"}
]
});
Questa DataSource è associato a una griglia Kendo:
var grid = $("element").kendoGrid({
dataSource: datasource
});
Poi ho un pulsante che chiama una "leggere" sulla DataSource e popola la griglia con la prima pagina di dati:
$("#btn").bind("click", function(e) {
datasource.page(1);
});
In questo modo, dopo aver fatto clic sul bu tton, l'utente riceve i dati ordinati da "campo_1" e "campo_2", e la griglia mostra questo tipo sulle intestazioni delle colonne. L'utente può quindi riordinare i dati in qualsiasi modo, facendo clic sull'intestazione della colonna.
Quello che vorrei fare è ripristinare l'ordinamento predefinito a quello iniziale, come definito nella dichiarazione DataSource, mostrarlo di nuovo sulle intestazioni di colonna e senza creare nuovamente un nuovo DataSource.
Qualcosa di simile:
$("#btn").bind("click", function(e) {
datasource.sort = [
{field: "field_1", dir: "asc"},
{field: "field_2", dir: "asc"}
];
datasource.page(1);
});
Le soluzioni fornite non sembrano raggiungere il punto (e ancora non capisco il motivo per cui sto perdendo punti reputazione per una domanda legittima, che sembra non essere così banale e dovrebbe essere affrontato dal quadro).
Per favore, mostrami che ho torto (non mi sto preoccupando di perdere la reputazione - mi piacerebbe solo capire come risolvere un problema). Grazie!
Suppongo che non sia possibile. –
sembra funzionare in JS facendo $ grid.dataSource.sort ( {field: "A", dir: "desc"}, {field: "B", dir: "asc"}, {field: "C", dir: "asc"}, {field: "D", dir: "desc"} ); L'unico problema che vedo è che gli indicatori di ordinamento non vengono visualizzati su tutte le colonne, – topwik