我有一个从OData模型填充的SAPUI5表。其中一个列是我想格式化的日期/时间字段,但我无法弄清楚如何在SUI5中进行格式化。
这就是我现在正在做的事情:
var tableModel = new sap.ui.model.odata.ODataModel("...");
var table = new sap.ui.table.DataTable();
table.setModel(tableModel);
table.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Date"}),
template: new sap.ui.commons.TextView().bindProperty("text", "DATE"),
sortProperty: "DATE",
filterProperty: "DATE"
}));
这是前两行输出(我的浏览器语言是德语):
我想要做的就是将日期和时间格式更改为mm / dd / yyyy hh:mm
我做了一些搜索,以下问题正是我的问题 - 但有一个已接受的答案,我不理解或实际上没有解决问题: Date format in a table SAPUI5
我意识到这可能是一个微不足道的问题,我只是错过了如何轻松地做到这一点,或者它是在一个官方教程中处理的。在这种情况下,请在评论中指出我,我将删除这个问题。
答案 0 :(得分:16)
使用格式化程序函数非常灵活,但如果您在寻找更简单的东西而无需编写自己的格式逻辑,则可以考虑使用type
属性而不是formatter
这样的:
template: new sap.ui.commons.TextView().bindProperty("text", {
path: "OrderDate",
type: new sap.ui.model.type.Date({pattern: "MM/dd/yyyy hh:mm"})
})
答案 1 :(得分:4)
也值得考虑标准模型格式化程序:sap.ui.model.type.DateTime和sap.ui.model.type.Date
template: new sap.ui.commons.TextView().bindProperty("text", {
path: "DATE",
type: new sap.ui.model.type.DateTime,
formatOptions: { style: "medium" }
})
XML示例(总是使用XML;)
<Text text="{path : 'runDateTime',
type : 'sap.ui.model.type.DateTime',
formatOptions: { style : 'medium'}}" />
由于使用UI5通常是关于为应用程序应用标准视图的对话,因此使用标准格式可能是一个有用的想法。
答案 2 :(得分:3)
使用formatter-function:
var tableModel = new sap.ui.model.odata.ODataModel("...");
var table = new sap.ui.table.DataTable();
table.setModel(tableModel);
table.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Date"}),
template: new sap.ui.commons.TextView({
text : {
path : 'DATE',
formatter : function(value){
return /* TODO: some format logic */;
}
}
}),
sortProperty: "DATE",
filterProperty: "DATE"
}));
答案 3 :(得分:1)
我还在添加如何使用格式化程序功能格式化数字。
<template> = new sap.ui.commons.TextField().bindProperty("<value>",{
path: "<GROSSVALUE>",
type: new sap.ui.model.type.Integer({
maxIntegerDigits: 10,
minFractionDigits: 2,
maxFractionDigits: 2,
groupingEnabled: true,
groupingSeparator: ",",
decimalSeparator: "."
})});