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
James P GarufiItalyXuxue Feng PROPOSAL
Claire P FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Chavez Q CampainFranceBernardo Dominic RENEWAL
James D GillianSpainElwin Sharvill NEGOTIATION
Alejandro T MarrierBrazilIoni Bowcher UNQUALIFIED
Maria W CaldareraRussiaIoni Bowcher UNQUALIFIED
Wickens I KolmetzItalyOnyama Limba NEGOTIATION
Silvio W DarakjyUnited KingdomBernardo Dominic RENEWAL
Salvatore Z OstroskyGermanyAsiya Javayant PROPOSAL
Salvatore Y RoysterAustraliaIvan Magalhaes NEGOTIATION
Rodrigues H WaycottBrazilOnyama Limba QUALIFIED
Aika E PerinFranceElwin Sharvill UNQUALIFIED
Antonio X StockhamSpainStephen Shaw UNQUALIFIED
Kaitlin B DoeSpainAnna Fali QUALIFIED
Misaki H SlusarskiArgentinaAsiya Javayant QUALIFIED
Wickens W BologniaRussiaBernardo Dominic NEW
Aditya A NickaFranceStephen Shaw PROPOSAL
Smith H MaletFranceStephen Shaw NEW
Faith E RulapaughArgentinaAmy Elsner QUALIFIED
Jeanfrancois Y MacleadUnited KingdomAsiya Javayant RENEWAL
Ricardo F CaudySpainElwin Sharvill RENEWAL
Tony C FigeroaArgentinaIoni Bowcher UNQUALIFIED
Wickens L MacleadItalyStephen Shaw PROPOSAL
Chavez K InouyeUnited KingdomAmy Elsner QUALIFIED
Ivar B WaycottAustraliaAnna Fali RENEWAL
Julie U WieserIndiaIoni Bowcher RENEWAL
Ashley V DarakjyIndiaIvan Magalhaes PROPOSAL
Jones C IturbideRussiaAsiya Javayant UNQUALIFIED
Chavez I FerenczAustraliaOnyama Limba QUALIFIED
James D ButtRussiaIoni Bowcher RENEWAL
Sinclair I MaletAustraliaAnna Fali RENEWAL
Claire J TollnerJapanIoni Bowcher UNQUALIFIED
Faith F ShinkoItalyBernardo Dominic UNQUALIFIED
Julie F CaldareraBrazilIoni Bowcher QUALIFIED
Salvatore B RutaRussiaAmy Elsner NEW
Ivar A BriddickRussiaStephen Shaw QUALIFIED
Sinclair J SchemmerIndiaAsiya Javayant RENEWAL
Isabel W StensethUnited KingdomAsiya Javayant NEW
Wickens Y OldroydIndiaXuxue Feng RENEWAL
Darci Q SchemmerSpainXuxue Feng UNQUALIFIED
Alejandro A SchemmerCanadaXuxue Feng NEW
Greenwood G MorascaAustraliaIvan Magalhaes UNQUALIFIED
Johnson J ButtArgentinaIoni Bowcher UNQUALIFIED
Emily B TollnerJapanBernardo Dominic RENEWAL
Antonio Q SaylorsSpainIvan Magalhaes PROPOSAL
Leon L ShinkoCanadaAmy Elsner UNQUALIFIED
Antonio X FollerIndiaBernardo Dominic QUALIFIED
Ivar B MorascaSpainBernardo Dominic RENEWAL
Aika Q WhobreyBrazilIoni Bowcher NEGOTIATION
Leja G BologniaBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio Y GlickArgentinaIoni Bowcher PROPOSAL
Antonio O DoeBrazilXuxue Feng NEW
Munro P CaudyJapanIoni Bowcher QUALIFIED
Misaki X BowleyAustraliaBernardo Dominic NEGOTIATION
Alejandro Y NickaBrazilElwin Sharvill NEGOTIATION
James Q InouyeItalyAsiya Javayant PROPOSAL
Aditya T GauchoArgentinaXuxue Feng PROPOSAL
Smith P AmigonItalyBernardo Dominic UNQUALIFIED
Mujtaba R OstroskySpainAsiya Javayant PROPOSAL
Smith K SchemmerArgentinaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro V CaldareraFrance2025-06-08Truhlar And Truhlar Attys PROPOSAL89Onyama Limba
1001Tony P BowleyRussia2025-05-22Feiner Bros NEW52Bernardo Dominic
1002David C MacleadCanada2025-05-23Feiner Bros NEW28Asiya Javayant
1003Mujtaba E GillianFrance2025-05-31Truhlar And Truhlar Attys NEW99Asiya Javayant
1004Jones V KuskoRussia2025-05-30Printing Dimensions NEW54Asiya Javayant
1005Nicolas R KuskoIndia2025-05-25Dorl, James J Esq QUALIFIED66Ioni Bowcher
1006Clifford S StensethBrazil2025-06-12Chanay, Jeffrey A Esq NEW81Anna Fali
1007Kadeem C BowleyBrazil2025-06-04Chemel, James L Cpa NEGOTIATION67Onyama Limba
1008Ashley P IturbideUnited Kingdom2025-05-20Rangoni Of Florence QUALIFIED86Elwin Sharvill
1009Misaki F CaldareraIndia2025-06-08Morlong Associates UNQUALIFIED34Amy Elsner
1010Deepesh S GlickSpain2025-05-27Chemel, James L Cpa QUALIFIED49Stephen Shaw
1011David I InouyeCanada2025-06-15King, Christopher A Esq RENEWAL27Amy Elsner
1012Kaitlin I SlusarskiCanada2025-06-14Truhlar And Truhlar Attys UNQUALIFIED93Ivan Magalhaes
1013Jones C MaletUnited Kingdom2025-06-04Feiner Bros PROPOSAL40Elwin Sharvill
1014Aruna R SaylorsFrance2025-06-10Commercial Press PROPOSAL99Asiya Javayant
1015Johnson U CampainGermany2025-05-29Feltz Printing Service NEW69Xuxue Feng
1016Juan T WieserGermany2025-05-20Truhlar And Truhlar Attys QUALIFIED28Xuxue Feng
1017Arvin Q CaldareraBrazil2025-06-10King, Christopher A Esq NEGOTIATION59Onyama Limba
1018Morrow P CampainFrance2025-05-18Benton, John B Jr NEW45Anna Fali
1019Munro C GarufiBrazil2025-06-10King, Christopher A Esq UNQUALIFIED55Ioni Bowcher
1020Izzy R WhobreyAustralia2025-06-14Chanay, Jeffrey A Esq PROPOSAL96Ivan Magalhaes
1021Ricardo M SchemmerFrance2025-05-23Feiner Bros QUALIFIED84Stephen Shaw
1022Isabel F MarrierJapan2025-06-15Morlong Associates PROPOSAL67Stephen Shaw
1023Murillo K CaldareraFrance2025-06-13Chapman, Ross E Esq NEW71Xuxue Feng
1024Smith H ButtBrazil2025-05-21Buckley Miller Wright UNQUALIFIED73Asiya Javayant
1025Jeanfrancois J AlbaresUnited Kingdom2025-06-04Feiner Bros UNQUALIFIED58Elwin Sharvill
1026Morrow O WieserIndia2025-05-19Benton, John B Jr RENEWAL36Onyama Limba
1027Wickens C KolmetzCanada2025-05-27Chemel, James L Cpa PROPOSAL58Ivan Magalhaes
1028Ivar B DilliardItaly2025-05-18Feiner Bros PROPOSAL32Bernardo Dominic
1029Jeanfrancois E CaudyBrazil2025-05-19Feltz Printing Service PROPOSAL14Xuxue Feng
1030Isabel M MorascaUnited Kingdom2025-06-03Rangoni Of Florence RENEWAL62Ioni Bowcher
1031Juan J FlosiIndia2025-05-29Chemel, James L Cpa RENEWAL14Onyama Limba
1032Greenwood H CaldareraIndia2025-05-23Printing Dimensions PROPOSAL6Asiya Javayant
1033Alejandro L PerinIndia2025-06-15Chapman, Ross E Esq NEW76Elwin Sharvill
1034Smith H DarakjyCanada2025-05-29Chanay, Jeffrey A Esq NEW4Anna Fali
1035Ricardo O WieserSpain2025-05-18Rangoni Of Florence NEW43Xuxue Feng
1036Wickens B RulapaughSpain2025-05-18Rousseaux, Michael Esq QUALIFIED88Ioni Bowcher
1037Smith X DilliardBrazil2025-06-14Buckley Miller Wright UNQUALIFIED78Ioni Bowcher
1038Aditya O KolmetzItaly2025-06-02Printing Dimensions PROPOSAL33Asiya Javayant
1039Cody I GarufiArgentina2025-05-21Feiner Bros PROPOSAL43Anna Fali
1040Alejandro K IturbideArgentina2025-06-03Rousseaux, Michael Esq RENEWAL93Xuxue Feng
1041Cody U StockhamUnited Kingdom2025-06-07Truhlar And Truhlar Attys NEW82Ioni Bowcher
1042Kaitlin W RoysterRussia2025-05-19Feiner Bros NEW16Bernardo Dominic
1043Leon Q GillianCanada2025-06-15Feiner Bros UNQUALIFIED21Ivan Magalhaes
1044Wickens K BowleyIndia2025-05-19Chapman, Ross E Esq RENEWAL75Onyama Limba
1045Misaki J GarufiGermany2025-06-08Morlong Associates RENEWAL70Ivan Magalhaes
1046Stacey Z BologniaBrazil2025-06-09Benton, John B Jr RENEWAL45Stephen Shaw
1047Chavez O OstroskyRussia2025-06-12Truhlar And Truhlar Attys UNQUALIFIED80Ioni Bowcher
1048Alejandro Q GillianFrance2025-06-08Feltz Printing Service QUALIFIED6Elwin Sharvill
1049Francesco J SergiFrance2025-05-24Morlong Associates NEGOTIATION82Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Deepesh X AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood X DilliardBrazilOnyama Limba NEW
Emily P MaletSpainOnyama Limba UNQUALIFIED
Julie R WhobreyJapanXuxue Feng RENEWAL
Tony E ButtBrazilAmy Elsner NEW
Jeanfrancois G GillianItalyIvan Magalhaes NEGOTIATION
Arvin W PerinCanadaAsiya Javayant PROPOSAL
Ivar X MorascaFranceIvan Magalhaes UNQUALIFIED
Antonio R GarufiAustraliaAnna Fali NEGOTIATION
Claire P DarakjyIndiaAsiya Javayant PROPOSAL
Kadeem X SergiGermanyElwin Sharvill UNQUALIFIED
Greenwood O FlosiRussiaOnyama Limba UNQUALIFIED
Cody J FigeroaItalyAsiya Javayant QUALIFIED
Ricardo F DarakjyUnited KingdomXuxue Feng PROPOSAL
Emily Z RutaAustraliaIoni Bowcher QUALIFIED
Johnson D VocelkaSpainXuxue Feng QUALIFIED
Leon U GlickAustraliaAnna Fali QUALIFIED
Isabel G BowleyUnited KingdomXuxue Feng RENEWAL
Emily S DarakjyBrazilAnna Fali NEGOTIATION
Antonio B FlosiBrazilStephen Shaw PROPOSAL
Chavez Y TollnerFranceStephen Shaw NEGOTIATION
Costa A KolmetzSpainBernardo Dominic PROPOSAL
Leja B GauchoFranceAnna Fali NEGOTIATION
James S WaycottBrazilBernardo Dominic QUALIFIED
Leja H NickaItalyAmy Elsner NEW
Aika K SchemmerBrazilXuxue Feng PROPOSAL
Sinclair J WieserCanadaAnna Fali PROPOSAL
Ashley P StockhamUnited KingdomBernardo Dominic NEW
Rodrigues I ChuiJapanBernardo Dominic NEW
Emily T PoquetteCanadaElwin Sharvill NEW
Misaki Y NickaIndiaIvan Magalhaes PROPOSAL
Leon E GillianRussiaAmy Elsner NEGOTIATION
Stacey D AlbaresGermanyIvan Magalhaes NEGOTIATION
Izzy L KuskoRussiaOnyama Limba RENEWAL
Aruna I StensethItalyAnna Fali PROPOSAL
Aruna T BriddickIndiaXuxue Feng NEW
Smith L WhobreyAustraliaStephen Shaw NEGOTIATION
Mayumi U MorascaCanadaIvan Magalhaes RENEWAL
Emily R DilliardJapanIoni Bowcher PROPOSAL
Isabel C GarufiItalyBernardo Dominic NEW
Silvio T CampainAustraliaIoni Bowcher QUALIFIED
Adams P FigeroaBrazilIvan Magalhaes NEW
Stacey K StockhamItalyElwin Sharvill PROPOSAL
Jennifer Y GarufiAustraliaOnyama Limba NEGOTIATION
Claire W CaudyAustraliaIvan Magalhaes NEGOTIATION
Jones E NickaUnited KingdomIoni Bowcher UNQUALIFIED
Emily T MorascaRussiaBernardo Dominic RENEWAL
Jefferson U DoeSpainOnyama Limba QUALIFIED
Emily B FollerBrazilAnna Fali UNQUALIFIED
Stacey B BowleyIndiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Salvatore D Royster
Darci M Bowley
Wickens Q Nicka
Silvio P Nicka
Jones I Stockham
Adams A Malet
Murillo N Paprocki
Arvin A Flosi
Adams S Nicka
Mujtaba Q Nestle
Izzy M Venere
Jones B Caldarera
Alejandro A Caudy
Salvatore W Malet
Antonio Y Ostrosky
Sinclair N Rulapaugh
Munro N Vocelka
Mujtaba T Royster
Jeanfrancois Y Sergi
David T Rulapaugh
Kaitlin G Gaucho
Jones K Amigon
Claire C Albares
Nicolas U Wieser
Jones H Chui
Maria N Ostrosky
Alejandro Y Caldarera
Izzy R Rulapaugh
Salvatore Y Figeroa
Nicolas R Glick
Kadeem A Stenseth
Octavia H Rulapaugh
David Y Caudy
David O Ostrosky
Aditya G Inouye
Maisha E Stockham
Salvatore X Stenseth
Jefferson I Paprocki
Deepesh O Glick
Alejandro A Flosi
David L Campain
Greenwood C Albares
Deepesh D Whobrey
Octavia V Maclead
Mujtaba L Royster
Julie G Slusarski
Aruna D Amigon
Isabel X Gaucho
Alejandro I Butt
Jones K Garufi
IdCountryDate
1000Brazil2025-05-25
1001Australia2025-05-30
1002Italy2025-05-21
1003Canada2025-05-26
1004Canada2025-06-02
1005Spain2025-06-12
1006Brazil2025-05-24
1007Argentina2025-06-11
1008India2025-06-12
1009Japan2025-05-18
1010India2025-05-31
1011Australia2025-06-09
1012Russia2025-06-13
1013Germany2025-05-22
1014Argentina2025-05-25
1015United Kingdom2025-06-15
1016France2025-06-08
1017Brazil2025-06-14
1018United Kingdom2025-05-22
1019Germany2025-06-05
1020Spain2025-06-11
1021Argentina2025-05-19
1022India2025-06-10
1023Russia2025-05-26
1024Russia2025-05-22
1025France2025-06-10
1026Argentina2025-05-30
1027Italy2025-06-09
1028Brazil2025-05-31
1029Japan2025-06-05
1030Spain2025-06-04
1031United Kingdom2025-05-21
1032Russia2025-06-04
1033Japan2025-06-06
1034Spain2025-06-04
1035Russia2025-06-09
1036France2025-06-11
1037Italy2025-06-06
1038Japan2025-06-03
1039France2025-06-11
1040Brazil2025-06-03
1041Brazil2025-05-19
1042France2025-06-03
1043Australia2025-06-16
1044Spain2025-05-25
1045Australia2025-05-23
1046Argentina2025-06-03
1047Italy2025-06-04
1048Brazil2025-06-12
1049Germany2025-05-31

