La lista desplegable jqGrid dataUrl no está refrescando

Soy nuevo en el desarrollo web y trabajo en mi primera aplicación ASP.NET MVC 3. Estoy usando jqGrid y noté que al actualizar la página no actualizo los valores en la lista desplegable hasta que abro la misma página en otra pestaña, luego, al actualizar la primera pestaña, recupero los valores modificados.

Tengo una acción de controlador que se ve así:

public JsonResult FavoriteToppings() { var all = GetFavoriteToppings(); return Json(all, JsonRequestBehavior.AllowGet); } 

y la parte de la definición de jqGrid es la siguiente:

 { name: 'ToppingID', index: 'ToppingID', width: 200, editable: true, align: 'left', edittype: 'select', stype: 'select', editoptions: { dataUrl: '@Url.Action("FavoriteToppings", "Dessert")', buildSelect: createSelectList }, searchoptions: { dataUrl: '@Url.Action("FavoriteToppings", "Dessert")', buildSelect: createSelectList, sopt: ['eq'] } }, 

y createSelectList ve así:

 createSelectList = function (data) { var response, s = '', i, l, ri; if (typeof (data) === "string") { //var leng = data.length - 1; response = jQuery.parseJSON(data); } else { response = jQuery.parseJSON(data.responseText); s += 'Select...'; } if (response && response.length) { for (i = 0, l = response.length; i < l; i += 1) { ri = response[i]; s += '' + ri + ''; } } return s + ''; } 

Lo noté cuando editaba uno de los nombres de encabezado. Cambié el mal escrito “Hot Fugde” por “Hot Fudge” y lo guardé. Los datos subyacentes en la tabla se actualizan para mostrar el encabezado deletreado correctamente (es decir, todas las filas reflejan correctamente el cambio) cuando actualizo la página, pero el menú desplegable del filtro no. Esa acción no se llama en absoluto después de la primera vez para recoger el cambio.

Cuando abro la misma página en una página diferente del navegador, se llama a la acción. Después de eso, actualizar la primera pestaña dará como resultado que la entrada correctamente deletreada aparezca en la lista de selección.

Tal vez estoy haciendo esto incorrectamente. ¿Alguna guía?

Creo que tienes que usar

 ajaxSelectOptions: { cache: false } 

Parámetro jqGrid para establecer cache: false parámetros adicionales cache: false para el jQuery.ajax utilizado por jqGrid si obtiene los datos del servidor de la dataUrl .

Me di cuenta de que las políticas de caché varían de navegador a navegador (Chrome parece tener la política de almacenamiento en caché más agresiva). ¿El comportamiento se repite en todos los navegadores? Ctrl-F5 funciona?