1

DataTables 1.10 を使用して、

デフォルトの並べ替えを備えた DataTable があり、ユーザーは他の列のいくつかに頼ることができます。

テーブルが現在ソートされている列を検出するにはどうすればよいですか?


質問への回答に関連しない可能性のあるコンテキスト: 私が実際にやろうとしているのは、テーブルを非対話型の HTML テーブルに「エクスポート」することです。この DataTable はプログラムで生成されてから DataTable に変換されるため、エクスポート オプションを検索した後、実際にエクスポートするよりも元のテーブルを本質的に再生成する方が簡単に見えます。しかし、現在の並べ替えと同じ順序で行を表示するには、再生成されたテーブルが必要です。

4

4 に答える 4

1

すでに dataTables 1.10.x を使用している場合は、APIを使用してみませんか? それは簡単です:

table.rows().data()

テーブルの現在の内容、つまり現在ソートされている行を含む配列の配列を返します。したがって、dataTable のコンテンツを静的テーブルにエクスポートまたは複製する場合は、実際には非常に簡単に実行できます。

$("#clone").click(function() {
  var cloneTable = '';
  table.rows().data().each(function(row) {
    cloneTable += '<tr><td>' + row.join('</td><td>') + '</td></tr>';
  })
  $('#cloneTable tbody').html(cloneTable);
})

デモ -> http://jsfiddle.net/zuxm2e68/

于 2016-02-20T14:27:54.320 に答える
1

現在のソート状態は、次のsortInfoように取得できます。

var apiObject = $("#myPlainTable).DataTable( dtOptions );
// ...
var sortInfo = apiObject.settings().order()

より具体的には、列と方向は次のようにエンコードされます。

var sortCol = sortInfo[0][0]; // counting from left, starting with 0
var sortDir = sortInfo[0][1]; // either "asc" or "desc"

警告:

sortInfoユーザーが並べ替えを変更すると、オブジェクトは上記の形式になります。dtOptions.order別のフォーマットを使用して設定することで初期ソートを指定した場合、sortInfoオブジェクトは、ユーザーがソートを変更するまで、指定した元の値を保持します。(たとえば、DataTables は[1,'asc']上記に加えて受け入れ[[1,'asc']]ます。DataTables が使用できない値を渡すとどうなるかはテストしていません。)

これは、複数列の並べ替え機能を使用せずに、1 つの列のみで並べ替えるデフォルトのケースについて説明しています。

于 2014-12-03T19:54:04.840 に答える