将浏览器事件附加到计划日历约会

2020-09-09 05:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我想将诸如 dblcli...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想将诸如" dblclick","上下文"之类的浏览器事件附加到PlanningCalendar中的约会。 该视图是从XML生成的。

生成ID时,我不能使用" this.byId(" appointmentID")。attachBrowserEvent(...")。

然后,我在以下位置找到了常见的事件处理程序方法: https://sapui5。 hana.ondemand.com/sdk/#/topic/bdf3e9818cd84d37a18ee5680e97e1c1

代码示例

 onclick:function(oEvent){
    alert(" Control" + this.getId()+"被单击。");} 

看起来很有希望。 但是," this.getId()"不是函数。

深入研究控制事件,我在 https://sapui5.hana.ondemand.com/sdk/#/api/module%3Asap%2Fui%2Fevents%2FControlEvents

但是我无法运行" sap/ui/events/ControlEvents.bindAnyEvent(fnCallback)"。

" this.getView()。bindAnyEvent(fnCallBack());" 不会在代码编辑器中标记错误,而是会抛出一个不是函数的运行时错误。

有人知道在这种情况下如何附加浏览器事件吗? 有没有我找不到的样品吗?

谢谢,问候

2条回答
悻福寶寶
2020-09-09 06:33

嗨,

深入研究UI5的事件处理,我的情况更清楚了,但还没有解决方案。

我发现提到的"公共事件处理程序方法"以及" ControlEvents"都与开发新控件有关。 通过添加事件处理程序(有一个示例)来扩展现有控件非常简单。 但是它将创建一个新的"类",而PlanningBoard控件将不会使用它。 似乎同样适用于" addEventDelegate"方法。

有效的方法是添加" this.byId(" planningBoard")。attachBrowserEvent(" dblclick",function(oEvent){};"。但是,根据文档,attachBrowserEvent仅应用作备用。

所以我添加了" this.byId(" planningBoard")。ondblclick = function(oEvent){};" 代替。

这可行,但是我面临一个主要问题。 在oEvent上没有单个事件方法(getId,getSource,getParameters)。 本地范围显示oEvent是" Q.Event"类型,而不是我习惯的oEvent的构造函数。 有趣的是,我可以在oEvent中看到双击约会的所有数据,但无法访问。

所以这给我留下了两个问题。

1。)如何访问dblclick事件的数据?

2。)最后,我想将事件处理程序附加到CalendarAppointment控件本身,而不是整个PlanningCalendar。 我真的需要遍历所有PlanningCalendarRows以获取所有CalendarAppointments并附加.ondblclick函数吗? 还是有一种更优雅的方式?

一周热门 更多>