XPages - 修改Dojo时间文本框的显示

时间:2013-12-05 12:55:11

标签: dojo xpages lotus-notes

我在XPage上使用Dojo时间文本框。当我在此字段中保存时间时,显示的时间具有“T”前缀。有没有办法删除这个“T”?这是我的代码:

<xp:inputText id="EventEndTime" value="#{document1.EventEndTime}"         style="width:160px;"
role="button" title="used to pick a meeting time" required="true"
dojoType="dijit.form.TimeTextBox"
disableClientSideValidation="true">
<xp:this.dojoAttributes>
<xp:dojoAttribute    name="required"  value="false">
</xp:dojoAttribute>                           
</xp:this.dojoAttributes>                                
</xp:inputText>                                                                                                       

2 个答案:

答案 0 :(得分:3)

您可以在inputText控件中添加自定义转换器,在保存之前删除“T”并在渲染页面中添加“T”:

<xp:this.converter>
    <xp:customConverter>
        <xp:this.getAsObject><![CDATA[#{javascript:value.substring(1)}]]></xp:this.getAsObject>
        <xp:this.getAsString><![CDATA[#{javascript:"T" + value}]]></xp:this.getAsString>
    </xp:customConverter>
</xp:this.converter>

这样时间就像“hh:mm:ss”而不是“Thh:mm:ss”一样保存为字符串。

您也可以使用自定义转换器将值保存为Notes时间值。

答案 1 :(得分:3)

Domino实际上并不存储“仅限时间”,因此您可能希望首先使用viewScope变量绑定到TimeTextBox,并使用加载和保存事件来写入/读取。我会使用SimpleDateFormat类进行转换,这比手动字符串操作更舒服。实际上,一个小的Java助手类在这里创造奇迹。

或者你可以使用过滤器来清理它。

相关问题