2013-03-22 77 views
0

我有以下代碼在我的數據表上執行過濾器。下拉列表顯示記錄不能正常工作

$("a").click(function(event){ 
    $("#datepicker").val('',3); 
oTable.fnFilter(this.InnterHtml,3); 

好了,這是清除該日期選擇器的文本框,然後基於什麼在A href標記選擇應用特定的過濾器。

我現在的問題是,當我使用下拉菜單顯示'ALL'記錄時,它不起作用。我如何清除數據表中的所有過濾器,並將其返回到默認狀態。

這裏是完整的JQuery代碼。

  $(document).ready(function() { 
      var oTable; 
      function renderDetailTable(result) { 
       var dtDetailData = []; 
       $.each(result, function() { 
        dtDetailData.push([ 
         this.Sender, 
         this.MessageDate, 
         this.MessageTime, 
         this.Reference, 
         this.MessageType, 
         this.Receiver, 
         this.ValueDate, 
         this.Currency, 
         this.Amount 


        ]); 
       }); 


       $.datepicker.regional[""].dateFormat = 'dd/mm/yy'; 
       $.datepicker.setDefaults($.datepicker.regional['']); 

       oTable = $('#tblMessageDetail').dataTable({ 
        "aaData": dtDetailData, 
        "aLengthMenu": [[10, 25,50, 100, -1], [10, 25,50, 100, "ALL"]], 
        "asStripClasses": null, 
        "iDisplayLength": 10, 
        //"aaSorting": [[0, "asc"]], 
        "bJQueryUI": true, 
        "bFilter": true, 
        //"bAutoWidth": false, 
        //"bProcessing": true, 
        // "sDom": 'RC<"clear">lfrtip', 
        "sDom": 'RC<"H"lfr>t<"F"ip>', 

        "aoColumnDefs": [ 
         {"bVisible": false, "aTargets": [11,12,13,14]} 
        ], 


        //Scrolling ....... 
        "sScrollY": "250px", 
        "sScrollX": "100%", 
        "sScrollXInner": "100%", 
        "bScrollCollapse": true, 

        //Dynamic Language ....... 
        "oLanguage": { 
         "sZeroRecords": "There are no messages that match your search criteria", 
         "sLengthMenu": "Display _MENU_ records per page&nbsp;&nbsp;", 
         "sInfo": "Displaying _START_ to _END_ of _TOTAL_ records", 
         "sInfoEmpty": "Showing 0 to 0 of 0 records", 
         "sInfoFiltered": "(filtered from _MAX_ total records)", 
         "sEmptyTable": 'No Rows to display.....!', 
         "sSearch": "Search all columns:" 
        }, 
        "oSearch": { 
         "sSearch": "", 
         "bRegex": false, 
         "bSmart": true 
        } 
       }); 
      } 

      $.ajax({ 
       type: 'POST', 
       url: 'Default.aspx/GetMessageDetail', 
       data: '{}', 
       contentType: 'application/json;charset=utf-8', 
       dataType: 'json', 
       success: function (response) { 
        //console.log(response); 
        //alert(response.d); 
        renderDetailTable(response.d); 
       }, 
       error: function (errMsg) { 
        $('#errorMessage').text(errMsg); 
       } 
      }); 

      $("#datepicker").datepicker({ 
       "onSelect": function (date) { 
        oTable.fnFilter(date, 1); 
       } 
      }).keyup(function() { 
       oTable.fnFilter(''); 
       oTable.fnFilter(this.value, 1); 
      }); 

      $(".reference").click(function (event) { 
       event.preventDefault(); 
       $("#datepicker").val(''); 
       oTable.fnFilter('',1); 
       oTable.fnFilter(this.innerHTML, 3); 
      }); 

      $("#resetTable").click(function (event) { 
       // event.preventDefault(); 
       alert("clicked"); 
       // oTable.fnResetAllFilters(); 
      }); 
     }); 

下拉列表的數據表

回答

0

部分如果在你的代碼中沒有更多特別的事情,表示缺省過濾應該是這樣的:

$("a").click(function(event){ 
    $("#datepicker").val('',3); 
oTable.fnFilter(''); 

如果它不那麼你可以檢查this。嘗試使用fnFilterClear 添加該插件代碼,寫代碼如下:

oTables.fnResetAllFilters(); 
+0

它是不工作的實際數據表的下拉列表。如果我應用任何過濾,使用日期選擇器,或者在我的示例中,如標籤 – CSharpNewBee 2013-03-22 11:02:20

+0

對不起,沒有注意到您將過濾器添加到列中,我更新了我的答案。 – OQJF 2013-03-22 11:07:33

+0

好吧,我已經添加了插件,並按照指定的名稱 - 但沒有喜悅。每當我選擇下拉列表來顯示'ALL'記錄時,什麼都不會發生 – CSharpNewBee 2013-03-22 11:32:24