Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

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

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

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

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Leja A NickaUnited KingdomAmy Elsner UNQUALIFIED
Juan W VenereFranceElwin Sharvill QUALIFIED
Tony I DarakjyItalyIoni Bowcher RENEWAL
Aika I MorascaCanadaAmy Elsner NEGOTIATION
Munro Q CaldareraSpainStephen Shaw RENEWAL
Murillo V AmigonRussiaAsiya Javayant PROPOSAL
Nicolas Z DoeBrazilXuxue Feng RENEWAL
Morrow Q FerenczCanadaElwin Sharvill UNQUALIFIED
Aditya H FerenczAustraliaOnyama Limba PROPOSAL
Juan O TollnerSpainOnyama Limba RENEWAL
Jeanfrancois A KuskoGermanyAnna Fali RENEWAL
Leon F AlbaresJapanElwin Sharvill UNQUALIFIED
Costa R MaletCanadaAsiya Javayant QUALIFIED
Leon S KolmetzRussiaIoni Bowcher QUALIFIED
Kadeem D MaletAustraliaAnna Fali NEGOTIATION
Maria B VenereRussiaElwin Sharvill NEGOTIATION
Maisha L KolmetzBrazilIvan Magalhaes QUALIFIED
Mujtaba C VenereBrazilIvan Magalhaes PROPOSAL
Silvio D BologniaJapanElwin Sharvill RENEWAL
Leja R DarakjyItalyIvan Magalhaes PROPOSAL
Chavez Q MacleadFranceElwin Sharvill PROPOSAL
Leja C VenereSpainAmy Elsner UNQUALIFIED
Stacey W GauchoGermanyStephen Shaw PROPOSAL
Emily C StensethAustraliaAmy Elsner PROPOSAL
Isabel P PerinCanadaAmy Elsner QUALIFIED
Adams B MaletRussiaAsiya Javayant UNQUALIFIED
Claire C StensethArgentinaOnyama Limba RENEWAL
Arvin G PaprockiItalyElwin Sharvill NEGOTIATION
Maria C MacleadArgentinaAnna Fali QUALIFIED
Francesco E KuskoAustraliaAsiya Javayant RENEWAL
Kadeem H DoeGermanyBernardo Dominic PROPOSAL
Aika G SlusarskiIndiaIvan Magalhaes QUALIFIED
James D DoeSpainAmy Elsner NEW
David K RulapaughItalyAnna Fali NEW
Alejandro P MaletSpainAsiya Javayant QUALIFIED
Wickens X SlusarskiCanadaAmy Elsner PROPOSAL
Deepesh V VenereSpainIoni Bowcher RENEWAL
Jones Y PerinUnited KingdomXuxue Feng NEW
Jennifer K CaudyCanadaOnyama Limba NEGOTIATION
Claire S OstroskyCanadaXuxue Feng UNQUALIFIED
Leja G PoquetteSpainAnna Fali UNQUALIFIED
Maisha G FlosiCanadaIvan Magalhaes UNQUALIFIED
Sinclair G WieserArgentinaStephen Shaw RENEWAL
Ricardo S GlickFranceBernardo Dominic NEGOTIATION
Kadeem O OstroskyIndiaBernardo Dominic UNQUALIFIED
Maisha C WhobreyItalyAnna Fali NEGOTIATION
Mayumi M SergiIndiaBernardo Dominic PROPOSAL
Johnson E PoquetteJapanXuxue Feng PROPOSAL
Chavez M DilliardSpainOnyama Limba NEGOTIATION
Izzy A SlusarskiAustraliaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jefferson Q TollnerIndiaElwin Sharvill NEGOTIATION
James I WaycottIndiaXuxue Feng RENEWAL
Silvio R RoysterUnited KingdomElwin Sharvill NEW
James V BologniaBrazilOnyama Limba PROPOSAL
Isabel N RulapaughCanadaOnyama Limba RENEWAL
Smith B MaletGermanyBernardo Dominic PROPOSAL
Maria I FerenczGermanyAsiya Javayant UNQUALIFIED
David W DoeArgentinaStephen Shaw PROPOSAL
Julie G AlbaresSpainIvan Magalhaes NEW
Jefferson I WieserGermanyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro Y NestleSpain2024-03-28Morlong Associates PROPOSAL35Amy Elsner
1001Jeanfrancois C WhobreySpain2024-04-20Commercial Press UNQUALIFIED79Xuxue Feng
1002Aika L VenereSpain2024-04-09Truhlar And Truhlar Attys PROPOSAL9Stephen Shaw
1003Maria O CampainItaly2024-04-03Chemel, James L Cpa PROPOSAL70Ivan Magalhaes
1004Greenwood M VocelkaBrazil2024-03-29Buckley Miller Wright NEGOTIATION77Stephen Shaw
1005Chavez D FlosiBrazil2024-04-09Chapman, Ross E Esq PROPOSAL82Anna Fali
1006Leja O FerenczFrance2024-03-27King, Christopher A Esq PROPOSAL78Asiya Javayant
1007Alejandro X GauchoUnited Kingdom2024-03-27Feltz Printing Service QUALIFIED37Ioni Bowcher
1008Adams J FlosiSpain2024-03-28King, Christopher A Esq NEW84Amy Elsner
1009Jefferson X ButtAustralia2024-03-26Truhlar And Truhlar Attys PROPOSAL50Bernardo Dominic
1010Aruna F VenereAustralia2024-04-14Rousseaux, Michael Esq RENEWAL33Amy Elsner
1011David A NestleIndia2024-04-21Chanay, Jeffrey A Esq NEW60Onyama Limba
1012Mayumi O MacleadJapan2024-04-01Printing Dimensions UNQUALIFIED93Bernardo Dominic
1013Murillo U MaletArgentina2024-03-29Buckley Miller Wright UNQUALIFIED63Onyama Limba
1014Nicolas T MorascaJapan2024-04-07Printing Dimensions PROPOSAL31Ivan Magalhaes
1015Ashley X CaudyAustralia2024-04-23Chemel, James L Cpa UNQUALIFIED15Xuxue Feng
1016Maisha E ChuiUnited Kingdom2024-04-03Morlong Associates NEGOTIATION66Stephen Shaw
1017Jefferson R BologniaFrance2024-04-18Benton, John B Jr RENEWAL34Asiya Javayant
1018Arvin O RulapaughIndia2024-04-10Printing Dimensions RENEWAL16Onyama Limba
1019Julie L OldroydSpain2024-04-07Chapman, Ross E Esq NEGOTIATION30Anna Fali
1020Aruna W NestleItaly2024-04-09Chanay, Jeffrey A Esq NEGOTIATION9Bernardo Dominic
1021Claire L CaudySpain2024-04-04Rousseaux, Michael Esq UNQUALIFIED68Ioni Bowcher
1022Darci I DoeBrazil2024-04-01Truhlar And Truhlar Attys QUALIFIED11Amy Elsner
1023Julie D VenereJapan2024-04-22Buckley Miller Wright UNQUALIFIED64Anna Fali
1024Aditya R NestleCanada2024-03-28Rangoni Of Florence UNQUALIFIED85Bernardo Dominic
1025Julie F RutaItaly2024-04-15Chemel, James L Cpa NEGOTIATION73Ivan Magalhaes
1026Emily U DarakjyCanada2024-04-12Truhlar And Truhlar Attys NEGOTIATION62Onyama Limba
1027Tony I GauchoGermany2024-04-15Buckley Miller Wright RENEWAL98Onyama Limba
1028Clifford F StockhamAustralia2024-04-19Benton, John B Jr PROPOSAL65Onyama Limba
1029Jones H FollerSpain2024-04-12Printing Dimensions NEGOTIATION97Elwin Sharvill
1030Jennifer I GauchoRussia2024-04-18Rangoni Of Florence RENEWAL33Asiya Javayant
1031Kadeem D CampainIndia2024-04-14Commercial Press NEGOTIATION3Ioni Bowcher
1032Maisha E WhobreySpain2024-04-04Morlong Associates NEW0Elwin Sharvill
1033Leja X NickaUnited Kingdom2024-03-27Rousseaux, Michael Esq PROPOSAL54Bernardo Dominic
1034Misaki U GarufiGermany2024-04-08Chapman, Ross E Esq NEGOTIATION27Elwin Sharvill
1035Murillo A SergiItaly2024-03-28Feltz Printing Service RENEWAL13Ioni Bowcher
1036Costa K TollnerCanada2024-04-19King, Christopher A Esq QUALIFIED64Elwin Sharvill
1037Juan F GauchoSpain2024-04-20Printing Dimensions RENEWAL9Xuxue Feng
1038Sinclair K TollnerArgentina2024-04-22Chapman, Ross E Esq NEGOTIATION73Anna Fali
1039Francesco R DilliardRussia2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED34Ioni Bowcher
1040Juan H OstroskyAustralia2024-03-29Buckley Miller Wright NEGOTIATION41Ioni Bowcher
1041Aruna E ButtCanada2024-03-26Rousseaux, Michael Esq QUALIFIED36Ivan Magalhaes
1042Chavez S SchemmerBrazil2024-03-29Printing Dimensions RENEWAL97Ivan Magalhaes
1043Wickens H ShinkoArgentina2024-04-14Feltz Printing Service NEW57Stephen Shaw
1044Mujtaba F AmigonCanada2024-04-21Chemel, James L Cpa PROPOSAL22Amy Elsner
1045Claire L BologniaItaly2024-04-05Buckley Miller Wright RENEWAL73Stephen Shaw
1046Jennifer B VenereFrance2024-04-17Feltz Printing Service NEW76Asiya Javayant
1047Leja X KolmetzJapan2024-04-04Morlong Associates RENEWAL3Amy Elsner
1048Rodrigues H FlosiCanada2024-04-05Chemel, James L Cpa UNQUALIFIED54Anna Fali
1049Cody H RoysterJapan2024-04-10Chapman, Ross E Esq QUALIFIED99Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Emily Z IturbideSpainAmy Elsner NEGOTIATION
Munro K MorascaBrazilAsiya Javayant UNQUALIFIED
Murillo H CampainJapanAmy Elsner NEGOTIATION
Munro A VenereFranceOnyama Limba QUALIFIED
Clifford Q StockhamJapanBernardo Dominic NEW
Stacey N KuskoBrazilStephen Shaw RENEWAL
Darci F MaletBrazilIvan Magalhaes PROPOSAL
Kaitlin I PerinIndiaXuxue Feng QUALIFIED
Izzy U ButtUnited KingdomAnna Fali QUALIFIED
Johnson Z OldroydGermanyStephen Shaw PROPOSAL
Izzy A VenereRussiaOnyama Limba RENEWAL
Octavia I NickaRussiaStephen Shaw NEGOTIATION
Nicolas B ShinkoJapanAnna Fali NEW
Murillo R CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh E WieserIndiaAnna Fali NEGOTIATION
Leja I CaldareraIndiaAnna Fali UNQUALIFIED
Rodrigues O GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Maisha J SergiArgentinaAmy Elsner UNQUALIFIED
Ivar I FollerGermanyElwin Sharvill RENEWAL
Adams L RimItalyAsiya Javayant PROPOSAL
Clifford F RulapaughUnited KingdomAmy Elsner UNQUALIFIED
Arvin F BowleyBrazilAsiya Javayant QUALIFIED
Clifford B RimItalyIoni Bowcher PROPOSAL
Aditya H WieserItalyOnyama Limba PROPOSAL
Clifford A VocelkaArgentinaAsiya Javayant NEGOTIATION
Cody E VocelkaGermanyStephen Shaw NEGOTIATION
Darci C KolmetzBrazilElwin Sharvill NEW
Sinclair B GarufiItalyOnyama Limba NEW
Jeanfrancois Q DoeUnited KingdomBernardo Dominic NEW
Mayumi F ChuiFranceBernardo Dominic QUALIFIED
Silvio N DoeJapanElwin Sharvill UNQUALIFIED
Deepesh U PoquetteJapanBernardo Dominic NEGOTIATION
Mujtaba W RimIndiaIoni Bowcher RENEWAL
Tony X PerinRussiaIvan Magalhaes NEW
Munro G BowleyJapanAsiya Javayant UNQUALIFIED
Tony E RulapaughCanadaElwin Sharvill PROPOSAL
Aditya T AlbaresFranceElwin Sharvill QUALIFIED
Johnson E WaycottSpainElwin Sharvill QUALIFIED
Faith Y PaprockiUnited KingdomBernardo Dominic QUALIFIED
Murillo M NestleJapanElwin Sharvill UNQUALIFIED
Misaki V KuskoFranceAsiya Javayant UNQUALIFIED
Ricardo B DarakjyIndiaOnyama Limba NEW
Juan Z SaylorsGermanyOnyama Limba QUALIFIED
Maria D BowleyUnited KingdomXuxue Feng RENEWAL
Izzy E NestleCanadaIoni Bowcher NEGOTIATION
Julie A SchemmerSpainIoni Bowcher RENEWAL
Costa L DilliardAustraliaBernardo Dominic NEW
Costa U StensethSpainXuxue Feng NEW
Jennifer T NickaGermanyAmy Elsner RENEWAL
Mujtaba I StensethFranceAsiya Javayant QUALIFIED
Frozen Columns
Name
Jefferson I Paprocki
Rodrigues O Malet
Jeanfrancois R Butt
Johnson K Doe
Francesco U Stenseth
Greenwood N Darakjy
Ashley I Shinko
Ashley S Kusko
Nicolas Q Perin
Costa T Bowley
Ivar Y Garufi
Costa U Bolognia
Aditya W Tollner
Aruna S Slusarski
Jefferson Y Chui
Isabel N Briddick
Julie N Stenseth
Julie P Albares
Emily U Ruta
Maisha L Briddick
Rodrigues L Dilliard
Mayumi Q Garufi
Cody Q Schemmer
Silvio O Sergi
Juan Y Kolmetz
Aditya K Ostrosky
Misaki C Gaucho
Darci W Dilliard
Juan A Kolmetz
James J Campain
Mayumi O Tollner
Aruna M Figeroa
Smith V Gaucho
Aika T Schemmer
Faith Q Rim
Maisha D Darakjy
Murillo Z Maclead
Leja W Foller
Antonio T Flosi
Kadeem Z Rulapaugh
Murillo Q Whobrey
Nicolas W Bowley
Izzy A Amigon
Jones V Kusko
Aruna Q Paprocki
Munro L Amigon
Julie X Albares
Aruna F Caldarera
Chavez I Waycott
Salvatore I Campain
IdCountryDate
1000Spain2024-04-21
1001Italy2024-04-23
1002Brazil2024-04-12
1003Argentina2024-04-13
1004Canada2024-04-02
1005Spain2024-04-02
1006Canada2024-04-09
1007Japan2024-03-26
1008Australia2024-04-18
1009Argentina2024-04-09
1010France2024-04-21
1011Germany2024-04-19
1012Argentina2024-03-26
1013Australia2024-04-03
1014France2024-04-16
1015Germany2024-04-15
1016Brazil2024-04-19
1017United Kingdom2024-04-19
1018Canada2024-04-04
1019Argentina2024-03-28
1020United Kingdom2024-04-22
1021France2024-04-19
1022Canada2024-03-29
1023India2024-04-14
1024Argentina2024-04-11
1025Spain2024-03-29
1026Brazil2024-04-23
1027India2024-04-02
1028Canada2024-04-19
1029India2024-04-06
1030Australia2024-04-23
1031Russia2024-03-26
1032Italy2024-04-14
1033United Kingdom2024-04-14
1034Italy2024-04-09
1035Italy2024-04-01
1036Australia2024-03-31
1037India2024-04-04
1038Russia2024-04-04
1039Germany2024-04-02
1040Italy2024-04-21
1041Canada2024-04-15
1042Canada2024-04-07
1043India2024-04-10
1044Japan2024-04-12
1045Germany2024-03-27
1046France2024-04-13
1047Australia2024-04-19
1048Italy2024-04-22
1049United Kingdom2024-04-03

