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
Maisha Z NestleItalyXuxue Feng NEW
Arvin U MaletIndiaIvan Magalhaes RENEWAL
Clifford M MarrierJapanAnna Fali NEGOTIATION
Darci P PaprockiItalyStephen Shaw RENEWAL
Aditya T WaycottUnited KingdomAmy Elsner NEGOTIATION
Munro T StensethArgentinaIoni Bowcher RENEWAL
Aika U RoysterRussiaIvan Magalhaes RENEWAL
Deepesh Y PaprockiSpainStephen Shaw QUALIFIED
Mujtaba C WieserRussiaElwin Sharvill RENEWAL
Silvio B AlbaresArgentinaAnna Fali UNQUALIFIED
Aika O OstroskyFranceIvan Magalhaes NEGOTIATION
David D TollnerSpainIoni Bowcher UNQUALIFIED
Maria U WhobreyBrazilIoni Bowcher NEGOTIATION
Murillo W OstroskyUnited KingdomIoni Bowcher NEGOTIATION
Kadeem H PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Costa O ShinkoFranceAmy Elsner PROPOSAL
Nicolas M VenereSpainXuxue Feng PROPOSAL
Adams R SchemmerJapanAmy Elsner NEW
Kadeem C BologniaFranceBernardo Dominic RENEWAL
Jeanfrancois N IturbideFranceIoni Bowcher UNQUALIFIED
Francesco G BriddickSpainStephen Shaw QUALIFIED
Mayumi C OldroydCanadaStephen Shaw QUALIFIED
Jeanfrancois C DoeAustraliaXuxue Feng PROPOSAL
Jones X StockhamGermanyAsiya Javayant UNQUALIFIED
Claire J CaldareraSpainOnyama Limba NEGOTIATION
Kaitlin Q DilliardJapanIoni Bowcher PROPOSAL
Faith C RutaFranceOnyama Limba UNQUALIFIED
Julie R FlosiAustraliaIoni Bowcher UNQUALIFIED
Misaki C OldroydSpainIvan Magalhaes RENEWAL
James J SlusarskiIndiaOnyama Limba NEGOTIATION
Johnson S GauchoArgentinaElwin Sharvill NEW
Izzy G MarrierGermanyAmy Elsner NEW
Adams B AmigonFranceAmy Elsner NEGOTIATION
Isabel G MacleadCanadaElwin Sharvill PROPOSAL
Antonio K WaycottCanadaIoni Bowcher RENEWAL
Misaki B StensethIndiaOnyama Limba UNQUALIFIED
Aika Y DarakjyBrazilIoni Bowcher NEW
Salvatore Y OstroskyGermanyIvan Magalhaes QUALIFIED
Darci E WieserAustraliaElwin Sharvill NEGOTIATION
Misaki H ButtItalyBernardo Dominic NEGOTIATION
Deepesh B FerenczIndiaIoni Bowcher NEGOTIATION
Jefferson L GillianFranceIoni Bowcher QUALIFIED
Leon Z AmigonFranceIvan Magalhaes QUALIFIED
Clifford L ChuiSpainElwin Sharvill QUALIFIED
Salvatore E PoquetteItalyAnna Fali QUALIFIED
Jefferson W OstroskyAustraliaAnna Fali QUALIFIED
Tony N FigeroaFranceAmy Elsner NEW
Aruna F GillianRussiaBernardo Dominic PROPOSAL
Costa Y DilliardAustraliaIoni Bowcher QUALIFIED
Juan A MorascaAustraliaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey N CaudyGermanyIvan Magalhaes NEW
Maria Q GauchoRussiaAsiya Javayant UNQUALIFIED
James C CaudyBrazilOnyama Limba NEGOTIATION
Jefferson S TollnerItalyAsiya Javayant UNQUALIFIED
Mayumi R SaylorsGermanyAsiya Javayant UNQUALIFIED
Greenwood N PaprockiItalyOnyama Limba NEGOTIATION
Cody V FigeroaGermanyIvan Magalhaes UNQUALIFIED
Smith Y StensethJapanElwin Sharvill NEW
Adams N NickaIndiaAsiya Javayant QUALIFIED
Sinclair K TollnerUnited KingdomBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey V GillianSpain2026-07-22Printing Dimensions UNQUALIFIED79Onyama Limba
1001Nicolas V GillianBrazil2026-07-20Buckley Miller Wright UNQUALIFIED11Elwin Sharvill
1002Morrow D WieserUnited Kingdom2026-07-14Rousseaux, Michael Esq UNQUALIFIED26Asiya Javayant
1003Munro Z FollerItaly2026-08-04Dorl, James J Esq NEW59Ioni Bowcher
1004Leon N WhobreyIndia2026-07-17Morlong Associates QUALIFIED44Bernardo Dominic
1005Ivar H AlbaresFrance2026-07-15Feiner Bros RENEWAL47Elwin Sharvill
1006Cody X DarakjyJapan2026-08-07Dorl, James J Esq UNQUALIFIED6Amy Elsner
1007Julie E RimIndia2026-07-17Feltz Printing Service NEW8Onyama Limba
1008Murillo S MorascaJapan2026-08-03Commercial Press NEW29Ivan Magalhaes
1009Cody S FlosiFrance2026-07-15Chemel, James L Cpa UNQUALIFIED36Ioni Bowcher
1010Stacey O NickaCanada2026-07-17Chanay, Jeffrey A Esq NEW34Stephen Shaw
1011Faith O RutaItaly2026-07-24Truhlar And Truhlar Attys NEW17Ivan Magalhaes
1012Ashley X MorascaCanada2026-07-16Buckley Miller Wright NEGOTIATION48Onyama Limba
1013Munro P DoeBrazil2026-08-06Benton, John B Jr PROPOSAL61Anna Fali
1014Aditya B DoeJapan2026-07-23Rousseaux, Michael Esq NEGOTIATION77Asiya Javayant
1015Arvin J GillianArgentina2026-07-16Buckley Miller Wright NEGOTIATION29Elwin Sharvill
1016Costa X DarakjyArgentina2026-07-27King, Christopher A Esq NEGOTIATION98Bernardo Dominic
1017Juan Q DoeJapan2026-07-24Buckley Miller Wright QUALIFIED44Ivan Magalhaes
1018Costa V SergiGermany2026-07-17Chemel, James L Cpa NEGOTIATION15Amy Elsner
1019Maisha T GlickFrance2026-08-01Morlong Associates PROPOSAL94Amy Elsner
1020Clifford A DoeBrazil2026-07-22King, Christopher A Esq NEW71Anna Fali
1021Juan E DarakjyArgentina2026-08-05Feiner Bros UNQUALIFIED82Onyama Limba
1022Kadeem R WhobreyItaly2026-07-26Feltz Printing Service PROPOSAL40Asiya Javayant
1023Jefferson G WhobreyFrance2026-08-09King, Christopher A Esq QUALIFIED14Xuxue Feng
1024Claire B RoysterAustralia2026-08-10Dorl, James J Esq NEW70Onyama Limba
1025Rodrigues T ShinkoIndia2026-07-14Chapman, Ross E Esq RENEWAL62Ioni Bowcher
1026Octavia R SlusarskiBrazil2026-07-28Truhlar And Truhlar Attys UNQUALIFIED92Ioni Bowcher
1027Sinclair B MarrierItaly2026-07-27King, Christopher A Esq QUALIFIED20Anna Fali
1028Leja Z WaycottIndia2026-07-16Feltz Printing Service RENEWAL82Ivan Magalhaes
1029Emily D FigeroaRussia2026-08-04King, Christopher A Esq QUALIFIED10Stephen Shaw
1030Kadeem W PaprockiAustralia2026-07-19Morlong Associates QUALIFIED8Onyama Limba
1031Isabel U KuskoItaly2026-07-27Feltz Printing Service RENEWAL97Elwin Sharvill
1032Deepesh B FerenczUnited Kingdom2026-08-05Truhlar And Truhlar Attys RENEWAL47Ioni Bowcher
1033Arvin I RoysterCanada2026-07-25Printing Dimensions RENEWAL69Onyama Limba
1034Kaitlin S KolmetzJapan2026-08-04Buckley Miller Wright NEW90Anna Fali
1035Leja N StensethSpain2026-07-13Benton, John B Jr PROPOSAL88Ioni Bowcher
1036Izzy W DarakjyUnited Kingdom2026-07-25Printing Dimensions PROPOSAL54Stephen Shaw
1037Clifford I SaylorsSpain2026-08-09Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1038Francesco J OstroskyCanada2026-08-03Buckley Miller Wright NEW18Onyama Limba
1039Johnson C TollnerBrazil2026-08-02Rangoni Of Florence UNQUALIFIED85Ioni Bowcher
1040Morrow G BriddickItaly2026-08-06Chapman, Ross E Esq RENEWAL73Amy Elsner
1041Smith Y SchemmerRussia2026-07-25Printing Dimensions NEW95Ioni Bowcher
1042Darci K MacleadArgentina2026-08-01Feltz Printing Service RENEWAL82Asiya Javayant
1043Ashley L KolmetzSpain2026-07-13Rangoni Of Florence PROPOSAL77Anna Fali
1044Emily J AlbaresGermany2026-08-10Feiner Bros NEGOTIATION47Onyama Limba
1045Jennifer Z ButtArgentina2026-07-16Commercial Press NEW32Onyama Limba
1046Darci Q OldroydItaly2026-08-04Buckley Miller Wright NEW19Asiya Javayant
1047Johnson Z ChuiGermany2026-07-12Rousseaux, Michael Esq QUALIFIED82Onyama Limba
1048Izzy K GlickAustralia2026-07-12Commercial Press UNQUALIFIED3Bernardo Dominic
1049Kaitlin L WieserFrance2026-07-29Dorl, James J Esq PROPOSAL40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Nicolas O OstroskyJapanElwin Sharvill QUALIFIED
Salvatore J CampainFranceOnyama Limba QUALIFIED
Aika T BologniaSpainAmy Elsner PROPOSAL
Stacey J AlbaresGermanyIvan Magalhaes RENEWAL
Juan Z NickaItalyOnyama Limba NEGOTIATION
Aditya I OldroydFranceAmy Elsner PROPOSAL
Jones F CaudyBrazilAnna Fali NEGOTIATION
Chavez I NickaAustraliaAmy Elsner NEGOTIATION
Sinclair D TollnerSpainIoni Bowcher NEGOTIATION
Emily F BowleyGermanyOnyama Limba RENEWAL
Jeanfrancois G BowleySpainOnyama Limba PROPOSAL
Chavez S StensethItalyIoni Bowcher RENEWAL
Kaitlin I MorascaFranceAmy Elsner NEGOTIATION
Greenwood H CaldareraBrazilAsiya Javayant RENEWAL
Salvatore T VenereGermanyBernardo Dominic NEGOTIATION
Kaitlin K StockhamGermanyAnna Fali PROPOSAL
Kaitlin M MaletSpainAsiya Javayant NEW
Francesco Y FigeroaJapanStephen Shaw NEGOTIATION
Arvin H FerenczUnited KingdomAsiya Javayant RENEWAL
Maisha W PerinItalyIoni Bowcher QUALIFIED
Jennifer O CampainGermanyBernardo Dominic PROPOSAL
Jones O WhobreySpainBernardo Dominic RENEWAL
Faith I WhobreyBrazilAsiya Javayant QUALIFIED
Costa C CaudyCanadaElwin Sharvill PROPOSAL
Darci Q SchemmerArgentinaAnna Fali QUALIFIED
Jeanfrancois R PaprockiSpainElwin Sharvill QUALIFIED
Faith Q VenereGermanyOnyama Limba NEGOTIATION
Maria O NickaItalyStephen Shaw RENEWAL
Sinclair T RoysterCanadaAnna Fali RENEWAL
David D NickaIndiaAsiya Javayant NEW
Ricardo K KolmetzRussiaAnna Fali PROPOSAL
Greenwood B PerinItalyStephen Shaw RENEWAL
Darci Y MorascaSpainStephen Shaw UNQUALIFIED
Alejandro Y FlosiBrazilAsiya Javayant NEGOTIATION
Greenwood C DoeBrazilElwin Sharvill PROPOSAL
James W FigeroaItalyIvan Magalhaes PROPOSAL
Jeanfrancois R MaletUnited KingdomXuxue Feng QUALIFIED
Leon E WhobreyJapanStephen Shaw PROPOSAL
Smith I GillianGermanyElwin Sharvill PROPOSAL
Mujtaba O GauchoSpainBernardo Dominic UNQUALIFIED
Clifford S TollnerAustraliaBernardo Dominic NEGOTIATION
Maisha I BowleyBrazilIvan Magalhaes NEGOTIATION
Tony N FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Sinclair C WaycottFranceAnna Fali PROPOSAL
Julie C KuskoItalyOnyama Limba PROPOSAL
Misaki E ChuiAustraliaElwin Sharvill UNQUALIFIED
Silvio Y OldroydJapanXuxue Feng RENEWAL
Chavez F CampainCanadaStephen Shaw RENEWAL
Alejandro H NestleGermanyBernardo Dominic NEW
Deepesh Q WaycottFranceBernardo Dominic RENEWAL
Frozen Columns
Name
Mayumi G Nestle
Greenwood Y Flosi
Jefferson F Albares
Stacey H Waycott
Tony V Ruta
Nicolas O Butt
Deepesh G Stenseth
Kaitlin X Caudy
Aika F Doe
Munro U Doe
Francesco B Nestle
Aditya A Marrier
Aika B Perin
Salvatore F Gaucho
Johnson B Ruta
Aruna E Marrier
Juan B Tollner
Izzy N Poquette
Aruna D Sergi
Tony J Poquette
Aika M Tollner
Leon Q Caldarera
Cody O Perin
Salvatore G Waycott
Antonio X Tollner
Leon T Bowley
Ivar F Dilliard
Smith R Gillian
Ashley E Morasca
Arvin Z Poquette
Murillo U Nicka
Julie R Royster
Silvio M Kolmetz
Isabel B Venere
Munro Q Oldroyd
Salvatore W Shinko
Chavez L Morasca
Octavia H Sergi
James A Venere
Arvin V Schemmer
Kadeem Z Darakjy
Jefferson G Vocelka
Isabel N Morasca
Aditya M Saylors
Misaki V Gaucho
Aruna I Inouye
Izzy M Malet
Ivar L Saylors
Octavia W Rim
James G Vocelka
IdCountryDate
1000Japan2026-08-08
1001Japan2026-08-09
1002Spain2026-07-25
1003Australia2026-07-17
1004Italy2026-08-03
1005Spain2026-08-07
1006Brazil2026-07-16
1007Japan2026-08-09
1008Japan2026-08-03
1009Spain2026-07-19
1010Argentina2026-07-20
1011United Kingdom2026-07-31
1012Canada2026-07-28
1013Australia2026-07-12
1014Italy2026-08-01
1015Spain2026-08-09
1016Spain2026-07-20
1017United Kingdom2026-08-06
1018India2026-08-06
1019Australia2026-07-24
1020Brazil2026-08-02
1021Brazil2026-07-30
1022Argentina2026-07-28
1023Brazil2026-08-07
1024Japan2026-07-27
1025Russia2026-08-03
1026Spain2026-07-14
1027France2026-07-25
1028United Kingdom2026-08-04
1029Australia2026-07-13
1030Canada2026-08-04
1031Australia2026-07-13
1032France2026-07-25
1033United Kingdom2026-07-16
1034Canada2026-08-06
1035United Kingdom2026-07-27
1036Argentina2026-07-31
1037Australia2026-07-12
1038Russia2026-07-26
1039Spain2026-07-14
1040Canada2026-08-05
1041Australia2026-07-26
1042India2026-07-23
1043Germany2026-07-14
1044France2026-07-15
1045India2026-08-08
1046Brazil2026-07-31
1047Spain2026-07-16
1048Russia2026-08-04
1049Russia2026-07-29

