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
Julie K AlbaresRussiaElwin Sharvill QUALIFIED
Morrow V StockhamGermanyIvan Magalhaes NEGOTIATION
Morrow U WhobreyItalyAnna Fali RENEWAL
Jennifer J AlbaresItalyIoni Bowcher PROPOSAL
Greenwood O ButtSpainElwin Sharvill NEW
Octavia S RulapaughBrazilBernardo Dominic PROPOSAL
Darci E DoeBrazilBernardo Dominic RENEWAL
Antonio Q SlusarskiSpainOnyama Limba NEW
Munro I GlickSpainBernardo Dominic NEW
Francesco Q StockhamGermanyXuxue Feng RENEWAL
Jefferson G BowleyRussiaAsiya Javayant UNQUALIFIED
Mayumi G MacleadUnited KingdomAsiya Javayant RENEWAL
Leja Y WaycottItalyStephen Shaw NEW
Salvatore O NestleCanadaElwin Sharvill PROPOSAL
Wickens N RulapaughGermanyXuxue Feng QUALIFIED
Ricardo H KolmetzCanadaXuxue Feng QUALIFIED
Costa M KuskoFranceAnna Fali RENEWAL
Costa D MacleadBrazilElwin Sharvill NEW
Sinclair U GillianArgentinaIvan Magalhaes RENEWAL
Aditya S AmigonArgentinaStephen Shaw RENEWAL
Chavez C FlosiAustraliaOnyama Limba NEGOTIATION
Jones E RulapaughBrazilBernardo Dominic NEGOTIATION
Jeanfrancois X WaycottItalyBernardo Dominic UNQUALIFIED
Darci V KuskoFranceElwin Sharvill QUALIFIED
Salvatore C PoquetteCanadaIvan Magalhaes UNQUALIFIED
Greenwood H ChuiItalyOnyama Limba UNQUALIFIED
Salvatore N CaudyGermanyElwin Sharvill NEW
Greenwood Q WieserUnited KingdomStephen Shaw QUALIFIED
Costa S WhobreyFranceXuxue Feng RENEWAL
Isabel R DoeBrazilBernardo Dominic QUALIFIED
Ricardo I DoeSpainElwin Sharvill NEW
Claire E KolmetzSpainElwin Sharvill RENEWAL
Mujtaba P InouyeArgentinaAmy Elsner NEW
Chavez P RulapaughUnited KingdomAnna Fali NEW
Tony N ChuiCanadaAmy Elsner PROPOSAL
Stacey D SaylorsSpainElwin Sharvill UNQUALIFIED
Claire G NestleArgentinaStephen Shaw UNQUALIFIED
Claire E MarrierRussiaAsiya Javayant NEGOTIATION
Jeanfrancois E RimRussiaStephen Shaw UNQUALIFIED
Johnson J DoeSpainAmy Elsner QUALIFIED
Morrow D KolmetzAustraliaIvan Magalhaes QUALIFIED
Murillo P RutaAustraliaAsiya Javayant PROPOSAL
Stacey Z WhobreyCanadaBernardo Dominic PROPOSAL
Juan M FerenczIndiaAmy Elsner QUALIFIED
Izzy D SchemmerSpainAmy Elsner QUALIFIED
Mujtaba U PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood M AlbaresUnited KingdomIoni Bowcher NEW
Misaki A RulapaughFranceXuxue Feng RENEWAL
Munro N NestleFranceAnna Fali PROPOSAL
Mujtaba X CaldareraBrazilOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas J StensethCanadaAmy Elsner PROPOSAL
Aika X BowleyGermanyXuxue Feng RENEWAL
Aruna C WhobreyIndiaStephen Shaw PROPOSAL
Maisha U SaylorsFranceIvan Magalhaes NEW
Wickens U SlusarskiArgentinaElwin Sharvill NEGOTIATION
Arvin S NestleRussiaAnna Fali NEGOTIATION
Ivar Y SchemmerJapanAsiya Javayant NEGOTIATION
Stacey W PoquetteBrazilAsiya Javayant UNQUALIFIED
Rodrigues D KuskoItalyElwin Sharvill NEGOTIATION
Maria F RulapaughArgentinaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya S CaldareraSpain2025-06-09Truhlar And Truhlar Attys PROPOSAL15Bernardo Dominic
1001Izzy N MacleadArgentina2025-06-01Feltz Printing Service NEGOTIATION56Amy Elsner
1002Ashley I IturbideRussia2025-06-06Dorl, James J Esq UNQUALIFIED97Ivan Magalhaes
1003Stacey A WhobreyIndia2025-05-30Rousseaux, Michael Esq NEGOTIATION32Stephen Shaw
1004Aruna F GarufiItaly2025-06-08Buckley Miller Wright NEGOTIATION71Ivan Magalhaes
1005Claire C SergiBrazil2025-06-05Chemel, James L Cpa QUALIFIED43Amy Elsner
1006Aika I FlosiUnited Kingdom2025-05-22Truhlar And Truhlar Attys RENEWAL14Ivan Magalhaes
1007Isabel G WieserSpain2025-05-17Feiner Bros NEW69Ioni Bowcher
1008Emily C MarrierItaly2025-06-05Feiner Bros QUALIFIED13Amy Elsner
1009Greenwood G NickaAustralia2025-05-31Feiner Bros QUALIFIED80Elwin Sharvill
1010Nicolas K GarufiSpain2025-05-26Feiner Bros NEGOTIATION32Elwin Sharvill
1011Isabel U CaudyGermany2025-06-07Feltz Printing Service QUALIFIED56Stephen Shaw
1012Kaitlin D TollnerGermany2025-06-13Morlong Associates NEW67Ioni Bowcher
1013Emily G OldroydRussia2025-05-23Dorl, James J Esq PROPOSAL99Ioni Bowcher
1014Wickens Q SergiRussia2025-05-15Chapman, Ross E Esq UNQUALIFIED64Asiya Javayant
1015Octavia Z KuskoJapan2025-06-13Dorl, James J Esq NEGOTIATION7Anna Fali
1016Maisha K DarakjyGermany2025-05-15Commercial Press RENEWAL75Bernardo Dominic
1017Ricardo O ChuiCanada2025-06-02Truhlar And Truhlar Attys NEGOTIATION56Ioni Bowcher
1018Darci E PaprockiIndia2025-05-24Dorl, James J Esq UNQUALIFIED97Asiya Javayant
1019Smith H CampainRussia2025-06-13Chanay, Jeffrey A Esq NEGOTIATION88Asiya Javayant
1020Antonio K BowleyCanada2025-06-05King, Christopher A Esq PROPOSAL53Asiya Javayant
1021David V SaylorsFrance2025-06-05Chemel, James L Cpa NEW68Asiya Javayant
1022Murillo A MaletUnited Kingdom2025-06-10Chapman, Ross E Esq RENEWAL87Ioni Bowcher
1023Ivar Z BowleyFrance2025-06-05Morlong Associates RENEWAL78Elwin Sharvill
1024Alejandro S MarrierBrazil2025-05-16Rangoni Of Florence RENEWAL53Stephen Shaw
1025Francesco B GillianSpain2025-05-22Rangoni Of Florence NEW32Asiya Javayant
1026Costa E KuskoArgentina2025-06-13Morlong Associates RENEWAL49Stephen Shaw
1027Jones R OstroskySpain2025-05-15Feltz Printing Service NEW15Amy Elsner
1028Jones Q WhobreyAustralia2025-06-04Chemel, James L Cpa UNQUALIFIED82Ioni Bowcher
1029Leon W ChuiFrance2025-05-28Morlong Associates RENEWAL9Ivan Magalhaes
1030Aika X GillianJapan2025-06-02Buckley Miller Wright UNQUALIFIED7Elwin Sharvill
1031Jennifer T VenereCanada2025-06-03Dorl, James J Esq RENEWAL71Xuxue Feng
1032Clifford V MacleadArgentina2025-06-08Morlong Associates UNQUALIFIED39Bernardo Dominic
1033Tony O WhobreyAustralia2025-06-10Benton, John B Jr QUALIFIED68Onyama Limba
1034Alejandro I SaylorsJapan2025-05-21Chapman, Ross E Esq QUALIFIED12Asiya Javayant
1035Jefferson U CaldareraRussia2025-06-07Dorl, James J Esq QUALIFIED96Elwin Sharvill
1036Jefferson E PaprockiAustralia2025-06-13Printing Dimensions NEGOTIATION55Anna Fali
1037Adams G MaletSpain2025-05-28Chapman, Ross E Esq PROPOSAL35Onyama Limba
1038Aditya G FollerJapan2025-06-08Truhlar And Truhlar Attys PROPOSAL78Onyama Limba
1039Morrow T PaprockiUnited Kingdom2025-06-01Feltz Printing Service PROPOSAL4Amy Elsner
1040Cody Q BowleyItaly2025-06-01Truhlar And Truhlar Attys RENEWAL91Ioni Bowcher
1041Leon K FlosiCanada2025-05-24Morlong Associates NEGOTIATION39Xuxue Feng
1042Izzy J DilliardArgentina2025-06-05Rangoni Of Florence RENEWAL78Anna Fali
1043Kadeem W AlbaresAustralia2025-06-10Printing Dimensions UNQUALIFIED35Asiya Javayant
1044Adams Z CaldareraUnited Kingdom2025-06-10Chemel, James L Cpa NEW51Amy Elsner
1045Adams Z DoeJapan2025-06-07Dorl, James J Esq RENEWAL14Ivan Magalhaes
1046Tony T BriddickGermany2025-06-07Commercial Press PROPOSAL28Elwin Sharvill
1047Arvin Y MacleadRussia2025-06-04Chemel, James L Cpa NEW44Anna Fali
1048Munro I RoysterRussia2025-05-17Rousseaux, Michael Esq UNQUALIFIED66Anna Fali
1049Aika L KuskoSpain2025-05-25Truhlar And Truhlar Attys QUALIFIED79Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aika M FigeroaIndiaAmy Elsner NEW
Sinclair R RoysterRussiaElwin Sharvill UNQUALIFIED
Tony T MacleadSpainAsiya Javayant QUALIFIED
Costa U GauchoItalyBernardo Dominic UNQUALIFIED
Kadeem L SaylorsBrazilStephen Shaw UNQUALIFIED
Leon J SergiFranceAmy Elsner NEW
Tony Y OstroskyUnited KingdomOnyama Limba QUALIFIED
Claire B WaycottJapanAnna Fali NEGOTIATION
Sinclair Z VenereCanadaAsiya Javayant PROPOSAL
David Q SlusarskiItalyIoni Bowcher QUALIFIED
Clifford G RutaCanadaIoni Bowcher UNQUALIFIED
Munro P KolmetzIndiaElwin Sharvill QUALIFIED
Adams Q ShinkoIndiaStephen Shaw PROPOSAL
Rodrigues A CaldareraCanadaBernardo Dominic PROPOSAL
Alejandro D DarakjySpainAmy Elsner UNQUALIFIED
Alejandro I TollnerIndiaIvan Magalhaes PROPOSAL
Leja Y DoeCanadaStephen Shaw PROPOSAL
Jones Z KolmetzItalyElwin Sharvill NEW
Wickens E BowleyItalyXuxue Feng QUALIFIED
Misaki E MarrierIndiaAmy Elsner NEW
Isabel W GlickFranceAmy Elsner PROPOSAL
Isabel R OldroydAustraliaAnna Fali NEGOTIATION
Mujtaba N SchemmerCanadaAmy Elsner RENEWAL
Nicolas S FollerUnited KingdomIoni Bowcher RENEWAL
Morrow F GauchoGermanyStephen Shaw PROPOSAL
Rodrigues F WaycottItalyIvan Magalhaes UNQUALIFIED
Tony E MorascaSpainAmy Elsner NEGOTIATION
Juan J CaldareraSpainStephen Shaw NEGOTIATION
Isabel I OstroskyUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois N SergiBrazilIoni Bowcher NEW
Salvatore G GillianBrazilAsiya Javayant QUALIFIED
Greenwood A StockhamSpainIoni Bowcher NEGOTIATION
Izzy T DilliardSpainBernardo Dominic RENEWAL
Smith P OldroydGermanyAsiya Javayant QUALIFIED
Jefferson T ShinkoIndiaAsiya Javayant PROPOSAL
Antonio P PerinItalyIvan Magalhaes NEW
Julie J StockhamArgentinaAnna Fali QUALIFIED
Ivar P RimFranceElwin Sharvill RENEWAL
Rodrigues T RulapaughFranceBernardo Dominic UNQUALIFIED
Sinclair V CaldareraUnited KingdomIvan Magalhaes RENEWAL
Stacey D KuskoRussiaAsiya Javayant RENEWAL
Mayumi H PoquetteRussiaIvan Magalhaes UNQUALIFIED
Mayumi V DoeCanadaElwin Sharvill NEGOTIATION
Greenwood Z CaudyFranceAnna Fali NEW
Claire X AlbaresAustraliaXuxue Feng UNQUALIFIED
James P MacleadArgentinaIvan Magalhaes PROPOSAL
Claire E DarakjyAustraliaAnna Fali PROPOSAL
David P RutaJapanStephen Shaw RENEWAL
Wickens V NickaSpainStephen Shaw PROPOSAL
Stacey F KolmetzArgentinaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jeanfrancois S Albares
Isabel O Vocelka
Arvin G Whobrey
Francesco A Schemmer
Maria F Paprocki
Clifford L Butt
Jones L Sergi
Stacey H Stockham
Aruna S Slusarski
Isabel D Caudy
Johnson E Chui
Leon C Iturbide
Izzy H Marrier
Munro T Oldroyd
Ashley N Ostrosky
Cody M Bowley
Emily J Tollner
Kadeem V Stockham
Leja Z Venere
Alejandro T Wieser
Chavez T Bolognia
Johnson T Nestle
Salvatore G Ferencz
Leja V Malet
Aditya A Whobrey
Leja C Malet
Antonio L Amigon
Antonio X Venere
Sinclair S Gillian
Octavia A Ferencz
Claire E Sergi
Maisha E Rim
Faith Y Flosi
David V Morasca
Silvio C Malet
Smith Q Campain
Adams D Malet
Ivar L Maclead
David G Vocelka
Smith O Dilliard
Alejandro D Garufi
Morrow A Perin
Deepesh N Gaucho
Antonio H Nestle
Wickens U Dilliard
Chavez N Marrier
Maisha B Nicka
Smith F Briddick
Jefferson Y Royster
Alejandro H Garufi
IdCountryDate
1000France2025-06-11
1001France2025-06-11
1002Russia2025-06-01
1003Spain2025-05-20
1004Spain2025-05-31
1005Italy2025-06-08
1006Germany2025-06-04
1007Australia2025-05-26
1008Italy2025-06-06
1009Argentina2025-06-07
1010Australia2025-06-10
1011France2025-06-01
1012Russia2025-05-28
1013Italy2025-06-04
1014France2025-05-25
1015Australia2025-05-27
1016Italy2025-05-20
1017Canada2025-05-24
1018Argentina2025-05-26
1019Brazil2025-05-15
1020Italy2025-05-23
1021United Kingdom2025-06-03
1022Argentina2025-06-12
1023Russia2025-06-06
1024Australia2025-05-16
1025India2025-06-10
1026Italy2025-05-17
1027United Kingdom2025-05-21
1028Canada2025-06-09
1029Canada2025-06-09
1030Germany2025-05-21
1031Japan2025-06-09
1032Russia2025-05-28
1033Germany2025-06-07
1034Italy2025-06-13
1035Italy2025-06-12
1036Spain2025-05-23
1037Russia2025-05-19
1038Russia2025-05-21
1039Italy2025-05-23
1040Japan2025-06-08
1041Japan2025-05-29
1042Spain2025-06-12
1043Spain2025-06-04
1044India2025-05-30
1045Russia2025-06-11
1046Canada2025-06-13
1047Germany2025-06-09
1048Spain2025-05-22
1049Italy2025-06-06

