2012-05-08 22 views
1

我正在使用FileDownload控件显示Notes文档中的附件列表。FileDownload控件 - 如何格式化日期(创建和上次修改)

日期显示为: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

通常NotesDateTime类是Xpage的更好解决方案,为什么每个人都使用其他类?如果我们在CSJS那么它就没关系。但是对于我们的xpages,NotesDateTime可以改变它的格式。尝试做NotesDateTime。 – Ramkumar

+0

你提到过错误500,意味着你得到了什么错误? – Ramkumar

+0

那么,控件需要一个Date对象。它显示正确的格式化日期,如果我只是把“新的日期()”公式。所以,我必须这样做。如果我尝试返回除“日期”之外的任何其他类型,则会得到错误500.重点是它是“内置”控件,我无法找到有关如何控制格式的任何文档。 –

回答

3

你已经发现createdValue属性需要一个java.util.Date对象,所以唯一的办法,以改变如何被格式化是通过改变XPage上使用的浏览器的语言环境(如回答here)。使用标准的下载控制,你可以通过添加VAR =“文件”属性得到它在每一个文件的句柄,并使用在createdValue属性:

createdValue="new Date(file.getCreated());" 

如果你想有更多的控制文件的列表,你可以使用重复控制,它从一个富文本项目绑定到文件列表:

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

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

+0

你的回复。正如您所看到的,我已经将区域设置正确地设置为“丹麦语”,但是,FileDownload控件返回的格式不是我们在丹麦使用的格式: - /否则,我会在一段时间之前完成; - )也许它并不清楚,但我提到的公式确实是createdValue属性中的公式,我必须返回Date。如果我无法控制格式是正确的,那么很显然,我可以自己编写所有的代码(就像你已经给出了一个很好的例子) - 然而,我希望控件能够做到这一点。 –

+0

在我的情况下,标准内容处置实际上工作正常;-)但我很欣赏这可能是在其他情况下的问题。 –

+0

那么,我最终自己编写了这个列表(沿着你上面列出的线)。谢谢您的帮助 :-) –