WinJS ListView Динамическая группировка
У меня есть довольно стандартная настройка WinJS ListView для привязки к некоторым сгруппированным данным.
Исходя из настроек приложения, я хочу изменить, отображается ли группировка или нет. Я могу частично сделать это, проверяя, когда страница загружается, и пропуская настройки группирования, например, так:
if (!Data.getCategoryGrouping()) {
var content = element.querySelector(".itemspage");
content.className += " noGroup";
listView.groupHeaderTemplate = null;
listView.groupDataSource = null;
}
else {
listView.groupHeaderTemplate = element.querySelector(".headerTemplate");
listView.groupDataSource = Data.groups.dataSource;
}
Однако это не помогает в случае, когда страница уже видна, и пользователь настраивает параметры. (И, честно говоря, в любом случае, вероятно, это не лучший способ сделать это.)
Какие-нибудь мысли?
1 ответ
После загрузки страницы вы можете просто обнулить groupDataSource, чтобы отключить группировку. Как это...
q("#myButton").onclick = function(e) {
myListView.groupDataSource = null;
};
И вы можете просто переключать его с помощью этой кнопки, как это...
q("#myButton").onclick = function(e) {
if (myListView.groupDataSource != null) myListView.groupDataSource = null;
else { myListView.groupDataSource = myGroupedList.groups.dataSource; }
};
Кстати, вместо использования content.className += " noGroup";
как вы делали в своем коде, я рекомендую вам использовать content.classList.add("noGroup");
,