【发布时间】:2015-02-20 20:43:03
【问题描述】:
这是我的 JQGrid 的代码
$("#vendor_match_grid").jqGrid({
url: $("#hdnWebSericeAPIURL").val() + "/api/PRAClubbedVendor/ViewClubbedVendorMasterData/",
datatype: 'json',
mtype: 'GET',
height: 500,
colModel: [
{ name: 'Vendor Number', index: 'Vendor_Number', editable: false },
{ name: 'Vendor Name', index: 'Vendor_Name', editable: true },
{ name: 'Clubbed Vendor Name', index: 'Clubbed_Vendor_Name', editable: true },
{ name: 'Phone Number', index: 'Phone_Number', editable: true },
{ name: 'Fax Number', index: 'Fax_Number', editable: true },
{ name: 'Email', index: 'Email', editable: true },
{ name: 'Street', index: 'Street', editable: true },
{ name: 'City', index: 'City', editable: true },
{ name: 'Country', index: 'Country', editable: true },
{ name: 'Region', index: 'Region', editable: true },
{ name: 'Is Active', index: 'IsActive', editable: true, edittype: 'select', editoptions: { value: { 'True': 'Active', 'False': 'InActive' } } },
{ name: 'TableFlag', index: 'TableFlag', editable: false, hidden: true }],
pager: '#vendor_match_pagernav',
rowNum: 20,
rowList: [20, 50, 100],
viewrecords: true,
sortable: true,
sortname: "TableFlag",
sortorder: "desc",
search: true,
searchOperators: true,
stringResult: true,
closeAfterSearch: true,
caption: 'Clubbed Vendor Match',
emptyrecords: 'No records to display',
autowidth: true,
loadComplete: function () { },
onSelectRow: function (rowID) { }
}).navGrid('#vendor_match_pagernav', { edit: false, add: false, del: false, search: true, refresh: true }, {}, {}, {}, { closeAfterSearch: true });
现在,我正在使用此代码向其添加自定义按钮
$("#vendor_match_grid").jqGrid('navButtonAdd', '#vendor_match_pagernav', {
caption: "Add vendor",
id: "btnAddVendor",
onClickButton: function () {}
});
在 onClickFunction 中,我打开一个弹出窗口,添加一些数据并进行 ajax 调用,在 AJAX 成功时,我需要重新加载网格。但是数据没有重新加载。 jqGrid 变为空。我没有使用 loadonce,我的数据不是本地的。我可能做错了什么?
****更新**** 这是我的 AJAX 调用
$.ajax({
url: $('#hdnWebSericeAPIURL').val() + '/api/PRAClubbedVendor/FinalizeClubbedVendorMasterData/',
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(clubbedVendorDataObject),
dataType: "json",
success: function (response) {
$("#vendor_match_grid").jqGrid("setGridParam", { datatype: "json" })
.trigger("reloadGrid", [{ current: true, page: 1 }]);
//$("#vendor_match_grid").trigger('reloadGrid');
},
error: function (response) {
}
});
【问题讨论】:
-
能否请您在此处添加 reload 语句和 AJAX 调用
-
@Runcorn 我已经更新了帖子中的代码。我尝试了多种方法来触发重载,上面代码中提到了其中两种。
-
那么,你检查过 jqGrid relaod 的响应了吗?打开控制台并查看重新加载请求以确保从响应中返回正确的 JSON 格式。
-
@Runcorn 我已经检查过了。数据格式正确,它也将出现在 loadComplete 事件中,但我仍然看到 jqGrid 为空:(