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
Cody B VocelkaBrazilIvan Magalhaes QUALIFIED
Munro C SchemmerArgentinaIoni Bowcher NEGOTIATION
Nicolas I MaletGermanyIoni Bowcher PROPOSAL
Kaitlin Z OstroskyCanadaXuxue Feng NEGOTIATION
Deepesh D FlosiCanadaAmy Elsner QUALIFIED
Leon A GarufiJapanOnyama Limba RENEWAL
Chavez G KolmetzCanadaElwin Sharvill NEGOTIATION
Misaki F FigeroaSpainStephen Shaw PROPOSAL
Izzy X DoeSpainXuxue Feng RENEWAL
Misaki G SaylorsIndiaIvan Magalhaes QUALIFIED
Antonio B SchemmerFranceAsiya Javayant QUALIFIED
Maisha W StensethAustraliaStephen Shaw NEGOTIATION
Darci O CampainSpainAmy Elsner NEW
Murillo N GillianArgentinaAnna Fali NEW
Maisha E IturbideCanadaIoni Bowcher PROPOSAL
Aditya E NickaArgentinaAsiya Javayant NEGOTIATION
Cody Y AlbaresAustraliaStephen Shaw RENEWAL
Julie B RulapaughJapanIvan Magalhaes UNQUALIFIED
Jennifer L VocelkaJapanXuxue Feng QUALIFIED
Kadeem U PerinSpainXuxue Feng NEW
Salvatore C FigeroaJapanOnyama Limba RENEWAL
Morrow Z IturbideBrazilAmy Elsner NEW
Kaitlin L WieserCanadaIoni Bowcher PROPOSAL
Johnson M GarufiFranceBernardo Dominic NEW
Isabel S FerenczAustraliaAmy Elsner QUALIFIED
Salvatore S DoeFranceBernardo Dominic QUALIFIED
David V VenereJapanElwin Sharvill RENEWAL
Salvatore W BriddickUnited KingdomAsiya Javayant RENEWAL
Nicolas M WaycottGermanyStephen Shaw QUALIFIED
Nicolas C FlosiUnited KingdomOnyama Limba NEW
Jones R ButtFranceElwin Sharvill NEGOTIATION
Mujtaba B ButtGermanyIoni Bowcher RENEWAL
Ricardo U RulapaughRussiaXuxue Feng PROPOSAL
Aditya F BologniaItalyAnna Fali QUALIFIED
Sinclair G SergiRussiaAnna Fali RENEWAL
Julie M MorascaBrazilStephen Shaw UNQUALIFIED
James N MaletJapanElwin Sharvill RENEWAL
Ivar G WaycottGermanyOnyama Limba NEW
Clifford E FigeroaBrazilIoni Bowcher NEW
Kaitlin P RutaRussiaOnyama Limba QUALIFIED
Julie O FlosiArgentinaStephen Shaw NEW
Claire P NickaSpainBernardo Dominic QUALIFIED
Antonio X CampainGermanyOnyama Limba PROPOSAL
Wickens J GarufiJapanAsiya Javayant RENEWAL
Salvatore M RimRussiaBernardo Dominic UNQUALIFIED
Jennifer B SergiFranceStephen Shaw NEGOTIATION
Isabel U RulapaughBrazilAnna Fali NEW
Octavia E GillianFranceStephen Shaw NEW
Murillo T TollnerBrazilOnyama Limba NEGOTIATION
Jennifer N GauchoUnited KingdomXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow Z OstroskyUnited KingdomStephen Shaw NEW
Adams R TollnerIndiaStephen Shaw PROPOSAL
Clifford B AlbaresIndiaBernardo Dominic RENEWAL
Julie R IturbideSpainStephen Shaw RENEWAL
Ricardo U DoeIndiaStephen Shaw NEW
Smith P StensethIndiaIvan Magalhaes PROPOSAL
Aika L SlusarskiAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois R SaylorsRussiaAnna Fali RENEWAL
Francesco D VocelkaIndiaIoni Bowcher NEW
Ricardo V StensethArgentinaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie F ButtItaly2026-07-08Chanay, Jeffrey A Esq PROPOSAL73Amy Elsner
1001Misaki O ButtRussia2026-07-24Feltz Printing Service UNQUALIFIED62Ivan Magalhaes
1002Antonio J CaudyArgentina2026-07-30Rangoni Of Florence RENEWAL75Ivan Magalhaes
1003Emily B MaletBrazil2026-07-22Feiner Bros QUALIFIED2Ioni Bowcher
1004Deepesh M InouyeGermany2026-07-31Feiner Bros PROPOSAL89Xuxue Feng
1005David S DilliardItaly2026-07-28Truhlar And Truhlar Attys UNQUALIFIED55Anna Fali
1006Mujtaba X PaprockiBrazil2026-07-28Chapman, Ross E Esq PROPOSAL87Elwin Sharvill
1007James E GauchoArgentina2026-07-27Feltz Printing Service QUALIFIED12Elwin Sharvill
1008Ricardo Y ShinkoJapan2026-07-10Commercial Press NEGOTIATION50Amy Elsner
1009Costa K CampainAustralia2026-07-10Morlong Associates NEW49Xuxue Feng
1010Jefferson A CaudyRussia2026-07-27Chemel, James L Cpa NEW88Ivan Magalhaes
1011Antonio W DarakjyRussia2026-07-25Chanay, Jeffrey A Esq RENEWAL28Asiya Javayant
1012Misaki B GauchoIndia2026-07-10Rangoni Of Florence NEGOTIATION85Anna Fali
1013Kadeem X BriddickCanada2026-07-12Commercial Press NEGOTIATION78Xuxue Feng
1014Alejandro O VenereFrance2026-07-27Truhlar And Truhlar Attys QUALIFIED77Xuxue Feng
1015Kaitlin Z CampainSpain2026-07-06Chanay, Jeffrey A Esq RENEWAL12Onyama Limba
1016Mayumi Y SaylorsCanada2026-07-14Printing Dimensions NEGOTIATION46Anna Fali
1017Rodrigues A MarrierItaly2026-07-24Buckley Miller Wright QUALIFIED63Stephen Shaw
1018Smith S PerinRussia2026-07-17Rousseaux, Michael Esq UNQUALIFIED41Amy Elsner
1019Juan M NickaGermany2026-08-03Buckley Miller Wright NEGOTIATION3Anna Fali
1020Arvin S FlosiUnited Kingdom2026-07-22Morlong Associates NEW60Onyama Limba
1021Salvatore Z VocelkaJapan2026-07-24Benton, John B Jr UNQUALIFIED81Asiya Javayant
1022Mujtaba Q SlusarskiIndia2026-08-03Printing Dimensions UNQUALIFIED71Onyama Limba
1023Morrow H TollnerBrazil2026-07-10Morlong Associates QUALIFIED98Amy Elsner
1024Kadeem D IturbideSpain2026-07-20Feltz Printing Service PROPOSAL45Elwin Sharvill
1025Deepesh O BriddickGermany2026-07-18King, Christopher A Esq NEW1Amy Elsner
1026Julie T MaletBrazil2026-07-16Chemel, James L Cpa NEW88Ioni Bowcher
1027Deepesh S FlosiAustralia2026-08-03Commercial Press RENEWAL13Bernardo Dominic
1028Octavia D ChuiRussia2026-07-25Feltz Printing Service QUALIFIED23Amy Elsner
1029Claire B WhobreyCanada2026-07-26Commercial Press UNQUALIFIED46Asiya Javayant
1030Munro L PerinSpain2026-08-02Buckley Miller Wright RENEWAL33Ivan Magalhaes
1031Rodrigues S CaudyIndia2026-07-13Rousseaux, Michael Esq QUALIFIED6Anna Fali
1032Julie V FigeroaSpain2026-07-31Rangoni Of Florence PROPOSAL1Ioni Bowcher
1033Emily R BologniaItaly2026-08-02Chapman, Ross E Esq NEGOTIATION79Bernardo Dominic
1034Faith X KolmetzGermany2026-07-29Commercial Press NEGOTIATION19Bernardo Dominic
1035Adams I StensethUnited Kingdom2026-07-08Feltz Printing Service RENEWAL22Stephen Shaw
1036Kadeem H BriddickArgentina2026-07-31Dorl, James J Esq QUALIFIED16Ivan Magalhaes
1037Mujtaba X GlickGermany2026-08-04King, Christopher A Esq NEW11Xuxue Feng
1038Wickens S ShinkoGermany2026-07-07Truhlar And Truhlar Attys NEW34Anna Fali
1039Greenwood E FollerSpain2026-07-17Buckley Miller Wright PROPOSAL41Amy Elsner
1040Munro R WieserGermany2026-07-11Rangoni Of Florence UNQUALIFIED36Ioni Bowcher
1041Maria V SergiIndia2026-07-10Commercial Press RENEWAL51Amy Elsner
1042Murillo I SchemmerGermany2026-07-17Morlong Associates UNQUALIFIED25Anna Fali
1043Darci W BologniaSpain2026-07-07Feiner Bros PROPOSAL95Elwin Sharvill
1044Nicolas Q TollnerRussia2026-07-09Chanay, Jeffrey A Esq PROPOSAL81Anna Fali
1045Octavia N GlickAustralia2026-07-29Chemel, James L Cpa UNQUALIFIED1Onyama Limba
1046Isabel V CampainCanada2026-07-20Buckley Miller Wright QUALIFIED56Ivan Magalhaes
1047Claire P MorascaBrazil2026-07-17Chanay, Jeffrey A Esq RENEWAL22Ivan Magalhaes
1048Salvatore E MaletRussia2026-07-26Feltz Printing Service NEW84Amy Elsner
1049Ivar K TollnerBrazil2026-08-03Morlong Associates NEW21Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Claire B IturbideCanadaOnyama Limba UNQUALIFIED
Octavia T KuskoCanadaXuxue Feng PROPOSAL
Kaitlin A AlbaresUnited KingdomStephen Shaw NEW
Ricardo X VocelkaJapanAmy Elsner UNQUALIFIED
Isabel T WaycottArgentinaElwin Sharvill PROPOSAL
James D RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Claire L OstroskyGermanyAsiya Javayant NEGOTIATION
Nicolas G MarrierAustraliaIoni Bowcher RENEWAL
Nicolas Z GillianItalyXuxue Feng NEGOTIATION
Jefferson Y CaldareraIndiaIoni Bowcher UNQUALIFIED
Morrow A SergiJapanAmy Elsner QUALIFIED
Costa F WieserArgentinaAnna Fali RENEWAL
Julie Y ChuiAustraliaIvan Magalhaes PROPOSAL
Aruna X GarufiJapanIoni Bowcher RENEWAL
Jennifer G RutaGermanyXuxue Feng UNQUALIFIED
Julie P FerenczRussiaOnyama Limba RENEWAL
Greenwood N GillianSpainAsiya Javayant RENEWAL
Morrow Y CaudyIndiaIoni Bowcher RENEWAL
Faith V StockhamGermanyOnyama Limba PROPOSAL
Rodrigues L DoeBrazilXuxue Feng NEGOTIATION
Izzy K CaldareraArgentinaBernardo Dominic QUALIFIED
Jones K KolmetzJapanXuxue Feng NEW
Kadeem N AmigonUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois Z MorascaArgentinaAnna Fali NEGOTIATION
Jones O ShinkoAustraliaBernardo Dominic PROPOSAL
Faith O AlbaresFranceIvan Magalhaes PROPOSAL
Costa P DarakjyUnited KingdomElwin Sharvill QUALIFIED
Misaki Z FlosiJapanStephen Shaw RENEWAL
Murillo E RimGermanyOnyama Limba NEW
Jefferson B DoeJapanIvan Magalhaes QUALIFIED
Ashley F CaldareraSpainXuxue Feng QUALIFIED
Isabel F FigeroaBrazilIoni Bowcher RENEWAL
Silvio D GarufiIndiaAmy Elsner PROPOSAL
Arvin S FerenczArgentinaOnyama Limba NEGOTIATION
Izzy K WieserItalyAsiya Javayant NEW
Adams Z SlusarskiCanadaBernardo Dominic NEGOTIATION
Silvio O VenereGermanyBernardo Dominic QUALIFIED
Sinclair X FigeroaArgentinaAnna Fali RENEWAL
Morrow I RimBrazilIoni Bowcher RENEWAL
Isabel F VenereSpainIoni Bowcher UNQUALIFIED
Antonio T DilliardAustraliaAsiya Javayant QUALIFIED
Sinclair L RutaGermanyAmy Elsner RENEWAL
Kadeem V WhobreyIndiaElwin Sharvill RENEWAL
Kadeem W VenereSpainOnyama Limba NEGOTIATION
Darci R InouyeBrazilOnyama Limba PROPOSAL
Izzy G PerinCanadaBernardo Dominic PROPOSAL
Isabel J MorascaItalyXuxue Feng QUALIFIED
Ivar E SlusarskiAustraliaXuxue Feng QUALIFIED
Munro U AlbaresSpainAnna Fali PROPOSAL
Jefferson P OstroskyAustraliaStephen Shaw RENEWAL
Frozen Columns
Name
David M Kolmetz
Silvio L Ruta
Alejandro C Bolognia
Leon W Dilliard
David T Malet
Leja H Kolmetz
Jefferson P Albares
Rodrigues R Nicka
Mujtaba O Schemmer
Ashley A Bowley
Murillo W Kusko
Francesco R Poquette
Silvio G Waycott
Juan V Garufi
Murillo G Oldroyd
David C Vocelka
Aruna G Venere
Darci Q Oldroyd
Francesco P Amigon
Munro W Vocelka
Leon I Gillian
Salvatore Q Butt
Ricardo U Albares
Ivar T Stenseth
Alejandro R Amigon
Jefferson Y Maclead
Julie J Whobrey
Aditya H Doe
Morrow T Stenseth
Deepesh K Malet
Mujtaba N Kusko
Kaitlin V Ostrosky
Maisha E Foller
Greenwood J Slusarski
Greenwood Q Gaucho
Jeanfrancois B Vocelka
Sinclair L Caldarera
Izzy Q Briddick
Kadeem D Iturbide
Tony G Dilliard
Rodrigues M Nicka
Ivar A Inouye
Mujtaba B Kolmetz
Stacey B Whobrey
Faith Z Perin
Emily C Morasca
Aditya U Gaucho
Leon V Venere
Aruna Y Albares
Izzy U Briddick
IdCountryDate
1000Brazil2026-07-16
1001India2026-07-12
1002Germany2026-07-18
1003Spain2026-08-01
1004Canada2026-08-03
1005Italy2026-07-08
1006Japan2026-07-22
1007Russia2026-07-10
1008Italy2026-08-04
1009Spain2026-07-20
1010Argentina2026-07-20
1011Canada2026-07-16
1012Canada2026-07-22
1013Brazil2026-07-25
1014Russia2026-07-25
1015Russia2026-08-04
1016Brazil2026-07-19
1017Italy2026-07-31
1018Brazil2026-07-10
1019India2026-07-28
1020India2026-07-12
1021Canada2026-07-15
1022Germany2026-07-28
1023Brazil2026-07-28
1024Japan2026-07-14
1025Germany2026-07-26
1026India2026-07-19
1027Australia2026-07-18
1028Brazil2026-07-13
1029Germany2026-07-27
1030Argentina2026-07-13
1031Canada2026-07-26
1032Italy2026-07-24
1033Argentina2026-07-30
1034Japan2026-08-04
1035Australia2026-08-02
1036Russia2026-08-04
1037Germany2026-07-24
1038Japan2026-07-15
1039Spain2026-07-25
1040France2026-07-16
1041France2026-08-01
1042United Kingdom2026-07-07
1043United Kingdom2026-08-02
1044Germany2026-08-04
1045France2026-07-16
1046United Kingdom2026-07-08
1047Argentina2026-07-28
1048United Kingdom2026-08-01
1049Brazil2026-07-17