On-Demand Data

NameIdCountryDate
Misaki G Caudy1000Italy2025-06-08
Mayumi K Inouye1001Japan2025-06-10
Aditya B Waycott1002United Kingdom2025-06-12
Juan F Rim1003Russia2025-06-05
Ashley I Malet1004Japan2025-06-08
Mujtaba R Morasca1005France2025-05-29
Isabel L Caldarera1006Brazil2025-05-30
Morrow Q Albares1007Italy2025-05-23
Morrow F Chui1008Russia2025-06-11
Arvin U Venere1009Japan2025-06-14
Nicolas B Schemmer1010Italy2025-05-21
Sinclair B Nestle1011Russia2025-05-30
Rodrigues U Gaucho1012India2025-06-08
Mujtaba V Ruta1013India2025-05-25
Claire R Tollner1014Brazil2025-06-10
Ivar L Figeroa1015Germany2025-05-29
Jones Z Tollner1016Argentina2025-05-26
Tony B Albares1017Italy2025-06-09
Izzy Q Malet1018Japan2025-05-24
Jefferson U Kolmetz1019Italy2025-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow H SchemmerRussiaIvan Magalhaes QUALIFIED
Aruna K RulapaughArgentinaStephen Shaw NEW
Murillo H PoquetteAustraliaIoni Bowcher RENEWAL
Munro Q MaletBrazilIoni Bowcher NEGOTIATION
James B MarrierItalyAsiya Javayant RENEWAL
Isabel K VenereGermanyIvan Magalhaes UNQUALIFIED
Aika P VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Darci Q PaprockiCanadaAnna Fali NEGOTIATION
Munro D NickaGermanyAsiya Javayant NEGOTIATION
Jeanfrancois W PerinArgentinaAmy Elsner UNQUALIFIED
Maria D DoeFranceIvan Magalhaes NEW
Ashley V OstroskyBrazilAnna Fali QUALIFIED
Jennifer I InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio Y RutaAustraliaAnna Fali RENEWAL
Adams W WaycottArgentinaAsiya Javayant PROPOSAL
Alejandro E AmigonFranceStephen Shaw UNQUALIFIED
Alejandro T SaylorsUnited KingdomAsiya Javayant QUALIFIED
Kaitlin P SchemmerFranceIvan Magalhaes QUALIFIED
Ashley I SergiIndiaXuxue Feng RENEWAL
Octavia D VocelkaArgentinaBernardo Dominic UNQUALIFIED
Francesco N MorascaCanadaIvan Magalhaes UNQUALIFIED
Maria T MorascaArgentinaAmy Elsner PROPOSAL
Costa T MacleadJapanOnyama Limba NEW
Kaitlin L SergiAustraliaElwin Sharvill UNQUALIFIED
Costa L GauchoRussiaBernardo Dominic NEW
Adams K InouyeGermanyIvan Magalhaes UNQUALIFIED
Octavia E StockhamItalyAsiya Javayant PROPOSAL
Emily J FlosiGermanyAnna Fali RENEWAL
Alejandro C GlickGermanyBernardo Dominic PROPOSAL
Aruna U CaudySpainOnyama Limba RENEWAL
Kaitlin T GlickCanadaOnyama Limba RENEWAL
Rodrigues W WaycottAustraliaAsiya Javayant QUALIFIED
Adams O ShinkoBrazilOnyama Limba QUALIFIED
James I VocelkaSpainBernardo Dominic PROPOSAL
Aika W AmigonRussiaOnyama Limba PROPOSAL
Rodrigues B FigeroaIndiaOnyama Limba NEW
Aruna H BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Ricardo M StockhamRussiaStephen Shaw NEGOTIATION
Ivar R NestleArgentinaXuxue Feng RENEWAL
Faith D MaletUnited KingdomIvan Magalhaes 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>