xpages 中是否有 Lotus Notes Dialog list
的等效项?或者,如果可能的话,使用一个 xpage combobox
“接受”多个选定值。
感谢您的宝贵时间
最佳答案
使用xe:djextListTextBox
收集并显示多个值,使用xe:valuePicker
将现有列表中的值添加到ListTextBox,并可以选择使用按钮
提示输入新值并将其添加到 ListTextBox。
这是 xe:djextListTextBox
和 xe:valuePicker
的示例:
<xe:djextListTextBox
id="djextListTextBox1"
multipleSeparator=","
multipleTrim="true"
defaultValue="abc,def"
value="#{viewScope.test}">
</xe:djextListTextBox>
<xe:valuePicker
id="valuePicker1"
for="djextListTextBox1"
pickerText="Add">
<xe:this.dataProvider>
<xe:simpleValuePicker>
<xe:this.valueList><![CDATA[#{javascript:
["abc","def","ghj","klm","nop","xyz"]
}]]></xe:this.valueList>
</xe:simpleValuePicker>
</xe:this.dataProvider>
</xe:valuePicker>
我喜欢这种方法,因为它可以让用户轻松添加和删除值,而且看起来不错。
替代方案是 xp:inputText
和 xe:valuePicker
的组合:
<xp:inputText
id="inputText1"
multipleSeparator=","
value="#{viewScope.test}"
defaultValue="abc,def">
</xp:inputText>
<xe:valuePicker
id="valuePicker1"
for="inputText1">
<xe:this.dataProvider>
<xe:simpleValuePicker>
<xe:this.valueList><![CDATA[#{javascript:
["abc","def","ghj","klm","nop","xyz"]
}]]></xe:this.valueList>
</xe:simpleValuePicker>
</xe:this.dataProvider>
</xe:valuePicker>
用户可以添加自己的新值,因为输入文本字段是可编辑的。如果允许新值并且用户知道如何考虑多个分隔符来编辑值,则此方法可能是一个很好的解决方案。
如果您希望将每个值放在单独的行中,您可以使用xe:djTextarea
并将 multipleSeparator 设置为换行符:
<xe:djTextarea
id="djTextarea1"
multipleSeparator="#{javascript:'\n'}"
value="#{viewScope.test}"
defaultValue="#{javascript:['abc','def']}"
cols="30">
</xe:djTextarea>
<xe:valuePicker
id="valuePicker1"
for="djTextarea1">
<xe:this.dataProvider>
<xe:simpleValuePicker>
<xe:this.valueList><![CDATA[#{javascript:
["abc","def","ghj","klm","nop","xyz"]
}]]></xe:this.valueList>
</xe:simpleValuePicker>
</xe:this.dataProvider>
</xe:valuePicker>
文本框会随着所选值的数量自动增大和缩小。
关于xpages - 对话框在 xpages 中列出 Lotus Notes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23108740/