Jquery datatables自定义筛选器未搜索
我目前有使用数据库搜索API功能的自定义过滤器按钮 HTMLJquery datatables自定义筛选器未搜索,jquery,datatables,Jquery,Datatables,我目前有使用数据库搜索API功能的自定义过滤器按钮 HTML JQuery var table = $('#rlist').dataTable( { "processing": true, "serverSide": true, "order": [[ 0, "asc" ]], "sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'&g
JQuery
var table = $('#rlist').dataTable( {
"processing": true,
"serverSide": true,
"order": [[ 0, "asc" ]],
"sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'>f>r>t<'row'<'col-sm-5'i><'col-sm-7'p>>",
"sPaginationType": "full_numbers",
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"ajax": baseurl+"media/ajax_fetch"
});
$('ul').on('click', 'a', function() {
table
.columns(1)
.search($(this).text())
.draw();
});
$('ul').on('click', 'a.all', function() {
table
.search('')
.columns(1)
.search('')
.draw();
});
var table=$('#rlist')。数据表({
“处理”:对,
“服务器端”:正确,
“订单”:[[0,“asc”]],
“sDom”:“t”,
“sPaginationType”:“完整编号”,
“长度菜单”:[[10,25,50,-1],[10,25,50,“全部”],
“ajax”:baseurl+“媒体/ajax\u获取”
});
$('ul')。在('click','a',function()上{
桌子
.栏目(1)
.search($(this).text())
.draw();
});
$('ul')。在('click','a.all',function()上{
桌子
.搜索(“”)
.栏目(1)
.搜索(“”)
.draw();
});
问题是我不想使用搜索API,我想将按钮数据类型
属性发送到服务器端,在那里我可以手动操作,而不会干扰搜索功能
如何做到这一点?我在当前项目中使用了类似的功能。基本上,您需要修改click事件以获取元素的
数据类型
属性,使用该数据调用ajax,然后清除表并添加新的搜索数据
但是,每次通过这种方法进行搜索时,都需要清除客户端表
$('ul')。在('click','a',function()上{
var elementType=$(this.attr(“数据类型”);
$.ajax({
类型:“POST”,
//假设服务器url类似于“/someURL/{elementType}”
url:urlToServer+elementType,
成功:功能(响应){
如果(答复){
table.clear().rows.add(response.draw();
}
//没有从服务器返回数据
else表。清除();
}
});
});
谢谢,我已经设置了分页,这会更新分页吗?例如,如果过滤器总共有20个结果,但我每页只显示10个?datatables会更新分页吗?如果按照我的建议使用.clear()
,则会保留在datatables初始化期间设置的所有设置。这包括渲染函数、分页设置、排序设置等。
var table = $('#rlist').dataTable( {
"processing": true,
"serverSide": true,
"order": [[ 0, "asc" ]],
"sDom": "<'row'<'col-sm-6'l><'col-sm-6'T <'clearfix'>f>r>t<'row'<'col-sm-5'i><'col-sm-7'p>>",
"sPaginationType": "full_numbers",
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"ajax": baseurl+"media/ajax_fetch"
});
$('ul').on('click', 'a', function() {
table
.columns(1)
.search($(this).text())
.draw();
});
$('ul').on('click', 'a.all', function() {
table
.search('')
.columns(1)
.search('')
.draw();
});