2015-10-15 13 views
8

Ho trovato post con titoli simili ma non riesco ancora a risolvere il problema. Sicuramente sto facendo qualcosa di sbagliato.Selezionare a livello di riga riga griglia Kendo

Nella configurazione a griglia Kendo hanno qualche funzione che prendono contesto (griglia) e riga selezionata leggere:

change: function (e) { 
      refresh(this); 
     } 

Così ho configurato evento "change".

In funzione "refresh (griglia)" Mi è toccato riga selezionata in modo seguente:

refresh: function (grid) {   
    var selectedRows = grid.select(); 
    var selectedRow = grid.dataItem(selectedRows[0]); 
    var id = selectedRow.Id; 
} 

Questo approccio funziona perfetto quando selezionato manualmente fila della griglia. Ma quando seleziono la riga programmaticamente, la variabile "selectedRow" è nullo.

sto selezionando programatically sulla seguente modo:

var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row); 

Come triste in precedenza, nel precedente "refresh (griglia)" metodo selectedRow variabile sarà nullo.

Qualcuno ha qualche opinione al riguardo? Perché è successo?

Grazie

risposta

12

Secondo la documentazione Griglia metodo "select" accetta "stringa" parametro (selettore) o elemento jQuery. Ecco perché, se devi selezionare correttamente la riga, devi modificare il codice corrente come segue:

var grid = $("#grid").data("kendoGrid"); 

//if you are using the "pageable" option of the grid 
//you should get the visible rows using the .view() method 
var models = grid.dataSource.data(); 

var model = rows[rows.length - 1]; 
var lastRowUid = model.uid; 

//find the target row element: 
var row = grid.table.find("[data-uid=" + lastRowUid + "]"); 

grid.select(row); 
+0

Grazie, solo la modifica necessaria era modificare le righe [rows.length - 1]; ai modelli [rows.length - 1]; – s1cart3r

Problemi correlati