Список групп Webix. Как вернуться в ранее открытое состояние?

Я использую webix grouplist, чтобы показать некоторые иерархические данные. И после изменения набора данных мне нужно вернуть состояние груплиста в ранее открытое состояние.
Я нашел способ сохранить открытое состояние - getOpenState(), но похоже, что в их API нет метода что-то вроде setOpenState() . Это метод для получения открытого состояния:

webix.ui({
    view:"grouplist",
    data:[ //hierarchical JSON dataset
        {id:"root", value:"Films data", open:true, data:[
            { id:"1", open:true, value:"The Shawshank Redemption", data:[
                { id:"1.1", value:"Part 1" },
                { id:"1.2", value:"Part 2", data:[
                    { id:"1.2.1", value:"Page 1" },
                    { id:"1.2.2", value:"Page 1" }
                    ]},
                { id:"1.3", value:"Part 3" }
            ]},
            { id:"2", open:true, value:"The Godfather", data:[
                { id:"2.1", value:"Part 1" }
            ]}
        ]}
});


var state = $$('grouplist1').getOpenState();
if(state){
    result = JSON.stringify(state);
    webix.message(result);
    }
};

person andrey.shedko    schedule 26.09.2016    source источник


Ответы (1)


Что ж, решение было довольно простым:
1. Получить идентификатор элемента по клику.

onItemClick: function (id, e, node) {
            setTimeEntry(this.getItem(id));
            webix.storage.local.put("id", id);
        }

2. Показать элемент с помощью метода .showItem(id)

    onAfterLoad: function () {
                this.hideOverlay();
                checkOptions();
                var itemId = webix.storage.local.get("id");
                if (itemId !== null && itemId !== undefined)
                this.showItem(itemId);
     }
person andrey.shedko    schedule 26.09.2016