编程语言
首页 > 编程语言> > javascript – 如何在重新加载数据表时传递参数

javascript – 如何在重新加载数据表时传递参数

作者:互联网

我有一个数据表,我初始化如下:

mytable = DataTable({
        ajax:{
            url: "/url/getTableData",
            dataSrc: ""

        },
        sortClasses: false,
        paging: false,
        scrollY: 300,
        columns: cols
    });

后来我想做

mytable.ajax.reload();

它工作正常,但现在我想在该请求中发送一些参数.那些参数我只需要重新加载,而不是在表的初始化中.
我怎么做?
谢谢!

解决方法:

选项1 – 使用preXhr.dt事件.

table = $('#example')
    .on('preXhr.dt', function ( e, settings, data ) {
        data.whateveryouwant = $("#someidhere").val()
        data.anotherexample = "kittens"
    } )
// then just setup your datatable as normal
    .DataTable({
        ajax:{
            url: "/url/getTableData",
            type: "GET" // This is the default value, could also be POST
        },
        sortClasses: false,
        paging: false,
        scrollY: 300,
        columns: cols
});

看这里http://datatables.net/reference/event/

选项2(首选) – 使用ajax.data函数.

table = $('#example').DataTable({
    ajax:{
        url: "/url/getTableData", // Change this URL to where your json data comes from
        type: "GET", // This is the default value, could also be POST, or anything you want.
        data: function(d) {
            d.whateveryouwant = $("#someidhere").val()
            d.anotherexample = "kittens"
        }

    },
    sortClasses: false,
    paging: false,
    scrollY: 300,
    columns: cols
});

两种选择都产生相同的结果您的服务器不会知道区别.额外的数据将添加到每个table.ajax.reload()上.额外的数据将是:

非常希望#someidhere元素具有价值,而且

另一个例子,其值为“kittens”

我更喜欢选项2,因为在每个请求中添加额外数据更为明显.第一个选项有点偷偷摸摸,对于其他读我的代码的人来说并不那么明显.

标签:javascript,jquery,ajax,datatables,jquery-datatables
来源: https://codeday.me/bug/20191004/1853223.html