首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAPUI5表模板

SAPUI5表模板
EN

Stack Overflow用户
提问于 2018-01-23 04:42:43
回答 1查看 2.4K关注 0票数 0

在创建模板之前,我为控制器上的一个表创建了一个模板,该表由一些获取oData的文本单元格组成,但也包括一个组合框和具有自己功能的复选框,这非常长。该模板最初位于XML端,但为了过滤正确的oData,必须将其移动到控制器端。

如何将该函数添加到复选框中?此外,我是否可以将日期/时间格式化为只显示月份,就像我在xml方面所做的那样?

代码语言:javascript
复制
var oTemplate = new sap.m.ColumnListItem({
            cells: [
                new sap.m.Text({
                    text: "{ID}"
                }),

               //this does not work
                new sap.m.CheckBox({
                    select: function(){
                    this.estimatePercentageSelect();
                   }
                }),
                new sap.m.ComboBox({
                    items: [new sap.ui.core.ListItem("cMonth", {
                            text: currentMonthName,
                            key: currentMonthName
                        }),
                        new sap.ui.core.ListItem("month1", {
                            text: monthName1,
                            key: monthName1
                        }),
                        new sap.ui.core.ListItem("month2", {
                            text: monthName2,
                            key: monthName2
                        }),
                        new sap.ui.core.ListItem("month3", {
                            text: monthName3,
                            key: monthName3
                        })
                    ]
                }),
                new sap.m.Text({
                    text: "{INSTALL}"
                }),

                  //this formatting also does not work
                new sap.m.Text({
                    text: "{DATE}"
                        /*,
                        type: "sap.ui.model.type.DateTime", 
                        formatOptions: "{pattern: 'MMM'}" */
                }),
                new sap.m.Text({
                    text: "{DWN}"
                }),
                new sap.m.Text({
                    text: "{EST}"
                }), 
 new sap.m.Text({
                    text: "{PLAN}"
                })
            ]
        });
EN

回答 1

Stack Overflow用户

发布于 2018-01-23 05:10:29

下面是我对您的代码的反馈:

  1. 复选框功能: 新sap.m.CheckBox({ select: function(){ this.estimatePercentageSelect();}),

在这里,这个对象将引起问题,因为这个将引用您的控件(复选框),而不是您的控制器。

取而代之的是这样做:

代码语言:javascript
复制
                 new sap.m.CheckBox({
                    select: [
                    this.estimatePercentageSelect, this
                   ]
                }),

在您的函数中,让对象进行检查。

代码语言:javascript
复制
estimatePercentageSelect : function(oEvent) {
    var oSource = oEvent.getSource(); // your clicked checkbox
    var oContext = oSource.getBindingContext().getObject(); // checkbox binding object/context
    console.log(oContext);
}
  1. 日期格式化程序:

创建日期对象:

代码语言:javascript
复制
var oDateType = new sap.ui.model.type.Date({
        source: {
          pattern: "yyyymmdd"
        },
        style: "MMM"
      });

然后把它传递给你的控制:

代码语言:javascript
复制
new sap.m.Text({
    text: {
        path: "DATE",
        type: oDateType
    }
}),

如果这对你有用的话请告诉我。很乐意改进代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48394379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档