Используя для переключения между компонентами MultiView средства API, вы можете ссылаться как на ячейки и компоненты в них, так и на контролы переключения.
У любого из контролов, как и у TabView есть общие правила инициализации, где вкладки хранятся в массиве options:
{view:"tabbar", id:"tabbar1", multiview:true, options:
[{id:"1", value:"Tab1"}, {id:"2", value:"Tab2"}]
}
Вкладки связаны с ячейками MultiView, т.о. если вы зададите value для кнопки, будет открыта соответствующая вкладка с компонентом:
$$("tabbar1").setValue("2"); // будет задана 2-ая вкладка, с "Tab2"
Следующие функции используются для работы с видимостью компонентов:
Чтобы включить переключение между компонентами необходимо:
MultiView с двумя ячейками
webix.ui({
view:"multiview",
id:"views",
cells:[
{ id:"listView", view:"list" },
{ id:"formView", view:"form" }
]
})
// кнопка html
<input type='button' onclick='$$("cell_a").show()' value="show cell A">
// переключение срабатывает при нажатии на элемент list
$$("listView").attachEvent("onItemClick",function(id){
$$('formView').show();
})
// переключение на предыдущую вкладку - срабатывает одновременно с сохранением form
function save(){
$$("formView").save();
$$("views").back();
}
Related sample: 'Show/Back' Navigation
Если ячейка MultiView содержит в себе ячейки, т.е. сама является MultiView, доступ к вложенным компонентам потребует вызова метода show() со значением true
.
rows:[
{ cells:[ // 1-я ячейка
{
id:"listView",
view:"list"},
{
id:"chartView", // 2-я ячейка
cells:[
{
view:"chart", // 1-я вложенная ячейка
type:"bar"},
{
view:"chart", // 2-я вложенная ячейка
type:"donut"}
]
}
]
}]
Чтобы переключиться из компонента list в любую ячейку с chart (в примере кода выше), вызовите метод show(true):
<input type='button' onclick='$$("chart1").show(true)'
value="show chart1 and parents">
Чтобы переключаться между вложенными компонентами одного уровня, не нужно ссылаться на родительский компонент, достаточно вызова show().
Related sample: Nested Multiviews