Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jqgrid load array data

I have a set of data like the following example and i would like to load it into the grid. However, i'm not sure how since the data doesn't have an name.

[[48803,"DSK1","","02200220","OPEN"],[48769,"APPR","","77733337","ENTERED"]]
like image 435
Progress Programmer Avatar asked Jan 19 '11 19:01

Progress Programmer


1 Answers

What you need is just use the following localReader

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

I made for you the demo which shows live how it works.

UPDATED: How I could find out the reality is not so good as the documentation. The usage of localReader could help you to fill the grid contain with data from data parameter with the custom structure, but another parts of jqGrid: local sorting and searching don't work correct with this structure of data parameter. I interpret it as a bug. As a pragmatical solution I would recommend you to convert your custom data to array of named objects like

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

with the names corresponds to the column names in the colModel. If you will use data parameter in the form, everything will work perfect in jqGrid.

UPDATED 2: Look at the source of the fixed example and it will be clear what I mean. In your case conversion of the data can be about the following

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]});
}

The solution is not so elegant like with localReader, but it work without any restrictions.

like image 84
Oleg Avatar answered Oct 17 '22 09:10

Oleg