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
Isabel Q OldroydArgentinaAsiya Javayant RENEWAL
Aika R BriddickArgentinaXuxue Feng NEW
Ivar K ChuiIndiaAnna Fali PROPOSAL
Sinclair L ShinkoCanadaAmy Elsner UNQUALIFIED
James G FlosiCanadaAmy Elsner NEW
Arvin E CaldareraItalyXuxue Feng RENEWAL
Adams T OstroskySpainAsiya Javayant PROPOSAL
Isabel F KuskoFranceOnyama Limba NEGOTIATION
Mujtaba P CampainArgentinaStephen Shaw NEGOTIATION
Morrow W MarrierItalyIvan Magalhaes RENEWAL
Leon E MaletIndiaAsiya Javayant NEGOTIATION
Alejandro B RoysterCanadaIvan Magalhaes QUALIFIED
Adams B SchemmerUnited KingdomOnyama Limba RENEWAL
Greenwood B KuskoBrazilXuxue Feng PROPOSAL
Wickens P GlickArgentinaAnna Fali NEW
Francesco Y BologniaAustraliaIvan Magalhaes NEW
Wickens Y OstroskyUnited KingdomIoni Bowcher QUALIFIED
Sinclair W MorascaFranceAsiya Javayant RENEWAL
Juan Z InouyeGermanyBernardo Dominic QUALIFIED
Salvatore I VocelkaSpainAmy Elsner RENEWAL
Kaitlin O SchemmerRussiaXuxue Feng QUALIFIED
Aditya L PerinFranceOnyama Limba RENEWAL
Sinclair W GauchoIndiaOnyama Limba NEGOTIATION
Tony B NestleAustraliaElwin Sharvill RENEWAL
Kaitlin E MacleadAustraliaElwin Sharvill PROPOSAL
Stacey B GarufiSpainXuxue Feng QUALIFIED
Ricardo R DilliardIndiaElwin Sharvill NEGOTIATION
James R VocelkaFranceAmy Elsner NEGOTIATION
Stacey I OstroskyUnited KingdomIoni Bowcher RENEWAL
Francesco I FigeroaIndiaBernardo Dominic UNQUALIFIED
Salvatore L BologniaBrazilXuxue Feng UNQUALIFIED
Greenwood M MaletJapanIvan Magalhaes QUALIFIED
James X RulapaughRussiaIoni Bowcher RENEWAL
James V DoeJapanXuxue Feng UNQUALIFIED
Ivar U FigeroaSpainAnna Fali NEGOTIATION
Greenwood H ButtUnited KingdomStephen Shaw NEGOTIATION
Kaitlin B CampainBrazilAmy Elsner UNQUALIFIED
Salvatore I ShinkoSpainStephen Shaw UNQUALIFIED
Claire S FlosiUnited KingdomBernardo Dominic PROPOSAL
Octavia L DilliardJapanIvan Magalhaes PROPOSAL
Claire P ShinkoJapanIvan Magalhaes RENEWAL
Francesco D DarakjyBrazilOnyama Limba QUALIFIED
Cody Z WaycottArgentinaIvan Magalhaes PROPOSAL
Jefferson V FollerUnited KingdomBernardo Dominic PROPOSAL
Kadeem T BologniaBrazilAnna Fali PROPOSAL
Adams B AmigonBrazilIvan Magalhaes NEW
Mujtaba L AmigonUnited KingdomOnyama Limba PROPOSAL
Leon X CampainIndiaAmy Elsner NEGOTIATION
Adams U DilliardItalyXuxue Feng UNQUALIFIED
Salvatore P PaprockiIndiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna P NestleItalyIvan Magalhaes UNQUALIFIED
James O CampainUnited KingdomIvan Magalhaes PROPOSAL
Emily B PerinCanadaIoni Bowcher NEGOTIATION
Alejandro S GillianArgentinaStephen Shaw NEW
Costa Q SlusarskiArgentinaOnyama Limba NEGOTIATION
Aditya Z BriddickCanadaAnna Fali PROPOSAL
Maisha W BriddickArgentinaAsiya Javayant RENEWAL
Nicolas O BowleyJapanBernardo Dominic RENEWAL
Julie O BologniaFranceAnna Fali PROPOSAL
Aruna Z RutaFranceAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo F AlbaresBrazil2026-06-26Dorl, James J Esq RENEWAL15Ivan Magalhaes
1001Leja E KolmetzJapan2026-07-02Morlong Associates RENEWAL84Amy Elsner
1002Munro B NestleJapan2026-06-22Benton, John B Jr QUALIFIED98Onyama Limba
1003Octavia C ButtAustralia2026-07-01Morlong Associates UNQUALIFIED55Ioni Bowcher
1004Aika T FerenczItaly2026-06-27Benton, John B Jr NEW49Anna Fali
1005Ivar R CampainRussia2026-06-27Morlong Associates UNQUALIFIED44Amy Elsner
1006Darci C WhobreySpain2026-06-26Commercial Press RENEWAL41Elwin Sharvill
1007Aika K WaycottAustralia2026-06-13Morlong Associates QUALIFIED7Xuxue Feng
1008Aruna Z WieserItaly2026-06-18Feiner Bros RENEWAL57Xuxue Feng
1009Julie D StockhamUnited Kingdom2026-06-28Rangoni Of Florence NEGOTIATION12Asiya Javayant
1010Ashley C MacleadBrazil2026-06-24Feltz Printing Service NEW86Bernardo Dominic
1011Kaitlin A SchemmerRussia2026-07-01Dorl, James J Esq NEW56Stephen Shaw
1012Clifford R AmigonItaly2026-06-28Chanay, Jeffrey A Esq RENEWAL37Elwin Sharvill
1013Faith X DoeGermany2026-06-17Rangoni Of Florence UNQUALIFIED28Ioni Bowcher
1014Octavia N StockhamRussia2026-06-29Feltz Printing Service UNQUALIFIED55Asiya Javayant
1015Deepesh Q SaylorsFrance2026-06-08Chapman, Ross E Esq QUALIFIED73Elwin Sharvill
1016Salvatore D PaprockiItaly2026-06-24Truhlar And Truhlar Attys NEGOTIATION96Ioni Bowcher
1017Claire O PoquetteUnited Kingdom2026-06-21Rousseaux, Michael Esq NEW86Asiya Javayant
1018Ashley A AmigonAustralia2026-06-11Commercial Press RENEWAL54Stephen Shaw
1019Tony J OstroskyRussia2026-06-24Printing Dimensions PROPOSAL65Asiya Javayant
1020James C TollnerJapan2026-06-25Commercial Press UNQUALIFIED19Elwin Sharvill
1021Adams G MaletUnited Kingdom2026-06-04Buckley Miller Wright NEGOTIATION98Stephen Shaw
1022Smith C KuskoArgentina2026-06-10Rousseaux, Michael Esq QUALIFIED9Bernardo Dominic
1023Aika A MaletUnited Kingdom2026-07-02Chanay, Jeffrey A Esq NEW92Amy Elsner
1024Ashley J WieserCanada2026-06-22Buckley Miller Wright NEW15Ioni Bowcher
1025Jeanfrancois K MacleadGermany2026-06-30Truhlar And Truhlar Attys QUALIFIED5Xuxue Feng
1026Nicolas U MarrierJapan2026-06-20King, Christopher A Esq NEW54Ioni Bowcher
1027Nicolas F FerenczAustralia2026-06-28Chemel, James L Cpa NEGOTIATION74Bernardo Dominic
1028Leon Y DoeArgentina2026-06-14Rangoni Of Florence PROPOSAL86Anna Fali
1029Clifford B OstroskyArgentina2026-07-01Rousseaux, Michael Esq NEW73Bernardo Dominic
1030Ashley D WieserGermany2026-06-26Chanay, Jeffrey A Esq NEGOTIATION78Stephen Shaw
1031Antonio A SlusarskiIndia2026-06-07Feiner Bros NEGOTIATION96Onyama Limba
1032Leon A FigeroaUnited Kingdom2026-06-26Feiner Bros NEGOTIATION4Anna Fali
1033Leja G NickaItaly2026-06-04Dorl, James J Esq PROPOSAL3Ioni Bowcher
1034Sinclair R PerinIndia2026-07-02Feltz Printing Service PROPOSAL65Xuxue Feng
1035Mayumi W KolmetzCanada2026-06-09Chapman, Ross E Esq PROPOSAL99Stephen Shaw
1036Silvio C WaycottSpain2026-06-24Benton, John B Jr RENEWAL26Ivan Magalhaes
1037Salvatore X PoquetteGermany2026-06-09Truhlar And Truhlar Attys NEGOTIATION67Xuxue Feng
1038Jeanfrancois S BologniaFrance2026-06-14Rangoni Of Florence NEW73Asiya Javayant
1039Jefferson P DoeCanada2026-06-19Morlong Associates PROPOSAL45Xuxue Feng
1040Mayumi O RimJapan2026-06-20Feltz Printing Service PROPOSAL39Xuxue Feng
1041Juan P MorascaArgentina2026-06-13Commercial Press NEGOTIATION73Amy Elsner
1042Clifford W KuskoGermany2026-06-22Chemel, James L Cpa NEW34Asiya Javayant
1043Alejandro G ChuiSpain2026-06-25Chemel, James L Cpa RENEWAL8Stephen Shaw
1044Stacey U PerinBrazil2026-06-08Chanay, Jeffrey A Esq NEGOTIATION82Amy Elsner
1045James U KolmetzRussia2026-06-11Feltz Printing Service UNQUALIFIED70Elwin Sharvill
1046Leon F FerenczGermany2026-06-18Rousseaux, Michael Esq QUALIFIED22Bernardo Dominic
1047Greenwood E MaletGermany2026-06-16Commercial Press NEW86Bernardo Dominic
1048Juan I FigeroaSpain2026-06-12Dorl, James J Esq NEW12Ivan Magalhaes
1049Claire S FlosiIndia2026-06-06Rousseaux, Michael Esq UNQUALIFIED46Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy M GlickItalyElwin Sharvill QUALIFIED
Kaitlin B PoquetteFranceOnyama Limba PROPOSAL
Greenwood H FigeroaFranceXuxue Feng NEGOTIATION
Emily F MorascaRussiaStephen Shaw UNQUALIFIED
Mayumi M DilliardUnited KingdomIvan Magalhaes NEW
Clifford D AmigonSpainXuxue Feng NEGOTIATION
Arvin L AmigonArgentinaIvan Magalhaes QUALIFIED
Mayumi F NickaCanadaIvan Magalhaes RENEWAL
Alejandro Y PerinCanadaElwin Sharvill PROPOSAL
Johnson X SaylorsUnited KingdomAmy Elsner NEW
Silvio Z SchemmerRussiaAsiya Javayant NEW
Wickens A RimCanadaIoni Bowcher UNQUALIFIED
Jefferson K DilliardBrazilAsiya Javayant PROPOSAL
Ivar U BowleySpainElwin Sharvill QUALIFIED
Deepesh Y WieserAustraliaXuxue Feng RENEWAL
James U PerinBrazilAnna Fali NEGOTIATION
Antonio O OldroydUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba L FollerItalyOnyama Limba RENEWAL
Ricardo C SchemmerJapanStephen Shaw UNQUALIFIED
Johnson Q VocelkaBrazilStephen Shaw NEGOTIATION
Antonio R CaldareraSpainIoni Bowcher QUALIFIED
Salvatore P GauchoRussiaXuxue Feng RENEWAL
Deepesh B MarrierItalyAnna Fali QUALIFIED
Mayumi Q WieserUnited KingdomAsiya Javayant NEW
Leon G DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin G VenereArgentinaOnyama Limba QUALIFIED
Faith O MacleadJapanElwin Sharvill NEW
Alejandro M NestleUnited KingdomIoni Bowcher RENEWAL
Faith X WieserItalyAmy Elsner UNQUALIFIED
Emily X IturbideUnited KingdomStephen Shaw NEW
Kaitlin K NickaArgentinaIoni Bowcher NEW
Greenwood I DilliardAustraliaIvan Magalhaes QUALIFIED
Maisha N MaletAustraliaAsiya Javayant QUALIFIED
Leon Y BowleyBrazilIoni Bowcher PROPOSAL
Maria Q WieserArgentinaAmy Elsner NEW
Ashley G TollnerFranceAsiya Javayant NEGOTIATION
Isabel V GillianUnited KingdomAmy Elsner NEGOTIATION
Aruna X PoquetteCanadaIoni Bowcher RENEWAL
Julie Y CampainGermanyOnyama Limba UNQUALIFIED
Izzy N PoquetteCanadaElwin Sharvill NEW
Costa U MaletJapanAmy Elsner PROPOSAL
Munro N SlusarskiFranceAsiya Javayant QUALIFIED
Juan H SaylorsArgentinaStephen Shaw QUALIFIED
Claire B FollerBrazilStephen Shaw PROPOSAL
Morrow T PoquetteSpainAsiya Javayant NEW
Misaki P StensethRussiaIvan Magalhaes UNQUALIFIED
Francesco R SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Jefferson P RulapaughAustraliaBernardo Dominic QUALIFIED
Silvio D AmigonItalyIvan Magalhaes QUALIFIED
Munro H TollnerCanadaIoni Bowcher RENEWAL
Frozen Columns
Name
Francesco H Sergi
Chavez S Tollner
Alejandro I Schemmer
Aruna J Malet
Jones F Venere
Aruna O Ostrosky
Misaki C Ferencz
Deepesh N Morasca
Aditya B Nestle
Sinclair Z Rim
Sinclair U Poquette
Alejandro N Garufi
Smith V Chui
Kaitlin Z Caudy
Arvin M Perin
Ivar Z Saylors
Claire S Saylors
Costa F Stockham
David W Waycott
Jennifer M Schemmer
Maria T Rulapaugh
Maisha Z Doe
Salvatore E Darakjy
Maisha Z Maclead
Izzy I Doe
Clifford G Marrier
Francesco E Nicka
Ivar J Morasca
Alejandro M Tollner
David S Perin
Misaki B Malet
Ricardo Y Morasca
Maria O Oldroyd
Ashley P Wieser
Mayumi U Royster
Claire U Sergi
Clifford W Vocelka
Stacey P Vocelka
Izzy O Inouye
Rodrigues P Poquette
Leon E Morasca
Jennifer R Foller
Darci I Figeroa
Chavez P Garufi
Maria A Flosi
Aditya X Paprocki
Adams S Sergi
Arvin U Malet
Nicolas Q Campain
Tony A Paprocki
IdCountryDate
1000Brazil2026-06-27
1001Russia2026-07-02
1002Brazil2026-06-23
1003Argentina2026-06-04
1004Australia2026-06-13
1005United Kingdom2026-06-17
1006Argentina2026-06-23
1007Germany2026-06-15
1008Argentina2026-06-09
1009Spain2026-06-08
1010Canada2026-06-24
1011Spain2026-06-06
1012Russia2026-06-22
1013Italy2026-06-27
1014Argentina2026-06-15
1015Brazil2026-06-15
1016Italy2026-06-26
1017Canada2026-06-25
1018Canada2026-07-02
1019Japan2026-06-21
1020Italy2026-06-13
1021United Kingdom2026-06-25
1022Australia2026-06-21
1023Canada2026-06-13
1024India2026-06-19
1025United Kingdom2026-06-14
1026Germany2026-06-19
1027United Kingdom2026-06-28
1028Japan2026-06-07
1029Japan2026-06-20
1030India2026-06-21
1031Russia2026-06-14
1032Russia2026-06-30
1033Japan2026-06-23
1034Japan2026-06-24
1035Germany2026-06-22
1036France2026-06-10
1037Italy2026-06-26
1038Japan2026-06-09
1039Germany2026-06-16
1040Spain2026-06-13
1041Argentina2026-06-25
1042Germany2026-06-27
1043Canada2026-06-28
1044Russia2026-06-26
1045Australia2026-06-06
1046France2026-06-13
1047Germany2026-06-06
1048France2026-06-15
1049Canada2026-07-01

