我有一个 listview ,每个都有一个开关组件,在页脚中有一个按钮,其功能是设置所有开关的真或假。 下一个代码用于将开关设置为true:
var listView1 = view.getViewById(page, "listView");
var label = listView.getViewById('id_check');
label.checked = true;
但我只能设置一个项目的状态,我需要更改所有项目的状态。怎么办?
谢谢
编辑:
我写了下面的代码,但是我有一个错误:
for (var i = 0, size = historiqueList.length; i < size ; i++) {
var listView = view.getViewById(page, "listView1");
var label = listView.getItem(i).id_check;
label.checked = true;
}
错误:无法设置属性&#39;已检查&#39;
答案 0 :(得分:0)
对于您的描述,我认为您引用了具有相同ID的所有交换机,因此当您尝试访问它们时,您只能访问引用的最后一个。尝试使用一个数组,您可以将它们全部存储起来并循环它以在需要时更改所有值。
答案 1 :(得分:0)
你必须拦截onItemLoading事件。
以下是带有TS的NS的伪代码。
public onItemLoading(args) {
let item : ListItem = this._listItemArray.getItem( args.itemIndex );
let switch = args.view.getViewById("switch");
switch.enabled = true; // this could be incorrect
}
这是RadListView - 但我确定ListView类似。
this._listItemArray是ListView中显示的数据数组。