Quando esegui il binding a una griglia dell'interfaccia utente Kendo con MVVM, il database viene generato una volta e tutto funziona correttamente. Se è necessario aggiornare tali dati dopo il fatto, ogni volta che si modifica un pezzo di dati su qualsiasi viewmodel (o child viewmodel), l'intera griglia riscrive i dati. Quindi, se hai una cella nella griglia associata a un modello e devi modificare 2 o 3 proprietà sul viewmodel da una fonte esterna di ajax, Databound sparerà 2 o 3 volte per ogni modello che viene modificato, causando la l'intera area visibile da ricollegare. Come possiamo aggiornare molti dati in una sola volta e avere un fuoco di dati una sola volta?Come evitare che l'interfaccia utente di Kendo Grid si ribelli più volte durante l'aggiornamento di ViewModels
risposta
In che modo riordina esattamente la griglia? In pratica se si modificano alcuni dei modelli di questo tipo:
dataItem.set('SomeField','new value');
dataItem.set('someOtherField','other value');
In questo modo la rete sarà infatti legato due volte a causa del MVVM. L'evento change viene attivato ogni volta che si chiama set.
Tuttavia, se si aggiornano i valori di questo tipo:
dataItem.SomeField='new value';
dataItem.someOtherField= 'other value';
The Grid solito reagire al cambiamento e di solito associare nuovamente ri-leggere i valori dai modelli è possibile forzare la griglia di farlo attraverso il refresh Metodo.
$('#gridName').data().kendoGrid.refresh()
Non sono sicuro se c'è un modo per dire temporaneamente alla griglia di interrompere l'ascolto degli eventi e quindi alla fine, risincronizzare una volta. Se c'è, per favore dai la risposta qui! Altrimenti, quello che ho fatto è che non ho passato. Set() per ogni oggetto. Invece, ho aggiornato i dati per tutte le righe impostando i dati direttamente sulla proprietà. Poi, quando sono arrivato all'ultima riga che stavo aggiornando, ho chiamato .set() sull'ultima proprietà che doveva essere aggiornata. Ciò causerà l'attivazione di databound una sola volta e l'intera griglia si aggiornerà con tutti i dati che sono stati modificati. Se non lo fai in questo modo, più righe vengono visualizzate sulla pagina, più tempo è necessario per l'elaborazione. (Potrebbero volerci 20+ secondi prima che l'utente possa fare di nuovo qualcosa.)
Un altro modo è quello di aggiungere semplicemente alcune proprietà fasullo all'ultima voce e cambiare il suo valore alla fine. Causerà lo stesso effetto. –
Sembra che l'evento dataBinding sia il punto in cui è possibile impedire una rebind sulla griglia.
- 1. Kendo Grid equivalente di onEditComplete
- 2. Come modificare l'altezza di Kendo ui Grid
- 3. Knockout Kendo Grid dataBound events
- 4. Kendo Grid - proprio indicatore di caricamento
- 5. Kendo Grid annulla evento di modifica
- 6. Interfaccia utente con ViewModels
- 7. mvc kendo grid header text
- 8. Come evitare che UIAlertView si accumuli?
- 9. Knockout kendo grid template template
- 10. Come modificare il testo sull'interfaccia utente di Kendo Grid distruggere o eliminare l'azione del comando?
- 11. Impostazione della larghezza di Kendo UI Grid Popup (MVC)
- 12. stateChangeStart che si attiva più volte
- 13. Valore predefinito dinamico per Kendo Grid
- 14. Rilevamento di errori lato server durante la modifica o la creazione di voci Kendo Grid
- 15. In Perl, come evitare di aprire file più volte
- 16. Kendo Grid, scrolling orizzontale e ridimensionamento colonna
- 17. Kendo UI Grid Save on Cell Blur
- 18. Come evitare di collegare il gestore eventi più volte?
- 19. kendo ui grid datasource filter date format
- 20. cambiamenti di uso del grid kendo Origine dati JS
- 21. Per loop in Kendo Grid Template
- 22. Kendo Grid Client Template with Condition
- 23. Impossibile esportare colonne nascoste in Kendo Grid
- 24. Come si scarica Grid UI Grid?
- 25. Kendo Grid può essere sempre in modalità di modifica?
- 26. Evita l'evento click in jQuery che si attiva più volte
- 27. Come nascondere l'intestazione di griglia kendo ui?
- 28. Come evitare OutOfMemoryException durante l'esecuzione di Hadoop?
- 29. Validazione di ViewModels annidati
- 30. Imposta il filtro predefinito per Kendo UI Grid
Questo approccio funziona bene purché tu sappia a quale elemento (i) sei legato. Se i dati che stai aggiornando sono legati a più di una cosa e sono stati aggiornati in una sorta di libreria in cui non ti interessa degli elementi dello schermo, questo potrebbe causare alcuni problemi. Se chiamate set() sulla proprietà dell'ultimo oggetto, non vi interesserà ciò che vi è legato. Otterranno tutti l'aggiornamento. –