头图

如何使用 controllerExtensions 给 SAP Fiori Elements 表格注册事件响应函数

JerryWang_汪子熙

步骤1:在 manifest.json 的 extends 区域里,注册 controllerExtensions:

源代码:

"extends": {
            "extensions": {
                "sap.ui.controllerExtensions": {
                    "sap.suite.ui.generic.template.ListReport.view.ListReport": {
                      "controllerName": "com.sap.jerry.jerryfioriapp.ext.controller.ListReportExtension",
                        "sap.ui.generic.app": {
                          "SEPMRA_C_PD_Product": {
                            "EntitySet": "SEPMRA_C_PD_Product",
                            "Actions": {
                              "ActionName1": {
                                "id" : "ActionName1",
                                "text" : "Jerry的按钮",
                                "press" : "onCustomAction1",
                                "global": true
                              }
                            }
                        }
                    }
                }        
            }
            }
        },

步骤2:

实现 controller extension:

sap.ui.define("com.sap.jerry.jerryfioriapp.ext.controller.ListReportExtension", [], function() {
    return {
        onCustomAction1 : function(oEvent) {
            alert('Hello');
        },
        onAfterRendering: function (oEvent) {
            debugger;
            var oContentTable = this.byId("com.sap.jerry.jerryfioriapp::sap.suite.ui.generic.template.ListReport.view.ListReport::SEPMRA_C_PD_Product--responsiveTable");
            oContentTable.attachSelect(this._onSelectChanged);
    
        },
        _onSelectChanged: function (oEvent) {
            debugger;
        }
    }
  });

步骤3:测试。

运行时,首先触发 onAfterRendering 钩子函数,通过byId API,根据 Smart Table 控件 ID,拿到其 table 实例:

SAP UI5 里所有的运行时创建实例,都存储在全局对象 mInstances 里,键为 控件 id,值为控件实例。

拿到 table 实例后,调用其 attach 方法,挂接对应的事件处理函数。

一切完成后,点击 Smart Table 某行项目,我们使用 attachSelect 注册的事件处理函数就会触发:

本文参考:Fiori Element List Report – Adjust column size automatically

更多Jerry的原创文章,尽在:"汪子熙":

阅读 234

Jerry Wang的SAP技术专栏
SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使

Jerry 2007年从电子科技大学计算机专业硕士毕业后进入SAP成都研究院工作至今, SAP社区导师,SAP中国技术...

700 声望
996 粉丝
0 条评论
你知道吗?

Jerry 2007年从电子科技大学计算机专业硕士毕业后进入SAP成都研究院工作至今, SAP社区导师,SAP中国技术...

700 声望
996 粉丝
宣传栏