Использование пользовательского формата JSON для jqGrid

У меня есть файл JSON, который должен быть отформатирован следующим образом. Как я могу заставить jqGrid интерпретировать этот формат с помощью параметров jsonmap, colModel или jsonReader?

[
  {
    "element1" : {
      "subElement1" : "value",
      "subElement2" : "value"
    }
    "element2" : {
      "subElement3" : "value",
      "subElement4" : "value"
    }
  }, 

  {
    "element1" : {
      "subElement1" : "value",
      "subElement2" : "value"
    }
    "element2" : {
      "subElement3" : "value",
      "subElement4" : "value"
    },

    // . . . etc. . . .
  }
]

colNames будет ["subElement1", "subElement2", "subElement3", "subElement4"].

Большое спасибо за любую помощь.


person Donald Taylor    schedule 03.05.2011    source источник
comment
Ответ на этот вопрос помог: stackoverflow.com/questions/ 2690657 / mapping-json-data-in-jqgrid. Моя проблема решена, но я не могу ответить на свой вопрос несколько часов.   -  person Donald Taylor    schedule 04.05.2011
comment
Я рад прочитать, что мой старый ответ может вам помочь. Будет лучше, если вы напишете свой короткий ответ на свой вопрос и отметите его (через день) как принятый. Таким образом, ваш вопрос больше не будет отображаться в списке вопросов без ответа. С наилучшими пожеланиями!   -  person Oleg    schedule 04.05.2011


Ответы (1)


Вы всегда можете просто прочитать jQGrid API о форматировании здесь: http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3acolmodel_options.

Довольно сложно предоставить вам настраиваемые средства форматирования, учитывая, что все ваши значения - это строки ... Он также поддерживает сортировку по валютам и датам.

В демонстрационных материалах представлен исходный код здесь: http://www.trirand.com/blog/jqgrid/jqgrid.html

Кроме того, уверен, что вы можете просто указать function в качестве формата и в этой функции вернуть форматированное значение. Например, я написал функцию, которая принимает статус и возвращает изображение со значком для этого статуса.

Вот пример:

jQuery("#list2").jqGrid({
    url:'server.php?q=2',
    datatype: "json",
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
    colModel:[
        {name:'id',index:'id', width:55},
        {name:'invdate',index:'invdate', width:90},
        {name:'name',index:'name asc, invdate', width:100},
        {name:'amount',index:'amount', width:80, align:"right"},
        {name:'tax',index:'tax', width:80, align:"right"},      
        {name:'total',index:'total', width:80,align:"right"},       
        {name:'note',index:'note', width:150, sortable:false}       
    ],
    rowNum:10,
    rowList:[10,20,30],
    pager: '#pager2',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    caption:"JSON Example"
});
person pixelbobby    schedule 03.05.2011
comment
Да, верно ... их вики не так уж и хороши для примеров. Некоторое время назад я использовал это в одном проекте и просто просматривал исходники из демонстраций. добавил еще одну ссылку к этому ответу. - person pixelbobby; 03.05.2011
comment
Да, их вики довольно скудная и, кажется, была написана кем-то, не владеющим английским языком. - person Donald Taylor; 03.05.2011
comment
Что меня убивает в jqGrid, так это то, что у них есть всевозможные опции, но простые вещи ускользают от них. Например, почему у них нет средства форматирования телефонных номеров по умолчанию ... Мне пришлось написать свой собственный, и он испортил некоторые css на Asp.net MVC4 ... Прекрасно работает на 2, но четыре из них облажались для некоторых причина. Парень, это меня расстраивает. - person SoftwareSavant; 07.06.2012