2010-03-06 89 views
3

在我的页面上,我有dataTable,它已使用例如sAjaxSource url进行初始化,如“/ api/reports”。当我们进行排序时,过滤它会附加到url附加的查询键。我想添加键“date_from”和“date_to”到sAjaxSource url(日期间隔可以在表初始化后更改)。 没有任何入口点函数,表重装前,所以我可以做有不便,如:jquery dataTables插件:动态修改ajaxSource

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

感谢您的帮助!

回答

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() }); 
      } 
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)