Jak ustawić colspan
i rowspan
w JSF <h:panelGrid>
?Jak ustawić colspan i rowspan w JSF panelGrid?
Odpowiedz
Żadne z nich nie jest możliwe przy standardowej implementacji JSF. Istnieją 3 sposoby, aby to naprawić:
- Napisz sam HTML. A
<h:panelGrid>
zasadniczo renderuje HTML<table>
. Zrobić to samo. - Utwórz niestandardowy program renderujący HTML, który obsługuje tę funkcję. Będzie jednak dużo potu i bólu.
- Użyj biblioteki komponentów innej firmy, która obsługuje tę funkcję.
- Tomahawk ma
<t:panelGroup>
składnik, który obsługujecolspan
w<h:panelGrid>
. - RichFaces (tylko 3.x) ma składnik
<rich:column>
, który obsługuje zarównocolspan
, jak iw<rich:dataTable>
. - PrimeFaces ma
<p:row>
obok<p:column>
który jest podtrzymywany zarówno<p:panelGrid>
i<p:dataTable>
(również<p:columnGroup>
).
- Tomahawk ma
zgadzam się z odpowiedzią BalusC i chcę dodać, że biblioteka komponentów Primefaces JSF2 oferuje również tę funkcję, jeśli używasz jej p:dataTable komponent. Nazywa się tam grupowanie.
zakładać
a) dokumentację wiadomość zasób z dwoma wejściami:
key.row = </td> </tr> < tr> < td (ignoruje spacje)
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>
wówczas przykładowo
<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>
drukuje tabelę 3 z rzędów:
1) R1-C1, R1-C2, R 1-C3
2) 3 puste komórki
3) centrum wyrównane do komórki, posiadające colspan 3 i zawierające hello div ..
V.
Nie tak jak bym to zrobił. Chociaż może odpowiedzieć na to pytanie, spróbuj także kształcić. Złe praktyki są ... cóż ... złe. :) –
Zastosowanie: bogaty: kolumna colspan="2"
z RichFaces
<rich:column colspan="2">
<h:outputText value="Ingrese el texto de la imagen" />
</rich:column>
to pytanie dotyczy JSF, a nie richfaces – specializt
od 24 januari 2012 Primefaces ma również możliwość korzystania colspan i rowspan w składniku panelGrid z Primefaces. Zobacz:
Nie ma sposobu, aby określić przedział kolumny w siatce panelu, ale jeśli używane mądrze można tego dokonać jedynie po prostu tagu. Jeden przykład, który chciałbym ci pokazać.
<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>
Uwaga Button5 obejmuje dwie kolumny ze względu na wielkość wymaga.
Czy wypróbowałeś bogatą: kolumnę w panelu z colspanem? Ponieważ dokument mówi: "Atrybuty" colspan "," rowspan "i" breakbefore "wpływają tylko na kolumny w, a nie na ." –