Locale

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

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

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

Vertical
NameCountryRepresentativeStatus
Aditya K PerinItalyStephen Shaw UNQUALIFIED
Antonio I MacleadArgentinaAsiya Javayant NEGOTIATION
Sinclair M InouyeCanadaAsiya Javayant NEGOTIATION
Rodrigues X FollerCanadaIvan Magalhaes NEW
Adams Z CampainSpainIoni Bowcher UNQUALIFIED
Leon A VenereArgentinaXuxue Feng QUALIFIED
Costa H SaylorsRussiaXuxue Feng UNQUALIFIED
Aruna K BologniaUnited KingdomXuxue Feng NEW
Ricardo L ButtBrazilIoni Bowcher NEW
Kaitlin Z RimBrazilAnna Fali QUALIFIED
Ashley G MaletFranceStephen Shaw UNQUALIFIED
Salvatore V MaletCanadaIvan Magalhaes UNQUALIFIED
Octavia B AmigonSpainAnna Fali PROPOSAL
Jefferson B GauchoItalyAsiya Javayant RENEWAL
Kadeem M DoeArgentinaStephen Shaw NEGOTIATION
Jones W SaylorsFranceElwin Sharvill NEW
Chavez R WieserFranceAnna Fali QUALIFIED
Isabel E DarakjySpainAnna Fali UNQUALIFIED
Wickens T PerinSpainIvan Magalhaes UNQUALIFIED
Jefferson V ShinkoItalyOnyama Limba QUALIFIED
Sinclair S TollnerBrazilIvan Magalhaes RENEWAL
Faith L DoeUnited KingdomXuxue Feng UNQUALIFIED
Salvatore F MarrierFranceXuxue Feng QUALIFIED
Murillo I GauchoIndiaElwin Sharvill QUALIFIED
Aika R VocelkaJapanOnyama Limba NEW
Emily I SergiJapanAmy Elsner NEW
Salvatore Q StockhamRussiaOnyama Limba PROPOSAL
Nicolas I PerinIndiaIoni Bowcher QUALIFIED
Francesco E SaylorsArgentinaAsiya Javayant NEGOTIATION
Wickens B FollerRussiaOnyama Limba QUALIFIED
Greenwood E PoquetteIndiaStephen Shaw PROPOSAL
David B DilliardAustraliaOnyama Limba QUALIFIED
Antonio A VocelkaAustraliaAnna Fali NEW
Rodrigues Q MarrierJapanIvan Magalhaes UNQUALIFIED
Julie K NickaUnited KingdomOnyama Limba NEW
Arvin I RutaSpainXuxue Feng UNQUALIFIED
Maria D FigeroaUnited KingdomStephen Shaw QUALIFIED
Claire K CampainUnited KingdomStephen Shaw NEW
Chavez S BriddickCanadaXuxue Feng QUALIFIED
Octavia R FigeroaRussiaAsiya Javayant NEGOTIATION
Kadeem Q StockhamSpainIvan Magalhaes UNQUALIFIED
Wickens L GillianArgentinaBernardo Dominic RENEWAL
Kaitlin D NickaRussiaIoni Bowcher QUALIFIED
Munro G BowleyArgentinaStephen Shaw QUALIFIED
Deepesh N AlbaresUnited KingdomBernardo Dominic QUALIFIED
Octavia C NickaUnited KingdomStephen Shaw NEGOTIATION
Chavez B DoeItalyElwin Sharvill RENEWAL
Antonio L RulapaughCanadaXuxue Feng UNQUALIFIED
Leja E DoeItalyStephen Shaw UNQUALIFIED
Arvin R RimCanadaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois A BriddickJapanXuxue Feng NEW
Isabel P CampainSpainAmy Elsner QUALIFIED
Izzy U BologniaSpainStephen Shaw NEW
Claire Q NickaUnited KingdomAsiya Javayant NEW
Octavia Y ButtRussiaIvan Magalhaes NEW
Izzy J KolmetzFranceOnyama Limba NEGOTIATION
Chavez M FollerJapanElwin Sharvill UNQUALIFIED
Faith W ShinkoFranceAmy Elsner PROPOSAL
Octavia R FigeroaGermanyStephen Shaw RENEWAL
Deepesh C MaletFranceIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois F PerinRussia2026-07-01Morlong Associates PROPOSAL14Ioni Bowcher
1001Ivar P StockhamAustralia2026-07-18Dorl, James J Esq PROPOSAL71Ivan Magalhaes
1002Maria Z BologniaCanada2026-06-26King, Christopher A Esq NEW12Bernardo Dominic
1003Tony Z ShinkoCanada2026-07-08Feltz Printing Service NEGOTIATION74Xuxue Feng
1004Jones F RoysterRussia2026-06-30King, Christopher A Esq UNQUALIFIED89Ioni Bowcher
1005Mayumi S CaldareraFrance2026-07-14Buckley Miller Wright RENEWAL76Elwin Sharvill
1006Adams Q DoeGermany2026-07-18Chemel, James L Cpa QUALIFIED91Onyama Limba
1007Ivar U DilliardArgentina2026-06-24Truhlar And Truhlar Attys RENEWAL29Anna Fali
1008Chavez O RimBrazil2026-07-19Dorl, James J Esq NEW18Onyama Limba
1009Faith V RulapaughCanada2026-06-28Truhlar And Truhlar Attys QUALIFIED97Amy Elsner
1010Misaki P BriddickArgentina2026-07-07Truhlar And Truhlar Attys UNQUALIFIED75Ivan Magalhaes
1011Adams P OstroskyFrance2026-07-18Printing Dimensions NEGOTIATION32Asiya Javayant
1012Stacey W StensethGermany2026-06-30Commercial Press QUALIFIED74Elwin Sharvill
1013David I AlbaresCanada2026-06-24Chemel, James L Cpa PROPOSAL56Xuxue Feng
1014Ricardo G VocelkaFrance2026-07-06Feltz Printing Service NEGOTIATION22Ivan Magalhaes
1015Ashley I PerinGermany2026-06-24Truhlar And Truhlar Attys NEW42Ivan Magalhaes
1016Maisha Q RimRussia2026-07-01Rousseaux, Michael Esq PROPOSAL80Elwin Sharvill
1017Claire O ChuiCanada2026-06-30Dorl, James J Esq PROPOSAL64Anna Fali
1018Juan E BowleyBrazil2026-06-28Chapman, Ross E Esq PROPOSAL99Elwin Sharvill
1019Darci H AmigonCanada2026-07-03Rousseaux, Michael Esq NEGOTIATION67Ioni Bowcher
1020David K MaletIndia2026-06-22Chapman, Ross E Esq PROPOSAL58Ivan Magalhaes
1021Murillo I BowleyArgentina2026-07-02Truhlar And Truhlar Attys RENEWAL19Anna Fali
1022Morrow F VocelkaCanada2026-07-05Rousseaux, Michael Esq UNQUALIFIED2Onyama Limba
1023Jefferson S ButtBrazil2026-06-27Chemel, James L Cpa UNQUALIFIED75Bernardo Dominic
1024Rodrigues R SlusarskiItaly2026-07-01Rangoni Of Florence RENEWAL32Stephen Shaw
1025Deepesh H RulapaughGermany2026-07-15Truhlar And Truhlar Attys QUALIFIED85Ioni Bowcher
1026Adams L OstroskyUnited Kingdom2026-06-28Rangoni Of Florence RENEWAL59Bernardo Dominic
1027Tony A SchemmerUnited Kingdom2026-07-06Truhlar And Truhlar Attys NEW96Stephen Shaw
1028Rodrigues D DoeIndia2026-06-21Rousseaux, Michael Esq NEGOTIATION33Asiya Javayant
1029Jeanfrancois Y DilliardCanada2026-07-06Chemel, James L Cpa QUALIFIED9Stephen Shaw
1030Faith F RimGermany2026-07-02Morlong Associates RENEWAL98Elwin Sharvill
1031Aditya J CaudyBrazil2026-06-30Feiner Bros RENEWAL37Ivan Magalhaes
1032Alejandro Q PoquetteUnited Kingdom2026-07-10Rangoni Of Florence NEW2Anna Fali
1033James O WhobreyFrance2026-07-04King, Christopher A Esq UNQUALIFIED24Stephen Shaw
1034Darci L GillianSpain2026-06-25Morlong Associates PROPOSAL9Ivan Magalhaes
1035Maria K AmigonFrance2026-06-30Chanay, Jeffrey A Esq NEGOTIATION32Amy Elsner
1036Aditya O SergiAustralia2026-07-08Feltz Printing Service RENEWAL15Asiya Javayant
1037Darci A StensethArgentina2026-06-25Truhlar And Truhlar Attys NEGOTIATION83Bernardo Dominic
1038Johnson M FigeroaIndia2026-07-12Chemel, James L Cpa NEW29Xuxue Feng
1039Ivar D FlosiIndia2026-07-19Printing Dimensions RENEWAL26Onyama Limba
1040Ashley X MaletJapan2026-06-27Rangoni Of Florence UNQUALIFIED95Anna Fali
1041Adams S SergiUnited Kingdom2026-07-17Commercial Press UNQUALIFIED79Onyama Limba
1042Murillo I AlbaresFrance2026-07-18Feltz Printing Service NEGOTIATION44Anna Fali
1043Munro P InouyeBrazil2026-07-10Rousseaux, Michael Esq UNQUALIFIED0Stephen Shaw
1044Maria V KuskoUnited Kingdom2026-07-12Benton, John B Jr PROPOSAL46Ivan Magalhaes
1045Jones Z CaudyItaly2026-07-19Commercial Press UNQUALIFIED52Ivan Magalhaes
1046Izzy Z OldroydJapan2026-07-11Chapman, Ross E Esq QUALIFIED2Stephen Shaw
1047Leon G SaylorsCanada2026-06-27Dorl, James J Esq QUALIFIED86Ivan Magalhaes
1048Leja A GillianIndia2026-07-03Morlong Associates NEW72Stephen Shaw
1049Aruna C CampainCanada2026-06-30Morlong Associates QUALIFIED69Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Isabel A ChuiFranceAsiya Javayant PROPOSAL
Munro H ShinkoGermanyElwin Sharvill NEGOTIATION
James N FlosiIndiaAnna Fali QUALIFIED
Kaitlin U PerinCanadaAmy Elsner UNQUALIFIED
Kadeem H RulapaughAustraliaIvan Magalhaes RENEWAL
Clifford T SergiAustraliaIoni Bowcher QUALIFIED
Wickens W BologniaIndiaStephen Shaw NEW
Cody B RoysterCanadaAsiya Javayant PROPOSAL
Nicolas B FlosiCanadaAnna Fali QUALIFIED
Wickens T GlickAustraliaAnna Fali NEW
Costa D FerenczAustraliaOnyama Limba PROPOSAL
Ricardo O SaylorsIndiaStephen Shaw UNQUALIFIED
Adams P StockhamRussiaOnyama Limba RENEWAL
James K ChuiSpainStephen Shaw UNQUALIFIED
Alejandro L ChuiItalyIvan Magalhaes QUALIFIED
Aditya B CaudyIndiaAnna Fali PROPOSAL
Sinclair Q GauchoGermanyOnyama Limba NEW
Arvin B SaylorsFranceIoni Bowcher QUALIFIED
Smith E ChuiGermanyIvan Magalhaes NEGOTIATION
Aditya O SaylorsIndiaBernardo Dominic NEW
Arvin L FigeroaAustraliaXuxue Feng RENEWAL
Costa N InouyeSpainOnyama Limba UNQUALIFIED
Antonio I MaletItalyOnyama Limba RENEWAL
Costa L RoysterRussiaIvan Magalhaes QUALIFIED
Maria T GarufiBrazilOnyama Limba NEGOTIATION
Sinclair F FigeroaBrazilAnna Fali NEW
Salvatore R SlusarskiBrazilOnyama Limba QUALIFIED
Jeanfrancois N DarakjyGermanyElwin Sharvill QUALIFIED
Morrow D DilliardBrazilAmy Elsner RENEWAL
Mujtaba V RutaUnited KingdomIvan Magalhaes NEW
Emily B RimCanadaAmy Elsner PROPOSAL
Morrow J RoysterCanadaAsiya Javayant RENEWAL
Ricardo Z PoquetteJapanOnyama Limba PROPOSAL
Johnson Z PoquetteArgentinaOnyama Limba NEGOTIATION
Smith M VocelkaCanadaXuxue Feng NEGOTIATION
Mayumi F CaldareraBrazilAsiya Javayant QUALIFIED
Morrow E KolmetzGermanyAnna Fali NEW
Izzy D GarufiFranceXuxue Feng QUALIFIED
Ricardo T DilliardArgentinaStephen Shaw PROPOSAL
Emily S AlbaresArgentinaBernardo Dominic NEW
Costa K OldroydBrazilAnna Fali QUALIFIED
Faith E NestleAustraliaElwin Sharvill RENEWAL
Sinclair O MaletJapanAmy Elsner NEGOTIATION
Maria H TollnerItalyOnyama Limba QUALIFIED
Ivar R SlusarskiUnited KingdomStephen Shaw NEGOTIATION
Murillo P FigeroaUnited KingdomElwin Sharvill RENEWAL
Maria M InouyeUnited KingdomOnyama Limba RENEWAL
Arvin F MorascaRussiaStephen Shaw RENEWAL
Stacey Y SlusarskiItalyAmy Elsner RENEWAL
Cody M BriddickItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Leja X Ruta
Ashley O Rulapaugh
Tony N Bolognia
Stacey Z Gillian
Murillo D Slusarski
Mayumi E Glick
Ricardo S Shinko
Smith L Paprocki
Deepesh D Rulapaugh
Wickens V Waycott
Jones Y Rulapaugh
Rodrigues G Ruta
Rodrigues V Maclead
Jones U Chui
David A Bolognia
Julie O Gillian
Jefferson C Albares
Julie N Figeroa
James R Caudy
Ricardo T Oldroyd
Salvatore G Garufi
Claire Z Foller
Mayumi R Bolognia
Darci I Vocelka
Aruna U Saylors
Izzy V Malet
Isabel F Ostrosky
Clifford C Butt
Mujtaba J Whobrey
Cody B Amigon
Darci P Gillian
Francesco M Royster
Kadeem P Slusarski
Murillo C Slusarski
Mayumi I Flosi
Greenwood V Whobrey
James B Vocelka
David C Waycott
Ivar A Doe
Greenwood F Foller
Kaitlin Z Nicka
Leja Q Wieser
Aruna Q Nicka
Aika B Dilliard
Wickens R Flosi
Isabel G Ostrosky
Costa V Campain
Octavia G Briddick
Antonio D Tollner
David I Nicka
IdCountryDate
1000Spain2026-06-27
1001Italy2026-07-05
1002Brazil2026-06-24
1003France2026-06-30
1004Japan2026-07-20
1005Germany2026-07-08
1006Japan2026-07-14
1007Canada2026-06-24
1008Brazil2026-07-17
1009United Kingdom2026-06-28
1010Italy2026-06-25
1011France2026-07-14
1012United Kingdom2026-06-29
1013Japan2026-06-26
1014Italy2026-07-02
1015Russia2026-07-18
1016Australia2026-07-04
1017Brazil2026-07-02
1018France2026-07-09
1019Italy2026-07-13
1020Australia2026-07-13
1021Japan2026-06-30
1022Germany2026-07-20
1023Germany2026-07-12
1024United Kingdom2026-06-24
1025France2026-06-28
1026Russia2026-07-11
1027France2026-07-08
1028Brazil2026-07-05
1029Australia2026-07-12
1030Russia2026-07-06
1031Canada2026-06-21
1032Japan2026-07-12
1033Japan2026-07-04
1034India2026-07-08
1035Italy2026-07-06
1036United Kingdom2026-07-04
1037Argentina2026-07-06
1038Spain2026-07-03
1039Canada2026-07-09
1040Germany2026-07-13
1041Brazil2026-06-30
1042Australia2026-07-03
1043Brazil2026-07-17
1044Brazil2026-07-13
1045Japan2026-07-18
1046Russia2026-07-03
1047Russia2026-07-17
1048France2026-06-26
1049Russia2026-07-16

