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
Misaki S ButtIndiaBernardo Dominic NEW
Claire A PerinIndiaElwin Sharvill NEGOTIATION
Maria Y RoysterAustraliaIoni Bowcher QUALIFIED
Sinclair G VenereRussiaXuxue Feng NEGOTIATION
Mujtaba T GauchoFranceIoni Bowcher RENEWAL
Silvio E SergiIndiaAmy Elsner PROPOSAL
Alejandro T FigeroaArgentinaIoni Bowcher QUALIFIED
Izzy X CaldareraIndiaElwin Sharvill RENEWAL
Jones G FlosiRussiaOnyama Limba PROPOSAL
Misaki J AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo N MorascaJapanElwin Sharvill NEGOTIATION
Aika B GarufiBrazilBernardo Dominic NEW
Jefferson S ShinkoCanadaAnna Fali NEGOTIATION
Emily D DilliardBrazilElwin Sharvill PROPOSAL
Darci M VenereRussiaIvan Magalhaes NEW
Ivar T RoysterJapanAmy Elsner QUALIFIED
Claire X PerinFranceXuxue Feng PROPOSAL
Jones T BriddickItalyAnna Fali UNQUALIFIED
Mayumi I NestleAustraliaXuxue Feng RENEWAL
Faith V ButtSpainOnyama Limba RENEWAL
Cody Y BologniaIndiaXuxue Feng QUALIFIED
Aika D VenereFranceIoni Bowcher UNQUALIFIED
Wickens D RutaIndiaXuxue Feng QUALIFIED
Ashley R StockhamIndiaXuxue Feng NEGOTIATION
Aditya Y DoeCanadaIvan Magalhaes QUALIFIED
Salvatore T RutaFranceAsiya Javayant PROPOSAL
Isabel R ButtSpainAnna Fali NEGOTIATION
Isabel C SchemmerUnited KingdomOnyama Limba RENEWAL
Leon O BologniaItalyIoni Bowcher UNQUALIFIED
Maria R DoeUnited KingdomBernardo Dominic RENEWAL
Claire D StensethAustraliaOnyama Limba NEGOTIATION
Darci R BowleySpainAsiya Javayant UNQUALIFIED
Salvatore L RoysterAustraliaAmy Elsner PROPOSAL
Izzy L WhobreyIndiaIoni Bowcher UNQUALIFIED
Isabel A VocelkaArgentinaElwin Sharvill QUALIFIED
Francesco H SaylorsJapanStephen Shaw RENEWAL
Rodrigues O SchemmerIndiaIvan Magalhaes UNQUALIFIED
Kaitlin P CaldareraItalyIvan Magalhaes RENEWAL
Clifford N ShinkoArgentinaIvan Magalhaes NEGOTIATION
Salvatore Q SlusarskiJapanAmy Elsner NEGOTIATION
Cody Q DarakjyIndiaAmy Elsner QUALIFIED
Chavez Q AlbaresFranceAnna Fali NEW
Deepesh J KuskoSpainElwin Sharvill NEW
Maria T AmigonBrazilIoni Bowcher UNQUALIFIED
Smith B RimAustraliaAsiya Javayant NEGOTIATION
Clifford Q CaldareraIndiaOnyama Limba PROPOSAL
Kadeem A MarrierJapanBernardo Dominic QUALIFIED
Rodrigues W BriddickGermanyOnyama Limba NEGOTIATION
Costa L StockhamArgentinaStephen Shaw NEW
Ashley A WhobreyRussiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya T AmigonJapanAsiya Javayant NEGOTIATION
Aika Q MarrierCanadaBernardo Dominic QUALIFIED
Rodrigues M OstroskyAustraliaIvan Magalhaes RENEWAL
Arvin L FollerUnited KingdomAsiya Javayant RENEWAL
Johnson X MaletJapanIoni Bowcher UNQUALIFIED
Silvio U BologniaFranceOnyama Limba NEGOTIATION
Isabel S SchemmerBrazilBernardo Dominic PROPOSAL
Aruna F AmigonRussiaStephen Shaw QUALIFIED
Maisha C BriddickJapanBernardo Dominic NEW
Kaitlin F RimBrazilAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair P AmigonFrance2026-07-10Buckley Miller Wright NEGOTIATION15Xuxue Feng
1001James M SchemmerFrance2026-07-02Dorl, James J Esq UNQUALIFIED40Asiya Javayant
1002Clifford P ButtItaly2026-06-29Buckley Miller Wright NEW3Ioni Bowcher
1003Johnson P GarufiJapan2026-07-06Truhlar And Truhlar Attys NEGOTIATION20Anna Fali
1004Wickens I SergiItaly2026-07-10Rousseaux, Michael Esq UNQUALIFIED16Onyama Limba
1005Tony N GlickUnited Kingdom2026-06-27King, Christopher A Esq UNQUALIFIED74Xuxue Feng
1006Salvatore W DilliardItaly2026-06-29Feiner Bros QUALIFIED20Onyama Limba
1007Jefferson O KuskoCanada2026-06-22Truhlar And Truhlar Attys RENEWAL45Ivan Magalhaes
1008Misaki W StockhamCanada2026-06-28Buckley Miller Wright RENEWAL80Ivan Magalhaes
1009Wickens K StockhamAustralia2026-07-03King, Christopher A Esq PROPOSAL96Anna Fali
1010James J MarrierSpain2026-07-15King, Christopher A Esq NEW45Bernardo Dominic
1011Salvatore R GauchoCanada2026-06-25Commercial Press UNQUALIFIED73Onyama Limba
1012Julie Q SergiFrance2026-07-08Truhlar And Truhlar Attys PROPOSAL94Elwin Sharvill
1013Mayumi N PaprockiItaly2026-07-12Benton, John B Jr QUALIFIED67Onyama Limba
1014Sinclair C TollnerCanada2026-07-19Rangoni Of Florence NEW45Onyama Limba
1015Jeanfrancois S PoquetteUnited Kingdom2026-07-05Feltz Printing Service NEW11Amy Elsner
1016Julie U ButtCanada2026-06-27Printing Dimensions NEGOTIATION20Ivan Magalhaes
1017David Q DarakjyBrazil2026-06-26Feltz Printing Service QUALIFIED94Anna Fali
1018Greenwood O RutaRussia2026-06-24Dorl, James J Esq PROPOSAL12Anna Fali
1019Jones L CampainRussia2026-07-15Rousseaux, Michael Esq NEGOTIATION83Bernardo Dominic
1020Leja P RimCanada2026-06-26Benton, John B Jr NEGOTIATION89Anna Fali
1021Stacey K VenereUnited Kingdom2026-06-25Chapman, Ross E Esq NEGOTIATION81Onyama Limba
1022Rodrigues H DarakjyFrance2026-07-09Rangoni Of Florence PROPOSAL26Xuxue Feng
1023Adams H SaylorsRussia2026-07-19Rousseaux, Michael Esq RENEWAL31Bernardo Dominic
1024Kadeem N OldroydUnited Kingdom2026-07-02Chanay, Jeffrey A Esq PROPOSAL95Ioni Bowcher
1025Johnson E WaycottArgentina2026-07-07Commercial Press NEW11Asiya Javayant
1026Jones V VenereIndia2026-06-25Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1027Antonio C CampainBrazil2026-07-20Dorl, James J Esq RENEWAL22Asiya Javayant
1028Mujtaba X MarrierIndia2026-07-20Benton, John B Jr PROPOSAL25Ioni Bowcher
1029Mujtaba Y NickaIndia2026-06-25Chemel, James L Cpa PROPOSAL65Anna Fali
1030Octavia A StensethCanada2026-07-11Benton, John B Jr QUALIFIED91Stephen Shaw
1031Ashley M StockhamArgentina2026-07-03Morlong Associates UNQUALIFIED74Ioni Bowcher
1032Juan B DilliardItaly2026-06-22Truhlar And Truhlar Attys QUALIFIED57Anna Fali
1033Nicolas G SchemmerArgentina2026-07-12Chanay, Jeffrey A Esq QUALIFIED37Bernardo Dominic
1034Octavia L OstroskyUnited Kingdom2026-07-16Chanay, Jeffrey A Esq NEGOTIATION38Onyama Limba
1035Munro R VocelkaRussia2026-07-07Benton, John B Jr UNQUALIFIED46Stephen Shaw
1036Isabel P StockhamBrazil2026-07-16Morlong Associates UNQUALIFIED49Stephen Shaw
1037Julie G IturbideItaly2026-07-18Rangoni Of Florence NEGOTIATION30Onyama Limba
1038Stacey J WieserGermany2026-07-13Rangoni Of Florence PROPOSAL42Xuxue Feng
1039Sinclair G GlickGermany2026-07-13Printing Dimensions QUALIFIED39Bernardo Dominic
1040Deepesh D NickaUnited Kingdom2026-07-15King, Christopher A Esq UNQUALIFIED72Ivan Magalhaes
1041Kadeem Q BologniaAustralia2026-06-27Truhlar And Truhlar Attys NEGOTIATION36Xuxue Feng
1042Adams B DilliardRussia2026-07-07Truhlar And Truhlar Attys NEW49Stephen Shaw
1043Isabel P ShinkoRussia2026-06-23Printing Dimensions UNQUALIFIED65Asiya Javayant
1044Arvin G MorascaGermany2026-07-20Benton, John B Jr RENEWAL65Stephen Shaw
1045Deepesh K DoeGermany2026-07-03Rousseaux, Michael Esq PROPOSAL88Asiya Javayant
1046Kaitlin P KuskoGermany2026-07-06King, Christopher A Esq RENEWAL16Asiya Javayant
1047Ivar Y OldroydGermany2026-07-04King, Christopher A Esq NEW45Amy Elsner
1048Ashley K PaprockiAustralia2026-07-02Dorl, James J Esq QUALIFIED40Onyama Limba
1049Leon K CaldareraFrance2026-07-08Feiner Bros QUALIFIED38Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Wickens L RulapaughGermanyIvan Magalhaes UNQUALIFIED
Ricardo K AmigonAustraliaIoni Bowcher QUALIFIED
Ivar L WaycottAustraliaElwin Sharvill QUALIFIED
Arvin F RoysterArgentinaOnyama Limba UNQUALIFIED
Antonio L WieserFranceAmy Elsner NEGOTIATION
Jeanfrancois V ButtAustraliaIoni Bowcher PROPOSAL
Deepesh W MaletFranceIvan Magalhaes NEGOTIATION
Jefferson L MacleadGermanyIoni Bowcher NEW
Julie Y MaletGermanyElwin Sharvill NEW
Darci S DilliardItalyAmy Elsner QUALIFIED
Ricardo L OstroskyJapanAnna Fali PROPOSAL
Sinclair A SchemmerRussiaAsiya Javayant NEW
Darci H PerinItalyIoni Bowcher NEGOTIATION
Murillo X PerinAustraliaAnna Fali QUALIFIED
Jones X AmigonJapanIoni Bowcher PROPOSAL
Faith T AlbaresSpainIvan Magalhaes UNQUALIFIED
Adams G GillianAustraliaIoni Bowcher NEW
Greenwood K ButtCanadaXuxue Feng RENEWAL
Isabel G SergiIndiaElwin Sharvill NEGOTIATION
Maisha O FigeroaCanadaElwin Sharvill NEW
Adams U KuskoSpainXuxue Feng RENEWAL
Morrow V AlbaresFranceIvan Magalhaes NEW
Chavez N CaudyArgentinaStephen Shaw QUALIFIED
Clifford V MaletSpainAnna Fali NEGOTIATION
Silvio M DarakjyItalyStephen Shaw QUALIFIED
Leja P GauchoItalyIoni Bowcher QUALIFIED
Rodrigues L KuskoAustraliaXuxue Feng NEW
Jones I DarakjyArgentinaIoni Bowcher QUALIFIED
Murillo Y RulapaughIndiaStephen Shaw RENEWAL
Jefferson L ChuiRussiaStephen Shaw NEW
Darci L ShinkoJapanElwin Sharvill RENEWAL
Clifford U KuskoAustraliaIoni Bowcher UNQUALIFIED
Octavia P ShinkoIndiaOnyama Limba UNQUALIFIED
Wickens O PerinUnited KingdomAmy Elsner NEGOTIATION
Emily K DarakjyGermanyStephen Shaw NEW
Mujtaba A SchemmerJapanIvan Magalhaes UNQUALIFIED
Chavez T BowleyGermanyIoni Bowcher QUALIFIED
Juan W KolmetzAustraliaElwin Sharvill NEW
Clifford T AlbaresSpainAmy Elsner NEGOTIATION
Greenwood V VenereBrazilAnna Fali PROPOSAL
Aika M ButtSpainAsiya Javayant PROPOSAL
Chavez Y PerinItalyAsiya Javayant RENEWAL
James F FerenczGermanyAmy Elsner NEW
Isabel P DilliardItalyElwin Sharvill QUALIFIED
Costa U MaletJapanIoni Bowcher PROPOSAL
Costa T FerenczBrazilAsiya Javayant NEW
Leja A KuskoIndiaAmy Elsner RENEWAL
Izzy E WaycottFranceAnna Fali PROPOSAL
Nicolas I FigeroaRussiaIvan Magalhaes NEGOTIATION
Chavez B AlbaresUnited KingdomXuxue Feng NEGOTIATION
Frozen Columns
Name
Faith O Inouye
Stacey P Venere
James G Ruta
Adams D Schemmer
Arvin S Garufi
Izzy M Flosi
Mayumi T Albares
Cody K Rulapaugh
Ivar G Chui
Misaki W Vocelka
Octavia S Oldroyd
Wickens F Schemmer
Izzy D Vocelka
Chavez R Perin
Leon X Chui
Juan C Perin
Greenwood R Kusko
Arvin K Sergi
Rodrigues T Ruta
Mayumi S Inouye
Deepesh F Rulapaugh
James H Bolognia
James B Poquette
Costa B Venere
Emily Z Ostrosky
Aditya S Chui
Deepesh T Schemmer
Antonio S Ruta
Faith B Schemmer
Aditya Z Nicka
Mujtaba O Stockham
Mujtaba H Rim
Emily L Royster
Faith F Poquette
Mayumi P Malet
Ricardo W Albares
Ricardo C Wieser
Antonio Y Morasca
Aruna A Amigon
Jeanfrancois U Dilliard
Aika X Ostrosky
Ricardo Y Bolognia
Deepesh N Perin
Jennifer N Caudy
Leja H Sergi
Adams R Foller
Claire C Rulapaugh
Mujtaba V Caldarera
Julie R Malet
Arvin G Albares
IdCountryDate
1000United Kingdom2026-07-07
1001Brazil2026-06-23
1002Italy2026-06-30
1003Argentina2026-06-23
1004Japan2026-06-24
1005Australia2026-06-30
1006United Kingdom2026-07-01
1007Argentina2026-07-12
1008France2026-07-05
1009India2026-07-10
1010Russia2026-06-29
1011India2026-06-28
1012India2026-07-01
1013Germany2026-07-09
1014Germany2026-06-28
1015Brazil2026-06-25
1016France2026-07-07
1017Australia2026-07-09
1018Australia2026-07-06
1019France2026-07-06
1020Italy2026-07-15
1021Germany2026-06-26
1022France2026-07-08
1023France2026-06-29
1024United Kingdom2026-07-10
1025Italy2026-07-19
1026France2026-07-14
1027Russia2026-07-05
1028Italy2026-07-06
1029Germany2026-06-29
1030Italy2026-07-10
1031Italy2026-06-23
1032Germany2026-06-21
1033France2026-07-04
1034Russia2026-07-14
1035France2026-06-23
1036United Kingdom2026-07-10
1037India2026-07-13
1038Canada2026-06-25
1039Canada2026-07-10
1040Italy2026-06-25
1041Russia2026-07-08
1042Italy2026-07-07
1043Italy2026-06-28
1044Argentina2026-07-08
1045Italy2026-07-11
1046Italy2026-06-26
1047Russia2026-07-14
1048Spain2026-07-09
1049Canada2026-07-17

