我正在使用FileDownload控件显示Notes文档中的附件列表。
日期显示为:dd / MM / yy hh.mm - 由于我的用户是丹麦语,我想以格式显示日期:dd-MM-yyyy hh:mm。
如果您使用SimpleDateFormater,这非常简单。在SSJS中看起来像:
var date:Date = new Date(aFile.getCreated());
if(date==null) return date;
return new java.text.SimpleDateFormat("dd-MM-yy hh:mm").format(date);
在FileDownload控件中,您可以计算“createdValue”属性的值。但是,控件需要一个类型为“Date”的对象,该对象不允许在上面的示例中进行格式化(它只会抛出错误500)。
有什么建议吗?
/约翰
答案 0 :(得分:3)
您已经发现 createdValue 属性需要java.util.Date对象,因此更改格式化方式的唯一方法是更改XPage使用的浏览器区域设置(如已解答{ {3}})。使用标准下载控件,您可以通过向其添加 var =“file”属性来获取每个文件的句柄,并在createdValue属性中使用它:
createdValue="new Date(file.getCreated());"
如果您想对文件列表进行更多控制,可以使用重复控件并将其绑定到RichText项目中的文件列表:
<xp:repeat id="repeat1" rows="30" var="file" disableOutputTag="true">
<xp:this.value><![CDATA[#{javascript:document1.getAttachmentList("files")}]]></xp:this.value>
<xp:this.facets>
<xp:text escape="false" disableTheme="true" xp:key="header">
<xp:this.value><![CDATA[<table><tbody>]]>
</xp:this.value></xp:text>
<xp:text escape="false" disableTheme="true" xp:key="footer"><xp:this.value><![CDATA[</tbody></table>]]></xp:this.value></xp:text>
</xp:this.facets>
<tr>
<td>
<xp:text escape="true" id="computedField1" value="#{file.name}"></xp:text>
</td>
<td>
<xp:text escape="true" id="computedField2">
<xp:this.value><![CDATA[#{javascript:var date:Date = new Date(file.getCreated());
return new java.text.SimpleDateFormat("dd-MM-yy hh:mm").format(date);}]]></xp:this.value>
</xp:text>
</td>
</tr>
</xp:repeat>
顺便说一下:默认下载控件的另一个缺点是它为每个链接添加了内容处置标头,因此浏览器总是会询问您是要保存还是打开文件而不是打开图像(例如)直接。