On-Demand Data

NameIdCountryDate
Emily B Ruta1000Spain2026-06-27
Francesco V Nicka1001Brazil2026-07-05
Stacey I Ferencz1002Germany2026-06-22
Jefferson P Malet1003France2026-07-06
Ricardo N Malet1004India2026-06-28
Rodrigues P Flosi1005Japan2026-06-27
Clifford W Wieser1006France2026-07-03
Alejandro B Stenseth1007Russia2026-07-17
Tony K Malet1008Canada2026-07-07
Maisha N Dilliard1009India2026-07-07
Misaki R Tollner1010Italy2026-06-29
Maria T Royster1011Russia2026-07-20
Murillo X Paprocki1012Argentina2026-07-08
Kaitlin N Poquette1013Canada2026-07-07
Aika F Nestle1014Germany2026-07-06
Alejandro S Amigon1015Brazil2026-06-30
Stacey X Foller1016Russia2026-07-10
Ashley E Saylors1017United Kingdom2026-06-29
Costa B Glick1018India2026-07-08
David J Vocelka1019Italy2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily S GlickJapanAnna Fali NEGOTIATION
Aika B MaletCanadaIoni Bowcher PROPOSAL
Morrow O RimUnited KingdomOnyama Limba NEW
Sinclair N GarufiSpainIvan Magalhaes RENEWAL
Alejandro S SergiCanadaStephen Shaw QUALIFIED
Chavez Y MarrierIndiaAnna Fali RENEWAL
Jeanfrancois V AmigonCanadaBernardo Dominic PROPOSAL
Morrow G SergiItalyStephen Shaw RENEWAL
Chavez V OldroydJapanAmy Elsner QUALIFIED
Aruna R ShinkoAustraliaBernardo Dominic PROPOSAL
Maisha M MaletCanadaAsiya Javayant RENEWAL
Isabel Y DoeArgentinaAsiya Javayant QUALIFIED
Jeanfrancois F StensethArgentinaAnna Fali UNQUALIFIED
Chavez T ChuiFranceIoni Bowcher NEGOTIATION
Alejandro Z NestleSpainElwin Sharvill NEGOTIATION
Stacey G CampainCanadaBernardo Dominic UNQUALIFIED
Maria Y TollnerCanadaAmy Elsner NEGOTIATION
Mujtaba Y GlickArgentinaAmy Elsner UNQUALIFIED
Chavez J GauchoBrazilXuxue Feng NEW
Jones G ButtAustraliaElwin Sharvill NEW
Francesco G OldroydAustraliaIvan Magalhaes NEGOTIATION
Julie U OldroydAustraliaAsiya Javayant PROPOSAL
Costa E MaletAustraliaAsiya Javayant NEW
Wickens K CampainIndiaIvan Magalhaes UNQUALIFIED
Clifford Y GlickAustraliaIoni Bowcher QUALIFIED
Kadeem X GauchoItalyIoni Bowcher UNQUALIFIED
Ivar D BowleyGermanyIoni Bowcher UNQUALIFIED
James L GillianItalyAsiya Javayant NEGOTIATION
Mayumi H CaudyItalyStephen Shaw NEW
Isabel I PaprockiGermanyElwin Sharvill RENEWAL
Leja L GillianCanadaOnyama Limba NEW
Julie H SergiUnited KingdomAsiya Javayant NEGOTIATION
Clifford Y FollerArgentinaAmy Elsner NEW
Ivar G AmigonIndiaAnna Fali PROPOSAL
Kadeem R GlickFranceOnyama Limba PROPOSAL
Alejandro U MarrierItalyBernardo Dominic QUALIFIED
David L StockhamGermanyStephen Shaw RENEWAL
Julie R GarufiBrazilBernardo Dominic PROPOSAL
Costa F RulapaughAustraliaXuxue Feng UNQUALIFIED
Aruna C MaletBrazilAmy Elsner 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>