javascript - 数据表列可搜索 :false also disables Date-Range Search

标签 javascript jquery datatable datatables

我有一个数据表,如下所示: enter image description here

自定义 jQueryUI From-To DatePicker 在我必须将 DateTime 列设置为“可搜索:false”之前就可以工作。我这样做是因为我不希望日期时间结果包含在搜索字段过滤器中。

$(document).ready(function() {
var table = $('#myTable').DataTable({       
...,        
    columnDefs: [
            //column 6 set to "not searchable"" 
            { "searchable": false, targets: [6] }
        ]
....
        $('#from').change( function() { 
        table.draw(); } );
        $('#to').change( function() { 
        table.draw(); } );
} );

这是“从-到日期”范围实现:

//Date Range Picker
$(function() {
$( "#from" ).datepicker({
  onClose: function( selectedDate ) {
    $( "#to" ).datepicker( "option", "minDate", selectedDate );
  }
});
$( "#to" ).datepicker({
  onClose: function( selectedDate ) {
    $( "#from" ).datepicker( "option", "maxDate", selectedDate );
  }
});
});

$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        var iFini = document.getElementById('from').value;
        var iFfin = document.getElementById('to').value;
        var iStartDateCol = 6;
        var iEndDateCol = 6;         
);

任何人都可以弄清楚如何让-搜索同时工作?

最佳答案

我能找到的唯一解决方案是覆盖搜索方法。这将仅启用对第 0-5 列的搜索,并且“从-到”输入仍然可以使用第 6 列作为日期范围。

$('.dataTables_filter input').unbind().on('keyup', function() {
    var searchTerm = this.value.toLowerCase();
    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) 
        {
            if (~data[0].toLowerCase().indexOf(searchTerm)) return true;
            if (~data[1].toLowerCase().indexOf(searchTerm)) return true;
            if (~data[2].toLowerCase().indexOf(searchTerm)) return true;
            if (~data[3].toLowerCase().indexOf(searchTerm)) return true;
            if (~data[4].toLowerCase().indexOf(searchTerm)) return true;
            if (~data[5].toLowerCase().indexOf(searchTerm)) return true;
            return false;
        })
    table.draw(); 
    $.fn.dataTable.ext.search.pop();
})

关于javascript - 数据表列可搜索 :false also disables Date-Range Search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37389119/

相关文章:

javascript - 我的代码可以在 JSFiddle 中运行,但不能在本地服务器上运行

javascript - html 中的 onmouser 图像

javascript - 获取子元素的值(value)

jQueryUI 可排序和可拖动目标不会水平滚动以进行放置,但会进行排序

javascript - 如何以一种轻松的方式将 Node.js 中的私有(private)文件夹中的图像提供给网站/应用程序?

jquery - 如何更改附加表行的文本区域高度大于上一行?

javascript - 将元素移动到事件元素位置

entity-framework - 使用 Entity Framework 将数据表数据插入数据库?

c# - 将 DataTable 转换为 ObservableCollection(没有特定类)

c# - 使用 SSIS 脚本任务读取 Excel 单元格值