2

Jquery Datatables を使用して、サーバー側から ajax 呼び出しで取得したデータの配列 (aaData) の配列をロードしています。データ全体を一度に取得したくはありませんが、ユーザーが Datatables ページネーションで「前へ」または「次へ」をクリックするたびに、データをロードするための ajax リクエストを行う必要があります。

これはどのように達成できますか?私は ajax 呼び出しを行い、そのページのみの結果をオンザフライで取得したいと考えています。

以下は、私が電話をかけているJavaScriptコードです。

$.ajax({              
 type: "GET",
 url: "ajaxBacklog",
 contentType: 'application/json',
 data: null,
 dataType: 'json',
 success: function(json){                  
     oTable = $("#backlogTable").dataTable({
         "aaData": json.aaData,
         "bProcessing": true,
         "bServerSide": true,
         "sPaginationType": "full_numbers",
         "bJQueryUI": true,
         "bRetrieve": true,
         "bPaginate": true,
         "bStateSave": true,
         "bSort": true,
         "aaSorting": [[ 4, "desc" ]],
         "iDisplayLength": 25,
         "oLanguage": {
                 "sProcessing": "<img src='resources/images/loader.gif'/>",
                 "sEmptyTable": "No records found."
             },
         "aoColumns": [
             { "sClass": "alignCenter"},
             { "sClass": "left"},
             { "sClass": "left"},
             { "sClass": "left"},
             { "sType": 'date-uk', "sClass":"datecolumn"},
             { "sType": 'date-uk', "sClass":"datecolumn"},
             { "sClass": "left"},
             { "sClass": "left"}
         ],
         "error": function() {
             alert("Failed to load Data");
         }
     });
    }
   }
);

サーバー側のデータテーブルの処理も追跡しましたが、何も機能していません。

4

1 に答える 1

1

データテーブルのサーバー側処理では、「前へ」/「次へ」ボタンをクリックするたびに (フィルター、並べ替えなども)、sAjaxSourceプロパティで指定された機能への要求を呼び出します (箱から出して) - ブラウザーコンソールでこの呼び出しを確認できます。

Call には便利なパラメータがたくさんあります。からまでのデータのセットを (並べ替えとフィルター処理後に) カットするために、関数でiDisplayLengthとを使用する必要があります。iDisplayStartiDisplayStartiDisplayStart+iDisplayLength

もちろん、データテーブルのドキュメントでわかるように、コード構造を変更する必要があります。データテーブルの初期化コードを定義し、プロパティで ajax ソースを示しsAjaxSourceます。

于 2013-04-11T12:18:47.677 に答える