Sto generando i miei tag HTML lato server (asp.net mvc4).
Vorrei preimpostare il valore e la descrizione del mio campo HIDDEN evitando la chiamata ajax per recuperare i dati nella funzione initSelection
.select2 e dati remoti: valore preimpostato e testo che evita il round-trip del server
Ho visto l'impostazione dei valori utilizzando javascript qualcuno:
$("#select2Test").select2('data', { id: 20832, text: 'LONDON' })
ma ancora mi richiederebbe extra-codice per ottenere qualcosa che è stato già in streaming dal server in un ViewModel.
mi è venuta in mente qualcosa di simile:
<input type="hidden" id="select2Test" name="select2Test" value="20832" data-option="LONDON" />
Ho usato un attributo dati HTML5 data-option
con la descrizione della mia ricerca e ho implementato la funzione initSelection modo che io possa leggere il valore del mio campo ed è attributo data:
initSelection: function (item, callback) {
var id = item.val();
var text = item.data('option');
var data = { id: id, text: text };
callback(data);
},
ho visto che initSelection viene chiamato solo quando il campo nascosto ha un valore impostato.
Tutto sembra funzionare correttamente.
Ci sono delle opzioni migliori?
Cosa stai facendo esattamente nel callback? Non sarebbe meglio caricare anche questi dati sul caricamento della pagina? – Kenneth
@Kenneth: ho aggiornato la mia domanda. C'è il codice completo lì. La pagina è già caricata. Il mio controller restituisce una vista e un viewmodel con l'intero set di dati. – LeftyX