【问题标题】:Datatables 1.10 modify custom HTML param to send to serverDatatables 1.10 修改自定义 HTML 参数以发送到服务器
【发布时间】:2015-05-06 00:08:41
【问题描述】:

如何修改自定义 HTML 变量以在 dataTables 初始化后发送到服务器?

我可以在 dataTables 初始化之前使用 ajax 参数发送自定义数据。

我有一个自定义过滤器,我想在 dataTables 初始化后将数据添加到请求中,然后重绘数据。

【问题讨论】:

    标签: jquery ajax datatables jquery-datatables


    【解决方案1】:

    您可以使用ajax.data 指定发送到服务器的自定义参数,请参见下面的示例。

    $('#example').DataTable({
        "ajax": {
            "url": "data.json",
            "data": function (d){
                d.example_select = $('#example-select').val();
            }
        }
    });
    

    每次DataTables向服务器请求数据时,都会调用ajax.data回调函数。

    要在过滤器更改后从服务器重新加载数据,可以使用ajax.reload() 函数,例如:

    $('#example-select').on('change', function(){
        $('#example').DataTable().ajax.reload(); 
    });
    

    请参阅this JSFiddle 进行演示。

    【讨论】:

    • 问题是在 dataTables 已经初始化后添加新的 ajax 数据。我能做到的唯一方法是销毁表并使用新的 ajax 数据重新初始化它。 - 文档指出这对性能不利。
    • 除非我误解了你的问题,否则你不需要重新初始化数据表。每次从服务器请求数据时(通过DataTables控件或ajax.reload()方法)都会调用ajax.data回调,自定义ajax.data函数发送你需要的参数。
    • 在初始化 ajax 数据后尝试修改它,会导致弹出警报并显示 dataTables 已初始化的消息。
    • 如果您收到此消息,很可能意味着您没有正确使用 DataTables。你有空聊天吗?或者举例说明你是如何使用它的,代码示例也会有所帮助。
    • 我刚出去,但会在一个小时后恢复在线。
    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2014-07-25
    • 2014-06-23
    • 1970-01-01
    • 2015-10-19
    • 2011-03-14
    相关资源
    最近更新 更多