javascript - 如何排序和过滤实现了 IListDataAdapter 的 WinJS 自定义数据源?

标签 javascript windows-8 winjs

我已经为实现 IListDataAdapter 的 ListView 创建了自定义数据源。数据来自几个不同的 Web 服务,需要多次异步调用才能完全填充。数据正确填充,并且 ListView 展示了很好的“无限滚动”功能,根据需要加载新的数据页面。

我现在正尝试过滤几个不同属性的数据。我有一个复选框和一个下拉列表,它们都有正确触发的事件。这些事件应该调用 updateLayout 方法...但由于某种原因,该方法最终未定义。

    checkBoxClick: function (eventObject) {
        this.updateLayout(document, Windows.UI.ViewManagement.ApplicationView.value);
    },

    dropDownListValueChange: function (eventObject) {
        this.updateLayout(document, Windows.UI.ViewManagement.ApplicationView.value);
    },

我希望有人有一个使用自定义数据源并支持排序和过滤的项目,并且愿意与类(class)分享该代码。

最佳答案

您可以使用以下 API:

WinJS.Binding.List.createSorted(sortingFunction)WinJS.Binding.List.createFiltered(filterFunction)

您应该首先使用“排序”或“过滤”WinJS.Binding.List 将您的dataSource 绑定(bind)到 View 。然后任何新添加到同一 dataSource 的值都会自行更新。

附言我还注意到您正在使用 updateLayout。我不知道它是否与您的问题有关,但自从 Windows 8 发布以来,它开始使用一个名为 initializeLayout 的函数来更新 View 。

关于javascript - 如何排序和过滤实现了 IListDataAdapter 的 WinJS 自定义数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235652/

相关文章:

javascript - 从 React 项目中提取架构

c# - 将字符串转换为页面类型?

javascript - Windows 8 应用程序是否在符合标准的 JavaScript、HTML5 和 CSS3 上运行?

c# - 有没有办法将 System.IO.Stream 转换为 Windows.Storage.Streams.IRandomAccessStream?

javascript - 使用 Javascript 的联系表

javascript - 设备之间同步 - 如何做到这一点?

javascript - Windows 应用商店应用程序 - 从辅助磁贴启动时执行单个任务

javascript - 从底部开始然后向上滚动

javascript - 如何让 Spine.js Ajax 持久性工作

javascript - 从 XMLHttpRequest 调用的 PHP 将值返回到 Javascript