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
Salvatore D MacleadArgentinaAnna Fali PROPOSAL
Emily N FerenczAustraliaIvan Magalhaes NEGOTIATION
Misaki T CampainBrazilElwin Sharvill NEGOTIATION
Aika S SaylorsFranceIoni Bowcher NEW
Nicolas D BowleyArgentinaAsiya Javayant RENEWAL
Chavez B KolmetzBrazilIvan Magalhaes NEGOTIATION
Aruna I TollnerFranceElwin Sharvill NEGOTIATION
Antonio T MorascaGermanyAmy Elsner NEW
Deepesh S AlbaresArgentinaAnna Fali QUALIFIED
Jefferson S AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba Z GauchoItalyAmy Elsner UNQUALIFIED
Ricardo H DarakjyJapanOnyama Limba QUALIFIED
Aruna Z PerinCanadaAnna Fali UNQUALIFIED
Johnson F VenereItalyIvan Magalhaes NEW
Misaki T DilliardSpainAmy Elsner RENEWAL
Chavez H RulapaughFranceAnna Fali UNQUALIFIED
Mujtaba Z SergiArgentinaAmy Elsner QUALIFIED
Ashley I GillianAustraliaAmy Elsner QUALIFIED
Jeanfrancois B ButtArgentinaElwin Sharvill UNQUALIFIED
Mujtaba U SaylorsCanadaOnyama Limba RENEWAL
Ivar U SlusarskiIndiaBernardo Dominic UNQUALIFIED
Deepesh W WhobreyIndiaAsiya Javayant RENEWAL
Chavez D ButtUnited KingdomAnna Fali NEGOTIATION
Jefferson U ShinkoRussiaBernardo Dominic QUALIFIED
Kaitlin U DilliardRussiaBernardo Dominic QUALIFIED
Aruna E PoquetteUnited KingdomBernardo Dominic PROPOSAL
Sinclair D FollerBrazilBernardo Dominic RENEWAL
Silvio J PoquetteAustraliaAnna Fali NEW
Wickens V ShinkoCanadaAsiya Javayant UNQUALIFIED
Wickens F MaletIndiaStephen Shaw QUALIFIED
Alejandro S BologniaCanadaIoni Bowcher QUALIFIED
Tony J FollerArgentinaAnna Fali UNQUALIFIED
Julie V VocelkaUnited KingdomIoni Bowcher PROPOSAL
Alejandro D GlickAustraliaElwin Sharvill PROPOSAL
Alejandro V DoeAustraliaXuxue Feng QUALIFIED
Stacey X TollnerJapanXuxue Feng QUALIFIED
Greenwood P DarakjyAustraliaIoni Bowcher PROPOSAL
Greenwood X NestleIndiaAmy Elsner PROPOSAL
Emily X StensethCanadaElwin Sharvill UNQUALIFIED
Octavia F GillianRussiaAsiya Javayant NEW
Silvio Z PaprockiUnited KingdomIoni Bowcher NEGOTIATION
Leon T SchemmerItalyXuxue Feng UNQUALIFIED
Clifford Z VocelkaItalyAnna Fali NEGOTIATION
Antonio M OldroydUnited KingdomOnyama Limba QUALIFIED
Claire W MaletIndiaAsiya Javayant PROPOSAL
Jefferson Q CaudyBrazilOnyama Limba UNQUALIFIED
Mujtaba A SergiRussiaAmy Elsner NEW
Aditya G InouyeGermanyAnna Fali UNQUALIFIED
James P BologniaBrazilStephen Shaw NEGOTIATION
Maisha X DarakjyAustraliaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Aika E FollerAustraliaBernardo Dominic UNQUALIFIED
Wickens A ShinkoSpainBernardo Dominic UNQUALIFIED
Munro A StensethGermanyAmy Elsner RENEWAL
Kaitlin J WieserJapanAsiya Javayant NEW
Darci J DilliardAustraliaElwin Sharvill RENEWAL
David Q ButtBrazilElwin Sharvill NEGOTIATION
Aika X GlickIndiaStephen Shaw NEGOTIATION
Ivar S KuskoCanadaAsiya Javayant UNQUALIFIED
Claire M AmigonIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois Z StensethGermanyOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio H VocelkaArgentina2024-05-31Commercial Press PROPOSAL24Elwin Sharvill
1001Emily Q PerinRussia2024-06-15Rousseaux, Michael Esq NEGOTIATION78Anna Fali
1002Misaki O BowleyItaly2024-06-20King, Christopher A Esq QUALIFIED50Bernardo Dominic
1003Jefferson E FigeroaArgentina2024-06-12Feltz Printing Service NEGOTIATION39Anna Fali
1004Jefferson M MarrierCanada2024-05-23Chemel, James L Cpa PROPOSAL10Bernardo Dominic
1005Costa X StensethFrance2024-06-17Commercial Press NEGOTIATION7Ivan Magalhaes
1006Aditya N BowleyItaly2024-05-28Chemel, James L Cpa QUALIFIED0Ioni Bowcher
1007Faith G AlbaresGermany2024-06-01Rousseaux, Michael Esq NEW91Onyama Limba
1008Cody B ChuiJapan2024-06-12Chanay, Jeffrey A Esq NEGOTIATION74Elwin Sharvill
1009Ivar R WaycottFrance2024-05-26Morlong Associates QUALIFIED37Elwin Sharvill
1010Salvatore W SchemmerIndia2024-06-12Printing Dimensions NEW59Onyama Limba
1011Mayumi L AmigonArgentina2024-06-18Rousseaux, Michael Esq UNQUALIFIED69Asiya Javayant
1012Sinclair M WieserItaly2024-06-16King, Christopher A Esq NEW59Asiya Javayant
1013Jennifer L NestleAustralia2024-06-14Chemel, James L Cpa NEGOTIATION97Elwin Sharvill
1014Sinclair A InouyeIndia2024-06-21Benton, John B Jr NEGOTIATION99Ioni Bowcher
1015Jefferson T DoeUnited Kingdom2024-05-23Commercial Press PROPOSAL84Asiya Javayant
1016Ashley R GarufiGermany2024-06-09Morlong Associates QUALIFIED30Ioni Bowcher
1017Clifford J PoquetteUnited Kingdom2024-06-16Rangoni Of Florence NEGOTIATION45Amy Elsner
1018Salvatore D GarufiBrazil2024-06-09Commercial Press UNQUALIFIED30Stephen Shaw
1019Ivar T StockhamFrance2024-05-27Rousseaux, Michael Esq NEGOTIATION71Ioni Bowcher
1020Aditya I PerinSpain2024-05-23Truhlar And Truhlar Attys QUALIFIED78Amy Elsner
1021Jones T GarufiJapan2024-06-19Chanay, Jeffrey A Esq UNQUALIFIED22Anna Fali
1022Jefferson W StockhamBrazil2024-05-25Feiner Bros RENEWAL68Xuxue Feng
1023Jones B ChuiArgentina2024-06-05Feltz Printing Service QUALIFIED25Asiya Javayant
1024Antonio J DilliardUnited Kingdom2024-05-24Chapman, Ross E Esq QUALIFIED74Bernardo Dominic
1025Emily Z GillianCanada2024-06-11Rangoni Of Florence NEW79Bernardo Dominic
1026Jones D PaprockiGermany2024-06-03Morlong Associates PROPOSAL87Onyama Limba
1027Claire Z ShinkoArgentina2024-05-29King, Christopher A Esq NEGOTIATION48Elwin Sharvill
1028Stacey P GillianBrazil2024-06-19Benton, John B Jr UNQUALIFIED77Xuxue Feng
1029Juan V NestleBrazil2024-06-07King, Christopher A Esq QUALIFIED90Asiya Javayant
1030David O BriddickIndia2024-06-12King, Christopher A Esq UNQUALIFIED61Xuxue Feng
1031Faith X MorascaFrance2024-06-03Dorl, James J Esq PROPOSAL97Onyama Limba
1032Aditya D VenereFrance2024-06-17Commercial Press NEGOTIATION48Elwin Sharvill
1033Kadeem N ButtBrazil2024-06-03Rangoni Of Florence UNQUALIFIED51Anna Fali
1034Smith G KolmetzGermany2024-06-15Benton, John B Jr NEW13Amy Elsner
1035David G SaylorsAustralia2024-05-24Morlong Associates RENEWAL82Anna Fali
1036Kadeem K KolmetzBrazil2024-05-30Chemel, James L Cpa PROPOSAL82Amy Elsner
1037Tony S DilliardGermany2024-06-21Rousseaux, Michael Esq NEGOTIATION23Onyama Limba
1038Alejandro U AmigonGermany2024-06-21Chemel, James L Cpa RENEWAL29Stephen Shaw
1039Jones G RoysterSpain2024-05-23Buckley Miller Wright QUALIFIED61Xuxue Feng
1040Murillo V AlbaresFrance2024-06-19Chanay, Jeffrey A Esq UNQUALIFIED38Onyama Limba
1041Emily U VenereIndia2024-05-26Dorl, James J Esq UNQUALIFIED28Stephen Shaw
1042James P FigeroaIndia2024-06-16Dorl, James J Esq NEGOTIATION99Ivan Magalhaes
1043Wickens X ShinkoJapan2024-06-12Printing Dimensions NEGOTIATION30Asiya Javayant
1044Mujtaba J BowleyRussia2024-05-24Feiner Bros QUALIFIED71Anna Fali
1045Murillo D PerinRussia2024-06-17Printing Dimensions NEGOTIATION73Stephen Shaw
1046Jennifer D IturbideArgentina2024-06-05Truhlar And Truhlar Attys QUALIFIED97Asiya Javayant
1047Stacey M DarakjyItaly2024-06-03Benton, John B Jr NEW23Elwin Sharvill
1048Aditya T MaletSpain2024-06-01Rousseaux, Michael Esq NEW75Ivan Magalhaes
1049Mayumi P GlickItaly2024-06-14Benton, John B Jr RENEWAL34Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Greenwood N FerenczAustraliaBernardo Dominic UNQUALIFIED
Morrow L SaylorsJapanXuxue Feng QUALIFIED
Izzy S FollerItalyAnna Fali PROPOSAL
Juan S NickaItalyAsiya Javayant QUALIFIED
Adams T FerenczGermanyIvan Magalhaes RENEWAL
Salvatore O DilliardIndiaAnna Fali PROPOSAL
Rodrigues C DilliardItalyStephen Shaw NEGOTIATION
Stacey J SaylorsJapanAnna Fali NEW
Misaki C MarrierIndiaElwin Sharvill NEW
Adams D KuskoItalyAnna Fali QUALIFIED
Stacey T OldroydAustraliaAnna Fali PROPOSAL
Isabel Z PerinGermanyXuxue Feng NEGOTIATION
Aruna O SchemmerJapanIvan Magalhaes NEGOTIATION
Stacey N MacleadItalyAsiya Javayant NEGOTIATION
Leja S FigeroaUnited KingdomAsiya Javayant RENEWAL
Izzy W DoeBrazilAnna Fali PROPOSAL
Mayumi X CaldareraCanadaAmy Elsner NEW
Jefferson B FigeroaSpainBernardo Dominic QUALIFIED
Stacey Y DilliardJapanIvan Magalhaes NEGOTIATION
Maria L AmigonIndiaXuxue Feng NEGOTIATION
Kadeem S DoeSpainIoni Bowcher RENEWAL
Maisha B StensethArgentinaIvan Magalhaes RENEWAL
Alejandro O GarufiJapanXuxue Feng NEW
Emily C FigeroaItalyStephen Shaw UNQUALIFIED
Tony W PoquetteItalyIvan Magalhaes RENEWAL
Darci G InouyeSpainIvan Magalhaes NEGOTIATION
Greenwood S MarrierArgentinaBernardo Dominic RENEWAL
Jennifer A StensethRussiaElwin Sharvill RENEWAL
Sinclair F RutaBrazilOnyama Limba NEGOTIATION
Leja I RoysterRussiaXuxue Feng PROPOSAL
Silvio P FigeroaJapanElwin Sharvill RENEWAL
David Y DilliardBrazilBernardo Dominic QUALIFIED
Costa F BowleyJapanIvan Magalhaes QUALIFIED
Jones J CaudyGermanyXuxue Feng QUALIFIED
Silvio U DarakjyUnited KingdomAnna Fali NEW
Francesco B KuskoCanadaBernardo Dominic UNQUALIFIED
Kadeem K MaletRussiaOnyama Limba NEW
Francesco E RoysterRussiaBernardo Dominic NEGOTIATION
Aruna U BriddickIndiaAnna Fali NEW
Francesco W VenereSpainAnna Fali NEW
Jefferson G SlusarskiJapanIoni Bowcher NEW
Tony S OstroskyCanadaBernardo Dominic PROPOSAL
James C RutaAustraliaElwin Sharvill UNQUALIFIED
Rodrigues V CaldareraBrazilElwin Sharvill NEW
Maisha X GarufiSpainXuxue Feng QUALIFIED
Jones R ChuiJapanStephen Shaw RENEWAL
Kaitlin R CampainFranceOnyama Limba UNQUALIFIED
Ricardo M KolmetzItalyBernardo Dominic NEW
Arvin W OldroydSpainIoni Bowcher PROPOSAL
Jennifer C DilliardFranceXuxue Feng RENEWAL
Frozen Columns
Name
Greenwood W Caldarera
Arvin R Malet
Juan A Caudy
Alejandro T Campain
Murillo T Glick
Izzy L Paprocki
Alejandro M Butt
Arvin S Paprocki
Ashley E Foller
Juan G Garufi
Aika B Inouye
Salvatore V Maclead
Johnson L Marrier
Antonio F Malet
Claire R Sergi
Stacey J Royster
Kadeem Z Maclead
Misaki U Gillian
Ivar A Vocelka
Costa L Wieser
Octavia V Gaucho
Jones Y Caldarera
Murillo R Ruta
Octavia E Albares
Silvio J Oldroyd
Mujtaba S Briddick
Stacey V Rim
Julie C Ostrosky
David M Poquette
Alejandro A Kusko
Francesco S Bowley
Munro K Wieser
Clifford V Nicka
Claire Q Perin
Jennifer J Kolmetz
Kaitlin X Caldarera
Kaitlin F Wieser
Mujtaba F Waycott
Morrow H Chui
Maria M Saylors
Kaitlin U Wieser
Costa C Oldroyd
Faith V Venere
Kaitlin A Oldroyd
Kadeem V Kolmetz
Greenwood P Caudy
Sinclair D Flosi
Aditya Q Perin
Isabel J Vocelka
Ricardo T Stockham
IdCountryDate
1000Argentina2024-05-27
1001Germany2024-06-03
1002France2024-06-07
1003France2024-06-12
1004Germany2024-05-31
1005India2024-06-10
1006Brazil2024-05-26
1007Argentina2024-06-14
1008Australia2024-06-02
1009Spain2024-06-13
1010France2024-06-01
1011Germany2024-06-07
1012Germany2024-06-10
1013Germany2024-06-01
1014United Kingdom2024-06-14
1015Russia2024-06-11
1016France2024-05-28
1017Germany2024-06-07
1018Italy2024-06-03
1019France2024-06-08
1020Argentina2024-06-21
1021India2024-06-12
1022Italy2024-06-11
1023United Kingdom2024-06-07
1024Russia2024-05-23
1025Russia2024-06-04
1026Japan2024-06-13
1027France2024-06-20
1028Spain2024-05-24
1029United Kingdom2024-06-20
1030Germany2024-05-23
1031Germany2024-05-26
1032Australia2024-06-05
1033United Kingdom2024-06-14
1034Italy2024-05-25
1035France2024-05-27
1036Italy2024-06-15
1037France2024-06-17
1038Italy2024-05-27
1039Spain2024-06-08
1040France2024-05-24
1041Argentina2024-06-09
1042India2024-06-04
1043France2024-06-10
1044Japan2024-06-14
1045Japan2024-05-30
1046Spain2024-05-29
1047Australia2024-06-21
1048United Kingdom2024-05-24
1049France2024-05-28

