매김과 테이블 디스플레이 길이가 작동하지 않는 것 iTotalRecords 및 필터링 iTotalDisplayRecords를 사용하여 여기에JQuery와 datatables 필터링 매김
내 datatables JS 코드 : 내가 먼저 (단지 JSON을로드
transTable.dataTable({
"aaSorting": [[0,"desc"]],
"sPaginationType": "full_numbers",
"bJQueryUI": true,
"aLengthMenu": [[10, 25, 50, 100, 200, -1], [10, 25, 50, 100, 200, "All"]],
"iDisplayLength": 10,
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "",
"sServerMethod": "POST"
"aoColumns": [
{ "mData": "datetime"},
{ "mData": "trans"},
{ "mData": "type"}
]
});
동일한 페이지로 POST), 페이지 매김은 정렬과 마찬가지로 올바르게 작동하고 표시됩니다. 내가 검색 상자를 사용하여 필터링 할 때 페이지 당 내 기본 디스플레이는 그러나 10
이며, 관련 POST의 PARAMS은 다음과 같습니다
{ ...
iDisplayStart: 0
iDisplayLength: 10
sSearch: searchText
...
}
SQL 쿼리 실행은 다음과 같습니다
SELECT
*
FROM
trans
WHERE
(type LIKE "%searchText%") OR
(trans_id LIKE "%searchText%") OR
(datetime LIKE "%searchText%")
ORDER BY "datetime" DESC
LIMIT 10 -- 0 is iDisplayStart so no OFFEST set here and 10 is iDisplayLength
내 JSON 응답은 다음과 같습니다.
{
'aaData': [the query result rows],
'iTotalRecords: 10000, //total number of records in the table
'iTotalDisplayRecords: 10,
'sEcho': //POST params "sEcho" value
}
쿼리에 LIMIT 10이 있으므로 iTotalDisplayRecords는 10이됩니다.
페이지 매김은 "1,234 개의 레코드를 1에서 10까지 표시 (10,000에서 필터링 됨)하고 1,234 개의 레코드 (123 페이지)를 통해 페이지 매김을 허용한다고 생각합니다. 하지만. 그것은 말합니다 : "1에서 10의 레코드를 10,000으로 표시"페이지 매김 없음. 나는 iDisplayLength 제거하면
는 매김 텍스트는 올바른 외모와 페이지 매김 그러나 테이블이 단지 10
내가 잘못 뭘하지, 모두 1,234 기록을 표시하고, 제대로 작동?