JqGrid 中的服务器端分页(无网格分页器参数)
Server side pagination in JqGrid (no grid pager parameters)
我有一个需要服务器端分页的 jqGrid,我必须将一些搜索条件与请求一起传递 (POST),在初始调用时我能够获取结果,但我不能找到一种方法将服务器端分页所需的网格当前页面、索引和大小发送为 mentioned here
我使用 fiddle 和网络选项卡来检查我的请求是否生成了上述 post 中提到的附加内容,但找不到任何内容
下面是我的代码
JQGrid
$("#list").jqGrid({
serializeGridData: function () {
return {'data': JSON.stringify($('#searchInfo').serializeObject()) };
},
url: '/SearchUsers/SearchResult',
mtype: 'POST',
datatype: "json",
jsonReader: {
page: "currentPage",
total: "totalPages",
records: "total",
root: "rows",
cell: "",
id: "0"
},
contentType: 'application/json; charset=utf-8',
rowNum: 10,
pager: '#pager',
sortname: 'FirstName',
sortorder: "asc",
autowidth: true,
height: 'auto',
shrinkToFit: false,
forceFit: true,
ignoreCase: true,
sortable: false,
colModel: [
{ label: 'ID', name: 'ID', align: "center", key: true, hidden: true, frozen: true },
{ label: 'First Name', name: 'FirstName', align: "left", sopt: ['cn'], frozen: true},
{ label: 'Last Name', name: 'LastName', align: "left", sopt: ['cn']},
{ label: 'Email Address', name: 'EmailAddress', align: "left", sopt: ['cn'] }
],
viewrecords: true, // show the current page, data range and total records on the toolbar
emptyrecords: "No records to view.",
rowattr: Searchusers.RowFormatter,
}).css("font-family", "Arial Narrow");
$('#list').jqGrid('filterToolbar', { defaultSearch: 'cn' });
$("#list").trigger("reloadGrid");
$("#list").jqGrid('setFrozenColumns');
$(".ui-jqgrid-titlebar-close").remove();
我的Json数据
{
"totalPages":"4",
"currentPage":"1",
"total":"35",
"rows":[
{
"ID":"1",
"FirstName":"a",
"LastName":"a",
"EmailAddress":"ab@cd-sg.com",
},
{
"ID":"2",
"FirstName":"s",
"LastName":"k",
"EmailAddress":"sk@co.com",
},
{
"ID":"3",
"FirstName":"K",
"LastName":"G",
"EmailAddress":"abc@abc-sg.com",
},
{
"ID":"4",
"FirstName":"as",
"LastName":"asd",
"EmailAddress":"asd@l.co",
},
{
"ID":"5",
"FirstName":"K",
"LastName":"B",
"EmailAddress":"KB@FB.com",
}
.
.
.
30多条记录
]
}
有什么帮助吗?
我自己不使用 serializeObject
插件,但我想它 returns 对象具有您要发送到服务器的属性。所以你可以尝试将你使用的 serializeGridData
的代码替换为以下
serializeGridData: function (postdata) {
return {data: JSON.stringify($.extend({},
$("#searchInfo").serializeObject(), postdata))};
}
它应该将 postdata
的 jqGrid 标准属性与 serializeObject
插件返回的对象结合起来。
我有一个需要服务器端分页的 jqGrid,我必须将一些搜索条件与请求一起传递 (POST),在初始调用时我能够获取结果,但我不能找到一种方法将服务器端分页所需的网格当前页面、索引和大小发送为 mentioned here
我使用 fiddle 和网络选项卡来检查我的请求是否生成了上述 post 中提到的附加内容,但找不到任何内容
下面是我的代码
JQGrid
$("#list").jqGrid({
serializeGridData: function () {
return {'data': JSON.stringify($('#searchInfo').serializeObject()) };
},
url: '/SearchUsers/SearchResult',
mtype: 'POST',
datatype: "json",
jsonReader: {
page: "currentPage",
total: "totalPages",
records: "total",
root: "rows",
cell: "",
id: "0"
},
contentType: 'application/json; charset=utf-8',
rowNum: 10,
pager: '#pager',
sortname: 'FirstName',
sortorder: "asc",
autowidth: true,
height: 'auto',
shrinkToFit: false,
forceFit: true,
ignoreCase: true,
sortable: false,
colModel: [
{ label: 'ID', name: 'ID', align: "center", key: true, hidden: true, frozen: true },
{ label: 'First Name', name: 'FirstName', align: "left", sopt: ['cn'], frozen: true},
{ label: 'Last Name', name: 'LastName', align: "left", sopt: ['cn']},
{ label: 'Email Address', name: 'EmailAddress', align: "left", sopt: ['cn'] }
],
viewrecords: true, // show the current page, data range and total records on the toolbar
emptyrecords: "No records to view.",
rowattr: Searchusers.RowFormatter,
}).css("font-family", "Arial Narrow");
$('#list').jqGrid('filterToolbar', { defaultSearch: 'cn' });
$("#list").trigger("reloadGrid");
$("#list").jqGrid('setFrozenColumns');
$(".ui-jqgrid-titlebar-close").remove();
我的Json数据
{
"totalPages":"4",
"currentPage":"1",
"total":"35",
"rows":[
{
"ID":"1",
"FirstName":"a",
"LastName":"a",
"EmailAddress":"ab@cd-sg.com",
},
{
"ID":"2",
"FirstName":"s",
"LastName":"k",
"EmailAddress":"sk@co.com",
},
{
"ID":"3",
"FirstName":"K",
"LastName":"G",
"EmailAddress":"abc@abc-sg.com",
},
{
"ID":"4",
"FirstName":"as",
"LastName":"asd",
"EmailAddress":"asd@l.co",
},
{
"ID":"5",
"FirstName":"K",
"LastName":"B",
"EmailAddress":"KB@FB.com",
}
.
.
.
30多条记录
]
}
有什么帮助吗?
我自己不使用 serializeObject
插件,但我想它 returns 对象具有您要发送到服务器的属性。所以你可以尝试将你使用的 serializeGridData
的代码替换为以下
serializeGridData: function (postdata) {
return {data: JSON.stringify($.extend({},
$("#searchInfo").serializeObject(), postdata))};
}
它应该将 postdata
的 jqGrid 标准属性与 serializeObject
插件返回的对象结合起来。