jqGrid opción de selección dinámica

Estoy creando un jqgrid con columnas desplegables y estoy usando la edición de celdas. Necesito las opciones de las columnas desplegables para cambiar dinámicamente y he intentado implementar esto configurando la columna para que sea:

{ name: "AccountLookup", index: "AccountLookup", width: 90, editable: true, resizable: true, edittype: "select", formatter: "select" }, 

y luego en el evento beforeCellEdit tengo:

 beforeEditCell: function(id, name, val, iRow, iCol) { if(name=='AccountLookup') { var listdata = GetLookupValues(id, name); if (listdata == null) listdata = "1:1"; jQuery("#grid").setColProp(name, { editoptions: { value: listdata.toString()} }) } }, 

GetLookupValues ​​simplemente devuelve una cadena en el formato “1: One; 2: Two”, etc. Eso funciona bien, sin embargo, las opciones se completan con un clic detrás, es decir, hago clic en AccountID en la fila 1, y el menú desplegable está vacío, sin embargo, cuando haga clic en AccountID en la fila 3; las opciones que configuré en la fila 1 clic se muestran en la fila 3 haga clic. Y así. Así que siempre un clic detrás.

¿Hay otra forma de lograr lo que necesito? Básicamente, las opciones desplegables que se muestran siempre cambian y debo cargarlas a medida que el usuario ingresa a la celda para editar. ¿Quizás pueda obtener el control de selección en el evento beforeEditCell e ingresar manualmente sus valores en lugar de usar la llamada setColProp? Si es así, ¿podría obtener un ejemplo de hacerlo por favor?

Otra cosa: si el menú desplegable está vacío y un usuario no cancela la edición de la celda, la secuencia de comandos de la cuadrícula genera un error. Estoy usando la edición clientarray si eso marca la diferencia.

Podrías usar la opción dataInit, como esta:

 { name: "AccountLookup", index: "AccountLookup", width: 90, editable: true, resizable: true, edittype: "select", formatter: "select", editoptions: { dataInit: function( elem ) { $(elem).empty() .append("") .append(""); } } } 

Simplemente reemplace las opciones estáticas de Manzanas y Naranjas con su función GetLookupValues ​​().