jqgrid加载数组数据

时间:2011-01-19 19:09:46

标签: javascript arrays jqgrid

我有一组数据,如下例所示,我想将其加载到网格中。但是,我不确定数据是如何没有名称的。

[[48803,"DSK1","","02200220","OPEN"],[48769,"APPR","","77733337","ENTERED"]]

2 个答案:

答案 0 :(得分:5)

您需要的是使用以下localReader

localReader: {
    repeatitems: true,
    cell: "",
    id: 0
}

我为你做了the demo,它展示了它是如何运作的。

更新:我如何才能发现现实并不如the documentation那么好。 localReader的使用可以帮助您使用自定义结构填充网格包含来自data参数的数据,但是jqGrid的另一部分:本地排序和搜索无法正常工作具有此data参数的结构。我把它解释为一个bug。作为一种实用的解决方案,我建议您将自定义数据转换为命名对象数组,如

[{id:48803,col2:"DSK1",col3:"",col4:"02200220",col5:"OPEN"},
 {id:48769,col2:"APPR",col3:"",col4:"77733337",col5:"ENTERED"}]

名称对应colModel中的列名。如果您将在表单中使用data参数,那么在jqGrid中一切都将完美。

更新2 :查看the fixed example的来源,我的意思是明确的。在您的情况下,数据转换可以是以下

var myNewData = [];
for (var i=0,l=mydata.length; i<l; i++) {
    var d = mydata[i];
    myNewData.push({id:d[0],col2:d[1],col3:d[2],col4:d[3],col5:d[4]});
}

解决方案不像localReader那样优雅,但它没有任何限制。

答案 1 :(得分:2)

好吧,我对jqgrid不是很熟悉,但你可以简单地将数据分配给一个关联数组,然后加载它。

此处示例:

http://jsfiddle.net/QWcrT/