如何在搜索时禁用特定列的排序功能

时间:2015-06-04 03:47:01

标签: javascript jquery sorting datatable

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

$( '#table2的')。数据表()

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

它确实在列上禁用了排序,但列中的搜索功能也不起作用。有没有什么方法可以传递DataTable中的任何参数({something})以禁用第一列的排序,或者请帮我组合(api& jquery object)方法以实现所需的功能。 $('#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>

此代码段在表格标题中输入字段以供搜索

$('#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/

2 个答案:

答案 0 :(得分:0)

$('#example').dataTable( {
"aoColumnDefs": [
  { "bSearchable": true, "aTargets": [ 0,1,2,3,4,5 ] }
] } );

尝试使用&#34; bSearchable&#34;允许列搜索

答案 1 :(得分:0)

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

你可以试试这个

吗?