Hallo,
ich habe das Problem, dass die Spaltenüberschriften einer Primefacestabelle (DataTable) nicht mehr angezeigt werden, sobald ich meine Composite Component anstelle der Primefaces-Column verwende. Sowohl die Überschriften als auch Suchfeld und Sortierfunktion werden nicht mehr angezeigt (siehe auch beigefügter Screenshot).
Frage: Wie muss ich die Composite Componente anpassen, damit die Header angezeigt werden?
Die Composite Component:
Die JSF-Seite: (ohne Sortierfunktion und Filter, also nur mit Spaltenüberschrift)
Ich bin Newbie und verstehe einfach nicht was ich hier falsch mache. Ich habe schon diverse Varianten ausprobiert. In meinen 2 JSF-Büchern und der Primeface-Doku wird nicht näher auf dieses Problem eingegangen. Es ist mir ein Rätsel warum die Spaltenüberschriften nicht angezeigt werden.
Goggle hat auch nicht geholfen. Bin für jedem Tip dankbar.
Viele Grüße
Bastian
ich habe das Problem, dass die Spaltenüberschriften einer Primefacestabelle (DataTable) nicht mehr angezeigt werden, sobald ich meine Composite Component anstelle der Primefaces-Column verwende. Sowohl die Überschriften als auch Suchfeld und Sortierfunktion werden nicht mehr angezeigt (siehe auch beigefügter Screenshot).
Frage: Wie muss ich die Composite Componente anpassen, damit die Header angezeigt werden?
Die Composite Component:
HTML:
<!-- INTERFACE -->
<cc:interface componentType="org.primefaces.component.Column" preferred="true" shortDescription="Extended Datatable">
<cc:attribute name="value" />
<cc:attribute name="title" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<cc:actionSource name="#{component}">
<p:column sortBy="#{cc.attrs.value}" filterBy="#{cc.attrs.value}">
<!-- Header wird nicht angezeigt -->
<f:facet name="header">
<h:outputText value="#{cc.attrs.title}" />
</f:facet>
<!-- Spalte (Column) wird angezeigt -->
<h:outputText value="#{cc.attrs.value}" />
</p:column>
</cc:actionSource>
</cc:implementation>
Die JSF-Seite: (ohne Sortierfunktion und Filter, also nur mit Spaltenüberschrift)
HTML:
<!-- Mit Composite Component (funktioniert nicht) -->
<h:form>
<p:dataTable value="#{licenseController.licenseList}" var="row">
<f:facet name="header">
Lizenzen
</f:facet>
<mc:column title="Product" value="#{row.product.shortname}"/>
</p:dataTable>
</h:form>
<!-- OHNE Composite Component (funktioniert) -->
<h:form>
<p:dataTable value="#{licenseController.licenseList}" var="row">
<f:facet name="header">
Lizenzen
</f:facet>
<p:column sortBy="#{row.product.shortname}" filterBy="#{row.product.shortname}">
<f:facet name="header">
<h:outputText value="Produkt" />
</f:facet>
<h:outputText value="#{row.product.shortname}" />
</p:column>
</p:dataTable>
</h:form>
Ich bin Newbie und verstehe einfach nicht was ich hier falsch mache. Ich habe schon diverse Varianten ausprobiert. In meinen 2 JSF-Büchern und der Primeface-Doku wird nicht näher auf dieses Problem eingegangen. Es ist mir ein Rätsel warum die Spaltenüberschriften nicht angezeigt werden.
Goggle hat auch nicht geholfen. Bin für jedem Tip dankbar.
Viele Grüße
Bastian
Anhänge
Zuletzt bearbeitet: