Я новичок в веб-разработке и работаю над своим первым приложением ASP.NET MVC 3. Я использую jqGrid и заметил, что обновление страницы не обновляет значения в раскрывающемся списке, пока я не открою ту же страницу в другой вкладке, а затем при обновлении первой вкладки появятся измененные значения.
У меня есть действие контроллера, которое выглядит так:
public JsonResult FavoriteToppings()
{
var all = GetFavoriteToppings();
return Json(all, JsonRequestBehavior.AllowGet);
}
и у меня часть определения jqGrid выглядит так:
{ 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']
}
},
и createSelectList
выглядит так:
createSelectList = function (data) {
var response, s = '<select>', i, l, ri;
if (typeof (data) === "string") {
//var leng = data.length - 1;
response = jQuery.parseJSON(data);
}
else {
response = jQuery.parseJSON(data.responseText);
s += '<option value="">Select...</option>';
}
if (response && response.length) {
for (i = 0, l = response.length; i < l; i += 1) {
ri = response[i];
s += '<option value="' + ri + '">' + ri + '</option>';
}
}
return s + '</select>';
}
Я заметил это при редактировании одного из названий топинга. Я изменил «Hot Fugde» с ошибкой на «Hot Fudge» и сохранил его. Базовые данные в таблице обновляются, чтобы показать правильно написанное начертание (т. Е. Все строки правильно отражают изменение), когда я обновляю страницу, а раскрывающийся список фильтров - нет. Это действие вообще не вызывается после первого изменения.
Когда я открываю одну и ту же страницу на другой странице браузера, вызывается действие. После этого при обновлении первой вкладки в списке выбора будет отображаться правильно записанная запись.
Возможно, я просто ошибаюсь. Любое руководство?