2016-06-24 15 views
1

500個のエントリを超えたレコードを示していません。だから私はこのクライアントのスクリプトを下に与えたjQueryのDataTableには、私はサーバー側処理を使用したくない今、テーブル <pre><code><table id="test" class="table table-striped"></table> </code></pre> <p></p>を作成している

$.ajax({ 
      type: "POST", 
      url:"http://URL/demo", 
      data:{ 
      codeType : '10' 
      },success:function(data1){ 
      var dt = []; 
      $.each(data1,function(i,v) { 
       dt.push([data1[i].id,data1[i].id1,data1[i].id2,data1[i].id3,data1[i].id4,data1[i].id5]); 
      }); 
      var table = $('#test').DataTable({ 
      "data": dt, 
      "bProcessing": true, 
      "aoColumns": [ 
       {"title":"ID", visible:false}, 
       {"title":"ID1"}, 
       {"title":"ID2"}, 
       {"title":"ID3"}, 
       {"title":"ID4"}, 
       {"title":"ID5"} 
      ] 
      }); 
      } 
     }); 

私はこの表の適切なデータを得ることができました。しかし、私はデータベースに14000レコードがありますが、このテーブルには500エントリしかありません。どうして?どのようにしてテーブルのすべてのレコードを表示できますか?

+1

14000レコードのクライアント側で処理されるクライアント側は、ユーザーエクスペリエンスのなぜそれをserverSideしないのですか? – Yuri

答えて

1

野生の推測では、あなたの$.each()ループは、あなたが初期化時に終了していないDataTableあなただけwhen()ループが完了している初期化されていることを確認するためにpromiseを使用して(?):

$.when( 
    $.each(data1,function(i,v) { 
    dt.push([data1[i].id,data1[i].id1,data1[i].id2,data1[i].id3,data1[i].id4,data1[i].id5]); 
    }) 
).then(function() { 
    table = $('#test').DataTable({ 
    "data": dt, 
    "bProcessing": true, 
    ... 
    }) 
}) 

このことを保証します$.eachが完了したとき、および1行14000行に関係なく、dataTableがインスタンス化されます。

関連する問題

 関連する問題