我有一个 XML 视图,其中包含一个列表,该列表包含带有 Input、ComboBox 等的 CustomListItems。
现在我想在运行时操作 setEnabled(true) 或 false 等控件的属性。为此,我需要迭代列表中的项目并访问控件。正确的?
如果我在 List 上使用 getItems,我会收到一个 ListItemBase 数组。如何获取嵌入到 ListItem 的控件?
任何帮助/提示表示赞赏。
ListItemBase
对象 odList.getItems()
实际上是您的 CustomListItems 。您可以直接访问它们的所有属性和方法(在 JavaScript 中没有强制转换)。
var listItems = list.getItems();
for (var i = 0, len = listItems.length; i < len; i++){
var controls = listItems[i].getContent();
var input = controls[0];
var comboBox = controls[1];
// and so on.
}
但是对于您的第一个问题:如果您使用数据绑定来创建列表,那么您也应该对其他属性使用数据绑定enabled
。您可以将表达式绑定或多部分绑定与格式化程序函数一起使用来计算属性,例如从列表行的任何模型数据(相对绑定路径)和所有可用模型(绝对绑定路径)的任何其他数据中启用。
另外一个好的做法是创建一个专用的viewModel - 一个简单的 JSONModel,它代表您的视图的某些状态并且可以绑定到。
如果您需要一个示例,请告诉我们更多关于您要完成的工作。