Играя со значениями некоторых <h:dataTable>
«s атрибуты», мы можем сделать что-то подобное: Атрибут first
, idicates к первому индексу в списке, чтобы начать показ с, и rows
's one, указывает номер строки, который должен быть diplayed, начиная с начального индекса, спроектированного, если он был вызван, иначе он отображает из 1-го ряда и так далее.
Вот пример этого, полагаясь на 2 <h:dataTalbe>
теги, включенные в один <h:panelGrid coulmns="2">
, и полагаясь только на 4 модуля для упрощения, 2 за каждый столбец. Каждый <h:dataTable>
тег должен иметь различное значение атрибута first
:
Подкладочный боб:
@ManagedBean
@RequestScoped
public class ModuleBacking{
private List<Module> modules = new ArrayList<Module>();
public ModuleBacking() {
}
@PostConstruct
public void insertion() {
Module m1 = new Module("math",true);
Module m2 = new Module("english",false);
Module m3 = new Module("physics",false);
Module m4 = new Module("chimics",true);
modules.add(m1);
modules.add(m2);
modules.add(m3);
modules.add(m4);
}
public List<Module> getModule() {
return modules;
}
public List<Module> displayModules(){
return modules;
}
}
Вид:
<h:body>
<h:panelGrid columns="2" cellspacing="3" cellpadding="3" style="border-style: solid" rules="all" >
<f:facet name="header">
<h:outputText value="First 2 modules" style="padding-right:80px "/>
<h:outputText value="Second 2 modules"/>
</f:facet>
<h:dataTable value="#{moduleBacking.displayModules()}" var="m" rules="all" first="0" rows="2">
<h:column>
<f:facet name="header" ><h:outputText value="Module's name" /></f:facet>
<h:outputText value="#{m.name}" />
</h:column>
<h:column>
<f:facet name="header" ><h:outputText value="Module's enabling" /></f:facet>
<h:outputText value="#{m.enable}" />
</h:column>
</h:dataTable>
<h:dataTable value="#{moduleBacking.displayModules() }" var="m" rules="all" first="2" rows="2">
<h:column>
<f:facet name="header" ><h:outputText value="Module's name" /></f:facet>
<h:outputText value="#{m.name}" />
</h:column>
<h:column>
<f:facet name="header" ><h:outputText value="Module's enable" /></f:facet>
<h:outputText value="#{m.enable}" />
</h:column>
</h:dataTable>
</h:panelGrid>
</h:body>
В вашем случае два <h:dataTable>
кажется как эти :
<h:dataTable value="#{moduleBacking.displayModules()}" var="m" rules="all" first="0" rows="15">
<h:dataTable value="#{moduleBacking.displayModules()}" var="m" rules="all" first="15" rows="15">
Большое вам спасибо за вашу помощь. Я попробовал, и это работает как шарм. Но теперь я понимаю, что моя информация о модуле модуля считывается из базы данных, поэтому мы действительно не знаем, сколько элементов есть заблаговременно. Поэтому мне пришлось придумать другое решение, которое хорошо работает на данный момент. –
Я хотел опубликовать этот код, но я не могу, так как я новый участник этого форума. В очередной раз благодарим за помощь. –
Добро пожаловать. Если мы не знаем эффективного количества экземпляров модулей, которые будут прочитаны и отображены, то для этого мы можем использовать выражение EL, а не константу: '' '>' –
Omar