【发布时间】: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