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
Maria X VocelkaCanadaAnna Fali RENEWAL
Jefferson Q DoeRussiaAsiya Javayant UNQUALIFIED
Isabel X SchemmerSpainAnna Fali NEW
Faith G SchemmerSpainAmy Elsner NEGOTIATION
David O MaletBrazilOnyama Limba UNQUALIFIED
Claire J PaprockiSpainOnyama Limba NEGOTIATION
Stacey N BowleyCanadaIvan Magalhaes PROPOSAL
Johnson K SlusarskiSpainOnyama Limba UNQUALIFIED
Deepesh Q RutaUnited KingdomStephen Shaw RENEWAL
Salvatore K StockhamSpainStephen Shaw PROPOSAL
Adams S SlusarskiAustraliaOnyama Limba PROPOSAL
Munro H MaletBrazilIvan Magalhaes QUALIFIED
Jones H SergiAustraliaStephen Shaw PROPOSAL
Clifford H AlbaresFranceBernardo Dominic NEGOTIATION
Aruna H MaletUnited KingdomStephen Shaw PROPOSAL
Silvio K DoeRussiaXuxue Feng NEGOTIATION
Leon Z VenereGermanyAsiya Javayant NEGOTIATION
Octavia O SlusarskiSpainAnna Fali NEGOTIATION
Clifford G IturbideBrazilBernardo Dominic PROPOSAL
Mujtaba V RutaAustraliaIvan Magalhaes RENEWAL
Ricardo Y RutaArgentinaStephen Shaw UNQUALIFIED
Murillo E FlosiFranceBernardo Dominic UNQUALIFIED
Julie G TollnerJapanAsiya Javayant PROPOSAL
Adams L IturbideFranceBernardo Dominic RENEWAL
Antonio X FlosiGermanyXuxue Feng NEGOTIATION
Smith Z BriddickJapanStephen Shaw NEGOTIATION
Octavia X BriddickGermanyStephen Shaw NEGOTIATION
Maria Y GillianBrazilIvan Magalhaes UNQUALIFIED
Leja L PerinIndiaStephen Shaw UNQUALIFIED
Adams T SergiItalyAnna Fali NEW
Jeanfrancois V SchemmerIndiaBernardo Dominic NEGOTIATION
Deepesh N RoysterGermanyBernardo Dominic QUALIFIED
Ricardo W AlbaresSpainAnna Fali NEGOTIATION
Francesco Z WaycottRussiaAsiya Javayant QUALIFIED
Octavia T SchemmerRussiaBernardo Dominic RENEWAL
Aditya E SchemmerIndiaIvan Magalhaes NEW
Greenwood R TollnerBrazilIvan Magalhaes UNQUALIFIED
Kaitlin E RimSpainStephen Shaw QUALIFIED
Jennifer W CampainFranceOnyama Limba UNQUALIFIED
Mujtaba O MaletFranceAnna Fali UNQUALIFIED
Sinclair A SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey E AlbaresGermanyXuxue Feng RENEWAL
Chavez G InouyeCanadaIoni Bowcher QUALIFIED
Arvin M WieserSpainBernardo Dominic NEGOTIATION
Stacey S RimJapanStephen Shaw UNQUALIFIED
Alejandro S PerinRussiaXuxue Feng NEW
Tony T AmigonIndiaAnna Fali NEGOTIATION
Stacey F GlickGermanyBernardo Dominic PROPOSAL
Misaki V MacleadAustraliaAnna Fali NEGOTIATION
Ivar A StockhamArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois J OldroydUnited KingdomStephen Shaw UNQUALIFIED
Stacey T RoysterArgentinaAsiya Javayant NEGOTIATION
Sinclair R BowleyCanadaXuxue Feng NEGOTIATION
Johnson R GillianFranceAnna Fali RENEWAL
Izzy W PoquetteJapanElwin Sharvill NEW
Jeanfrancois U IturbideJapanAmy Elsner NEGOTIATION
Jones R CaldareraAustraliaBernardo Dominic RENEWAL
Adams A DarakjyBrazilIvan Magalhaes QUALIFIED
Jeanfrancois V PaprockiUnited KingdomAmy Elsner NEGOTIATION
Juan H GarufiIndiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika U CampainArgentina2026-06-27Dorl, James J Esq QUALIFIED16Xuxue Feng
1001Izzy B CaldareraBrazil2026-07-03Morlong Associates QUALIFIED31Xuxue Feng
1002Misaki Y TollnerCanada2026-06-28Morlong Associates NEW44Amy Elsner
1003Izzy M BologniaArgentina2026-07-04Morlong Associates QUALIFIED57Onyama Limba
1004Nicolas J MaletSpain2026-06-14Buckley Miller Wright NEW10Anna Fali
1005Julie N WaycottIndia2026-07-02Dorl, James J Esq NEW30Onyama Limba
1006Jeanfrancois B NickaJapan2026-06-12Buckley Miller Wright NEGOTIATION75Asiya Javayant
1007Morrow N SergiGermany2026-06-30Printing Dimensions NEGOTIATION17Ioni Bowcher
1008Kaitlin Z GarufiUnited Kingdom2026-07-03Chapman, Ross E Esq QUALIFIED57Elwin Sharvill
1009Kadeem J StensethSpain2026-06-21Commercial Press QUALIFIED9Stephen Shaw
1010Munro O WaycottIndia2026-06-27King, Christopher A Esq QUALIFIED39Bernardo Dominic
1011Leon K BologniaUnited Kingdom2026-06-19Feltz Printing Service QUALIFIED97Elwin Sharvill
1012Kaitlin B PoquetteArgentina2026-06-15Benton, John B Jr NEW39Anna Fali
1013Clifford D KuskoAustralia2026-06-12Morlong Associates QUALIFIED40Asiya Javayant
1014Jennifer N WieserJapan2026-06-22Feltz Printing Service UNQUALIFIED23Onyama Limba
1015James Z NestleAustralia2026-06-22Chanay, Jeffrey A Esq PROPOSAL75Ivan Magalhaes
1016Antonio U GarufiItaly2026-06-16Truhlar And Truhlar Attys NEW28Onyama Limba
1017Morrow X OldroydItaly2026-06-24Feiner Bros RENEWAL58Anna Fali
1018Jennifer K CampainGermany2026-06-20King, Christopher A Esq NEW74Onyama Limba
1019Jeanfrancois R GlickJapan2026-06-29King, Christopher A Esq RENEWAL82Amy Elsner
1020Jeanfrancois K IturbideFrance2026-07-01Dorl, James J Esq PROPOSAL77Anna Fali
1021Sinclair Y RulapaughJapan2026-06-29Truhlar And Truhlar Attys PROPOSAL62Xuxue Feng
1022Leon N NestleArgentina2026-06-23Rangoni Of Florence QUALIFIED74Stephen Shaw
1023James M KuskoRussia2026-06-22Buckley Miller Wright NEW33Amy Elsner
1024Deepesh V MaletAustralia2026-06-08Feiner Bros UNQUALIFIED46Anna Fali
1025Murillo C GauchoItaly2026-07-03Feltz Printing Service RENEWAL27Anna Fali
1026Ricardo R CampainArgentina2026-07-04Feltz Printing Service RENEWAL79Anna Fali
1027Aika B AlbaresIndia2026-06-19Truhlar And Truhlar Attys RENEWAL63Asiya Javayant
1028Faith T IturbideJapan2026-06-15Rangoni Of Florence RENEWAL50Onyama Limba
1029Aika M MacleadIndia2026-06-10Morlong Associates PROPOSAL87Anna Fali
1030Munro T VenereSpain2026-06-22Feiner Bros NEGOTIATION0Onyama Limba
1031Morrow J WaycottGermany2026-06-12Feltz Printing Service UNQUALIFIED29Stephen Shaw
1032Smith Y SchemmerGermany2026-06-05Truhlar And Truhlar Attys NEW83Ioni Bowcher
1033Munro L DilliardGermany2026-06-05Rousseaux, Michael Esq QUALIFIED46Anna Fali
1034Tony R MaletRussia2026-06-29Buckley Miller Wright NEW83Xuxue Feng
1035Julie Z OldroydFrance2026-06-27Truhlar And Truhlar Attys QUALIFIED54Bernardo Dominic
1036Antonio F InouyeAustralia2026-06-23Truhlar And Truhlar Attys NEGOTIATION31Amy Elsner
1037Jefferson P AmigonAustralia2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED31Stephen Shaw
1038Aika M SlusarskiItaly2026-06-09Morlong Associates PROPOSAL91Xuxue Feng
1039Chavez E FollerArgentina2026-06-22Buckley Miller Wright NEW69Stephen Shaw
1040David V WaycottUnited Kingdom2026-06-25Buckley Miller Wright QUALIFIED33Stephen Shaw
1041Aditya Q MorascaGermany2026-06-07Chanay, Jeffrey A Esq QUALIFIED87Ioni Bowcher
1042Darci G RutaArgentina2026-06-18Chemel, James L Cpa NEGOTIATION35Ivan Magalhaes
1043Octavia X OldroydIndia2026-07-01Chemel, James L Cpa RENEWAL84Amy Elsner
1044Misaki I FerenczSpain2026-06-09Morlong Associates RENEWAL37Elwin Sharvill
1045Kadeem W MacleadSpain2026-06-29Chapman, Ross E Esq RENEWAL14Ioni Bowcher
1046Izzy V VocelkaSpain2026-06-14Dorl, James J Esq NEW49Ioni Bowcher
1047Jones T RoysterBrazil2026-06-14Benton, John B Jr QUALIFIED16Ioni Bowcher
1048Kadeem B RimItaly2026-06-27Chemel, James L Cpa RENEWAL82Ivan Magalhaes
1049Jeanfrancois A SaylorsGermany2026-06-22Dorl, James J Esq QUALIFIED39Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Faith R CaldareraJapanAnna Fali PROPOSAL
Murillo V IturbideBrazilStephen Shaw PROPOSAL
Izzy J FerenczIndiaBernardo Dominic PROPOSAL
Smith Z PaprockiSpainIoni Bowcher RENEWAL
Jeanfrancois T WhobreyCanadaIvan Magalhaes UNQUALIFIED
Emily G WaycottArgentinaAmy Elsner RENEWAL
Cody O GauchoRussiaAmy Elsner NEGOTIATION
Jeanfrancois V SchemmerCanadaElwin Sharvill UNQUALIFIED
Jones L RimUnited KingdomOnyama Limba PROPOSAL
Clifford H MarrierAustraliaIoni Bowcher NEGOTIATION
Mayumi Z OldroydRussiaAnna Fali NEW
Murillo P PaprockiArgentinaXuxue Feng UNQUALIFIED
Octavia W WieserAustraliaBernardo Dominic PROPOSAL
Leja J DoeFranceOnyama Limba RENEWAL
Wickens U MaletCanadaIvan Magalhaes NEGOTIATION
Faith K BriddickRussiaAnna Fali UNQUALIFIED
Stacey Z WaycottCanadaOnyama Limba QUALIFIED
Izzy C CaudySpainIoni Bowcher RENEWAL
Salvatore I CaudyFranceAmy Elsner QUALIFIED
Johnson Z MorascaSpainAmy Elsner NEGOTIATION
Smith Q AmigonUnited KingdomAmy Elsner NEW
Jones X TollnerSpainAsiya Javayant PROPOSAL
Mayumi D VocelkaFranceAsiya Javayant UNQUALIFIED
Munro K SaylorsSpainAnna Fali RENEWAL
Isabel E MacleadItalyIvan Magalhaes PROPOSAL
Kaitlin C WaycottItalyXuxue Feng PROPOSAL
Kadeem Z WaycottAustraliaElwin Sharvill NEW
Smith W GillianCanadaIvan Magalhaes PROPOSAL
Jeanfrancois G NickaJapanXuxue Feng QUALIFIED
Emily Z SergiArgentinaAnna Fali RENEWAL
Faith T MaletJapanAmy Elsner PROPOSAL
Aika H SchemmerArgentinaIoni Bowcher NEW
Maisha U MorascaCanadaIoni Bowcher RENEWAL
Wickens S StockhamCanadaIoni Bowcher PROPOSAL
Octavia N StockhamItalyOnyama Limba PROPOSAL
Ashley Y MacleadSpainElwin Sharvill RENEWAL
Mayumi X PoquetteAustraliaElwin Sharvill PROPOSAL
Aruna I OldroydAustraliaIoni Bowcher UNQUALIFIED
Kadeem H NickaFranceAsiya Javayant NEW
Jennifer C GlickCanadaOnyama Limba UNQUALIFIED
Johnson T KuskoCanadaAsiya Javayant UNQUALIFIED
Silvio O NickaFranceElwin Sharvill NEGOTIATION
Nicolas D FigeroaCanadaXuxue Feng NEW
Clifford F WhobreyGermanyOnyama Limba QUALIFIED
Darci I RutaBrazilOnyama Limba NEW
Maisha K MarrierFranceBernardo Dominic PROPOSAL
Jennifer L BowleyJapanAmy Elsner PROPOSAL
Emily X StockhamFranceAnna Fali NEW
Munro O MaletSpainAnna Fali NEW
Chavez I AlbaresJapanBernardo Dominic NEW
Frozen Columns
Name
Deepesh A Ruta
Ashley Y Shinko
Arvin W Maclead
Emily K Nestle
Jeanfrancois Y Wieser
Kaitlin Y Malet
Cody S Slusarski
Salvatore X Kolmetz
Leon I Tollner
Octavia B Gaucho
Francesco F Ruta
Jennifer S Iturbide
Murillo J Campain
Octavia M Butt
Antonio B Chui
Alejandro O Albares
Clifford L Foller
Maisha G Ostrosky
Maria A Bowley
Leon C Tollner
Julie E Ruta
Maisha A Oldroyd
Adams X Nestle
Isabel T Garufi
Smith P Waycott
Kaitlin B Ostrosky
Kaitlin H Bolognia
Juan S Glick
Jennifer J Rim
Leon H Gaucho
Ricardo F Schemmer
Aruna Y Bowley
Salvatore P Bolognia
Murillo J Caudy
Deepesh R Glick
Juan C Nicka
Antonio E Perin
Munro U Rulapaugh
Smith W Gillian
Kaitlin Z Caudy
Claire U Glick
Aditya Y Stenseth
Tony L Bowley
Ashley A Venere
Jennifer J Vocelka
Mujtaba H Venere
Jefferson S Dilliard
Nicolas H Vocelka
Leja V Slusarski
Rodrigues Z Whobrey
IdCountryDate
1000Russia2026-06-17
1001Brazil2026-06-15
1002Spain2026-06-14
1003Argentina2026-06-24
1004Spain2026-06-15
1005Japan2026-06-27
1006Argentina2026-07-03
1007Australia2026-06-14
1008Argentina2026-06-21
1009Russia2026-06-18
1010United Kingdom2026-07-04
1011Italy2026-06-11
1012Australia2026-06-19
1013Germany2026-06-18
1014Australia2026-07-01
1015Canada2026-06-21
1016Australia2026-06-24
1017Australia2026-07-03
1018Canada2026-06-30
1019Australia2026-06-28
1020Canada2026-06-13
1021United Kingdom2026-06-22
1022Russia2026-06-08
1023Brazil2026-06-21
1024Spain2026-07-04
1025Italy2026-06-21
1026Russia2026-06-30
1027Brazil2026-06-05
1028Italy2026-06-26
1029Canada2026-06-10
1030Italy2026-06-08
1031United Kingdom2026-06-08
1032Japan2026-06-11
1033Brazil2026-06-22
1034Australia2026-06-23
1035Italy2026-06-26
1036Russia2026-06-20
1037Germany2026-07-02
1038Argentina2026-07-03
1039Germany2026-06-08
1040United Kingdom2026-07-01
1041India2026-06-15
1042Australia2026-06-11
1043Argentina2026-06-25
1044Brazil2026-06-16
1045Japan2026-06-21
1046Brazil2026-06-13
1047Argentina2026-06-14
1048Australia2026-06-22
1049United Kingdom2026-07-02