On-Demand Data

NameIdCountryDate
Salvatore C Schemmer1000Canada2024-04-08
Tony H Darakjy1001India2024-04-13
Clifford U Saylors1002Japan2024-04-22
Jennifer F Gaucho1003United Kingdom2024-03-29
Jeanfrancois Y Bolognia1004Japan2024-04-08
Morrow B Iturbide1005Japan2024-04-03
Ricardo E Poquette1006Germany2024-03-27
Octavia Z Stockham1007Brazil2024-04-12
Rodrigues U Gillian1008Brazil2024-04-17
Isabel U Glick1009Italy2024-04-18
Deepesh U Malet1010Germany2024-03-25
Munro R Wieser1011Australia2024-04-01
Ashley M Maclead1012Spain2024-04-21
Maisha T Malet1013United Kingdom2024-03-25
Antonio F Kusko1014Brazil2024-04-21
Mayumi P Morasca1015France2024-03-27
Salvatore E Inouye1016United Kingdom2024-04-16
Mujtaba V Foller1017Argentina2024-03-29
Aruna V Garufi1018Japan2024-04-18
Kaitlin Q Briddick1019Canada2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar L MarrierJapanElwin Sharvill UNQUALIFIED
Faith N CaldareraSpainXuxue Feng NEW
Aika E AlbaresItalyAsiya Javayant NEW
Jones B SergiIndiaStephen Shaw UNQUALIFIED
Chavez C MacleadBrazilBernardo Dominic NEW
Nicolas F ChuiIndiaStephen Shaw PROPOSAL
Ashley M OstroskyCanadaAnna Fali QUALIFIED
Costa U SergiRussiaIvan Magalhaes UNQUALIFIED
Wickens X OldroydSpainBernardo Dominic UNQUALIFIED
Mujtaba H AlbaresFranceBernardo Dominic RENEWAL
Adams J SchemmerSpainAmy Elsner NEW
James E SlusarskiGermanyOnyama Limba NEGOTIATION
Johnson S WaycottJapanAmy Elsner NEW
Kaitlin S DilliardUnited KingdomXuxue Feng NEW
Aditya W WieserBrazilAnna Fali NEGOTIATION
Leon K PerinCanadaAnna Fali NEW
Aditya Z PerinGermanyBernardo Dominic NEW
Alejandro H BriddickFranceOnyama Limba PROPOSAL
Salvatore B CampainAustraliaElwin Sharvill NEGOTIATION
Greenwood S CampainCanadaAmy Elsner UNQUALIFIED
Alejandro K SlusarskiAustraliaStephen Shaw UNQUALIFIED
Mayumi A BologniaBrazilElwin Sharvill NEW
Maisha C StensethRussiaOnyama Limba QUALIFIED
Murillo J OldroydIndiaStephen Shaw UNQUALIFIED
Jones Y FlosiCanadaBernardo Dominic RENEWAL
Jennifer N DilliardRussiaAnna Fali NEW
Darci F CampainCanadaXuxue Feng RENEWAL
Maria D FigeroaGermanyIvan Magalhaes NEGOTIATION
Aika X DilliardIndiaIvan Magalhaes UNQUALIFIED
Antonio Z VocelkaCanadaAsiya Javayant PROPOSAL
Alejandro R CaudyRussiaAnna Fali NEW
Munro R TollnerBrazilXuxue Feng NEGOTIATION
Emily M IturbideJapanIvan Magalhaes QUALIFIED
Emily X TollnerRussiaXuxue Feng RENEWAL
Sinclair Y RimItalyAsiya Javayant NEW
Clifford B RulapaughIndiaStephen Shaw RENEWAL
Chavez Q OldroydGermanyIoni Bowcher NEW
Murillo K PaprockiItalyBernardo Dominic QUALIFIED
Rodrigues J StockhamFranceXuxue Feng NEGOTIATION
Ashley W MaletItalyXuxue Feng UNQUALIFIED

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>