h:selectOneRadio的布局可以水平或垂直,所以有一种方法可以做一些自定义布局。例如,不是显示8个单选按钮,而是将它们显示为2行,每行显示4个?请在PrimeFaces p:selectOneRadio解决方案旁边提供您的答案,该解决方案使用CSS3导致IE8以矩形显示单选按钮。

最佳答案

并非完全如此,但是您可以将<t:selectOneRadio>属性设置为layout来使用Tomahawk's "spread" ,以实现单选按钮的无标记渲染。然后,您可以使用 <t:radio> 将各个单选按钮以所需的方式放置在标记中,例如<h:panelGrid columns="4">中。

例如。

<t:selectOneRadio id="foo" value="#{bean.selectedItem}" layout="spread">
    <f:selectItems value="#{bean.availableItems}" />
</t:selectOneRadio>

<h:panelGrid columns="4">
    <t:radio for="foo" index="0" />
    <t:radio for="foo" index="1" />
    <t:radio for="foo" index="2" />
    <t:radio for="foo" index="3" />

    <t:radio for="foo" index="4" />
    <t:radio for="foo" index="5" />
    <t:radio for="foo" index="6" />
    <t:radio for="foo" index="7" />
</h:panelGrid>

甚至未指定单选按钮的数量
<h:panelGrid columns="4">
    <c:forEach items="#{bean.availableItems}" varStatus="loop">
        <t:radio for="foo" index="#{loop.index}" />
    </c:forEach>
</h:panelGrid>

(请注意,<ui:repeat>不适合使用,因为它在 View 渲染期间运行,因此最终以<h:panelGrid>的单列显示,您需要改用纯HTML <table>)

关于jquery - 如何自定义布局:selectOneRadio,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11255509/

10-13 00:42