2013-07-22 3 views
1

Я с помощью jqGrid v4.4.5.When сетки пуст, шоу «Страница 1 из 0'.I чтения this answer , но моя проблема не solved.My HttpHandler отправить этот результат JSonjqgrid пустые данные JSON

" {\ "страница \": 0, \ "записи \": 0, \ "строки \": [], \ "всего \": 0, \ "UserData \": нулевой}»

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 и localReader таким же образом

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.

+0

Цистерны, но не работают :(Почему при перезагрузке сетки сетка проходит через pageindex = 1 на сервер? Я думаю, что у меня проблема, потому что pageindex равно 1. Я вычисляю другую информацию на сервере «total = (Count + 0 - 1)/10 " " records = Count " " total = (int) Math.Ceiling ((float) objectList.Count/(float) numberOfRows); " – ZSH

+0

@ZSH: Вы должны определить' localReader' дополнение к 'jsonReader', потому что вы используйте 'loadonce: true'. См. ** ОБНОВЛЕНО ** часть моего ответа. – Oleg

+1

Я определяю jsonReader и localReader, но не работаю, и я устанавливаю loadonce: false, но не работает. Если я устанавливаю значение pageIndex на сервере, obj.page в jsonReder верните мое значение ({"page": "1", "records": "0", "rows": [], "total": "0", "userdata": null}), но если удалить значение pageIndex (в результате json) всегда возвращает null.I 'смущен и не знаю, что делать – 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

Смежные вопросы