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
Sinclair S BriddickBrazilAsiya Javayant PROPOSAL
Tony S WaycottArgentinaIvan Magalhaes NEW
Wickens D KuskoAustraliaOnyama Limba NEGOTIATION
Antonio B SchemmerUnited KingdomAnna Fali QUALIFIED
Claire Q CampainSpainOnyama Limba NEGOTIATION
Maria L CaldareraBrazilStephen Shaw UNQUALIFIED
Clifford K SergiArgentinaBernardo Dominic NEGOTIATION
Clifford Z PoquetteArgentinaIvan Magalhaes NEW
Smith R PoquetteSpainAnna Fali RENEWAL
Isabel D SergiBrazilIvan Magalhaes NEW
Sinclair O PoquetteRussiaAnna Fali PROPOSAL
Alejandro Z MarrierArgentinaIoni Bowcher PROPOSAL
Aditya G PerinFranceOnyama Limba QUALIFIED
Kadeem T MacleadFranceAmy Elsner UNQUALIFIED
Aditya N StockhamArgentinaStephen Shaw RENEWAL
Mayumi T MaletAustraliaAnna Fali RENEWAL
Jefferson Q CaudyRussiaStephen Shaw NEW
Jennifer H CampainIndiaAsiya Javayant RENEWAL
Kaitlin I PaprockiRussiaAsiya Javayant PROPOSAL
Emily E MacleadGermanyIoni Bowcher NEGOTIATION
Julie O StockhamJapanIvan Magalhaes UNQUALIFIED
Kaitlin H BowleyAustraliaAsiya Javayant QUALIFIED
Jefferson P KolmetzRussiaAnna Fali NEW
Arvin G DilliardItalyXuxue Feng UNQUALIFIED
Aditya Q SaylorsArgentinaIoni Bowcher UNQUALIFIED
Salvatore Q StensethArgentinaOnyama Limba PROPOSAL
Greenwood L SaylorsArgentinaElwin Sharvill QUALIFIED
Rodrigues F NickaItalyStephen Shaw QUALIFIED
Emily C ShinkoSpainAnna Fali QUALIFIED
Sinclair Z VenereBrazilAsiya Javayant PROPOSAL
Clifford F KolmetzIndiaAnna Fali UNQUALIFIED
Emily Z BowleyGermanyAmy Elsner PROPOSAL
Jones V GauchoSpainBernardo Dominic RENEWAL
Tony N OstroskyGermanyElwin Sharvill NEGOTIATION
Emily B FerenczBrazilXuxue Feng NEW
Kaitlin Y SlusarskiSpainAmy Elsner QUALIFIED
Izzy M RimCanadaElwin Sharvill NEW
Francesco N StensethGermanyAmy Elsner RENEWAL
David P KolmetzJapanAsiya Javayant NEGOTIATION
Tony D SchemmerGermanyBernardo Dominic QUALIFIED
Misaki P DoeItalyAmy Elsner PROPOSAL
Aruna N CaldareraGermanyIvan Magalhaes NEW
Tony X WaycottArgentinaIvan Magalhaes QUALIFIED
Mayumi X AlbaresGermanyStephen Shaw RENEWAL
David G CaldareraSpainStephen Shaw NEW
Darci G DilliardFranceIvan Magalhaes QUALIFIED
David A MarrierAustraliaBernardo Dominic UNQUALIFIED
Nicolas R ShinkoBrazilOnyama Limba RENEWAL
Octavia Z MacleadIndiaStephen Shaw RENEWAL
Darci X DilliardJapanAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Isabel X SlusarskiCanadaOnyama Limba NEGOTIATION
Emily Y KolmetzSpainOnyama Limba NEW
Salvatore J RulapaughAustraliaIoni Bowcher NEGOTIATION
Isabel F ShinkoIndiaElwin Sharvill PROPOSAL
Faith Y StensethItalyAnna Fali PROPOSAL
Juan I VocelkaSpainIvan Magalhaes UNQUALIFIED
Silvio G MacleadUnited KingdomElwin Sharvill NEGOTIATION
Octavia P AlbaresFranceXuxue Feng UNQUALIFIED
Jennifer D MaletGermanyAnna Fali NEGOTIATION
Aruna X PerinJapanAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja P StockhamArgentina2024-04-11Truhlar And Truhlar Attys UNQUALIFIED95Asiya Javayant
1001Johnson W SergiBrazil2024-04-02Buckley Miller Wright PROPOSAL29Stephen Shaw
1002Aruna R NestleUnited Kingdom2024-04-05Chanay, Jeffrey A Esq NEGOTIATION3Anna Fali
1003Greenwood K AlbaresRussia2024-04-20Chanay, Jeffrey A Esq NEW58Onyama Limba
1004Stacey U OldroydSpain2024-04-23Rangoni Of Florence RENEWAL42Amy Elsner
1005Arvin A MorascaBrazil2024-04-13Truhlar And Truhlar Attys NEGOTIATION24Stephen Shaw
1006Isabel I FlosiArgentina2024-04-09Feltz Printing Service NEW47Onyama Limba
1007Clifford S OldroydAustralia2024-03-30Chanay, Jeffrey A Esq QUALIFIED16Amy Elsner
1008James Z WieserUnited Kingdom2024-04-26Rousseaux, Michael Esq PROPOSAL57Elwin Sharvill
1009Jones X FigeroaBrazil2024-04-24Buckley Miller Wright QUALIFIED1Anna Fali
1010Emily W SchemmerArgentina2024-04-20Benton, John B Jr NEW40Anna Fali
1011Aika T DoeJapan2024-04-23King, Christopher A Esq RENEWAL0Elwin Sharvill
1012Smith P StockhamBrazil2024-04-11Morlong Associates PROPOSAL46Anna Fali
1013David D BologniaBrazil2024-04-03Commercial Press RENEWAL38Anna Fali
1014David X TollnerJapan2024-04-17Chanay, Jeffrey A Esq RENEWAL17Elwin Sharvill
1015Aditya J FlosiJapan2024-04-23Truhlar And Truhlar Attys PROPOSAL97Stephen Shaw
1016Ashley C StockhamRussia2024-04-26Rousseaux, Michael Esq UNQUALIFIED3Amy Elsner
1017Jennifer F OldroydItaly2024-04-09Rousseaux, Michael Esq QUALIFIED30Ivan Magalhaes
1018Misaki T CaudyAustralia2024-04-03Printing Dimensions PROPOSAL48Elwin Sharvill
1019Darci W GauchoBrazil2024-03-31Commercial Press UNQUALIFIED4Elwin Sharvill
1020Kaitlin Z StensethArgentina2024-04-23Rangoni Of Florence QUALIFIED59Amy Elsner
1021Jennifer F OldroydGermany2024-04-22Chemel, James L Cpa RENEWAL38Stephen Shaw
1022Rodrigues U MaletJapan2024-04-06Feiner Bros PROPOSAL82Bernardo Dominic
1023Nicolas T RulapaughItaly2024-04-20Feiner Bros PROPOSAL43Ioni Bowcher
1024Cody Q MaletCanada2024-04-17Morlong Associates UNQUALIFIED32Bernardo Dominic
1025Aika W FigeroaFrance2024-04-02Chapman, Ross E Esq NEGOTIATION82Onyama Limba
1026Mayumi G ChuiBrazil2024-04-19Printing Dimensions NEGOTIATION78Stephen Shaw
1027Ashley L BologniaFrance2024-04-05Chemel, James L Cpa NEW80Elwin Sharvill
1028Maisha J SchemmerArgentina2024-04-09Benton, John B Jr QUALIFIED6Amy Elsner
1029Mayumi O FigeroaJapan2024-04-18Buckley Miller Wright RENEWAL87Ioni Bowcher
1030Deepesh Q GillianSpain2024-04-14Printing Dimensions UNQUALIFIED7Xuxue Feng
1031Darci H PoquetteBrazil2024-03-31Buckley Miller Wright RENEWAL7Anna Fali
1032Tony U BriddickFrance2024-04-20Chapman, Ross E Esq NEGOTIATION24Bernardo Dominic
1033Misaki F SlusarskiGermany2024-04-19Commercial Press UNQUALIFIED20Xuxue Feng
1034Ivar X PaprockiBrazil2024-04-23Chemel, James L Cpa UNQUALIFIED62Anna Fali
1035Aditya Q StensethBrazil2024-04-20Chanay, Jeffrey A Esq RENEWAL33Amy Elsner
1036Wickens Y MorascaBrazil2024-03-31Buckley Miller Wright UNQUALIFIED62Bernardo Dominic
1037Octavia J OldroydUnited Kingdom2024-04-08Chemel, James L Cpa UNQUALIFIED76Amy Elsner
1038Maria C AlbaresArgentina2024-03-30Chapman, Ross E Esq QUALIFIED71Stephen Shaw
1039Julie X CaldareraSpain2024-04-11Chemel, James L Cpa NEGOTIATION22Onyama Limba
1040Smith D GauchoBrazil2024-04-11Buckley Miller Wright QUALIFIED17Asiya Javayant
1041Jennifer M NickaSpain2024-03-28King, Christopher A Esq QUALIFIED14Bernardo Dominic
1042Octavia D FlosiRussia2024-04-24Feltz Printing Service NEW10Ioni Bowcher
1043Munro N RutaRussia2024-03-28Benton, John B Jr RENEWAL24Ivan Magalhaes
1044Aika H StockhamBrazil2024-04-26Benton, John B Jr RENEWAL69Xuxue Feng
1045Aika X FlosiArgentina2024-04-26Benton, John B Jr RENEWAL73Ioni Bowcher
1046Tony B AlbaresItaly2024-04-08Dorl, James J Esq NEW52Stephen Shaw
1047Salvatore T NickaIndia2024-03-28Printing Dimensions PROPOSAL27Ivan Magalhaes
1048Clifford V DarakjyRussia2024-04-09Chapman, Ross E Esq NEW94Onyama Limba
1049Claire Q InouyeSpain2024-04-04Benton, John B Jr RENEWAL82Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro V RutaSpainAmy Elsner PROPOSAL
Murillo S ShinkoItalyAmy Elsner RENEWAL
Johnson Z KolmetzFranceStephen Shaw NEGOTIATION
Stacey Y AlbaresAustraliaIoni Bowcher RENEWAL
Francesco J CaudyFranceAmy Elsner QUALIFIED
Clifford K ShinkoArgentinaOnyama Limba UNQUALIFIED
Izzy N FerenczArgentinaStephen Shaw RENEWAL
Juan B GauchoCanadaAmy Elsner NEGOTIATION
Aruna M DilliardSpainXuxue Feng QUALIFIED
Jefferson X SergiCanadaElwin Sharvill PROPOSAL
Morrow S PerinGermanyAsiya Javayant NEW
Jones S RoysterCanadaBernardo Dominic QUALIFIED
Morrow J BologniaJapanStephen Shaw UNQUALIFIED
Emily W GauchoFranceIoni Bowcher QUALIFIED
David L FlosiUnited KingdomAsiya Javayant NEW
Leon B OldroydBrazilXuxue Feng QUALIFIED
Chavez G GillianRussiaStephen Shaw NEGOTIATION
Tony Z PerinGermanyIoni Bowcher QUALIFIED
Octavia U CampainBrazilElwin Sharvill UNQUALIFIED
Aika B ButtSpainBernardo Dominic NEW
Salvatore O MaletJapanIvan Magalhaes UNQUALIFIED
Maisha S GarufiIndiaAmy Elsner QUALIFIED
Jefferson X FlosiItalyXuxue Feng NEW
Izzy N BologniaAustraliaBernardo Dominic NEGOTIATION
Francesco G GlickGermanyAmy Elsner PROPOSAL
Smith O WhobreyFranceOnyama Limba UNQUALIFIED
Juan A KolmetzCanadaOnyama Limba UNQUALIFIED
Claire Z CaudyAustraliaAmy Elsner UNQUALIFIED
Smith L AlbaresGermanyAnna Fali NEGOTIATION
Maria T KolmetzJapanStephen Shaw PROPOSAL
Nicolas Q CaudyAustraliaIoni Bowcher NEGOTIATION
Cody N FerenczCanadaIvan Magalhaes NEW
Johnson J PaprockiFranceAmy Elsner PROPOSAL
Ricardo P SlusarskiCanadaIoni Bowcher QUALIFIED
Aika C GarufiBrazilOnyama Limba QUALIFIED
Octavia U MacleadJapanAnna Fali NEGOTIATION
James H OstroskyRussiaStephen Shaw NEGOTIATION
Ivar T PaprockiBrazilIoni Bowcher QUALIFIED
Jennifer T InouyeGermanyXuxue Feng NEGOTIATION
Aruna V PerinJapanAsiya Javayant RENEWAL
Tony E SlusarskiBrazilIvan Magalhaes PROPOSAL
Emily Q SergiCanadaElwin Sharvill PROPOSAL
Aditya A RulapaughFranceAmy Elsner PROPOSAL
Deepesh Q VenereItalyIvan Magalhaes RENEWAL
Silvio B DilliardAustraliaAmy Elsner PROPOSAL
Jeanfrancois J GarufiSpainElwin Sharvill NEGOTIATION
Maria P MaletArgentinaAnna Fali QUALIFIED
Leja I KolmetzArgentinaStephen Shaw RENEWAL
Antonio X MacleadRussiaOnyama Limba NEW
Claire U FerenczJapanXuxue Feng PROPOSAL
Frozen Columns
Name
Leon F Marrier
James I Slusarski
Maisha E Bolognia
James E Doe
Maria P Briddick
Adams E Whobrey
David O Sergi
Julie I Caudy
Munro Z Perin
Ricardo I Sergi
Ashley K Wieser
Ivar E Venere
Morrow C Shinko
Isabel P Ferencz
Kadeem X Tollner
Leja C Ruta
Chavez H Amigon
Morrow M Darakjy
Chavez I Maclead
Johnson I Ferencz
James T Venere
Stacey U Chui
Mayumi H Sergi
Clifford B Sergi
Aika E Malet
Alejandro W Dilliard
Maria U Schemmer
Tony V Wieser
Jefferson B Ruta
Misaki O Gaucho
Aika R Caldarera
Salvatore X Whobrey
Smith K Caldarera
Silvio D Dilliard
Nicolas O Marrier
Emily R Darakjy
Ashley S Flosi
Juan N Nicka
Arvin K Poquette
Darci Q Garufi
Juan D Caldarera
Clifford G Vocelka
Costa H Kolmetz
Maisha I Maclead
Alejandro O Ruta
Alejandro B Venere
Kadeem C Garufi
Stacey L Royster
Salvatore P Nicka
Isabel S Malet
IdCountryDate
1000Argentina2024-04-10
1001Russia2024-04-05
1002Brazil2024-04-23
1003Australia2024-04-20
1004Argentina2024-04-04
1005Argentina2024-04-04
1006Canada2024-04-25
1007France2024-04-01
1008Italy2024-03-29
1009United Kingdom2024-04-06
1010Germany2024-04-19
1011Canada2024-03-31
1012Italy2024-04-10
1013Russia2024-03-28
1014Argentina2024-03-31
1015Argentina2024-04-20
1016Russia2024-04-17
1017France2024-04-09
1018France2024-04-06
1019France2024-04-06
1020Australia2024-04-09
1021Australia2024-04-14
1022France2024-04-23
1023Australia2024-04-09
1024Italy2024-04-24
1025United Kingdom2024-04-02
1026Japan2024-04-18
1027Italy2024-04-26
1028United Kingdom2024-04-08
1029Argentina2024-04-04
1030India2024-04-12
1031Argentina2024-04-07
1032France2024-04-07
1033Brazil2024-04-23
1034Spain2024-04-07
1035Japan2024-04-23
1036United Kingdom2024-04-15
1037Argentina2024-04-11
1038Russia2024-04-21
1039Germany2024-04-13
1040India2024-04-20
1041Argentina2024-04-11
1042Spain2024-04-25
1043Australia2024-03-30
1044Germany2024-04-13
1045Spain2024-03-29
1046Germany2024-04-10
1047Argentina2024-04-16
1048Australia2024-04-04
1049India2024-04-24

