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
Costa S BowleyRussiaAnna Fali NEW
Aruna Q NickaAustraliaAnna Fali RENEWAL
Rodrigues G RoysterFranceIoni Bowcher PROPOSAL
Stacey V BologniaFranceIvan Magalhaes RENEWAL
Stacey Q GlickAustraliaXuxue Feng RENEWAL
Deepesh Q MarrierItalyIoni Bowcher UNQUALIFIED
James D KuskoJapanAmy Elsner NEGOTIATION
Wickens Y TollnerIndiaElwin Sharvill PROPOSAL
Claire B FerenczSpainIoni Bowcher NEGOTIATION
Jones C AmigonItalyOnyama Limba NEGOTIATION
Maisha O RimSpainStephen Shaw PROPOSAL
Ashley P MaletItalyBernardo Dominic NEGOTIATION
Emily B NickaRussiaAmy Elsner RENEWAL
Jeanfrancois D MarrierRussiaAnna Fali UNQUALIFIED
Cody L WhobreyGermanyIoni Bowcher PROPOSAL
David S GillianUnited KingdomAmy Elsner UNQUALIFIED
Aika B VenereJapanStephen Shaw UNQUALIFIED
Izzy I BowleyUnited KingdomBernardo Dominic QUALIFIED
Ashley X BowleyCanadaOnyama Limba RENEWAL
Kaitlin E SchemmerFranceAsiya Javayant RENEWAL
Jefferson J DarakjyCanadaOnyama Limba RENEWAL
James P MacleadFranceBernardo Dominic NEGOTIATION
Munro N VocelkaSpainXuxue Feng QUALIFIED
James Y PerinCanadaAsiya Javayant PROPOSAL
David H MarrierBrazilStephen Shaw UNQUALIFIED
Aruna Z DilliardSpainAnna Fali PROPOSAL
Costa C PaprockiCanadaOnyama Limba NEW
Maria F SchemmerCanadaIoni Bowcher UNQUALIFIED
Ivar G StensethFranceAnna Fali UNQUALIFIED
Aika G WieserBrazilAmy Elsner UNQUALIFIED
Mujtaba W GauchoUnited KingdomAmy Elsner PROPOSAL
Nicolas E SlusarskiArgentinaBernardo Dominic RENEWAL
Munro C GillianFranceOnyama Limba NEW
Isabel U NickaItalyOnyama Limba PROPOSAL
Wickens H ChuiFranceBernardo Dominic UNQUALIFIED
Ivar M DoeBrazilBernardo Dominic QUALIFIED
Claire U MorascaFranceAnna Fali UNQUALIFIED
Leon Z PaprockiRussiaStephen Shaw NEGOTIATION
Mayumi U FollerUnited KingdomOnyama Limba PROPOSAL
Maria G ChuiItalyElwin Sharvill RENEWAL
Chavez X SlusarskiSpainAmy Elsner RENEWAL
Munro P GillianAustraliaElwin Sharvill RENEWAL
Tony T InouyeUnited KingdomOnyama Limba NEGOTIATION
Maria C AmigonSpainOnyama Limba PROPOSAL
Johnson I GillianAustraliaStephen Shaw QUALIFIED
Sinclair N DarakjyRussiaIvan Magalhaes UNQUALIFIED
Darci M BowleyGermanyIvan Magalhaes QUALIFIED
Smith J SergiFranceAnna Fali RENEWAL
Jefferson G KolmetzArgentinaAnna Fali NEGOTIATION
Clifford S GarufiAustraliaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues M MaletGermanyIoni Bowcher RENEWAL
Misaki L MaletUnited KingdomOnyama Limba QUALIFIED
Munro D SergiJapanAsiya Javayant NEW
Chavez H WhobreyArgentinaStephen Shaw NEGOTIATION
Maisha A OstroskyRussiaAmy Elsner NEGOTIATION
Clifford P CaldareraAustraliaAsiya Javayant PROPOSAL
Arvin P InouyeJapanIoni Bowcher NEW
Murillo A VocelkaBrazilIoni Bowcher NEGOTIATION
Kadeem S BowleyIndiaAnna Fali UNQUALIFIED
Jennifer D SlusarskiSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David M PerinGermany2026-08-25Commercial Press NEW23Ivan Magalhaes
1001Clifford U CaudyIndia2026-08-22Chapman, Ross E Esq QUALIFIED17Amy Elsner
1002Ricardo K RutaJapan2026-08-10Commercial Press NEW94Onyama Limba
1003Izzy S ChuiCanada2026-08-12Chapman, Ross E Esq NEW23Ivan Magalhaes
1004Greenwood Q WieserAustralia2026-08-09Feiner Bros NEW53Onyama Limba
1005Alejandro F SergiAustralia2026-08-02Rousseaux, Michael Esq QUALIFIED45Stephen Shaw
1006Ashley F CampainJapan2026-08-03Rangoni Of Florence UNQUALIFIED93Onyama Limba
1007Salvatore W DilliardJapan2026-08-25King, Christopher A Esq NEW47Xuxue Feng
1008Chavez O PoquetteArgentina2026-08-03Commercial Press RENEWAL51Anna Fali
1009Greenwood O OldroydAustralia2026-08-29Commercial Press UNQUALIFIED90Anna Fali
1010Greenwood M MorascaItaly2026-08-19Printing Dimensions NEW11Onyama Limba
1011Tony L AmigonCanada2026-08-14Rangoni Of Florence NEGOTIATION65Amy Elsner
1012Leja F PerinCanada2026-08-31Feltz Printing Service NEW30Amy Elsner
1013Mujtaba V KolmetzUnited Kingdom2026-08-20Chemel, James L Cpa NEW69Ioni Bowcher
1014Aruna Z TollnerGermany2026-08-21Truhlar And Truhlar Attys NEW18Stephen Shaw
1015Rodrigues O PoquetteIndia2026-08-09Dorl, James J Esq NEW37Amy Elsner
1016Izzy W WaycottIndia2026-08-22Chemel, James L Cpa NEW99Anna Fali
1017Darci Y StockhamArgentina2026-08-02Chapman, Ross E Esq RENEWAL54Amy Elsner
1018Francesco J RoysterRussia2026-08-14Printing Dimensions NEGOTIATION51Asiya Javayant
1019Cody G GarufiCanada2026-08-28Rangoni Of Florence QUALIFIED27Asiya Javayant
1020Leon G WhobreyFrance2026-08-14Rousseaux, Michael Esq UNQUALIFIED54Stephen Shaw
1021David K SaylorsFrance2026-08-30Feltz Printing Service RENEWAL45Amy Elsner
1022Silvio U BologniaArgentina2026-08-13Dorl, James J Esq NEGOTIATION95Amy Elsner
1023Alejandro X VocelkaFrance2026-08-02Printing Dimensions NEW86Bernardo Dominic
1024Tony P WaycottCanada2026-08-09Printing Dimensions NEGOTIATION57Ivan Magalhaes
1025Wickens F FerenczJapan2026-08-17Morlong Associates NEW67Elwin Sharvill
1026Jefferson W InouyeSpain2026-08-04Commercial Press PROPOSAL2Stephen Shaw
1027Maisha C DarakjyJapan2026-08-02Morlong Associates PROPOSAL15Asiya Javayant
1028Kaitlin C PaprockiIndia2026-08-21Feiner Bros RENEWAL61Ivan Magalhaes
1029Ricardo E FollerBrazil2026-08-26Rousseaux, Michael Esq RENEWAL12Ioni Bowcher
1030Clifford R MacleadRussia2026-08-25Truhlar And Truhlar Attys NEGOTIATION74Stephen Shaw
1031Ivar N GarufiArgentina2026-08-30Rangoni Of Florence NEW63Onyama Limba
1032Costa F ChuiFrance2026-08-21Buckley Miller Wright RENEWAL76Elwin Sharvill
1033Ivar C RutaRussia2026-08-11Rangoni Of Florence NEW3Ivan Magalhaes
1034Ashley D BologniaFrance2026-08-28Chanay, Jeffrey A Esq PROPOSAL8Xuxue Feng
1035Silvio N NestleAustralia2026-08-29Feiner Bros PROPOSAL19Anna Fali
1036Munro Q RulapaughGermany2026-08-05Buckley Miller Wright PROPOSAL14Ivan Magalhaes
1037Clifford V CaldareraBrazil2026-08-13Chapman, Ross E Esq RENEWAL89Anna Fali
1038Aruna X ShinkoSpain2026-08-30King, Christopher A Esq UNQUALIFIED64Amy Elsner
1039Greenwood F RutaIndia2026-08-20Chapman, Ross E Esq PROPOSAL54Bernardo Dominic
1040Leja R RutaUnited Kingdom2026-08-14Feiner Bros QUALIFIED82Asiya Javayant
1041Munro K WaycottAustralia2026-08-06Feltz Printing Service NEGOTIATION62Elwin Sharvill
1042Antonio F NestleAustralia2026-08-21Morlong Associates NEW10Xuxue Feng
1043Jeanfrancois M FlosiFrance2026-08-17Commercial Press NEGOTIATION60Anna Fali
1044Mayumi B RutaAustralia2026-08-02Commercial Press NEGOTIATION85Onyama Limba
1045Leja U ShinkoIndia2026-08-03Feltz Printing Service QUALIFIED56Anna Fali
1046Greenwood S SlusarskiGermany2026-08-07Feiner Bros RENEWAL72Ivan Magalhaes
1047Izzy N SchemmerUnited Kingdom2026-08-06Feiner Bros NEW1Onyama Limba
1048Leja E BowleyItaly2026-08-18Morlong Associates UNQUALIFIED30Ivan Magalhaes
1049Ricardo Y WaycottIndia2026-08-19Benton, John B Jr PROPOSAL85Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Juan G NickaFranceXuxue Feng QUALIFIED
Rodrigues N PoquetteUnited KingdomOnyama Limba RENEWAL
Wickens C GlickCanadaOnyama Limba PROPOSAL
Tony U BowleyFranceElwin Sharvill QUALIFIED
Adams Z DoeSpainOnyama Limba RENEWAL
Aruna S SergiSpainBernardo Dominic QUALIFIED
Jefferson X ButtCanadaXuxue Feng NEW
Francesco T CaldareraBrazilElwin Sharvill UNQUALIFIED
Emily Z BowleyGermanyOnyama Limba QUALIFIED
Sinclair S NestleUnited KingdomIvan Magalhaes QUALIFIED
Adams I SchemmerIndiaAsiya Javayant NEGOTIATION
Salvatore B PaprockiRussiaAmy Elsner QUALIFIED
Munro U RulapaughCanadaElwin Sharvill RENEWAL
Nicolas U IturbideRussiaAmy Elsner RENEWAL
Octavia Z IturbideFranceIvan Magalhaes QUALIFIED
Salvatore I BriddickArgentinaOnyama Limba QUALIFIED
Kadeem Z GauchoSpainBernardo Dominic QUALIFIED
Nicolas L MorascaFranceStephen Shaw RENEWAL
James S IturbideArgentinaIoni Bowcher NEGOTIATION
Aruna Z WaycottJapanXuxue Feng PROPOSAL
James R NickaUnited KingdomElwin Sharvill NEW
Cody E GlickAustraliaAsiya Javayant QUALIFIED
Leon Y TollnerBrazilOnyama Limba QUALIFIED
Kaitlin N KuskoSpainIvan Magalhaes UNQUALIFIED
Mujtaba S GarufiRussiaOnyama Limba NEGOTIATION
Murillo L VenereBrazilElwin Sharvill NEW
Francesco Y StockhamIndiaXuxue Feng NEGOTIATION
Claire S MarrierRussiaBernardo Dominic NEGOTIATION
Silvio P FollerIndiaOnyama Limba NEW
Ricardo F DarakjyArgentinaStephen Shaw NEW
Deepesh Y RutaSpainStephen Shaw RENEWAL
Leon F VenereJapanIoni Bowcher NEW
Johnson K MarrierRussiaIvan Magalhaes QUALIFIED
Emily O OldroydBrazilBernardo Dominic NEGOTIATION
Munro U RimArgentinaAsiya Javayant QUALIFIED
Claire N TollnerIndiaElwin Sharvill QUALIFIED
Ricardo T GillianSpainOnyama Limba PROPOSAL
Maisha E DarakjyArgentinaStephen Shaw NEGOTIATION
Darci M StensethSpainIvan Magalhaes QUALIFIED
Isabel K WhobreyJapanBernardo Dominic QUALIFIED
Nicolas I PerinGermanyAsiya Javayant NEW
Kaitlin R GlickArgentinaOnyama Limba UNQUALIFIED
Munro F SlusarskiCanadaIvan Magalhaes PROPOSAL
Alejandro L FigeroaFranceAmy Elsner QUALIFIED
Misaki Z ShinkoCanadaAmy Elsner RENEWAL
David J StockhamCanadaBernardo Dominic PROPOSAL
Cody N StensethIndiaIoni Bowcher NEW
Mayumi V StockhamUnited KingdomAnna Fali NEGOTIATION
Maria M InouyeBrazilBernardo Dominic UNQUALIFIED
Arvin M GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Costa D Saylors
Kaitlin W Saylors
Leon F Chui
Rodrigues M Butt
Leja O Gaucho
Alejandro D Caudy
Wickens Q Stockham
Maria X Rulapaugh
Emily J Kolmetz
Wickens L Slusarski
Ivar A Garufi
Faith O Bolognia
Sinclair N Bowley
Chavez A Wieser
Kadeem H Kolmetz
Antonio T Iturbide
Costa V Caldarera
David H Dilliard
Jeanfrancois T Poquette
Cody Y Venere
Kaitlin Z Bolognia
Greenwood Q Inouye
Jones L Vocelka
David R Stockham
Rodrigues J Bolognia
Emily L Vocelka
Maria N Bolognia
Smith L Wieser
Francesco O Royster
Jennifer V Saylors
Juan B Maclead
Aika O Nestle
Isabel U Darakjy
Mayumi B Gaucho
Aditya S Royster
Izzy H Schemmer
Emily E Figeroa
Nicolas G Ruta
Wickens D Butt
Juan W Vocelka
Johnson J Schemmer
Aruna H Paprocki
Smith T Ruta
Rodrigues T Doe
Francesco L Whobrey
Munro F Slusarski
Faith B Garufi
Leja M Sergi
Greenwood T Stenseth
Jeanfrancois I Nestle
IdCountryDate
1000Australia2026-08-09
1001France2026-08-05
1002Germany2026-08-31
1003Italy2026-08-07
1004Argentina2026-08-10
1005Russia2026-08-22
1006Brazil2026-08-23
1007Germany2026-08-18
1008Brazil2026-08-09
1009Russia2026-08-23
1010France2026-08-21
1011United Kingdom2026-08-27
1012Brazil2026-08-08
1013Japan2026-08-09
1014Canada2026-08-12
1015Argentina2026-08-30
1016Canada2026-08-20
1017Italy2026-08-31
1018Argentina2026-08-31
1019Russia2026-08-27
1020Russia2026-08-06
1021India2026-08-17
1022Russia2026-08-26
1023Canada2026-08-14
1024Canada2026-08-30
1025United Kingdom2026-08-04
1026Germany2026-08-12
1027Australia2026-08-11
1028France2026-08-12
1029Germany2026-08-25
1030Japan2026-08-06
1031Japan2026-08-16
1032India2026-08-10
1033India2026-08-21
1034Australia2026-08-30
1035Japan2026-08-24
1036France2026-08-25
1037India2026-08-12
1038Spain2026-08-26
1039Italy2026-08-29
1040Russia2026-08-23
1041Russia2026-08-04
1042Canada2026-08-14
1043Argentina2026-08-18
1044France2026-08-04
1045Spain2026-08-02
1046Brazil2026-08-10
1047India2026-08-03
1048Spain2026-08-09
1049Japan2026-08-09

