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
Ashley A BologniaUnited KingdomAmy Elsner NEGOTIATION
Munro E DilliardRussiaStephen Shaw PROPOSAL
Johnson X BriddickJapanIvan Magalhaes NEW
Darci J DoeAustraliaIvan Magalhaes RENEWAL
Murillo Q MaletSpainOnyama Limba QUALIFIED
Jefferson I WaycottFranceAmy Elsner RENEWAL
Kaitlin P MaletGermanyAnna Fali PROPOSAL
Mujtaba H CampainJapanBernardo Dominic NEW
Greenwood A GarufiArgentinaAnna Fali NEW
Misaki G RimRussiaIvan Magalhaes PROPOSAL
Deepesh K FollerIndiaStephen Shaw PROPOSAL
Jeanfrancois F DilliardArgentinaXuxue Feng NEGOTIATION
James Z SlusarskiArgentinaBernardo Dominic NEGOTIATION
Deepesh V GillianJapanIoni Bowcher NEGOTIATION
Leon L IturbideArgentinaAnna Fali NEW
Francesco C SlusarskiFranceAsiya Javayant UNQUALIFIED
James W CaldareraIndiaIvan Magalhaes NEW
Tony Q TollnerBrazilAnna Fali PROPOSAL
Stacey X RutaCanadaAsiya Javayant RENEWAL
Greenwood T RulapaughSpainBernardo Dominic RENEWAL
Clifford G FollerItalyAnna Fali NEGOTIATION
James Y KolmetzAustraliaAmy Elsner QUALIFIED
Tony V MorascaItalyElwin Sharvill QUALIFIED
Salvatore V PoquetteJapanStephen Shaw PROPOSAL
Nicolas B OldroydSpainAnna Fali RENEWAL
Isabel N CampainIndiaAmy Elsner RENEWAL
Adams P RulapaughCanadaXuxue Feng UNQUALIFIED
David I MarrierArgentinaAsiya Javayant PROPOSAL
Ricardo O MarrierArgentinaIoni Bowcher NEW
Jeanfrancois Q DoeIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois I NestleUnited KingdomIoni Bowcher UNQUALIFIED
Morrow D PerinItalyAsiya Javayant QUALIFIED
Maria A FigeroaFranceBernardo Dominic QUALIFIED
Smith W OstroskyCanadaElwin Sharvill NEGOTIATION
Johnson X BriddickIndiaOnyama Limba QUALIFIED
Misaki V MaletArgentinaXuxue Feng NEW
Jefferson B RimFranceAnna Fali QUALIFIED
Jefferson P KolmetzArgentinaIoni Bowcher UNQUALIFIED
Tony Z RimRussiaStephen Shaw QUALIFIED
Johnson T GlickJapanStephen Shaw RENEWAL
Jefferson F PaprockiArgentinaIoni Bowcher RENEWAL
Costa I NestleJapanAsiya Javayant PROPOSAL
Aditya F VocelkaIndiaStephen Shaw NEW
Murillo V RoysterFranceElwin Sharvill UNQUALIFIED
Ricardo K DilliardItalyAmy Elsner QUALIFIED
Aruna Y FlosiSpainAnna Fali PROPOSAL
Stacey M RoysterSpainIvan Magalhaes QUALIFIED
Sinclair F RoysterGermanyStephen Shaw PROPOSAL
Aika X FigeroaArgentinaElwin Sharvill QUALIFIED
Isabel U BriddickCanadaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood B GauchoSpainAnna Fali RENEWAL
Cody O DilliardIndiaOnyama Limba QUALIFIED
Faith B GarufiIndiaOnyama Limba QUALIFIED
Juan A GillianIndiaIvan Magalhaes PROPOSAL
Clifford I FollerIndiaXuxue Feng NEGOTIATION
Aditya K BologniaArgentinaAnna Fali NEGOTIATION
Sinclair S BriddickIndiaBernardo Dominic NEW
Wickens K CampainJapanIoni Bowcher NEGOTIATION
Mayumi R MarrierJapanStephen Shaw QUALIFIED
Faith D SaylorsArgentinaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore H BowleyAustralia2024-05-03Truhlar And Truhlar Attys NEW45Stephen Shaw
1001Silvio V SaylorsAustralia2024-05-01Buckley Miller Wright QUALIFIED20Anna Fali
1002Misaki W FollerUnited Kingdom2024-04-06Feiner Bros NEGOTIATION45Elwin Sharvill
1003Aditya T WieserSpain2024-04-14Rousseaux, Michael Esq RENEWAL76Xuxue Feng
1004Jefferson X PaprockiIndia2024-04-29Printing Dimensions NEGOTIATION41Asiya Javayant
1005Mujtaba T FlosiSpain2024-04-11Commercial Press NEGOTIATION35Stephen Shaw
1006Greenwood V BowleyRussia2024-04-20Truhlar And Truhlar Attys NEW41Anna Fali
1007Kaitlin M SchemmerFrance2024-04-20Rousseaux, Michael Esq UNQUALIFIED24Ivan Magalhaes
1008David F DoeFrance2024-04-29Commercial Press UNQUALIFIED32Bernardo Dominic
1009Aruna Q FigeroaUnited Kingdom2024-05-04Buckley Miller Wright RENEWAL12Xuxue Feng
1010James B MacleadGermany2024-04-24Dorl, James J Esq NEW11Xuxue Feng
1011Isabel Z FigeroaSpain2024-04-23Feiner Bros QUALIFIED43Stephen Shaw
1012Mayumi U CampainRussia2024-05-05Morlong Associates QUALIFIED89Asiya Javayant
1013Clifford O FlosiCanada2024-04-30Chemel, James L Cpa RENEWAL12Elwin Sharvill
1014Juan T GlickUnited Kingdom2024-04-28Commercial Press RENEWAL55Onyama Limba
1015Faith H PaprockiItaly2024-05-01Feltz Printing Service QUALIFIED2Ioni Bowcher
1016Jefferson Z PerinAustralia2024-04-26Dorl, James J Esq PROPOSAL33Asiya Javayant
1017Izzy B AmigonRussia2024-04-29Rangoni Of Florence NEW95Asiya Javayant
1018Stacey Z TollnerUnited Kingdom2024-04-07King, Christopher A Esq NEGOTIATION39Onyama Limba
1019Chavez K CampainCanada2024-04-12Feltz Printing Service NEGOTIATION5Onyama Limba
1020Silvio H MacleadFrance2024-04-10Benton, John B Jr NEGOTIATION9Stephen Shaw
1021Ricardo W PaprockiArgentina2024-04-09Commercial Press PROPOSAL20Asiya Javayant
1022Isabel W ChuiIndia2024-04-08Printing Dimensions QUALIFIED40Onyama Limba
1023Jeanfrancois U RutaUnited Kingdom2024-04-21Dorl, James J Esq RENEWAL67Xuxue Feng
1024Aika N KuskoCanada2024-05-02Chemel, James L Cpa QUALIFIED78Anna Fali
1025Kaitlin A FlosiItaly2024-04-06Chemel, James L Cpa NEGOTIATION88Ivan Magalhaes
1026Silvio G PoquetteBrazil2024-04-07Chemel, James L Cpa NEW20Amy Elsner
1027Morrow E SlusarskiRussia2024-04-17King, Christopher A Esq RENEWAL90Asiya Javayant
1028Johnson O GlickJapan2024-04-29Truhlar And Truhlar Attys RENEWAL23Ioni Bowcher
1029Greenwood K OstroskyRussia2024-04-12Buckley Miller Wright NEW31Ioni Bowcher
1030Rodrigues J DilliardSpain2024-04-07Rangoni Of Florence QUALIFIED17Xuxue Feng
1031Juan H KolmetzSpain2024-04-19King, Christopher A Esq UNQUALIFIED80Bernardo Dominic
1032Clifford E GauchoBrazil2024-04-07Commercial Press PROPOSAL79Bernardo Dominic
1033Mujtaba P WhobreySpain2024-04-14Feltz Printing Service RENEWAL42Elwin Sharvill
1034Nicolas F AmigonJapan2024-04-30Rangoni Of Florence RENEWAL34Amy Elsner
1035Deepesh M ButtFrance2024-04-13Chanay, Jeffrey A Esq UNQUALIFIED48Onyama Limba
1036Munro O GauchoRussia2024-04-24Rangoni Of Florence UNQUALIFIED79Bernardo Dominic
1037Julie W BologniaIndia2024-04-25Rangoni Of Florence NEW76Xuxue Feng
1038Costa S ChuiAustralia2024-05-05Truhlar And Truhlar Attys QUALIFIED25Amy Elsner
1039Rodrigues L DoeRussia2024-04-22Feltz Printing Service RENEWAL29Xuxue Feng
1040Nicolas X RulapaughAustralia2024-04-19Feiner Bros RENEWAL54Ivan Magalhaes
1041Costa N MarrierSpain2024-04-22Truhlar And Truhlar Attys QUALIFIED36Elwin Sharvill
1042Greenwood M AmigonUnited Kingdom2024-04-22Feltz Printing Service NEGOTIATION7Ivan Magalhaes
1043Jennifer Z VenereJapan2024-04-25Commercial Press RENEWAL52Stephen Shaw
1044Leja T AmigonFrance2024-04-13Rangoni Of Florence NEGOTIATION28Asiya Javayant
1045Claire L StockhamGermany2024-04-25Rousseaux, Michael Esq NEW42Asiya Javayant
1046Maria N MacleadItaly2024-04-27Morlong Associates PROPOSAL28Stephen Shaw
1047Aruna S DarakjyIndia2024-04-15Printing Dimensions QUALIFIED91Asiya Javayant
1048David N DarakjyRussia2024-04-23Buckley Miller Wright UNQUALIFIED32Ioni Bowcher
1049Antonio G SchemmerArgentina2024-04-30Truhlar And Truhlar Attys RENEWAL77Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Alejandro P PoquetteCanadaBernardo Dominic NEGOTIATION
Chavez X KuskoRussiaElwin Sharvill UNQUALIFIED
Antonio D ButtAustraliaAsiya Javayant RENEWAL
Aditya S OstroskyArgentinaIoni Bowcher PROPOSAL
Tony K GarufiFranceAmy Elsner RENEWAL
Stacey M WhobreyIndiaXuxue Feng NEW
Octavia I SchemmerIndiaIvan Magalhaes QUALIFIED
Antonio F DilliardRussiaOnyama Limba QUALIFIED
Wickens C ShinkoGermanyAnna Fali NEGOTIATION
Adams Y AmigonFranceElwin Sharvill UNQUALIFIED
Mayumi B CaudyArgentinaXuxue Feng RENEWAL
David X VocelkaGermanyAsiya Javayant NEW
Sinclair J OstroskyCanadaAnna Fali NEW
Tony L GauchoJapanAnna Fali UNQUALIFIED
Alejandro M MarrierAustraliaBernardo Dominic QUALIFIED
Jefferson H DarakjyAustraliaStephen Shaw RENEWAL
Nicolas J IturbideItalyIoni Bowcher QUALIFIED
Clifford S SaylorsFranceAnna Fali PROPOSAL
Costa P GauchoArgentinaXuxue Feng NEW
Wickens F BowleyIndiaIvan Magalhaes PROPOSAL
Arvin F IturbideCanadaAsiya Javayant QUALIFIED
Murillo M PerinFranceElwin Sharvill QUALIFIED
James M FlosiRussiaElwin Sharvill RENEWAL
Kaitlin N PoquetteBrazilIvan Magalhaes PROPOSAL
Sinclair U WaycottIndiaIvan Magalhaes NEW
Mayumi O PaprockiCanadaBernardo Dominic UNQUALIFIED
Izzy X FlosiIndiaXuxue Feng NEGOTIATION
Morrow J ButtGermanyAsiya Javayant PROPOSAL
Aruna A TollnerItalyStephen Shaw PROPOSAL
Jeanfrancois X ShinkoBrazilIvan Magalhaes NEGOTIATION
Izzy Q PaprockiGermanyIvan Magalhaes RENEWAL
Ricardo N GarufiArgentinaXuxue Feng PROPOSAL
Arvin U OstroskyGermanyBernardo Dominic UNQUALIFIED
Jennifer S WaycottSpainStephen Shaw NEW
Arvin O CaudyItalyIvan Magalhaes PROPOSAL
Costa O MacleadCanadaIoni Bowcher QUALIFIED
Aruna I InouyeItalyElwin Sharvill NEGOTIATION
Greenwood V ChuiCanadaOnyama Limba PROPOSAL
Misaki N CampainJapanAmy Elsner NEW
Cody D GauchoIndiaAsiya Javayant UNQUALIFIED
Aditya I VenereCanadaElwin Sharvill NEW
Maisha N CaldareraSpainElwin Sharvill RENEWAL
Smith B OstroskyGermanyAmy Elsner UNQUALIFIED
Claire O StockhamSpainIvan Magalhaes RENEWAL
Maisha L TollnerCanadaIvan Magalhaes QUALIFIED
Smith O DoeFranceOnyama Limba UNQUALIFIED
Izzy Z KolmetzGermanyStephen Shaw UNQUALIFIED
Wickens C OstroskyJapanXuxue Feng RENEWAL
Cody F FigeroaGermanyAnna Fali NEW
Faith S FerenczCanadaAnna Fali PROPOSAL
Frozen Columns
Name
Sinclair G Shinko
Munro Q Garufi
Smith C Poquette
Greenwood R Gillian
Adams C Figeroa
Darci Z Schemmer
Johnson G Shinko
Jeanfrancois M Nestle
Darci B Stockham
Izzy D Darakjy
Aika I Vocelka
Jefferson Z Sergi
Jeanfrancois N Vocelka
Leja C Glick
Isabel G Dilliard
Clifford M Schemmer
Misaki A Kolmetz
Maria Q Doe
Tony V Bowley
Jefferson G Garufi
Ashley U Chui
Julie O Ruta
Jefferson Q Amigon
Arvin Z Saylors
Emily F Sergi
Aditya Z Ostrosky
Adams Z Saylors
Emily U Darakjy
Ivar F Royster
Darci R Figeroa
James E Ferencz
Leja F Caudy
Munro F Dilliard
Arvin Q Malet
Murillo R Ferencz
Octavia L Royster
Maisha J Ostrosky
Izzy L Paprocki
Misaki J Morasca
Julie G Venere
Tony Y Poquette
Mayumi Y Dilliard
Emily R Rulapaugh
Darci B Dilliard
Nicolas U Bowley
Darci L Inouye
Ashley F Garufi
Jennifer L Rulapaugh
Julie X Whobrey
Silvio F Stockham
IdCountryDate
1000Russia2024-04-28
1001Australia2024-05-03
1002Argentina2024-05-02
1003United Kingdom2024-04-10
1004Spain2024-04-17
1005France2024-04-20
1006Canada2024-04-09
1007India2024-05-05
1008Spain2024-04-18
1009Russia2024-04-17
1010Australia2024-04-20
1011Russia2024-04-14
1012India2024-04-14
1013United Kingdom2024-04-17
1014Canada2024-04-25
1015Brazil2024-04-28
1016India2024-04-24
1017Germany2024-04-10
1018France2024-04-08
1019Australia2024-04-21
1020Australia2024-04-10
1021Germany2024-04-30
1022Argentina2024-04-16
1023France2024-04-20
1024United Kingdom2024-04-10
1025Russia2024-04-09
1026France2024-04-12
1027India2024-04-21
1028Japan2024-04-12
1029Germany2024-04-25
1030Russia2024-04-24
1031Brazil2024-04-09
1032Argentina2024-04-26
1033Brazil2024-04-29
1034Germany2024-04-18
1035United Kingdom2024-04-16
1036Germany2024-05-03
1037France2024-05-01
1038Germany2024-04-11
1039Australia2024-04-25
1040Japan2024-04-30
1041United Kingdom2024-05-05
1042France2024-05-01
1043United Kingdom2024-05-02
1044India2024-04-27
1045India2024-05-04
1046India2024-05-03
1047Spain2024-04-22
1048Brazil2024-04-06
1049Japan2024-05-02

