2017-05-17 57 views
1
的新价值

我的代码如下变化,刷新数据表与下拉

$(document).ready(function() { 
    var filterDays = $("#countRecordsDay").val(); 
    dTable = $('#topcustomer_order').dataTable({ 
     bStateSave: true, 
     responsive: false, 
     bJQueryUI: false, 
     bProcessing: true, 
     bServerSide: true, 
     bFilter: false, 
     bLengthChange: false, 
     "bAutoWidth": false, 
     //multipleSelection: true, 
     iDisplayLength: 10, 
     sAjaxSource: CustomerOrderAjaxSource, 
     dom: "<'row'<'col-sm-2'l><'col-sm-10'f>>" + 
       "<'row'<'col-sm-12'tr>>" + 
       "<'row'<'col-sm-12 text-right fullshowignentry'i><'col-sm-12'p>>", 
     fnServerParams: function (aoData) { 
      aoData.push({"name": "days", "value": filterDays}); 
     }, 
     aoColumns: [ 
      {"sName": "Id"}, 
      {"sName": "CustomerName"}, 
      {"sName": "Orders"}, 
     ], 
     "aaSorting": [[0, 'desc']], 
     sPaginationType: "full_numbers"}); 

    $('#countRecordsDay').change(function() { 
     dTable.api().ajax.reload(); 
}); 

它重新加载数据表,但没有得到的参数的新值的值, 可以请任何人帮我整理出来?

+0

这没有意义:'_didn't没有获得parameter_的新值的值 - 是否要使用在下拉列表中选择的值过滤表数据? – markpsmith

+0

是的我想使用在下拉列表中选择的值来过滤表格数据 –

回答

1

这是因为您分配参数值$(document).ready,即页面加载时。当您过滤数据表时,此代码不会被调用,所以filterDays始终是默认值。

的修复很简单:

fnServerParams: function (aoData) { 
    aoData.push({"name": "days", "value": $("#countRecordsDay").val()}); 
}, 

这样的参数始终是当前所选的值。