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
Faith O MaletArgentinaIvan Magalhaes UNQUALIFIED
Ricardo X FigeroaCanadaStephen Shaw RENEWAL
Murillo W KolmetzSpainAnna Fali NEGOTIATION
Mayumi J MarrierGermanyOnyama Limba NEW
Silvio P KuskoIndiaOnyama Limba RENEWAL
Nicolas R SchemmerUnited KingdomAsiya Javayant RENEWAL
Ashley P GillianSpainOnyama Limba RENEWAL
Antonio M StensethFranceIoni Bowcher QUALIFIED
Stacey Z RutaArgentinaIoni Bowcher NEW
Leja F PerinRussiaIvan Magalhaes NEW
Murillo W OldroydUnited KingdomIvan Magalhaes NEW
Emily M PaprockiIndiaXuxue Feng NEGOTIATION
Greenwood S WhobreyGermanyAnna Fali QUALIFIED
Clifford H ShinkoGermanyElwin Sharvill QUALIFIED
Stacey B AlbaresArgentinaAmy Elsner NEW
Jennifer I CaudySpainOnyama Limba RENEWAL
Munro N OstroskyItalyIoni Bowcher PROPOSAL
Arvin X CaldareraUnited KingdomStephen Shaw RENEWAL
Arvin P PaprockiItalyAsiya Javayant RENEWAL
Silvio P KuskoItalyIoni Bowcher UNQUALIFIED
Murillo J RoysterCanadaBernardo Dominic UNQUALIFIED
Emily H WaycottIndiaElwin Sharvill QUALIFIED
Alejandro Y TollnerSpainStephen Shaw NEGOTIATION
Wickens K WaycottIndiaOnyama Limba UNQUALIFIED
Faith G SergiGermanyOnyama Limba UNQUALIFIED
Ivar P WhobreyItalyOnyama Limba QUALIFIED
Ashley H WieserFranceAmy Elsner UNQUALIFIED
Mujtaba B ShinkoCanadaIvan Magalhaes PROPOSAL
Maisha L MaletIndiaAmy Elsner PROPOSAL
Tony I ButtFranceStephen Shaw PROPOSAL
Kadeem P RoysterArgentinaAnna Fali UNQUALIFIED
Aika R CampainIndiaAnna Fali PROPOSAL
Kadeem B MarrierFranceXuxue Feng NEGOTIATION
Munro H PerinGermanyBernardo Dominic NEW
Maisha W BologniaSpainStephen Shaw NEGOTIATION
Mayumi Z StockhamItalyOnyama Limba QUALIFIED
Tony R FlosiBrazilAmy Elsner RENEWAL
Aditya J WaycottIndiaAnna Fali QUALIFIED
Maria C GarufiArgentinaIoni Bowcher RENEWAL
Juan I MaletUnited KingdomBernardo Dominic NEW
Kaitlin T ChuiGermanyAnna Fali NEW
Jeanfrancois Z StensethGermanyXuxue Feng UNQUALIFIED
Mujtaba X WaycottArgentinaStephen Shaw RENEWAL
Nicolas Z FollerRussiaXuxue Feng NEW
Murillo K RulapaughJapanIoni Bowcher PROPOSAL
Jones O PaprockiJapanStephen Shaw QUALIFIED
Maria W RulapaughCanadaAsiya Javayant NEW
Clifford K GauchoGermanyStephen Shaw QUALIFIED
Arvin J DarakjyFranceElwin Sharvill NEGOTIATION
Faith U DoeCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith Z RulapaughIndiaElwin Sharvill UNQUALIFIED
Wickens Y NickaUnited KingdomIoni Bowcher RENEWAL
Morrow M IturbideFranceAsiya Javayant NEGOTIATION
Adams X ButtBrazilOnyama Limba QUALIFIED
Maisha J KuskoAustraliaAsiya Javayant NEW
Antonio I TollnerBrazilAmy Elsner RENEWAL
Jefferson Q SergiItalyAmy Elsner RENEWAL
Stacey Q PerinItalyElwin Sharvill RENEWAL
Izzy G ChuiAustraliaAnna Fali NEGOTIATION
Aruna D FerenczRussiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow J RoysterUnited Kingdom2026-07-31Chapman, Ross E Esq NEGOTIATION54Bernardo Dominic
1001Darci E VocelkaAustralia2026-07-17Rousseaux, Michael Esq RENEWAL76Bernardo Dominic
1002Claire C SlusarskiCanada2026-07-23Chemel, James L Cpa RENEWAL10Onyama Limba
1003Kaitlin Y VocelkaCanada2026-08-09King, Christopher A Esq RENEWAL45Elwin Sharvill
1004Clifford G OstroskyIndia2026-07-21Feltz Printing Service UNQUALIFIED6Elwin Sharvill
1005Greenwood J NestleBrazil2026-08-12Printing Dimensions NEGOTIATION32Onyama Limba
1006Tony W AmigonFrance2026-08-07Printing Dimensions QUALIFIED14Ioni Bowcher
1007Octavia R KolmetzRussia2026-07-19King, Christopher A Esq QUALIFIED70Xuxue Feng
1008Maisha G OldroydSpain2026-08-14Chanay, Jeffrey A Esq QUALIFIED11Ivan Magalhaes
1009Juan R ChuiRussia2026-07-23Truhlar And Truhlar Attys UNQUALIFIED7Onyama Limba
1010Maria W ChuiArgentina2026-07-20Morlong Associates NEGOTIATION62Bernardo Dominic
1011Ashley V VenereUnited Kingdom2026-08-14Printing Dimensions QUALIFIED33Elwin Sharvill
1012Greenwood W VocelkaArgentina2026-07-30Chemel, James L Cpa RENEWAL76Bernardo Dominic
1013Francesco R FigeroaJapan2026-07-30Printing Dimensions PROPOSAL63Stephen Shaw
1014Maisha W DarakjyBrazil2026-08-09Benton, John B Jr PROPOSAL74Anna Fali
1015Emily P SaylorsIndia2026-08-08Rousseaux, Michael Esq NEW57Amy Elsner
1016Stacey U BowleyIndia2026-08-05Buckley Miller Wright RENEWAL66Xuxue Feng
1017Aika N FigeroaItaly2026-08-06Chapman, Ross E Esq PROPOSAL29Ivan Magalhaes
1018Misaki S ShinkoRussia2026-07-24Morlong Associates UNQUALIFIED39Amy Elsner
1019Emily D OstroskySpain2026-07-28Feiner Bros PROPOSAL34Ioni Bowcher
1020James E AlbaresAustralia2026-08-07Chanay, Jeffrey A Esq PROPOSAL34Amy Elsner
1021James H BologniaIndia2026-08-11Printing Dimensions NEGOTIATION29Asiya Javayant
1022Jennifer T OldroydUnited Kingdom2026-07-27King, Christopher A Esq UNQUALIFIED78Bernardo Dominic
1023Morrow P WaycottIndia2026-07-28Truhlar And Truhlar Attys PROPOSAL54Onyama Limba
1024Johnson X ButtIndia2026-07-27Feltz Printing Service RENEWAL11Ioni Bowcher
1025Jefferson H VenereArgentina2026-08-14Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1026Johnson R PerinSpain2026-08-14Chanay, Jeffrey A Esq NEGOTIATION24Elwin Sharvill
1027James Q TollnerBrazil2026-08-10Chanay, Jeffrey A Esq NEGOTIATION91Elwin Sharvill
1028Smith F BriddickBrazil2026-07-23King, Christopher A Esq RENEWAL15Xuxue Feng
1029Deepesh F FollerAustralia2026-08-13Chemel, James L Cpa RENEWAL20Ivan Magalhaes
1030Julie R WieserSpain2026-07-19Printing Dimensions UNQUALIFIED25Ivan Magalhaes
1031Sinclair C FollerGermany2026-08-15Feltz Printing Service QUALIFIED35Asiya Javayant
1032Faith U RutaFrance2026-08-15Rousseaux, Michael Esq NEGOTIATION70Asiya Javayant
1033Darci B GillianGermany2026-08-05Benton, John B Jr UNQUALIFIED30Ioni Bowcher
1034Jefferson B GarufiCanada2026-08-03Dorl, James J Esq RENEWAL16Onyama Limba
1035Mayumi Q MacleadFrance2026-08-15Dorl, James J Esq NEW71Bernardo Dominic
1036Wickens D NickaBrazil2026-08-05Morlong Associates NEW85Elwin Sharvill
1037Nicolas U GlickUnited Kingdom2026-08-03Truhlar And Truhlar Attys RENEWAL54Stephen Shaw
1038Salvatore W ShinkoRussia2026-08-15Truhlar And Truhlar Attys NEW16Elwin Sharvill
1039Greenwood E GarufiSpain2026-08-09Printing Dimensions RENEWAL30Bernardo Dominic
1040Greenwood L SaylorsArgentina2026-08-07Feiner Bros UNQUALIFIED31Stephen Shaw
1041Claire C RimItaly2026-08-07Benton, John B Jr NEGOTIATION92Elwin Sharvill
1042Johnson H StockhamCanada2026-07-29Buckley Miller Wright QUALIFIED0Ivan Magalhaes
1043Arvin C GillianSpain2026-07-24Rousseaux, Michael Esq QUALIFIED10Ioni Bowcher
1044Leon X MacleadIndia2026-07-25Buckley Miller Wright RENEWAL46Xuxue Feng
1045Mayumi R NestleItaly2026-07-20Commercial Press QUALIFIED17Bernardo Dominic
1046Greenwood G VocelkaCanada2026-08-11Dorl, James J Esq RENEWAL60Ioni Bowcher
1047Alejandro Z CampainArgentina2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED17Bernardo Dominic
1048Maria Q AmigonItaly2026-07-24Dorl, James J Esq NEW72Elwin Sharvill
1049Smith T KolmetzArgentina2026-07-19Chapman, Ross E Esq NEW6Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio S BowleyArgentinaIvan Magalhaes NEW
Wickens B FerenczGermanyAmy Elsner NEW
Stacey V PoquetteArgentinaStephen Shaw RENEWAL
Darci X ChuiIndiaAsiya Javayant PROPOSAL
Salvatore M ButtRussiaAmy Elsner QUALIFIED
Octavia G NickaIndiaStephen Shaw NEW
Mujtaba Y MaletBrazilAmy Elsner NEW
Jones B AmigonUnited KingdomIvan Magalhaes QUALIFIED
Aika U RimIndiaIoni Bowcher QUALIFIED
Emily K GillianGermanyAsiya Javayant PROPOSAL
Adams R MaletUnited KingdomIoni Bowcher RENEWAL
Munro B DilliardGermanyIoni Bowcher RENEWAL
Octavia Y CaldareraArgentinaStephen Shaw UNQUALIFIED
Johnson Y ChuiAustraliaOnyama Limba NEGOTIATION
Ivar K NestleIndiaElwin Sharvill NEW
Aditya E RutaItalyAsiya Javayant UNQUALIFIED
Clifford G KolmetzAustraliaBernardo Dominic QUALIFIED
Jefferson O StensethCanadaOnyama Limba QUALIFIED
Maria M SergiGermanyAmy Elsner NEGOTIATION
Alejandro H DilliardItalyAnna Fali PROPOSAL
Juan U BowleyRussiaStephen Shaw NEGOTIATION
James W WieserFranceStephen Shaw QUALIFIED
Juan M RimBrazilElwin Sharvill QUALIFIED
Maisha J IturbideCanadaStephen Shaw QUALIFIED
Sinclair N VocelkaRussiaOnyama Limba NEGOTIATION
Tony P GauchoIndiaAsiya Javayant RENEWAL
Leon T PoquetteAustraliaXuxue Feng PROPOSAL
Izzy I AlbaresCanadaStephen Shaw QUALIFIED
Juan G BowleyRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois A OldroydFranceIvan Magalhaes NEGOTIATION
Leja D VocelkaJapanAmy Elsner UNQUALIFIED
Chavez G MacleadItalyXuxue Feng NEW
Mayumi K InouyeArgentinaAsiya Javayant NEW
Smith R InouyeGermanyXuxue Feng NEGOTIATION
Jeanfrancois N WaycottCanadaStephen Shaw UNQUALIFIED
Murillo A VenereIndiaElwin Sharvill PROPOSAL
Misaki O StensethUnited KingdomBernardo Dominic QUALIFIED
Tony F GillianAustraliaAsiya Javayant QUALIFIED
Morrow S PoquetteSpainXuxue Feng RENEWAL
Cody V StockhamCanadaStephen Shaw UNQUALIFIED
Leon Z ShinkoRussiaXuxue Feng PROPOSAL
Julie C AmigonRussiaAnna Fali NEGOTIATION
Wickens A GauchoItalyElwin Sharvill RENEWAL
Silvio G MaletSpainAnna Fali RENEWAL
Kaitlin H NestleIndiaOnyama Limba RENEWAL
Morrow H AmigonRussiaAmy Elsner QUALIFIED
Jennifer F MaletGermanyAmy Elsner QUALIFIED
Ashley F WhobreyGermanyIoni Bowcher UNQUALIFIED
Greenwood T FerenczGermanyElwin Sharvill UNQUALIFIED
Sinclair B AlbaresUnited KingdomXuxue Feng NEW
Frozen Columns
Name
Maria S Wieser
Rodrigues Y Iturbide
Jefferson K Chui
Salvatore L Dilliard
Faith B Waycott
Emily S Ferencz
Ivar T Venere
Sinclair R Doe
James T Rulapaugh
Ivar Z Campain
Octavia A Oldroyd
Izzy Q Slusarski
Tony I Chui
Rodrigues D Schemmer
Jeanfrancois S Tollner
Mayumi M Wieser
Silvio Q Maclead
Emily H Campain
Chavez K Marrier
Misaki C Maclead
Aruna F Glick
Juan Y Rulapaugh
Murillo V Paprocki
Nicolas U Ostrosky
Octavia T Venere
Morrow P Venere
Izzy M Whobrey
Murillo Q Saylors
Faith I Schemmer
Kaitlin D Stenseth
Darci W Iturbide
Salvatore K Figeroa
Mujtaba S Inouye
Munro P Gaucho
Johnson D Vocelka
Ashley I Caldarera
Octavia S Ferencz
Darci Q Inouye
Morrow F Glick
Tony U Figeroa
Leon C Ferencz
Maisha M Inouye
Silvio U Saylors
Ashley D Nicka
Mujtaba F Oldroyd
Morrow P Royster
Antonio L Schemmer
Cody J Briddick
Jones W Paprocki
Jefferson J Ferencz
IdCountryDate
1000Spain2026-07-19
1001Argentina2026-07-19
1002Spain2026-08-11
1003Spain2026-08-09
1004Italy2026-07-26
1005Canada2026-08-02
1006Japan2026-07-20
1007United Kingdom2026-07-25
1008Japan2026-08-14
1009Italy2026-08-15
1010Spain2026-08-13
1011Argentina2026-08-11
1012France2026-07-22
1013France2026-08-05
1014Italy2026-07-30
1015France2026-08-05
1016Russia2026-08-04
1017United Kingdom2026-07-19
1018France2026-07-29
1019Brazil2026-07-27
1020Spain2026-08-02
1021France2026-08-03
1022Brazil2026-07-28
1023Canada2026-07-19
1024Canada2026-07-18
1025Argentina2026-07-24
1026Japan2026-07-30
1027Argentina2026-07-18
1028Germany2026-07-28
1029Argentina2026-08-02
1030Italy2026-07-20
1031Brazil2026-07-27
1032India2026-07-18
1033Russia2026-07-28
1034Brazil2026-07-26
1035Spain2026-08-10
1036Brazil2026-07-27
1037Japan2026-08-14
1038Spain2026-07-22
1039Italy2026-07-28
1040Japan2026-07-23
1041Argentina2026-08-08
1042United Kingdom2026-08-10
1043Italy2026-07-17
1044Brazil2026-07-28
1045Germany2026-08-10
1046Argentina2026-08-14
1047France2026-08-08
1048Australia2026-08-15
1049Spain2026-07-19

