我已经建立了一个表,它看起来如下:
和代码:
<ColumnListItem type="Detail" detailPress="onDetailPress">
<cells>
<ObjectIdentifier title="{Customer>CustomerID}" text="{Customer>CompanyName}"/>
<Text text="{Customer>ContactName}"/>
<Text text="{Customer>Address}"/>
<Text text="{Customer>City}"/>
</cells>
</ColumnListItem>
当我按铅笔时,它将发出事件detailPress
:
onDetailPress: function(oEvent) {
console.log(oEvent.getParameters());
}
事件对象的返回类型getParameters()
方法调用是什么? doc没有提到任何类型。
如何使用oEvent获取按下列表项的客户详细信息。
调试器说:
答案 0 :(得分:1)
oEvent是事件对象。 getParameters()返回一个JSON对象。因此类型为here
在这种情况下,它是一个空对象,但是还有其他事件会返回对象内部的参数,例如this one
如果要获取customerID,只需从单击的行中获取模型路径,并从模型中获取属性。这是代码段:
onDetailPress: function(oEvent){
var oColumnListItem = oEvent.getSource();
var sPath = oColumnListItem.getBindingContext("Customer").getPath();
var sCustomerIDPath = sPath + "/CustomerID";
var oModel = oColumnListItem.getModel("Customer")
console.log(oModel.getProperty(sCustomerIDPath));
}
答案 1 :(得分:1)
您可以像这样获得绑定到行的对象
onDetailPress: function(oEvent) {
var oObject = oEvent.getSource().getBindingContext("Customer").getObject();
// from this object, you can do oObject.CustomerID
}