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
Mujtaba B RoysterIndiaIvan Magalhaes QUALIFIED
Morrow P SergiAustraliaOnyama Limba UNQUALIFIED
Smith J KuskoAustraliaAsiya Javayant NEGOTIATION
Faith A DoeUnited KingdomXuxue Feng UNQUALIFIED
Maria A PoquetteSpainXuxue Feng RENEWAL
David H InouyeJapanIvan Magalhaes UNQUALIFIED
Costa L MaletItalyAmy Elsner NEGOTIATION
Jones C MaletAustraliaOnyama Limba PROPOSAL
Tony W ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Nicolas X RutaJapanAsiya Javayant NEGOTIATION
Munro V BologniaArgentinaBernardo Dominic RENEWAL
Rodrigues F StensethItalyAsiya Javayant NEGOTIATION
Smith L AlbaresIndiaIvan Magalhaes NEW
Stacey T VocelkaGermanyBernardo Dominic RENEWAL
Kaitlin G FigeroaBrazilIoni Bowcher NEGOTIATION
Smith K SchemmerAustraliaAmy Elsner NEW
Aruna L AmigonArgentinaAsiya Javayant UNQUALIFIED
Costa D WhobreyGermanyAnna Fali NEW
Jeanfrancois M OldroydBrazilIvan Magalhaes PROPOSAL
Salvatore Z NickaArgentinaIvan Magalhaes NEW
Maria D WaycottFranceAsiya Javayant QUALIFIED
Isabel J StensethIndiaAmy Elsner UNQUALIFIED
Aditya Y OstroskyArgentinaOnyama Limba NEW
Cody J FigeroaBrazilXuxue Feng NEGOTIATION
Aditya O IturbideBrazilAmy Elsner RENEWAL
Francesco Z IturbideFranceIoni Bowcher NEW
Leon T WaycottFranceAsiya Javayant NEW
Murillo U AlbaresAustraliaIvan Magalhaes NEGOTIATION
Faith A GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson S FerenczGermanyAsiya Javayant NEW
Morrow X SchemmerJapanXuxue Feng NEW
Julie F PerinSpainBernardo Dominic UNQUALIFIED
Jennifer K MaletFranceStephen Shaw RENEWAL
Arvin G ChuiCanadaElwin Sharvill QUALIFIED
Maisha L DilliardArgentinaBernardo Dominic PROPOSAL
Claire C BologniaCanadaAmy Elsner QUALIFIED
Claire L GlickJapanAnna Fali PROPOSAL
Cody L FerenczUnited KingdomElwin Sharvill NEGOTIATION
Francesco S AmigonCanadaIvan Magalhaes RENEWAL
Silvio Y ChuiRussiaAmy Elsner PROPOSAL
Ashley I ChuiGermanyIoni Bowcher NEW
Maria Z BriddickSpainAnna Fali UNQUALIFIED
Julie N GauchoAustraliaBernardo Dominic PROPOSAL
Faith F VenereSpainAmy Elsner RENEWAL
Murillo H GlickArgentinaAnna Fali RENEWAL
Greenwood L RulapaughIndiaIvan Magalhaes NEW
Ricardo H StensethCanadaBernardo Dominic UNQUALIFIED
Greenwood K MarrierCanadaAsiya Javayant NEGOTIATION
Emily P GlickSpainAnna Fali NEGOTIATION
Silvio K ShinkoGermanyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Julie O BriddickSpainIvan Magalhaes NEGOTIATION
Chavez Z WhobreyGermanyIoni Bowcher RENEWAL
Adams U RutaUnited KingdomIvan Magalhaes RENEWAL
Octavia F ShinkoArgentinaXuxue Feng UNQUALIFIED
Misaki K VenereFranceXuxue Feng RENEWAL
Julie P VenereUnited KingdomIvan Magalhaes NEGOTIATION
Morrow C DarakjyJapanStephen Shaw QUALIFIED
Aditya D DilliardUnited KingdomXuxue Feng QUALIFIED
Ricardo T MarrierBrazilIoni Bowcher NEGOTIATION
Isabel V SergiArgentinaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja C VocelkaFrance2026-07-16Chemel, James L Cpa RENEWAL43Amy Elsner
1001Faith K PoquetteJapan2026-07-07Rousseaux, Michael Esq NEGOTIATION82Amy Elsner
1002Antonio S GarufiFrance2026-07-05Benton, John B Jr UNQUALIFIED97Anna Fali
1003Wickens A MaletUnited Kingdom2026-06-23Chemel, James L Cpa NEGOTIATION3Bernardo Dominic
1004Arvin A GauchoArgentina2026-06-22Rangoni Of Florence QUALIFIED45Amy Elsner
1005Salvatore B CaldareraItaly2026-07-04Morlong Associates RENEWAL24Onyama Limba
1006Misaki M NestleGermany2026-06-21Buckley Miller Wright QUALIFIED63Elwin Sharvill
1007Wickens P SchemmerJapan2026-07-03Benton, John B Jr PROPOSAL9Onyama Limba
1008Nicolas F AlbaresArgentina2026-07-05Feltz Printing Service UNQUALIFIED81Xuxue Feng
1009Jeanfrancois N GlickAustralia2026-06-21Feiner Bros RENEWAL15Onyama Limba
1010Jeanfrancois W BowleyFrance2026-07-08Feltz Printing Service PROPOSAL5Xuxue Feng
1011Deepesh R MacleadSpain2026-07-14Printing Dimensions PROPOSAL40Ivan Magalhaes
1012Silvio K DoeFrance2026-07-02Chemel, James L Cpa NEW94Xuxue Feng
1013Deepesh N MarrierBrazil2026-07-17Benton, John B Jr NEGOTIATION67Asiya Javayant
1014Costa E DilliardAustralia2026-07-16Rousseaux, Michael Esq RENEWAL83Anna Fali
1015Costa H SlusarskiBrazil2026-07-10Benton, John B Jr PROPOSAL52Bernardo Dominic
1016Emily N MorascaCanada2026-06-22Chemel, James L Cpa PROPOSAL70Xuxue Feng
1017Jones T DoeJapan2026-07-18King, Christopher A Esq RENEWAL4Amy Elsner
1018Ricardo M WhobreyAustralia2026-07-08Dorl, James J Esq PROPOSAL44Amy Elsner
1019Jefferson R NestleJapan2026-07-11Benton, John B Jr NEW13Amy Elsner
1020Jeanfrancois R VocelkaSpain2026-07-04Truhlar And Truhlar Attys PROPOSAL86Xuxue Feng
1021Johnson J ChuiBrazil2026-06-29Feltz Printing Service NEW58Amy Elsner
1022Rodrigues H MacleadGermany2026-06-24Rousseaux, Michael Esq NEW97Amy Elsner
1023Jennifer Y MarrierFrance2026-07-05Morlong Associates UNQUALIFIED7Ioni Bowcher
1024Jefferson Q NickaArgentina2026-06-30Chapman, Ross E Esq UNQUALIFIED46Xuxue Feng
1025Sinclair M PoquetteBrazil2026-06-29Buckley Miller Wright QUALIFIED83Anna Fali
1026Smith Q BologniaCanada2026-06-20Rousseaux, Michael Esq UNQUALIFIED12Amy Elsner
1027Antonio I SlusarskiRussia2026-07-04Commercial Press PROPOSAL14Amy Elsner
1028Ricardo N PerinGermany2026-06-25Benton, John B Jr UNQUALIFIED12Anna Fali
1029Silvio F SlusarskiIndia2026-07-08Feiner Bros RENEWAL78Onyama Limba
1030Wickens B MaletCanada2026-07-04Dorl, James J Esq NEW56Ivan Magalhaes
1031Izzy F BowleyRussia2026-06-23Morlong Associates NEGOTIATION97Amy Elsner
1032Jennifer E BowleyJapan2026-07-08Commercial Press NEW31Elwin Sharvill
1033Octavia Y NickaItaly2026-07-15Rangoni Of Florence PROPOSAL26Elwin Sharvill
1034Munro T RulapaughArgentina2026-07-06Truhlar And Truhlar Attys NEW66Asiya Javayant
1035Sinclair G AlbaresBrazil2026-07-09Chemel, James L Cpa RENEWAL94Stephen Shaw
1036Greenwood X AmigonFrance2026-06-27Printing Dimensions NEGOTIATION82Stephen Shaw
1037Mujtaba N RoysterArgentina2026-07-19Commercial Press NEW34Ioni Bowcher
1038Julie O SchemmerBrazil2026-06-30Truhlar And Truhlar Attys NEW83Bernardo Dominic
1039Murillo A InouyeArgentina2026-07-07Rousseaux, Michael Esq UNQUALIFIED74Bernardo Dominic
1040Costa V AmigonArgentina2026-06-23Chanay, Jeffrey A Esq RENEWAL91Asiya Javayant
1041Nicolas J SaylorsUnited Kingdom2026-07-14Printing Dimensions NEGOTIATION65Ioni Bowcher
1042Aika F SchemmerJapan2026-06-23Morlong Associates NEW44Onyama Limba
1043Rodrigues J CaldareraBrazil2026-06-22Rousseaux, Michael Esq UNQUALIFIED79Xuxue Feng
1044Aruna U MarrierUnited Kingdom2026-07-10Chemel, James L Cpa UNQUALIFIED75Stephen Shaw
1045Alejandro U DoeSpain2026-06-30Chemel, James L Cpa UNQUALIFIED14Asiya Javayant
1046Munro H OstroskyItaly2026-07-09Feltz Printing Service QUALIFIED0Amy Elsner
1047Ashley D PaprockiBrazil2026-07-02Feiner Bros PROPOSAL92Ivan Magalhaes
1048Munro N StockhamAustralia2026-07-06Feltz Printing Service UNQUALIFIED20Anna Fali
1049Smith M MaletFrance2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED94Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Johnson E InouyeGermanyAmy Elsner QUALIFIED
Darci D ButtArgentinaIvan Magalhaes QUALIFIED
Wickens J BologniaRussiaElwin Sharvill NEGOTIATION
Kaitlin X StensethSpainAnna Fali PROPOSAL
Jefferson G MacleadCanadaStephen Shaw PROPOSAL
Rodrigues Z FollerCanadaBernardo Dominic QUALIFIED
Francesco T MacleadBrazilAsiya Javayant UNQUALIFIED
Aika A FollerJapanOnyama Limba PROPOSAL
Deepesh M OstroskyFranceIvan Magalhaes RENEWAL
Rodrigues Q RimGermanyStephen Shaw RENEWAL
Alejandro L GlickIndiaOnyama Limba RENEWAL
Isabel B SchemmerFranceAnna Fali NEGOTIATION
Julie Y BologniaBrazilElwin Sharvill NEGOTIATION
Maisha I BowleyUnited KingdomStephen Shaw PROPOSAL
Julie Z GarufiUnited KingdomAnna Fali PROPOSAL
Arvin H AmigonItalyXuxue Feng NEW
Jefferson W MarrierUnited KingdomOnyama Limba QUALIFIED
Isabel I CaldareraGermanyXuxue Feng QUALIFIED
Faith H IturbideItalyOnyama Limba RENEWAL
Jones G RimRussiaBernardo Dominic QUALIFIED
James F CaldareraGermanyAmy Elsner RENEWAL
Aika Z CaudyArgentinaIoni Bowcher NEW
Silvio U VocelkaCanadaOnyama Limba NEGOTIATION
Smith T MaletUnited KingdomIvan Magalhaes PROPOSAL
Aruna L MarrierRussiaIvan Magalhaes RENEWAL
Julie R WieserItalyIoni Bowcher PROPOSAL
Stacey J AmigonItalyIoni Bowcher PROPOSAL
Emily U GlickBrazilXuxue Feng NEW
Ashley P NestleBrazilIoni Bowcher RENEWAL
Jefferson D SergiArgentinaIvan Magalhaes NEW
Costa M SlusarskiSpainBernardo Dominic RENEWAL
Jefferson E AmigonUnited KingdomAsiya Javayant RENEWAL
David C PerinJapanAsiya Javayant PROPOSAL
Emily D MacleadAustraliaStephen Shaw PROPOSAL
Jones B InouyeSpainStephen Shaw NEW
Jefferson T DoeJapanAmy Elsner QUALIFIED
Kaitlin V ChuiBrazilElwin Sharvill NEGOTIATION
Cody E RutaJapanAsiya Javayant QUALIFIED
David L TollnerAustraliaAmy Elsner NEW
Stacey K WhobreyCanadaAsiya Javayant NEW
James C NickaBrazilBernardo Dominic UNQUALIFIED
Kaitlin H RimArgentinaXuxue Feng QUALIFIED
Leja Y MarrierAustraliaOnyama Limba NEGOTIATION
Greenwood R WhobreyBrazilElwin Sharvill NEGOTIATION
James N MaletCanadaIoni Bowcher RENEWAL
Greenwood N ButtFranceStephen Shaw RENEWAL
Tony Q WhobreyIndiaStephen Shaw QUALIFIED
Julie J BologniaCanadaOnyama Limba NEGOTIATION
Julie L AlbaresFranceAmy Elsner PROPOSAL
Jones U FollerIndiaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Stacey U Schemmer
Octavia E Foller
Munro N Waycott
Cody T Ostrosky
David B Maclead
Alejandro M Stenseth
James U Kusko
Clifford Y Maclead
Jefferson G Malet
Arvin O Paprocki
Sinclair P Inouye
Jennifer J Vocelka
Greenwood J Royster
Smith H Glick
Faith I Whobrey
Julie X Briddick
Aditya I Rulapaugh
Emily L Stenseth
Misaki P Whobrey
Johnson H Inouye
Claire E Sergi
Ivar M Flosi
Kadeem X Wieser
Clifford O Chui
Mujtaba V Sergi
Faith M Rulapaugh
Wickens Z Iturbide
Francesco W Figeroa
Jennifer R Campain
Sinclair W Saylors
Emily Q Albares
Jefferson Q Figeroa
Wickens R Foller
Mayumi Z Flosi
Nicolas H Malet
Sinclair Z Shinko
Leon W Stockham
Emily A Glick
Smith H Figeroa
Darci P Dilliard
Munro Y Ostrosky
Leon A Flosi
Murillo S Kusko
Deepesh J Stenseth
Wickens Q Waycott
Leon S Morasca
Sinclair N Nicka
Leon A Doe
Salvatore H Caudy
Stacey F Oldroyd
IdCountryDate
1000Italy2026-07-11
1001Russia2026-06-29
1002Italy2026-06-24
1003Australia2026-07-02
1004Canada2026-06-26
1005Australia2026-06-28
1006Italy2026-07-18
1007Argentina2026-06-24
1008Brazil2026-06-30
1009Germany2026-07-10
1010France2026-06-27
1011Argentina2026-07-19
1012Canada2026-07-17
1013France2026-07-15
1014Italy2026-06-22
1015United Kingdom2026-06-22
1016France2026-07-12
1017Spain2026-07-18
1018United Kingdom2026-07-15
1019United Kingdom2026-07-03
1020Brazil2026-07-17
1021Russia2026-06-25
1022India2026-06-21
1023Japan2026-07-12
1024Australia2026-06-20
1025France2026-06-24
1026Australia2026-07-08
1027Australia2026-07-13
1028Brazil2026-06-24
1029Italy2026-07-06
1030France2026-07-06
1031Argentina2026-06-25
1032France2026-07-09
1033India2026-06-23
1034France2026-07-03
1035Spain2026-06-26
1036Spain2026-06-21
1037Australia2026-06-27
1038France2026-07-09
1039Italy2026-07-17
1040France2026-06-22
1041Italy2026-06-21
1042Russia2026-06-21
1043United Kingdom2026-06-22
1044Italy2026-07-12
1045Russia2026-07-15
1046France2026-07-02
1047Italy2026-06-30
1048Italy2026-07-16
1049Japan2026-06-21

