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
Juan Y ChuiAustraliaAnna Fali QUALIFIED
Jeanfrancois Y SchemmerJapanElwin Sharvill UNQUALIFIED
Nicolas D InouyeIndiaAmy Elsner PROPOSAL
David L DilliardSpainBernardo Dominic UNQUALIFIED
Cody O VocelkaUnited KingdomIoni Bowcher NEW
Mayumi Q GlickRussiaIvan Magalhaes RENEWAL
Misaki M DarakjyArgentinaIoni Bowcher RENEWAL
Aditya N BowleyRussiaStephen Shaw QUALIFIED
Aruna T ChuiJapanIvan Magalhaes NEW
Kadeem C RutaItalyXuxue Feng UNQUALIFIED
Claire E NestleGermanyElwin Sharvill RENEWAL
Nicolas V GlickItalyStephen Shaw QUALIFIED
Jones X BologniaJapanStephen Shaw PROPOSAL
Isabel H RimRussiaElwin Sharvill PROPOSAL
David O FerenczUnited KingdomXuxue Feng UNQUALIFIED
Faith D StockhamIndiaAmy Elsner NEW
Chavez E KolmetzJapanOnyama Limba NEGOTIATION
Mujtaba E TollnerGermanyBernardo Dominic QUALIFIED
Murillo M ButtAustraliaStephen Shaw NEW
Chavez W CaldareraAustraliaStephen Shaw NEW
Nicolas U MorascaBrazilIoni Bowcher UNQUALIFIED
Faith C FollerJapanAsiya Javayant UNQUALIFIED
Leon H MaletGermanyElwin Sharvill PROPOSAL
Izzy G MaletCanadaAmy Elsner PROPOSAL
David A WhobreyJapanAnna Fali PROPOSAL
Morrow F SaylorsBrazilIvan Magalhaes RENEWAL
Chavez R KolmetzUnited KingdomIvan Magalhaes NEW
Kaitlin Y FerenczAustraliaOnyama Limba UNQUALIFIED
Munro P RulapaughBrazilAnna Fali NEGOTIATION
Johnson K WhobreyRussiaIoni Bowcher QUALIFIED
Ivar P BowleyIndiaBernardo Dominic NEGOTIATION
Cody Z NickaSpainIoni Bowcher PROPOSAL
Antonio W SchemmerCanadaXuxue Feng PROPOSAL
Ashley D IturbideGermanyAmy Elsner RENEWAL
Nicolas Y NestleItalyOnyama Limba RENEWAL
Smith M BowleyArgentinaXuxue Feng NEGOTIATION
Juan Y GarufiCanadaBernardo Dominic PROPOSAL
David E NestleGermanyAmy Elsner NEW
Emily P BologniaFranceAsiya Javayant UNQUALIFIED
Salvatore M AmigonItalyAmy Elsner RENEWAL
Munro A AlbaresGermanyBernardo Dominic NEGOTIATION
Mayumi A SlusarskiSpainBernardo Dominic RENEWAL
Salvatore V WieserFranceAmy Elsner PROPOSAL
Greenwood L MacleadFranceAsiya Javayant RENEWAL
Costa C KuskoBrazilXuxue Feng QUALIFIED
Jeanfrancois K MaletAustraliaIoni Bowcher RENEWAL
Salvatore G RulapaughJapanStephen Shaw RENEWAL
Johnson O FigeroaAustraliaStephen Shaw UNQUALIFIED
Sinclair I AmigonCanadaStephen Shaw QUALIFIED
Francesco A FollerJapanBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Leon F WieserIndiaXuxue Feng UNQUALIFIED
Julie M GarufiBrazilAnna Fali UNQUALIFIED
Ivar K VocelkaUnited KingdomStephen Shaw QUALIFIED
Darci U FollerRussiaOnyama Limba NEGOTIATION
Isabel L AlbaresBrazilIoni Bowcher NEW
Cody C RoysterArgentinaElwin Sharvill QUALIFIED
Emily X ButtBrazilStephen Shaw UNQUALIFIED
Jones E NickaSpainAmy Elsner RENEWAL
Alejandro A ChuiBrazilElwin Sharvill PROPOSAL
Ricardo R ShinkoFranceAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin K CaudyCanada2026-06-02Rousseaux, Michael Esq NEGOTIATION64Asiya Javayant
1001Kadeem C OstroskyBrazil2026-06-10Dorl, James J Esq PROPOSAL99Anna Fali
1002Octavia H AmigonGermany2026-06-04Morlong Associates NEGOTIATION7Elwin Sharvill
1003Rodrigues Y OstroskyBrazil2026-07-01Chapman, Ross E Esq UNQUALIFIED41Xuxue Feng
1004Mujtaba V RulapaughGermany2026-06-15Benton, John B Jr NEGOTIATION99Xuxue Feng
1005Greenwood Y MarrierJapan2026-06-22Truhlar And Truhlar Attys PROPOSAL25Onyama Limba
1006Rodrigues R SchemmerAustralia2026-06-10Printing Dimensions RENEWAL47Amy Elsner
1007Juan C FollerSpain2026-06-03Chapman, Ross E Esq RENEWAL50Elwin Sharvill
1008Maisha B ChuiGermany2026-06-18Rangoni Of Florence QUALIFIED45Bernardo Dominic
1009Rodrigues V BriddickUnited Kingdom2026-06-25Benton, John B Jr NEGOTIATION39Asiya Javayant
1010Darci V MaletSpain2026-06-29Benton, John B Jr QUALIFIED55Xuxue Feng
1011Stacey I FollerArgentina2026-06-10Buckley Miller Wright NEGOTIATION85Xuxue Feng
1012Misaki B TollnerJapan2026-06-03Commercial Press NEGOTIATION60Xuxue Feng
1013Antonio U MaletSpain2026-06-23Rangoni Of Florence QUALIFIED64Asiya Javayant
1014Antonio Y SergiIndia2026-06-27Rousseaux, Michael Esq PROPOSAL65Elwin Sharvill
1015Antonio S MaletSpain2026-07-01Buckley Miller Wright QUALIFIED91Ioni Bowcher
1016Chavez M FlosiFrance2026-06-27Chapman, Ross E Esq QUALIFIED48Onyama Limba
1017Emily L BriddickCanada2026-06-11Morlong Associates UNQUALIFIED17Bernardo Dominic
1018Stacey Z FollerGermany2026-06-18Truhlar And Truhlar Attys RENEWAL17Asiya Javayant
1019Morrow Q VenereItaly2026-06-27Rousseaux, Michael Esq RENEWAL90Ioni Bowcher
1020Wickens U GillianJapan2026-06-18Morlong Associates QUALIFIED10Xuxue Feng
1021Johnson I GillianRussia2026-06-06Benton, John B Jr QUALIFIED71Xuxue Feng
1022Mujtaba K FerenczAustralia2026-06-29Benton, John B Jr NEGOTIATION61Ivan Magalhaes
1023Juan X BologniaItaly2026-06-17Truhlar And Truhlar Attys QUALIFIED16Onyama Limba
1024Munro I DoeAustralia2026-06-08Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1025Deepesh C RutaSpain2026-06-13Morlong Associates RENEWAL49Amy Elsner
1026Sinclair J PerinFrance2026-06-21Buckley Miller Wright PROPOSAL52Ioni Bowcher
1027Murillo F OldroydItaly2026-06-02Rousseaux, Michael Esq PROPOSAL46Xuxue Feng
1028Claire K BologniaSpain2026-06-13Truhlar And Truhlar Attys QUALIFIED63Elwin Sharvill
1029Deepesh X VocelkaRussia2026-06-20Chapman, Ross E Esq NEGOTIATION41Asiya Javayant
1030Clifford D FigeroaItaly2026-06-26King, Christopher A Esq QUALIFIED33Onyama Limba
1031James W FollerGermany2026-06-15Buckley Miller Wright RENEWAL33Asiya Javayant
1032Murillo V PerinFrance2026-06-19Benton, John B Jr NEGOTIATION41Stephen Shaw
1033David H ChuiFrance2026-06-17Benton, John B Jr QUALIFIED75Stephen Shaw
1034Faith V GarufiFrance2026-06-14Chapman, Ross E Esq NEGOTIATION83Amy Elsner
1035Nicolas Z IturbideAustralia2026-06-11Truhlar And Truhlar Attys QUALIFIED32Stephen Shaw
1036Octavia D ChuiCanada2026-06-19King, Christopher A Esq RENEWAL7Asiya Javayant
1037Costa Q OstroskySpain2026-06-04Rangoni Of Florence UNQUALIFIED41Asiya Javayant
1038Morrow I OstroskyUnited Kingdom2026-06-20Printing Dimensions NEGOTIATION56Bernardo Dominic
1039Maisha H WhobreyIndia2026-06-27Rousseaux, Michael Esq PROPOSAL68Stephen Shaw
1040Francesco S MacleadSpain2026-06-27Chapman, Ross E Esq RENEWAL95Xuxue Feng
1041Kadeem Z AlbaresItaly2026-06-23Dorl, James J Esq RENEWAL56Amy Elsner
1042Leon X NickaGermany2026-06-29Commercial Press QUALIFIED10Ioni Bowcher
1043Stacey W CaldareraBrazil2026-06-26King, Christopher A Esq UNQUALIFIED49Bernardo Dominic
1044Jeanfrancois Y DoeSpain2026-06-02Morlong Associates QUALIFIED78Bernardo Dominic
1045Ricardo N WieserAustralia2026-06-03Chapman, Ross E Esq NEW66Stephen Shaw
1046Mujtaba M DoeAustralia2026-06-05Morlong Associates NEGOTIATION8Asiya Javayant
1047Tony Y NestleGermany2026-06-03Feltz Printing Service NEW15Anna Fali
1048James F GarufiBrazil2026-06-24Commercial Press QUALIFIED30Onyama Limba
1049Leon U DarakjyUnited Kingdom2026-06-08Morlong Associates NEGOTIATION99Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Wickens B CampainBrazilAnna Fali RENEWAL
Maria H StensethBrazilAsiya Javayant RENEWAL
Darci M RutaArgentinaXuxue Feng UNQUALIFIED
Aika M IturbideSpainOnyama Limba NEW
Faith T AmigonArgentinaIoni Bowcher NEW
Chavez D DarakjyBrazilElwin Sharvill NEW
Jefferson R FollerSpainOnyama Limba NEW
Ashley U RoysterGermanyXuxue Feng PROPOSAL
Johnson M ButtGermanyBernardo Dominic UNQUALIFIED
Jennifer C MorascaCanadaStephen Shaw RENEWAL
Munro I OldroydSpainAmy Elsner UNQUALIFIED
Mujtaba M MaletItalyStephen Shaw PROPOSAL
Johnson B GillianUnited KingdomIoni Bowcher QUALIFIED
Aruna N DarakjyGermanyAnna Fali NEW
Maisha A GarufiItalyAnna Fali UNQUALIFIED
Ricardo N ChuiAustraliaElwin Sharvill RENEWAL
Nicolas A KolmetzSpainBernardo Dominic UNQUALIFIED
Darci I MarrierArgentinaAmy Elsner NEW
Izzy M MorascaCanadaAmy Elsner NEGOTIATION
Greenwood A WieserSpainStephen Shaw UNQUALIFIED
Stacey F RimRussiaXuxue Feng RENEWAL
Wickens H BologniaArgentinaAmy Elsner NEW
Isabel E SaylorsArgentinaAmy Elsner UNQUALIFIED
Mujtaba Z GarufiIndiaIoni Bowcher RENEWAL
Stacey R ButtRussiaIoni Bowcher NEGOTIATION
Aruna M StockhamIndiaElwin Sharvill NEGOTIATION
Maisha F CampainArgentinaAnna Fali UNQUALIFIED
Deepesh V PoquetteFranceXuxue Feng UNQUALIFIED
Jones H PerinRussiaElwin Sharvill NEGOTIATION
Juan V StockhamSpainStephen Shaw NEW
Isabel L FlosiItalyXuxue Feng NEGOTIATION
Aika Z SergiSpainAnna Fali UNQUALIFIED
Ricardo I BowleyRussiaAsiya Javayant RENEWAL
Jennifer X CaldareraIndiaXuxue Feng PROPOSAL
Leja A MacleadItalyIvan Magalhaes UNQUALIFIED
Silvio T NickaCanadaAmy Elsner QUALIFIED
Jeanfrancois L MacleadCanadaElwin Sharvill UNQUALIFIED
David H DarakjyJapanIoni Bowcher UNQUALIFIED
Leon T PoquetteFranceStephen Shaw NEW
Leon T SlusarskiFranceIvan Magalhaes NEW
Johnson L AmigonUnited KingdomAsiya Javayant QUALIFIED
Ivar E IturbideSpainIoni Bowcher PROPOSAL
Antonio F StensethSpainStephen Shaw NEGOTIATION
Adams V CampainCanadaBernardo Dominic PROPOSAL
Nicolas C BologniaSpainIoni Bowcher PROPOSAL
Cody G TollnerBrazilAsiya Javayant NEGOTIATION
Chavez D CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Darci A KolmetzSpainIvan Magalhaes QUALIFIED
Mujtaba N DoeItalyAsiya Javayant UNQUALIFIED
Morrow T OldroydUnited KingdomAmy Elsner RENEWAL
Frozen Columns
Name
Cody B Malet
Smith B Poquette
Rodrigues S Paprocki
Jennifer Y Albares
Francesco S Chui
Juan R Rulapaugh
Juan O Gillian
Leja H Malet
Izzy B Malet
Aika V Marrier
Arvin U Perin
Maisha U Kusko
Leja D Flosi
Kadeem F Waycott
Morrow U Marrier
Murillo H Foller
Aditya O Rim
Mujtaba M Sergi
Silvio T Malet
Wickens S Gillian
Misaki P Foller
Jeanfrancois X Rulapaugh
Francesco C Malet
Misaki P Royster
Jefferson B Ostrosky
Maria C Tollner
Deepesh B Chui
Izzy Q Chui
Smith M Figeroa
Leon A Dilliard
Nicolas N Venere
Costa X Foller
Clifford D Vocelka
Maisha B Caldarera
Francesco M Wieser
Alejandro X Bolognia
David Z Briddick
Tony W Inouye
Nicolas L Morasca
Octavia O Ostrosky
Francesco M Butt
Aruna G Iturbide
Chavez S Ruta
Darci B Amigon
Nicolas F Garufi
Chavez R Tollner
Morrow M Vocelka
Faith N Amigon
Tony M Vocelka
Kaitlin E Schemmer
IdCountryDate
1000Germany2026-06-29
1001Japan2026-06-15
1002Germany2026-06-30
1003Australia2026-06-30
1004Russia2026-06-08
1005Brazil2026-06-20
1006France2026-06-16
1007Russia2026-06-08
1008Australia2026-06-26
1009Germany2026-06-27
1010Argentina2026-06-06
1011United Kingdom2026-06-10
1012Argentina2026-06-18
1013Germany2026-06-18
1014India2026-06-17
1015France2026-06-23
1016Japan2026-06-21
1017Italy2026-06-19
1018Italy2026-06-14
1019Australia2026-07-01
1020Germany2026-06-09
1021Canada2026-06-10
1022Canada2026-06-12
1023France2026-06-24
1024Australia2026-06-30
1025India2026-06-08
1026Argentina2026-06-12
1027Spain2026-06-27
1028France2026-06-08
1029Spain2026-06-11
1030Germany2026-06-22
1031Japan2026-06-09
1032Italy2026-06-04
1033United Kingdom2026-06-30
1034Argentina2026-06-16
1035Brazil2026-06-08
1036Canada2026-06-04
1037Spain2026-06-05
1038Germany2026-06-24
1039Italy2026-06-26
1040France2026-06-11
1041India2026-06-26
1042Argentina2026-06-17
1043Argentina2026-06-29
1044Canada2026-06-16
1045Japan2026-06-28
1046Russia2026-06-26
1047Australia2026-06-05
1048Argentina2026-06-12
1049Canada2026-06-25

