使用jqGrid在表行上创建数据属性

时间:2011-12-30 13:34:27

标签: jquery jqgrid custom-data-attribute

我正在尝试阅读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完成这个?如果是这样,怎么样?如果没有,我有哪些选择?

1 个答案:

答案 0 :(得分:1)

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