On-Demand Data

NameIdCountryDate
Ivar F Figeroa1000Italy2024-06-16
Izzy B Oldroyd1001Australia2024-06-14
Munro T Stockham1002United Kingdom2024-06-10
Octavia V Malet1003Spain2024-06-17
Emily R Glick1004Germany2024-06-20
Silvio M Chui1005Australia2024-06-03
Jefferson C Kolmetz1006France2024-05-27
Antonio Q Tollner1007Argentina2024-05-25
Costa C Wieser1008Japan2024-06-18
Claire H Chui1009Spain2024-06-20
Clifford X Foller1010Italy2024-05-31
Alejandro P Oldroyd1011Brazil2024-05-26
Munro T Kolmetz1012United Kingdom2024-05-25
Misaki W Sergi1013Canada2024-06-03
Ivar L Rulapaugh1014Japan2024-05-28
Smith Y Nestle1015Germany2024-06-08
Misaki O Glick1016France2024-06-05
Sinclair S Nestle1017Germany2024-06-09
Jennifer U Whobrey1018Brazil2024-05-26
Aika K Marrier1019France2024-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones J FollerBrazilOnyama Limba NEGOTIATION
Leja O MaletItalyIoni Bowcher QUALIFIED
Leon J FerenczArgentinaAnna Fali PROPOSAL
Isabel U BologniaAustraliaIoni Bowcher NEGOTIATION
Juan Q SergiUnited KingdomOnyama Limba RENEWAL
Jones V KolmetzGermanyBernardo Dominic RENEWAL
Leon O WieserIndiaIvan Magalhaes QUALIFIED
Antonio E MarrierArgentinaAsiya Javayant UNQUALIFIED
Ashley Z WieserJapanAmy Elsner QUALIFIED
Adams I SlusarskiItalyStephen Shaw NEW
Jennifer Q StensethSpainStephen Shaw QUALIFIED
Emily A BriddickGermanyOnyama Limba PROPOSAL
Aditya B RutaRussiaIvan Magalhaes QUALIFIED
Kadeem W ButtUnited KingdomBernardo Dominic NEGOTIATION
Darci I FigeroaGermanyAnna Fali RENEWAL
Emily K BologniaCanadaBernardo Dominic NEGOTIATION
Jefferson H RoysterArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois U VenereUnited KingdomAmy Elsner NEW
Sinclair P PerinAustraliaAsiya Javayant NEW
Greenwood P BriddickSpainIvan Magalhaes NEW
Claire H NestleUnited KingdomAmy Elsner QUALIFIED
Arvin R ShinkoRussiaIoni Bowcher NEGOTIATION
Costa F GlickBrazilXuxue Feng NEGOTIATION
Jones T FerenczRussiaIoni Bowcher NEGOTIATION
Emily Z StensethRussiaBernardo Dominic UNQUALIFIED
Aika E OldroydGermanyIoni Bowcher UNQUALIFIED
Claire D VenereFranceIvan Magalhaes QUALIFIED
Leja E VenereArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois N SchemmerItalyIvan Magalhaes NEGOTIATION
James F BowleyJapanStephen Shaw UNQUALIFIED
Rodrigues P OldroydIndiaIoni Bowcher NEGOTIATION
Ricardo A RimBrazilAnna Fali UNQUALIFIED
Deepesh T ShinkoRussiaXuxue Feng QUALIFIED
Cody O GauchoRussiaAmy Elsner QUALIFIED
Emily C NickaArgentinaXuxue Feng QUALIFIED
Jeanfrancois Q SaylorsJapanAnna Fali QUALIFIED
Misaki U GarufiGermanyAsiya Javayant UNQUALIFIED
Adams X NestleGermanyAmy Elsner QUALIFIED
David D GillianSpainAsiya Javayant QUALIFIED
Antonio D NestleBrazilOnyama 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>