On-Demand Data

NameIdCountryDate
Wickens D Stenseth1000Canada2026-08-04
David Q Venere1001Canada2026-08-06
Tony V Paprocki1002Argentina2026-07-28
Leon D Caudy1003Argentina2026-07-12
Aditya X Garufi1004Argentina2026-07-19
Aika B Albares1005Italy2026-07-19
Jeanfrancois E Wieser1006Germany2026-07-13
Rodrigues G Iturbide1007France2026-07-24
Darci G Stenseth1008Spain2026-07-24
Kaitlin R Amigon1009Russia2026-07-16
Morrow T Glick1010France2026-07-19
Darci X Doe1011Spain2026-08-08
Morrow W Bolognia1012Japan2026-07-17
Murillo B Maclead1013Italy2026-08-02
Claire T Flosi1014India2026-07-12
Darci X Maclead1015Japan2026-07-23
Tony F Briddick1016India2026-07-15
Jefferson K Saylors1017Japan2026-07-21
Aditya J Gaucho1018Brazil2026-07-17
Mayumi T Nicka1019Russia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi B VenereJapanIoni Bowcher QUALIFIED
Murillo M RoysterGermanyIoni Bowcher PROPOSAL
Jennifer D WhobreyIndiaElwin Sharvill RENEWAL
Octavia M CaldareraGermanyIvan Magalhaes PROPOSAL
Rodrigues R GillianGermanyAsiya Javayant RENEWAL
Greenwood T AmigonJapanOnyama Limba NEW
Ivar A AlbaresGermanyOnyama Limba RENEWAL
Jones I ShinkoIndiaOnyama Limba UNQUALIFIED
David Y MorascaUnited KingdomAmy Elsner QUALIFIED
Ivar S DilliardBrazilStephen Shaw NEW
Misaki S WhobreyJapanBernardo Dominic UNQUALIFIED
Johnson M CampainIndiaAsiya Javayant PROPOSAL
Leon O SaylorsItalyAmy Elsner NEW
Julie P BologniaCanadaOnyama Limba UNQUALIFIED
David K DilliardItalyBernardo Dominic RENEWAL
Ashley U SchemmerItalyIvan Magalhaes NEW
Salvatore E WaycottArgentinaAsiya Javayant QUALIFIED
Aruna O KuskoJapanStephen Shaw NEW
Alejandro X NickaIndiaIvan Magalhaes NEW
Clifford O RutaCanadaStephen Shaw NEW
Aika W PaprockiAustraliaStephen Shaw NEW
James A DilliardSpainBernardo Dominic UNQUALIFIED
Stacey Q RimArgentinaIvan Magalhaes NEW
Juan X ButtUnited KingdomIoni Bowcher QUALIFIED
Octavia V VocelkaJapanAnna Fali NEW
Octavia A PerinIndiaXuxue Feng UNQUALIFIED
Aruna B VenereAustraliaElwin Sharvill NEGOTIATION
Cody P RutaAustraliaIoni Bowcher RENEWAL
Rodrigues E OstroskyUnited KingdomAmy Elsner RENEWAL
Jefferson M MaletUnited KingdomOnyama Limba QUALIFIED
Octavia E ChuiAustraliaXuxue Feng NEW
Munro Z CampainArgentinaIvan Magalhaes PROPOSAL
Jones B BriddickAustraliaIvan Magalhaes UNQUALIFIED
Ivar I FigeroaRussiaAmy Elsner NEGOTIATION
Johnson J KuskoCanadaIvan Magalhaes RENEWAL
Jeanfrancois M GillianJapanElwin Sharvill NEW
Wickens X SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
Darci J GarufiBrazilAnna Fali QUALIFIED
Francesco L DoeAustraliaOnyama Limba PROPOSAL
Sinclair X SaylorsUnited KingdomElwin Sharvill UNQUALIFIED

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