Sapui5 sap.m.PlanningCalendar中是否有加载行的事件?
使用工作列表(甚至主详细信息)模板时,在Sapui5 sap.m.PlanningCalendar中是否有加载行的事件?,sapui5,Sapui5,使用工作列表(甚至主详细信息)模板时,在onInit函数中会出现以下事件: oTable.attachEventance(“updateFinished”,function()){ //恢复工作列表表的原始忙指示灯延迟 oViewModel.setProperty(“/tableBusyDelay”,iOriginalBusyDelay); }); 在view.xml中,您还可以设置updateFinished的eventHandler,以便在列表中收到数据时执行操作 在PlanningCal
onInit
函数中会出现以下事件:
oTable.attachEventance(“updateFinished”,function()){
//恢复工作列表表的原始忙指示灯延迟
oViewModel.setProperty(“/tableBusyDelay”,iOriginalBusyDelay);
});
在view.xml
中,您还可以设置updateFinished
的eventHandler,以便在列表中收到数据时执行操作
在PlanningCalendar
中,您没有这样的eventhandler,我们如何为这样一个组件处理这些事情
我试图实现的逻辑如下:
我只想为日历的可见部分(开始和结束日期过滤)加载和添加“约会”,因此我想自己执行oDataModel.read
-调用。但是行(DeveloperSet)应该始终保持不变。因此,我应该能够“等待”,直到日历中填充了数据/行,然后手动调用来检索约会
因此,我需要能够在检索数据时执行某些操作,但日历中没有updateFinished
事件
有人知道如何解决这个问题吗?当在表或列表中使用事件“updateFinished”时,从方法updateList触发,此方法处理聚合“List”的更新
PlanningCalendar没有updateRows方法,因此没有事件“updateFinished”
如果有,可以侦听行绑定上的dataReceived事件
OnInit: function(){
...
this.oPlanningCalendar = this.byId("PC1")
var oBinding = oPlanningCalendar.getBinding("rows");
oBinding.attachDataReceived(this.fnDataReceived, this);
否则,您可以扩展控件并添加自己的updateRows方法并启动“updateFinished”,下面的黑客测试表明它可以工作
OnInit: function(){
...
this.oPlanningCalendar = this.byId("PC1");
this.oPlanningCalendar.updateRows = function(sReason) {
this.oPlanningCalendar.updateAggregation("rows");
var oBinding = this.oPlanningCalendar.getBinding("rows");
if (oBinding) {
jQuery.sap.log.info("max rows = " + oBinding.getLength() || 0);
}
}.bind(this);
dataReceived事件是使用jsonModel还是仅使用oDataModel激发的。使用JSONModel,我看到事件从未被触发?fireDataReceived仅在请求数据的OData场景中被调用,请尝试updateRows