On-Demand Data

NameIdCountryDate
Salvatore W Campain1000Argentina2024-04-11
Clifford O Stenseth1001Canada2024-04-25
Octavia T Schemmer1002Russia2024-04-23
Misaki O Glick1003Spain2024-04-10
Silvio R Gillian1004Canada2024-05-05
Ricardo E Gillian1005United Kingdom2024-04-09
Cody R Ferencz1006Russia2024-04-14
Faith O Nicka1007Russia2024-04-26
Leon U Albares1008Canada2024-05-01
Wickens D Caldarera1009United Kingdom2024-04-17
Deepesh H Waycott1010Argentina2024-04-29
Jones N Shinko1011Canada2024-04-22
Tony Q Tollner1012Australia2024-04-14
Mayumi I Paprocki1013United Kingdom2024-04-27
Maria K Chui1014France2024-05-03
Julie R Kusko1015Argentina2024-04-29
Munro S Amigon1016Spain2024-04-14
Misaki I Kusko1017Brazil2024-04-06
Emily T Tollner1018United Kingdom2024-04-11
Salvatore I Paprocki1019Russia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy C ButtJapanElwin Sharvill NEW
Izzy Q GarufiRussiaAsiya Javayant UNQUALIFIED
Octavia E BowleyArgentinaIvan Magalhaes PROPOSAL
Mujtaba X FlosiJapanOnyama Limba NEGOTIATION
Tony P SaylorsCanadaAmy Elsner NEGOTIATION
Smith P CampainCanadaAsiya Javayant QUALIFIED
Smith L ChuiUnited KingdomAmy Elsner PROPOSAL
Aika Q BowleyCanadaIoni Bowcher NEGOTIATION
Mayumi G FigeroaIndiaAmy Elsner NEW
Maisha P GlickRussiaIoni Bowcher QUALIFIED
Ricardo P BriddickItalyIoni Bowcher RENEWAL
Emily K DarakjyFranceIvan Magalhaes NEW
Mayumi A GlickSpainIvan Magalhaes UNQUALIFIED
Costa Z RulapaughIndiaBernardo Dominic PROPOSAL
Leon S NestleItalyAmy Elsner RENEWAL
Stacey P GarufiBrazilXuxue Feng QUALIFIED
Octavia E MacleadSpainIoni Bowcher QUALIFIED
Antonio L CampainItalyStephen Shaw NEGOTIATION
Adams Q VenereAustraliaIoni Bowcher PROPOSAL
Claire N DilliardFranceIoni Bowcher NEW
Aika X WieserArgentinaElwin Sharvill RENEWAL
Ricardo S WhobreyGermanyStephen Shaw UNQUALIFIED
Alejandro D GlickSpainIvan Magalhaes NEGOTIATION
Alejandro M BriddickSpainIoni Bowcher PROPOSAL
Morrow F CampainItalyElwin Sharvill PROPOSAL
Julie C OstroskyArgentinaAmy Elsner RENEWAL
James L GillianItalyStephen Shaw UNQUALIFIED
Munro T ShinkoFranceAmy Elsner PROPOSAL
Jeanfrancois J StensethJapanIvan Magalhaes PROPOSAL
Jennifer G WhobreyAustraliaAsiya Javayant NEW
Kaitlin A KuskoGermanyAmy Elsner RENEWAL
Silvio B MacleadItalyOnyama Limba QUALIFIED
Johnson T OldroydFranceStephen Shaw RENEWAL
Adams J KolmetzItalyAmy Elsner RENEWAL
Julie I VocelkaRussiaIoni Bowcher QUALIFIED
Silvio Y StensethCanadaStephen Shaw NEW
Juan G RulapaughRussiaAsiya Javayant UNQUALIFIED
Isabel E MaletGermanyElwin Sharvill RENEWAL
Sinclair N SlusarskiGermanyAsiya Javayant PROPOSAL
Rodrigues C TollnerGermanyElwin Sharvill RENEWAL

<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>