gpt4 book ai didi

sencha-touch - 如何遍历 Ext.dataview.List 中的项目列表

转载 作者:行者123 更新时间:2023-12-04 04:46:25 25 4
gpt4 key购买 nike

我目前正在尝试了解如何在 ST2 中设置要在列表中选择的项目。我发现了以下内容:

l.select(0, true);
l.select(1, true);

这将选择我列表中的前 2 项。但是来自服务器的数据是 csv 格式的字符串,其中包含要选择的列表中的项目的 ID。

e.g. "4, 10, 15"

所以我现在有这段代码。

doSetSelectedValues = function(values, scope) {
var l = scope.getComponent("mylist");
var toSet = values.split(",");

// loop through items in list
// if item in list has 'id' property matching whatever is in the toSet array then select it.
}

问题是我似乎找不到一种方法来遍历列表中的项目,然后检查项目的“id”属性以查看它是否与数组中的项目匹配。

l.getItems()

似乎没有返回项目数组。该列表通过具有“id”和“itemdesc”属性的商店填充。我只想能够从 csv 字符串中选择那些项目。我已经为此搜索了 Api,但我似乎找不到一种方法来遍历列表中的项目并能够检查其支持数据。

最佳答案

Ext.List 的项目不是您要查找的项目。 Ext.List 对象下的项目是:

Ext.create('Ext.List', {
fullscreen: true,
itemTpl: '{title}',
store: theStore,
**items: [item1, item2]**
});

当然,Ext.List 通常没有这些项目。您正在寻找的是 Ext.Store 项目。 Ext.Store 项与 Ext.List 中显示的顺序完全相同。要迭代这些,并选择列表中的相应项目,请执行以下操作:

var s = l.getStore();
var itemIndicesToSelect = [];
for (var i = 0 ; i < s.data.items.length ; i++){
if (arrayContainsValue(toSet, s.data.items[i].data.id)){
itemIndicesToSelect.push(i);
}
}

for (var i = 0 ; i < itemIndicesToSelect.length ; i++){
l.selectRange(itemIndicesToSelect[i], itemIndicesToSelect[i], true);
}

您必须实现函数 arrayContainsValue (one possible solution)。

关于sencha-touch - 如何遍历 Ext.dataview.List 中的项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14257040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com