【发布时间】:2014-10-02 17:06:04
【问题描述】:
我使用了来自Bootstrap4XPages 的日期选择器工具。
但是我有这个问题 在后端,日期字段始终设置在一月 如果您在从日历选择器中选择后单击***设置为阅读模式***,您也可以尝试进入在线演示...在阅读模式下您会看到错误的值。
例如,如果我选择 12-02-2015(2015 年 2 月 12 日) 储蓄值始终为 ....2015 年 1 月 12 日...每个月都设置为 1 月...
你有什么建议吗?
来自 Bootstrap4XPages 的自定义控件的更新源代码
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<!--
note: this date picker depends on a number of files: - bootstrap 3+ - bootstrap-datepicker
(https://github.com/eternicode/bootstrap-datepicker) - jquery
-->
<!-- js & css for plugin -->
<xp:this.resources>
<xp:script
src="/eternicode-datepicker-1.3/js/bootstrap-datepicker.js"
clientSide="true">
</xp:script>
<xp:styleSheet
href="/eternicode-datepicker-1.3/css/datepicker3.css">
</xp:styleSheet>
</xp:this.resources>
<xp:text
escape="true"
id="computedField1"
value="#{compositeData.fieldDataSource[compositeData.fieldName]}"
rendered="#{javascript:!compositeData.fieldDataSource.isEditable()}">
<xp:this.converter>
<xp:convertDateTime
type="date"
dateStyle="full"></xp:convertDateTime>
</xp:this.converter>
</xp:text>
<xp:div
styleClass="input-group date"
id="dateC"
rendered="#{javascript:compositeData.fieldDataSource.isEditable()}">
<xp:inputText
styleClass="form-control"
size="16"
id="inputDatum"
value="#{compositeData.fieldDataSource[compositeData.fieldName]}">
<xp:this.attrs>
<xp:attr
name="placeholder"
value="#{javascript:compositeData.dateFormat.toLowerCase()}">
</xp:attr>
</xp:this.attrs>
<xp:this.converter>
<xp:convertDateTime
type="date"
pattern="${compositeData.dateFormat}">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
<span
class="input-group-addon">
<i
class="glyphicon glyphicon-calendar"></i>
</span>
</xp:div>
<xp:scriptBlock
id="scriptBlock2">
<xp:this.value><![CDATA[
var options = {};
if ( null != "#{compositeData.options}" ) {
options = #{javascript:toJson(compositeData.options)};
}
options.format = "#{compositeData.dateFormat}";
$(function(){
//initialize date picker
x$('#{id:dateC}').datepicker(options);
});
]]></xp:this.value>
</xp:scriptBlock>
</xp:view>
这是 XPages 的代码
<xc:ccBS_DatePicker
dateFormat="dd-mm-yyyy"
fieldDataSource="#{document1}"
fieldName="data">
<xc:this.options><![CDATA[#{javascript:return {
daysOfWeekDisabled: "0,6",
autoclose: true,
todayBtn: "linked",
todayHighlight: true
}}]]></xc:this.options>
</xc:ccBS_DatePicker>
【问题讨论】:
-
只是评论:该字段的内容在阅读模式下本地化(错误的月份 - Január,在我的语言中),在编辑模式下月份是正确的并且未本地化(我希望,基于浏览器设置)。所以它似乎是被破坏的实现。
-
@Frantisek Kossuth:对我来说是一个转换器错误......因为在notes文档后端(NotesDatTime字段)中,值是写在一月份
-
我不这么认为——当我从阅读模式返回到编辑模式时,月份又是正确的。
-
@Frantisek Kossuth 好的,但是您如何解释数据是在 1 月的日期写入后端的事实?
-
请提供源码。可能是绑定问题
标签: xpages xpages-ssjs