FileDownload控件 - 如何格式化日期(创建和最后修改)

时间:2012-05-08 09:30:35

标签: download xpages date-format

我正在使用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)。

有什么建议吗?

/约翰

1 个答案:

答案 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>

顺便说一下:默认下载控件的另一个缺点是它为每个链接添加了内容处置标头,因此浏览器总是会询问您是要保存还是打开文件而不是打开图像(例如)直接。