网格没有刷新,添加对话框提交后没有关闭,为什么?

我正在努力尝试:

  • 从远程刷新网格内容
  • 关闭添加对话框

单击提交按钮后,它对我不起作用,因为对话框之后仍然打开,并且网格不会重新加载它的内容。 这就是我的代码的样子:

$(function () { "use strict"; var manage_drugs_list_grid = $("#manage_drugs_list"); manage_drugs_list_grid.jqGrid({ colNames: ["Actions", "Drug Name", "Date Created"], colModel: [ {name: "act", template: "actions", width: 50, align: "left"}, {name: "DrugName", search: true, stype: "text", editable: true}, { name: "DateCreated", search: true, editable: false, formatter: "date", sorttype: "date", formatoptions: { newformat: "n/j/Y g:i:s A" }, width: 50 } ], cmTemplate: { width: 300, autoResizable: true }, iconSet: "fontAwesome", rowNum: 25, guiStyle: "bootstrap", autoResizing: { compact: true, resetWidthOrg: true }, rowList: [25, 50, 100, "10000:All"], viewrecords: true, autoencode: true, sortable: true, pager: true, toppager: true, hoverrows: true, multiselect: true, multiPageSelection: true, rownumbers: true, sortname: "Id", sortorder: "desc", loadonce: true, autowidth: true, autoresizeOnLoad: true, forceClientSorting: true, ignoreCase: true, prmNames: {id: "Id"}, jsonReader: {id: "Id"}, editurl: "/ajax/drugs/upsert", url: '/ajax/drugs/get', datatype: "json", formDeleting: { url: '/ajax/drugs/delete', delicon: [true, "left", "fa-scissors"], cancelicon: [true, "left", "fa-times"], width: 320, caption: 'Delete form', msg: 'Are you sure you want to delete this drug?', beforeShowForm: function ($form) { var rowids = $form.find("#DelData>td").data("rowids"); if (rowids.length > 1) { $form.find("td.delmsg").html('Are you sure you want to delete all the selected drugs?'); } }, afterComplete: function (response, postdata, formid) { if (response.responseText === "true") { toastr["success"]("The form was deleted successfully.", "Information"); } else { toastr["error"]("Something went wrong, the form could not be deleted.", "Error"); } } }, navOptions: { edit: false, add: true, search: false, refresh: true }, loadComplete: function () { var $self = $(this), p = $self.jqGrid("getGridParam"); if (p.datatype === "json") { // recreate the toolbar because we use generateValue: true option in the toolbar $self.jqGrid("destroyFilterToolbar").jqGrid("filterToolbar"); } } }).jqGrid('navGrid', { addtext: "Add", reloadAfterSubmit: true, closeAfterAdd: true, closeAfterEdit: true, reloadGridOptions: {fromServer: true} }); }); 

我找到了这个Oleg的答案但是对我不起作用,我很确定我在错误的地方使用了错误的语法或错误的事件。

更新:

在给了Google另一次尝试之后我发现了这个问题/答案: 提交后关闭添加对话框,这使我进入jQgrid Wiki并查看navGrid中的可用选项,然后转到form_editing页面。 阅读完这些文档之后,我将代码更改为:

 .jqGrid('navGrid', { addtext: "Add", reloadGridOptions: {fromServer: true} }, { addCaption: "Add new drug", closeAfterAdd: true, clearAfterAdd: true, closeOnEscape: true }) 

然而,这些变化并没有使我的问题消失。 标题未被覆盖,添加新记录后对话框未关闭,按ESC键不会进行任何更改,这意味着对话框仍保留在页面上,依此类推。

更新#1:

在阅读了jQgrid源代码并寻找一些线索后,我现在通过在网格定义中添加以下内容来进行第3次尝试:

 formEditing: { caption: 'Add new form', closeAfterEdit: true, closeOnEscape: true }, 

还是行不通。

想法?