私は asp.net-mvc サイトを持っており、私はjqgridを使用しています。編集コントロールがドロップダウンになっているフィールドがいくつかあります。ドロップダウンが依存する int という名前が別の列に由来するという問題があるため、編集フォームを表示するたびに、または「+」をクリックして新しいエントリを追加するたびに、サーバーから強制的に更新する必要があります正しい文字列が表示されていることを確認してください。
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 ")を強制的に更新するにはどうすればよいですか?