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
Kadeem B KuskoUnited KingdomBernardo Dominic RENEWAL
Cody Q SergiUnited KingdomAmy Elsner NEGOTIATION
Jennifer E DoeArgentinaIvan Magalhaes NEW
Silvio M FerenczAustraliaIvan Magalhaes QUALIFIED
Rodrigues R ChuiArgentinaIvan Magalhaes NEW
Misaki V DoeIndiaOnyama Limba PROPOSAL
Emily Z MacleadCanadaAmy Elsner PROPOSAL
Murillo I SergiUnited KingdomXuxue Feng NEGOTIATION
Emily C SaylorsArgentinaXuxue Feng NEGOTIATION
Jefferson L GlickArgentinaAmy Elsner NEW
David S FigeroaFranceOnyama Limba RENEWAL
Leon M OstroskyIndiaBernardo Dominic RENEWAL
Jones B MaletGermanyIoni Bowcher RENEWAL
Murillo M BriddickUnited KingdomStephen Shaw PROPOSAL
Isabel N VocelkaFranceAnna Fali NEGOTIATION
Stacey Q StockhamIndiaBernardo Dominic NEW
Nicolas V AlbaresIndiaStephen Shaw RENEWAL
Aditya Q InouyeRussiaAmy Elsner QUALIFIED
James U MaletCanadaBernardo Dominic NEGOTIATION
Maisha V OstroskyIndiaStephen Shaw UNQUALIFIED
Leja A NickaUnited KingdomElwin Sharvill NEGOTIATION
Maria C IturbideJapanElwin Sharvill QUALIFIED
Morrow Q GlickFranceStephen Shaw NEGOTIATION
Greenwood E OldroydUnited KingdomBernardo Dominic QUALIFIED
Maria D BowleyUnited KingdomElwin Sharvill NEGOTIATION
Mayumi I DoeItalyBernardo Dominic PROPOSAL
Nicolas H WieserBrazilAmy Elsner NEGOTIATION
Silvio H FlosiArgentinaOnyama Limba NEW
Deepesh T OldroydGermanyOnyama Limba RENEWAL
Maisha O AmigonArgentinaElwin Sharvill QUALIFIED
Leja C NestleFranceIoni Bowcher PROPOSAL
Francesco K BologniaItalyElwin Sharvill QUALIFIED
Arvin Z NestleUnited KingdomIvan Magalhaes QUALIFIED
Cody X InouyeCanadaIvan Magalhaes NEGOTIATION
Maria M MaletIndiaIvan Magalhaes PROPOSAL
Nicolas Y AlbaresGermanyXuxue Feng NEW
Smith X SaylorsCanadaAmy Elsner PROPOSAL
Izzy U PerinFranceBernardo Dominic QUALIFIED
Adams Y KuskoArgentinaXuxue Feng QUALIFIED
Aruna C StockhamJapanOnyama Limba RENEWAL
James Z InouyeIndiaElwin Sharvill NEW
Chavez K FlosiItalyIvan Magalhaes RENEWAL
Aditya O CaudySpainIoni Bowcher PROPOSAL
Aditya V DarakjyUnited KingdomStephen Shaw NEW
Morrow T FollerArgentinaStephen Shaw NEW
Jeanfrancois Z CampainUnited KingdomAmy Elsner NEW
Claire V SchemmerCanadaBernardo Dominic PROPOSAL
Morrow K SergiAustraliaAsiya Javayant QUALIFIED
Francesco H IturbideRussiaAsiya Javayant PROPOSAL
Leon V VenereAustraliaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa D DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Aika J FerenczUnited KingdomIvan Magalhaes NEW
Adams U InouyeAustraliaAmy Elsner UNQUALIFIED
Nicolas L BologniaBrazilBernardo Dominic PROPOSAL
Arvin H StockhamSpainIvan Magalhaes QUALIFIED
Maria T ChuiJapanAmy Elsner PROPOSAL
Juan E NestleUnited KingdomStephen Shaw QUALIFIED
James X PaprockiAustraliaAsiya Javayant QUALIFIED
Leja L GillianBrazilOnyama Limba PROPOSAL
Alejandro K WhobreyFranceAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro H NestleArgentina2024-06-15Feiner Bros QUALIFIED75Amy Elsner
1001Isabel B WieserUnited Kingdom2024-05-29Chemel, James L Cpa PROPOSAL38Ioni Bowcher
1002Rodrigues G RulapaughArgentina2024-06-11King, Christopher A Esq RENEWAL58Ioni Bowcher
1003Isabel Y VenereUnited Kingdom2024-06-20Morlong Associates NEW70Ioni Bowcher
1004Aditya M InouyeRussia2024-06-07Morlong Associates PROPOSAL14Ivan Magalhaes
1005Jones L ButtAustralia2024-06-22Printing Dimensions NEGOTIATION62Ioni Bowcher
1006Antonio D FlosiArgentina2024-05-30Feltz Printing Service PROPOSAL81Anna Fali
1007Ivar Y KuskoJapan2024-06-17Chemel, James L Cpa NEGOTIATION11Amy Elsner
1008Juan M MaletUnited Kingdom2024-05-28Feltz Printing Service NEGOTIATION18Bernardo Dominic
1009Adams W CaldareraGermany2024-05-30Chemel, James L Cpa PROPOSAL29Stephen Shaw
1010Izzy E ChuiArgentina2024-06-08Morlong Associates UNQUALIFIED67Ivan Magalhaes
1011Cody H BowleyFrance2024-06-13Commercial Press UNQUALIFIED89Amy Elsner
1012David W VocelkaIndia2024-06-11Rousseaux, Michael Esq QUALIFIED11Xuxue Feng
1013Juan O MorascaGermany2024-06-10Dorl, James J Esq NEW7Anna Fali
1014Greenwood Y DilliardItaly2024-06-05Buckley Miller Wright QUALIFIED29Onyama Limba
1015Mujtaba W GauchoArgentina2024-06-10King, Christopher A Esq NEW63Anna Fali
1016Sinclair U AmigonUnited Kingdom2024-06-04Chanay, Jeffrey A Esq UNQUALIFIED42Bernardo Dominic
1017Nicolas L NickaItaly2024-06-16Buckley Miller Wright NEW72Ivan Magalhaes
1018Cody X AlbaresIndia2024-06-01Truhlar And Truhlar Attys NEGOTIATION40Anna Fali
1019Silvio Z DoeBrazil2024-06-06Chanay, Jeffrey A Esq QUALIFIED98Xuxue Feng
1020Aditya Z SaylorsRussia2024-06-21Feltz Printing Service PROPOSAL61Anna Fali
1021Antonio B GauchoSpain2024-05-28Chemel, James L Cpa NEW87Ivan Magalhaes
1022Claire U FigeroaFrance2024-06-17Chapman, Ross E Esq RENEWAL19Anna Fali
1023Maria Z PoquetteIndia2024-06-01Chapman, Ross E Esq NEW43Ivan Magalhaes
1024Johnson N FollerRussia2024-06-02Feiner Bros PROPOSAL28Stephen Shaw
1025Costa K IturbideGermany2024-06-15Morlong Associates PROPOSAL17Onyama Limba
1026James L FlosiBrazil2024-06-19Chanay, Jeffrey A Esq UNQUALIFIED19Amy Elsner
1027Octavia Z WhobreyGermany2024-05-25Dorl, James J Esq QUALIFIED25Ioni Bowcher
1028Ivar N ButtJapan2024-06-18Feltz Printing Service RENEWAL23Stephen Shaw
1029Kaitlin T NestleAustralia2024-06-04Dorl, James J Esq QUALIFIED10Xuxue Feng
1030Claire T KolmetzFrance2024-05-24Feltz Printing Service NEGOTIATION24Anna Fali
1031Ashley S DarakjyFrance2024-06-05Chemel, James L Cpa PROPOSAL79Ioni Bowcher
1032Arvin I ShinkoIndia2024-06-19Buckley Miller Wright NEGOTIATION43Bernardo Dominic
1033Leon J MarrierUnited Kingdom2024-06-19Chapman, Ross E Esq UNQUALIFIED35Amy Elsner
1034Murillo H RimFrance2024-05-30Truhlar And Truhlar Attys RENEWAL12Elwin Sharvill
1035Rodrigues V StensethBrazil2024-06-01Chapman, Ross E Esq NEGOTIATION28Amy Elsner
1036Aika D OstroskyBrazil2024-06-09Morlong Associates PROPOSAL0Onyama Limba
1037Cody O VenereFrance2024-06-03Morlong Associates NEW49Anna Fali
1038Sinclair J AmigonArgentina2024-06-01Buckley Miller Wright UNQUALIFIED68Amy Elsner
1039Deepesh Z WhobreyJapan2024-05-25Rangoni Of Florence NEW1Anna Fali
1040Arvin B BologniaAustralia2024-06-18Benton, John B Jr QUALIFIED47Anna Fali
1041Mujtaba W FerenczSpain2024-06-19Rousseaux, Michael Esq QUALIFIED56Elwin Sharvill
1042Ashley T FerenczRussia2024-06-18Feltz Printing Service UNQUALIFIED69Ioni Bowcher
1043Ricardo H BriddickIndia2024-06-12Rangoni Of Florence NEW44Elwin Sharvill
1044Julie O CampainArgentina2024-06-15Buckley Miller Wright NEGOTIATION36Amy Elsner
1045Silvio H CampainRussia2024-06-10Truhlar And Truhlar Attys QUALIFIED40Anna Fali
1046Faith K WieserIndia2024-06-19King, Christopher A Esq PROPOSAL83Amy Elsner
1047Wickens D BriddickJapan2024-06-11Feltz Printing Service NEGOTIATION47Stephen Shaw
1048Munro W CaldareraRussia2024-06-14Chanay, Jeffrey A Esq QUALIFIED49Ioni Bowcher
1049Faith L AmigonBrazil2024-06-08Printing Dimensions NEGOTIATION94Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jefferson R StensethSpainIvan Magalhaes NEW
Octavia M AlbaresBrazilOnyama Limba PROPOSAL
Rodrigues K NestleRussiaBernardo Dominic UNQUALIFIED
Ashley M FerenczAustraliaAnna Fali QUALIFIED
Murillo V CampainRussiaIoni Bowcher UNQUALIFIED
Octavia U AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Jones S BowleyAustraliaBernardo Dominic RENEWAL
Sinclair U VenereCanadaElwin Sharvill UNQUALIFIED
Clifford F RoysterArgentinaBernardo Dominic QUALIFIED
Jennifer U KolmetzAustraliaAnna Fali NEGOTIATION
Jeanfrancois K GauchoFranceXuxue Feng PROPOSAL
Jones W OldroydSpainIoni Bowcher PROPOSAL
Kaitlin I NestleJapanXuxue Feng PROPOSAL
Tony K FlosiItalyIoni Bowcher QUALIFIED
Leja I TollnerArgentinaStephen Shaw NEW
Darci P PaprockiIndiaOnyama Limba NEGOTIATION
Kadeem E BologniaJapanIoni Bowcher UNQUALIFIED
Alejandro V WieserRussiaXuxue Feng QUALIFIED
Nicolas R MaletIndiaOnyama Limba UNQUALIFIED
Leja U WhobreyUnited KingdomStephen Shaw RENEWAL
Aruna N CaudySpainOnyama Limba RENEWAL
Jennifer G BologniaGermanyXuxue Feng NEW
Costa S ButtFranceAmy Elsner NEGOTIATION
Murillo T SchemmerAustraliaStephen Shaw NEGOTIATION
Darci H DilliardIndiaIvan Magalhaes PROPOSAL
Misaki E SergiBrazilBernardo Dominic NEGOTIATION
Jeanfrancois H BriddickItalyIvan Magalhaes PROPOSAL
David Z SergiCanadaBernardo Dominic NEGOTIATION
Kadeem E DilliardCanadaIvan Magalhaes RENEWAL
Salvatore U NestleAustraliaIvan Magalhaes NEGOTIATION
Salvatore Q WieserRussiaStephen Shaw RENEWAL
Claire K GauchoJapanIvan Magalhaes RENEWAL
Silvio D BriddickArgentinaAmy Elsner NEGOTIATION
Rodrigues P TollnerJapanAnna Fali NEW
Leon Q SaylorsArgentinaXuxue Feng QUALIFIED
Arvin D OstroskyRussiaAsiya Javayant RENEWAL
Cody U OldroydArgentinaAnna Fali QUALIFIED
Aditya A NickaGermanyIvan Magalhaes NEW
Morrow I SaylorsFranceIvan Magalhaes PROPOSAL
Julie X WaycottSpainIvan Magalhaes RENEWAL
Ricardo V FigeroaCanadaOnyama Limba NEGOTIATION
Ricardo Z PerinRussiaIvan Magalhaes UNQUALIFIED
Mayumi I PerinSpainXuxue Feng RENEWAL
Chavez B SchemmerItalyAsiya Javayant NEGOTIATION
Jones M KuskoSpainBernardo Dominic UNQUALIFIED
Clifford P CampainRussiaIvan Magalhaes NEGOTIATION
Munro R ButtFranceElwin Sharvill RENEWAL
Wickens T KolmetzFranceIvan Magalhaes NEGOTIATION
Aika Z FigeroaCanadaAnna Fali RENEWAL
Aruna Y RutaBrazilAnna Fali NEW
Frozen Columns
Name
Kaitlin O Wieser
Mujtaba I Saylors
Mayumi X Stenseth
Octavia V Flosi
Claire M Perin
Claire F Ostrosky
Mujtaba B Amigon
Jennifer L Garufi
Aditya P Iturbide
Rodrigues H Darakjy
Nicolas R Malet
Smith H Bolognia
Francesco M Chui
Francesco F Saylors
Stacey M Inouye
Morrow S Malet
Faith R Ferencz
Jefferson C Figeroa
Octavia V Paprocki
Emily Z Bowley
Leja U Poquette
Munro Y Marrier
Ricardo K Caudy
Misaki G Garufi
Silvio S Figeroa
Isabel G Caldarera
Murillo C Oldroyd
Maria V Rulapaugh
Maria D Tollner
Leja K Figeroa
Aika A Sergi
Aika C Amigon
Antonio E Foller
Nicolas R Slusarski
Claire O Royster
Kadeem V Kusko
Ashley D Schemmer
Leon H Oldroyd
Kaitlin X Rulapaugh
Aditya I Stockham
Stacey N Perin
Chavez H Whobrey
Mayumi E Doe
Chavez G Figeroa
Ricardo V Ruta
Silvio U Vocelka
Johnson R Flosi
Ivar G Slusarski
Jefferson F Venere
Morrow U Amigon
IdCountryDate
1000France2024-05-26
1001Japan2024-06-19
1002Canada2024-06-04
1003Japan2024-06-05
1004Argentina2024-06-11
1005Russia2024-06-14
1006United Kingdom2024-06-09
1007Spain2024-06-02
1008Germany2024-06-15
1009Japan2024-06-14
1010Russia2024-05-30
1011Germany2024-06-06
1012Russia2024-05-30
1013Argentina2024-06-19
1014Italy2024-05-31
1015Italy2024-06-04
1016Italy2024-06-22
1017India2024-05-31
1018Spain2024-06-02
1019Germany2024-05-29
1020Brazil2024-06-08
1021India2024-06-03
1022France2024-05-29
1023Japan2024-06-20
1024Brazil2024-06-19
1025Argentina2024-05-31
1026Brazil2024-06-03
1027Germany2024-06-13
1028Germany2024-05-30
1029Russia2024-06-02
1030India2024-06-16
1031Spain2024-06-20
1032United Kingdom2024-05-24
1033Brazil2024-06-13
1034United Kingdom2024-06-08
1035Canada2024-06-15
1036Australia2024-05-31
1037Australia2024-06-09
1038Canada2024-05-29
1039United Kingdom2024-06-09
1040Argentina2024-06-09
1041Japan2024-05-24
1042India2024-06-16
1043Argentina2024-06-04
1044Italy2024-06-21
1045Germany2024-06-01
1046Brazil2024-06-21
1047Argentina2024-05-29
1048Germany2024-06-13
1049Russia2024-06-13

