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
Alejandro V RulapaughArgentinaBernardo Dominic NEGOTIATION
Tony J FollerItalyAsiya Javayant PROPOSAL
Stacey H AlbaresBrazilAsiya Javayant UNQUALIFIED
Leon K FigeroaGermanyIoni Bowcher PROPOSAL
Jeanfrancois U VenereCanadaOnyama Limba NEGOTIATION
Chavez J PaprockiAustraliaXuxue Feng NEW
Aruna R SlusarskiItalyAmy Elsner NEW
Johnson C IturbideFranceAsiya Javayant PROPOSAL
James I StensethJapanAmy Elsner QUALIFIED
Jennifer P FigeroaRussiaXuxue Feng QUALIFIED
Munro M SlusarskiFranceIvan Magalhaes QUALIFIED
David T OstroskyAustraliaElwin Sharvill NEGOTIATION
Mayumi K FigeroaBrazilOnyama Limba QUALIFIED
Cody N ShinkoBrazilIoni Bowcher NEGOTIATION
Cody D GauchoSpainXuxue Feng PROPOSAL
David Q CaudyFranceIoni Bowcher QUALIFIED
Izzy D SaylorsJapanAsiya Javayant PROPOSAL
James U NestleJapanAnna Fali NEW
Isabel I FerenczFranceStephen Shaw PROPOSAL
Antonio I RimItalyBernardo Dominic NEGOTIATION
Munro V StensethItalyXuxue Feng NEW
Salvatore O DarakjyArgentinaOnyama Limba QUALIFIED
Rodrigues E FerenczCanadaOnyama Limba NEW
Kadeem M MaletAustraliaElwin Sharvill UNQUALIFIED
Aruna D FlosiItalyOnyama Limba UNQUALIFIED
Juan S NickaCanadaXuxue Feng QUALIFIED
Tony E BriddickArgentinaOnyama Limba UNQUALIFIED
Jennifer R StensethItalyOnyama Limba UNQUALIFIED
James X RimJapanAsiya Javayant PROPOSAL
Wickens I CaldareraCanadaBernardo Dominic NEGOTIATION
Isabel S TollnerGermanyStephen Shaw QUALIFIED
Jefferson F MacleadItalyAsiya Javayant RENEWAL
Mayumi H FollerUnited KingdomIvan Magalhaes RENEWAL
Adams Q OstroskySpainStephen Shaw NEGOTIATION
Johnson E MaletCanadaOnyama Limba QUALIFIED
Wickens E NestleBrazilStephen Shaw PROPOSAL
Chavez L AmigonUnited KingdomAmy Elsner PROPOSAL
Clifford V NestleArgentinaXuxue Feng PROPOSAL
Munro G AlbaresFranceAmy Elsner NEW
Mayumi Q VocelkaSpainElwin Sharvill NEGOTIATION
Chavez J BologniaFranceIvan Magalhaes PROPOSAL
Misaki B WaycottIndiaElwin Sharvill UNQUALIFIED
Ricardo Y PoquetteRussiaOnyama Limba PROPOSAL
James G PoquetteItalyAmy Elsner NEW
Smith K SaylorsIndiaXuxue Feng PROPOSAL
Emily E DilliardItalyOnyama Limba UNQUALIFIED
Munro I OldroydRussiaStephen Shaw PROPOSAL
David M FerenczItalyAmy Elsner RENEWAL
Wickens R StockhamBrazilAmy Elsner RENEWAL
Alejandro V SergiUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues M NestleGermanyElwin Sharvill NEW
James P KolmetzBrazilAsiya Javayant NEGOTIATION
Cody J FigeroaRussiaIvan Magalhaes NEW
Kaitlin R WaycottCanadaAmy Elsner RENEWAL
Smith V NickaArgentinaIoni Bowcher RENEWAL
Tony H FlosiAustraliaXuxue Feng NEGOTIATION
Juan V DoeBrazilOnyama Limba NEGOTIATION
Murillo C BriddickArgentinaOnyama Limba NEGOTIATION
Stacey Q InouyeBrazilXuxue Feng RENEWAL
Jennifer T NickaSpainIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson S IturbideAustralia2026-06-04Chapman, Ross E Esq NEW31Stephen Shaw
1001Jones X AlbaresUnited Kingdom2026-06-22Feiner Bros QUALIFIED11Stephen Shaw
1002Leon E FollerIndia2026-06-07Chemel, James L Cpa QUALIFIED18Ioni Bowcher
1003Munro U OstroskyRussia2026-06-08Rangoni Of Florence UNQUALIFIED92Amy Elsner
1004Arvin O PoquetteIndia2026-06-20King, Christopher A Esq NEW37Stephen Shaw
1005Murillo T CaudyAustralia2026-06-26Chapman, Ross E Esq QUALIFIED99Elwin Sharvill
1006Rodrigues L CaudyJapan2026-06-20Rousseaux, Michael Esq PROPOSAL76Xuxue Feng
1007Leja X IturbideFrance2026-07-02Rangoni Of Florence NEW26Stephen Shaw
1008Wickens H PoquetteAustralia2026-06-29Buckley Miller Wright PROPOSAL78Onyama Limba
1009Kaitlin Q IturbideBrazil2026-06-29Chemel, James L Cpa RENEWAL29Elwin Sharvill
1010Johnson R RoysterArgentina2026-06-30Buckley Miller Wright UNQUALIFIED62Onyama Limba
1011James E ChuiRussia2026-06-25Morlong Associates QUALIFIED8Ivan Magalhaes
1012Stacey N FollerRussia2026-07-03Benton, John B Jr NEW42Stephen Shaw
1013Juan B GlickRussia2026-06-29Dorl, James J Esq QUALIFIED38Onyama Limba
1014Adams D GarufiGermany2026-06-30Feiner Bros NEGOTIATION16Xuxue Feng
1015Munro F TollnerArgentina2026-06-08Rangoni Of Florence NEW92Stephen Shaw
1016Mujtaba V MacleadRussia2026-06-15Chanay, Jeffrey A Esq UNQUALIFIED96Elwin Sharvill
1017Izzy W AmigonIndia2026-06-10Buckley Miller Wright RENEWAL35Xuxue Feng
1018James S PaprockiGermany2026-06-10Chemel, James L Cpa NEGOTIATION23Ioni Bowcher
1019Adams Q OldroydRussia2026-06-14Buckley Miller Wright PROPOSAL94Ioni Bowcher
1020Morrow C WaycottCanada2026-06-29Printing Dimensions UNQUALIFIED77Onyama Limba
1021Jeanfrancois D WhobreyBrazil2026-06-23Feltz Printing Service PROPOSAL9Ivan Magalhaes
1022Maisha A MacleadSpain2026-06-07Benton, John B Jr NEW50Elwin Sharvill
1023James G CaudyArgentina2026-06-21Rousseaux, Michael Esq NEGOTIATION66Anna Fali
1024David R RutaItaly2026-06-30Rangoni Of Florence UNQUALIFIED63Ivan Magalhaes
1025Emily Q RoysterCanada2026-06-20Feiner Bros NEW13Elwin Sharvill
1026Ivar Y ChuiSpain2026-06-11Chanay, Jeffrey A Esq PROPOSAL83Ioni Bowcher
1027Francesco Y DarakjyGermany2026-06-15Truhlar And Truhlar Attys UNQUALIFIED58Bernardo Dominic
1028Antonio Z WaycottIndia2026-06-24Morlong Associates QUALIFIED27Amy Elsner
1029Octavia F VenereIndia2026-06-26Truhlar And Truhlar Attys RENEWAL76Amy Elsner
1030Antonio M WaycottCanada2026-06-20Chapman, Ross E Esq NEW61Ivan Magalhaes
1031Leon Y BriddickAustralia2026-06-26Feiner Bros RENEWAL6Asiya Javayant
1032Stacey M OldroydItaly2026-06-12Rousseaux, Michael Esq NEW92Stephen Shaw
1033David K SaylorsSpain2026-06-09Rangoni Of Florence NEW19Anna Fali
1034Mujtaba A TollnerRussia2026-06-05Chanay, Jeffrey A Esq NEW17Onyama Limba
1035Kadeem R ChuiRussia2026-07-03Printing Dimensions NEW30Onyama Limba
1036Johnson Q DoeArgentina2026-06-17Benton, John B Jr UNQUALIFIED43Amy Elsner
1037Aditya I SergiGermany2026-06-12Buckley Miller Wright NEGOTIATION61Ivan Magalhaes
1038Wickens N VocelkaFrance2026-06-21Rangoni Of Florence UNQUALIFIED40Onyama Limba
1039Clifford N StensethJapan2026-06-14Rangoni Of Florence NEW19Onyama Limba
1040Isabel C NickaJapan2026-06-10Feiner Bros NEW47Asiya Javayant
1041Ashley Q FlosiItaly2026-06-09Printing Dimensions UNQUALIFIED37Ivan Magalhaes
1042Juan I DilliardArgentina2026-06-18Chanay, Jeffrey A Esq RENEWAL37Ioni Bowcher
1043Johnson S FollerFrance2026-06-04Rousseaux, Michael Esq PROPOSAL11Stephen Shaw
1044Kadeem X GlickGermany2026-06-07King, Christopher A Esq PROPOSAL41Xuxue Feng
1045Maisha Y StockhamItaly2026-06-07Chanay, Jeffrey A Esq QUALIFIED82Xuxue Feng
1046Adams K StockhamItaly2026-07-03Printing Dimensions NEGOTIATION67Asiya Javayant
1047Misaki F GauchoRussia2026-06-17Morlong Associates UNQUALIFIED59Asiya Javayant
1048Maria A SlusarskiFrance2026-06-11Commercial Press NEW2Ivan Magalhaes
1049Greenwood H FollerRussia2026-06-15King, Christopher A Esq PROPOSAL14Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
David C StockhamAustraliaAmy Elsner NEGOTIATION
Faith N DilliardFranceXuxue Feng QUALIFIED
Leon A AlbaresRussiaAnna Fali UNQUALIFIED
Jeanfrancois S RimCanadaAmy Elsner UNQUALIFIED
Greenwood Z RimGermanyAnna Fali RENEWAL
Clifford I FerenczFranceXuxue Feng RENEWAL
Antonio J VocelkaAustraliaAmy Elsner UNQUALIFIED
Silvio W FerenczRussiaXuxue Feng PROPOSAL
Aditya Z ButtGermanyStephen Shaw RENEWAL
Isabel N SaylorsCanadaAmy Elsner NEGOTIATION
Ivar G NestleSpainIoni Bowcher QUALIFIED
Silvio C ButtFranceStephen Shaw NEGOTIATION
Antonio C CaldareraBrazilElwin Sharvill UNQUALIFIED
Kadeem I FerenczArgentinaOnyama Limba NEW
Jeanfrancois Q BriddickArgentinaIoni Bowcher NEW
Isabel T PaprockiUnited KingdomAmy Elsner QUALIFIED
Chavez Z AmigonBrazilIvan Magalhaes NEW
Ricardo U RoysterBrazilAnna Fali RENEWAL
Alejandro L RimFranceAnna Fali NEW
Arvin H AmigonBrazilBernardo Dominic PROPOSAL
Chavez J OldroydFranceOnyama Limba QUALIFIED
Antonio F WhobreyUnited KingdomOnyama Limba RENEWAL
Tony T PaprockiItalyAnna Fali NEW
Maria V AmigonSpainOnyama Limba RENEWAL
Jones G TollnerBrazilElwin Sharvill UNQUALIFIED
Alejandro U RutaUnited KingdomIvan Magalhaes PROPOSAL
Johnson G SaylorsAustraliaElwin Sharvill NEW
Leja O CaudyFranceAnna Fali QUALIFIED
Stacey A VocelkaIndiaOnyama Limba RENEWAL
Aruna J AmigonIndiaAmy Elsner RENEWAL
Costa K IturbideIndiaElwin Sharvill NEGOTIATION
Tony G KolmetzCanadaIvan Magalhaes UNQUALIFIED
Sinclair D MacleadRussiaBernardo Dominic QUALIFIED
Chavez P MarrierFranceIvan Magalhaes NEGOTIATION
Aruna X AlbaresUnited KingdomElwin Sharvill PROPOSAL
Wickens L CaldareraArgentinaIoni Bowcher RENEWAL
Antonio N RulapaughArgentinaXuxue Feng QUALIFIED
Greenwood B DarakjyCanadaXuxue Feng QUALIFIED
Arvin N SergiFranceBernardo Dominic RENEWAL
Maria I MaletGermanyXuxue Feng RENEWAL
Izzy X FerenczBrazilStephen Shaw NEW
Smith M DilliardIndiaOnyama Limba RENEWAL
Ashley L MorascaSpainStephen Shaw NEGOTIATION
Silvio F GauchoUnited KingdomXuxue Feng RENEWAL
Mujtaba L PaprockiCanadaIoni Bowcher NEW
Alejandro O WhobreyAustraliaIoni Bowcher QUALIFIED
Francesco O ChuiUnited KingdomXuxue Feng RENEWAL
Chavez Q MaletGermanyXuxue Feng QUALIFIED
Cody N SchemmerCanadaStephen Shaw RENEWAL
Johnson G OldroydAustraliaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Deepesh F Glick
Cody H Malet
Emily E Paprocki
Deepesh Q Albares
Wickens U Gaucho
Morrow E Bolognia
Mujtaba Q Poquette
Jennifer Y Nestle
Cody D Caldarera
Tony V Darakjy
Izzy I Butt
Salvatore R Oldroyd
Wickens C Nestle
Silvio J Oldroyd
Julie I Paprocki
Emily I Waycott
Aruna V Stockham
Mayumi T Shinko
Aruna F Ostrosky
Wickens M Perin
Stacey N Inouye
Greenwood V Nestle
Wickens G Malet
Salvatore J Royster
Kadeem R Glick
Francesco Z Shinko
Claire D Poquette
Ivar Q Nestle
Juan J Shinko
Alejandro V Dilliard
Morrow P Marrier
Kadeem L Bolognia
Smith J Oldroyd
Kadeem J Bolognia
Nicolas F Waycott
Darci G Albares
Juan G Schemmer
Mayumi L Caldarera
Maisha E Gaucho
Tony Y Saylors
Murillo Z Figeroa
Julie V Flosi
Leja A Wieser
Juan F Foller
Emily H Sergi
Nicolas P Glick
Jennifer F Rim
Ricardo S Bowley
Chavez I Darakjy
Misaki E Darakjy
IdCountryDate
1000Argentina2026-06-30
1001Spain2026-07-02
1002Australia2026-06-10
1003Spain2026-06-25
1004Brazil2026-06-08
1005Germany2026-06-13
1006Japan2026-06-12
1007Australia2026-06-08
1008Canada2026-06-26
1009Argentina2026-06-11
1010Japan2026-06-22
1011Canada2026-07-02
1012Italy2026-06-12
1013Spain2026-06-26
1014Australia2026-06-22
1015United Kingdom2026-06-07
1016Australia2026-06-12
1017Brazil2026-06-25
1018India2026-06-12
1019Russia2026-06-12
1020Brazil2026-06-24
1021Spain2026-06-09
1022India2026-06-22
1023Spain2026-06-07
1024Italy2026-06-26
1025India2026-06-14
1026Russia2026-06-10
1027United Kingdom2026-06-09
1028Argentina2026-06-16
1029United Kingdom2026-06-06
1030India2026-06-15
1031United Kingdom2026-06-19
1032Australia2026-06-18
1033Russia2026-06-16
1034Canada2026-06-21
1035Australia2026-06-14
1036Russia2026-06-16
1037Brazil2026-06-30
1038Argentina2026-06-06
1039India2026-06-06
1040India2026-06-29
1041India2026-06-20
1042Argentina2026-06-12
1043Spain2026-06-12
1044Japan2026-06-08
1045Spain2026-06-18
1046India2026-06-17
1047Spain2026-06-30
1048Spain2026-06-24
1049Japan2026-06-13

