在我的jqgrid中显示我的(巨大的)php数组的最简单方法是什么?

时间:2013-07-09 14:54:37

标签: jqgrid

首先,我是菜鸟......

我有一个类似于这个例子的php数组:

`array(
    (int) 0 => array(
        'Car' => array(
            'id' => '3',
            'field1' => 'blablabla',
            'field2' => 'blabla'
        )
    ),
    (int) 1 => array(
        'Car' => array(
            'id' => '9',
            'field1' => 'blablabla',
            'field2' => 'blabla'
        )
    ),
    (int) 2 => array(
        'Car' => array(
            'id' => '12',
            'field1' => 'blablabla',
            'field2' => 'blabla'
        )
    )
)`

这个数组可以包含很多行(5000+),它来自cakephp查询。

我想在jqgrid中显示它。

我试过这种方式:

jquery的:

$('#jqList').jqGrid({
    datatype: 'local',
    colNames:['Field 1', 'Field 2'],
    colModel:[
        {name:'field1',index:'field1', width:200},
        {name:'field1',index:'field1', width:300}
    ],
    pager: '#jqPager',
        rowNum: 20,
        rowList: [10, 20, 30, 50],
        height: '100%',
});

var carsJson = <?php echo json_encode($cars) ?>;
for (data in carsJson) {
    jQuery('#jqList').addRowData(carsJson[data]['Enfant']['id'], carsJson[data]['Car']);
}

我可以显示我的行,但是我的页面会冻结一些secondes并且我的jqgrid中没有任何页面:(

我很乐意收集任何有用的提示。

非常感谢

1 个答案:

答案 0 :(得分:1)

使用数据类型"json"代替"local"url来传递数据。这样,网格将仅加载在UI中显示所需的行数,并且比在开头加载所有5000行快得多。

url:'server.php?q=2',
datatype: "json",

在这里查看示例: http://trirand.com/blog/jqgrid/jqgrid.html正在加载数据/ JSON数据