如何在WinJs中创建排序列表?

时间:2013-10-01 16:08:08

标签: javascript listview winjs

我目前正在尝试创建一个列表,该列表按两页Win 8 Metro风格应用程序的键排序 首先,我从我的数据阵列

创建了两个新的 WinJS.Binding.List
var itemList = new WinJS.Binding.List(dataItems);
var list = new WinJS.Binding.List(dataItems);

接下来,我创建我的过滤列表

Data.updateGroup(options)

function updateGroup(key) {  
list = itemList.createFiltered(function (itemList) { return itemList.group == key; });
}

然后我将此列表分配给我的listView

listView.itemDataSource = Data.list.dataSource;
listView.itemTemplate = element.querySelector(".itemtemplate");
listView.layout = new ui.ListLayout();

但是当我启动我的应用程序时,会显示未过滤的列表。

我需要改变什么?

1 个答案:

答案 0 :(得分:1)

您可以使用createSorted方法创建WinJS.Binding.List的排序投影,您可以使用该方法为您使用密钥进行排序。

createSorted的返回是WinJS.Binding.List的衍生物,因此您可以在知道过滤器后调用createFiltered。

换句话说,List的投影是可组合的,因此您可以将投影方法链接在一起,例如createSorted()。createFiltered()或createFiltered()。createSorted()。同样适用于createGrouped。