Domino 9 / Dojo 1.8 - Date Time Picker without default value

…衆ロ難τιáo~ 提交于 2020-01-04 16:58:26

问题


I want a Date Time Picker control WITHOUT a default value. Doesn't seem to be possible anymore :-(

To reproduce, create a blank XPage and place a Date Time Picker control. Open the XPage in the browser and you will see that it defaults to today.

I didn't found any way to set the default to an empty value. I tried setting all properties/data/default to 0, null, empty string and so on - no luck.

I tried the data-dojo-probs attribute with value:'', this sets the default to 1970-1-1, but not to blank.

Any ideas?


回答1:


This is a known issue in ND9, reported as SPR DEGN966F5V.

A work around for the issue (from SPR) is to modify the widget prototype in the postCreate function to prevent the value from being reset.

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); 
}); 

Here is an example of it working.

<?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> 



回答2:


i dont know how it works in notes 9 but you could remove it with a CSJS like:

var field= dojo.byId('#{id:field}')
field.value ="";

hope it helps..




回答3:


In applications I've previously applied a dojoType on the dateTimeHelper with this code:

<xp:dateTimeHelper id="dateTimeHelper1" dojoType="dijit.form.DateTextBox">
</xp:dateTimeHelper>

That was to address a problem in previous Domino versions where the page refreshed as soon as the picker was selected in certain flavours of IE.

This code seems to work fine on R9 without needing the workaround.



来源:https://stackoverflow.com/questions/15773508/domino-9-dojo-1-8-date-time-picker-without-default-value

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!