我有一个 asp.net-mvc 站点,并且我正在使用jqgrid,并且我有几个字段,其中编辑控件是一个下拉列表。我有一个问题,下拉列表所依赖的名称来自另一列,因此每次打开编辑表单或单击“+”以添加新条目时,我都需要从服务器强制刷新确保显示正确的字符串。
我看到 Internet Explorer 似乎缓存我的下拉列表的问题,即使我非常努力地告诉它不要这样做。我没有在 Firefox 或 Chrome 中观察到这个问题。
这是我的代码:
我正在观察该问题的 Col MODEL 行:
{ name: "SiteSettings", index: "SiteSettings", width: 250, editable: true,
edittype: "select", editoptions: { dataUrl: "/SiteSettings/GetSelectData" },
editrules: { edithidden: true, required: false} },
这是构造编辑按钮和添加按钮的代码
onClickButton: function () {
jQuery("#grid").jqGrid('editGridRow', "new", { recreateForm: true, url: '/MyController/Add', afterSubmit: function (response, postdata) {
var responseJson = $.parseJSON(response.responseText);
return HandleJqGridAddResponse(responseJson);
}, height: 380, width: "auto", closeAfterAdd: true, reloadAfterSubmit: true
});
},
jQuery("#grid").jqGrid('editGridRow', id,
{ url: '/MyController/Update', afterSubmit: function (response, postdata) {
var responseJson = $.parseJSON(response.responseText);
return HandleJqGridResponse(responseJson);
},
height: 380, width: "auto", recreateForm: true, closeAfterEdit: true,
closeOnEscape: true, reloadAfterSubmit: true
});
我想
recreateForm: true
或者
$("#grid").jqGrid({
ajaxSelectOptions: { cache: false }
});
会做的伎俩,但它似乎没有任何区别。
但我观察到,当我打开编辑表单或新表单时,不会调用我后端的函数来返回下拉列表的项目列表,因此必须有一些客户端缓存。
每次尝试编辑或添加新条目时,如何强制刷新 dataurl ( dataUrl: "/SiteSettings/GetSelectData ")?