小编Ala*_*ler的帖子

如何扩展“sap.m.Dialog”以将自定义内容添加到对话框页脚?

我正在尝试创建一个自定义对话框来显示页脚中的一些文本和链接以及按钮。我不知道如何更改现有的渲染,因此我编写了一个简单的渲染器来检查行为。这是我的代码:

sap.m.Dialog.extend("EnhancedDialog",{

  metadata:{
    properties:{
      footerLabelText:{type:"string",defaultValue:null},
      footerLinkText:{type:"string",defaultValue:null},
      footerLinkHref:{type:"string",defaultValue:null}
    },
    aggregations:{
      _label:{type:"sap.m.Label",multiple:false,visibility:"hidden"},
      _link:{type:"sap.m.Link",multiple:false,visibility:"hidden"}
    },
    events:{}
  },

  init:function(){
    this.getAggregation("_label", new sap.m.Label({text:"Check"}));
    this.getAggregation("_link",new sap.m.Link({text:"Link"}));
  },

  setFooterLabelText:function(oLabelText){
    this.setProperty("footerLabelText",oLabelText,true);
    this.getAggregation("_label").setText(oLabelText);
  },

  setFooterLinkText:function(oLinkText){
    this.setProperty("footerLinkText",oLinkText,true);
    this.getAggregation("_link").setText(oLinkText);
  },

  setFooterLinkHref:function(oLinkHref){
    this.setProperty("footerLinkHref",oLinkHref,true);
    this.getAggregation("_link").setHref(oLinkHref);
  },

  renderer:{
    render:function(oRM,oControl){
      oRM.write("<div");
      oRM.writeControlData(oControl);
      oRM.writeClasses();
      oRM.write(">");
      oRM.renderControl(oControl.getAggregation("_label"));
      oRM.renderControl(oControl.getAggregation("_link"));
      oRM.write("</div");   
    }
  }
});

var enhancedDialog=new EnhancedDialog();
var btn=new sap.m.Button({
  text:"Click Here!",
  press: function(){
    enhancedDialog.open();
  }
});
Run Code Online (Sandbox Code Playgroud)

但我收到错误

Dialog.js:6 未捕获类型错误:无法读取未定义的属性“setInitialFocusId”

当我点击按钮时。

有人可以指出我做错了什么吗?

以及如何更改现有渲染器行为以在页脚中显示文本?

这就是我想做的:
页脚中包含一些文本的对话框

modal-dialog sapui5

5
推荐指数
1
解决办法
3049
查看次数

标签 统计

modal-dialog ×1

sapui5 ×1