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
Faith Z KuskoUnited KingdomStephen Shaw PROPOSAL
Rodrigues V MorascaArgentinaAsiya Javayant QUALIFIED
Ashley H StensethSpainXuxue Feng NEGOTIATION
Leja G IturbideCanadaIvan Magalhaes NEGOTIATION
Greenwood D GillianSpainAnna Fali UNQUALIFIED
James U FerenczFranceOnyama Limba NEW
Silvio A BriddickGermanyXuxue Feng RENEWAL
Silvio E RoysterItalyBernardo Dominic UNQUALIFIED
Greenwood E KuskoJapanOnyama Limba RENEWAL
Maria B SchemmerFranceElwin Sharvill UNQUALIFIED
Aditya G PaprockiIndiaIoni Bowcher PROPOSAL
Ivar M ShinkoSpainElwin Sharvill PROPOSAL
Jones L MaletArgentinaAnna Fali NEW
Murillo S BriddickArgentinaXuxue Feng NEW
Morrow M MaletJapanIvan Magalhaes QUALIFIED
Wickens O SchemmerBrazilStephen Shaw RENEWAL
Tony C WaycottFranceBernardo Dominic RENEWAL
Tony U OstroskyGermanyAmy Elsner QUALIFIED
Ricardo H ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Jones I GauchoAustraliaIoni Bowcher NEGOTIATION
Antonio V SergiRussiaOnyama Limba RENEWAL
Izzy J PerinFranceAmy Elsner NEW
Claire H MaletBrazilAnna Fali QUALIFIED
Mayumi E GauchoUnited KingdomAnna Fali NEGOTIATION
Isabel Q ChuiAustraliaElwin Sharvill PROPOSAL
Ashley D GlickRussiaAnna Fali NEGOTIATION
Emily N MacleadGermanyOnyama Limba PROPOSAL
Greenwood M CaudyFranceAsiya Javayant QUALIFIED
Salvatore V BriddickJapanBernardo Dominic RENEWAL
Rodrigues L RoysterGermanyStephen Shaw UNQUALIFIED
Salvatore H PoquetteArgentinaXuxue Feng NEW
Darci D MarrierIndiaStephen Shaw RENEWAL
Murillo B SchemmerBrazilAsiya Javayant QUALIFIED
Emily N WieserJapanIoni Bowcher NEGOTIATION
Murillo K OldroydJapanElwin Sharvill QUALIFIED
Salvatore X OstroskyJapanBernardo Dominic UNQUALIFIED
Tony X DarakjyJapanAmy Elsner NEGOTIATION
Arvin Q RoysterArgentinaStephen Shaw UNQUALIFIED
Mujtaba X OldroydFranceStephen Shaw QUALIFIED
Maria K PerinSpainBernardo Dominic NEGOTIATION
Tony R KuskoArgentinaOnyama Limba UNQUALIFIED
Izzy Q PerinRussiaStephen Shaw NEW
Morrow M BologniaItalyElwin Sharvill RENEWAL
Izzy T BriddickItalyXuxue Feng NEGOTIATION
Leja Z RulapaughBrazilIoni Bowcher NEW
Ashley M WhobreyCanadaAnna Fali NEW
Adams D RutaRussiaOnyama Limba RENEWAL
Francesco Q RutaItalyIvan Magalhaes UNQUALIFIED
Sinclair H IturbideUnited KingdomAmy Elsner PROPOSAL
Emily I SergiCanadaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson L RulapaughRussiaOnyama Limba NEW
Clifford T RoysterFranceAsiya Javayant QUALIFIED
Jones D StockhamJapanAnna Fali QUALIFIED
Emily F RoysterUnited KingdomAnna Fali PROPOSAL
Mujtaba E SlusarskiSpainBernardo Dominic NEW
Aika S NestleFranceStephen Shaw QUALIFIED
Costa G MorascaUnited KingdomAnna Fali QUALIFIED
Nicolas A OstroskyArgentinaIoni Bowcher RENEWAL
Claire A RoysterIndiaAmy Elsner NEW
Jeanfrancois I CaudyItalyAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas X GauchoAustralia2026-08-12Buckley Miller Wright UNQUALIFIED5Onyama Limba
1001Octavia S PaprockiAustralia2026-08-05King, Christopher A Esq NEW59Ivan Magalhaes
1002Juan G MacleadCanada2026-08-04Feiner Bros RENEWAL94Stephen Shaw
1003Nicolas Q NestleFrance2026-08-06Printing Dimensions UNQUALIFIED66Elwin Sharvill
1004Isabel K PoquetteGermany2026-08-07Morlong Associates PROPOSAL27Anna Fali
1005Maria A ButtArgentina2026-08-13Benton, John B Jr PROPOSAL93Amy Elsner
1006Julie N InouyeSpain2026-07-29Commercial Press RENEWAL13Asiya Javayant
1007Aruna H RutaAustralia2026-08-19Feltz Printing Service PROPOSAL10Anna Fali
1008Stacey T FigeroaRussia2026-08-04Rousseaux, Michael Esq QUALIFIED99Anna Fali
1009Murillo N ShinkoIndia2026-07-28Truhlar And Truhlar Attys QUALIFIED89Stephen Shaw
1010Alejandro C MarrierUnited Kingdom2026-08-10Dorl, James J Esq RENEWAL46Stephen Shaw
1011Francesco K CaudySpain2026-08-02Rousseaux, Michael Esq NEGOTIATION16Stephen Shaw
1012Julie X InouyeFrance2026-08-09King, Christopher A Esq RENEWAL59Bernardo Dominic
1013James W SergiFrance2026-08-07Chanay, Jeffrey A Esq QUALIFIED22Anna Fali
1014Silvio Y FlosiIndia2026-08-16Benton, John B Jr UNQUALIFIED97Onyama Limba
1015Murillo K FollerGermany2026-07-29Benton, John B Jr RENEWAL86Bernardo Dominic
1016Adams A NestleSpain2026-07-23Buckley Miller Wright NEGOTIATION1Anna Fali
1017Kaitlin L GauchoCanada2026-08-06Feltz Printing Service NEW6Amy Elsner
1018Claire G AlbaresItaly2026-08-11Truhlar And Truhlar Attys NEGOTIATION70Amy Elsner
1019Wickens W WieserArgentina2026-07-31Printing Dimensions NEW64Ioni Bowcher
1020Misaki D MaletItaly2026-08-05Benton, John B Jr NEGOTIATION95Stephen Shaw
1021Emily Z PerinArgentina2026-08-17Chanay, Jeffrey A Esq QUALIFIED45Ivan Magalhaes
1022Jones P FigeroaFrance2026-08-14Rousseaux, Michael Esq NEGOTIATION50Asiya Javayant
1023Nicolas Y GillianSpain2026-08-03Morlong Associates NEGOTIATION95Stephen Shaw
1024Leja G ShinkoArgentina2026-07-26Feiner Bros UNQUALIFIED45Elwin Sharvill
1025Leon W WaycottArgentina2026-08-21Truhlar And Truhlar Attys NEW94Bernardo Dominic
1026James M OldroydItaly2026-08-20Chanay, Jeffrey A Esq QUALIFIED37Amy Elsner
1027Faith M MorascaArgentina2026-07-27Commercial Press PROPOSAL75Anna Fali
1028Murillo Y IturbideRussia2026-08-01Truhlar And Truhlar Attys NEGOTIATION36Stephen Shaw
1029Aditya A FigeroaArgentina2026-07-31Buckley Miller Wright NEGOTIATION49Elwin Sharvill
1030Greenwood B NestleIndia2026-08-02Commercial Press RENEWAL74Onyama Limba
1031Stacey R NestleIndia2026-07-29Morlong Associates PROPOSAL72Asiya Javayant
1032David F OldroydCanada2026-07-28Printing Dimensions QUALIFIED2Asiya Javayant
1033Aditya G InouyeAustralia2026-08-05Commercial Press PROPOSAL98Anna Fali
1034Jefferson X GauchoRussia2026-08-19Benton, John B Jr NEW19Stephen Shaw
1035Sinclair R FollerSpain2026-08-07Dorl, James J Esq NEGOTIATION18Amy Elsner
1036Maisha Y PoquetteGermany2026-08-12Feltz Printing Service QUALIFIED98Amy Elsner
1037Sinclair N CaldareraCanada2026-08-01Rousseaux, Michael Esq NEW15Asiya Javayant
1038Munro W BriddickAustralia2026-07-28Rangoni Of Florence NEGOTIATION55Amy Elsner
1039Sinclair O RutaFrance2026-08-12Printing Dimensions NEGOTIATION2Ivan Magalhaes
1040Sinclair E FerenczBrazil2026-08-05King, Christopher A Esq NEGOTIATION80Asiya Javayant
1041Faith C StensethIndia2026-08-05Chemel, James L Cpa UNQUALIFIED27Asiya Javayant
1042Deepesh O MorascaCanada2026-08-20Benton, John B Jr QUALIFIED97Onyama Limba
1043Ashley O IturbideItaly2026-07-27Chapman, Ross E Esq UNQUALIFIED95Bernardo Dominic
1044Isabel R PerinRussia2026-08-14Rousseaux, Michael Esq RENEWAL68Elwin Sharvill
1045Johnson S RimJapan2026-08-16Printing Dimensions QUALIFIED42Bernardo Dominic
1046Leja H RimIndia2026-08-20King, Christopher A Esq PROPOSAL90Stephen Shaw
1047James V FigeroaUnited Kingdom2026-08-08Rangoni Of Florence RENEWAL45Elwin Sharvill
1048Octavia T WieserSpain2026-08-13Chemel, James L Cpa RENEWAL49Amy Elsner
1049Leon U AlbaresCanada2026-07-24Chanay, Jeffrey A Esq RENEWAL61Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Arvin S IturbideUnited KingdomIoni Bowcher QUALIFIED
David Z KolmetzBrazilOnyama Limba UNQUALIFIED
Maria J SaylorsArgentinaAsiya Javayant NEGOTIATION
Tony Y WhobreyBrazilAmy Elsner NEGOTIATION
Aika X VocelkaItalyIoni Bowcher NEGOTIATION
Claire H SaylorsSpainAnna Fali PROPOSAL
Tony X NestleJapanElwin Sharvill PROPOSAL
Tony S SergiItalyStephen Shaw PROPOSAL
Mayumi P OldroydUnited KingdomOnyama Limba RENEWAL
Jeanfrancois L MaletArgentinaStephen Shaw QUALIFIED
David C OldroydArgentinaOnyama Limba RENEWAL
Chavez Y MaletCanadaAnna Fali RENEWAL
Jones L GlickJapanIoni Bowcher UNQUALIFIED
Juan N ButtItalyAsiya Javayant PROPOSAL
Salvatore U ButtCanadaIvan Magalhaes UNQUALIFIED
Maisha D MarrierSpainIoni Bowcher PROPOSAL
Rodrigues F GillianUnited KingdomStephen Shaw PROPOSAL
Cody I CaudyArgentinaElwin Sharvill NEW
Smith T FollerCanadaXuxue Feng UNQUALIFIED
Jennifer P SergiUnited KingdomIoni Bowcher RENEWAL
Cody A CaudyJapanBernardo Dominic UNQUALIFIED
Darci X PoquetteIndiaAmy Elsner NEGOTIATION
Morrow T NickaBrazilXuxue Feng UNQUALIFIED
Cody J NestleBrazilElwin Sharvill QUALIFIED
Mujtaba N PoquetteArgentinaIoni Bowcher UNQUALIFIED
David P GauchoRussiaIoni Bowcher RENEWAL
Darci K StensethRussiaIvan Magalhaes NEW
Maisha F FollerArgentinaElwin Sharvill NEW
Misaki E InouyeCanadaStephen Shaw QUALIFIED
Tony O AlbaresCanadaOnyama Limba UNQUALIFIED
Rodrigues S AmigonJapanIoni Bowcher NEW
Salvatore Z GauchoSpainBernardo Dominic QUALIFIED
Alejandro D CaldareraAustraliaAsiya Javayant RENEWAL
Mayumi X ShinkoSpainAnna Fali QUALIFIED
Rodrigues M SaylorsJapanBernardo Dominic PROPOSAL
Jennifer D WieserBrazilAnna Fali RENEWAL
Emily Q WhobreyRussiaAsiya Javayant RENEWAL
Claire J OstroskyAustraliaStephen Shaw PROPOSAL
Ivar V WhobreyCanadaOnyama Limba RENEWAL
Misaki B InouyeCanadaAmy Elsner NEW
Jefferson L PoquetteAustraliaOnyama Limba PROPOSAL
Deepesh W VenereUnited KingdomStephen Shaw PROPOSAL
Kadeem B WaycottJapanIoni Bowcher PROPOSAL
Octavia H CaldareraFranceIvan Magalhaes NEW
Jefferson G VenereJapanXuxue Feng NEW
James J GillianUnited KingdomOnyama Limba QUALIFIED
Salvatore Z RoysterRussiaAnna Fali PROPOSAL
Aruna L GillianGermanyIvan Magalhaes QUALIFIED
Stacey K MacleadArgentinaElwin Sharvill QUALIFIED
Aika K KuskoArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Leja L Paprocki
Chavez Q Whobrey
Julie N Ostrosky
David F Whobrey
Antonio N Sergi
Claire R Butt
Juan G Figeroa
Jefferson R Figeroa
Ashley G Wieser
Sinclair F Shinko
Jefferson L Dilliard
Kaitlin D Ruta
Faith T Rim
Darci L Stockham
Kaitlin U Sergi
Jennifer Z Saylors
Emily F Waycott
Isabel R Stockham
Johnson R Butt
Jennifer K Malet
Stacey C Chui
Nicolas E Whobrey
Isabel P Caudy
Arvin Q Flosi
Julie U Royster
Alejandro Q Caldarera
Aika G Malet
Juan G Wieser
Stacey V Morasca
Jefferson T Foller
Deepesh P Bolognia
Rodrigues F Gillian
Clifford K Saylors
Jones Q Wieser
Rodrigues P Ferencz
Arvin X Slusarski
Kaitlin N Kusko
Leon S Tollner
Julie I Kusko
Mayumi N Chui
Maisha V Poquette
Alejandro R Garufi
Costa E Rulapaugh
Ivar E Caudy
Jones S Sergi
Leja J Glick
Costa H Slusarski
Octavia U Schemmer
Claire G Marrier
Salvatore M Marrier
IdCountryDate
1000Australia2026-08-15
1001Argentina2026-08-08
1002Germany2026-07-28
1003Canada2026-08-12
1004Germany2026-07-23
1005Japan2026-08-07
1006Argentina2026-08-19
1007Brazil2026-08-18
1008India2026-08-19
1009Spain2026-07-31
1010Germany2026-07-27
1011Japan2026-08-20
1012Argentina2026-08-08
1013Spain2026-07-26
1014Argentina2026-07-25
1015India2026-08-01
1016Argentina2026-08-19
1017France2026-08-07
1018Japan2026-08-18
1019Japan2026-07-31
1020Australia2026-07-28
1021Australia2026-08-06
1022Brazil2026-07-29
1023Germany2026-07-31
1024Japan2026-08-09
1025Spain2026-07-25
1026France2026-08-02
1027Italy2026-08-02
1028Spain2026-08-20
1029France2026-08-04
1030Canada2026-08-02
1031Brazil2026-08-01
1032Germany2026-08-11
1033France2026-08-13
1034Canada2026-07-30
1035Argentina2026-08-01
1036United Kingdom2026-08-09
1037Argentina2026-08-18
1038Russia2026-07-28
1039Japan2026-08-21
1040Italy2026-08-10
1041Canada2026-07-25
1042France2026-08-08
1043United Kingdom2026-07-25
1044Canada2026-08-14
1045Japan2026-08-03
1046Australia2026-08-08
1047Italy2026-08-09
1048Japan2026-08-01
1049Japan2026-07-23

