数据类型:' jsonstring'忽略了Jqgird版本5.2.1中的totalpages和totalrecord

时间:2017-07-27 08:59:47

标签: javascript jquery jqgrid

我最近将jqgrid从版本3升级到5.2.1, 在这样做时,我从服务器端返回数据时遇到了独特的问题。

我想要的是,从服务器端只发送80条记录,总记录为280,页面= 1,总页数= 4,但我的jqgrid始终显示第1页的第1页并显示视图1 - 80条记录中的80条,和rownum是80。

它应该从280和第1页的第4页显示1-80。

似乎我的jqgrid忽略了totalpages和totalrrecords。

这是我的jqgrid代码:

jQuery("#tradeList").jqGrid(
{
jsonReader : {
        id : "0"
    },
    url : 'getDetailAgingReportInternal.go',
    datatype : 'jsonstring',
    mtype : 'POST',
    datastr : '{"page":' + data.page + ',"total":'
            + data.totalPages + ',"records":' + data.total
            + ',"rows": ' + data.rowData + '}',
    colModel : data.colModel,
    pager : '#pagerTrade',
    rowNum : data.records,
    rowList : [ 80, 160, 240 ],
    viewrecords : true,
    height: "350",
    width : "auto",
    viewsortcols : [ true, 'vertical', true ],
    multiselect : data.multiselect,
    multiboxonly: true,
    onPaging : function(pgButton) {
        var pageNo = getPageNo("tradeList");
        var rowCount = getRowCount("tradeList");

        loadDetailAgingReport(1, postData.bucketType, postData.mode, postData.modeType, '', '', postData.entity, 
                            '', postData.entityId, postData.statusTypeId, postData.tradeTypeIdJson, postData.isOTC, 
                            pageNo, rowCount, '', false, false);

        return 'stop';
    },
    onSortCol : function(index, columnIndex, sortOrder) {
        //alert("index:"+index+", columnIndex:" +columnIndex + ", sortOrder:" +sortOrder);
        var colSort = {};
        colSort.index = getColumnIndex("tradeList", columnIndex);
        colSort.direction = sortOrder;
        var colSortList = [ colSort ];
        var pageNo = getPageNo("tradeList");
        var rowCount = getRowCount("tradeList");

        loadDetailAgingReport(1, postData.bucketType, postData.mode, postData.modeType, postData.colHeader, postData.statusType, postData.entity, 
                postData.colName, postData.entityId, postData.statusTypeId, postData.tradeTypeIdJson, postData.isOTC, 
                pageNo, rowCount, colSortList, false, false);

        return 'stop';
    },
gridComplete:function(){

}
});

我首先调用ajax调用,然后使用数据类型作为jsonstring发送值来创建jqgrid。 任何人都可以提出任何意见。

嗨托尼, 因为数据是我服务器端的实际响应,我做了类似的事情。 但似乎没有用。我不想调用ajax因此我直接使用addJSONData。我在google上搜索但是所有人都在使用ajax调用。有没有其他方法可以将数据类型写为函数。

datatype : function(data) {
                                var thegrid = this;//jQuery("#plist")[0];
                                thegrid.addJSONData(data.rowData);
                            },

数据是从服务器接收的json字符串,包含页面,记录,taotaPages,colMode,行等。

你能以任何方式提出建议。

1 个答案:

答案 0 :(得分:0)

我建议您使用数据类型json并配置jsonReader以直接从服务器获取数据。从3.x升级到5.x并不容易。如果您对json配置有困难,请告诉我