2013-08-16 21 views
9

我正在使用jqGrid,我试图给每个tr添加一个数据属性。我发射loadComplete事件,但我不确定如何修改每一行。任何代码示例?在jqgrid表格的每一行上设置数据属性

+0

灿你用那个单元格的自定义格式化程序吗? – AminSaghi

+0

我想在tr本身 - 而不是细胞。 –

回答

12

您可以使用rowattr分配任何附加属性<tr>元素(参见代码示例the answerthis one )。例如,你可以使用

rowattr: function (rd) { 
    return {"data-mydata": JSON.stringify(rd)}; 
} 

完整输入行数据保存为data-mydata属性。我建议你使用rowattr``in combination with GridView控件:TRUE`选项有最佳的性能结果()

The demo使用上面rowattr凯德,你可以看到,网格行有额外的属性data-mydata

enter image description here

+0

我将如何处理空间?当我执行以下操作时:'return {“data-delete-name”:rd.name};'和rd.name有一个空格,它只包含第一个单词。 –

+0

SOrry,我忘了JSON.stringify。现在它可以工作。 –

0

在我的情况下,我通过身份设置网格的第一列。在我的所有情况下,我的网格中每个数据行的id是该标识列的值。

jqGrid的列:

colModel: [ 
{ 
name:'ID', 
label:'...', 
width:1, 
index:'ID' 
... 

渲染:

<tr role="row" id="10777" ... > // in retrieved data: ID = 10777 

所以,如果你有类似的声明和我一样,这可能是对你有益的选择,你可以简单地添加你的数据 - ATTRIB到这些行像这样:

$('#trId').prop('data-whatever', 'value'); 

如果你想要执行automati的上述行凯莉的所有行,你应该稍微改变它,并把它放到gridComplete事件网格的:

gridComplete: function() { $("tr[role='row']").prop('data-whatever', 'value'); } 
+0

当然,有ID是非常有帮助的。但是,我仍然希望将其他数据元素放置在该行的数据属性中。我知道jqGrid有其他方法来获取这些数据,但是我正在改变一个jqGrid的自定义网格,所以我仍然试图利用现有的功能/样式。 –

+0

@MikeCole - 答案已更新 – AminSaghi

+0

但我在哪里放置该选择器?在loadComplete事件?我怎么称呼它? –

相关问题