【发布时间】:2019-06-06 14:40:04
【问题描述】:
在按钮单击功能中使用 SetGridParam 不会将网格的数据类型更改为 json
我最初不想加载网格,只需单击一个按钮即可加载网格数据。为此,我将数据类型设置为“本地”,并使用 SetGridParam 将数据类型更改为 json。但这不起作用,我无法弄清楚。请帮帮我。
$('#jQGrid').jqGrid({
mtype: "POST",
datatype:"local",
url: "EmployeeDashBoard.aspx/GetEmpData",
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
colNames: ['Employee', 'Age', 'Salary'],
colModel: [
{ name: "Employee", width: 70, index: 'Employee', sortable: false, resizable: false },
{ name: "Age", width: 70, index: 'Age', sortable: false, resizable: false},
{ name: "Salary", width: 70, index: 'Salary', sortable: false, resizable: false },
],
serializeGridData: function (postData) {
return JSON.stringify(postData);
},
beforeRequest: function () {
var postData = $('#jQGrid').jqGrid('getGridParam', "postData");
$.extend(postData, { "objFNFData": objFNFData });
},
jsonReader: {
repeatitems: false,
root: function (obj) {
return obj.d.FNFDataList;
},
total: function (obj) {
return obj.d.Total;
},
records: function (obj) {
return obj.d.Records
}
},
loadComplete: function (obj) {
if ($('#jQGrid').jqGrid.getGridParam('datatype') === "json") {
$(".ui-jqgrid-titlebar").hide();
if (obj.d.Total === 0) {
$(this).hide();
emptyMsgDiv.appendTo("#gview_jQGrid > .ui-jqgrid-bdiv");
$("[id$=btnExport]").hide();
} else {
$(this).show();
$("#btnExport").attr("onclick", "openDownload()");
$("[id$=btnExport]").show();
}
}
},
rowNum: 20,
shrinkToFit: true,
sortable: false,
viewrecords: true,
rowList: [10, 20, 30, 50, 100],
pager: jQuery("#pager"),
height: 'auto',
caption: 'Employee Details',
search: true
});
$("#btnSearch").click(function () {
$("#jQGrid").jqGrid('setGridParam', { datatype: 'json' }).trigger('reloadGrid')
});
【问题讨论】:
-
您的
var postData = ...逻辑位置错误,将导致语法错误。同样,您似乎在该块之后还有一个额外的},这也是一个问题。 -
请建议应该在哪里包含该 postData 逻辑
-
我不知道,因为不清楚你期望它做什么
-
我已经更新了代码。最初我将数据类型定义为本地并尝试在 $("#btnSearch").click 函数中将其更改为 json。但数据类型不会更改为 json
-
你如何确定数据类型没有改变?
标签: jquery jqgrid jqgrid-asp.net