2013-04-09 3 views
0

Я хочу сделать запрос (синхронизацию) на сервер, чтобы заполнить jqGrid. Я сделал это:jqgrid datatype: json для запроса url и json response не работает для заполнения

$table.jqGrid({ 
        datatype: "json", 
        url:'takepage/page=1', 
        mtype: 'GET', 
        ajaxSubgridOptions: { async: false }, 
        colNames:['Result','Test'], 
        colModel:[ {name:'result',index:'result',width:120}, 
           {name:'test',index:'test', width:120} 
           ], 
        pager: "#"+pager, 
        caption: "TESTjqGrid sync request to server", 

        jsonReader: { 
          repeatitems: false, 
          page: function(obj) { 
           return obj.page; 
          }, 
          total: function(obj) { 
           return obj.total; 
          }, 
          root: function (obj) { 
           console.log(obj); 
           return obj; 
          }, 
          records: function (obj) { 
           console.log(obj.rows.length); 
           return obj.rows.length; 
          } 

         } 

       }).jqGrid('navGrid', "#"+pager, { 
        add: false, 
        edit: false, 
        del: false, 
        search: false, 
        refresh:false 
       }); 

откоса JSON сервера заключается в следующем:

{"total":1,"page":1,"rows":[{"result":null,"test":"val"}],"records":1} 

Где ошибка? Спасибо!

ответ

1

Вы должны использовать jsonReader, который соответствует данным, которые вы опубликовали. В случае данных JSON, которые вы опубликовали, вы должны использовать jsonReader: {repeatitems: false}. Многие другие варианты от jsonReader верны, но root ошибочен. У вас должно быть удалитьroot Недвижимость от jsonReader или изменить его на root: "rows" или root: function (obj) { return obj.rows; } (использование return obj; является ложным).

Кроме того, я рекомендую вам использовать loadonce: true, если ваш сервер не выполнил загрузку данных на стороне сервера. В любом случае рекомендуются варианты gridview: true и height: "auto".

+0

спасибо за ответ, на самом деле я использую его для подкачки, но он отлично работает. – Doom

+0

@Doom: Добро пожаловать! – Oleg

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

  • Нет связанных вопросов^_^