Как установить colspan
и rowspan
в JSF <h:panelGrid>
?
Как установить colspan и rowspan в панели JSFGrid?
Ответ 1
Ни один из них не возможен при стандартной реализации JSF. Есть три способа исправить это:
- Напишите простой HTML. A
<h:panelGrid>
в основном отображает HTML<table>
. Сделайте то же самое. - Создайте собственный визуализатор HTML, который поддерживает это. Однако будет много пота и боли.
- Используйте стороннюю библиотеку компонентов, которая поддерживает это.
- Tomahawk имеет компонент
<t:panelGroup>
который поддерживаетcolspan
в<h:panelGrid>
. - RichFaces (только 3.x) имеет
<rich:column>
, который поддерживает какcolspan
, так иrowspan
в<rich:dataTable>
. - PrimeFaces имеет
<p:row>
рядом с<p:column>
, который поддерживается как в<p:panelGrid>
и<p:dataTable>
(также с<p:columnGroup>
).
- Tomahawk имеет компонент
Ответ 2
Так как 24 januari 2012 Primefaces также имеет возможность использовать colspan и rowspan в компоненте panelGrid в Primefaces. См:
Ответ 3
Использование: rich: column colspan="2"
of RichFaces
<rich:column colspan="2">
<h:outputText value="Ingrese el texto de la imagen" />
</rich:column>
Ответ 4
Я согласен с ответом BalusC и хочу добавить, что библиотека компонентов Primefaces JSF2 также предлагает эту функцию, если вы используете ее p: dataTable компонент. Он называется группировкой.
Ответ 5
предположим
a) файл ресурса сообщения с двумя записями:
key.row = <Ь > </TD> </TR> <TR> < td (игнорировать пробелы)
key.gt = >
b) row.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core" >
<c:forEach begin="0" end="#{colspan-2}">
<h:panelGroup />
</c:forEach>
<h:panelGroup>
<h:outputText value="#{i18n['key.row']}" escape="false" />
<h:outputText value=" colspan='#{colspan}' #{cellAttributes}" />
<h:outputText value="#{i18n['key.gt']}" escape="false" />
<ui:insert />
</h:panelGroup>
</ui:composition>
то, например,
<h:panelGrid columns="3">
<h:outputText value="r1-c1" />
<h:outputText value="r1-c2" />
<h:outputText value="r1-c3" />
<ui:decorate template="/row.xhtml">
<ui:param name="colspan" value="3" />
<ui:param name="cellAttributes" value=" align='center'" />
<div>Hello!!!!!</div>
</ui:decorate>
</h:panelGroup>
печатает таблицу с тремя строками:
1) r1-c1, r1-c2, r1-c3
2) 3 пустых ячейки
3) выровненный по ячейке центр, имеющий колпап 3 и содержащий привет-div.
V.
Ответ 6
Невозможно определить диапазон столбцов в панельной сетке, но если вы используете разумно, вы можете сделать это только простым тегом. Один пример, который я хотел бы вам показать.
<h:panelGrid columns="1" >
<h:panelGrid columns="2">
<h:commandButton image="resources/images/Regular5.jpg" action="booking/Create.jsf?faces-redirect=truebookingType=REGULAR">
</h:commandButton>
<h:commandButton id="button2" image="resources/images/Casual2.jpg" action="booking/Create.jsf?faces-redirect=truebookingType=CASUAL">
</h:commandButton>
</h:panelGrid>
<h:panelGrid columns="2">
<h:commandButton id="button3" image="resources/images/Instant2.jpg" action="booking/Create.jsf?faces-redirect=truebookingType=INSTANT">
</h:commandButton>
<h:commandButton id="button4" image="resources/images/Outstation6.jpg" action="booking/Create.jsf?faces-redirect=truebookingType=OUTSTATION">
</h:commandButton>
</h:panelGrid>
<h:commandButton id="button5" image="resources/images/ShareMyCar.jpg" action="booking/Create.jsf?faces-redirect=truebookingType=OUTSTATION">
</h:commandButton>
Обратите внимание, что button5 охватывает два столбца с учетом требуемого размера.