2017-01-15 5 views
-2

jqueryデータ型があり、セルの内容に応じてスタイルプロパティ(色と背景色)を設定する必要があります。 テーブルは非常に動的に変更されるので、セルの内容が変更されるたびにテーブル全体を再描画することはできません。テーブル全体を再描画せずに内容に応じてセルスタイルを変更するJQueryデータ型変更可能

これを行う方法はありますか?

私はと呼ばれるものを使用していましたが、これはセルが編集され、データの表示を制御するたびに呼び出されますが、これが最良の方法であるかどうかはわかりません。さらにレンダリングコールバックはtdではなくセルデータを取得します。

ありがとうございます! rowDrawCallbackから呼び出すとき

は、私が使用:

"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) { 

     if (!aData || aData.length == 0) return; 

     if(columns.indexOf(INDEX_STAT) >= 0) { 
      var state = aData[INDEX_STAT].state; 
      var exitCode = aData[INDEX_STAT].exitCode; 
      var statIndex = columns.indexOf(INDEX_STAT); 
      var statSelector = $('td', nRow).eq(statIndex); 

      if (!state) 
       log("undef state"); 

      ResultsModule.updateStatusCellInfo(statSelector, state, exitCode); 
     } 
} 



var ResultsModule = { 
updateStatusCellInfo: function(selector, state, exitCode){   
    var mapper = ResultsModule.getTestResults(state, exitCode).map; 

    var currentStatusString = mapper.status; 
    var currentStatusColor = mapper.color; 
    var currentStatusBgColor = mapper.bgcolor; 

    if (currentStatusString) selector.text(currentStatusString); // updating status as text 
    else selector.text(Status.None); 
    if (currentStatusColor) selector.css('color',currentStatusColor); // seting status color from mapper 
    if (currentStatusBgColor) selector.css('background-color',currentStatusBgColor); // seting status color from mapper 
} 
} 
+0

CSSの変更はすべて再描画です。 – zer00ne

+0

確かに、私はWHOLEテーブルを再描画しないで、特定のセル\ rawだけを再描画したいと考えています。それを行う方法を探しています。 –

+0

すべての状況に特定の懸念があり、考慮すべき多くの状況があるので、[mcve]を提供する必要があります。それは質問を投稿するために負担しなければならない負担です。 – zer00ne

答えて

0

を、私はそれがdrawedされる前に、細胞を呼びかけ、このcolumn.renderに使用しました。 機能目標ではないかもしれませんが、仕事をしています:)。 TDをすることによって行うことができ取得

var cell = meta.settings.aoData[meta.row].anCells[meta.col]; 
var statSelector = $(cell); 
selector.css('color', ""); 
selector.css('background-color',""); 

レンダリング機能からDOM細胞を取得の詳細については、this discussionを参照してください。

関連する問題