On-Demand Data

NameIdCountryDate
Darci L Malet1000Germany2024-06-06
Jones M Tollner1001Argentina2024-06-16
Darci R Poquette1002United Kingdom2024-06-17
Aruna C Amigon1003Canada2024-06-04
Leon D Malet1004Italy2024-06-22
Aruna K Paprocki1005Japan2024-06-10
Kadeem I Darakjy1006France2024-06-14
Julie S Slusarski1007Italy2024-06-12
Izzy Y Figeroa1008Argentina2024-06-22
Leja I Morasca1009Italy2024-05-29
Kaitlin T Waycott1010Italy2024-06-13
Deepesh Y Dilliard1011Australia2024-05-25
Wickens Q Slusarski1012Italy2024-05-28
Cody C Tollner1013Canada2024-06-03
Francesco A Foller1014Russia2024-05-24
Ashley T Campain1015Japan2024-06-01
Deepesh O Royster1016Australia2024-05-24
Costa O Whobrey1017Russia2024-06-11
Kadeem I Doe1018India2024-06-18
Adams Z Iturbide1019Argentina2024-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody W MarrierItalyAmy Elsner UNQUALIFIED
Aika W StockhamJapanBernardo Dominic PROPOSAL
Emily U StensethCanadaBernardo Dominic NEGOTIATION
Kaitlin V PerinCanadaAsiya Javayant QUALIFIED
Tony N RoysterAustraliaXuxue Feng NEGOTIATION
Octavia C BriddickFranceIoni Bowcher NEGOTIATION
Silvio Z KolmetzAustraliaAnna Fali NEGOTIATION
Johnson W FlosiFranceBernardo Dominic NEW
Chavez U NickaRussiaOnyama Limba UNQUALIFIED
Misaki W NestleItalyElwin Sharvill PROPOSAL
Juan L GillianFranceAnna Fali RENEWAL
Greenwood A GarufiJapanElwin Sharvill RENEWAL
Silvio B RimIndiaElwin Sharvill QUALIFIED
Ashley H MaletFranceXuxue Feng QUALIFIED
Arvin A AlbaresCanadaAmy Elsner RENEWAL
Aditya W BriddickFranceAsiya Javayant QUALIFIED
Arvin D CaudyArgentinaAnna Fali NEW
Costa K FerenczAustraliaIoni Bowcher PROPOSAL
Smith J FlosiFranceIvan Magalhaes RENEWAL
Jones P ShinkoIndiaAmy Elsner QUALIFIED
Kadeem W SergiRussiaAmy Elsner RENEWAL
Mayumi P InouyeGermanyXuxue Feng NEGOTIATION
Francesco I ChuiJapanAmy Elsner UNQUALIFIED
Costa O RulapaughIndiaAmy Elsner QUALIFIED
Izzy M BologniaBrazilAmy Elsner UNQUALIFIED
Silvio N KuskoCanadaBernardo Dominic PROPOSAL
Rodrigues X CampainArgentinaIvan Magalhaes QUALIFIED
Antonio B CaldareraArgentinaXuxue Feng UNQUALIFIED
Aditya V CaldareraCanadaIoni Bowcher UNQUALIFIED
David E StensethJapanBernardo Dominic PROPOSAL
Emily Q SchemmerUnited KingdomOnyama Limba NEGOTIATION
Kaitlin O CaldareraUnited KingdomAsiya Javayant RENEWAL
Jefferson P WaycottSpainOnyama Limba QUALIFIED
Darci K CaldareraUnited KingdomXuxue Feng NEW
Leja N GarufiAustraliaAnna Fali QUALIFIED
Kaitlin A ShinkoUnited KingdomAsiya Javayant RENEWAL
Wickens A VenereIndiaAnna Fali UNQUALIFIED
James S MaletRussiaAnna Fali QUALIFIED
Kadeem D MacleadRussiaIoni Bowcher QUALIFIED
Chavez T AmigonIndiaOnyama Limba 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>