【问题标题】:combobox - displaying multivalue numeric field组合框 - 显示多值数字字段
【发布时间】:2016-04-29 07:24:08
【问题描述】:

我有一个表单,其中包含一个启用多值的数字字段。当它具有多个值时,我想在组合框中的 xpage 上显示它。但是我收到错误 500 消息。

当我尝试使用多值文本字段实现相同的目标时,xpage 被渲染。

我做错了什么?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="doc" formName="test"
            action="editDocument">
        </xp:dominoDocument>
    </xp:this.data>
    <xp:table>
        <xp:tr>
            <xp:td>
                <xp:label value="Label:" id="lb"
                    for="label1">
                </xp:label>
            </xp:td>
            <xp:td>             
                <xp:comboBox id="cbLabel" value="#{doc.label}">
                    <xp:selectItems>
                        <xp:this.value><![CDATA[#{javascript:return doc.getItemValue("label")}]]></xp:this.value>
                    </xp:selectItems>
                </xp:comboBox>
            </xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>
                <xp:label value="Price:" id="pr"
                    for="price1">
                </xp:label>
            </xp:td>
            <xp:td>
                <xp:comboBox id="cbPrice" value="#{doc.price}">
                    <xp:selectItems>
                        <xp:this.value><![CDATA[#{javascript:return doc.getItemValue("price")}]]></xp:this.value>
                    </xp:selectItems>
                </xp:comboBox>
            </xp:td>
        </xp:tr>        
    </xp:table>
</xp:view>

【问题讨论】:

  • 检查 IBM_TECHNICAL_SUPPORT 文件夹中的日志文件以查看详细的错误消息。如果您还没有使用 XPages 日志文件阅读器 :-)

标签: combobox xpages xpages-ssjs


【解决方案1】:

&lt;xp:selectItems&gt; 仅接受字符串值。

将 selectItems 值代码中的价格数字转换为字符串并
将数字或货币转换器添加到您的组合框。

作为替代方案,您可以创建带有字符串标签和数字值的选择项:

    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:
            var items = new java.util.ArrayList();
            for (value in doc.getItemValue("price")) {
                var item = new javax.faces.model.SelectItem();
                item.setLabel(value.toString());
                item.setValue(value);
                items.add(item);
            }
            return items}]]></xp:this.value>
    </xp:selectItems>

【讨论】:

  • 谢谢克努特。这很好用。但是当我尝试将选择的选项保存回文档时,它不起作用。当我添加 xp:messages 控件时,我会收到消息;验证错误:值无效。保存文档时应该如何反转?
猜你喜欢
  • 1970-01-01
  • 2011-08-17
  • 2019-02-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多