On-Demand Data

NameIdCountryDate
Munro B Foller1000France2026-07-13
Leon F Slusarski1001United Kingdom2026-07-11
Adams I Tollner1002Argentina2026-07-09
Salvatore I Dilliard1003Japan2026-07-26
Greenwood P Glick1004Italy2026-07-07
Juan C Dilliard1005Brazil2026-07-10
Mayumi H Waycott1006Spain2026-08-01
Leja V Caldarera1007Brazil2026-07-09
Octavia S Shinko1008Canada2026-07-18
Ivar B Doe1009Australia2026-07-26
Munro F Amigon1010Italy2026-07-14
Sinclair O Slusarski1011Brazil2026-08-03
David S Rulapaugh1012Argentina2026-07-22
Isabel D Gillian1013France2026-07-30
Morrow V Venere1014Argentina2026-07-18
Kadeem S Slusarski1015Italy2026-07-22
Alejandro N Briddick1016Germany2026-07-08
Jefferson P Morasca1017Russia2026-07-07
Alejandro A Butt1018Argentina2026-07-15
Adams Z Saylors1019India2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio J PaprockiRussiaAmy Elsner NEW
Cody Q RoysterFranceIoni Bowcher RENEWAL
Stacey P TollnerUnited KingdomIoni Bowcher RENEWAL
Murillo M IturbideBrazilIvan Magalhaes PROPOSAL
Alejandro B VocelkaIndiaIvan Magalhaes RENEWAL
Munro F BologniaRussiaIvan Magalhaes PROPOSAL
Claire Y GlickAustraliaBernardo Dominic RENEWAL
Aruna F PerinAustraliaAsiya Javayant NEW
Rodrigues D VocelkaCanadaAsiya Javayant NEGOTIATION
Murillo V RulapaughItalyAmy Elsner PROPOSAL
Nicolas U FerenczItalyAmy Elsner RENEWAL
Misaki O StockhamIndiaAmy Elsner NEGOTIATION
Munro W SlusarskiRussiaAmy Elsner UNQUALIFIED
Wickens K SlusarskiGermanyAnna Fali UNQUALIFIED
Francesco T MaletAustraliaStephen Shaw PROPOSAL
Maria M StockhamCanadaOnyama Limba QUALIFIED
Sinclair G KuskoBrazilOnyama Limba QUALIFIED
Greenwood N BologniaUnited KingdomXuxue Feng NEW
Aika A SlusarskiFranceIoni Bowcher NEGOTIATION
Kadeem Q MarrierRussiaStephen Shaw NEW
Clifford A PoquetteFranceElwin Sharvill UNQUALIFIED
Alejandro Y PaprockiUnited KingdomXuxue Feng RENEWAL
Ricardo L FerenczGermanyAnna Fali RENEWAL
James Q GlickBrazilAnna Fali QUALIFIED
Salvatore A VocelkaAustraliaStephen Shaw PROPOSAL
Smith D MacleadIndiaBernardo Dominic UNQUALIFIED
James O GlickGermanyAmy Elsner QUALIFIED
Antonio W RimFranceOnyama Limba QUALIFIED
Tony S BriddickRussiaAmy Elsner NEGOTIATION
Stacey U DoeCanadaOnyama Limba UNQUALIFIED
Faith C BowleyJapanAmy Elsner NEGOTIATION
Johnson E VocelkaUnited KingdomXuxue Feng UNQUALIFIED
Darci F CaudyRussiaIoni Bowcher QUALIFIED
Clifford D RoysterFranceAmy Elsner QUALIFIED
Clifford N MaletRussiaStephen Shaw QUALIFIED
Mayumi N MaletUnited KingdomIvan Magalhaes QUALIFIED
Murillo W SergiGermanyElwin Sharvill NEW
Julie K FerenczSpainOnyama Limba NEGOTIATION
Wickens F FerenczBrazilAsiya Javayant NEGOTIATION
Maisha G RulapaughUnited KingdomXuxue Feng 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>