1

我有一个 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)所以任何辉煌都归功于他,而所有错误是我的。

或者,如果您知道如何选择更轻松或更优雅地在导出中显示的字段或列,我会很高兴听到它。

4

1 回答 1

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>
于 2012-07-11T07:23:49.210 回答