【问题标题】:How to manage datatable for large data如何管理大数据的数据表
【发布时间】:2017-12-29 07:13:24
【问题描述】:

我有一个用于报告的数据表。当我试图显示我的数据时,我的浏览器冻结或崩溃。我的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'
        }
    ]
});

我有超过 100.000 个数据。

我想也许我可以只显示页面数据和总数据数(用于管理页码),当单击另一个页码时发送新查询并获取新数据。但我找不到如何做到这一点。(也许它会导致一些其他问题(短路,搜索与)

你有什么想法和解决方案吗?(或者这个问题已经有解决方案了)

footnote:json 有一些查询过滤器(时间、分支等)

HardwareHostScreenUsage 方法在 c# 端获取我的数据。

【问题讨论】:

    标签: javascript c# jquery datatable datatables


    【解决方案1】:

    您也可以使用客户端数据源-

    var mydata = [];
    $('#example').DataTable({
        data:           data,
        deferRender:    true,
        scrollY:        200,
        scrollCollapse: true,
        scroller:       true
    });
    

    一次从服务器获取所有数据并在滚动表格时显示它。

    你需要这些库 -

    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

    【讨论】:

    • 我已经尝试过但没有解决问题。还覆盖了我的 pageLengtht 设置
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    相关资源
    最近更新 更多