On-Demand Data

NameIdCountryDate
Morrow D Whobrey1000Brazil2026-08-08
Maria W Tollner1001Japan2026-07-23
Tony E Nestle1002Australia2026-08-06
James G Caldarera1003Brazil2026-07-24
Morrow T Caudy1004Russia2026-08-15
Juan V Shinko1005Russia2026-08-06
Murillo Z Briddick1006India2026-08-05
Kaitlin G Oldroyd1007Spain2026-08-12
Juan C Ostrosky1008Australia2026-08-06
Arvin P Bolognia1009Russia2026-08-15
Jefferson H Shinko1010Italy2026-07-31
Isabel W Gaucho1011United Kingdom2026-08-12
Izzy P Darakjy1012Argentina2026-08-04
Smith F Waycott1013Germany2026-08-06
Jennifer M Malet1014Brazil2026-07-31
Silvio N Poquette1015United Kingdom2026-08-08
Claire A Garufi1016Germany2026-08-05
Wickens D Butt1017Brazil2026-08-19
James Y Vocelka1018Canada2026-08-13
Kaitlin T Albares1019Brazil2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore Y TollnerAustraliaAmy Elsner NEW
Emily P BowleyUnited KingdomBernardo Dominic RENEWAL
Juan B PerinJapanAmy Elsner NEW
Mujtaba Y RutaSpainIvan Magalhaes PROPOSAL
Izzy N WhobreyGermanyElwin Sharvill UNQUALIFIED
Munro F PaprockiCanadaOnyama Limba PROPOSAL
Rodrigues Z BriddickArgentinaBernardo Dominic NEGOTIATION
Antonio C WieserIndiaElwin Sharvill NEGOTIATION
Izzy I DilliardFranceAnna Fali RENEWAL
Deepesh V MacleadCanadaIoni Bowcher NEGOTIATION
Jones R DarakjyCanadaAmy Elsner NEGOTIATION
Deepesh E OstroskySpainXuxue Feng UNQUALIFIED
Maisha Q StockhamIndiaStephen Shaw RENEWAL
Misaki F GarufiItalyOnyama Limba NEGOTIATION
Morrow G RutaRussiaAnna Fali UNQUALIFIED
Stacey D DilliardAustraliaIoni Bowcher NEW
Stacey E RimIndiaStephen Shaw RENEWAL
Maria B CampainAustraliaOnyama Limba UNQUALIFIED
Kadeem K TollnerRussiaOnyama Limba RENEWAL
Murillo T VocelkaIndiaIvan Magalhaes PROPOSAL
Maisha R VocelkaSpainAsiya Javayant QUALIFIED
Izzy B RulapaughAustraliaStephen Shaw PROPOSAL
Jeanfrancois H VocelkaArgentinaAnna Fali NEW
Emily C RutaIndiaAmy Elsner QUALIFIED
Faith L SaylorsRussiaIvan Magalhaes PROPOSAL
Smith D GarufiGermanyAmy Elsner NEW
Emily O DilliardItalyAmy Elsner RENEWAL
Leon F VocelkaArgentinaAmy Elsner NEW
Izzy R InouyeCanadaBernardo Dominic NEGOTIATION
Smith P WieserArgentinaStephen Shaw RENEWAL
Wickens K RutaUnited KingdomAnna Fali RENEWAL
Nicolas Y CaldareraGermanyBernardo Dominic PROPOSAL
Antonio N MaletBrazilXuxue Feng NEW
Maria S CaldareraArgentinaBernardo Dominic NEW
Leon M ShinkoArgentinaOnyama Limba QUALIFIED
Stacey M MorascaGermanyBernardo Dominic NEGOTIATION
Ricardo K BologniaFranceAsiya Javayant PROPOSAL
Mujtaba U CaldareraUnited KingdomXuxue Feng QUALIFIED
Emily G SergiRussiaAsiya Javayant UNQUALIFIED
Rodrigues U PaprockiAustraliaIvan Magalhaes QUALIFIED

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