【问题标题】:Calling events on SAPUI5 Controls在 SAPUI5 控件上调用事件
【发布时间】:2016-08-30 05:56:27
【问题描述】:

我正在开发一个 SAPUI5 应用程序,其中包含用户配置和用户移动屏幕的能力。 即假设屏幕是动态侧面内容布局sap.ui.layout.DynamicSideContent,用户可以选择将其放置在左侧或右侧。用户还可以选择根据使用情况关闭/打开侧边内容。

为了方便这一点,有一个按钮(见下面的快照),它给用户一种在屏幕上拉出的感觉。该按钮具有绝对位置,因此它的宽度是根据浏览器窗口和侧面内容的大小和位置来计算的。为了计算第一次渲染屏幕的时间,我使用了 `window.load 事件。

但它并非在所有情况下都能正常运行。如何在布局上触发 renderComplete 事件(就此而言,在任何 sap.ui.core.Control 上)。我尝试使用以下代码,但没有触发任何事件。

controlName.addEventDelegate({
                onBeforeShow: function() {
                    console.log("on Before Show");
                },
                onAfterShow: function() {
                    console.log("on After Show")
                }
            })

我不能使用视图的onAfterRendering,因为它是在页面加载所有相关资源之前调用的,而$.load() 函数也不能正常工作。

对于这种情况,最好的方法是什么?

提前致谢

编辑:添加我的代码。

onAfterRendering: function(){
        var dynamicContainer= this.getView().byId("idKPIWORDynamicSideContent");
            dynamicContainer.addDelegate({
                onAfterRendering: function(){
                    alert("After Rendering");
                }   
            });
}

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    您可以使用Control的onAfterRendering方法如下:

    例如sap.m.ComboBox控制,

    oComboBox.onAfterRendering = function(){
        if (sap.m.ComboBox.prototype.onAfterRendering){
            sap.m.ComboBox.prototype.onAfterRendering.apply(this);
        }
        // your stuff
    }
    

    【讨论】:

      【解决方案2】:

      我有一个案例,从技术角度来看可能类似。在数据绑定之后,我必须根据单元格的值对表格单元格进行着色。这解决了我的问题。这里的“this”是控制器。所以我建议将以下代码放在控制器的 onAfterRendering() 中。

      control.addDelegate({
          onAfterRendering: $.proxy(this.functionToExecute, control)
      });
      

      【讨论】:

      • 您好 Shidai,我尝试在 View 的 onAfterRendering 中执行此操作,但这似乎根本没有调用该函数。上述问题中的示例
      • 把它放在你的控制器的 onAfterRendering 中。 'this' 将成为您的控制器,您需要在其中添加一个新函数 functionToExecute。在这种情况下,“控制”类似于 this.getView().byid('controlId')
      猜你喜欢
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多