On-Demand Data

NameIdCountryDate
Antonio A Whobrey1000India2026-07-05
Silvio Z Oldroyd1001Argentina2026-07-06
Maria K Ostrosky1002Brazil2026-06-28
Maisha R Caldarera1003Japan2026-07-12
Silvio N Amigon1004Japan2026-07-16
Ashley F Bolognia1005Germany2026-06-22
Ricardo T Darakjy1006Australia2026-07-11
Mujtaba C Gillian1007Canada2026-07-06
Wickens W Nestle1008India2026-06-21
Alejandro M Malet1009Italy2026-07-04
Darci M Oldroyd1010Germany2026-06-20
Johnson M Gaucho1011Russia2026-06-21
Stacey R Tollner1012Japan2026-06-26
Maria D Rim1013Japan2026-07-03
Jeanfrancois X Ruta1014India2026-07-10
Antonio T Shinko1015Italy2026-06-20
Leon A Perin1016Italy2026-07-01
Alejandro J Kusko1017Canada2026-06-22
Nicolas R Poquette1018Italy2026-07-11
Maria J Dilliard1019Italy2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa L OldroydUnited KingdomIoni Bowcher RENEWAL
Arvin T IturbideAustraliaBernardo Dominic NEW
Ricardo O FigeroaIndiaXuxue Feng NEGOTIATION
Rodrigues G CaldareraBrazilStephen Shaw RENEWAL
Mujtaba R AlbaresUnited KingdomAsiya Javayant NEW
Silvio F DarakjyItalyStephen Shaw NEGOTIATION
Costa F OstroskyAustraliaBernardo Dominic PROPOSAL
Darci B RimRussiaAsiya Javayant RENEWAL
Deepesh O NestleGermanyBernardo Dominic NEGOTIATION
Aditya J PoquetteGermanyElwin Sharvill QUALIFIED
Francesco B NickaGermanyXuxue Feng RENEWAL
Arvin O SlusarskiCanadaXuxue Feng QUALIFIED
Silvio X BriddickGermanyAmy Elsner RENEWAL
Wickens W VenereArgentinaStephen Shaw QUALIFIED
Antonio O TollnerBrazilIvan Magalhaes NEW
Costa B DarakjySpainOnyama Limba RENEWAL
Rodrigues X DarakjyUnited KingdomBernardo Dominic PROPOSAL
Emily I GarufiRussiaAsiya Javayant PROPOSAL
Alejandro Q GlickIndiaElwin Sharvill UNQUALIFIED
Jennifer F BowleyArgentinaBernardo Dominic RENEWAL
Kaitlin Y ChuiArgentinaXuxue Feng QUALIFIED
Johnson S ChuiRussiaIoni Bowcher RENEWAL
Chavez G AlbaresArgentinaAnna Fali PROPOSAL
Emily T PerinRussiaOnyama Limba NEW
Aika A FollerBrazilAmy Elsner NEGOTIATION
Octavia F GlickJapanBernardo Dominic PROPOSAL
Maisha M RulapaughBrazilBernardo Dominic QUALIFIED
Murillo B PerinSpainAmy Elsner QUALIFIED
Kaitlin T FigeroaJapanAmy Elsner RENEWAL
Kaitlin R ShinkoIndiaIoni Bowcher QUALIFIED
Emily C VenereArgentinaXuxue Feng RENEWAL
Juan L PaprockiRussiaAnna Fali QUALIFIED
Emily R CampainBrazilAnna Fali UNQUALIFIED
Darci Q RulapaughGermanyAsiya Javayant QUALIFIED
Adams N MacleadRussiaOnyama Limba NEW
Stacey G MorascaSpainOnyama Limba NEW
Misaki C RimItalyStephen Shaw QUALIFIED
Adams X GarufiArgentinaIoni Bowcher NEW
Jeanfrancois Z AlbaresCanadaOnyama Limba UNQUALIFIED
Aditya E VenereJapanAmy 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>