我有一个checkBoxGroup可以扩展到20个左右,因为用户从视图中选择要导出到电子表格的字段。我很好奇我如何控制这20个复选框的显示(动态确定)在多行中,甚至改为在列中显示。
<xp:checkBoxGroup id="fieldChoicesBox">
<xp:eventHandler event="onclick" submit="false" id="eventHandler2">
<xp:this.script>
<![CDATA[var x= '#{javascript:getClientId("fieldChoicesBox")}';
var y= '#{javascript:getClientId("fieldChoicesBoxList")}';
copyRadioChoices(x,y)]]>
</xp:this.script>
</xp:eventHandler>
<xp:selectItems>
<xp:this.value>
<![CDATA[#{javascript: var viewName=@UpperCase(getComponent("viewChoice").getValue());
var tmp = @DbLookup(@DbName(),"dbprofile",viewName,"Value");
@If(@IsError(tmp),"None",tmp)}]]>
</xp:this.value>
</xp:selectItems>
</xp:checkBoxGroup>
这是我最初从Russ Maher得到的所有内置代码(见http://xpagetips.blogspot.com/2012/06/extending-your-xpages-applications-with.html)所以任何才华都归功于他,而所有的错误都是我的。
或者,如果您想知道如何选择要在导出中显示的字段或列更容易或更优雅,我会很高兴听到它。
答案 0 :(得分:1)
如果你正在使用或可以使用ExtLib,我可以使用valuePicker控件,让你从一个控件中选择多个值(在选择时按住ctrl)。下面是一个例子:
<xp:inputtext id="example" multipleSeparator=","></xp:inputText>
<xe:valuePicker for="example" pickerText="text">
<xe:this.dataProvider>
<xe:simpleValuePicker valueList="test1, test2, test3, test4"
valueListSeperator=",">
</xe:simpleValuePicker>
</xe:this.dataProvider>
</xe:valuePicker>