在我的表格中,我在页脚中创建一个下拉过滤器:
initComplete : function(settings, json){
this.api().columns([1,2,4,5,7,9,10,11,12,13,15,17,18,19]).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>' )
} );
} );
在几个列中,我根据模型中的值列表和特定行中的选定值创建下拉列表:
{
"render": function(data, type, full, meta){
var $select = $("<select></select>", { 'class' : 'ctrl-status'});
$select.attr("id", "ddl" + full[0])
$.each(statuslist, function (Value, Text) {
var $opt = $('<option value=' + Text.Value + '>' + Text.Text + '</option>');
if (Text.Value === full[6]){
$opt.attr("selected", "selected");
}
$select.append($opt);
});
return $select.prop("outerHTML");
}
},
问题是过滤器下拉列表正确显示了值,但是当我选择其中一个值时,没有选择或显示任何值。在每一行中,我在列中包含所选值并隐藏该列。换句话说,对于status,为下拉列表提供了多个值,但该行的下一列包含项目的选定状态。然后我将下拉列表设置为该值。有没有办法根据我过滤的列来查看过滤值的下一列?