Мне нужно установить свойство searchable динамического столбца (после таблицы init). Есть ли решение? В случае использования я использую расширение кнопки для переключения видимости столбцов. Но я не буду искать только видимые столбцы.DataTables - динамически настраивать столбцы для поиска
0
A
ответ
0
Я хотел добавить «кнопки фильтра» к столу. Они должны искать (фильтровать) только в одном исключенном & скрытых & не подлежащих поиску столбцов.
- исключены & скрыты, поскольку пользователь не должен быть в состоянии видеть это
- не найден, потому что хотел, чтобы исключить его из глобального поиска.
В нескольких форумах поддержки dt. автор обещает реализовать эту функциональность, но до сего дня он этого не сделал. Но я нашел thread, как вы можете сделать это самостоятельно.
Но вам придется немного изменить его. Моя версия:
$.fn.dataTable.Api.register("isColumnSearchable()", function(colSelector) {
var idx = this.column(colSelector).index();
return this.settings()[0].aoColumns[idx].bSearchable;
});
$.fn.dataTable.Api.register("setColumnSearchable()", function(colSelector, value) {
if(value!==this.isColumnSearchable(colSelector)) {
var idx = this.column(colSelector).index();
this.settings()[0].aoColumns[idx].bSearchable = value;
if(value===true)
this.rows().invalidate();
}
return value;
});
Мой setFilterFunction:
function setFilter(table,col,value){
if(value== undefined || value=="" || value==0) {
value = "";
table.rows().invalidate();
}
else {
value = "\\b" + value + "\\b";
}
var oldsearchable = table.isColumnSearchable(col);
if (!oldsearchable)
table.setColumnSearchable(col, true);
table.column(col).search(value,true).draw();
if (!oldsearchable)
table.setColumnSearchable(col, false);
}
Важной частью является
this.rows() недействительными();.
Это очень дорого, но вам нужно будет очистить внутренний кеш DataTable, чтобы обходной путь работал (также для того, чтобы кнопки фильтров и глобальный поиск работали вместе). Я очень надеюсь, что эта функциональность скоро станет интегрированной в ядро!
вы можете сослаться на ссылку https://datatables.net/reference/option/columns.searchable –