在sap.m.PlanningCalendar中是否有一个事件加载了行?

时间:2016-03-09 11:54:51

标签: sapui5 sap.m

使用WorkList(甚至是Master-detail)模板时,dmesg函数中有以下事件:

onInit

oTable.attachEventOnce("updateFinished", function(){ // Restore original busy indicator delay for worklist's table oViewModel.setProperty("/tableBusyDelay", iOriginalBusyDelay); }); 中,您还可以设置view.xml的eventHandler,以便在列表中收到数据时能够执行操作。

updateFinished你没有这样的事件处理程序,我们如何为这样的组件处理这些事情?

我试图实现的逻辑如下:

PlanningCalendar

我想加载并添加&#34;约会&#34;仅适用于日历的可见部分(过滤器的start和endDate),所以我想自己执行<PlanningCalendar id="PC1" rows="{ path: '/DeveloperSet' }" viewKey="Day" busyIndicatorDelay="{planningView>/calendarBusyDelay}" noDataText="{planningView>/calendarNoDataText}" appointmentSelect="onAppointmentSelect" rowSelectionChange="onDeveloperRowChange" startDateChange="onStartDateChange"> <toolbarContent> <Title text="Title" titleStyle="H4" /> <ToolbarSpacer /> <Button id="bLegend" icon="sap-icon://legend" type="Transparant" press="onShowlegend" /> </toolbarContent> <rows> <PlanningCalendarRow icon="{Pic}" title="{Name}" text="{Role}" /> </rows> </PlanningCalendar> - 调用。但行(DeveloperSet)应始终保持不变。所以我应该能够等待&#34;直到日历中的数据/行已填入日历,然后进行手动调用以检索约会。

因此,我需要能够在检索数据时执行某些操作,但日历中没有oDataModel.read事件?

有人知道如何解决这个问题吗?

提前致谢!

亲切的问候,

罗宾

1 个答案:

答案 0 :(得分:0)

事件&#34; updateFinished&#34;当在表或列表中使用从方法updateList触发时,此方法处理聚合的更新&#34; list&#34;

PlanningCalendar没有updateRows方法,因此没有事件&#34; updateFinished&#34;

如果你有一个

,你可以在Row绑定上监听dataReceived事件
void main(){

  double K= 50.0;
  double S= 100.0;

  boost::shared_ptr<Derived_A> x(new Derived_A(K));

  boost::shared_ptr<Derived_B> y(new Derived_B(K,x));

  boost::shared_ptr<Derived_C> z(new Derived_C(y));

  std::cout << z->barC->K << std::endl; // returns 0.0 instead of 50.0
}

否则您可以扩展控件并添加自己的updateRows方法并触发&#34; updateFinished&#34;,下面的黑客测试显示它可以正常工作

map = new esri.Map("mapDiv", {
    center: [-118.30, 34.3],
    zoom: 8,
    basemap: "topo"
});



on(map, "update-end", function(){           // update-end event will execute after the layer has been added to the map
   if(featureLayer.graphics.length >= 1)
   {
       // do your thing         
   }
})   



var featureLayer = new     

    esri.layers.FeatureLayer("http://services.arcgis.com/v01gqwMseaqNAi/arcgis/rest/services/Project_boundaries_021616/FeatureServer/0",{
   mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
   outFields: ["*"],
   opacity: 1                       
}); 

featureLayer.setDefinitionExpression("SrvyDescID=\'' . htmlspecialchars($SDID) . '\'");                 
map.addLayer(featureLayer);