On-Demand Data

NameIdCountryDate
Sinclair R Iturbide1000Russia2026-07-10
Mayumi J Tollner1001Australia2026-07-13
Mayumi X Venere1002Brazil2026-06-24
Izzy N Dilliard1003Japan2026-07-19
Jones U Butt1004France2026-07-18
James V Albares1005United Kingdom2026-07-11
Wickens N Rim1006France2026-07-01
Silvio E Dilliard1007France2026-07-04
Misaki Z Briddick1008United Kingdom2026-07-20
Antonio T Caldarera1009Spain2026-07-09
Francesco V Nicka1010Italy2026-06-25
Darci Q Royster1011Italy2026-06-23
Darci S Gaucho1012Japan2026-06-27
Aditya R Nicka1013Brazil2026-07-13
Chavez S Kusko1014Japan2026-06-24
Mayumi R Figeroa1015Spain2026-06-30
Izzy U Paprocki1016Germany2026-07-14
Mayumi R Ostrosky1017Australia2026-07-06
Morrow I Garufi1018Russia2026-06-25
Arvin Y Malet1019Australia2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore U WaycottIndiaAnna Fali NEGOTIATION
Octavia O FollerGermanyXuxue Feng RENEWAL
Smith C WhobreySpainXuxue Feng UNQUALIFIED
Emily J NestleGermanyIoni Bowcher RENEWAL
Leja J FigeroaItalyAmy Elsner NEW
Silvio W WaycottArgentinaXuxue Feng NEW
Emily N BologniaFranceAmy Elsner NEGOTIATION
Claire N GauchoBrazilBernardo Dominic PROPOSAL
Leon D WhobreyRussiaBernardo Dominic UNQUALIFIED
Salvatore C OldroydJapanBernardo Dominic PROPOSAL
Morrow C InouyeUnited KingdomIoni Bowcher PROPOSAL
Claire M AmigonSpainStephen Shaw QUALIFIED
David I MarrierIndiaAnna Fali PROPOSAL
Mujtaba E RimAustraliaStephen Shaw PROPOSAL
Darci N WieserIndiaAnna Fali NEW
Ivar L NickaRussiaAmy Elsner NEW
Arvin J SlusarskiRussiaIoni Bowcher NEW
Murillo B KuskoBrazilOnyama Limba UNQUALIFIED
Leon H SergiSpainStephen Shaw UNQUALIFIED
Cody O VenereItalyIvan Magalhaes UNQUALIFIED
Aditya I CaudyRussiaBernardo Dominic RENEWAL
Arvin I FollerItalyStephen Shaw NEW
Mujtaba X ChuiGermanyBernardo Dominic UNQUALIFIED
Tony Q DilliardCanadaElwin Sharvill QUALIFIED
Darci X MarrierIndiaAnna Fali PROPOSAL
Rodrigues Y MorascaBrazilOnyama Limba UNQUALIFIED
Deepesh G DoeBrazilIvan Magalhaes QUALIFIED
Deepesh N KuskoIndiaIvan Magalhaes UNQUALIFIED
Mujtaba K CaldareraUnited KingdomAmy Elsner RENEWAL
Rodrigues B AlbaresItalyIoni Bowcher PROPOSAL
Adams N ChuiJapanIoni Bowcher NEGOTIATION
Clifford N BowleyAustraliaIvan Magalhaes NEW
Munro N KolmetzJapanXuxue Feng NEW
Chavez R GillianIndiaAsiya Javayant NEGOTIATION
Costa S PoquetteBrazilAnna Fali QUALIFIED
Aika M ButtItalyIvan Magalhaes PROPOSAL
Morrow M NestleItalyAnna Fali RENEWAL
Sinclair R NickaBrazilIoni Bowcher UNQUALIFIED
Smith V MarrierCanadaAmy Elsner UNQUALIFIED
Maria I VocelkaRussiaXuxue Feng 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>