On-Demand Data

NameIdCountryDate
Jennifer P Inouye1000Canada2026-08-16
Sinclair I Marrier1001Italy2026-08-15
Ivar I Waycott1002Russia2026-08-21
Jennifer R Briddick1003Russia2026-08-21
Silvio W Paprocki1004Italy2026-08-23
Aruna Y Poquette1005Argentina2026-08-16
Juan V Butt1006Australia2026-08-13
Ricardo F Rulapaugh1007Germany2026-08-28
Francesco N Campain1008India2026-08-11
Costa P Royster1009India2026-08-09
Octavia G Inouye1010Russia2026-08-29
Wickens B Ruta1011France2026-08-12
Darci M Stenseth1012Spain2026-08-31
Emily Q Perin1013Argentina2026-08-17
Darci L Whobrey1014Australia2026-08-02
Adams S Albares1015Italy2026-08-07
Murillo I Figeroa1016Japan2026-08-07
Stacey R Caudy1017Spain2026-08-30
Antonio R Kolmetz1018Russia2026-08-21
Costa L Ferencz1019Australia2026-08-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria B SchemmerIndiaAsiya Javayant RENEWAL
Rodrigues E BriddickItalyBernardo Dominic PROPOSAL
Aika T PoquetteUnited KingdomAsiya Javayant PROPOSAL
Kaitlin H RulapaughUnited KingdomElwin Sharvill PROPOSAL
Johnson O IturbideJapanStephen Shaw UNQUALIFIED
Mayumi S InouyeSpainIvan Magalhaes NEGOTIATION
Cody E GauchoArgentinaXuxue Feng NEGOTIATION
Costa K BowleyFranceAnna Fali QUALIFIED
Juan K BologniaSpainOnyama Limba QUALIFIED
Stacey G NickaBrazilAmy Elsner NEW
Aika Q ButtUnited KingdomAmy Elsner PROPOSAL
Jeanfrancois O ButtArgentinaAmy Elsner RENEWAL
Kaitlin F FollerItalyXuxue Feng NEW
Faith F GarufiFranceIvan Magalhaes NEGOTIATION
Nicolas V VenereBrazilAsiya Javayant QUALIFIED
Sinclair Q RoysterFranceXuxue Feng PROPOSAL
Juan G BowleyCanadaXuxue Feng NEW
James L OstroskyArgentinaAsiya Javayant RENEWAL
Arvin W NickaFranceBernardo Dominic QUALIFIED
Mayumi F DarakjyIndiaAnna Fali NEGOTIATION
Juan D MaletItalyBernardo Dominic NEW
Morrow F MaletIndiaAsiya Javayant NEGOTIATION
Costa R ChuiCanadaAsiya Javayant QUALIFIED
Misaki P MarrierRussiaAmy Elsner NEW
David P SchemmerBrazilAmy Elsner UNQUALIFIED
Clifford A CampainSpainStephen Shaw PROPOSAL
Adams T NestleCanadaAnna Fali NEW
Tony K CampainAustraliaIvan Magalhaes QUALIFIED
Rodrigues J GauchoGermanyAmy Elsner UNQUALIFIED
Silvio W TollnerRussiaElwin Sharvill RENEWAL
Kaitlin F WaycottUnited KingdomAnna Fali PROPOSAL
Emily G VocelkaGermanyIvan Magalhaes NEGOTIATION
Kaitlin C StensethCanadaOnyama Limba PROPOSAL
Clifford R NestleIndiaElwin Sharvill NEW
Kaitlin V BowleyUnited KingdomIvan Magalhaes NEW
Cody F OstroskyCanadaBernardo Dominic NEW
Wickens Z NestleUnited KingdomAnna Fali UNQUALIFIED
Clifford Z RutaUnited KingdomIvan Magalhaes NEW
Ricardo S SlusarskiBrazilXuxue Feng PROPOSAL
Leja O StockhamSpainOnyama Limba NEW

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