我正在尝试在 sap UI5 中为 SmartTable 控件附加 itemPress 事件。视图在 XML 中定义并绑定到 OData。
<mvc:View
controllerName="myapp.controller.App"
...>
<App>
<pages>
<Page title="title">
<content>
<smartTable:SmartTable
id="kubas"
...
tableType="ResponsiveTable"
...>
</smartTable:SmartTable>
</content>
</Page>
</pages>
</App>
</mvc:View>
由于对于 ResponsiveTable 后面的表是 sap.m.Table 我试图在控制器的 onAfterRendering 事件中附加 itemPress 事件。那没起效。然后我尝试覆盖表本身的 onAfterRendering 并附加事件 - 效果相同,事件没有触发。
onAfterRendering : function(){
var tTable = this.byId("kubas");
var oTable = this.byId("kubas").getTable(); //sap.m.table
console.log(oTable.getMetadata().getName());
oTable.setMode(sap.m.ListMode.SingleSelectMaster);
oTable.onAfterRendering = function(){
console.log("OnAfterRendering");
this.attachItemPress(function(oEvent){
console.log("Pressed!!");
});
}
我在这里做错了什么,有什么建议吗?有没有办法在 XML 中为 SmartTable 注册它?我不想在 XML 视图中切换到 sap.m.table,而是保持原样。感谢您的帮助大师。