2012-01-21 10 views
0

私はサブグリッドを持つjqgridを持っています。jqgrid:マスター/ディテールグリッドをフォーマットする方法は?

私は、マスターとディテールグリッドに異なる色を適用しようとしています。私は2つのルールを持っています:最初のものは、奇数とペアの色を交互にすることです。もう1つは、特定のフィールドの値に基づいて行に特定のCSSを適用することです。

gridComplete: function() { 
      var _rows = $(".jqgrow"); 
      for (var i = 0; i < _rows.length; i++) { 
       _rows[i].attributes["class"].value += " " + _rows[i].childNodes[4].textContent; 
       _rows[i].attributes["class"].value += " " + _rows[i].childNodes[4].innerText; 
      } 
      applyZebra("jqTicketgrid"); 
     } 

applyZebra機能が奇数/ペアの色を交互に提供し、既に他でテストされた:明らかに異なるフィールドを含んでいる指標が原因テーブルを可変のchildNodes

両方マスター&詳細グリッド、以下gridComplete機能が含まれて、サブグリッドを含まないグリッド。 記録のために、私はこのフォーラムの他の解決された質問で上記の解決策を見つけました。両方とも "単純" jqgrids(マスター/詳細ではない)で動作します。

問題 私は詳細行をクリックして展開した場合にのみ、マスターグリッドは、フォーマットされながら、ディテールサブグリッド決して別の色、どちらもセルの内容に基づいてフォーマットを適用...

私は間違っ

? Pheraps私はgridCompleteではない別のイベントを傍受する必要がありますか?さもなければグリッド&サブグリッドで_rows [x] & childNodes [y]属性を使用することは不可能ですか?必要に応じて

、明確化のためのTHXを依頼してください。

ありがとうございます!

答えて

0

私はあなたのコード内のエラーはあなたがgridCompleteの内部thisがグリッドまたはsubgidの<table>(私はあなたがgrid as subgridを使うと仮定)のDOM要素のいずれかになります$(".jqgrow")の代わり$(".jqgrow", this)を使用することであるとします。

さらに私はすべてのあなたの現在のコードを使用することをお勧めいたしますないでしょう。 cellattrを使用する方がはるかに効果的で簡単です。 rawObjectパラメータを使用すると、現在の行の他のすべてのセルにアクセスできます。 the answerには、実装の例があります。

+0

ありがとうございます@Oleg!私は$( ".jqgrow"、これ)で修正しようとしましたが、それでも動作しません。 cellattrについて、私はそれを有効にしようとしており、あなたの興味深い検討事項に同意します。しかし、私はそれを働かせることはできません。 私に例を挙げてもらえますか? 私も、グリッドの定義にこのコードを入れてみましたが、それは動作しません:cellattr:機能(ROWID、cellValue、rawobjectの、センチ、RDATA){ リターン「= 『』クラス」; } おかげで再び! – Larry

+0

私はAという名前のクラスを持っています。これは重大度別に行をマークするために使用します... – Larry

+0

私はセル**のためだけに仕事を得ることに成功しています**:cellattrをcolmodelに入れてテストします: 'cellattr:function(rowId、tv、rawObject、cm、rdata){return 'class =" A "' ; } 'それは動作します! **あなたはどのように私は、行全体にクラスを追加することができますしてください私を説明するかもしれない?** 非常@Olegありがとうございます! – Larry

関連する問題