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
Mujtaba W GlickCanadaIvan Magalhaes UNQUALIFIED
Nicolas V BowleyUnited KingdomAnna Fali NEW
Misaki R GillianItalyIoni Bowcher UNQUALIFIED
Claire V RimUnited KingdomBernardo Dominic NEGOTIATION
Ivar N DilliardCanadaIvan Magalhaes UNQUALIFIED
James Q FlosiUnited KingdomBernardo Dominic NEGOTIATION
Francesco R WaycottFranceIvan Magalhaes RENEWAL
Costa G OstroskyBrazilIoni Bowcher PROPOSAL
Alejandro R NickaBrazilAnna Fali RENEWAL
Ivar E VenereRussiaOnyama Limba NEGOTIATION
Kaitlin T BowleyRussiaAsiya Javayant UNQUALIFIED
Rodrigues W DarakjyItalyOnyama Limba PROPOSAL
Leon G WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Octavia D SergiBrazilIoni Bowcher QUALIFIED
Clifford A DarakjyItalyIvan Magalhaes UNQUALIFIED
Mayumi D WaycottRussiaIvan Magalhaes RENEWAL
James Z CampainCanadaAnna Fali NEGOTIATION
Murillo B DarakjyArgentinaStephen Shaw NEGOTIATION
Munro N TollnerJapanBernardo Dominic PROPOSAL
Rodrigues E CaldareraJapanAsiya Javayant NEGOTIATION
Costa J MacleadSpainAmy Elsner NEW
Octavia P BowleyAustraliaAsiya Javayant NEW
Jeanfrancois H FlosiCanadaXuxue Feng PROPOSAL
Darci B DoeItalyElwin Sharvill PROPOSAL
Faith T DoeFranceAmy Elsner PROPOSAL
Jefferson Y TollnerUnited KingdomElwin Sharvill RENEWAL
Clifford T GarufiFranceElwin Sharvill NEGOTIATION
Kadeem I PaprockiCanadaIoni Bowcher RENEWAL
Salvatore C WieserItalyAsiya Javayant UNQUALIFIED
Jennifer A FlosiJapanAsiya Javayant RENEWAL
Tony S VenereSpainStephen Shaw NEGOTIATION
Sinclair O DilliardCanadaXuxue Feng UNQUALIFIED
Leon V MorascaCanadaBernardo Dominic PROPOSAL
Antonio U BowleyGermanyAsiya Javayant UNQUALIFIED
Rodrigues Z GauchoSpainBernardo Dominic NEGOTIATION
Rodrigues M StockhamFranceIvan Magalhaes PROPOSAL
Nicolas B CampainRussiaIoni Bowcher UNQUALIFIED
Murillo T CaldareraGermanyAmy Elsner NEW
Izzy D BowleyAustraliaXuxue Feng NEGOTIATION
Jones Z AlbaresAustraliaElwin Sharvill NEGOTIATION
Francesco O SergiGermanyAmy Elsner PROPOSAL
Wickens D FigeroaIndiaAsiya Javayant UNQUALIFIED
Faith W StensethItalyOnyama Limba RENEWAL
Cody Q DilliardRussiaOnyama Limba UNQUALIFIED
Octavia L GlickArgentinaOnyama Limba NEGOTIATION
Leja T WhobreyFranceAnna Fali RENEWAL
James F GauchoRussiaAnna Fali RENEWAL
Aruna T FollerArgentinaAnna Fali NEGOTIATION
Sinclair N InouyeCanadaElwin Sharvill NEGOTIATION
Stacey D OldroydJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin C WaycottRussiaAmy Elsner QUALIFIED
James E PaprockiFranceAmy Elsner UNQUALIFIED
Mayumi Y SlusarskiJapanIoni Bowcher NEW
Maisha U DilliardJapanIoni Bowcher NEGOTIATION
Misaki U NickaSpainAnna Fali RENEWAL
Morrow O OstroskyArgentinaElwin Sharvill PROPOSAL
Costa Q CaudyItalyIoni Bowcher NEGOTIATION
Maisha Z GarufiUnited KingdomAmy Elsner PROPOSAL
Murillo P InouyeSpainAmy Elsner RENEWAL
Juan D MaletIndiaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David F ShinkoItaly2025-06-03Rousseaux, Michael Esq QUALIFIED93Onyama Limba
1001Ashley B GauchoFrance2025-05-22Truhlar And Truhlar Attys PROPOSAL95Ivan Magalhaes
1002Arvin V FlosiAustralia2025-05-18Chapman, Ross E Esq QUALIFIED69Ioni Bowcher
1003Maisha O OldroydRussia2025-05-19Printing Dimensions PROPOSAL2Ioni Bowcher
1004Maria W NestleAustralia2025-06-11Feltz Printing Service UNQUALIFIED59Xuxue Feng
1005Morrow H OldroydBrazil2025-05-23Chapman, Ross E Esq UNQUALIFIED96Onyama Limba
1006Isabel A IturbideBrazil2025-05-22Rangoni Of Florence NEGOTIATION60Amy Elsner
1007Kaitlin A NestleCanada2025-05-25Truhlar And Truhlar Attys UNQUALIFIED33Ivan Magalhaes
1008Silvio F PerinArgentina2025-06-05Morlong Associates QUALIFIED57Anna Fali
1009Claire I SlusarskiFrance2025-06-05Benton, John B Jr NEGOTIATION83Elwin Sharvill
1010Salvatore R BologniaSpain2025-05-21King, Christopher A Esq PROPOSAL94Asiya Javayant
1011Chavez H ButtCanada2025-05-20Chanay, Jeffrey A Esq QUALIFIED65Ivan Magalhaes
1012Kadeem T MarrierCanada2025-06-12Morlong Associates QUALIFIED74Onyama Limba
1013Rodrigues F GarufiJapan2025-06-08King, Christopher A Esq NEGOTIATION75Onyama Limba
1014Maria V SaylorsArgentina2025-06-11Truhlar And Truhlar Attys NEW72Anna Fali
1015Stacey T DilliardUnited Kingdom2025-06-10Commercial Press PROPOSAL19Elwin Sharvill
1016Munro B GlickGermany2025-06-06Feiner Bros PROPOSAL64Ioni Bowcher
1017Emily V OstroskyAustralia2025-06-05Rousseaux, Michael Esq QUALIFIED47Ivan Magalhaes
1018Kaitlin C StockhamCanada2025-06-13Rousseaux, Michael Esq UNQUALIFIED23Ioni Bowcher
1019Alejandro L IturbideIndia2025-06-14Printing Dimensions RENEWAL40Onyama Limba
1020Munro D AmigonItaly2025-06-08Printing Dimensions UNQUALIFIED10Amy Elsner
1021Tony P CaldareraRussia2025-05-21Commercial Press RENEWAL71Asiya Javayant
1022Alejandro C VocelkaSpain2025-06-13Printing Dimensions UNQUALIFIED3Xuxue Feng
1023Kaitlin B StockhamUnited Kingdom2025-06-10Commercial Press QUALIFIED3Asiya Javayant
1024Deepesh V NestleBrazil2025-06-08Commercial Press QUALIFIED43Xuxue Feng
1025Alejandro N KolmetzArgentina2025-05-29Truhlar And Truhlar Attys PROPOSAL31Asiya Javayant
1026Kaitlin R AlbaresIndia2025-05-30Chapman, Ross E Esq NEW22Elwin Sharvill
1027Darci R DoeIndia2025-05-21Dorl, James J Esq NEW4Ioni Bowcher
1028Aruna S StockhamFrance2025-06-08Chemel, James L Cpa RENEWAL45Xuxue Feng
1029Wickens P VenereAustralia2025-06-11Feltz Printing Service PROPOSAL7Elwin Sharvill
1030Izzy E CaudyCanada2025-06-13Morlong Associates NEW27Ivan Magalhaes
1031Ivar B PoquetteArgentina2025-05-29Feltz Printing Service NEGOTIATION95Ivan Magalhaes
1032Aika Q VenereArgentina2025-06-13Rousseaux, Michael Esq PROPOSAL0Stephen Shaw
1033Claire J MacleadGermany2025-06-12Benton, John B Jr NEGOTIATION2Onyama Limba
1034Wickens H StockhamArgentina2025-06-13Buckley Miller Wright UNQUALIFIED56Stephen Shaw
1035Izzy M SlusarskiJapan2025-06-09Chanay, Jeffrey A Esq UNQUALIFIED85Xuxue Feng
1036Jeanfrancois E BologniaBrazil2025-06-12Truhlar And Truhlar Attys NEGOTIATION80Amy Elsner
1037Darci S PoquetteRussia2025-06-01Feltz Printing Service PROPOSAL90Ivan Magalhaes
1038Nicolas F FollerFrance2025-06-05Chanay, Jeffrey A Esq RENEWAL64Anna Fali
1039Murillo N TollnerArgentina2025-06-12Rangoni Of Florence UNQUALIFIED23Amy Elsner
1040Juan N DarakjyItaly2025-05-20Buckley Miller Wright PROPOSAL73Anna Fali
1041Isabel M BologniaGermany2025-05-26Dorl, James J Esq NEW27Onyama Limba
1042Kadeem T FigeroaSpain2025-05-31Truhlar And Truhlar Attys QUALIFIED63Xuxue Feng
1043Izzy P PoquetteJapan2025-06-10Buckley Miller Wright PROPOSAL33Elwin Sharvill
1044Murillo B WieserJapan2025-06-03Rangoni Of Florence NEW71Stephen Shaw
1045Greenwood P StockhamBrazil2025-05-27Chanay, Jeffrey A Esq UNQUALIFIED57Anna Fali
1046Kadeem K PaprockiBrazil2025-05-26Printing Dimensions RENEWAL47Xuxue Feng
1047Octavia D BologniaArgentina2025-05-29Rangoni Of Florence QUALIFIED95Anna Fali
1048Izzy L PoquetteUnited Kingdom2025-06-12King, Christopher A Esq QUALIFIED80Elwin Sharvill
1049Isabel Z BowleyIndia2025-05-17Buckley Miller Wright NEGOTIATION10Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria O StensethBrazilBernardo Dominic PROPOSAL
Jeanfrancois R GillianRussiaOnyama Limba PROPOSAL
Salvatore R NestleJapanStephen Shaw NEW
Tony B ShinkoSpainAmy Elsner QUALIFIED
Ricardo R RoysterAustraliaAmy Elsner QUALIFIED
Darci F PerinAustraliaXuxue Feng PROPOSAL
Alejandro Q CaudyItalyIoni Bowcher NEGOTIATION
Antonio S SergiFranceXuxue Feng QUALIFIED
Cody O MarrierJapanOnyama Limba PROPOSAL
Jeanfrancois I MaletItalyStephen Shaw QUALIFIED
Misaki R KuskoGermanyAsiya Javayant RENEWAL
Darci I VocelkaSpainStephen Shaw QUALIFIED
Faith W ButtJapanElwin Sharvill NEW
Francesco P FerenczSpainXuxue Feng RENEWAL
Silvio H FlosiBrazilOnyama Limba UNQUALIFIED
Julie T FerenczAustraliaAsiya Javayant RENEWAL
Kaitlin E WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Ashley X FerenczJapanIvan Magalhaes NEW
Cody V DoeCanadaAnna Fali PROPOSAL
Silvio G ButtItalyAnna Fali NEGOTIATION
Leon Q StockhamFranceAmy Elsner NEW
Mayumi N FlosiCanadaAmy Elsner NEW
Clifford K RutaCanadaStephen Shaw QUALIFIED
Octavia V AlbaresGermanyAmy Elsner NEGOTIATION
Ricardo O InouyeUnited KingdomAmy Elsner QUALIFIED
Ivar R FigeroaIndiaElwin Sharvill NEW
Greenwood M MacleadFranceAnna Fali NEGOTIATION
Julie Y PaprockiCanadaAsiya Javayant RENEWAL
Mujtaba I CaldareraRussiaBernardo Dominic QUALIFIED
Darci F CaldareraFranceAmy Elsner NEGOTIATION
Greenwood M ChuiBrazilAsiya Javayant RENEWAL
Nicolas A NickaIndiaAmy Elsner NEW
Mayumi U GarufiItalyAsiya Javayant RENEWAL
Emily L StensethGermanyElwin Sharvill QUALIFIED
Nicolas D StensethAustraliaAsiya Javayant RENEWAL
James H ShinkoSpainIoni Bowcher NEGOTIATION
Nicolas M DarakjyAustraliaAmy Elsner RENEWAL
Aika C CaldareraFranceXuxue Feng RENEWAL
Faith E InouyeSpainElwin Sharvill RENEWAL
Ivar D VocelkaSpainIoni Bowcher QUALIFIED
Aika D SaylorsIndiaStephen Shaw QUALIFIED
Deepesh C MorascaJapanBernardo Dominic RENEWAL
Aditya B SlusarskiUnited KingdomStephen Shaw QUALIFIED
Ashley L SaylorsRussiaAsiya Javayant QUALIFIED
Darci H RutaIndiaElwin Sharvill PROPOSAL
Aika Q GlickIndiaElwin Sharvill NEGOTIATION
Stacey L StockhamJapanAsiya Javayant RENEWAL
Silvio N RutaItalyXuxue Feng PROPOSAL
Emily C CaudyRussiaAnna Fali QUALIFIED
Ivar X AmigonCanadaElwin Sharvill QUALIFIED
Frozen Columns
Name
Aditya P Bolognia
Alejandro Z Vocelka
Kadeem H Caudy
David L Inouye
Maria D Schemmer
Leon L Bowley
Claire C Vocelka
Kaitlin G Rulapaugh
Tony G Bolognia
Wickens W Shinko
Sinclair Y Malet
Munro C Marrier
Aditya Y Nicka
Francesco N Garufi
David N Poquette
Kaitlin Z Iturbide
Ricardo M Ostrosky
Ricardo G Figeroa
Aditya V Iturbide
Juan X Iturbide
Jones S Briddick
Greenwood E Kolmetz
Silvio V Kusko
Salvatore P Royster
Darci M Sergi
Misaki O Royster
Emily T Wieser
Leon B Nestle
Johnson A Caldarera
David T Slusarski
Juan E Malet
Stacey T Shinko
Morrow E Garufi
Claire E Ostrosky
Arvin Q Royster
Kaitlin X Rulapaugh
Mujtaba V Nestle
Mujtaba R Kolmetz
Greenwood N Ruta
Clifford S Schemmer
Rodrigues S Oldroyd
Mujtaba W Wieser
Darci Z Bowley
Leja X Wieser
Kaitlin V Inouye
Ivar T Ostrosky
Silvio B Darakjy
Izzy J Butt
Costa G Venere
Antonio L Flosi
IdCountryDate
1000Spain2025-05-17
1001Canada2025-05-20
1002Brazil2025-05-21
1003Russia2025-05-28
1004India2025-06-02
1005Argentina2025-06-09
1006France2025-05-17
1007Germany2025-05-30
1008United Kingdom2025-05-26
1009Japan2025-05-20
1010India2025-05-30
1011Spain2025-05-18
1012France2025-05-19
1013Japan2025-06-06
1014France2025-05-23
1015Germany2025-05-25
1016Spain2025-05-28
1017Brazil2025-05-27
1018Spain2025-05-18
1019Germany2025-06-10
1020Canada2025-05-29
1021Italy2025-06-03
1022Brazil2025-05-18
1023Russia2025-05-20
1024Spain2025-05-31
1025Argentina2025-06-05
1026Argentina2025-06-10
1027United Kingdom2025-06-01
1028Argentina2025-05-23
1029India2025-06-09
1030France2025-06-10
1031Argentina2025-06-12
1032Italy2025-05-24
1033France2025-06-15
1034Germany2025-05-21
1035United Kingdom2025-05-23
1036Argentina2025-05-23
1037United Kingdom2025-05-22
1038Italy2025-05-26
1039Japan2025-06-01
1040Spain2025-06-06
1041India2025-05-28
1042France2025-06-09
1043Germany2025-06-06
1044Spain2025-06-15
1045United Kingdom2025-06-08
1046Japan2025-06-07
1047Russia2025-06-13
1048Germany2025-05-17
1049Australia2025-05-18

