我偶然发现了完全相同的问题。我的修复受到Paul Withers 关于该主题的博客文章的启发,涉及使用 Dojo DateTextBox 和 TimeTextBox for IE。
我使用标准日期字段:
<xp:inputText id="FejlDato" value="#{document.FejlDato}">
<xp:this.converter>
<xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
<xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>
并在时间字段中添加主题 ID,以便在主题中定位它们:
<xp:inputText id="FejlTid" value="#{document.FejlTid}">
<xp:this.converter>
<xp:convertDateTime type="time"></xp:convertDateTime>
</xp:this.converter>
<xp:this.themeId><![CDATA[${javascript:if (context.getUserAgent().isIE()) { "InputField.TimePicker" }}]]></xp:this.themeId>
<xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>
然后,我在主题中使用以下内容来为 IE 使用 dijit.form.DateTextBox 和 dijit.form.TimeTextBox 而不是标准的 XPages 日期和时间选择器:
<!-- DatePicker for IE8 and IE9 -->
<resources>
<dojoModule rendered="#{javascript:context.getUserAgent().isIE()}">
<name>dijit.form.DateTextBox</name>
</dojoModule>
<dojoModule rendered="#{javascript:context.getUserAgent().isIE()}">
<name>dijit.form.TimeTextBox</name>
</dojoModule>
</resources>
<control>
<name>InputField.DateTimePicker</name>
<property>
<name>dojoType</name>
<value>#{javascript:context.getUserAgent().isIE()?'dijit.form.DateTextBox':''}</value>
</property>
</control>
<control>
<name>InputField.TimePicker</name>
<property>
<name>dojoType</name>
<value>#{javascript:context.getUserAgent().isIE()?'dijit.form.TimeTextBox':''}</value>
</property>
</control>