0

首先,我是菜鸟...

我有一个类似于此示例的 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']);
}

我可以显示我的行,但我的页面冻结了几秒钟,我的 jqgrid 中没有任何页面:(

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

非常感谢

4

1 回答 1

1

使用 datatype"json"而不是"local"and an urlwhich 将传递数据。这样,网格将仅加载在 UI 中显示所需的行数,并且比在开始时加载所有 5000 行要快得多。

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

看这里的例子: http ://trirand.com/blog/jqgrid/jqgrid.html加载数据/JSON 数据

于 2013-07-09T15:16:34.560 回答