2013-08-16 37 views
9

jqGridを使用していますが、各trにデータ属性を追加しようとしています。 loadCompleteイベントを発生させていますが、各行を変更する方法がわかりません。コードサンプル?jqgridテーブルの各行にデータ属性を設定する

+0

することができます私はrowattr''in combination with GridViewコントロールを使用することをお勧めいたしますそのセルにカスタムフォーマッタを使用していませんか? – AminSaghi

+0

私はtr自身でそれを望みます - 細胞ではありません。 –

答えて

12

あなたは任意の追加の属性<tr>に要素を(コード例についてthe answerthis oneを見る割り当てることrowattrを使用することができます)。たとえば、data-mydata属性として完全な入力行データを保存するには、

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

を使用できます。 (最高のパフォーマンス結果を持っているtrue`をオプション)

The demorowattr CADEの上に使用していて、グリッドの行を追加data-mydata属性を持っていることを見ることができます:

enter image description here

+0

スペースをどうすれば処理できますか?次のようにします: 'return {" data-delete-name ":rd.name};' rd.nameにはスペースがあり、最初の単語だけが含まれます。 –

+0

すごく、私はJSON.stringifyを忘れてしまった。今それは動作します。 –

0

私の場合、グリッドの最初の列をIDで設定します。私のすべてのケースでは、私のグリッドの各データ行のIDはその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'); 

そして、上記の行をオートマチックで実行したい場合は的にすべての行に、あなたは少しそれを変更する必要がありますし、あなたのグリッドのgridCompleteイベントにそれを置く:

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

確かに、IDを持っていると非常に役に立ちます。しかし、私はまだ行のデータ属性に配置したい他のデータ要素を持っています。私はjqGridがそのデータを得る他の方法を持っていることを知っていますが、私はまだjqGridのカスタムグリッドを変更していますので、既存の機能/スタイルを利用しています。 –

+0

@MikeCole - 答えが更新されました – AminSaghi

+0

しかし、そのセレクターはどこに置くのですか? loadCompleteイベントでは?そして私はそれをどのように呼びますか? –

関連する問題