2017-12-29 33 views
0

レポートのデータテーブルがあります。私のデータを表示しようとすると、ブラウザがフリーズしたりクラッシュしたりしました。私のjsコードは以下にあります大きなデータのデータテーブルを管理する方法

Reporting_Report.DTReport = $('#Report-ReportTable').DataTable({ 
    "ajax": { 
     "url": "/Ajax/JsonProvider?Method=HardwareHostScreenUsage&GenericObject=true&Json=" + JSON.stringify(json), 
     "dataSrc": "" 
    }, 
    "columns": [ 
     { 
      "data": "BranchName", 
      "sTitle": "BranchName" 
     }, 
     { 
      "data": "HardwareHostFriendlyName", 
      "sTitle": "Hardware Host Friendly Name" 
     }, 
     { 
      "data": "HardwareHostScreenUsageScreenState", 
      "defaultContent": "N/A", 
      "sTitle": "Hardware Host Screen Name" 
      "render": function(data, type, full) { 
       if (data && Util.Check.IsInteger(data)) { 
        if (data == 1) { 
         return "Sorry Screen"; 
        } else if (data == 2) { 
         return "Welcome Screen"; 
        } else if (data == 3) { 
         return "Progress Screen"; 
        } 
       } 
      } 
     }, 
     { 
      "data": "HardwareHostScreenUsageSecondOnScreen", 
      "sTitle": "Elapsed Time On Hardware Host Screen" 
     }, 
     { 
      "data": "HardwareHostScreenUsageRecordDate", 
      "sTitle": "Hardware Host Screen Usage Record Date" 
      "render": function (data, type, full) { 
       return Util.JsonDateToDate(data).format("dd.mm.yyyy HH:MM:ss"); 
      } 
     } 
    ], 
    "pageLength": 20, 
    "lengthMenu": [ 
     [20, 50, 100, -1], 
     [20, 50, 100, "All"] 
    ], 
    "info": false, 
    bFilter: true, 
    bInfo: false, 
    "order": [[0, "asc"]], 
    "scrollX": true, 
    dom: 'Bfrtip', 
    buttons: [ 
     { 
      extend: 'copy' 
     }, 
     { 
      extend: 'csv' 
     }, 
     { 
      extend: 'excel' 
     }, 
     { 
      extend: 'pdf', 
      title: "Detailed Ticket Report" 
      message: startDate + " " + startTime + " - " + endDate + " " + endTime + "\t" + datetime, 
      pageSize: 'LEGAL' 
     }, 
     { 
      extend: 'print' 
     } 
    ] 
}); 

私は100000を超えるデータを持っています。

多分私はページのデータと総データ数(ページ番号を管理するため)を表示し、別のページ番号をクリックすると新しいクエリを送信して新しいデータを取得できると思った。しかし、私はのことを行う方法を見つけることができませんでした。(多分それはいくつかの他の問題(短絡、検索対を引き起こす)

は。あなたが任意のアイデアや解決策を持っている(または、この問題はすでに解決策を持っている)

脚注:JSONは

HardwareHostScreenUsage方法は、C#側で私の件のデータを取得するクエリ(時間、支店など)のためにいくつかのフィルタを持ってい

答えて

0

あなたは

var mydata = []; 
$('#example').DataTable({ 
    data:   data, 
    deferRender: true, 
    scrollY:  200, 
    scrollCollapse: true, 
    scroller:  true 
}); 
also-クライアント側のデータソースを使用することができます。

は、すべてのデータをサーバから一度に取り出し、テーブルをスクロールしながら表示します。

あなたはこれらのライブラリを必要とする -

https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js https://cdn.datatables.net/scroller/1.4.3/js/dataTables.scroller.min.js

+0

私はすでに試みたが、私のpageLengthtの設定を上書きproblem.Alsoを解決しませんでした – BMErEr

関連する問題