On-Demand Data

NameIdCountryDate
Greenwood U Flosi1000Brazil2025-06-02
Nicolas B Caldarera1001Japan2025-05-22
Chavez A Kusko1002Australia2025-06-03
Deepesh Q Ferencz1003United Kingdom2025-05-28
Tony J Wieser1004Spain2025-06-10
Maisha D Bolognia1005Australia2025-05-18
Aditya S Morasca1006Australia2025-05-22
Nicolas O Shinko1007Spain2025-05-31
Arvin D Figeroa1008Canada2025-06-12
Misaki D Campain1009Japan2025-06-14
Izzy N Kusko1010Italy2025-05-29
Mujtaba I Bolognia1011India2025-05-19
Arvin R Schemmer1012United Kingdom2025-05-17
Aruna N Vocelka1013United Kingdom2025-05-18
Maria C Bolognia1014Germany2025-06-14
Isabel V Malet1015Russia2025-05-23
Jennifer F Flosi1016Brazil2025-06-05
Salvatore V Sergi1017France2025-05-21
Jennifer I Paprocki1018Russia2025-06-01
Octavia T Caldarera1019Australia2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David J MaletUnited KingdomElwin Sharvill QUALIFIED
Julie S FigeroaFranceAsiya Javayant PROPOSAL
Francesco E MaletFranceIoni Bowcher PROPOSAL
Mayumi Y OstroskySpainAmy Elsner RENEWAL
Adams U PerinGermanyXuxue Feng RENEWAL
Ashley W StockhamAustraliaAsiya Javayant RENEWAL
Greenwood J FigeroaIndiaElwin Sharvill PROPOSAL
Kadeem E ButtGermanyAsiya Javayant NEGOTIATION
Maria P AmigonFranceAnna Fali QUALIFIED
Clifford D SlusarskiSpainXuxue Feng RENEWAL
Ricardo L AlbaresIndiaOnyama Limba NEGOTIATION
Ashley P RimCanadaAsiya Javayant QUALIFIED
Leon Y InouyeItalyXuxue Feng NEGOTIATION
Ashley B MacleadGermanyBernardo Dominic PROPOSAL
Octavia W DarakjyJapanOnyama Limba UNQUALIFIED
Nicolas B BriddickFranceAnna Fali RENEWAL
Mujtaba E SergiJapanAmy Elsner NEW
James M SlusarskiJapanXuxue Feng RENEWAL
Isabel B ButtIndiaBernardo Dominic QUALIFIED
Munro C MarrierSpainAsiya Javayant QUALIFIED
Stacey M GarufiItalyXuxue Feng NEW
Arvin Y MaletCanadaAnna Fali NEW
Jones K BriddickItalyOnyama Limba PROPOSAL
Jennifer D NickaSpainIvan Magalhaes NEGOTIATION
Antonio T RoysterArgentinaElwin Sharvill NEW
Jeanfrancois O WieserGermanyStephen Shaw PROPOSAL
Stacey Q GillianAustraliaIoni Bowcher NEW
Rodrigues P ButtSpainElwin Sharvill NEGOTIATION
Deepesh T SergiSpainIoni Bowcher NEGOTIATION
Morrow C MarrierBrazilAsiya Javayant UNQUALIFIED
Juan M RoysterBrazilIvan Magalhaes PROPOSAL
Aruna T MacleadCanadaStephen Shaw RENEWAL
Aika A DilliardIndiaAnna Fali UNQUALIFIED
Sinclair N ShinkoFranceAnna Fali QUALIFIED
Adams O IturbideAustraliaXuxue Feng RENEWAL
Darci J OldroydItalyStephen Shaw NEW
James C NestleCanadaOnyama Limba PROPOSAL
Morrow R WieserCanadaOnyama Limba RENEWAL
Smith M FerenczSpainAmy Elsner UNQUALIFIED
Stacey N SchemmerCanadaAnna Fali 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>