On-Demand Data

NameIdCountryDate
Aruna R Butt1000Russia2026-07-25
Cody E Gillian1001Russia2026-08-04
Sinclair K Paprocki1002Australia2026-07-29
Claire U Waycott1003Spain2026-08-14
Antonio Q Campain1004Japan2026-07-20
Jennifer C Rim1005Brazil2026-08-08
Costa U Ferencz1006Brazil2026-07-22
Ricardo G Amigon1007United Kingdom2026-08-02
Kaitlin H Stockham1008Italy2026-08-12
Aika F Butt1009France2026-07-22
Jeanfrancois B Doe1010Russia2026-07-28
Nicolas W Ruta1011India2026-07-23
Smith D Ruta1012Canada2026-07-21
James O Dilliard1013India2026-07-20
Isabel T Morasca1014India2026-07-28
Alejandro B Iturbide1015Italy2026-07-24
Stacey P Whobrey1016Canada2026-07-26
Sinclair F Caudy1017Brazil2026-07-17
Faith K Stenseth1018Japan2026-08-04
Ricardo O Caldarera1019United Kingdom2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco E ChuiItalyStephen Shaw NEW
Julie S ButtGermanyOnyama Limba UNQUALIFIED
Leon D GarufiIndiaIoni Bowcher NEGOTIATION
David K MorascaRussiaAsiya Javayant PROPOSAL
Octavia R BologniaBrazilStephen Shaw NEGOTIATION
Stacey C KuskoArgentinaOnyama Limba NEGOTIATION
Faith G RutaAustraliaElwin Sharvill PROPOSAL
Tony C AlbaresSpainOnyama Limba PROPOSAL
Isabel U WieserItalyXuxue Feng RENEWAL
Deepesh F AmigonItalyOnyama Limba QUALIFIED
James F MorascaArgentinaBernardo Dominic NEGOTIATION
Jones A BologniaIndiaAsiya Javayant PROPOSAL
Izzy D GauchoSpainIvan Magalhaes NEW
Jennifer X FerenczArgentinaElwin Sharvill RENEWAL
Leon E PerinJapanBernardo Dominic NEW
Smith S DoeFranceAnna Fali NEW
Ashley F SaylorsSpainIvan Magalhaes QUALIFIED
Cody B FerenczRussiaIvan Magalhaes PROPOSAL
Ivar P ButtGermanyXuxue Feng UNQUALIFIED
Smith H SchemmerItalyAmy Elsner PROPOSAL
Tony J NestleSpainXuxue Feng RENEWAL
Jones W NickaItalyAmy Elsner QUALIFIED
Julie I MacleadFranceStephen Shaw UNQUALIFIED
Cody J GillianIndiaOnyama Limba UNQUALIFIED
Nicolas I FlosiArgentinaIoni Bowcher NEW
Johnson J DarakjyRussiaIvan Magalhaes NEW
Jeanfrancois A GillianFranceOnyama Limba RENEWAL
Jennifer H GillianJapanOnyama Limba RENEWAL
Aika E PaprockiArgentinaIoni Bowcher QUALIFIED
Aruna B RoysterSpainElwin Sharvill QUALIFIED
Aditya G AmigonGermanyAnna Fali RENEWAL
Sinclair O VenereItalyStephen Shaw QUALIFIED
James J OstroskyFranceElwin Sharvill QUALIFIED
Claire K GauchoRussiaStephen Shaw NEW
Leja L GauchoItalyStephen Shaw QUALIFIED
Adams Y BowleySpainIvan Magalhaes UNQUALIFIED
Isabel D MaletCanadaBernardo Dominic PROPOSAL
Mujtaba E CaudyAustraliaStephen Shaw UNQUALIFIED
Ashley Q FigeroaItalyStephen Shaw NEW
Izzy F FlosiSpainBernardo Dominic NEW

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