jQgrid中的JSON点表示法?

时间:2010-09-28 08:25:51

标签: json jqgrid

我使用addRowData方法填充网格。但是我当前的JSON数据在JSON数据中的每个对象中都有另一个对象。为了使它在网格中查看,我按照documentation of jQgrid中的符号。但该栏目仍然是空的。

我的网格定义:

    $("#ExpenseTable").jqGrid({
    datatype : "local",
    mtype : 'GET',
    colNames : [ 'Entry ID','User Name', 'Category Name','Date','Amount','Status'],
    colModel : [ 
                 {name:'expnsId',label:'ID', width:150 ,editable: false}, 
                 {name:'userName',label:'NAME', width:150 ,editable: false},
                 {name:'category.catName',label:'CATEGORY', width:150 ,editable: false},
                 {name:'date',label:'DATE', width:150 ,editable: false},
                 {name:'amount',label:'AMOUNT', width:150 ,editable: false},
                 {name:'status',label:'STATUS', width:150 ,editable: false},
                 ],
    pager : '#ExpPager',
    rowNum : 10,
    rowList : [ 10, 20, 30 ],
    sortname : 'invid',
    sortorder : 'desc',
    viewrecords : true,
    autowidth : false,
    caption : 'Expenses Details',
    onSelectRow : function(expnsId) { dispExpensData(expnsId); }
    }); 

用于填充网格的代码:

    ExpenseDetailsManagement.getexpenseList(function(expRecords){
    //for(count = 0; count<expRecords.length; count++){
    //  expRecords[count].catId = expRecords[count].category.catId;
    //  expRecords[count].catName = expRecords[count].category.catName;
    //}//I am using this for loop to convert the category object
$("#ExpenseTable").clearGridData(true);
$("#ExpenseTable").jqGrid('addRowData', "expnsId", expRecords);
});

从服务器返回的数据如下:

alt text

关于我哪里出错的任何想法或建议!!!

1 个答案:

答案 0 :(得分:1)

如果'expnsId'列中的值是唯一的,我建议您使用key:true参数作为'expnsId'coulmn的选项。然后该列的值将用作行ID。

为了能够帮助您使用虚线列名称,您应该在最重要信息的位置发布JSON数据而不是带有“对象”文本的屏幕短语。可能你的主要问题可以通过localReader而不是点名来轻松解决。

还有一个小小的评论。因为您对所有列使用label选项,可以删除不使用的colNames数组。选项editable: false是默认选项,因此您也可以将其删除。您也可以删除参数mtype,因为它不会用于本地数据。

更新:抱歉,addRowData的第一个参数的值应该像您一样使用数据做列的名称。所以我从第一个版本的答案中删除了第一段。