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
Jeanfrancois I RutaArgentinaAnna Fali RENEWAL
Izzy R GillianBrazilElwin Sharvill QUALIFIED
Maisha T VocelkaUnited KingdomAsiya Javayant PROPOSAL
Kadeem F RimAustraliaAsiya Javayant QUALIFIED
Sinclair Y SergiItalyOnyama Limba PROPOSAL
Nicolas L FerenczItalyIvan Magalhaes NEW
Murillo P NickaArgentinaAsiya Javayant NEGOTIATION
Izzy F NestleAustraliaStephen Shaw RENEWAL
Arvin K KolmetzAustraliaIoni Bowcher QUALIFIED
Aika R KolmetzFranceBernardo Dominic NEW
Rodrigues E FerenczGermanyXuxue Feng QUALIFIED
Smith K CaldareraAustraliaAmy Elsner QUALIFIED
Cody E FlosiFranceAnna Fali NEW
Aditya B ShinkoArgentinaElwin Sharvill QUALIFIED
Greenwood M CampainBrazilStephen Shaw UNQUALIFIED
Kadeem T SchemmerArgentinaAsiya Javayant NEGOTIATION
Alejandro W GillianSpainOnyama Limba UNQUALIFIED
Cody G BologniaUnited KingdomOnyama Limba PROPOSAL
Ashley Q FollerIndiaIoni Bowcher QUALIFIED
Isabel S CaudyArgentinaXuxue Feng UNQUALIFIED
Costa C GarufiSpainIoni Bowcher QUALIFIED
Costa F ChuiCanadaAnna Fali QUALIFIED
Smith G RimRussiaAmy Elsner PROPOSAL
Rodrigues Y BriddickSpainAnna Fali NEW
Ivar B GauchoItalyIvan Magalhaes QUALIFIED
Jennifer B GillianArgentinaAnna Fali NEGOTIATION
Stacey F SaylorsGermanyAmy Elsner UNQUALIFIED
Leja P CampainBrazilAnna Fali PROPOSAL
Morrow N CampainJapanStephen Shaw NEGOTIATION
Chavez R BowleyItalyBernardo Dominic UNQUALIFIED
Sinclair L CaldareraSpainIoni Bowcher RENEWAL
David T RoysterSpainAnna Fali NEW
Jeanfrancois T PoquetteItalyAmy Elsner PROPOSAL
Julie F InouyeAustraliaIoni Bowcher RENEWAL
Wickens R SchemmerArgentinaBernardo Dominic PROPOSAL
Smith M FigeroaJapanIoni Bowcher RENEWAL
Jefferson Y FlosiArgentinaElwin Sharvill PROPOSAL
Maisha O IturbideArgentinaAsiya Javayant NEGOTIATION
Octavia Y BowleyIndiaXuxue Feng PROPOSAL
Antonio H MaletItalyAsiya Javayant NEGOTIATION
Stacey A ButtJapanAsiya Javayant RENEWAL
Jones D IturbideCanadaBernardo Dominic NEW
Jennifer N DoeItalyAsiya Javayant NEW
Ashley R SlusarskiFranceAnna Fali UNQUALIFIED
Alejandro X CaldareraFranceAnna Fali PROPOSAL
Julie Q InouyeRussiaIvan Magalhaes UNQUALIFIED
David I BowleyJapanStephen Shaw NEW
Leja I AmigonSpainStephen Shaw NEGOTIATION
Salvatore P SergiAustraliaXuxue Feng PROPOSAL
Leja I GlickAustraliaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria R SergiUnited KingdomIoni Bowcher UNQUALIFIED
Jones X GauchoIndiaAsiya Javayant NEW
Octavia H WieserUnited KingdomOnyama Limba PROPOSAL
Munro R BologniaBrazilIoni Bowcher NEW
Jeanfrancois X DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Nicolas P FlosiFranceIoni Bowcher RENEWAL
James X BowleyArgentinaElwin Sharvill PROPOSAL
Claire S KolmetzIndiaAnna Fali UNQUALIFIED
Silvio I FigeroaAustraliaIoni Bowcher UNQUALIFIED
Juan V StensethRussiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci R BowleyGermany2026-07-04Rangoni Of Florence NEGOTIATION11Ioni Bowcher
1001Morrow J SergiJapan2026-07-06Chemel, James L Cpa QUALIFIED1Stephen Shaw
1002Aika Z StensethGermany2026-06-16Buckley Miller Wright QUALIFIED98Bernardo Dominic
1003Aruna P DilliardItaly2026-06-23Rangoni Of Florence PROPOSAL21Anna Fali
1004Faith A SchemmerJapan2026-07-04Morlong Associates RENEWAL56Stephen Shaw
1005Octavia G BowleyAustralia2026-06-12King, Christopher A Esq NEGOTIATION35Ioni Bowcher
1006Murillo X MaletUnited Kingdom2026-06-30Printing Dimensions QUALIFIED95Asiya Javayant
1007Mayumi X DilliardFrance2026-06-12Chemel, James L Cpa QUALIFIED42Ioni Bowcher
1008Ashley L WieserUnited Kingdom2026-07-03King, Christopher A Esq NEW26Onyama Limba
1009Chavez V GarufiItaly2026-06-19Rangoni Of Florence UNQUALIFIED39Bernardo Dominic
1010Julie B NickaCanada2026-06-12Chanay, Jeffrey A Esq PROPOSAL0Asiya Javayant
1011Costa F IturbideGermany2026-06-29Chapman, Ross E Esq NEGOTIATION58Onyama Limba
1012Izzy X KuskoItaly2026-06-20Chapman, Ross E Esq PROPOSAL60Ivan Magalhaes
1013Antonio O MaletCanada2026-07-02Benton, John B Jr PROPOSAL6Ioni Bowcher
1014Kaitlin P IturbideBrazil2026-07-05Benton, John B Jr RENEWAL17Bernardo Dominic
1015Alejandro I VocelkaItaly2026-06-27Chapman, Ross E Esq NEW89Bernardo Dominic
1016Nicolas X FigeroaRussia2026-07-04Rousseaux, Michael Esq RENEWAL51Ioni Bowcher
1017Munro L WieserIndia2026-07-09Dorl, James J Esq NEGOTIATION86Elwin Sharvill
1018Faith W BowleyBrazil2026-07-06Dorl, James J Esq NEW21Anna Fali
1019Emily D RoysterJapan2026-06-14Benton, John B Jr UNQUALIFIED33Xuxue Feng
1020Cody J IturbideGermany2026-06-29Rousseaux, Michael Esq QUALIFIED76Anna Fali
1021Jennifer I SergiBrazil2026-07-09Printing Dimensions PROPOSAL41Bernardo Dominic
1022Kaitlin Q PaprockiBrazil2026-06-12Morlong Associates QUALIFIED72Elwin Sharvill
1023Jefferson R ShinkoArgentina2026-07-06King, Christopher A Esq QUALIFIED72Anna Fali
1024Leon G RoysterBrazil2026-06-16Dorl, James J Esq UNQUALIFIED52Stephen Shaw
1025Wickens W StockhamIndia2026-06-26Feltz Printing Service QUALIFIED57Xuxue Feng
1026Greenwood F StockhamArgentina2026-06-27Chapman, Ross E Esq PROPOSAL81Bernardo Dominic
1027Clifford V VenereGermany2026-06-20Chapman, Ross E Esq RENEWAL4Anna Fali
1028Julie R VocelkaSpain2026-06-26Rousseaux, Michael Esq RENEWAL70Stephen Shaw
1029Aditya X ButtArgentina2026-07-01Rousseaux, Michael Esq NEGOTIATION51Xuxue Feng
1030Maisha W WhobreyAustralia2026-07-06Morlong Associates UNQUALIFIED29Anna Fali
1031Alejandro F MacleadBrazil2026-06-30Dorl, James J Esq NEW28Onyama Limba
1032Wickens J SlusarskiUnited Kingdom2026-07-08Chanay, Jeffrey A Esq NEGOTIATION9Onyama Limba
1033Silvio H FlosiIndia2026-06-24Dorl, James J Esq NEW37Elwin Sharvill
1034Emily I KolmetzJapan2026-06-12Truhlar And Truhlar Attys RENEWAL78Onyama Limba
1035Faith C FerenczUnited Kingdom2026-06-12Feltz Printing Service RENEWAL94Ivan Magalhaes
1036Isabel D BologniaJapan2026-06-16Morlong Associates PROPOSAL34Stephen Shaw
1037Cody J AmigonUnited Kingdom2026-06-14Feiner Bros NEW21Stephen Shaw
1038Munro R MaletCanada2026-06-27Rangoni Of Florence NEGOTIATION36Stephen Shaw
1039Greenwood J SlusarskiUnited Kingdom2026-06-30Chanay, Jeffrey A Esq NEGOTIATION82Elwin Sharvill
1040Tony V SaylorsCanada2026-06-12Feltz Printing Service RENEWAL22Elwin Sharvill
1041Nicolas I MarrierItaly2026-06-19Benton, John B Jr PROPOSAL12Bernardo Dominic
1042James W AmigonUnited Kingdom2026-06-22Benton, John B Jr PROPOSAL58Bernardo Dominic
1043Ricardo Y RutaIndia2026-06-28Printing Dimensions NEGOTIATION77Onyama Limba
1044Chavez R KuskoBrazil2026-06-11Feiner Bros RENEWAL8Anna Fali
1045Adams V RutaUnited Kingdom2026-07-07Rangoni Of Florence PROPOSAL35Xuxue Feng
1046David Z MarrierUnited Kingdom2026-06-12Chanay, Jeffrey A Esq NEW49Stephen Shaw
1047Ricardo Z OstroskyArgentina2026-06-11Dorl, James J Esq RENEWAL93Bernardo Dominic
1048Murillo F OstroskyFrance2026-07-09Printing Dimensions UNQUALIFIED7Onyama Limba
1049Leon A InouyeSpain2026-06-28Feltz Printing Service PROPOSAL84Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jennifer M WaycottFranceAnna Fali RENEWAL
Darci U MacleadSpainAnna Fali NEW
Darci G GauchoJapanXuxue Feng NEGOTIATION
Maisha T GauchoUnited KingdomStephen Shaw QUALIFIED
David A AmigonUnited KingdomStephen Shaw QUALIFIED
Ashley X StockhamArgentinaAsiya Javayant UNQUALIFIED
Johnson M MacleadSpainAsiya Javayant NEGOTIATION
Mujtaba A VenereJapanElwin Sharvill PROPOSAL
Izzy D RimUnited KingdomIvan Magalhaes RENEWAL
Ashley A DoeUnited KingdomBernardo Dominic NEW
Aruna H PerinAustraliaBernardo Dominic RENEWAL
David I ShinkoGermanyIvan Magalhaes NEGOTIATION
Rodrigues U FlosiJapanElwin Sharvill QUALIFIED
Kaitlin O ChuiBrazilAsiya Javayant PROPOSAL
Murillo N MaletGermanyElwin Sharvill NEW
Darci N DoeSpainAmy Elsner NEGOTIATION
Ricardo O CaudyAustraliaBernardo Dominic RENEWAL
Jeanfrancois L PaprockiJapanIvan Magalhaes UNQUALIFIED
Jennifer F SlusarskiJapanIvan Magalhaes UNQUALIFIED
Salvatore Q IturbideRussiaXuxue Feng UNQUALIFIED
Leja C PoquetteUnited KingdomAnna Fali PROPOSAL
Greenwood M CampainAustraliaAmy Elsner RENEWAL
Arvin A TollnerFranceAsiya Javayant UNQUALIFIED
Cody B NickaAustraliaElwin Sharvill PROPOSAL
Ivar O PerinUnited KingdomOnyama Limba NEW
Claire B CaudyFranceBernardo Dominic NEW
Aruna R DoeAustraliaIoni Bowcher QUALIFIED
Emily D BriddickCanadaIoni Bowcher NEGOTIATION
Izzy F CaldareraRussiaIoni Bowcher QUALIFIED
Ashley W WaycottSpainIoni Bowcher QUALIFIED
Arvin L ShinkoCanadaBernardo Dominic UNQUALIFIED
Nicolas S WieserGermanyXuxue Feng QUALIFIED
Ricardo D SergiUnited KingdomOnyama Limba QUALIFIED
Jennifer U TollnerItalyAsiya Javayant QUALIFIED
Julie Y MarrierJapanXuxue Feng RENEWAL
Tony S SchemmerSpainXuxue Feng RENEWAL
Ivar I NickaUnited KingdomXuxue Feng NEGOTIATION
Smith F RoysterGermanyStephen Shaw QUALIFIED
Antonio X RimUnited KingdomBernardo Dominic NEW
James Y GlickCanadaOnyama Limba UNQUALIFIED
Maria V RoysterArgentinaAmy Elsner PROPOSAL
Isabel P DarakjyBrazilElwin Sharvill UNQUALIFIED
Maisha I SergiGermanyAmy Elsner QUALIFIED
Ashley G GauchoArgentinaIoni Bowcher QUALIFIED
James T OldroydSpainElwin Sharvill NEGOTIATION
Maria J SlusarskiIndiaBernardo Dominic PROPOSAL
Misaki X RimBrazilBernardo Dominic UNQUALIFIED
Salvatore V StensethAustraliaIoni Bowcher QUALIFIED
Leja U RoysterGermanyAmy Elsner RENEWAL
Mayumi Q MarrierCanadaIoni Bowcher RENEWAL
Frozen Columns
Name
Emily B Sergi
Claire Q Nicka
Leon N Ostrosky
Ashley A Malet
Aditya D Stockham
Aika U Royster
Mayumi Q Campain
Octavia X Garufi
Arvin O Rulapaugh
Leja K Flosi
Salvatore Y Gillian
Francesco L Amigon
Tony F Slusarski
Maria N Rim
Adams W Iturbide
Chavez Y Campain
Julie U Nicka
Leja U Poquette
Antonio A Waycott
Nicolas M Glick
Maisha K Ferencz
Jeanfrancois B Tollner
Adams Q Paprocki
Wickens B Tollner
Deepesh E Waycott
Juan A Nicka
Silvio F Maclead
Francesco C Gillian
Morrow S Malet
Aika Z Campain
Ivar L Ostrosky
Tony C Inouye
Francesco C Shinko
Adams I Ruta
Antonio U Malet
Alejandro J Nicka
Rodrigues J Paprocki
Wickens E Royster
Sinclair T Poquette
David U Dilliard
Isabel I Malet
Faith L Flosi
Clifford A Stockham
Sinclair O Butt
Costa N Kolmetz
Ivar B Whobrey
Jeanfrancois Z Oldroyd
Maria W Ostrosky
Ashley V Morasca
Aruna C Slusarski
IdCountryDate
1000Italy2026-06-25
1001France2026-06-11
1002Russia2026-06-29
1003Australia2026-07-03
1004Brazil2026-06-15
1005Spain2026-07-03
1006Argentina2026-06-20
1007Brazil2026-06-24
1008India2026-06-29
1009United Kingdom2026-07-08
1010Spain2026-07-03
1011Canada2026-06-12
1012Canada2026-06-21
1013France2026-07-07
1014Argentina2026-06-30
1015Brazil2026-06-17
1016Russia2026-06-29
1017Canada2026-06-26
1018Argentina2026-06-21
1019United Kingdom2026-06-10
1020Russia2026-06-21
1021France2026-06-15
1022Canada2026-06-26
1023India2026-06-22
1024Brazil2026-06-21
1025Canada2026-07-09
1026Spain2026-06-27
1027Spain2026-07-02
1028Spain2026-07-05
1029Canada2026-07-03
1030Canada2026-06-22
1031France2026-06-27
1032France2026-07-09
1033Russia2026-06-24
1034Germany2026-06-20
1035Italy2026-07-09
1036Brazil2026-06-29
1037Russia2026-06-26
1038Canada2026-06-15
1039India2026-06-26
1040Australia2026-07-03
1041Japan2026-06-16
1042Germany2026-07-09
1043Japan2026-06-27
1044Italy2026-07-08
1045Russia2026-07-01
1046India2026-06-24
1047Italy2026-07-08
1048France2026-06-10
1049Brazil2026-06-30