On-Demand Data

NameIdCountryDate
Maria K Kolmetz1000France2024-04-19
Tony W Wieser1001Australia2024-04-17
Jones D Poquette1002United Kingdom2024-04-15
Aika X Butt1003Spain2024-04-01
Jennifer B Caldarera1004Russia2024-04-12
Murillo R Chui1005Italy2024-04-11
Alejandro I Darakjy1006Japan2024-04-01
Alejandro O Malet1007Japan2024-04-07
Rodrigues U Campain1008India2024-04-09
Murillo M Gillian1009France2024-03-30
Francesco I Malet1010India2024-04-25
Johnson T Darakjy1011India2024-03-31
Emily J Slusarski1012Germany2024-04-13
Adams F Malet1013United Kingdom2024-03-30
Nicolas V Shinko1014Japan2024-03-29
Tony E Flosi1015India2024-04-23
Deepesh M Figeroa1016Spain2024-04-09
Leon J Iturbide1017Spain2024-04-10
Ashley Q Oldroyd1018Russia2024-03-28
Chavez A Briddick1019France2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki V OstroskyCanadaAnna Fali NEW
Morrow Y SlusarskiSpainIoni Bowcher PROPOSAL
Greenwood J BologniaBrazilElwin Sharvill NEW
Kadeem H AlbaresArgentinaOnyama Limba NEW
Wickens A VocelkaUnited KingdomIoni Bowcher NEGOTIATION
Octavia K SlusarskiGermanyIoni Bowcher NEGOTIATION
Chavez S SaylorsBrazilAsiya Javayant QUALIFIED
Faith B InouyeUnited KingdomIoni Bowcher RENEWAL
Faith O DoeGermanyXuxue Feng UNQUALIFIED
Smith L PaprockiSpainBernardo Dominic NEW
Claire I BologniaRussiaElwin Sharvill NEGOTIATION
Salvatore M ButtItalyElwin Sharvill UNQUALIFIED
Maria H ShinkoJapanAnna Fali UNQUALIFIED
Chavez T DoeIndiaElwin Sharvill UNQUALIFIED
David U SaylorsRussiaBernardo Dominic RENEWAL
Sinclair C IturbideRussiaAmy Elsner RENEWAL
Jones D StockhamArgentinaXuxue Feng QUALIFIED
Smith M NestleFranceOnyama Limba PROPOSAL
Julie W BologniaFranceAsiya Javayant QUALIFIED
Julie C MacleadCanadaXuxue Feng NEGOTIATION
Izzy Z PoquetteFranceIoni Bowcher NEW
Mayumi B BowleySpainAsiya Javayant RENEWAL
Misaki J GarufiCanadaAnna Fali QUALIFIED
Ricardo R PoquetteFranceXuxue Feng UNQUALIFIED
Ricardo O BriddickUnited KingdomAsiya Javayant NEGOTIATION
Munro I MarrierBrazilOnyama Limba QUALIFIED
Ricardo N SchemmerRussiaBernardo Dominic NEGOTIATION
Ricardo D TollnerItalyOnyama Limba PROPOSAL
Faith J PaprockiCanadaBernardo Dominic NEW
Mayumi H IturbideRussiaAnna Fali UNQUALIFIED
Morrow S PoquetteBrazilAnna Fali UNQUALIFIED
Chavez H CampainFranceOnyama Limba QUALIFIED
Smith N GillianJapanAnna Fali NEGOTIATION
Antonio L AlbaresIndiaAmy Elsner PROPOSAL
Munro Q WhobreyBrazilAsiya Javayant PROPOSAL
Sinclair T MarrierJapanAmy Elsner RENEWAL
Kaitlin W MaletGermanyXuxue Feng NEW
Izzy R SaylorsGermanyBernardo Dominic NEW
Murillo C MorascaGermanyAmy Elsner QUALIFIED
Greenwood X KuskoGermanyStephen Shaw PROPOSAL

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