2013-12-05 2 views
1

Я использую текстовое поле Dojo Time на моем XPage. Когда я сохраняю время в этом поле, отображаемое время имеет префикс «T». Есть ли способ удалить этот «Т»? Вот мой код:XPages - изменить отображение временного интервала Dojo Time

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

Пожалуйста, прочтите здесь: http://dojotoolkit.org/reference-guide/1.9/dijit/form/TimeTextBox.html Они упомянули, почему T, но сказали, что когда вы получите значение программно, возвращаемое значение будет родной датой javascript объект. – zulq

+0

Спасибо, я прочитал это, но я боюсь, что я все еще не уверен, что мне нужно сделать, чтобы изменить отображение значения поля. –

+0

Я немного потерял, откуда вы получаете значение и где вы его сохраняете? Просьба уточнить. – zulq

ответ

3

Вы можете добавить пользовательский конвертер для вашего контроля inputText который удаляет «Т» перед сохранением и добавляет «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.

+0

Большое спасибо за это решение –

+0

Помните: когда вы сохраняете это обратно в элемент DateTime Notes, вы можете не получить чистое время назад. Сохранение в TextItem будет работать в любом случае. – stwissel

+0

@stwissel: мой пример кода выше хранит время как текстовый элемент. Я добавил последнее предложение, чтобы дать представление о том, для чего можно использовать customConverter. Вы правы, что элемент DateTime Notes более сложный в использовании, но может обрабатывать локальное время, например. –

3

Domino фактически не хранит «только время», поэтому вам нужно будет использовать переменную viewScope для привязки к вашему TimeTextBox и использовать события загрузки и сохранения для записи в/read из этого. Я бы использовал класс SimpleDateFormat для преобразования, который удобнее для ручных операций с строкой. На самом деле маленький Java-помощник работает здесь чудесами.

В качестве альтернативы вы можете использовать фильтр для очистки.

Смежные вопросы