2016-07-21 2 views
2

データをデータテーブルに乗算するにはどうすればよいですか? 私はこのように見えるのDataTableとJavaScriptいる:私が望むよう データ型にデータを乗算する方法は?

多分 よう{ "data": "profit"}
で、私はデータを乗算したい

$('#xxdata').DataTable({ 
     "destroy": true, 
     "processing": true, 
     "ajax": { 
      url : "xxreport.php", 
      type : 'GET', 
      data : { 
       datedari : SplitRange[0].trim(), 
       datesampai : SplitRange[1].trim() 
     } 
     }, 
     "columns": [ 
       { "data": "offerName" }, 
       { "data": "offerCountry" }, 
       { "data": "visits" }, 
       { "data": "conversions" }, 
       { "data": "profit"} 
     ] 
}); 

この{ "data": "profit" * 0.7}

私はDataTableの中のデータを変更することはできますか?それとも誰も他のソリューションを提供できますか?

ありがとうございます。

+0

初めてデータを取得したときや何らかのイベントトリガーで掛けたいですか? –

+0

あなたはそれをあなたが記述する方法でやろうとしましたが、うまくいかないことが分かりましたか?これまでに何を試しましたか? – BobRodes

+0

最初にデータを取得するときにそれを掛けるだけです。 – Zayn

答えて

3

これを行うには、columns.renderオプション(documented here)を使用することができます。この場合

"columns": [ 
      { "data": "offerName" }, 
      { "data": "offerCountry" }, 
      { "data": "visits" }, 
      { "data": "conversions" }, 
      { "data": "profit", 
       "render": function (data) { 
          return data * 0.7; 
         } 
      } 
    ] 

、関数シグネチャにdataセルのデータを表します。関数に渡すことができる他のオプションがありますが、あなたのケースでは、これは単純な操作なので、これらを含める必要はありません。より複雑なレンダリング機能に拡張したい場合は、ドキュメントのリンクを参照してください。

+0

ええこれは動作:D 非常に非常にありがとう – Zayn

0

あなたは、あなたの列にレンダリングを追加し、このような何かする必要があります。

{ "data": "profit", "render": renderMyProfit} 

とあなたが.DataTable()関数を呼び出す前に、レンダリング機能が宣言していなければなりません。

var renderMyProfit = function (data, type, row, meta) { 
      var renderContent = "<div>*</div>"; 
      return renderContent.replace("*", row.profit * 0.7); 
    }; 
+0

なぜ、 'renderContent'の全体を置き換えていますか?データを直接返すことができます。 –

+0

Chris、数字を乗算するよりも複雑な必要がある場合は、すでにHTMLリターンが得られます。これはほとんどの人に役立ちます。 – Guilherme

+0

DataTablesのソースデータにHTMLを挿入するべきではありません。HTMLテーブルだけでなく、フォーマットを処理するDataTables jQueryプラグインによって拡張されたテーブルであることに注意してください。 –

関連する問題