1

我正在使用 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”属性的值。但是,该控件需要一个“日期”类型的对象,它不允许在上面的示例中进行格式化(它只是抛出一个错误 500)。

有什么建议么?

/约翰

4

1 回答 1

3

您已经发现createdValue属性需要一个 java.util.Date 对象,因此更改其格式化方式的唯一方法是更改​​ XPage 使用的浏览器区域设置(如在此处回答)。使用标准下载控件,您可以通过向其添加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>

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

于 2012-05-08T11:36:35.713 回答