On-Demand Data

NameIdCountryDate
Morrow Y Bowley1000Russia2026-06-28
Darci J Vocelka1001Germany2026-06-10
Adams Z Campain1002Brazil2026-06-20
Jones J Stockham1003Italy2026-07-01
Darci P Rulapaugh1004Canada2026-06-19
Jones A Perin1005Brazil2026-06-10
Antonio K Chui1006Spain2026-06-24
Silvio A Venere1007Argentina2026-06-29
Cody F Albares1008Spain2026-06-13
Maisha Y Marrier1009Brazil2026-06-17
Aditya R Garufi1010Russia2026-07-01
Mayumi T Rim1011Russia2026-06-12
Juan T Whobrey1012United Kingdom2026-06-26
Juan I Albares1013Italy2026-06-24
Arvin P Ostrosky1014Italy2026-06-21
Kaitlin S Maclead1015Spain2026-06-22
Morrow A Morasca1016Japan2026-06-10
Ashley D Figeroa1017Germany2026-06-26
Izzy Z Morasca1018Brazil2026-06-07
Emily O Tollner1019India2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria O RutaRussiaBernardo Dominic PROPOSAL
Sinclair Q MorascaSpainXuxue Feng NEGOTIATION
Izzy L GarufiFranceAmy Elsner PROPOSAL
Ivar O GillianRussiaStephen Shaw QUALIFIED
Ivar Y TollnerBrazilIvan Magalhaes NEGOTIATION
Jennifer M CaldareraArgentinaIvan Magalhaes PROPOSAL
Maria R InouyeIndiaIoni Bowcher PROPOSAL
Chavez C NestleJapanXuxue Feng QUALIFIED
Silvio Y IturbideItalyIoni Bowcher RENEWAL
Wickens U GauchoCanadaIvan Magalhaes RENEWAL
Silvio Q KolmetzFranceAnna Fali QUALIFIED
Julie P IturbideBrazilAsiya Javayant QUALIFIED
Wickens P RutaBrazilAnna Fali PROPOSAL
Adams J FollerAustraliaAmy Elsner RENEWAL
Costa X OldroydArgentinaStephen Shaw NEW
Maisha T NickaAustraliaBernardo Dominic QUALIFIED
Jefferson V DilliardJapanOnyama Limba QUALIFIED
Octavia W MarrierAustraliaIvan Magalhaes UNQUALIFIED
Alejandro C FerenczFranceXuxue Feng UNQUALIFIED
Murillo O TollnerGermanyOnyama Limba PROPOSAL
Kadeem O AlbaresArgentinaXuxue Feng QUALIFIED
Faith Z StockhamBrazilOnyama Limba PROPOSAL
Silvio S RutaAustraliaAmy Elsner PROPOSAL
Aruna F WieserItalyBernardo Dominic PROPOSAL
Arvin E RoysterArgentinaIoni Bowcher PROPOSAL
Clifford D MacleadGermanyAsiya Javayant NEW
Ricardo D GarufiIndiaStephen Shaw UNQUALIFIED
Kadeem P StockhamAustraliaIvan Magalhaes NEW
Leon T WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Leon W CampainJapanAnna Fali PROPOSAL
Isabel I PoquetteBrazilBernardo Dominic QUALIFIED
Alejandro Y KolmetzItalyBernardo Dominic QUALIFIED
Faith F MarrierIndiaBernardo Dominic RENEWAL
Jeanfrancois Z AmigonJapanElwin Sharvill UNQUALIFIED
Ashley F AmigonIndiaIvan Magalhaes NEGOTIATION
Wickens K MaletFranceElwin Sharvill QUALIFIED
Ivar R SchemmerFranceElwin Sharvill RENEWAL
Aditya Q DoeItalyAnna Fali PROPOSAL
Alejandro S GillianJapanOnyama Limba UNQUALIFIED
Salvatore M DoeCanadaElwin Sharvill RENEWAL

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