On-Demand Data

NameIdCountryDate
Kaitlin K Tollner1000Argentina2026-06-09
Stacey V Glick1001Argentina2026-06-25
Clifford T Garufi1002Australia2026-06-08
Misaki T Ruta1003Canada2026-06-08
Faith P Bowley1004Spain2026-06-04
Jeanfrancois M Ferencz1005Argentina2026-06-16
Ashley D Darakjy1006Canada2026-07-01
Tony D Chui1007Canada2026-06-28
Stacey N Albares1008Germany2026-06-21
Nicolas L Iturbide1009Canada2026-06-22
Ashley J Glick1010Japan2026-06-27
Smith H Caudy1011India2026-06-11
Izzy O Slusarski1012Argentina2026-06-10
Octavia P Stockham1013Japan2026-06-09
Mujtaba T Campain1014Argentina2026-06-26
Mayumi F Chui1015Germany2026-07-02
Johnson P Stockham1016Russia2026-06-15
Alejandro Z Butt1017Canada2026-06-29
Nicolas D Oldroyd1018Germany2026-06-12
Izzy U Sergi1019Russia2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo I ButtFranceIoni Bowcher PROPOSAL
Rodrigues G PoquetteBrazilXuxue Feng NEW
Chavez I PerinSpainXuxue Feng RENEWAL
Sinclair U PaprockiRussiaAnna Fali NEW
Stacey Y StensethGermanyElwin Sharvill UNQUALIFIED
Clifford Y ChuiAustraliaXuxue Feng QUALIFIED
Morrow L WieserGermanyAmy Elsner RENEWAL
Kadeem C GillianBrazilAnna Fali RENEWAL
Maria V ChuiFranceBernardo Dominic UNQUALIFIED
Faith V MaletJapanStephen Shaw RENEWAL
Alejandro U VenereSpainXuxue Feng NEGOTIATION
Stacey K GlickJapanIvan Magalhaes PROPOSAL
Greenwood L OstroskyFranceXuxue Feng NEGOTIATION
Chavez I AlbaresIndiaElwin Sharvill QUALIFIED
Darci T StensethItalyXuxue Feng QUALIFIED
Faith F ShinkoGermanyAsiya Javayant RENEWAL
Maria O GauchoSpainAsiya Javayant NEW
David Y ButtJapanIvan Magalhaes NEGOTIATION
Mayumi S MarrierUnited KingdomStephen Shaw NEGOTIATION
Ashley E OldroydRussiaAnna Fali QUALIFIED
Mujtaba E StensethItalyElwin Sharvill QUALIFIED
Morrow F CaldareraRussiaBernardo Dominic NEW
Jennifer Y MarrierBrazilElwin Sharvill PROPOSAL
Maria T DilliardSpainAsiya Javayant NEW
Morrow L PoquetteArgentinaElwin Sharvill QUALIFIED
Leja A BologniaFranceIoni Bowcher RENEWAL
Aruna P AmigonSpainIvan Magalhaes NEW
Morrow P MorascaSpainStephen Shaw UNQUALIFIED
Aruna T GillianItalyOnyama Limba PROPOSAL
Emily A FlosiArgentinaElwin Sharvill RENEWAL
Chavez L SergiItalyIvan Magalhaes NEGOTIATION
Cody V CaudyGermanyAmy Elsner NEGOTIATION
Wickens X PoquetteBrazilElwin Sharvill NEW
David V SaylorsRussiaBernardo Dominic UNQUALIFIED
Ashley H WhobreyAustraliaStephen Shaw QUALIFIED
Stacey J OldroydJapanElwin Sharvill NEGOTIATION
Jefferson F OldroydBrazilAnna Fali QUALIFIED
Aika M PaprockiFranceAnna Fali NEGOTIATION
Claire E PerinBrazilStephen Shaw UNQUALIFIED
Johnson B DarakjyCanadaAmy 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>