在SAPUI5控件上调用事件

在SAPUI5控件上调用事件,sapui5,Sapui5,我正在开发一个SAPUI5应用程序,其中包含用户配置和用户移动屏幕的能力。 i、 e.假设屏幕是动态侧内容布局sap.ui.Layout.DynamicSideContent,用户可以选择将其放置在左侧或右侧。用户还可以根据其使用情况选择关闭/打开侧内容 为了方便这一点,有一个按钮(见下面的快照),它让用户在屏幕上有一种拉出的感觉。按钮具有绝对位置,因此它的宽度是根据浏览器窗口以及侧面内容的大小和位置计算的 `window.load事件 但它并不是在所有情况下都能正常工作。如何在布局上(在任何

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

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

但它并不是在所有情况下都能正常工作。如何在布局上(在任何
sap.ui.core.Control
上)触发renderComplete事件。我尝试使用以下代码,但没有触发任何事件

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");
                }   
            });
}

您可以使用控件的
onAfterRendering
方法,如下所示:

对于例如
sap.m.ComboBox
控件

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

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

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

Hi Shidai,我尝试在视图的onAfterRendering中执行此操作,但这似乎根本没有调用函数。上面问题中的示例将其放在控制器的onAfterRendering中这将是您的控制器,您需要在其中添加一个新函数来执行在本例中,控件“”类似于.getView().byid('controlId')