点击此处---> 群内免费提供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());" 不会在代码编辑器中标记错误,而是会抛出一个不是函数的运行时错误。
有人知道在这种情况下如何附加浏览器事件吗? 有没有我找不到的样品吗?
谢谢,问候
嗨,
深入研究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函数吗? 还是有一种更优雅的方式?
嗨,
看起来像是我的学习曲线文档。
问题1.)已解决。 我需要使用oEvent.originalEvent!
仍然需要找到一种方法来确定事件被触发的约会。
但是我在事件数据中找到了约会的类别。 所以希望我可以用它解决问题2。
一周热门 更多>