Render p: selectManyCheckbox с 10 столбцами
Я разработал интерфейс 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 />
Если кто-нибудь может мне помочь, было бы хорошо.
Спасибо!
Ответы
Ответ 1
Я получаю этот результат, используя:
<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]()
Ответ 2
Вы должны добавить layout="grid"
в свой p:selectManyCheckbox
в соответствии с этим . Вот так:
<p:selectManyCheckbox id="grid" layout="grid" columns="5" value="#{statisticsBeanMTBF.selectedReference}">
<f:selectItems value="#{statisticsBeanMTBF.listReference}" />
</p:selectManyCheckbox>
EDIT:
Быстрый поиск в документах PrimeFaces показывает, что в версии 4.0 был добавлен columns
. Если у вас нет этой версии или вы не можете ее обновить, вам нужно сделать это по-старому с помощью CSS.