2

我正在尝试阅读 jQuery 插件jqGrid,但是在浏览文档和演示时我运行不足。

我想要完成的是使用我的 JSON 数据的某些部分显示在列中,并使用其他部分在每个表行上创建 HTML5 数据属性。但是,我无法弄清楚 jqGrid 是否可以处理这个问题,如果可以,如何处理。

我想做的一个例子:

来自以下数据(为便于阅读添加了空格)

[
 {
     'id': 1, 
     'type': 0, 
     'name': 'first', 
     'address': '1524, 3rd street', 
     'X': 18.0068922, 
     'Y': 59.31076795
 },
 {
     'id': 7819, 
     'type': 0, 
     'name': 'not first', 
     'address': 'South Corner', 
     'X': 144.18457031, 
     'Y': -22.20774917
 }
]

我想创建下表:

<table>
    <thead>
        <th>Name</th>
        <th>Address</th>
    </thead>
    <tbody>
        <tr data-id="1" data-type="0" 
            data-x-coord="18.0068922" data-y-coord="59.3107695">
            <td>first</td>
            <td>1524, 3rd street</td>
        </tr>
        <tr data-id="7819" data-type="0"
            data-x-coord="144.18457031" data-y-coord="-22.20774917">
            <td>not first</td>
            <td>South Corner</td>
        </tr>
    </tbody>
</table>

如您所见,数据属性可能与行中的属性命名相同,也可能不同。此外,在此示例中未显示,一些属性将用于在表中显示和数据属性。

提供 JSON 数据的 API 在其他地方使用,所以我无法更改。对数据属性的要求也由其他地方使用的另一个(自行编写的)jQuery 插件定义,因此它们也不能更改。

有没有办法用 jqGrid 来完成这个?如果是这样,怎么做?如果没有,我有什么选择?

4

1 回答 1

1

您可以使用afterInsertRow事件来获取插入到网格中的每一行,然后根据需要修改它们(使用jQuery.attr()添加自定义属性)。

于 2011-12-30T13:43:59.497 回答