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
Smith S OldroydItalyXuxue Feng QUALIFIED
Costa B StensethJapanOnyama Limba QUALIFIED
Faith I DoeRussiaOnyama Limba UNQUALIFIED
Clifford C PerinSpainAnna Fali NEW
Jefferson W MacleadArgentinaOnyama Limba PROPOSAL
Kaitlin K MacleadArgentinaStephen Shaw QUALIFIED
Greenwood P SlusarskiArgentinaBernardo Dominic PROPOSAL
Deepesh D TollnerFranceIvan Magalhaes QUALIFIED
Deepesh F DarakjyCanadaXuxue Feng RENEWAL
Mujtaba F GarufiUnited KingdomStephen Shaw NEW
David F NestleUnited KingdomXuxue Feng NEGOTIATION
Juan L ChuiFranceBernardo Dominic PROPOSAL
Aditya L MacleadAustraliaBernardo Dominic QUALIFIED
Juan W RutaAustraliaStephen Shaw UNQUALIFIED
Alejandro T AlbaresAustraliaAsiya Javayant NEGOTIATION
Mayumi F OstroskyFranceBernardo Dominic PROPOSAL
Kaitlin H PerinIndiaIoni Bowcher NEGOTIATION
Silvio P SlusarskiFranceElwin Sharvill NEW
Mujtaba R AmigonRussiaXuxue Feng PROPOSAL
Izzy M WieserUnited KingdomIvan Magalhaes NEW
Smith F SaylorsCanadaOnyama Limba NEW
Faith K FerenczGermanyStephen Shaw UNQUALIFIED
Cody D IturbideCanadaIvan Magalhaes RENEWAL
Ricardo T StockhamGermanyAmy Elsner NEGOTIATION
Chavez W PerinBrazilAnna Fali RENEWAL
Ricardo I SlusarskiIndiaOnyama Limba UNQUALIFIED
Stacey O PoquetteItalyAmy Elsner QUALIFIED
Aditya B WhobreyJapanAsiya Javayant QUALIFIED
Isabel B RulapaughJapanIvan Magalhaes QUALIFIED
Antonio J CampainBrazilXuxue Feng RENEWAL
Aditya O WaycottUnited KingdomBernardo Dominic RENEWAL
Aika B CampainBrazilXuxue Feng PROPOSAL
Sinclair O BowleySpainIvan Magalhaes NEGOTIATION
Aruna P WieserJapanIvan Magalhaes UNQUALIFIED
Jones F RimArgentinaOnyama Limba RENEWAL
Octavia U KolmetzJapanAmy Elsner RENEWAL
Wickens U DarakjyAustraliaAmy Elsner QUALIFIED
Maria T ShinkoArgentinaAnna Fali NEGOTIATION
Julie I CaldareraArgentinaAsiya Javayant NEGOTIATION
Jones A FerenczRussiaStephen Shaw NEGOTIATION
Kadeem K GauchoAustraliaElwin Sharvill NEW
Jefferson J GauchoRussiaIoni Bowcher NEGOTIATION
Aruna F MaletCanadaAsiya Javayant UNQUALIFIED
Maisha B ChuiItalyAnna Fali NEW
Ivar L FlosiGermanyIoni Bowcher UNQUALIFIED
Leja A NickaCanadaBernardo Dominic NEW
Jones S VenereArgentinaIoni Bowcher NEW
Faith V GlickUnited KingdomStephen Shaw QUALIFIED
Mujtaba R TollnerItalyAmy Elsner NEW
Mujtaba D AlbaresSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Munro S GarufiCanadaXuxue Feng RENEWAL
Darci P ChuiRussiaOnyama Limba NEW
Tony R BologniaUnited KingdomElwin Sharvill QUALIFIED
David F CaldareraIndiaAsiya Javayant QUALIFIED
Leja D MarrierItalyIoni Bowcher NEW
Chavez N BowleyJapanIvan Magalhaes NEW
Ashley P CampainRussiaXuxue Feng RENEWAL
Murillo S IturbideArgentinaAsiya Javayant RENEWAL
David F PaprockiSpainXuxue Feng QUALIFIED
Ricardo X DilliardIndiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith W NestleArgentina2026-06-22Commercial Press NEW82Anna Fali
1001Johnson C StockhamArgentina2026-07-04Dorl, James J Esq RENEWAL98Stephen Shaw
1002Leja Q AlbaresAustralia2026-07-04King, Christopher A Esq NEGOTIATION10Elwin Sharvill
1003Deepesh C ChuiGermany2026-07-13Chemel, James L Cpa RENEWAL54Asiya Javayant
1004Murillo A OldroydGermany2026-07-08Buckley Miller Wright PROPOSAL95Elwin Sharvill
1005Alejandro F SchemmerIndia2026-06-30Chemel, James L Cpa RENEWAL19Asiya Javayant
1006Greenwood B CampainSpain2026-07-12Chemel, James L Cpa NEGOTIATION71Asiya Javayant
1007Wickens H MaletUnited Kingdom2026-07-10Chanay, Jeffrey A Esq UNQUALIFIED45Ivan Magalhaes
1008Emily P BowleyIndia2026-07-06Chanay, Jeffrey A Esq QUALIFIED26Elwin Sharvill
1009Morrow I GillianAustralia2026-06-25Chanay, Jeffrey A Esq NEGOTIATION57Onyama Limba
1010Smith I FlosiCanada2026-06-21Feltz Printing Service QUALIFIED29Anna Fali
1011Clifford H PoquetteUnited Kingdom2026-06-21Morlong Associates PROPOSAL73Asiya Javayant
1012Kaitlin Z MaletIndia2026-06-27Rangoni Of Florence NEW8Amy Elsner
1013Aika N InouyeSpain2026-06-23Feltz Printing Service UNQUALIFIED16Elwin Sharvill
1014Arvin Y RulapaughArgentina2026-07-16King, Christopher A Esq NEW49Stephen Shaw
1015Morrow X BriddickJapan2026-06-22Buckley Miller Wright UNQUALIFIED80Ivan Magalhaes
1016Silvio T MacleadSpain2026-06-29Buckley Miller Wright QUALIFIED88Anna Fali
1017Murillo Z CampainUnited Kingdom2026-06-28Chapman, Ross E Esq RENEWAL33Amy Elsner
1018Salvatore F ChuiAustralia2026-07-16Morlong Associates QUALIFIED82Stephen Shaw
1019Octavia T SaylorsGermany2026-07-15Rangoni Of Florence NEW88Elwin Sharvill
1020Salvatore M DoeItaly2026-06-30Chemel, James L Cpa NEGOTIATION6Bernardo Dominic
1021Kadeem H StockhamRussia2026-06-23Rousseaux, Michael Esq UNQUALIFIED78Xuxue Feng
1022Stacey F IturbideItaly2026-06-26Dorl, James J Esq NEGOTIATION44Anna Fali
1023Cody B SergiArgentina2026-07-15Chanay, Jeffrey A Esq NEW43Ioni Bowcher
1024Chavez C RimSpain2026-07-02Printing Dimensions PROPOSAL49Bernardo Dominic
1025James E StockhamJapan2026-07-15Truhlar And Truhlar Attys PROPOSAL70Stephen Shaw
1026Misaki D AlbaresRussia2026-06-21Chanay, Jeffrey A Esq QUALIFIED84Anna Fali
1027Darci J WieserJapan2026-06-30Truhlar And Truhlar Attys RENEWAL36Elwin Sharvill
1028James Y PerinGermany2026-06-28Truhlar And Truhlar Attys NEW41Bernardo Dominic
1029Stacey Q KuskoArgentina2026-07-04Rousseaux, Michael Esq PROPOSAL14Elwin Sharvill
1030Adams K MaletArgentina2026-07-10Dorl, James J Esq QUALIFIED44Ivan Magalhaes
1031Julie J DilliardItaly2026-07-16Chapman, Ross E Esq RENEWAL80Onyama Limba
1032Deepesh H StockhamFrance2026-07-15Benton, John B Jr QUALIFIED45Anna Fali
1033Aruna K VocelkaRussia2026-06-27Morlong Associates RENEWAL73Asiya Javayant
1034Adams H MarrierItaly2026-07-01Benton, John B Jr UNQUALIFIED21Ioni Bowcher
1035Darci P CaudyUnited Kingdom2026-07-19Morlong Associates PROPOSAL18Xuxue Feng
1036Maisha U MarrierUnited Kingdom2026-07-15Printing Dimensions NEGOTIATION80Stephen Shaw
1037Munro L CaudyGermany2026-07-06Truhlar And Truhlar Attys UNQUALIFIED89Elwin Sharvill
1038Tony S SaylorsIndia2026-07-09Benton, John B Jr QUALIFIED23Bernardo Dominic
1039Silvio W VenereArgentina2026-06-25Feltz Printing Service NEGOTIATION63Bernardo Dominic
1040Costa H MaletCanada2026-07-09Printing Dimensions NEW98Bernardo Dominic
1041Misaki W AlbaresGermany2026-07-12Feiner Bros RENEWAL13Xuxue Feng
1042Cody Z VenereSpain2026-07-10Rangoni Of Florence NEGOTIATION92Bernardo Dominic
1043Mayumi O KuskoSpain2026-07-01Printing Dimensions QUALIFIED91Bernardo Dominic
1044Leon T WaycottBrazil2026-07-12Buckley Miller Wright NEGOTIATION91Anna Fali
1045Leja Y RimGermany2026-07-20Dorl, James J Esq NEW73Ivan Magalhaes
1046Julie R FlosiUnited Kingdom2026-07-13Chapman, Ross E Esq NEW24Ioni Bowcher
1047Alejandro V OldroydFrance2026-07-11Printing Dimensions RENEWAL89Bernardo Dominic
1048Maisha I PaprockiJapan2026-06-23Chanay, Jeffrey A Esq PROPOSAL6Xuxue Feng
1049Misaki R DilliardFrance2026-06-25Printing Dimensions NEW45Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maisha M InouyeCanadaAnna Fali RENEWAL
Aruna E BriddickIndiaIoni Bowcher UNQUALIFIED
Darci V FlosiRussiaAsiya Javayant NEGOTIATION
James G IturbideBrazilXuxue Feng PROPOSAL
Francesco B SergiBrazilAsiya Javayant NEW
Emily G FerenczFranceAnna Fali PROPOSAL
Nicolas H OstroskyBrazilStephen Shaw NEGOTIATION
Mujtaba Y ChuiUnited KingdomElwin Sharvill RENEWAL
Alejandro N DoeIndiaStephen Shaw RENEWAL
Munro O RoysterSpainAmy Elsner QUALIFIED
Mujtaba I TollnerIndiaStephen Shaw UNQUALIFIED
Darci G SlusarskiItalyAmy Elsner QUALIFIED
Greenwood H BriddickUnited KingdomOnyama Limba NEGOTIATION
Wickens H FollerArgentinaOnyama Limba QUALIFIED
Darci R StensethArgentinaAsiya Javayant PROPOSAL
Jeanfrancois G KolmetzBrazilIoni Bowcher QUALIFIED
Octavia N PoquetteGermanyIoni Bowcher NEGOTIATION
Morrow A PoquetteIndiaStephen Shaw QUALIFIED
Jennifer X SlusarskiBrazilStephen Shaw PROPOSAL
Kaitlin Q GarufiJapanStephen Shaw RENEWAL
Rodrigues V GauchoRussiaIoni Bowcher NEGOTIATION
Silvio Z TollnerGermanyAnna Fali NEW
Misaki Z WaycottArgentinaAmy Elsner UNQUALIFIED
Stacey R RutaIndiaBernardo Dominic UNQUALIFIED
Izzy V OstroskyBrazilStephen Shaw NEGOTIATION
Alejandro T FlosiCanadaIvan Magalhaes UNQUALIFIED
Silvio N MaletRussiaIoni Bowcher RENEWAL
Jones L RutaFranceAsiya Javayant QUALIFIED
David Y MaletItalyIoni Bowcher PROPOSAL
Chavez U MarrierGermanyStephen Shaw PROPOSAL
Mayumi Z KolmetzSpainBernardo Dominic NEGOTIATION
Julie B DoeItalyAmy Elsner PROPOSAL
Juan F NickaAustraliaOnyama Limba RENEWAL
James K IturbideGermanyXuxue Feng RENEWAL
Ashley S NickaJapanIoni Bowcher NEW
Munro H BriddickArgentinaBernardo Dominic NEGOTIATION
Johnson M WhobreyGermanyAmy Elsner PROPOSAL
Darci W BriddickCanadaAnna Fali PROPOSAL
Leon H KuskoFranceXuxue Feng UNQUALIFIED
Alejandro R MacleadIndiaStephen Shaw NEW
Antonio M KuskoArgentinaIoni Bowcher PROPOSAL
Claire U SchemmerSpainAnna Fali QUALIFIED
Ashley F WhobreyJapanElwin Sharvill PROPOSAL
Kaitlin E NestleGermanyAmy Elsner UNQUALIFIED
Nicolas Z WaycottGermanyElwin Sharvill NEW
Sinclair C ShinkoGermanyIvan Magalhaes QUALIFIED
Chavez T FerenczSpainAsiya Javayant PROPOSAL
Misaki N MorascaCanadaOnyama Limba QUALIFIED
Silvio T GillianRussiaStephen Shaw RENEWAL
Francesco K GillianIndiaAmy Elsner QUALIFIED
Frozen Columns
Name
Francesco Y Glick
Juan D Morasca
James V Gaucho
Deepesh A Kusko
Claire Z Stenseth
Wickens N Rulapaugh
Silvio L Maclead
Aruna E Ferencz
Stacey O Sergi
Costa R Darakjy
Maria E Venere
Leon Y Waycott
Jefferson Z Saylors
Jefferson I Tollner
David D Wieser
Nicolas A Glick
Adams J Figeroa
Isabel T Oldroyd
Izzy D Doe
Ashley K Paprocki
Aditya I Caudy
Aika F Inouye
Julie U Vocelka
Stacey K Paprocki
Antonio Z Foller
Aditya J Oldroyd
Izzy F Saylors
Francesco K Darakjy
Darci U Caudy
Maisha T Nicka
Leon U Chui
Ricardo B Butt
Maria P Paprocki
Misaki Q Stockham
Claire L Malet
James L Gaucho
Juan L Campain
Mujtaba V Kusko
Clifford A Venere
Aika A Figeroa
Ivar R Ferencz
Stacey Z Whobrey
Aika X Slusarski
Mujtaba C Kusko
Aika P Nestle
Silvio I Inouye
Arvin J Doe
Misaki P Malet
Silvio W Maclead
Nicolas D Gaucho
IdCountryDate
1000Argentina2026-07-10
1001Brazil2026-07-17
1002Japan2026-07-14
1003Australia2026-07-11
1004Brazil2026-07-19
1005Australia2026-07-08
1006Japan2026-06-23
1007Russia2026-07-10
1008Spain2026-07-13
1009Spain2026-06-30
1010Canada2026-07-20
1011Canada2026-06-22
1012Russia2026-07-01
1013France2026-07-17
1014Spain2026-06-21
1015Russia2026-07-10
1016Canada2026-06-26
1017Germany2026-06-28
1018Germany2026-07-07
1019Japan2026-06-23
1020India2026-06-30
1021Italy2026-07-03
1022Canada2026-06-29
1023Russia2026-07-08
1024Australia2026-07-19
1025Germany2026-06-26
1026Japan2026-07-04
1027Argentina2026-07-11
1028Russia2026-06-25
1029Australia2026-06-24
1030Argentina2026-07-16
1031Russia2026-07-03
1032Argentina2026-06-22
1033Spain2026-07-01
1034India2026-06-25
1035Russia2026-07-08
1036Italy2026-07-04
1037Canada2026-07-17
1038Brazil2026-07-08
1039Brazil2026-07-19
1040Spain2026-06-26
1041Germany2026-06-26
1042Brazil2026-06-24
1043Australia2026-07-10
1044Argentina2026-07-12
1045Argentina2026-07-04
1046Canada2026-07-14
1047Australia2026-06-22
1048Canada2026-06-24
1049Germany2026-07-20

