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' ]]
가 각각 새 레코드와 레코드의 실제 순서에 변화가 없다 보이는 곳에 무작위로 추가되는 하강 순서에 따라 아이콘을 설정하지만 테이블에.
정렬 할 때 서버에 대한 요청은 무엇입니까? 브라우저에서 F12 키를 누른 다음 네트워크 탭에서 모두 선택을 취소하고'캐시 사용 안함 '을 선택하면 브라우저에서 dev 도구를 열 수 있습니다. 이제 정렬을 클릭하고 요청이 무엇인지 확인하십시오. 어쩌면 자바 스크립트는 괜찮지 만 api는 올바르게 정렬 된 데이터를 제공하지 않습니다. – HMR
당신은'serverSide : true'를 가지고 있기 때문에 orderings serverside도 처리해야합니다. – davidkonrad
@HMR 데이터를 서버 측에서 정렬해야한다는 것을 알지 못했습니다. 제가 확인해 볼 제안에 감사드립니다. – nuwanjaya