On-Demand Data

NameIdCountryDate
Costa H Wieser1000Japan2026-06-22
Morrow O Nestle1001Canada2026-06-10
Silvio F Ostrosky1002Canada2026-06-04
Maria L Vocelka1003India2026-06-29
Smith C Schemmer1004Brazil2026-06-15
Ivar J Campain1005Canada2026-06-20
Maisha M Darakjy1006Argentina2026-06-12
Mayumi J Briddick1007United Kingdom2026-06-14
Aditya S Ostrosky1008Russia2026-06-13
Aruna P Poquette1009Spain2026-07-01
Alejandro M Ruta1010Brazil2026-06-16
Aika O Schemmer1011India2026-06-04
Mujtaba O Doe1012Australia2026-06-07
Misaki P Caudy1013France2026-06-07
Octavia E Sergi1014Japan2026-06-10
Cody N Whobrey1015United Kingdom2026-06-05
Adams O Whobrey1016Australia2026-06-25
Deepesh B Gaucho1017Italy2026-07-01
Costa X Garufi1018Canada2026-06-04
James B Dilliard1019Japan2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci V RutaSpainXuxue Feng NEGOTIATION
Leja T ChuiRussiaAsiya Javayant PROPOSAL
Morrow A KuskoGermanyAmy Elsner NEW
Kaitlin L CaldareraGermanyXuxue Feng NEW
Clifford J OstroskyItalyAnna Fali RENEWAL
Julie E RoysterBrazilStephen Shaw PROPOSAL
Clifford I GarufiJapanBernardo Dominic NEW
Mujtaba Z GillianArgentinaAnna Fali NEGOTIATION
Misaki M SchemmerIndiaStephen Shaw NEW
Aditya A NestleSpainXuxue Feng NEW
Nicolas G MaletBrazilIoni Bowcher PROPOSAL
Kaitlin P AmigonUnited KingdomOnyama Limba NEW
Claire M BriddickArgentinaBernardo Dominic QUALIFIED
Darci W SchemmerGermanyStephen Shaw PROPOSAL
Murillo H CaldareraRussiaIoni Bowcher PROPOSAL
Adams X DarakjyRussiaOnyama Limba RENEWAL
Kadeem E OstroskyIndiaIvan Magalhaes QUALIFIED
Kaitlin H GillianRussiaIoni Bowcher PROPOSAL
Alejandro N VenereUnited KingdomAsiya Javayant UNQUALIFIED
Jones I NestleFranceAsiya Javayant RENEWAL
Octavia G MarrierIndiaIvan Magalhaes QUALIFIED
Leja B KuskoUnited KingdomStephen Shaw UNQUALIFIED
Deepesh M RulapaughGermanyOnyama Limba NEW
Jeanfrancois R VocelkaFranceAnna Fali NEW
Aditya H FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Adams Q RoysterSpainStephen Shaw QUALIFIED
Leja Z SergiRussiaAnna Fali QUALIFIED
Aika B OldroydSpainStephen Shaw RENEWAL
Smith J FerenczRussiaOnyama Limba UNQUALIFIED
Faith W VenereArgentinaIoni Bowcher NEW
Kaitlin H SlusarskiFranceBernardo Dominic UNQUALIFIED
Jefferson L OldroydSpainElwin Sharvill NEW
Mayumi G VenereRussiaStephen Shaw RENEWAL
Nicolas M WhobreyJapanOnyama Limba NEW
Munro D FlosiFranceXuxue Feng PROPOSAL
Aditya W DarakjyAustraliaOnyama Limba NEW
Morrow F InouyeFranceElwin Sharvill QUALIFIED
Greenwood S RutaSpainOnyama Limba NEW
Ricardo V StockhamBrazilAmy Elsner PROPOSAL
Maisha A PoquetteCanadaAsiya Javayant PROPOSAL

<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>