如何获取按下ColumnListItem的索引?我想得到并传递给控制器方法。
查看代码:
var oTable = new sap.m.Table({
id: "Countries",
mode: sap.m.ListMode.None,
columns: [ new sap.m.Column({
width: "1em",
header: new sap.m.Label({
text: "Name"
})
})
]
});
var template = new sap.m.ColumnListItem({
id: "first_template",
type: "Navigation",
visible: true,
selected: true,
cells: [ new sap.m.Label({
text: "{name}"
})
],
press: [oController.pressListMethod]
});
oTable.bindItems("/eventos", template, null, null);
oPage.addContent(oTable);
控制器代码:
pressListMethod: function(index){
var oData = sap.ui.getCore().getModel().getProperty("/eventos/"+index+"/name");
alert(oData);
}
答案 0 :(得分:1)
您不应该依赖索引,因为表中的索引可能与模型中的索引不同(例如,由于过滤和排序)。
你可以像这样阅读被按下ListItem
的bindingContext:
pressListMethod: function(event){
var bindingContext = event.getSource().getBindingContext();
}
bindingContext是一个人工对象,包含相关模型和模型中对象的路径。
然后,您可以像这样读取对象的属性:
var name = bindingContext.getProperty("name");
要获得整个对象,您可以这样做:
var myObject = bindingContext.getObject();
答案 1 :(得分:-2)
获得产品的确切价值
SelectedRowContext.getObject('PRODUCT_ID')
获取产品名称
SelectedRowContext.getObject('NAME')