Использование собственного формата JSON для jqGrid - PullRequest
2 голосов
/ 03 мая 2011

У меня есть файл 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"].

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

1 Ответ

0 голосов
/ 03 мая 2011

Вы всегда можете просто прочитать API jQGrid по форматированию здесь: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_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"
});
...