我使用的数据表1.10.12和JQuery 1.12.3
我得到了与排序的列在它里面下拉列表中的问题
我现在用的是多选择滤波器。
所有工作正常,概率是它不能排序可能是因为在MULTI_SELECT选项变量的值,我不知道如何填写,包括选择(已选定=“选择”选项)列
所以,我怎么能实现TD内进行搜索,可能与正则表达式,发现这些选择的选项?
我使用的数据表1.10.12和JQuery 1.12.3
我得到了与排序的列在它里面下拉列表中的问题
我现在用的是多选择滤波器。
所有工作正常,概率是它不能排序可能是因为在MULTI_SELECT选项变量的值,我不知道如何填写,包括选择(已选定=“选择”选项)列
所以,我怎么能实现TD内进行搜索,可能与正则表达式,发现这些选择的选项?
可以使用columnDefs
靶向在使用基于零的索引的特定列targets
选项并render
搜索期间返回选定的值( type === 'filter'
)或排序( type === 'order'
)。
var table = $('#example').DataTable({
columnDefs: [
{
targets: [0,1,2,3],
render: function(data, type, full, meta){
if(type === 'filter' || type === 'sort'){
var api = new $.fn.dataTable.Api(meta.settings);
var td = api.cell({row: meta.row, column: meta.col}).node();
data = $('select, input', td).val();
}
return data;
}
}
],
// ... skipped ...
});
上面的代码使用的值option
元素,以确定值进行排序/搜索。 然而,在更新的例子,你正在使用数字ID作为值。
要使用的文本option
,而应使用如下所示修改后的代码:
var table = $('#example').DataTable({
columnDefs: [
{
targets: [0,1,2,3],
render: function(data, type, full, meta){
if(type === 'filter' || type === 'sort'){
var api = new $.fn.dataTable.Api(meta.settings);
var td = api.cell({row: meta.row, column: meta.col}).node();
var $input = $('select, input', td);
if($input.length && $input.is('select')){
data = $('option:selected', $input).text();
} else {
data = $input.val();
}
}
return data;
}
}
],
// ... skipped ...
});
还需要一次无效数据变化的单元数据(如,如下所示该溶液 )。
$('tbody select, tbody input', table.table().node()).on('change', function(){
table.row($(this).closest('tr')).invalidate();
});
见更新的例子代码和演示。