如何更改单选按钮或复选框布局

时间:2010-08-10 03:35:53

标签: html jsf richfaces

我们使用h:selectManyCheckboxh:selectOneRadio来针对特定元素呈现选择。我们希望能够灵活地水平,垂直或按多列排列选项。

e.g. 
1. Horizontally
one two three four five six

2. Vertically
one 
two
three
four
five
six

3. 2 columns
one two
three four
five six

4. 3 columns
one two three
four five six

我们如何使用现有的jsf标签或适当的更改来实现这一目标。

4 个答案:

答案 0 :(得分:2)

您可以尝试使用带有layoutWidth属性的apache tomahawk库。或者创建自己的JSF组件

答案 1 :(得分:0)

  1. 首先,要明确你想要的......
  2. 看看:Developing a custom JSF tag
  3. 了解您可以在新的自定义标记中传递哪些属性,例如(<h:customRadioButtons list="arraylist" style="table" name="rbuttons" columns="2" />
  4. 开发未来的customTag ...

答案 2 :(得分:0)

使用tomahawk,我们可以尝试使用layout =“spread”,如:

 <t:selectOneRadio id="test" value="one" layout="spread" border="1">
    <f:selectItem itemLabel="one" itemValue="one" />
    <f:selectItem itemLabel="two" itemValue="two" />
    <f:selectItem itemLabel="three" itemValue="three" />
    <f:selectItem itemLabel="four" itemValue="four" />
    <f:selectItem itemLabel="five" itemValue="five" />      
  </t:selectOneRadio>
  <t:panelGrid columns="2">
    <t:radio for="test" index="0"></t:radio>
    <t:radio for="test" index="1"></t:radio>
  </t:panelGrid>
  <t:panelGrid columns="3">
    <t:radio for="test" index="2"></t:radio>                
    <t:radio for="test" index="3"></t:radio>
    <t:radio for="test" index="4"></t:radio>
  </t:panelGrid>

然后使用ajax重新渲染此t:selectOneRadio以更改为其他布局。

答案 3 :(得分:-2)

您可以为此设置facelate并使用包含id,value,checked ....的Mybean绑定来自定义您的布局。