2013-08-19 22 views
7

Qualcuno sa se la griglia del kendo potrebbe essere sempre impostata in modalità modifica in ogni momento?Kendo Grid può essere sempre in modalità di modifica?

Non vogliamo che l'utente faccia clic su una cella o su un pulsante per attivare la modalità di modifica. Vogliamo che i widget siano visualizzati e disponibili in ogni momento.

È possibile a tutti?

risposta

7

Fuori dalla scatola, non esattamente. Puoi abilitare la modifica di Batch che visualizza tutto normalmente, ma facendo clic su una cella lo cambi automaticamente in un editor.

Example

Per abilitarlo, impostare { batch: true } sulla origine dati della tabella. Altrimenti sei pronto per uno scripting più profondo. Controllato e chiamando semplicemente editRow su tutte le righe non lo fa. Il comportamento predefinito consiste nel disabilitare la modifica su una riga quando una nuova viene portata in modalità di modifica.

Quindi, l'occhiata rapida dice la modalità Batch - non visualizzerà gli editor tutto il tempo, ma funziona e pronto all'uso.

7

Oltre all'utilizzo della modalità di modifica in batch, è possibile provare a impostare il modello di ogni colonna e associare gli elementi di input agli elementi dati utilizzando MVVM.

$("#grid").kendoGrid({ 
    dataSource: { 
    schema: { 
     model: { 
     id: "id", 
     fields: { 
      id: { editable: false } 
     } 
     } 
    } 
    data: [ 
     { id:1, age: 30, name: "John Doe" } 
    ] 
    }, 
    columns: [ 
    { field: "id", width: 50 }, 
    { field: "age", template: "<input data-bind='value: age' data-role='numerictextbox'>" }, 
    { field: "name", template:"<input data-bind='value: name' >" } 
    ], 
    dataBound: function() { 
    var rows = this.tbody.children(); 
    var dataItems = this.dataSource.view(); 
    for (var i = 0; i < dataItems.length; i++) { 
     kendo.bind(rows[i], dataItems[i]); 
    } 
    } 
}); 

Ecco una demo live: http://jsbin.com/ApoFobA/2/edit

+0

Grazie per quello. Questa è la risposta più vicina a ciò di cui ho bisogno. – ThiagoPXP

+0

Grazie anche a te. Questo ha funzionato alla perfezione fino a quando non ho abilitato il raggruppamento e dopo aver raggruppato per colonna i campi di input sono stati cancellati. Un problema, uno in più ... :) – wavedrop

1

ho trovato la risposta di cui sopra per essere eccellente. Un problema però è che Kendo non pulisce i collegamenti quando aggiorna la griglia (come quando si ordina o si filtra o quando viene chiamato refresh()) e cancella gli elementi DOM della griglia. Il risultato è che i dati avranno un numero crescente di eventi di "modifica" in coda - un po 'di perdita di memoria. Questo può essere evitato svincolando l'evento DataBinding, come di seguito:

dataBinding: function() { 
    var rows = this.tbody.children(); 
    for (var i = 0; i < rows.length; i++) { 
    kendo.unbind(rows[i]); 
    } 
} 
Problemi correlati