如何在XPAGE手柄局部数值?(How to handle localized numeric va

2019-10-17 15:26发布

我有一个XPAGE有三个领域,所有的申报数量; 标称,价格和PaymentAmount。 我想计算使用额定*价格的PaymentAmount。

在SSJS的onChange我使用下面的代码:

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

从外地“价格”获得的价值。

在瑞典,我们进入我们的数值,因为这####,## 1.234,56

如果我输入标称= 10和价格= 2,5在我XPAGE的值,并尝试使用上述式存储在VAR“价格”的值被转换成25和长型的来计算。

请指教

/ M

Answer 1:

我是白痴,不幸的是。

做过这个:

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

和它的作品!

感谢大家对输入



Answer 2:

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

当你的组件看重它应该回来作为一个正常的数字,你可以工作。



Answer 3:

getComponent获取UI组件值,这就是为什么它并不一定反映将要保存的数据类型(UI一切都是字符串)。 这也是一个缓慢的方式来获得的价值。

尝试datasourcename.getItemValueDouble("itemname")来代替。 请注意,您需要使用上表中的字段名称,而不是组件名称。

关于数字格式请确保您的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事件。



文章来源: How to handle localized numeric values in Xpage?