2

我想要客户端分页。

但是由于某种原因,我似乎只回到了第一页?即使我知道我有两页的数据(即……我单步执行我的代码,而且我肯定有两个……)……更令人困惑的是,我浏览页面的链接似乎从来没有是正确的...例如,我希望以下屏幕显示 1 of 2...

分页问题

另外我希望右下角会说 View 1-15 of 21?我的感觉是我在我的数据层中做错了给这个寻呼机它的信息。所以它只返回第一页。

    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,
4

1 回答 1

3

如果您loadonce: true在客户端使用,您应该更改服务器代码,以便它忽略pagerows选项并返回所有数据。您应该只对数据对应sidxsord参数进行排序(参见jqGrid 中的sortname和)。sortorder您不需要在响应中填写total,page和部分。records

如果您使用loadonce: truejqGrid 加载数据并将其保存在内部data_index参数中。之后 jqGrid 将 jqGriddatatype的选项更改为"local". 因此,以后所有的数据排序、过滤(搜索)和分页都将在本地完成。

于 2013-02-27T12:49:49.557 回答