2013-07-22 98 views
1

我使用的jqGrid v4.4.5.When网格是空的,显示“0'.I第1页阅读this answer 但我的问题是不是solved.My的HttpHandler发送此JSON结果jqGrid的空JSON数据

“ {\ “页面\”:0,\ “记载\”:0,\ “行\”:[],\ “总\”:0,\ “用户数据\”:NULL}”

gridParaf = $("#gridParaf").jqGrid(
    { 
     url:"GetLetterInformationHandler.ashx?CurrentUser=" + 1457, 
     datatype: 'json', 
     width: $("#contentParaf").width() + 410, 
     height: $("#contentParaf").height() - 20, 
     direction: "rtl", 
     colNames: ['IAnsDateTime', 'IAnsState'], 
     colModel: [ 
      { name: 'IAnsDateTime', width: 50, sortable: false, hidden: false, template: CenterTemplate }, 
      { name: 'IAnsState', width: 20, sortable: false, hidden: false, template: CenterTemplate }, 
     ], 
     rowNum: 20, 
     loadonce: true, 
     rowList: [5, 10, 20], 
     recordpos: "left", 
     ignoreCase: true, 
     toppager: true, 
     viewrecords: true, 
     sortorder: "desc", 
     scrollOffset: 1, 
     editurl: 'clientArray', 
     shrinkToFit: true, 
     jsonReader: 
     { 
      repeatitems: false, 
     }, 
     gridview: true, 
    }); 

enter image description here

回答

2

我想正确的JSON响应

{"page":0,"records":0,"rows":[],"total":0,"userdata":null} 

,只是调试器显示您在格式

"{\"page\":0,\"records\":0,\"rows\":[],\"total\":0,\"userdata\":null}" 

在这种情况下的反应,你可以尝试使用以下jsonReader

jsonReader: { 
    repeatitems: false, 
    page: function (obj) { 
     return obj.page !== undefined && obj.page !== 0 ? obj.page : "0"; 
    } 
} 

我希望它能解决您的问题。请参阅the answer的更多信息。

修订:因为您使用loadonce: true,你应该以同样的方式

jsonReader: { 
    page: function (obj) { 
     return obj.page !== undefined && obj.page !== 0 ? obj.page : "0"; 
    } 
}, 
localReader: { 
    page: function (obj) { 
     return obj.page !== undefined && obj.page !== 0 ? obj.page : "0"; 
    } 
} 

the demo同时定义jsonReaderlocalReader

+0

坦克但不工作:(。为什么当重新加载网格,网格传递pageindex = 1到服务器?我认为我有问题,因为pageindex是1.我计算其他信息在服务器“总=(计数+ 0 - 1)/ 10 “ ”records = Count“ ”total =(int)Math.Ceiling((float)objectList.Count /(float)numberOfRows);“ – ZSH

+0

@ZSH:您必须为'jsonReader'另外定义'localReader'因为你使用'loadonce:true'。查看** UPDATED **我的答案的一部分 – Oleg

+1

我定义了jsonReader和localReader,但都没有工作,我设置了loadonce:false,但没有工作。如果我在服务器中设置了pageIndex的值,obj.page在jsonReder中返回我的值({“page”:“1”,“records”:“0”,“rows”:[],“total”:“0”,“userdata”:null})但是, pageIndex(在json结果中)总是返回null。我很困惑,不知道该怎么办 – ZSH

0

更改您的jsonReader:像这样并尝试

jsonReader: { repeatitems: false, root: function (obj) { 
         var JSONObject = JSON.parse(obj); 

         return JSONObject["rows"]; 
        }, page: function (obj) { 
         var JSONObject = JSON.parse(obj); 
         return JSONObject["page"]; 

        }, total: function (obj) { 
         var JSONObject = JSON.parse(obj); 
         return JSONObject["total"]; 

        }, 
         records: function (obj) { 

          var JSONObject = JSON.parse(obj); 

          return JSONObject["records"]; 

         } 
        } 
+0

我测试这个,但不工作。 – ZSH