On-Demand Data

NameIdCountryDate
Darci N Marrier1000Russia2026-06-21
Ivar S Bowley1001Italy2026-06-11
Aika G Sergi1002Japan2026-07-03
Jeanfrancois G Campain1003Italy2026-06-26
Ashley Q Rim1004United Kingdom2026-07-01
Aditya X Perin1005Russia2026-06-25
Cody G Nicka1006Canada2026-06-25
Ivar H Briddick1007Russia2026-06-17
Morrow T Caudy1008Australia2026-06-24
Kaitlin Z Tollner1009Spain2026-06-07
Kadeem F Rim1010Germany2026-06-07
Francesco N Doe1011France2026-06-27
Ivar R Whobrey1012Spain2026-06-07
Leja W Malet1013Argentina2026-06-09
Jones C Venere1014Australia2026-06-27
Claire V Ruta1015Brazil2026-06-24
Arvin V Saylors1016Japan2026-06-09
Mujtaba Z Saylors1017Germany2026-06-23
Izzy R Shinko1018Canada2026-06-08
Rodrigues M Garufi1019Germany2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones O GauchoBrazilAsiya Javayant UNQUALIFIED
Misaki S InouyeFranceXuxue Feng NEW
Leon U ShinkoIndiaIoni Bowcher NEGOTIATION
Francesco W GarufiItalyStephen Shaw RENEWAL
Leja C ChuiSpainElwin Sharvill RENEWAL
Clifford O OldroydJapanElwin Sharvill NEW
Costa K FollerGermanyXuxue Feng RENEWAL
Ricardo P RimGermanyOnyama Limba NEW
Kaitlin V ShinkoIndiaAsiya Javayant QUALIFIED
Claire K RimGermanyXuxue Feng RENEWAL
Mayumi T WhobreyAustraliaBernardo Dominic RENEWAL
Aika R ButtBrazilOnyama Limba NEW
Sinclair V GlickJapanIvan Magalhaes NEGOTIATION
Maria L CaldareraRussiaIvan Magalhaes NEW
Nicolas G CaudyItalyAmy Elsner NEW
Leja I FlosiCanadaAsiya Javayant NEW
Munro O RoysterCanadaIvan Magalhaes PROPOSAL
Stacey J NestleJapanXuxue Feng UNQUALIFIED
Juan P WaycottFranceBernardo Dominic RENEWAL
Cody N GarufiCanadaAmy Elsner RENEWAL
Kadeem P NestleJapanStephen Shaw RENEWAL
Jefferson A MacleadUnited KingdomStephen Shaw QUALIFIED
Alejandro Y GauchoIndiaIoni Bowcher RENEWAL
Deepesh R FigeroaCanadaOnyama Limba UNQUALIFIED
Aruna Y GillianJapanBernardo Dominic QUALIFIED
Rodrigues S SchemmerUnited KingdomStephen Shaw RENEWAL
Alejandro S ShinkoRussiaAnna Fali PROPOSAL
Claire I KuskoJapanXuxue Feng UNQUALIFIED
Francesco K SergiBrazilOnyama Limba QUALIFIED
Cody A WaycottArgentinaElwin Sharvill NEW
Isabel D GarufiCanadaAsiya Javayant PROPOSAL
James A MaletArgentinaElwin Sharvill UNQUALIFIED
Emily M RulapaughFranceIvan Magalhaes PROPOSAL
Jennifer H InouyeCanadaAmy Elsner NEW
Murillo T CaudyBrazilBernardo Dominic UNQUALIFIED
Aditya Y BowleyUnited KingdomAsiya Javayant PROPOSAL
Darci W CaldareraRussiaBernardo Dominic NEW
Murillo S WhobreyFranceIvan Magalhaes NEW
Claire M MacleadArgentinaElwin Sharvill NEW
James I RutaSpainBernardo 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>