DataTable - Dynamic Columns

Columns of datatable can be created dynamically using the p:columns component.

Documentation
Available columns are "id","brand","year","color" and "price".
IDBRANDYEAR
08b7c79cJaguar1966
a02b67d7Volvo1984
d27d5f54Honda1989
5b3554a3Volvo2009
2092b11dJaguar1984
0316abb8BMW1978
d4b0e6f5Volvo2004
dff9a249Honda2007
a795ef46BMW1995
cc5f6983Renault2000
Available columns are "id","brand","year","color" and "price".

<h:form id="form">    
    <h:panelGrid columns="3" style="margin:10px 0">
        <p:outputLabel for="template" value="Template:" style="font-weight:bold"/>
        <p:inputText id="template" value="#{dtColumnsView.columnTemplate}" size="50"/>
        <p:commandButton update="cars" action="#{dtColumnsView.updateColumns}" value="Update" process="@parent" icon="pi pi-refresh" oncomplete="PF('carsTable').clearFilters()"/>
    </h:panelGrid>

    <p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}" widgetVar="carsTable" filteredValue="#{dtColumnsView.filteredCars}">                    
        <p:columns value="#{dtColumnsView.columns}" var="column" columnIndexVar="colIndex" sortBy="#{car[column.property]}" filterBy="#{car[column.property]}">
            <f:facet name="header">
                <h:outputText value="#{column.header}" />
            </f:facet>
            <h:outputText value="#{car[column.property]}" />
        </p:columns>
    </p:dataTable>
</h:form>

FREE THEMES

Built-in component themes created by the PrimeFaces Theme Designer.

nova-light Nova-Light
nova-dark Nova-Dark
nova-colored Nova-Colored
luna-blue Luna-Blue
luna-amber Luna-Amber
luna-green Luna-Green
luna-pink Luna-Pink
omega Omega

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.