javascript - 数据表和服务器端处理 - 按需加载

标签 javascript jquery-datatables

我使用 DataTables 构建了简单的表,并且成功连接了服务器端脚本以用数据填充我的表。

在我的表格上方,我有 2 个复选框和 2 个日期选择来指定过滤条件。 当我的页面加载时,我得到了表格,因为在启动时数据表正在从服务器中提取第一页数据。

我想禁用首次初始数据加载,因此当页面加载时我会得到空表,然后在我选择标准并按下“加载”按钮后数据将被加载。

我知道如何将我的过滤条件添加到服务器参数,我需要做的是在用户单击按钮后从服务器加载数据。

下面是我的数据表脚本:

var myTable= $('table#myTable').dataTable({
    "table-layout": "fixed",
    "bJQueryUI": true,
    "sDom": '<"H"lpr>t<"F"ip>',
    "iDisplayLength": 25,
    "aLengthMenu": [[25, 50, 100, 500], [25, 50, 100, 500]],
    "bSort": false,
    "sPaginationType": "full_numbers",
    "bPaginate": true,
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "Data.asmx/Sales",
    "fnServerData": function(sSource, aoData, fnCallback) {
        var sEcho = aoData[0].value;
        var iDisplayStart = aoData[3].value;
        var iDisplayLength = aoData[4].value;

        $.ajax({
            contentType: "application/json; charset=utf-8",
            type: "POST",
            url: sSource,
            //below are my parameters
            data: "{'sEcho': '" + sEcho
                + "','iDisplayStart': '" + iDisplayStart
                + "','iDisplayLength': '" + iDisplayLength
                + "'}",
            success: function(msg) {
                fnCallback(msg.d);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.responseText);
            }
        });
    },
    "bAutoWidth": false,
    "aoColumns": [{
            "sType": "numeric",
            "mData": "Nr",
            "sWidth": "50px"
        }, {
            "sType": "string",
            "mData": "Name"
        }, {
            "sType": "string",
            "mData": "Surname"
        }]
});

最佳答案

您只需将 iDeferLoading 参数指定给数据表,以及您的表已包含在 DOM 中的记录数,如果没有记录则为 0。

$(document).ready(function() {
$('#example').dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "scripts/server_processing.php",
    "iDeferLoading": 0
} );
} );

关于javascript - 数据表和服务器端处理 - 按需加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086090/

相关文章:

javascript - DataTables 更改所有页面上的复选框

javascript - PHP - DataTables 服务器端单独的列过滤仅提供第一页选择选项

c# - 将 Jquery DataTables 插件应用到 ASP GridView

javascript - Javascript 中 JSON.parse 的 XML 等价物是什么?

javascript - 在全局范围内声明的函数是闭包吗?

javascript - Dynamics CRM 使用 XrmServiceToolkit.Soap 获取全局 OptionSet 数据

javascript - 使用 get set "exited with code 1"编译 TypeScript 错误代码

javascript - 如何将带括号的字符串解析为数组数组?

javascript - 对 n 列平均使用剩余空间