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
Darci D KuskoItalyStephen Shaw NEW
David E OldroydGermanyAsiya Javayant NEW
Tony C KuskoAustraliaXuxue Feng UNQUALIFIED
Juan H BologniaAustraliaStephen Shaw UNQUALIFIED
Faith Z RulapaughItalyXuxue Feng NEGOTIATION
Tony A KuskoRussiaAsiya Javayant NEGOTIATION
Cody B KuskoSpainXuxue Feng NEGOTIATION
Murillo B StensethUnited KingdomStephen Shaw QUALIFIED
Claire J GillianUnited KingdomIoni Bowcher NEGOTIATION
Isabel C GillianGermanyXuxue Feng UNQUALIFIED
Johnson J MacleadBrazilAnna Fali UNQUALIFIED
Ricardo H CaldareraCanadaBernardo Dominic UNQUALIFIED
Emily W WhobreyUnited KingdomAmy Elsner NEW
Smith W BowleySpainElwin Sharvill UNQUALIFIED
Rodrigues N AmigonUnited KingdomStephen Shaw NEW
Rodrigues J DilliardGermanyIvan Magalhaes UNQUALIFIED
Izzy P StensethJapanIvan Magalhaes QUALIFIED
Mujtaba K NestleArgentinaStephen Shaw UNQUALIFIED
Aruna C SergiItalyAsiya Javayant QUALIFIED
Maria B CaldareraAustraliaBernardo Dominic NEGOTIATION
Stacey L FerenczUnited KingdomIvan Magalhaes RENEWAL
Izzy Z PerinArgentinaOnyama Limba PROPOSAL
Leon F AmigonArgentinaAsiya Javayant UNQUALIFIED
Antonio V PerinRussiaAnna Fali RENEWAL
Aruna F SlusarskiItalyIvan Magalhaes NEW
Darci I MacleadAustraliaXuxue Feng UNQUALIFIED
Antonio D KuskoFranceXuxue Feng NEGOTIATION
Costa L MacleadArgentinaAmy Elsner NEW
Faith C BriddickArgentinaAmy Elsner RENEWAL
James B NestleItalyElwin Sharvill RENEWAL
Adams T VocelkaCanadaOnyama Limba UNQUALIFIED
Aditya A OldroydIndiaAnna Fali RENEWAL
Kaitlin V DilliardSpainAnna Fali RENEWAL
Claire H RutaGermanyElwin Sharvill NEGOTIATION
Antonio Z WaycottIndiaAmy Elsner UNQUALIFIED
Costa E MorascaRussiaBernardo Dominic RENEWAL
Smith L RutaArgentinaAsiya Javayant UNQUALIFIED
Wickens T TollnerGermanyStephen Shaw UNQUALIFIED
Aika K WaycottUnited KingdomAmy Elsner UNQUALIFIED
Francesco P WieserAustraliaXuxue Feng UNQUALIFIED
Tony F MaletItalyBernardo Dominic RENEWAL
Faith D RoysterRussiaAmy Elsner QUALIFIED
Jones P ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Cody S ButtCanadaElwin Sharvill NEGOTIATION
Ashley G WieserArgentinaElwin Sharvill RENEWAL
Deepesh Z GarufiUnited KingdomOnyama Limba NEGOTIATION
Silvio S StensethIndiaStephen Shaw PROPOSAL
James I AlbaresRussiaElwin Sharvill UNQUALIFIED
Misaki U OldroydUnited KingdomBernardo Dominic NEGOTIATION
Stacey U SergiBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood K KuskoFranceOnyama Limba QUALIFIED
Jeanfrancois I FollerJapanXuxue Feng NEW
Leon F ButtGermanyAmy Elsner UNQUALIFIED
Munro L CampainSpainAmy Elsner NEGOTIATION
Morrow W SlusarskiBrazilAnna Fali NEW
Leon U StockhamFranceIvan Magalhaes NEW
Greenwood N PaprockiArgentinaAnna Fali QUALIFIED
Kadeem F KuskoFranceOnyama Limba NEGOTIATION
Antonio T KuskoBrazilAmy Elsner PROPOSAL
Juan S CampainFranceIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey J ButtItaly2026-06-23Chapman, Ross E Esq QUALIFIED24Ioni Bowcher
1001Jeanfrancois R FigeroaAustralia2026-07-16Benton, John B Jr NEGOTIATION32Amy Elsner
1002Maria F ShinkoSpain2026-06-20Commercial Press NEGOTIATION22Stephen Shaw
1003Clifford Z KolmetzRussia2026-06-22Truhlar And Truhlar Attys RENEWAL61Ivan Magalhaes
1004Arvin B FerenczBrazil2026-07-08Chapman, Ross E Esq UNQUALIFIED85Xuxue Feng
1005Antonio U WieserItaly2026-07-06Chapman, Ross E Esq NEGOTIATION13Anna Fali
1006Munro S MorascaArgentina2026-07-01Chapman, Ross E Esq UNQUALIFIED55Amy Elsner
1007Deepesh M MorascaJapan2026-07-05Chapman, Ross E Esq NEW78Xuxue Feng
1008Johnson N WieserJapan2026-07-09Truhlar And Truhlar Attys QUALIFIED99Xuxue Feng
1009Darci T FollerSpain2026-06-19Morlong Associates NEGOTIATION33Bernardo Dominic
1010Rodrigues I DilliardItaly2026-06-20Rangoni Of Florence UNQUALIFIED42Amy Elsner
1011Deepesh K OstroskyBrazil2026-06-30Feltz Printing Service NEW97Onyama Limba
1012Wickens G GillianUnited Kingdom2026-07-03Buckley Miller Wright QUALIFIED55Anna Fali
1013Tony A CaldareraFrance2026-06-30Chanay, Jeffrey A Esq QUALIFIED19Ioni Bowcher
1014Emily P NestleUnited Kingdom2026-06-24Commercial Press NEGOTIATION63Bernardo Dominic
1015Murillo Q MarrierIndia2026-06-30Feiner Bros NEGOTIATION2Ioni Bowcher
1016Rodrigues O DilliardAustralia2026-06-19Printing Dimensions PROPOSAL89Onyama Limba
1017Tony T FerenczItaly2026-06-23King, Christopher A Esq NEGOTIATION28Asiya Javayant
1018Murillo Z ButtJapan2026-06-23Dorl, James J Esq PROPOSAL37Asiya Javayant
1019Deepesh R ButtItaly2026-07-16King, Christopher A Esq NEW96Stephen Shaw
1020Faith T PoquetteCanada2026-06-24Rousseaux, Michael Esq RENEWAL7Xuxue Feng
1021Aruna I ChuiFrance2026-06-19Feiner Bros QUALIFIED49Onyama Limba
1022Jeanfrancois L DarakjyRussia2026-07-09Commercial Press NEGOTIATION33Elwin Sharvill
1023Francesco K PerinCanada2026-06-20King, Christopher A Esq NEGOTIATION63Ioni Bowcher
1024Izzy C OldroydFrance2026-06-29Rousseaux, Michael Esq RENEWAL87Elwin Sharvill
1025Ivar Z FollerAustralia2026-07-10Feiner Bros UNQUALIFIED78Ivan Magalhaes
1026Darci G BowleyItaly2026-07-10Benton, John B Jr NEGOTIATION38Asiya Javayant
1027Murillo Z TollnerSpain2026-07-15Commercial Press NEW81Onyama Limba
1028Ricardo T MacleadArgentina2026-07-04Commercial Press NEW82Elwin Sharvill
1029Silvio S FollerGermany2026-07-06Rousseaux, Michael Esq NEGOTIATION47Elwin Sharvill
1030Ashley S TollnerFrance2026-06-23Commercial Press NEGOTIATION16Bernardo Dominic
1031Jones B DoeSpain2026-06-26Commercial Press UNQUALIFIED14Ivan Magalhaes
1032Clifford T RutaCanada2026-07-04Printing Dimensions NEGOTIATION85Xuxue Feng
1033Octavia N RoysterAustralia2026-06-20Rangoni Of Florence PROPOSAL94Elwin Sharvill
1034Salvatore I CaudyFrance2026-07-11Chanay, Jeffrey A Esq NEGOTIATION8Asiya Javayant
1035Jefferson N DilliardCanada2026-07-07Chanay, Jeffrey A Esq QUALIFIED22Asiya Javayant
1036Nicolas W FigeroaCanada2026-07-15Chanay, Jeffrey A Esq RENEWAL3Ivan Magalhaes
1037Leon S GillianAustralia2026-07-04Chemel, James L Cpa QUALIFIED40Stephen Shaw
1038Aika W GauchoCanada2026-06-29Rousseaux, Michael Esq NEGOTIATION48Ivan Magalhaes
1039Jeanfrancois R OldroydGermany2026-07-16Chapman, Ross E Esq RENEWAL81Stephen Shaw
1040Kadeem H WieserBrazil2026-06-30Dorl, James J Esq RENEWAL82Anna Fali
1041Ricardo B MaletCanada2026-07-05Commercial Press QUALIFIED53Stephen Shaw
1042Nicolas U MorascaBrazil2026-07-08Feltz Printing Service UNQUALIFIED41Stephen Shaw
1043Salvatore H PerinFrance2026-06-21Feiner Bros RENEWAL43Ioni Bowcher
1044David M MaletSpain2026-06-24Chemel, James L Cpa QUALIFIED49Anna Fali
1045Johnson Z RutaIndia2026-06-17Commercial Press NEGOTIATION72Asiya Javayant
1046Kaitlin Q FigeroaItaly2026-07-14Rangoni Of Florence RENEWAL62Ioni Bowcher
1047Leon O CampainGermany2026-07-08Feltz Printing Service QUALIFIED72Anna Fali
1048Isabel P ShinkoArgentina2026-07-15Benton, John B Jr QUALIFIED36Ioni Bowcher
1049Salvatore Q MaletFrance2026-06-28Rangoni Of Florence QUALIFIED68Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba P SlusarskiArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois D RimJapanAnna Fali QUALIFIED
Mayumi M FerenczArgentinaOnyama Limba PROPOSAL
Murillo C StensethItalyAmy Elsner NEGOTIATION
Smith I FigeroaRussiaXuxue Feng NEW
Misaki Q StensethArgentinaAnna Fali QUALIFIED
Kaitlin O GauchoItalyAsiya Javayant NEGOTIATION
Stacey N WhobreyJapanElwin Sharvill NEGOTIATION
Julie U TollnerCanadaXuxue Feng NEGOTIATION
Munro M WieserBrazilOnyama Limba NEGOTIATION
Izzy I NestleItalyBernardo Dominic QUALIFIED
Morrow J SchemmerRussiaElwin Sharvill PROPOSAL
Alejandro Q BologniaJapanAnna Fali NEGOTIATION
Maisha H MacleadUnited KingdomXuxue Feng NEGOTIATION
Kaitlin I KolmetzAustraliaAnna Fali UNQUALIFIED
Chavez N PoquetteCanadaIoni Bowcher UNQUALIFIED
Darci I AmigonGermanyAnna Fali QUALIFIED
Claire D MacleadSpainElwin Sharvill RENEWAL
Kadeem F MaletUnited KingdomIvan Magalhaes PROPOSAL
Murillo I RutaAustraliaOnyama Limba UNQUALIFIED
Ashley O DilliardIndiaAnna Fali UNQUALIFIED
Octavia C PoquetteRussiaElwin Sharvill UNQUALIFIED
Ashley B StockhamJapanAnna Fali UNQUALIFIED
Jeanfrancois L GillianBrazilStephen Shaw NEGOTIATION
Octavia B InouyeArgentinaStephen Shaw QUALIFIED
Wickens Z RoysterRussiaBernardo Dominic RENEWAL
Clifford C SchemmerBrazilElwin Sharvill NEW
Faith Z MarrierItalyStephen Shaw NEW
Nicolas O PoquetteSpainOnyama Limba NEW
Adams C ChuiBrazilIvan Magalhaes PROPOSAL
Maisha L RimRussiaAsiya Javayant PROPOSAL
David U CaldareraSpainIoni Bowcher NEW
Arvin R FerenczJapanStephen Shaw NEGOTIATION
Jones M FerenczJapanAnna Fali NEW
Ivar P TollnerIndiaIoni Bowcher RENEWAL
Murillo E FollerBrazilAsiya Javayant UNQUALIFIED
Francesco K StensethGermanyElwin Sharvill NEGOTIATION
Nicolas R GlickSpainStephen Shaw PROPOSAL
Ricardo X GauchoJapanAsiya Javayant UNQUALIFIED
Deepesh U MaletFranceIoni Bowcher NEW
Tony V RulapaughIndiaAmy Elsner UNQUALIFIED
Darci X PoquetteUnited KingdomAnna Fali RENEWAL
Chavez M ButtBrazilAnna Fali NEGOTIATION
Misaki W OstroskyAustraliaIvan Magalhaes RENEWAL
Morrow J FlosiAustraliaBernardo Dominic UNQUALIFIED
Ivar C DilliardArgentinaAsiya Javayant PROPOSAL
Jeanfrancois O FigeroaAustraliaAnna Fali QUALIFIED
Aditya J PoquetteUnited KingdomAnna Fali NEW
Ricardo T AmigonJapanXuxue Feng NEGOTIATION
Greenwood Q CampainFranceAsiya Javayant QUALIFIED
Frozen Columns
Name
Deepesh W Iturbide
Salvatore H Bowley
Cody B Foller
Munro S Venere
Antonio Z Gaucho
Wickens R Royster
Antonio V Rulapaugh
Cody F Tollner
Maisha Y Morasca
Faith J Malet
Aruna J Iturbide
Darci P Doe
Chavez E Sergi
Emily C Maclead
Emily F Perin
Aruna Y Caudy
Jones Y Vocelka
Julie G Maclead
Salvatore A Slusarski
Juan I Gaucho
Adams A Saylors
Rodrigues T Albares
Adams E Sergi
Alejandro A Flosi
Aruna W Albares
Murillo D Amigon
Morrow M Waycott
Darci Q Ostrosky
Costa I Whobrey
Jeanfrancois X Tollner
Mayumi R Dilliard
Maria L Amigon
Stacey G Maclead
Murillo P Vocelka
Greenwood L Foller
Misaki I Doe
Jones M Wieser
Jones U Ostrosky
Wickens G Sergi
Ricardo M Waycott
Kaitlin R Gillian
Rodrigues C Ruta
Ashley O Bowley
Leja H Nicka
Mujtaba U Tollner
Morrow E Doe
Aruna G Saylors
Emily U Vocelka
Izzy Z Nicka
Juan U Bowley
IdCountryDate
1000Argentina2026-06-17
1001Brazil2026-07-02
1002Brazil2026-06-26
1003Russia2026-06-24
1004France2026-06-17
1005France2026-07-01
1006Brazil2026-06-17
1007Japan2026-07-06
1008Canada2026-07-08
1009Argentina2026-06-25
1010Australia2026-06-17
1011Canada2026-06-21
1012Canada2026-06-17
1013Russia2026-06-18
1014Spain2026-07-13
1015Spain2026-07-04
1016Japan2026-06-24
1017Argentina2026-07-08
1018Brazil2026-06-20
1019Spain2026-07-16
1020Australia2026-06-21
1021Argentina2026-06-30
1022Argentina2026-06-28
1023Italy2026-06-18
1024United Kingdom2026-06-20
1025France2026-07-08
1026Germany2026-06-19
1027Argentina2026-06-29
1028Japan2026-06-20
1029Argentina2026-07-14
1030Brazil2026-07-08
1031Germany2026-07-11
1032France2026-07-07
1033Australia2026-07-02
1034Russia2026-07-04
1035Germany2026-06-23
1036France2026-06-19
1037Italy2026-06-20
1038Argentina2026-06-19
1039Brazil2026-07-01
1040Australia2026-06-27
1041Germany2026-07-12
1042Italy2026-06-28
1043Argentina2026-06-30
1044France2026-07-12
1045France2026-07-15
1046Russia2026-06-29
1047Germany2026-06-28
1048India2026-06-28
1049Australia2026-06-22

