语境
我正在创建一个演示页面,该页面显示UI5的一些直接功能。该页面包括两个主要页面:
在第一页上,有一个可以创建,删除和更新的运营商列表。这些运营商有一个ID(Carrid)。
如果单击某个承运商,他们将被转到第二页,表格中将显示所选承运方的所有航班(其中包含有关航班的一些信息)。
该表如下所示:
<Table id="detailTable" inset="false" class="sapUiResponsiveMargin">
<columns>
<Column>
<Text text="ID" />
</Column>
<Column>
<Text text="Flightnumber" />
</Column>
<Column>
<Text text="Starts in" />
</Column>
<Column>
<Text text="Departs at" />
</Column>
<Column>
<Text text="Lands in" />
</Column>
<Column>
<Text text="Lands at" />
</Column>
</columns>
</Table>
问题
如果可以不先处理就可以显示数据,则代码可以正常工作。但字段{Deptime}和{Arrtime}有型Edm.Time,我需要先转换,才能在人类可读的形式来显示。
我可以通过以下代码来实现这一点(我知道,这不是最有效的方法,但是我仍在学习中。因此,如果有任何改进,请随时发布):
pageTable.addEventDelegate({
onAfterRendering: function() {
var mTable = this.getView("FilterBarSimple").byId("detailTable");
var mModel = mTable.getModel();
var aItems = mTable.getItems();
// ----- TIME CONVERSION ----
var arrayTime = [];
for (var iTime = 0; iTime < aItems.length; iTime++) {
var iAdded = mModel.getProperty("Deptime", aItems[iTime].getBindingContext());
arrayTime.push(iAdded);
}
var timeFormat = sap.ui.core.format.DateFormat.getTimeInstance({
pattern: "kk:mm:ss"
});
var tz = new Date(0).getTimezoneOffset() * 60 * 1000;
var arrayTimeClean = [];
$.each(arrayTime, function(ii, ee) {
var timeStr = timeFormat.format(new Date(ee.ms + tz));
arrayTimeClean.push(timeStr);
});
}
});
这将生成正确的输出:
Image_Of_Converted_Output
但是我无法再次将此操纵数据正确绑定到表中。我已经尝试过使用该OData.read()函数和其他一些不太实用的方法,但是我从未成功过,并且在相当长的一段时间里一直困扰着这个问题。
如果有人有想法或建议,如果您让我知道,我将不胜感激。
慕田峪9158850
相关分类