2013-08-16 19 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事件?我怎麼稱呼它? –

相關問題