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
Rodrigues T MaletItalyElwin Sharvill PROPOSAL
Smith V WieserRussiaAmy Elsner PROPOSAL
Munro K NestleArgentinaElwin Sharvill UNQUALIFIED
Tony U RutaArgentinaStephen Shaw PROPOSAL
Aika I PaprockiItalyXuxue Feng PROPOSAL
Aditya V WaycottIndiaAnna Fali NEGOTIATION
Julie B StockhamGermanyAnna Fali RENEWAL
Kadeem H AlbaresCanadaIvan Magalhaes PROPOSAL
Kadeem B AlbaresArgentinaIvan Magalhaes PROPOSAL
Clifford P VenereJapanIvan Magalhaes PROPOSAL
Johnson D MaletIndiaIvan Magalhaes UNQUALIFIED
Johnson Q InouyeRussiaAsiya Javayant NEGOTIATION
Johnson I BowleyJapanXuxue Feng NEW
Rodrigues E RulapaughGermanyAnna Fali NEW
Sinclair E DilliardAustraliaAmy Elsner UNQUALIFIED
Ashley A DoeSpainBernardo Dominic NEGOTIATION
Alejandro C BologniaFranceOnyama Limba QUALIFIED
Greenwood F SergiItalyStephen Shaw PROPOSAL
Octavia P VenereJapanElwin Sharvill NEGOTIATION
Clifford F TollnerGermanyAmy Elsner QUALIFIED
Claire J MaletSpainIoni Bowcher QUALIFIED
Nicolas T MacleadItalyElwin Sharvill UNQUALIFIED
Adams X VenereSpainIvan Magalhaes NEGOTIATION
Stacey A RutaJapanAnna Fali UNQUALIFIED
Clifford X NickaArgentinaAmy Elsner UNQUALIFIED
Francesco D StockhamUnited KingdomAnna Fali RENEWAL
Leon Y GauchoSpainBernardo Dominic PROPOSAL
Mujtaba G DilliardFranceAmy Elsner UNQUALIFIED
Aditya Q MaletSpainBernardo Dominic NEGOTIATION
Clifford M BologniaAustraliaElwin Sharvill RENEWAL
Francesco J AmigonUnited KingdomBernardo Dominic PROPOSAL
Smith F GauchoGermanyIvan Magalhaes UNQUALIFIED
Ashley M CaldareraArgentinaXuxue Feng NEW
Rodrigues Z StensethRussiaStephen Shaw QUALIFIED
Aruna T StensethGermanyOnyama Limba UNQUALIFIED
Arvin T PerinItalyIvan Magalhaes UNQUALIFIED
Adams P GlickItalyElwin Sharvill UNQUALIFIED
Aika F PerinRussiaBernardo Dominic QUALIFIED
Silvio R DilliardAustraliaIoni Bowcher QUALIFIED
Kaitlin S MorascaJapanBernardo Dominic UNQUALIFIED
Octavia Z BologniaUnited KingdomXuxue Feng PROPOSAL
Maria K NickaArgentinaXuxue Feng PROPOSAL
Wickens Q CaudyRussiaBernardo Dominic NEW
Nicolas W GauchoGermanyIvan Magalhaes RENEWAL
Wickens L InouyeAustraliaBernardo Dominic RENEWAL
Jeanfrancois L WieserBrazilStephen Shaw RENEWAL
Izzy Z MarrierItalyAnna Fali PROPOSAL
Sinclair L MaletAustraliaXuxue Feng QUALIFIED
Darci A KolmetzSpainBernardo Dominic RENEWAL
Leon T SaylorsItalyBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith N CaudyRussiaBernardo Dominic NEGOTIATION
Clifford K OldroydGermanyElwin Sharvill QUALIFIED
Salvatore V KuskoItalyBernardo Dominic UNQUALIFIED
Deepesh Y OstroskyJapanOnyama Limba RENEWAL
Jennifer T FerenczCanadaAmy Elsner NEW
David G BologniaIndiaStephen Shaw PROPOSAL
Deepesh R KolmetzGermanyAsiya Javayant PROPOSAL
Aruna B RoysterFranceOnyama Limba NEW
Clifford H SchemmerItalyIoni Bowcher NEGOTIATION
Jennifer F SchemmerIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro H FlosiCanada2025-04-28Buckley Miller Wright UNQUALIFIED42Amy Elsner
1001Leja G WieserBrazil2025-03-31Chemel, James L Cpa RENEWAL90Amy Elsner
1002Rodrigues H RoysterCanada2025-04-18Printing Dimensions NEW60Elwin Sharvill
1003Chavez T WieserItaly2025-04-26Printing Dimensions QUALIFIED5Bernardo Dominic
1004Izzy Y BologniaGermany2025-04-26Dorl, James J Esq RENEWAL74Amy Elsner
1005Maria F PaprockiJapan2025-04-19Buckley Miller Wright PROPOSAL35Onyama Limba
1006David V FlosiRussia2025-04-24Morlong Associates NEW7Onyama Limba
1007Morrow D FigeroaFrance2025-04-04Feltz Printing Service NEW64Bernardo Dominic
1008Jeanfrancois M SchemmerCanada2025-04-01Dorl, James J Esq RENEWAL36Bernardo Dominic
1009Greenwood K GillianRussia2025-04-06Chemel, James L Cpa RENEWAL88Xuxue Feng
1010Izzy V SaylorsIndia2025-04-23Feltz Printing Service PROPOSAL9Bernardo Dominic
1011Francesco G FollerAustralia2025-04-22Commercial Press NEW14Amy Elsner
1012Arvin Z WieserBrazil2025-04-06Chemel, James L Cpa RENEWAL89Ivan Magalhaes
1013Mayumi S PoquetteRussia2025-04-14Truhlar And Truhlar Attys PROPOSAL50Onyama Limba
1014Mujtaba Q TollnerGermany2025-04-28Benton, John B Jr QUALIFIED76Anna Fali
1015Jeanfrancois L RoysterUnited Kingdom2025-04-15King, Christopher A Esq NEW89Amy Elsner
1016Leja P MaletSpain2025-04-10Benton, John B Jr UNQUALIFIED54Amy Elsner
1017Deepesh J VenereFrance2025-04-11Rangoni Of Florence PROPOSAL21Anna Fali
1018Stacey K OstroskyRussia2025-04-05King, Christopher A Esq PROPOSAL7Asiya Javayant
1019Costa M MarrierJapan2025-04-10Rousseaux, Michael Esq NEW64Anna Fali
1020Greenwood Z InouyeBrazil2025-04-24Benton, John B Jr NEGOTIATION49Anna Fali
1021Isabel A AlbaresItaly2025-04-08Benton, John B Jr RENEWAL4Bernardo Dominic
1022Jefferson R WaycottRussia2025-04-09Benton, John B Jr NEGOTIATION57Xuxue Feng
1023Stacey N RulapaughItaly2025-04-19Rousseaux, Michael Esq QUALIFIED23Ivan Magalhaes
1024Izzy L FlosiArgentina2025-04-03Chapman, Ross E Esq NEGOTIATION14Anna Fali
1025Jefferson T FollerArgentina2025-04-08Printing Dimensions UNQUALIFIED49Stephen Shaw
1026Costa D KuskoAustralia2025-04-20Truhlar And Truhlar Attys QUALIFIED67Asiya Javayant
1027James C VenereItaly2025-04-17Dorl, James J Esq UNQUALIFIED23Ivan Magalhaes
1028Sinclair R NickaFrance2025-04-24Rangoni Of Florence QUALIFIED59Onyama Limba
1029Rodrigues F PerinGermany2025-04-20Chapman, Ross E Esq QUALIFIED81Ioni Bowcher
1030Octavia X TollnerJapan2025-04-08Chapman, Ross E Esq PROPOSAL14Ivan Magalhaes
1031Maisha N DilliardCanada2025-04-13Commercial Press NEW46Onyama Limba
1032Morrow O DilliardSpain2025-04-28Benton, John B Jr NEW2Asiya Javayant
1033Ricardo B TollnerRussia2025-04-10Rousseaux, Michael Esq UNQUALIFIED24Anna Fali
1034Chavez R FollerJapan2025-04-02Feltz Printing Service NEW64Amy Elsner
1035Aruna R SaylorsSpain2025-04-16Chapman, Ross E Esq NEGOTIATION79Amy Elsner
1036Cody C CaldareraArgentina2025-04-27Rousseaux, Michael Esq QUALIFIED67Stephen Shaw
1037Aika O StockhamFrance2025-04-05Benton, John B Jr NEGOTIATION32Amy Elsner
1038Clifford R RutaGermany2025-04-05Chanay, Jeffrey A Esq NEW80Ivan Magalhaes
1039Maria R SaylorsUnited Kingdom2025-04-13Benton, John B Jr RENEWAL1Bernardo Dominic
1040Kaitlin J IturbideBrazil2025-04-19Truhlar And Truhlar Attys NEW87Onyama Limba
1041Nicolas Q PerinFrance2025-04-23Buckley Miller Wright PROPOSAL58Elwin Sharvill
1042Leon D CaudyJapan2025-04-29Chapman, Ross E Esq RENEWAL0Onyama Limba
1043Johnson K MacleadArgentina2025-04-06Buckley Miller Wright RENEWAL18Amy Elsner
1044Greenwood T PerinCanada2025-04-06Dorl, James J Esq NEW59Ivan Magalhaes
1045Tony S AmigonBrazil2025-04-17Rousseaux, Michael Esq UNQUALIFIED48Ioni Bowcher
1046Silvio E ChuiUnited Kingdom2025-04-04Printing Dimensions RENEWAL80Elwin Sharvill
1047Aika K MaletIndia2025-04-18Rangoni Of Florence NEW65Stephen Shaw
1048Salvatore A MorascaArgentina2025-04-16Rousseaux, Michael Esq RENEWAL11Ioni Bowcher
1049Misaki E TollnerCanada2025-04-06Rousseaux, Michael Esq QUALIFIED64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ashley P FerenczIndiaOnyama Limba UNQUALIFIED
Arvin L CampainRussiaAsiya Javayant RENEWAL
Antonio T InouyeItalyAmy Elsner NEW
Maria U MaletItalyOnyama Limba UNQUALIFIED
Stacey H ShinkoGermanyIoni Bowcher PROPOSAL
Adams A BriddickItalyIvan Magalhaes RENEWAL
Munro O RoysterItalyIvan Magalhaes PROPOSAL
Juan U RimSpainAnna Fali RENEWAL
Arvin A MarrierIndiaAmy Elsner QUALIFIED
Sinclair I GlickSpainXuxue Feng NEW
Ricardo X RutaArgentinaAmy Elsner NEW
Stacey B ButtIndiaXuxue Feng QUALIFIED
Ivar N NickaAustraliaOnyama Limba QUALIFIED
Wickens K KolmetzBrazilStephen Shaw QUALIFIED
Maisha X AmigonSpainElwin Sharvill PROPOSAL
Antonio I WaycottUnited KingdomBernardo Dominic NEGOTIATION
Greenwood H MaletItalyElwin Sharvill NEW
Aika T TollnerFranceXuxue Feng RENEWAL
Ivar U TollnerGermanyElwin Sharvill NEW
Maria L RulapaughItalyIoni Bowcher NEGOTIATION
Mayumi B BriddickAustraliaStephen Shaw UNQUALIFIED
Stacey V BologniaFranceElwin Sharvill UNQUALIFIED
Emily Q PaprockiArgentinaElwin Sharvill RENEWAL
Maria S GarufiFranceStephen Shaw UNQUALIFIED
Maria R AmigonBrazilAmy Elsner PROPOSAL
Aditya Z ButtCanadaOnyama Limba PROPOSAL
Octavia J WieserFranceAsiya Javayant UNQUALIFIED
Maria F FerenczRussiaIvan Magalhaes RENEWAL
Jeanfrancois D PerinSpainBernardo Dominic NEW
Clifford K SaylorsFranceStephen Shaw NEGOTIATION
Ricardo L SlusarskiArgentinaAsiya Javayant QUALIFIED
David V DarakjyAustraliaElwin Sharvill QUALIFIED
Mujtaba E FerenczBrazilBernardo Dominic NEW
Morrow C GillianSpainAmy Elsner RENEWAL
Murillo B CampainAustraliaAsiya Javayant UNQUALIFIED
Francesco L RimItalyOnyama Limba NEGOTIATION
Deepesh H StockhamIndiaAnna Fali RENEWAL
Maisha P SlusarskiRussiaAnna Fali QUALIFIED
Faith F WaycottSpainOnyama Limba RENEWAL
Salvatore E RimAustraliaAnna Fali RENEWAL
Smith R CaldareraRussiaAnna Fali RENEWAL
Maisha Q BriddickArgentinaAnna Fali UNQUALIFIED
Maria I GillianCanadaBernardo Dominic QUALIFIED
Johnson C GauchoSpainIvan Magalhaes PROPOSAL
Jones L PerinSpainXuxue Feng QUALIFIED
Claire P GlickItalyXuxue Feng PROPOSAL
Sinclair D MaletFranceIvan Magalhaes QUALIFIED
Antonio F GauchoBrazilOnyama Limba PROPOSAL
Munro Q GillianIndiaElwin Sharvill PROPOSAL
Smith Z NickaGermanyXuxue Feng NEW
Frozen Columns
Name
Mujtaba L Figeroa
Julie N Rim
Faith Z Maclead
Murillo E Glick
Alejandro S Darakjy
Deepesh C Bowley
Octavia D Glick
Clifford D Saylors
Stacey G Figeroa
Octavia R Shinko
Deepesh J Caldarera
Ashley N Shinko
Julie G Butt
Nicolas V Morasca
Maisha B Ferencz
Arvin R Shinko
Maisha Q Marrier
Antonio S Stenseth
Aruna N Vocelka
Julie Q Figeroa
Salvatore W Kolmetz
Julie I Wieser
Aika P Saylors
Morrow M Marrier
Isabel N Foller
Emily K Vocelka
Jefferson F Kusko
Isabel I Slusarski
Rodrigues H Kolmetz
James X Sergi
Salvatore C Amigon
Mujtaba Z Malet
Greenwood F Campain
Ivar N Caldarera
Aruna E Royster
Maria J Ostrosky
Jennifer L Marrier
Mayumi Q Inouye
Aika X Stenseth
Stacey F Stockham
Ricardo Z Waycott
Rodrigues D Kusko
Isabel C Slusarski
Leon H Foller
Tony H Albares
Isabel O Sergi
Ricardo C Rulapaugh
Ricardo S Caldarera
Deepesh H Royster
Ivar T Flosi
IdCountryDate
1000Australia2025-04-15
1001Spain2025-04-26
1002Italy2025-04-21
1003Canada2025-04-24
1004Germany2025-04-24
1005India2025-04-08
1006Italy2025-04-10
1007Russia2025-04-15
1008India2025-04-20
1009Brazil2025-04-01
1010Russia2025-04-25
1011Germany2025-04-24
1012United Kingdom2025-04-25
1013Germany2025-04-22
1014Argentina2025-04-25
1015Australia2025-04-29
1016Spain2025-04-16
1017Argentina2025-04-16
1018Italy2025-04-12
1019Brazil2025-04-12
1020Japan2025-04-03
1021Australia2025-04-20
1022France2025-04-08
1023India2025-04-26
1024Canada2025-03-31
1025France2025-04-21
1026Australia2025-04-07
1027Russia2025-04-19
1028Australia2025-04-22
1029Australia2025-04-05
1030Japan2025-04-29
1031France2025-04-09
1032Germany2025-04-03
1033Argentina2025-04-19
1034Australia2025-04-10
1035Spain2025-04-13
1036Australia2025-03-31
1037Canada2025-04-12
1038Argentina2025-04-12
1039United Kingdom2025-04-29
1040Brazil2025-04-20
1041Australia2025-04-06
1042Russia2025-04-13
1043Argentina2025-04-19
1044Spain2025-04-27
1045Argentina2025-04-18
1046Canada2025-03-31
1047Russia2025-04-26
1048Australia2025-04-29
1049India2025-04-27

