Ich versuche, das ItemPress-Ereignis für SmartTable-Steuerelement in SAP UI5 anzuhängen. Die Sicht ist in XML definiert und an OData gebunden.SAPUI5/FIORI - SmartTable pressItem Ereignis nicht ausgelöst
<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>
Da für die ResponsiveTable der Tabelle hinter ist sap.m.Table ich versuchte, das itemPress Ereignis in der onAfterRendering Fall Controller zu befestigen. Es hat nicht funktioniert. Dann habe ich versucht, die OnAfterRendering der Tabelle selbst zu überschreiben und dort das Ereignis anhängen - der gleiche Effekt, das Ereignis wurde nicht ausgelöst.
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!!");
});
}
Muss ich etwas tun, ist hier falsch, irgendwelche Vorschläge? Gibt es eine Möglichkeit, es für SmartTable in XML zu registrieren? Ich möchte nicht zu sap.m.table in der XML-Ansicht wechseln, aber lasse es wie es ist. Würde deine Hilfe Gurus schätzen.
Was ist mit dem Trennen dieses Ereignisses? Otherwice gibt es so viele angehängte Ereignisse wie die" updateFinished "Ereignisse ausgelöst werden die Tabelle, die zu mehreren Ereignisauslösungen führen wird :) –
@AndrriNaumovych Ich denke, du hast Recht, ich habe meinen Code geändert Wenn es funktioniert, wird sogar der Tisch aufgefrischt. – Allen
Dies funktioniert als ein Charme, danke Jungs! – Kubas