2012-01-30 6 views
0

Привет У меня есть пример, который работает должным образом:jqGrid JSON данные

$(function() { 
     $("#treegrid").jqGrid({ 
      url: 'tree2.json', 
      datatype: 'json', 
      mtype: 'GET', 
      colNames: ["ID", "Description", "Total"], 
      colModel: [{ 
       name: 'id', 
       index: 'id', 
       width: 1, 
       hidden: true, 
       key: true 
      }, { 
       name: 'desc', 
       index: 'desc', 
       hidden: false, 
       sortable: true 
      }, { 
       name: 'num', 
       index: 'num', 
       hidden: false, 
       sortable: true 
      }], 
      height: 'auto', 
      width: '500', 
      pager: "#ptreegrid", 
      caption: "Tree Grid Example" 
     }) 
    }); 

JSON данные

{ 
    "page": 1, 
    "total": 1, 
    "records": 2, 
    "rows": [ 
     {"id": 1, "cell": ["1", "Source 1", "300"]}, 
     {"id": 2, "cell": ["2", "Source 2", "100"]} 
    ] 
} 

Как заказать jqGrid читать этот тип данных JSON? Является ли это возможным?

{ 
    "page": 1, 
    "total": 1, 
    "records": 2, 
    "rows": [ 
     {"id": 1, "cell": {"id":"1", "desc":"Source 1", "num":"300"}}, 
     {"id": 2, "cell": {"id":"2", "desc":"Source 2", "num":"100"}} 
    ] 
} 

Это все Не читать следующие строки

К сожалению, это какой-то текст, чтобы пройти через оповещение :) Oops! Ваш вопрос не может быть отправлен, потому что:

Ваше сообщение не имеет большого контекста для объяснения разделов кода; объясните свой сценарий более четко.

================ Благодарности Ф.О. помощь Мой окончательный вариант берется из ваших ответов слишком

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

И я изменил данные в формате JSON

[ 
    {"id":"1", "desc":"Source 1", "num":"300"}, 
    {"id":"2", "desc":"Source 2", "num":"100"} 
] 

Большое спасибо!

ответ

2

Возможно, вы имели в виду формат данных:

{ 
    "page": 1, 
    "total": 1, 
    "records": 2, 
    "rows": [ 
     {"id":"1", "desc":"Source 1", "num":"300"}, 
     {"id":"2", "desc":"Source 2", "num":"100"} 
    ] 
} 

без дублирования id и ненужная cell собственности. Чтобы прочитать данные, которые вам нужны, укажите jsonReader: {repeatitems: false} вариант jqGrid (см. the documentation).

0

Благодаря помощи Ф.О. Моя последняя версия взята из ваших ответов слишком

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

И я изменил данные в формате JSON

[ 
    {"id":"1", "desc":"Source 1", "num":"300"}, 
    {"id":"2", "desc":"Source 2", "num":"100"} 
] 

Спасибо большое !!!

+0

Вы должны лучше добавить текст вопроса с такой информацией вместо того, чтобы публиковать новый ответ. Это упрощает чтение вопроса для других посетителей. Кроме того, вы должны [принять] (http://meta.stackexchange.com/a/5235/147495) ответ, который был в основном полезен для решения проблемы. Я рекомендую вам также прочитать [сообщение] (http://meta.stackexchange.com/a/81970/147495) о подсветке синтаксиса и сравнить цвета в коде вашего вопроса и моем ответе. Я рекомендую вам просто добавить тег «jquery» ко всем вашим вопросам jqgrid. – Oleg

+0

Теперь вы можете удалить ответ. – Oleg

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