0

如果我使用简单数据绑定来绑定数据源中的字段,我会看到该字段的完整值。我想要做的是将该值拆分,然后只向用户显示其中的一部分。例如,该字段存储一个组合框的值,其中包含“1~Hello”,绑定显示“1~Hello”,但我只想看到“Hello”。有没有像转换器这样的方法来做到这一点,或者是通过 JavaScript 绑定并在其上带有 split("~")[1] 的唯一方法?

4

1 回答 1

1

有很多方法可以做到这一点。您似乎正在使用结构化列表,因此使用 ComboBox、radioButtonGroup 或 CheckBoxGroup 控件将允许在值中定义别名。但是你真的想要一个文本框绑定,然后构建一个自定义转换器......

<xp:inputText
    id="inputText1"
    value="#{viewScope.demo}">
    <xp:this.converter>
       <xp:customConverter>
        <xp:this.getAsObject><![CDATA[#{javascript:
if ("Hello".equals(value)) return "1- Hello";
//do other tests and edits
return value
}]]></xp:this.getAsObject>
    <xp:this.getAsString><![CDATA[#{javascript:
if ("1-Hello".equals(value)) return "Hello";
//do other tests and edits
return value
}]]></xp:this.getAsString>
       </xp:customConverter>
    </xp:this.converter>
</xp:inputText>
于 2013-07-05T17:08:28.167 回答