3

ページとサイズのパラメーターを持つRESTエンドポイントがあります。

http://someservice.com/api/accounts/10/0

この例では、最初のページが返され、すべてのページに10個のレコードがあります。

ここで、 DataTablesを使用したいと思います。この例は、StackOverflowで見つかりました。ここでは、REST応答からテーブルにデータを追加できます。

しかし、このようにして、すべてのデータをテーブルに追加します。ページごとにデータページを追加し、ページごとにエンドポイントページにリクエストを送信できるようにしたい。たとえば、ページの読み込み時に、そのページに対してRESTリクエストを作成します。2ページ目をクリックすると、そのページのデータを再度リクエストします。

DataTablesでこれを行う方法はありますか?

4

1 に答える 1

3

これは機能するはずです:

     function fnGetKey( aoData, sKey ){
         for ( var i=0, iLen=aoData.length ; i<iLen ; i++ ){    
            if ( aoData[i].name == sKey )
               return aoData[i].value;        
         }
     return null;
     }

     $('#example').dataTable( {
      "bServerSide" : true,
      "sAjaxSource" : "http://someservice.com/api/accounts/10/0", //first page
      "sPaginationType": "two_button",
      "fnServerData": function ( sSource, aoData, fnCallback ) {
          var startIndex = fnGetKey(aoData, "iDisplayStart")
          var length = fnGetKey(aoData, "iDisplayLength")
          sSource="http://someservice.com/api/accounts/"+length+"/"+(startIndex/length + 1)
          $.getJSON( sSource, aoData, function (json) { 
              fnCallback(json)
          } );
       }
    });

したがって、次のページまたは前のページをクリックするときは、現在のページを計算する必要があり、ソースを変更することでトリックを実行します。

于 2012-12-11T20:30:25.597 に答える