0
AJAX呼び出しでページに描画可能なデータテーブルがあります。 私は、デフォルトで最新のエントリが一番上になるように内容を注文する必要があります。しかし、パラメータが変更されたにもかかわらず、順序の変更は全くなく、レコードはランダムにリストされます。JQueryのデータ型で順序付けが機能しない
var InitiateViewOption = null;
var deviceId = null;
var deviceType = null;
var fromTime = null;
var toTime = null;
var keys = null;
function drawTable(from, to) {
var device = $("#device-details");
deviceId = device.data("deviceid");
deviceType = device.data("devicetype");
keys = device.data("attributes").split(",");
fromTime = from * 1000;
toTime = to * 1000;
if ($.fn.dataTable.isDataTable('#stats-table')) {
var table = $('#stats-table').DataTable();
table.clear().draw();
table.ajax.reload();
}
else {
$("#stats-table").datatables_extended({
serverSide: true,
processing: true,
searching: false,
ordering: true,
pageLength: 100,
order: [[ 0, 'desc' ]],
ajax: {
url: "/devicemgt/api/stats/paginate",
data: buildAjaxData
}
});
}
}
function buildAjaxData(){
var settings = $("#stats-table").dataTable().fnSettings();
var obj = {
//default params
"draw" : settings.iDraw,
"start" : settings._iDisplayStart,
"length" : settings._iDisplayLength,
"columns" : "",
"order": "",
"deviceType" : deviceType,
"deviceId" : deviceId,
"from": fromTime,
"to" : toTime,
"attributes" : JSON.stringify(keys)
};
return obj;
}
ordering : true
を製造する見かけ上のどこかにランダムに付加され、それぞれの新しいレコードのレコードの実際の順序に変化がない降順に従ってテーブルヘッダとorder: [[ 0, 'desc' ]]
セットアイコンの近くにアイコンを有効にしたがテーブルに
同様this link上の答えに応じaaSorting : []
オプションを試してみましたが、全く変化
ソート時にサーバーに対して行われた要求は何ですか?ブラウザーでF12キーを押し、ネットワークタブですべてをクリアし、 'disable cache'をチェックして、ブラウザーで開発ツールを開くことができます。ここでソートをクリックし、どのリクエストが行われたかを確認します。たぶんJavaScriptは問題ありませんが、apiはソートされたデータを正しく提供していません。 – HMR
あなたは 'serverSide:true'を持っているので、注文するサーバサイドも処理する必要があります。 – davidkonrad
@HMRサーバー側でデータを並べ替える必要があることに気がつきませんでした。 – nuwanjaya