1

我在使用 Javascript 将数据绑定到 Windows 8 应用程序中的 ListView 时遇到大量问题。

在 default.js 上的“激活”事件中,我编写了一些代码来从 Web 服务获取一些数据并将其推送到数组中。该位工作正常,阵列已填充。

我遇到的问题是应用程序无法识别数据。我在名为inspections.html 的页面中有这段代码:

data-win-options="{itemTemplate: select('#imageTextListCollectionTemplate'),
                                itemDataSource: dataList.dataSource,
                                layout: {type: WinJS.UI.ListLayout}}

然后在“激活”事件中我声明:

var dataList = new Array();

并将来自 Web 服务的数据推送到该数组中。但是在运行时我收到一个错误,上面写着“无法在未定义的数据列表上找到数据源”。

我已经在 MS 网站上完成了一些示例,其中一个示例创建了一个虚拟数据集并从命名空间中引用它。我有点认为我在这里也缺少一个命名空间,但我不知道 default.js 的命名空间是什么。或者也许我错了,这是完全不同的东西。

请帮助 - 这是非常基本的(并且应该很容易),但我无法理解它。

4

2 回答 2

1

你想用 HTML 或 javascript 创建数据列表吗?

您似乎想从 JavaScript 创建它。假设您已经将数据从您的网络服务推送到数组中,您只需要调用:

var dataList = new WinJS.Binding.List(array);

现在访问dataList.dataSource是完全有效的。

此外,要创建数据列表,您并不总是需要一个数组。您可能会从一个空列表开始,然后继续将数据直接从 Web 服务插入到数据列表中,例如:

var dataList = new WinJS.Binding.List([]);
dataList.push(value1);
dataList.push(value2);

...

希望能帮助到你。如果您还有其他问题,请告诉我。

于 2012-12-15T14:17:10.620 回答
0

如果您在 HTML 端分配数据源时遇到麻烦

喜欢js端喜欢

 var list = new WinJS.Binding.List(array here);
 listView.itemDataSource = list.dataSource;

通过使用它,您可以轻松浏览绑定到 ListView 的数据。

于 2013-09-21T11:36:42.923 回答