【问题标题】:jQuery DataTables alphabet search not workingjQuery DataTables 字母搜索不起作用
【发布时间】:2016-07-29 13:53:33
【问题描述】:

我已尝试添加 DT 网站上的 alpha 搜索功能。这是代码:

var _alphabetSearch = '';
var alphabet;
$.fn.dataTable.ext.search.push(function(settings, searchData) {
    if (!_alphabetSearch) {
        return true;
    }
    if (searchData[0].charAt(0) === _alphabetSearch) {
        return true;
    }
    return false;
});

然后在document.ready函数中:

alphabet = $('<div class="alphabet"/>').append('Search Alpha: ');
$('<span class="clear active"/>')
    .data('letter', '')
    .html('None')
    .appendTo(alphabet);
for (var i = 0; i < 26; i++) {
    var letter = String.fromCharCode(65 + i);
    $('<span/>')
        .data('letter', letter)
        .html(letter)
        .appendTo(alphabet);
}

然后初始化表:

$("#tblAllUsers").dataTable({
    bProcessing: true,
    sAjaxSource: '@Url.Action("GetAllUsers")',
    bJQueryUI: true,
    sProcessing: "<img src='~/Images/spinner.gif' />",
    dom: 'Tlf<"clear">rtip',
    bAutoWidth: false,
    "oLanguage": {
        sEmptyTable: "There are no Users at this time"
    },
    "aoColumns": [{
        "sWidth": "1%",
        sClass: "smallFonts"
    }, {
        "sWidth": "15%",
        sClass: "smallFonts"
    }, {
        "sWidth": "15%",
        sClass: "smallFonts"
    }, {
        "sWidth": "15%",
        sClass: "smallfonts"
    }],
    tableTools: {
        "sSwfPath": "../../Scripts/swf/copy_csv_xls_pdf.swf",
        "aButtons": [{
            "sExtends": "print",
            "bShowAll": true
        }]

    }
});

var table = $("#tblAllUsers").DataTable();
alphabet.insertBefore(table.table().container());
alphabet.on('click', 'span', function() {
    var tst = alphabet.find('.active');
    alphabet.find('.active').removeClass('active');
    var t = $(this);
    $(this).addClass('active');
    _alphabetSearch = $(this).data('letter');
    table.draw();
});

alpha 行显示得很好,但它从来没有找到任何东西。无论我点击哪个字母都不会返回。我做错了什么?

【问题讨论】:

  • 放到 jsfiddle 或者 codepen 上,其他人能看到运行版本会更方便

标签: jquery datatables


【解决方案1】:

我忘记了表中的第一列是记录的 ID,所以我隐藏了该列,这修复了 alpha 搜索:

if (searchData[1].charAt(0) === _alphabetSearch) {
    return true;
}

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2016-02-06
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多