2016-09-14 5 views
0

私は動的に生成された配列を取得し、colReorderの "order"オプションに渡したいと思います。datatables変数からの配列を持つcolReorder注文メソッド

次作品罰金:配列colOrder

var colOrder = [2,1,0]; 
$(document).ready(function() { 
    dataTable = $('#example').DataTable({ 
     colReorder: true 
    }); 
    dataTable.colReorder.order(colOrder); 
}); 

注意。その静的配列の変数をdataTablesのorderオプションに入れることができます。

私はJavaScriptをcolOrderの内容を知らせることによってテストするとき、私が取得:2,1,0(なしブラケット)

ただし、以下は動作しません:

HTML:

<input id="test" type="hidden" value="2,1,0" /> 

Javascriptを:

var colOrder = new Array($('#test').val().split(",")); 
$(document).ready(function() { 
    dataTable = $('#example').DataTable({ 
     colReorder: true 
    }); 
    dataTable.colReorder.order(colOrder); 
}); 

私はJavaScriptをの内容を知らせることによって、テスト今度はcolOrder、私は得る:2,1,0(角括弧なし) - 私は違いを見ない! DataTableが生成され、colReorderも機能しますが、は、その変数で指定した順序が機能しません。

次のエラーが表示されます。ColReorder - 配列の順序が既知の列数と一致しません。スキップする。

誰かが私を助けることができますか? https://jsfiddle.net/runnerjoe/k47puxux/1/

答えて

0

あなたの正常に機能していないコードは[["2","1","0"]]ではなく、[2,1,0]ではありません。別の配列の値を入れ子にしているので、new Arrayラッパーを削除します。また、整数に文字列を変換する必要があります。

var colOrder = $('#test').val().split(",").map(function(index) { 
    return parseInt(index, 10); 
}); 

Updated fiddle

+0

列の順序が残っているので、残念ながら、アレイは今、実際に、[2、NaNで、0]のように見えます。参照してください:https://jsfiddle.net/runnerjoe/k47puxux/1/ – runnerjoe

+0

更新私の答え –

+0

それは動作します!ありがとう。 – runnerjoe

関連する問題