2013-05-15 1 views
6

Attualmente ho una griglia Kendo-UI. Ha poche colonne dove l'utente può ordinare, funziona alla grande. Ho anche un link dettagli su ogni riga, quindi se l'utente fa clic su questo vengono portati a una pagina dei dettagli. Ho bisogno di passare l'ordinamento corrente nella pagina dei dettagli come valore. Come posso ottenere l'ordinamento attuale? c'è un evento a cui posso legare? GrazieCome ottenere l'evento di ordinamento della griglia di kendo ui?

+0

Se il collegamento è ciò che fa scattare con i dettagli, perché non si ottiene ordinamento corrente in là? – OnaBai

+1

ma come faccio a sapere quale ordinamento di colonna è stato selezionato? se discendente o ascendente? cioè se ho 4 colonne. Ordino su Column 3 desc. come lo so? – user2206329

+0

Per favore, controlla la mia risposta – OnaBai

risposta

11

È possibile ottenere la configurazione di ordinamento quando si desidera utilizzare sort method.

Esempio: essere grid il id della griglia. Fare:

// Get the grid object 
var grid = $("#grid").data("kendoGrid"); 
// Get the datasource bound to the grid 
var ds = grid.dataSource; 
// Get current sorting 
var sort = ds.sort(); 
// Display sorting fields and direction 
if (sort) { 
    for (var i = 0; i < sort.length; i++) { 
     alert ("Field:" + sort[i].field + " direction:" + sort[i].dir); 
    } 
} else { 
    alert("no sorting"); 
} 
+0

che è esattamente quello che stavo cercando .. grazie per questo. Sai come ottenere il valore del numero di riga di una riga cliccata? se clicco sulla quinta riga per avvisare 5 .. o se vado alla quarta pagina e clicco sulla quinta per farla allerta 45? – user2206329

+1

Come raccomandazione generale, non si dovrebbe fare una nuova domanda in un commento poiché le possibilità che altri la leggano sono piuttosto basse. Detto questo, dovresti usare 'dataSource.indexOf' dell'elemento corrispondente alla riga cliccata, e conosci la riga usando qualcosa come' grid.dataItem ($ (this) .closest ("tr")); 'all'interno del gestore dell'evento 'click'. – OnaBai

+0

Fresco, l'unico problema è che una volta applicato l'ordinamento, l'ID è sempre lo stesso. Mi sarei aspettato che il primo elemento fosse indice di 1. Ma quando gli articoli sono ordinati per desc il primo elemento è 1200. Voglio solo un numero di riga per ogni riga indipendentemente dall'ordinamento. grazie per questo lo posterò come una nuova discussione. Ma è così difficile pubblicare una domanda sul flusso dello stack. Continua a dire che la domanda non passa la loro convalida. – user2206329

0

mi sono imbattuto in questo bisogno oggi e ho imparato che l'evento è ora presente a partire dal 2016 R3 rilascio (2016.3.914).

Esempio utilizzo:

<div id="grid"></div> 
<script> 
    $("#grid").kendoGrid({ 
    columns: [ 
     { field: "name" }, 
     { field: "age" } 
], 
dataSource: { 
    data: [ 
     { id: 1, name: "Jane Doe", age: 30 }, 
     { id: 2, name: "John Doe", age: 33 } 
    ], 
    schema: { 
     model: { id: "id" } 
    } 
    }, 
    sortable: true, 
    sort: function(e) { 
     console.log(e.sort.field); 
     console.log(e.sort.dir); 
    } 
    }); 
</script> 

See: http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-sort