语境我正在创建一个演示页面,该页面显示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()函数和其他一些不太实用的方法,但是我从未成功过,并且在相当长的一段时间里一直困扰着这个问题。如果有人有想法或建议,如果您让我知道,我将不胜感激。
2 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
我正在使用sap.ui.model.odata.type.Time,但对我来说,问题是使用默认格式会使此值P00DT00H00M00S而不是此PT0H0M0S一个,而OData服务给出了奇怪的错误:Cannot read property '1' of null
- 2 回答
- 0 关注
- 465 浏览
添加回答
举报
0/150
提交
取消