On-Demand Data

NameIdCountryDate
Leon W Briddick1000Australia2025-05-17
Mujtaba U Gillian1001Canada2025-06-10
Aika V Ostrosky1002Italy2025-05-21
Isabel W Figeroa1003Italy2025-05-31
Juan T Vocelka1004Germany2025-06-09
Arvin R Nicka1005Germany2025-06-07
Munro D Poquette1006India2025-05-19
Murillo O Gaucho1007India2025-05-29
Mayumi B Whobrey1008Brazil2025-05-27
Adams J Gaucho1009Russia2025-05-15
Darci E Marrier1010Spain2025-05-25
Aika F Malet1011France2025-05-17
Aika S Rulapaugh1012Italy2025-06-09
Aruna V Rulapaugh1013United Kingdom2025-05-29
Rodrigues I Morasca1014Australia2025-05-18
Ashley G Venere1015Brazil2025-05-23
Faith D Foller1016Italy2025-06-02
Clifford V Wieser1017Spain2025-05-20
Aika D Dilliard1018Russia2025-05-21
Aruna H Royster1019Brazil2025-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson K AlbaresGermanyXuxue Feng PROPOSAL
Alejandro O DilliardBrazilAnna Fali RENEWAL
Jeanfrancois H StensethRussiaIvan Magalhaes RENEWAL
Munro O MacleadArgentinaAnna Fali UNQUALIFIED
Murillo P SaylorsUnited KingdomAnna Fali NEGOTIATION
Mujtaba D RimBrazilAnna Fali PROPOSAL
Ashley I SergiItalyIvan Magalhaes NEW
Rodrigues B WhobreyRussiaBernardo Dominic NEGOTIATION
Tony K CaldareraArgentinaBernardo Dominic NEW
Wickens E SergiItalyElwin Sharvill NEW
Jones M SaylorsFranceIoni Bowcher NEW
Nicolas I RulapaughUnited KingdomAmy Elsner RENEWAL
Jefferson R InouyeIndiaIoni Bowcher UNQUALIFIED
Mayumi B RulapaughGermanyElwin Sharvill RENEWAL
Antonio E IturbideGermanyBernardo Dominic NEW
Aika H DoeAustraliaElwin Sharvill RENEWAL
Silvio X SergiFranceAsiya Javayant QUALIFIED
Wickens I ChuiItalyOnyama Limba RENEWAL
Mayumi M SlusarskiCanadaBernardo Dominic RENEWAL
Emily F CampainArgentinaAsiya Javayant RENEWAL
Ashley T RimFranceOnyama Limba NEW
Silvio R CaudyItalyIvan Magalhaes RENEWAL
Jefferson X FigeroaRussiaAmy Elsner RENEWAL
Mayumi F OstroskyRussiaAsiya Javayant NEGOTIATION
Mayumi N IturbideJapanIvan Magalhaes UNQUALIFIED
Juan G MaletSpainBernardo Dominic NEW
Izzy B RimIndiaAmy Elsner QUALIFIED
Alejandro Y CaudySpainIoni Bowcher QUALIFIED
Darci X CaudyCanadaAmy Elsner UNQUALIFIED
Munro Q SergiUnited KingdomAnna Fali NEGOTIATION
Rodrigues B KuskoIndiaStephen Shaw QUALIFIED
Deepesh W DilliardCanadaOnyama Limba PROPOSAL
Francesco Y MaletFranceElwin Sharvill PROPOSAL
Alejandro E SlusarskiRussiaAmy Elsner NEW
Nicolas V RoysterArgentinaIvan Magalhaes RENEWAL
Silvio Z RoysterCanadaElwin Sharvill NEGOTIATION
Cody P TollnerRussiaBernardo Dominic UNQUALIFIED
Antonio Q SlusarskiAustraliaAmy Elsner QUALIFIED
Munro H MaletArgentinaStephen Shaw RENEWAL
Isabel W ShinkoFranceAsiya Javayant NEGOTIATION

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