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
Johnson N WieserBrazilAnna Fali NEW
Adams J WhobreyBrazilElwin Sharvill NEGOTIATION
Smith I ShinkoBrazilIvan Magalhaes QUALIFIED
Jennifer K GarufiJapanBernardo Dominic PROPOSAL
Jones R TollnerFranceAmy Elsner NEW
Emily A TollnerSpainBernardo Dominic QUALIFIED
Maria N SergiCanadaAnna Fali NEW
Ivar G MacleadFranceIoni Bowcher PROPOSAL
Izzy I TollnerItalyXuxue Feng NEGOTIATION
Kaitlin Q IturbideGermanyAnna Fali NEGOTIATION
Aika J MarrierIndiaXuxue Feng NEGOTIATION
Ashley F GillianIndiaXuxue Feng NEGOTIATION
Octavia I AlbaresCanadaIvan Magalhaes UNQUALIFIED
Alejandro E BologniaGermanyElwin Sharvill PROPOSAL
Clifford A ShinkoJapanXuxue Feng RENEWAL
Jones Q FigeroaArgentinaAnna Fali PROPOSAL
Kaitlin F SaylorsJapanIvan Magalhaes QUALIFIED
Kadeem H GillianJapanBernardo Dominic NEGOTIATION
Mujtaba B FerenczGermanyAnna Fali UNQUALIFIED
Nicolas X KuskoUnited KingdomStephen Shaw RENEWAL
Munro U PerinBrazilAsiya Javayant UNQUALIFIED
James P NestleGermanyElwin Sharvill PROPOSAL
Juan S SaylorsBrazilIoni Bowcher QUALIFIED
Morrow M PoquetteFranceAmy Elsner PROPOSAL
Maisha J NestleJapanBernardo Dominic QUALIFIED
David E AmigonAustraliaBernardo Dominic NEGOTIATION
Murillo B AlbaresBrazilXuxue Feng PROPOSAL
Murillo J WhobreyArgentinaXuxue Feng PROPOSAL
Kaitlin G FigeroaArgentinaAnna Fali PROPOSAL
Maisha M ShinkoSpainBernardo Dominic QUALIFIED
Aditya P GillianJapanElwin Sharvill NEGOTIATION
Francesco C RimFranceAnna Fali PROPOSAL
Francesco A MaletFranceIvan Magalhaes RENEWAL
Octavia C CampainIndiaStephen Shaw NEGOTIATION
Deepesh U FerenczSpainStephen Shaw UNQUALIFIED
Claire F RutaRussiaBernardo Dominic NEW
Morrow W MacleadArgentinaAsiya Javayant UNQUALIFIED
David R GlickItalyElwin Sharvill RENEWAL
Smith I SlusarskiJapanOnyama Limba RENEWAL
Darci T NestleIndiaOnyama Limba PROPOSAL
Clifford T WieserAustraliaIoni Bowcher NEW
Murillo P RutaSpainElwin Sharvill PROPOSAL
Jeanfrancois Z BriddickBrazilIvan Magalhaes NEGOTIATION
Julie E WhobreyFranceIvan Magalhaes NEW
Misaki K OstroskySpainElwin Sharvill NEW
Aika T RutaJapanOnyama Limba UNQUALIFIED
Nicolas Y WaycottUnited KingdomBernardo Dominic NEGOTIATION
Kadeem F VocelkaBrazilXuxue Feng NEGOTIATION
Wickens O NestleCanadaAmy Elsner QUALIFIED
Mujtaba X FerenczIndiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire F MaletIndiaBernardo Dominic NEGOTIATION
Jones B PaprockiIndiaAmy Elsner UNQUALIFIED
Isabel H CaldareraRussiaStephen Shaw RENEWAL
Ivar M BriddickGermanyElwin Sharvill PROPOSAL
Leja K ButtJapanXuxue Feng QUALIFIED
Juan T DoeJapanIvan Magalhaes PROPOSAL
Clifford K ShinkoSpainAnna Fali RENEWAL
David Q ShinkoFranceStephen Shaw PROPOSAL
Aruna P RoysterItalyAsiya Javayant RENEWAL
Morrow C StockhamSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci I DarakjyArgentina2026-07-14Dorl, James J Esq PROPOSAL69Ioni Bowcher
1001Johnson O CaldareraCanada2026-07-21Printing Dimensions PROPOSAL1Asiya Javayant
1002Faith J GarufiAustralia2026-07-16Benton, John B Jr QUALIFIED21Elwin Sharvill
1003Antonio H ButtGermany2026-07-13Morlong Associates QUALIFIED97Bernardo Dominic
1004Rodrigues W CaudyArgentina2026-07-09Rousseaux, Michael Esq PROPOSAL51Ioni Bowcher
1005Aditya O NickaJapan2026-07-01Printing Dimensions PROPOSAL81Elwin Sharvill
1006Jefferson B VenereArgentina2026-07-16Commercial Press QUALIFIED5Bernardo Dominic
1007Francesco V RoysterRussia2026-07-08Chemel, James L Cpa UNQUALIFIED99Xuxue Feng
1008Ricardo H BowleySpain2026-06-28Truhlar And Truhlar Attys NEW6Ioni Bowcher
1009Johnson A SchemmerGermany2026-07-18Dorl, James J Esq UNQUALIFIED6Ivan Magalhaes
1010Octavia Q BologniaRussia2026-07-07Commercial Press NEW58Amy Elsner
1011Aika Y SchemmerBrazil2026-07-03Commercial Press UNQUALIFIED38Ivan Magalhaes
1012Antonio X OldroydFrance2026-07-14Chemel, James L Cpa NEGOTIATION69Onyama Limba
1013Morrow M KuskoArgentina2026-06-26King, Christopher A Esq UNQUALIFIED57Ivan Magalhaes
1014Chavez M DoeItaly2026-06-25Dorl, James J Esq NEW59Ivan Magalhaes
1015Sinclair B NestleArgentina2026-07-02Truhlar And Truhlar Attys QUALIFIED75Amy Elsner
1016Antonio D WhobreyIndia2026-07-07Feltz Printing Service NEW55Bernardo Dominic
1017Chavez W AlbaresCanada2026-07-09King, Christopher A Esq QUALIFIED4Ioni Bowcher
1018Sinclair C ButtUnited Kingdom2026-06-22Morlong Associates QUALIFIED68Stephen Shaw
1019Adams P BriddickItaly2026-07-02Rousseaux, Michael Esq UNQUALIFIED74Bernardo Dominic
1020Greenwood T PaprockiArgentina2026-07-14Morlong Associates RENEWAL16Amy Elsner
1021Alejandro D CaldareraIndia2026-06-26Chapman, Ross E Esq NEGOTIATION64Elwin Sharvill
1022Alejandro K OldroydArgentina2026-07-10Rangoni Of Florence PROPOSAL56Elwin Sharvill
1023Ricardo A GarufiIndia2026-07-03Printing Dimensions RENEWAL3Stephen Shaw
1024Morrow A MaletItaly2026-07-05Chapman, Ross E Esq NEW16Ivan Magalhaes
1025Ricardo I MaletGermany2026-06-25Commercial Press QUALIFIED66Elwin Sharvill
1026Isabel E NestleCanada2026-07-15Morlong Associates RENEWAL74Onyama Limba
1027Darci I KuskoRussia2026-07-18Dorl, James J Esq QUALIFIED62Xuxue Feng
1028Jeanfrancois T GarufiSpain2026-07-02Rousseaux, Michael Esq PROPOSAL84Elwin Sharvill
1029Maisha I SchemmerIndia2026-07-17Morlong Associates PROPOSAL38Stephen Shaw
1030Greenwood F VenereItaly2026-07-19Commercial Press PROPOSAL7Anna Fali
1031Cody W SlusarskiUnited Kingdom2026-06-22Feiner Bros UNQUALIFIED71Onyama Limba
1032Ashley C InouyeArgentina2026-07-08Chemel, James L Cpa QUALIFIED45Ioni Bowcher
1033Darci H CaldareraArgentina2026-07-12Truhlar And Truhlar Attys RENEWAL87Asiya Javayant
1034Aruna P PerinAustralia2026-07-16Truhlar And Truhlar Attys UNQUALIFIED25Stephen Shaw
1035Isabel Q CaudyItaly2026-06-23Benton, John B Jr RENEWAL2Stephen Shaw
1036Murillo F OstroskySpain2026-06-30Buckley Miller Wright NEGOTIATION94Elwin Sharvill
1037Adams U RutaItaly2026-07-15Chanay, Jeffrey A Esq PROPOSAL62Bernardo Dominic
1038Salvatore X WhobreyIndia2026-07-18Chemel, James L Cpa PROPOSAL46Ivan Magalhaes
1039Ivar X KuskoAustralia2026-06-25Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1040Munro D DilliardGermany2026-07-21Buckley Miller Wright UNQUALIFIED95Xuxue Feng
1041Maisha T ShinkoItaly2026-07-20Truhlar And Truhlar Attys RENEWAL33Bernardo Dominic
1042Johnson M GarufiArgentina2026-07-11Feiner Bros RENEWAL62Bernardo Dominic
1043Julie W VocelkaJapan2026-06-28Truhlar And Truhlar Attys NEW30Onyama Limba
1044Stacey N DilliardGermany2026-07-08Rangoni Of Florence UNQUALIFIED98Onyama Limba
1045Tony D IturbideFrance2026-07-21Chemel, James L Cpa NEW59Anna Fali
1046Emily I GauchoArgentina2026-07-01Rousseaux, Michael Esq PROPOSAL43Xuxue Feng
1047David I MaletGermany2026-06-25Buckley Miller Wright RENEWAL15Stephen Shaw
1048Stacey B GauchoArgentina2026-06-25Morlong Associates PROPOSAL86Elwin Sharvill
1049Mujtaba I PoquetteBrazil2026-06-24Commercial Press NEW53Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Octavia X SaylorsJapanElwin Sharvill NEGOTIATION
Nicolas O TollnerItalyXuxue Feng QUALIFIED
Maria S BriddickIndiaAnna Fali RENEWAL
Salvatore R FlosiRussiaAsiya Javayant PROPOSAL
Stacey W ChuiAustraliaStephen Shaw UNQUALIFIED
Rodrigues Z CaudyBrazilAsiya Javayant NEGOTIATION
Alejandro A DarakjyBrazilStephen Shaw UNQUALIFIED
Costa C FollerAustraliaStephen Shaw NEGOTIATION
Chavez C FollerRussiaXuxue Feng UNQUALIFIED
Ricardo V SlusarskiRussiaIvan Magalhaes RENEWAL
Aruna T IturbideGermanyOnyama Limba PROPOSAL
Aruna B SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson V DoeUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois J GlickItalyAsiya Javayant NEW
Izzy Y RoysterBrazilAnna Fali NEW
Francesco A GarufiCanadaAmy Elsner PROPOSAL
Izzy D PaprockiFranceStephen Shaw UNQUALIFIED
Smith J GarufiItalyBernardo Dominic NEGOTIATION
Maria Z DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Francesco A FollerBrazilAsiya Javayant NEGOTIATION
Mujtaba A VocelkaSpainOnyama Limba RENEWAL
Darci K WaycottFranceOnyama Limba NEGOTIATION
Salvatore O MacleadBrazilOnyama Limba NEGOTIATION
Jones P OldroydArgentinaAsiya Javayant UNQUALIFIED
Claire B SlusarskiCanadaOnyama Limba NEGOTIATION
Ashley J KuskoUnited KingdomAsiya Javayant RENEWAL
Chavez M VenereArgentinaElwin Sharvill PROPOSAL
Silvio D InouyeSpainBernardo Dominic NEGOTIATION
Misaki R GarufiBrazilAnna Fali NEGOTIATION
Kaitlin D WieserRussiaOnyama Limba NEW
Misaki B WhobreyFranceAsiya Javayant QUALIFIED
Juan W MaletItalyAsiya Javayant UNQUALIFIED
Smith V RulapaughItalyOnyama Limba RENEWAL
Salvatore V FollerFranceIoni Bowcher PROPOSAL
Misaki V ShinkoFranceElwin Sharvill RENEWAL
Faith I NickaItalyIoni Bowcher NEGOTIATION
Ivar A PoquetteGermanyXuxue Feng RENEWAL
Cody M FerenczAustraliaIoni Bowcher NEGOTIATION
Isabel U WieserItalyElwin Sharvill UNQUALIFIED
Emily W OldroydSpainAsiya Javayant NEGOTIATION
Misaki C FerenczFranceAsiya Javayant UNQUALIFIED
Maria L GlickSpainBernardo Dominic RENEWAL
Claire Q FlosiArgentinaStephen Shaw NEGOTIATION
Maria S ButtArgentinaOnyama Limba RENEWAL
Juan T MaletUnited KingdomAnna Fali QUALIFIED
Ashley V MarrierJapanBernardo Dominic PROPOSAL
Aditya F GauchoItalyAsiya Javayant PROPOSAL
Ricardo D MaletJapanBernardo Dominic NEGOTIATION
Mayumi B MacleadFranceIvan Magalhaes QUALIFIED
Ashley C FlosiFranceAnna Fali NEW
Frozen Columns
Name
Mujtaba O Campain
Darci U Gaucho
Rodrigues V Morasca
Ivar E Ruta
Stacey H Iturbide
Rodrigues C Malet
Nicolas C Schemmer
Aditya P Ostrosky
Smith K Doe
Deepesh H Garufi
Misaki H Briddick
Adams Z Nicka
Maria M Kusko
Julie T Oldroyd
Octavia M Chui
Munro N Iturbide
Mayumi E Chui
Ricardo Y Royster
Chavez B Garufi
Morrow A Nicka
Nicolas J Bolognia
Francesco K Gillian
Morrow P Caldarera
Stacey P Waycott
Ricardo Y Caldarera
Ivar E Gillian
Munro I Dilliard
Julie L Nicka
Faith R Doe
Cody H Ruta
Murillo Q Oldroyd
Sinclair W Bolognia
Octavia P Whobrey
Faith S Wieser
Salvatore T Gaucho
Misaki S Amigon
Mujtaba Y Butt
Kadeem Z Foller
Emily Y Caldarera
Smith Q Bolognia
Jeanfrancois M Dilliard
Ricardo X Gaucho
Costa R Kusko
Darci E Rim
Leja L Inouye
Cody F Foller
Johnson T Poquette
Darci U Kolmetz
Isabel Y Nestle
Murillo U Campain
IdCountryDate
1000Japan2026-07-10
1001Japan2026-07-12
1002United Kingdom2026-07-18
1003Brazil2026-06-29
1004France2026-06-24
1005Russia2026-07-21
1006Spain2026-07-03
1007Spain2026-06-25
1008Brazil2026-07-21
1009Italy2026-07-11
1010Russia2026-07-13
1011Canada2026-06-22
1012Germany2026-07-07
1013Argentina2026-06-25
1014Germany2026-07-21
1015Argentina2026-07-20
1016Russia2026-07-20
1017Argentina2026-06-30
1018Italy2026-06-24
1019Germany2026-06-24
1020Argentina2026-07-04
1021Canada2026-07-09
1022France2026-06-27
1023Russia2026-06-24
1024Italy2026-07-07
1025Germany2026-07-10
1026France2026-07-05
1027Italy2026-06-24
1028France2026-06-27
1029Italy2026-07-12
1030Japan2026-07-16
1031Argentina2026-07-20
1032France2026-07-13
1033France2026-07-16
1034France2026-07-16
1035United Kingdom2026-07-21
1036France2026-07-11
1037Brazil2026-07-12
1038Germany2026-07-16
1039Argentina2026-07-05
1040Australia2026-06-29
1041Spain2026-06-27
1042Canada2026-07-01
1043Australia2026-07-19
1044Spain2026-07-03
1045United Kingdom2026-06-29
1046Japan2026-07-21
1047Canada2026-06-25
1048Spain2026-07-09
1049Germany2026-06-22

