1

我有一个非常标准的 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;
            }

但是,在页面已经可见并且用户调整设置的情况下,这无济于事。(老实说,这可能不是最好的方法。)

有什么想法吗?

4

1 回答 1

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");.

于 2012-12-15T08:48:42.420 回答