以下は、私のJSPのページ分割されたデータテーブルのコードです:
$(document).ready( function() {
$('#paginatedTable').dataTable( {
"bServerSide" :true,
"sAjaxSource" :"/JQueryPagination/Myservlet",
"bProcessing" :false,
"sPaginationType" :"full_numbers",
"bJQueryUI" :false,
"aoColumns" : [ {
"mDataProp" :"Name"
}, {
"mDataProp" :"Address"
}, {
"mDataProp" :"Town"
} ]
});
});
私のサーブレットには、結果セットで 100 万行を返す会社など、データベース テーブルからデータ全体を取得するクエリがあります。
List<Company> companies = fetchCompleteCompanyDataFromDb();
この結果セットは、次のようにフィルタリングされます。
List<Company>filteredCompanyList = companies.subList(iDisplayStart,DisplayStart+iDisplayLength);
これfilteredCompanyList
は、データテーブルに表示しているリストで、10 行です。ユーザーがページネーションの「次へ」ボタンをクリックすると、新しいリクエストが起動され、完全な会社データが再度取得され、2 ページ目の次の 10 レコードがフィルタリングされます。つまり、ユーザーが次のボタンをクリックするたびに、100 万件のレコードを取得するためのクエリが起動されます。
ユーザーが次のボタンをクリックしたときに、表示する次の10 件のレコードのみを取得する方法があるかどうかを知る必要があります。