我正在尝试扩展this article之后的sap.m.Table控件 一切都很好。控件正在呈现并正确显示所有内容。
但事件不会被解雇。 我错过了什么?我是否必须参加其他活动?我以为我可以覆盖sap.m.Table控件的onItemPress事件并以我想要的方式增强它,因为我不需要原始功能。
任何指向解决方案的指针都将受到赞赏。
在尝试扩展控件之前,我已经尝试使用.addEventDelegat()
来挂钩onItemPress事件,这也不起作用。
我的扩展控件:
sap.m.Table.extend("CollapsableGroupTable",{
metadata:{
events:{
"groupCollapse" : {}
}
},
onItemPress : function(evt) {
this.fireGroupCollapse();
},
renderer : {}
});
我的控制实例:
var oTable = new CollapsableGroupTable({
columns : [
<some columns>
],
items : {
path: "<somePath>",
sorter : <someSorter>,
factory : <someFactoryFunction>
},
groupCollapse : function(){console.log("group collapse event fired");},
});
编辑:为了澄清,不起作用的事件的覆盖与项目类型相关。我尝试使用主动和非主动。
答案 0 :(得分:1)
onItemPress
是一个外部事件。
您应该检查sap.m.Table
中哪个函数正在触发该事件并覆盖该函数以触发您的事件。
答案 1 :(得分:0)
默认情况下,ListItem的type属性将处于非活动状态,因此将忽略itemPress事件。将ListItem类型更改为“活动”。
https://sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.m.ListBase.html#event:itemPress
https://sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.m.ListType.html