首页 文章

jQuery Datatables过滤器包含文本下拉列表而非值的列 .

提问于
浏览
0

我使用jQuery插件DataTables来显示数据库中的数据 . 列具有不同的控件类型 . 其中一列说它为COLUMN,选择框作为控件类型 . 我还使用了DataTables提供的过滤器,分页功能 . 过滤COLUMN会根据列中的值过滤数据 .

有没有办法过滤框中显示的文本数据,即选项的文本 .

self.dummyDataTable = FIT.component.DataTable.init({
        renderTo: 'dummy-index-table',
        id: 'dvmyInputDataGrid',
        data: data[0],
        deferRender: true,
        perPage: 10,
        paging: true,
        scrollY: "200px",
        sScrollX: "200px",
        height: ($(window).height()) * (0.7),
        scroller: true,
        scrollCollapse: true,
        searchable: true,
        showFilters: true,
        sortable: false,
        aaSorting: [],

        columns: Columns,
        select: {
            style: 'os',
            selector: 'td:first-child'
        },
    });

例如:

<select>
        <option value="0">--- Select Officer---</option>
        <option value="1">Sam</option>
        <option value="2">Brad</option>
        <option value="3">Nicholas</option>
        <option value="4">John</option>
</select>

当我将 filter 设置为true时 . 对于这个特定的选择框列,它显示列顶部的过滤器框中的"Value"属性列表,如1,2,3 ..

用户可能会在单元格中的文本与用户完全不知道的过滤器框中的值之间感到困惑 . 有没有办法根据文本过滤,即萨姆,布拉德,尼古拉斯,约翰 .

我添加了与过滤和搜索相关的代码 .

1 回答

  • 0

    如果我承诺你 . 您可以使用要搜索的文本的值创建选择选项,例如:

    ...
    <select id="select_name">
        <option value="0">--- Select Officer---</option>
        <option value="Sam">Sam</option>
        <option value="Brad">Brad</option>
        <option value="Nicholas">Nicholas</option>
        <option value="John">John</option>
    </select>
    ...
    

    然后在select上添加一个on change事件以在数据表中搜索,例如:

    $('select#select_name').change(function(){
        self.dummyDataTable.columns( <# column> ).search( this.value ).draw();
    });
    

    其中<#column>是您要搜索的列的编号 .

相关问题