On-Demand Data

NameIdCountryDate
Greenwood F Gaucho1000France2026-06-25
Misaki L Caldarera1001Germany2026-06-26
Faith R Perin1002Argentina2026-07-09
Alejandro N Ostrosky1003Australia2026-06-28
Maria H Inouye1004Germany2026-07-19
Misaki W Ruta1005France2026-06-26
Izzy I Malet1006Spain2026-07-21
Francesco J Caudy1007Australia2026-06-26
Ricardo A Marrier1008Italy2026-07-17
Silvio C Iturbide1009France2026-07-18
Isabel P Marrier1010United Kingdom2026-06-25
Cody N Ostrosky1011Japan2026-07-02
Jeanfrancois M Whobrey1012Japan2026-07-01
Rodrigues P Royster1013Australia2026-07-05
Mayumi Q Campain1014Japan2026-06-30
Darci W Saylors1015Russia2026-07-18
Deepesh E Whobrey1016France2026-07-06
Murillo G Rulapaugh1017Canada2026-07-17
Antonio E Foller1018Italy2026-07-06
Cody L Rim1019Russia2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer N NickaUnited KingdomAmy Elsner UNQUALIFIED
Jones C FigeroaFranceAmy Elsner QUALIFIED
Emily L BriddickArgentinaOnyama Limba PROPOSAL
Costa B FerenczFranceElwin Sharvill NEW
Ricardo T VenereBrazilAsiya Javayant QUALIFIED
Mayumi B GarufiGermanyAmy Elsner UNQUALIFIED
Mujtaba Z WieserUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood O MaletIndiaAmy Elsner NEGOTIATION
Deepesh P ChuiIndiaIoni Bowcher QUALIFIED
Juan X FlosiGermanyElwin Sharvill NEW
Jennifer K NickaBrazilAsiya Javayant RENEWAL
Isabel V OstroskyUnited KingdomStephen Shaw QUALIFIED
Octavia R OldroydArgentinaAnna Fali NEGOTIATION
Sinclair X IturbideIndiaBernardo Dominic NEGOTIATION
Nicolas G GillianJapanAmy Elsner QUALIFIED
Julie P ChuiGermanyAnna Fali RENEWAL
Arvin Y PoquetteFranceElwin Sharvill QUALIFIED
Maria N TollnerGermanyIvan Magalhaes NEW
Jones H TollnerSpainOnyama Limba NEW
Ricardo J AlbaresAustraliaAmy Elsner PROPOSAL
Rodrigues T MaletAustraliaElwin Sharvill NEW
Kadeem F DarakjyArgentinaOnyama Limba QUALIFIED
Arvin M MorascaIndiaAsiya Javayant PROPOSAL
Salvatore V WieserFranceBernardo Dominic NEW
Salvatore O InouyeBrazilAmy Elsner UNQUALIFIED
Wickens R ButtUnited KingdomAnna Fali RENEWAL
Kadeem L StockhamFranceStephen Shaw PROPOSAL
Jeanfrancois K MaletAustraliaAsiya Javayant UNQUALIFIED
Murillo S ChuiIndiaElwin Sharvill NEW
Alejandro E TollnerFranceAsiya Javayant NEW
Claire K MacleadRussiaBernardo Dominic UNQUALIFIED
Arvin Q MaletIndiaElwin Sharvill UNQUALIFIED
Francesco M AmigonRussiaXuxue Feng PROPOSAL
Aditya O NestleCanadaStephen Shaw PROPOSAL
Juan F MaletIndiaBernardo Dominic NEGOTIATION
Aditya S DilliardJapanAmy Elsner NEGOTIATION
Arvin F BologniaUnited KingdomAnna Fali NEGOTIATION
Leja W DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Misaki J PoquetteJapanOnyama Limba NEGOTIATION
Sinclair K NestleJapanAmy Elsner 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>