渲染p:selectManyCheckbox包含10列

时间:2013-11-26 09:37:47

标签: jsf primefaces multiple-columns selectmanycheckbox

我为一些统计数据开发了一个接口JEE / JSF。 我创建了复选框以选择用户希望显示的引用,但问题是我用来根据数据库中的数据生成复选框Arraylist。

我无法按照自己的意愿定位。我希望在10复选框之后,其他人直接生成线等。

我有这个结果

http://image.noelshack.com/fichiers/2013/48/1385458240-after.jpg

我希望我能做到这一点

enter image description here

MTBFBEAN

private List<String> selectedReference = new ArrayList<String>();
private List<String> listReference = new ArrayList<String>(); 
private Boolean afficher = false; // Déclaration du bool pour le rendered de
                                    // ma vue dans MTBF

@SuppressWarnings("deprecation")
public StatisticsBeanMTBF() {
    this.beginDate = new Date(2001, 00, 01);
    List<ProductConfModel> listtmp = this.moduleGlobal.getProductConfModels(2);
    for (ProductConfModel pcm : listtmp) {

        this.listReference.add(pcm.getReference());
        }
    }

public void mTBFByType() {
    this.afficher = true;
    this.listMTBF = new ArrayList<StatistiquesMTBF>();
    List<StatistiquesMTBF> suspense = this.moduleGlobal.getMTBFByType(nbHeure, nbJour, NS, DAE, beginDate, endDate);
    for (StatistiquesMTBF smtbf : suspense) {
        for (String s : this.selectedReference) {
            if (smtbf.getReference().equals(s)) {
                this.listMTBF.add(smtbf);
            }

JSF XHTML

    <h:outputText value="Date début :* " />
                    <p:calendar value="#{statisticsBeanMTBF.beginDate}"
                        navigator="true" required="true" />
                    <h:outputText value="Date fin:* " />
                    <p:calendar value="#{statisticsBeanMTBF.endDate}" navigator="true"
                        required="true" />

                </h:panelGrid>
                <h:panelGrid columns="1">
                    <h:outputText value="Selectionner votre référence : " />

                    <p:selectManyCheckbox id="grid" columns="5"
                        value="#{statisticsBeanMTBF.selectedReference}">
                        <f:selectItems value="#{statisticsBeanMTBF.listReference}" />
                        </p:selectManyCheckbox> 
                </h:panelGrid>
                <p:separator />

如果有人能帮助我,那就太好了。

谢谢!

2 个答案:

答案 0 :(得分:13)

我得到了这个结果:

<h:panelGroup layout="block" styleClass="selection">
    <p:selectManyCheckbox layout="pageDirection" value="#{selection.selection}">
</h:panelGroup>

并设置每个<tr>

.selection tr {
   float: left;
    width: 33%;
} 

在您的情况下,将其设置为10%,将外部容器设置为width: 100%

看起来像这样:

enter image description here

答案 1 :(得分:6)

您应该根据此examplelayout="grid"添加到p:selectManyCheckbox。像这样:

<p:selectManyCheckbox id="grid" layout="grid" columns="5" value="#{statisticsBeanMTBF.selectedReference}">
    <f:selectItems value="#{statisticsBeanMTBF.listReference}" />
</p:selectManyCheckbox>

编辑:

PrimeFaces文档中的快速搜索显示版本4.0中添加了columns。如果您没有此版本或无法升级,则需要使用旧版本的旧版本。