On-Demand Data

NameIdCountryDate
Aruna P Marrier1000India2025-04-07
Smith B Kolmetz1001Canada2025-04-09
Cody C Caudy1002France2025-04-23
Johnson F Saylors1003Japan2025-04-04
Salvatore O Chui1004Brazil2025-04-24
James B Iturbide1005India2025-04-17
Jones F Paprocki1006India2025-04-28
Maisha U Foller1007Australia2025-04-02
Leon R Albares1008Brazil2025-04-14
Alejandro F Campain1009Argentina2025-04-22
Silvio V Tollner1010Spain2025-04-24
David G Perin1011Germany2025-04-12
Julie F Gillian1012Australia2025-04-16
Izzy P Royster1013Italy2025-04-17
Claire D Shinko1014Russia2025-04-03
Maria W Stenseth1015Italy2025-04-24
Deepesh L Ruta1016France2025-04-08
Misaki L Schemmer1017Spain2025-04-15
Octavia L Wieser1018India2025-04-27
Kaitlin B Ostrosky1019Brazil2025-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel M GlickGermanyAnna Fali UNQUALIFIED
Munro E CaudyFranceAmy Elsner UNQUALIFIED
Claire B TollnerArgentinaOnyama Limba RENEWAL
Francesco C StensethArgentinaIoni Bowcher NEGOTIATION
Claire O RoysterFranceBernardo Dominic UNQUALIFIED
Munro I MarrierBrazilIvan Magalhaes NEGOTIATION
Munro Q RoysterAustraliaAmy Elsner NEGOTIATION
Sinclair V ButtSpainAmy Elsner RENEWAL
Greenwood E CaldareraBrazilIvan Magalhaes RENEWAL
James X GillianIndiaAsiya Javayant RENEWAL
Alejandro Z SchemmerCanadaXuxue Feng UNQUALIFIED
Jeanfrancois L CaudyCanadaAsiya Javayant UNQUALIFIED
Clifford D RimBrazilOnyama Limba RENEWAL
Octavia W FollerItalyStephen Shaw QUALIFIED
Smith Y SergiItalyStephen Shaw RENEWAL
Costa U StockhamAustraliaAmy Elsner NEW
Ashley O GarufiFranceAnna Fali NEGOTIATION
Munro O MarrierCanadaAmy Elsner PROPOSAL
Rodrigues S FlosiArgentinaBernardo Dominic NEW
Darci G CampainBrazilAmy Elsner PROPOSAL
Leon T TollnerItalyXuxue Feng QUALIFIED
Silvio W SchemmerItalyBernardo Dominic QUALIFIED
Greenwood Q SergiSpainIoni Bowcher UNQUALIFIED
Cody H ShinkoJapanAmy Elsner RENEWAL
Mayumi F GillianItalyOnyama Limba NEW
Nicolas P StensethItalyXuxue Feng NEGOTIATION
David J RimAustraliaAnna Fali RENEWAL
Jefferson L DarakjyItalyXuxue Feng NEGOTIATION
Rodrigues M InouyeItalyElwin Sharvill QUALIFIED
Stacey M PaprockiBrazilBernardo Dominic UNQUALIFIED
Maria Z RimSpainXuxue Feng UNQUALIFIED
Aika G KolmetzItalyIvan Magalhaes RENEWAL
Jeanfrancois E KuskoItalyBernardo Dominic NEGOTIATION
Munro N PoquetteAustraliaAmy Elsner NEW
Francesco C AmigonBrazilElwin Sharvill NEGOTIATION
Ivar J DoeUnited KingdomXuxue Feng NEW
Leon S InouyeIndiaBernardo Dominic UNQUALIFIED
Kaitlin L ButtFranceAmy Elsner NEW
Aika V VocelkaRussiaAmy Elsner NEW
Costa A NickaCanadaBernardo Dominic 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>