Уважаемые разработчики, подскажите как создать два фильтра для каждого из листов в double list, после сброса фильтра в любом из листов происходит отображение ВСЕХ элементов dbllist, независимо от того выбран ли элемент или нет(находился спарва или слева), так же в этом случае происходит дублирование записей.
Здравствуйте,
Дело в том, что double list использует синхронизированные данные для обоих листов и применяет фильтрацию, чтобы показать/спрятать элементы.
Поэтому, чтобы применить еще один кастомный фильтр, нужно вызывать метод filter с третьим параметром.
Например, https://webix.com/snippet/287fb5b6.
да, спасибо, уже решили проблему
С использованием тулбара и сохранениием состояния как-то так…
webix.ui({
rows: [
{ view: "toolbar", elements: [
{id: "unselected", view: "text"},
{id:"selected", view: "text"}
]
},
{
view:"dbllist",
id:"dbl",
list:{ autoheight: true },
labelLeft:"Available screens",
labelRight:"Selected",
data:[
{id:"1", value:"Contacts"},
{id:"2", value:"Products"},
{id:"3", value:"Reports"},
{id:"4", value:"Customers"},
{id:"5", value:"Deals"}
]
}
]
});
var state;
function save_state()
{
state = $$("dbl").getValue();
}
function set_state()
{
save_state();
$$("dbl").setValue(state);
}
$$("selected").attachEvent("onTimedKeyPress", function() {
set_state();
var value = $$("selected").getValue();
$$("dbl").$$("right").filter("#value#", value, true);
});
$$("unselected").attachEvent("onTimedKeyPress", function() {
set_state();
var value = $$("unselected").getValue();
$$("dbl").$$("left").filter("#value#", value, true);
});