0

データテーブルでフィルターを実行する次のコードがあります。

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

これは、この日付ピッカーのテキスト ボックスをクリアしてから、a href タグで選択された内容に基づいて特定のフィルターを適用しています。

私の問題は、ドロップダウンメニューを使用して「すべて」のレコードを表示すると、機能しないことです。データテーブルからすべてのフィルターをクリアして、デフォルトの状態に戻すにはどうすればよいですか。

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

ドロップダウンリストはデータテーブルの一部です

4

1 に答える 1

0

コードにこれ以上特別なものがない場合、デフォルトのフィルターは次のようになります。

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

うまくいかない場合は、これを確認してください。fnFilterClear そのプラグインコードを追加して、以下のコードを書いてください:

oTables.fnResetAllFilters(); 
于 2013-03-22T10:58:42.397 に答える