Domino 9/Dojo 1.8 - 没有默认值的日期时间选择器

Jul*_*uss 2 xpages

我想要一个没有默认值的日期时间选择器控件.似乎不再可能:-(

要重现,请创建一个空白XPage并放置一个日期时间选择器控件.在浏览器中打开XPage,您将看到它默认为今天.

我没有找到任何方法将默认值设置为空值.我尝试将所有属性/ data/default设置为0,null,空字符串等等 - 没有运气.

我尝试了data-dojo-probs属性值:'',这将默认值设置为1970-1-1,但不是空白.

有任何想法吗?

Sim*_*rty 5

这是ND9中的一个已知问题,报告为SPR DEGN966F5V.

解决该问题(来自SPR)是在postCreate函数中修改小部件原型以防止重置该值.

require([ 
        "dojo/_base/lang", 
        "ibm/xsp/widget/layout/DateTextBox", 
        "ibm/xsp/widget/layout/TimeTextBox", 
        "ibm/xsp/widget/layout/DateTimeTextBox" 
], function(lang, DateTextBox, TimeTextBox, DateTimeTextBox){ 
        var a = {}; 
        lang.mixin(a, { 
                postCreate: function(){ 
                        this.inherited(arguments); 
                } 
        }); 
        DateTextBox.extend(a); 
        TimeTextBox.extend(a); 
        DateTimeTextBox.extend(a); 
}); 
Run Code Online (Sandbox Code Playgroud)

这是一个工作的例子.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
        <xp:this.resources> 
                <xp:script clientSide="true"> 
                        <xp:this.contents><![CDATA[ 
require([ 
        "dojo/_base/lang", 
        "ibm/xsp/widget/layout/DateTextBox" 
], function(lang, DateTextBox){ 
        var a = {}; 
        lang.mixin(a, { 
                startup: function(){ 
                        this.inherited(arguments); 
                        this.set("value", null); 
                } 
        }); 
        DateTextBox.extend(a); 
}); 
]]></xp:this.contents> 
                </xp:script> 
        </xp:this.resources> 

        <xp:inputText id="inputText1" value="#{sessionScope.inputText1}"> 
                <xp:this.converter> 
                        <xp:convertDateTime type="date" /> 
                </xp:this.converter> 
                <xp:dateTimeHelper /> 
        </xp:inputText> 
</xp:view> 
Run Code Online (Sandbox Code Playgroud)