我想要客户端分页。
但出于某种原因,我似乎只回到了第一页?即使我知道我有两页数据(IE ...我逐步完成我的代码,我肯定有两个...)...更令人费解的是,我浏览页面的链接似乎永远不会是正确的......例如,我希望以下屏幕可以说是2 ...
另外我希望右下方可以看到21的1-15? 我的感觉是我在数据层中做错了什么来给这个寻呼机提供信息。 所以它只返回第一页。
public static string JsonifyEnc(IEnumerable<TemplateModel> model, int popId, int page, int rows) {
TemplateModel variable = model.ToArray()[0];
ArrayList al = new ArrayList();
//foreach (PatientACOModel patMod in variable.Template) {
int i = 1;
int rowstart = (page * rows + 1) - rows;
int rowend = page * rows;
//Here is where I create the rows... nothing special here
var griddata = new {
total = variable.Template.Count % rows > 0 ? (variable.Template.Count / rows) + 1 : (variable.Template.Count / rows),
page = page,
records = al.Count,
rows = al.ToArray()
};
当我快速查看总变量时,它说两个? 这将是我返回的json字符串的第一部分......
{"total":2,"page":1,"records":15,"rows":
所以就在那里。另外,这就是我如何构建我的jqGrid ......
$(document).ready(function () {
jQuery("#frTable").jqGrid ({
cmTemplate: { sortable: false },
caption: '@TempData["POPNAME"]' + ' Population',
datatype: 'json',
mtype: 'GET',
url: '/Encounters/GetAjaxPagedGridData/', //'Url.Action("GetAjaxPagedGridData", "Encounters", new { popId = TempData["POPULATIONID"] })',//
postData: { popId: '@TempData["POPULATIONID"]'},
pager: '#pager',
jsonReader: {repeatitems: false},
loadonce: true,
height: 'auto',
gridview: true,
viewrecords: true,
rowNum: 15,
shrinkToFit: false,
autowidth: true,
答案 0 :(得分:3)
如果您在客户端使用loadonce: true
,则应更改服务器代码,使其忽略page
和rows
选项并返回所有数据。您应该只对与sidx
和sord
参数相对应的数据进行排序(请参阅jqGrid中的sortname
和sortorder
)。您无需在回复中填写total
,page
和records
部分。
如果您使用loadonce: true
jqGrid加载数据并将其保存在内部data
和_index
参数中。之后,jqGrid将jqGrid的datatype
选项更改为"local"
。因此,所有后来的排序,过滤(搜索)和数据分页都将在本地完成。