如何处理Xpage中的本地化数值?

时间:2013-01-31 13:28:27

标签: xpages xpages-ssjs

我有一个包含三个字段的Xpage,声明了所有数字;名义,价格和PaymentAmount。 我想使用Nominal * Price来计算PaymentAmount。

在SSJS onChange中我使用以下代码:

var price = getComponent("Price").getValue();

从“价格”字段中获取值。

在瑞典,我们输入数字值为#。###,## 1.234,56

如果我在我的Xpage中输入值Nominal = 10和Price = 2,5并尝试使用上面提到的公式计算,则存储在var“price”中的值将转换为25并且类型为long。

请咨询

/ M

3 个答案:

答案 0 :(得分:2)

我是个白痴,不幸的是。

这样做了:

<inputText value="#{document1.Price}" id="Price" required="true" size="10">
    <this.validators>
        <validateRequired message="Price is required">
        </validateRequired>
    </this.validators>
    <this.converter>
        <convertNumber type="number" locale="sv">
        </convertNumber>**
    </this.converter>
</inputText>

它有效!

感谢大家的输入

答案 1 :(得分:0)

我认为“Price”是一个编辑框?如果是这样,您可以将其设置为数字字段,然后将格式显示为货币。货币代码将定义该数字的显示方式。

enter image description here

当您获得组件值时,它应该以您可以使用的正常数字返回。

答案 2 :(得分:0)

getComponent获取UI组件值,这就是为什么它不一定反映将保存的数据类型(在UI中,所有内容都是字符串)。这也是获得价值的缓慢方式。

请尝试使用datasourcename.getItemValueDouble("itemname")。请注意,您需要在Form上使用字段名称,而不是组件名称。

关于数字格式,请确保您的djConfig语言环境是瑞典语,可能是se-se。在芬兰,我看起来像这样:

<script type="text/javascript" src="/xsp/.ibmxspres/dojoroot-1.6.1/dojo/dojo.js" djConfig="locale: 'fi-fi', parseOnLoad: true"></script>

它应该使用浏览器区域设置。要在SSJS中强制执行此操作,您可以执行以下操作:

context.setLocaleString("se-SE");
beforePageLoad 事件中的

相关问题