Dojo 避免xpages inputText中的默认值0

Dojo 避免xpages inputText中的默认值0,dojo,xpages,Dojo,Xpages,我有一个xpages editbox控件,显示类型为number,显示格式为currency。 默认情况下,此控件显示0。但我希望它是空的。我怎样才能做到这一点。 还有另一个问题-控件在读取模式下不显示货币格式。它在编辑模式下工作良好。如何让它在读取模式下工作 代码如下: <xp:inputText id="ApInt" value="#{dsRacDoc.ApInt}" dojoType="dijit.form.CurrencyTextBox" valueChangeListener

我有一个xpages editbox控件,显示类型为number,显示格式为currency。 默认情况下,此控件显示0。但我希望它是空的。我怎样才能做到这一点。 还有另一个问题-控件在读取模式下不显示货币格式。它在编辑模式下工作良好。如何让它在读取模式下工作

代码如下:

<xp:inputText id="ApInt" value="#{dsRacDoc.ApInt}" 
dojoType="dijit.form.CurrencyTextBox" 
valueChangeListener="#{javascript:changeRequestBean.valueChangeListener}">
    <xp:this.converter>
        <xp:convertNumber type="currency" integerOnly="true" currencySymbol="$">
        </xp:convertNumber>
    </xp:this.converter>
    <xp:this.dojoAttributes>
        <xp:dojoAttribute name="constraints" value="{fractional:false, max:999999999999999}">
        </xp:dojoAttribute>
        <xp:dojoAttribute name="currency" value="USD">
        </xp:dojoAttribute>
        <xp:dojoAttribute name="invalidMessage" value="Invalid amount. Enter whole dollar amount upto 15 digits">
        </xp:dojoAttribute>
        <xp:dojoAttribute value="15" name="maxLength">
        </xp:dojoAttribute>
    </xp:this.dojoAttributes>
</xp:inputText>


谢谢

我没有尝试使用您的代码,但是如果您整体删除代码,它将不再默认为0。项目值将为空字符串。如果然后将maxFractionDigits设置为0,它应该与integer相同,但我还没有尝试过


对于读取模式,您可能需要在计算字段中自己对其进行格式化。

我认为对于这种情况,最好的选择是使用一个单独的编辑和读取视图控件,正如Panu已经注意到的那样

创建2个控件

  • 一个简单函数,它将在value属性中包含一个表达式,该表达式将生成所需的文本格式。例如:
  • 将在编辑模式下使用的第二个控件。这可以是一种裁决
    谢谢你的解决方案确实奏效了。但还有另一个问题。现在默认的零已经消失,甚至格式化(使用$1000分隔符)也可以在读取模式下正常工作。但在编辑模式下,该值消失。我确实在后端看到了数据类型为number的值。@lense听起来很奇怪。如果您有可能使用扩展库,那么
    xe:djCurrencyTextBox
    控件可能最适合此功能。是的,它看起来很奇怪。我想不出是什么引起的。我要在IBM开一张票,如果我得到任何答案,我会把它贴在这里。我确实先尝试了扩展库控件。那里好像有只虫子。分数属性工作不正常。我不要小数点。将分数设置为false或将小数位数设置为0不起作用。@lense您仍然可以使用
    分数:false
    dojo属性。在
    xe:djCurrencyTextBox
    .hmm中它对我很好用……我不确定我做错了什么。我使用的是8.5.2,扩展库控件djCurrencyTextBox强制输入小数,即使我指定小数:false。谢谢。这是我计划做的,如果没有其他工作。我有很多货币字段,所以将此作为最后一个选项。但现在看来这是唯一的选择。谢谢你的回复。