我有一个非常标准的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;
}
但是,如果页面已经可见且用户调整设置,则无效。 (说实话,可能不是最好的方法。)
有什么想法吗?
答案 0 :(得分: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; }
};
BTW,我建议您使用content.className += " noGroup";
,而不是像在代码中那样使用content.classList.add("noGroup");
。