如何在搜索有效时禁用对特定列的排序 [英] How to disable sorting on specific column while searching is functional

查看:71
本文介绍了如何在搜索有效时禁用对特定列的排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用DataTable( http://www.datatables.net )以获取所需的功能,包括分别对列进行排序和在表标题中的列内搜索.初始化如下,返回api并实现搜索功能.

I am using DataTable (http://www.datatables.net) in order to get desired functionality including sorting columns and searching within columns from Table Heading individually. Initializing is as follow which returns api and searching functionality is achieved.

$('#table2').DataTable()

$('#table2').DataTable()

现在的问题是,当我必须禁用复选框的排序功能并且必须使用以下代码行时. $('#table2').dataTable( { "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ] } );

Now Problem is when I have to disable sorting on checkbox and I have to use following line of code. $('#table2').dataTable( { "aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ] } );

它确实对列应用了禁用的排序,但是列内的搜索功能也不起作用.有什么方法可以在DataTable({something})中传递任何参数以禁用对第一列的排序,或者请帮助我组合(api& jquery对象)方法以实现所需的功能. $('#table2').DataTable(); $('#table2').dataTable();

it does apply sorting disabled on column but search functionality within column also doesn't work. Is there any way I can pass any parameter in DataTable({something}) in order to disable sorting on first column or please help me to combine (api & jquery object) method in order to achieve desired functionality. $('#table2').DataTable(); $('#table2').dataTable();

<table class="table table-striped draggable sortable dataTable" id="table2">
<thead>
    <tr>
        <th class="text-center"> <input class="check_box_all no-sort" id="check_all" type="checkbox" title="Check All"></th>
        <th class="text-center">Company Name </th>
    </tr>
</thead>
<tbody>
    <tr class="odd gradeX">
        <td class="text-center"><input type="checkbox" class="check_box"></td>
        <td class="text-center">Med Assets Company</td>
    </tr>
</tbody>

此代码段使表标题中的输入字段用于搜索目的

This snippet makes input field in table heading for searching purpose

$('#table2 thead th').slice(3).each(function () {
    var title = $('#table2 thead th').eq($(this).index()).text();
        $(this).html('<input type="text" placeholder="' + title + '" />');
 });

数据表初始化

 var table = $('#table2').DataTable({
    "dom": 'C<"clear">lfrtip',
    "sPaginationType": "full_numbers",});

应用搜索

 var tableResult = table.columns().eq(0);
if (tableResult !== null) {
    tableResult.each(function (colIdx) {
        $('input', table.column(colIdx).header()).on('keyup change', function () {
            table
                    .column(colIdx)
                    .sort()
                    .search(this.value)
                    .draw();
        });
    });
}

请在选中复选框时检查jsfiddle,将其完全弄乱 https://jsfiddle.net/sxgd0thm/

Please check jsfiddle when check box is checked it totally mess up https://jsfiddle.net/sxgd0thm/

推荐答案

$('#table2').dataTable({
   "dom": 'C<"clear">lfrtip',
   "sPaginationType": "full_numbers",
   "aoColumnDefs": [
      { "bSearchable": false, "aTargets": [ 0 ] },
      {"bSortable": false, "aTargets": [ 1 ]}
  ]});

您可以尝试一下

这篇关于如何在搜索有效时禁用对特定列的排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