微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在重新加载数据表时传递参数

使用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/

-使用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()。额外的数据将是:

whateveryouwant具有#someidhere元素的值,并且

anotherexample 具有价值 "kittens"

我更喜欢 ,因为很明显,在每个请求上都添加了额外的数据。第一种选择有点偷偷摸摸,对于其他人,我认为阅读您的代码并不那么明显。

解决方法

我有一个像这样初始化的数据表:

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

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

以后我想做

mytable.ajax.reload();

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。