【问题标题】:Datatables search multiple columns individually数据表单独搜索多个列
【发布时间】:2018-03-02 20:18:07
【问题描述】:

我正在尝试按数据表中的列进行过滤,但我不明白为什么只有在两列中存在该行时才能找到该行,我希望如果它在另一列中搜索会找到结果。

我尝试这样做,但是当我使用此代码时,它只搜索第一列中的结果,例如第 4 列。并忽略其余部分。

    table.column([4,5]).search($(this).val()).draw();

$("#select-categories").each( function ( i ) {
                var select = $('<select class="form-control"><option value="" class="optionGroup">Todas</option></select>')
                      .appendTo( $(this).empty() )
                      .on( 'change', function () {
                          table
                              .column(2).search( $(this).val() )
                              .draw();
                      });



                documentosCatRef.on('value', function(data){
                  categoria = data.val();
                  for(var cat in categoria){
                    subcategoria = categoria[cat].subcategorias
                    select.append( '<option value="'+categoria[cat].titulo+'" class="optionGroup">'+categoria[cat].titulo+'</option>'+carregaSubcategoria(subcategoria)+'')
                  }
                })

                function carregaSubcategoria(subcategoria){
                  a = []
                  i = 0;
                  option = ""
                  for(var subcats in subcategoria){
                    a[i] = subcategoria[subcats].nome
                    i++
                  }
                  i = 0;
                  for (var subcat in a){
                  option += '<option value="'+a[subcat]+'">&nbsp;&nbsp;&nbsp;'+a[subcat]+'</option>'
                  }
                  return option;
                }
              });

<div id="tableCustom_filter" class="dataTables_wrapper.no-footer dataTables_filter">
            <label style="display: inline-block;">Filtrar por Categoria:</label>
            <div style="display: inline-block;" id="select-categories"></div>
          </div>

【问题讨论】:

    标签: jquery datatables


    【解决方案1】:

    使用columns().search() 在多列中进行搜索。

    table.columns([4,5]).search($(this).val()).draw();
    

    【讨论】:

    • 我使用了列,但只有当项目在两列中时才会返回。他没有单独看他们。
    • 这是列之间的 AND 搜索。如果您想在列之间创建 OR 搜索,那么您需要创建一个 Search Plugin 来执行您想要的搜索。
    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多