On-Demand Data

NameIdCountryDate
Deepesh S Ruta1000Argentina2026-06-20
Kadeem E Dilliard1001France2026-07-06
Johnson U Tollner1002Germany2026-07-07
Aika G Kusko1003Germany2026-06-18
Stacey R Darakjy1004Germany2026-07-03
Deepesh E Amigon1005Italy2026-07-14
Ricardo Y Caldarera1006Brazil2026-07-12
Ivar P Briddick1007Italy2026-07-05
Greenwood I Briddick1008Spain2026-07-03
Morrow V Caudy1009India2026-06-28
Alejandro U Bolognia1010Italy2026-06-22
Jones R Albares1011Canada2026-07-10
Leja G Perin1012Brazil2026-06-17
Nicolas Q Ruta1013Russia2026-07-08
Kadeem V Rim1014Canada2026-06-23
Julie E Vocelka1015Australia2026-06-20
Ashley T Royster1016Russia2026-07-15
Juan K Perin1017Spain2026-07-06
David D Foller1018United Kingdom2026-06-18
Ricardo B Nicka1019Brazil2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford B BriddickAustraliaIvan Magalhaes RENEWAL
Maria Q NickaJapanBernardo Dominic QUALIFIED
Arvin P VenereFranceAnna Fali NEGOTIATION
Smith Z WaycottBrazilStephen Shaw UNQUALIFIED
Deepesh A AmigonArgentinaAsiya Javayant NEGOTIATION
Jones R PerinRussiaXuxue Feng NEW
Aika H RulapaughCanadaAnna Fali PROPOSAL
Francesco F BologniaRussiaOnyama Limba PROPOSAL
Juan S StockhamJapanAsiya Javayant QUALIFIED
Adams X WaycottUnited KingdomStephen Shaw PROPOSAL
Morrow Q NestleCanadaXuxue Feng NEW
Julie U FigeroaIndiaOnyama Limba NEW
Alejandro C PaprockiUnited KingdomIvan Magalhaes NEW
Aditya M KolmetzUnited KingdomAsiya Javayant PROPOSAL
Aika Y RutaArgentinaIvan Magalhaes PROPOSAL
Wickens Q WaycottFranceBernardo Dominic NEGOTIATION
Clifford X DilliardAustraliaIoni Bowcher PROPOSAL
Clifford T BologniaFranceAnna Fali PROPOSAL
Claire A BologniaUnited KingdomAnna Fali NEW
Jones X InouyeSpainIvan Magalhaes PROPOSAL
Smith I NickaSpainStephen Shaw NEGOTIATION
Murillo H OldroydSpainBernardo Dominic UNQUALIFIED
Nicolas E StockhamUnited KingdomElwin Sharvill NEGOTIATION
Clifford X ButtCanadaAmy Elsner PROPOSAL
Maisha F MarrierItalyOnyama Limba RENEWAL
David L ButtIndiaIvan Magalhaes QUALIFIED
Darci F CaudyJapanStephen Shaw NEW
Murillo E ChuiRussiaOnyama Limba NEGOTIATION
Clifford O WaycottSpainElwin Sharvill QUALIFIED
David H StockhamIndiaOnyama Limba NEGOTIATION
Sinclair L RulapaughIndiaIvan Magalhaes QUALIFIED
Emily I WhobreyFranceAnna Fali PROPOSAL
Maria R GillianFranceAsiya Javayant QUALIFIED
Isabel O DilliardRussiaBernardo Dominic QUALIFIED
Wickens Z MacleadAustraliaXuxue Feng NEGOTIATION
Octavia W OldroydFranceAmy Elsner UNQUALIFIED
Arvin D AmigonSpainStephen Shaw NEW
Aika P KuskoBrazilIoni Bowcher NEW
Leja G SaylorsItalyAnna Fali PROPOSAL
Mayumi M OldroydFranceAsiya Javayant QUALIFIED

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