On-Demand Data

NameIdCountryDate
Faith E Caudy1000Spain2026-07-06
Maria Z Stockham1001Russia2026-07-04
Darci S Ferencz1002Spain2026-07-17
Aditya G Schemmer1003Australia2026-07-01
Aditya D Nestle1004Italy2026-07-15
Darci X Waycott1005Spain2026-06-23
Julie D Sergi1006Japan2026-07-18
Faith Z Flosi1007Australia2026-07-02
Antonio Q Briddick1008United Kingdom2026-06-30
Octavia V Iturbide1009Japan2026-07-17
Clifford A Perin1010Russia2026-07-05
Johnson Y Flosi1011Australia2026-06-29
Ricardo W Slusarski1012Russia2026-07-08
Stacey X Venere1013India2026-06-22
Wickens A Dilliard1014Australia2026-07-05
Greenwood D Caudy1015India2026-07-07
David M Ostrosky1016United Kingdom2026-06-24
Ivar H Briddick1017Brazil2026-07-12
Greenwood N Ostrosky1018Russia2026-07-09
Octavia M Darakjy1019France2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow X PoquetteAustraliaOnyama Limba NEGOTIATION
Clifford D FigeroaSpainStephen Shaw UNQUALIFIED
Ivar T MaletAustraliaAmy Elsner PROPOSAL
Aruna I ShinkoGermanyAmy Elsner PROPOSAL
Sinclair A SchemmerCanadaIoni Bowcher RENEWAL
Tony X StensethIndiaXuxue Feng NEGOTIATION
Rodrigues Y DarakjyJapanBernardo Dominic QUALIFIED
Izzy L IturbideGermanyElwin Sharvill RENEWAL
Antonio Q RoysterCanadaOnyama Limba PROPOSAL
Darci I OldroydFranceAnna Fali QUALIFIED
Costa R GlickUnited KingdomIoni Bowcher QUALIFIED
Kadeem Y WaycottBrazilIoni Bowcher RENEWAL
Claire C RulapaughIndiaAmy Elsner NEW
Munro S DilliardArgentinaAsiya Javayant UNQUALIFIED
Greenwood L KolmetzArgentinaBernardo Dominic NEW
Julie T VocelkaBrazilXuxue Feng PROPOSAL
Costa T OldroydBrazilStephen Shaw NEGOTIATION
Kadeem Q NickaBrazilBernardo Dominic NEGOTIATION
Munro R PerinBrazilElwin Sharvill UNQUALIFIED
Kaitlin B WieserIndiaIoni Bowcher PROPOSAL
James L ShinkoGermanyAsiya Javayant RENEWAL
Smith N NestleSpainAmy Elsner NEGOTIATION
Alejandro I GlickUnited KingdomAmy Elsner QUALIFIED
Munro Y GlickGermanyIvan Magalhaes NEW
Alejandro U GillianItalyIvan Magalhaes UNQUALIFIED
Johnson Q ButtRussiaOnyama Limba PROPOSAL
Misaki D AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues Q StensethRussiaIoni Bowcher NEGOTIATION
Alejandro D FerenczSpainIvan Magalhaes NEGOTIATION
Costa A DilliardArgentinaXuxue Feng NEGOTIATION
Emily I PerinIndiaIoni Bowcher QUALIFIED
Alejandro U BriddickSpainAsiya Javayant RENEWAL
Cody L IturbideRussiaBernardo Dominic UNQUALIFIED
Morrow F OldroydBrazilStephen Shaw NEW
Adams G StensethJapanAmy Elsner NEW
Aruna I VenereAustraliaIoni Bowcher NEGOTIATION
Wickens G TollnerCanadaAsiya Javayant RENEWAL
Aruna T MaletUnited KingdomBernardo Dominic QUALIFIED
Munro A WieserFranceXuxue Feng QUALIFIED
Aika N BologniaFranceAnna Fali NEGOTIATION

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