Uno dei problemi con i quali ci si scontra quotidianamente lavorando con jqGrid è la documentazione, la cui lacuna principale è l’assenza di esempi di codice, che facciano capire come interagire con questa fantastica libreria in modo avanzato. La problematica che affrontiamo in questo post è come inviare un parametro ad un web service Ajax, un webmethod c#, per costruire e valorizzare una colonna di tipo ‘select’.

Qui di seguito riportiamo il codice di definizione della proprietà in questione:

Per poter creare una colonna che, in modalità form editing, sia considerata di tipo ‘select’, jqGrid si aspetta che il parametro edittype sia impostato al valore ‘select’. La proprietà editoptions, invece, si aspetta una serie di parametri:

  • dataUrl: consente di impostare il path del web service che il sistema deve invocare per leggere i dati che costituiranno il menu a tendina;
  • buildSelect: è un evento, cui agganciamo una funzione di callback, per definire come dovrà essere creato il menu a tendina;

Tutto funziona correttamente a meno che non vogliamo invocare il web service passando un parametro per filtrare i valori di ritorno. In questo caso, l’unica soluzione compatibile con jqGrid è aggiungere la seguente dichiarazione alla definizione del web service:

Infine, per poter inviare il parametro in fase di chiamata del web service, dovremo impostare la proprietà ajaxSelectOptions di jqGrid. Qui di seguito un esempio:

dove ‘Codice’ è il nome della colonna di cui vogliamo leggere il valore dalla griglia per inviarlo al web service sotto forma di parametro.

Dillo ad un amico

Di cosa abbiamo parlato

autore

Cercando l'impossibile, l'uomo ha sempre realizzato e conosciuto il possibile, e coloro che si sono saggiamente limitati a ciò che sembrava possibile non sono mai avanzati di un sol passo.

Cosa ne pensi ?

Scrivici per avere informazioni sui nostri servizi o
per entrare a far parte del network di smart worker di Evermind