DataTable—为什么我不能让单个列搜索(选择输入)工作?
DataTable - Why can't I get individual column searching (select inputs) working?
我使用的是来自DataTables.net的JavaScript表功能包,我遇到了一个非常适合我需要的功能,即单个列搜索(选择输入),在这里找到。
这个特性允许向下钻取列数据,过滤它。
我已经尝试了标准实现,但没有运气。我发现在实现上没有特定的字段,并尝试删除所有其他属性。
我的代码是:<script type="text/javascript">
$(document).ready(function() {
$('#alertLogTable').DataTable( {
language: {
url: '//cdn.datatables.net/plug-ins/1.10.11/i18n/Portuguese-Brasil.json'
},
responsive: true,
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.footer()).empty() )
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column.data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' )
} );
} );
}
});
});
</script>
datatable .net页面上的演示显示了每个列下面的按钮来过滤它。我没有得到这些和过滤功能。我遗漏了什么?
您的代码工作良好。我百分之百确定你只是忘了包括<tfoot>
部分。脚注不是通过魔法添加的,如果<tfoot>
不存在,则<select>
插入到无。记住:
<table>
<thead>
<tr><th></th></tr>
</thead>
<tbody>
<tr><td></td></tr>
</tbody>
<tfoot>
<tr><th></th></tr>
</tfoot>
</table>
这是我的ajax侧代码,我有一个问题,当我选择下拉选项记录不过滤它只显示我的处理。当我移除serverside: true
时,它工作得很好,但我的记录显示我很慢。任何一个都有解决方案在这个下拉搜索过滤器。
$("#ajaxTable").DataTable({
bPaginate: true,
bProcessing: true,
bDestroy: true,
serverSide: true,
searching: true,
order: [],
//"ordering": true,
//"columnDefs": [{ orderable: false, targets: [5] }],
pageLength: 25,
//"deferRender": true,
ajax: {
url: "",
type: "POST",
data: {},
error: function (html) {},
beforeSend: function () {
//$('#image').show();
},
complete: function (data) {
//let obj = JSON.parse(data);
//console.log(data['responseJSON'].recordsTotal);
},
},
columns: [
{ data: "srno" },
{ data: "id" },
{ data: "date" },
{ data: "ref" },
{ data: "pname" },
{ data: "regional_manager" },
{ data: "al_backend" },
{ data: "area_manager" },
{ data: "territory_manager" },
{ data: "customer_name" },
{ data: "mobile_no" },
{ data: "modified_date" },
{ data: "status" },
{ data: "action" },
{ data: "edit" },
{ data: "remark" },
{ data: "lead_remark" },
{ data: "gender" },
{ data: "currentlocation" },
{ data: "employ_type" },
{ data: "damount" },
{ data: "nooldcard" },
{ data: "rcbook" },
{ data: "model" },
{ data: "disbursed_amount" },
{ data: "disbursed_date" },
{ data: "disbursed_bank" },
{ data: "sanction_amount" },
{ data: "sanction_date" },
{ data: "sanction_bank" },
{ data: "pan_card" },
{ data: "aadhar_card" },
{ data: "bank_state" },
{ data: "salary_slip" },
{ data: "rc_card" },
{ data: "zip" },
],
language: {
searchPlaceholder: "Search...",
search: "",
lengthMenu: "_MENU_ items/page",
infoFiltered: "",
processing:
"<img src='' style='position: absolute;top: 50%;left: 50%;margin: -100px 0px 0px -50px;' />",
},
dom: "Blfrtip",
buttons: [
{
extend: "excel",
},
],
initComplete: function () {
this.api()
.columns([4])
.every(function () {
var column = this;
var select = $('<br><select><option value="">ALL</option></select>')
.appendTo($(column.header()))
.on("change", function () {
var val = $.fn.dataTable.util.escapeRegex($(this).val());
column.search(val ? "^" + val + "$" : "", true, false).draw();
});
column
.data()
.unique()
.sort()
.each(function (d, j) {
select.append('<option value="' + d + '">' + d + "</option>");
});
});
},
});
相关文章:
- 基于单选框更新页眉,选中并选择输入文本
- 我想在选择输入文件上显示图像
- 指令中选择输入的双向绑定不起作用
- 调整从选择输入中获取数据并将其放入 DIV 的 jQuery 代码
- JS根据类型和名称选择输入
- jQuery使用这个获取任何选择输入的name属性
- 无法检索从窗口.本地存储中选择输入值
- 使用Javascript与选择输入交互
- 在Meteor中加载带有采集数据的选择输入字段
- 使用 jquery 控制两个选择输入的组合值
- JavaScript 中的 if 语句,用于从选择输入中获取值
- 用文本输入填充选择输入
- 我无法使用jquery选择输入的值
- 如何在选择“输入颜色”后从中获取新的颜色值
- 如何添加单选按钮和复选框将选择输入到一起以形成JavaScript输出
- jQuery;Ajax-在页面加载时将项目加载到选择输入
- JQuery 验证器不适用于选择输入
- 如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
- Angularjs:如何在页面加载时预先选择输入文本字段
- Jquery 不能在表单内选择输入元素,但在表单外部选择输入元素