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」プロパティの値を計算できます。ただし、コントロールは、上記の例の書式設定を許可しないタイプ "Date" のオブジェクトを予期します (エラー 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>

ところで、デフォルトのダウンロード コントロールのもう 1 つの欠点は、すべてのリンクに content-disposition ヘッダーが追加されることです。そのため、ブラウザーは、画像 (たとえば) を直接開く代わりに、ファイルを保存するか開くかを常に尋ねてきます。

于 2012-05-08T11:36:35.713 に答える