jquery dataTables插件:动态修改ajaxSource

时间:2010-03-06 18:43:06

标签: jquery datatables

在我的页面上我有dataTable,例如,使用sAjaxSource url初始化,如“/ api / reports”。当我们进行排序时,过滤它会附加到url其他查询键。我想将键“date_from”和“date_to”添加到sAjaxSource url(日期间隔可以在表初始化后更改)。 在表重新加载之前是否有任何入口点函数,所以我可以像那样做:

var oSettings = rtbl.fnSettings();
oSettings.sAjaxSource = "/api/reports/?type=sites&date_from=" + $("#date_from").text() + "&date_to=" + $("#date_to").text();

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

所以,我已经解决了,接下来,非常虚拟的方式:

function set_sAjaxSource(){
                var oSettings = rtbl.fnSettings();
                oSettings.sAjaxSource = "/api/reports/?type=sites&date_from=" + $("#date_from").val() + "&date_to=" + $("#date_to").val();
            }

            $('.sorting').bind('click', set_sAjaxSource)
            $('.sorting_asc').bind('click', set_sAjaxSource)
            $('.sorting_desc').bind('click', set_sAjaxSource)
            $('.sorting_desc').bind('click', set_sAjaxSource)
            $('.paginate_button').bind('click', set_sAjaxSource)
            $('.sorting_active').bind('click', set_sAjaxSource)

答案 1 :(得分:2)

在创建表时,正确的方法是使用数据表的fnServerParams函数:

fnServerParams: function(aoData) {
              aoData.push({ name: "type", value: 'sites' });
              aoData.push({ name: "date_from", value: $("#date_from").text() });
              aoData.push({ name: "date_to", value: $("#date_to").text() });
            }