On-Demand Data

NameIdCountryDate
Darci Z Malet1000United Kingdom2026-07-03
Aika L Briddick1001Canada2026-06-14
Maria A Briddick1002Brazil2026-06-19
Misaki S Royster1003India2026-06-17
Morrow G Foller1004Germany2026-07-09
Jones Q Oldroyd1005Italy2026-07-03
Cody L Tollner1006Spain2026-06-26
Arvin W Chui1007Australia2026-07-08
Alejandro L Gaucho1008Australia2026-06-13
Jefferson Z Figeroa1009Canada2026-06-14
Emily D Briddick1010France2026-06-28
Maria D Rulapaugh1011Russia2026-06-20
Ivar M Slusarski1012Spain2026-07-04
Mujtaba C Flosi1013Canada2026-06-30
Ashley X Flosi1014Argentina2026-06-29
Octavia V Perin1015Russia2026-06-24
Sinclair U Rim1016Argentina2026-06-19
Mayumi T Ostrosky1017Brazil2026-06-26
Alejandro I Paprocki1018India2026-06-14
Julie I Kolmetz1019Brazil2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens E MorascaCanadaAmy Elsner PROPOSAL
Murillo W KolmetzItalyIvan Magalhaes QUALIFIED
Morrow N ShinkoBrazilIvan Magalhaes NEGOTIATION
Murillo Y WhobreyFranceAmy Elsner NEGOTIATION
Rodrigues V MaletIndiaOnyama Limba PROPOSAL
Rodrigues Q BowleyAustraliaIvan Magalhaes NEW
Francesco Z NestleJapanXuxue Feng NEGOTIATION
Isabel F MorascaFranceAmy Elsner NEW
Sinclair Z WieserUnited KingdomOnyama Limba PROPOSAL
Wickens E OstroskyRussiaAmy Elsner NEW
Chavez B WaycottFranceXuxue Feng NEW
Aditya H WhobreyFranceAsiya Javayant NEGOTIATION
Clifford F FerenczArgentinaIvan Magalhaes UNQUALIFIED
Cody O CaldareraAustraliaBernardo Dominic UNQUALIFIED
Jones T GauchoRussiaIvan Magalhaes RENEWAL
Antonio X WhobreyFranceBernardo Dominic NEW
Jefferson N WieserItalyStephen Shaw QUALIFIED
Mayumi V InouyeBrazilAsiya Javayant UNQUALIFIED
Tony X DoeAustraliaIoni Bowcher NEW
Julie M PerinRussiaXuxue Feng RENEWAL
Nicolas W SaylorsRussiaAsiya Javayant PROPOSAL
Chavez K BriddickCanadaBernardo Dominic NEW
Aika O KolmetzCanadaXuxue Feng RENEWAL
Leja F SaylorsJapanIvan Magalhaes NEW
Ashley Q ButtGermanyXuxue Feng NEGOTIATION
Aruna F GarufiBrazilAnna Fali PROPOSAL
Ashley N BriddickIndiaAsiya Javayant RENEWAL
Aditya W FerenczFranceAsiya Javayant UNQUALIFIED
Darci K StockhamJapanIoni Bowcher NEW
Leon N FerenczRussiaElwin Sharvill PROPOSAL
Murillo L MarrierIndiaAnna Fali RENEWAL
Misaki P AmigonCanadaAmy Elsner UNQUALIFIED
Arvin E MorascaBrazilOnyama Limba RENEWAL
Mayumi V BologniaAustraliaIoni Bowcher UNQUALIFIED
Deepesh I CaudyArgentinaIvan Magalhaes RENEWAL
Wickens O WaycottRussiaElwin Sharvill NEW
Ricardo T AlbaresFranceAmy Elsner PROPOSAL
Wickens M PoquetteGermanyOnyama Limba NEW
Johnson M InouyeBrazilAmy Elsner UNQUALIFIED
Aditya J FollerArgentinaOnyama Limba 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>