引导数据表自定义下拉过滤器

Posted

技术标签:

【中文标题】引导数据表自定义下拉过滤器【英文标题】:bootstrap datatable custom dropdown filters 【发布时间】:2017-06-20 15:33:44 【问题描述】:

我在页脚的 codeigniter 项目中使用引导数据表,我包含了这个数据表 js 并像这样初始化

$('.datatable').dataTable(
            "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
            "sPaginationType": "bootstrap",
            "oLanguage": 
            "sLengthMenu": "_MENU_ records per page"
            
         );

现在我想在必填列的必填列表页面中自定义过滤器 我试过了

<select id="s" name="s">
<option value="1">Hyd</option>
<option value="2">Warangal</option>
</select>

和js一样

<script>
$(document).ready(function()
    $('#s').change( function() 
        //alert($(this).val());
oTable.fnFilter( $(this).val(), 2 );
 );
);
</script>

我想使用城市的下拉列表进行过滤。

【问题讨论】:

【参考方案1】:

你可以这样做:

       $('.datatable').dataTable(
       "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
       "sPaginationType": "bootstrap",
       "oLanguage": 
           "sLengthMenu": "_MENU_ records per page"
       ,
       initComplete: function() 
           this.api().columns().every(function() 
               $('#s').change(function() 

                   var val = $.fn.dataTable.util.escapeRegex(
                       $(this).val()
                   );

                   column.search(val ? '^' + val + '$' : '', true, false).draw();
               );
           );
       

   );

Source

【讨论】:

DataTables 警告(表 id = 'DataTables_Table_0'):无法重新初始化 DataTable。要检索此表的 DataTables 对象,请不传递任何参数或查看 bRetrieve 和 bDestroy 的文档 datatable js在每页的页脚初始化 你有没有初始化过一次? 已经像 $('.datatable').dataTable( "sDom": "r>t>", "sPaginationType": "bootstrap", "oLanguage": "sLengthMenu": "MENU 每页记录数" , 用我的代码初始化,不能初始化两次。【参考方案2】:

希望这就是你要找的,fiddle

$(document).ready(function() 
    var table =  $('#example').DataTable();

    $('#dropdown1').on('change', function () 
        table.columns(1).search( this.value ).draw();
     );
    $('#dropdown2').on('change', function () 
        table.columns(2).search( this.value ).draw();
     );
);

和平!

【讨论】:

这对我有用 var table = jQuery('#example').DataTable(); jQuery('#role_filter').on('change', function () table.search( this.value ).draw(); ); 我看到了你的帖子。它正在处理所选选项的文本(),但是当我尝试根据选项值进行搜索时它不起作用。你能帮我解决这个问题吗

以上是关于引导数据表自定义下拉过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Ag-Grid 在与下拉列表交互期间保持自定义过滤器打开

在 ag-grid 中带有下拉菜单的自定义过滤器在角度 10 中不起作用

jquery 数据表自定义过滤器

Wordpress 过滤多个下拉分类以通过 ajax 显示自定义字段

自定义 ag-grid-filter 使用下拉列表使用 react-redux 过滤特定列

自定义 vue 组件的模糊事件