为jqGrid使用自定义JSON格式

时间:2011-05-03 19:37:57

标签: javascript jquery json jqgrid jsonreader

我有一个JSON文件,必须格式如下。如何使用jsonmapcolModeljsonReader选项让jqGrid解释此格式?

[
  {
    "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 :(得分:0)

您可以随时在格式化时阅读jQGrid API: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options

考虑到你的值都是字符串,为你提供自定义格式化程序有点棘手...它还支持对curreny和日期进行排序。

演示提供源代码: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"
});