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
Leja J IturbideArgentinaIvan Magalhaes PROPOSAL
Maisha T OstroskyAustraliaAmy Elsner UNQUALIFIED
Claire K GillianFranceXuxue Feng PROPOSAL
Julie P MarrierAustraliaAsiya Javayant UNQUALIFIED
Alejandro E NestleCanadaIoni Bowcher QUALIFIED
Salvatore F NestleRussiaBernardo Dominic NEGOTIATION
Jennifer P DoeSpainAmy Elsner NEGOTIATION
Juan T CaldareraAustraliaAmy Elsner PROPOSAL
Octavia V MorascaBrazilStephen Shaw PROPOSAL
David P WhobreyIndiaOnyama Limba PROPOSAL
Salvatore P RimItalyAmy Elsner QUALIFIED
Jefferson T ButtFranceAmy Elsner QUALIFIED
Deepesh Z NickaUnited KingdomAnna Fali UNQUALIFIED
Tony C NestleJapanOnyama Limba PROPOSAL
Izzy T NickaGermanyOnyama Limba UNQUALIFIED
Silvio B ChuiBrazilAmy Elsner PROPOSAL
Leon X AmigonFranceXuxue Feng RENEWAL
Izzy N OldroydUnited KingdomBernardo Dominic NEGOTIATION
Chavez K ShinkoItalyOnyama Limba PROPOSAL
Silvio B RulapaughItalyElwin Sharvill NEGOTIATION
Aditya E FerenczCanadaAsiya Javayant PROPOSAL
Jefferson F ButtBrazilBernardo Dominic RENEWAL
Julie X IturbideFranceOnyama Limba PROPOSAL
Aruna F DarakjyIndiaAmy Elsner QUALIFIED
Tony N PaprockiCanadaBernardo Dominic QUALIFIED
Chavez O StockhamSpainAnna Fali UNQUALIFIED
Murillo G MorascaArgentinaIvan Magalhaes UNQUALIFIED
Arvin H TollnerCanadaAsiya Javayant UNQUALIFIED
Misaki C OldroydCanadaOnyama Limba NEGOTIATION
Aika R SaylorsBrazilBernardo Dominic RENEWAL
Greenwood K BriddickUnited KingdomAnna Fali NEW
Emily U GauchoBrazilAsiya Javayant UNQUALIFIED
Aika A SchemmerJapanOnyama Limba RENEWAL
Jefferson S StockhamJapanBernardo Dominic NEW
Costa B VenereGermanyXuxue Feng NEW
Izzy S SchemmerJapanIoni Bowcher PROPOSAL
Claire H WhobreyFranceAmy Elsner NEW
Leon G FlosiCanadaAsiya Javayant NEW
Nicolas S GarufiFranceXuxue Feng NEGOTIATION
Mayumi N WhobreyBrazilBernardo Dominic PROPOSAL
Cody Y MaletCanadaXuxue Feng RENEWAL
Aruna X FerenczAustraliaElwin Sharvill QUALIFIED
Mayumi N CaudyGermanyAmy Elsner PROPOSAL
Deepesh S GarufiBrazilXuxue Feng UNQUALIFIED
Jones K CaudyGermanyAmy Elsner UNQUALIFIED
Mujtaba O MorascaBrazilElwin Sharvill UNQUALIFIED
Jefferson S DoeCanadaAmy Elsner NEW
Kadeem O BowleyFranceElwin Sharvill RENEWAL
Julie F WaycottUnited KingdomElwin Sharvill QUALIFIED
Aika A OldroydIndiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem K RoysterGermanyAsiya Javayant UNQUALIFIED
Cody C FollerSpainAmy Elsner QUALIFIED
Jones E IturbideFranceIoni Bowcher NEGOTIATION
Arvin T TollnerUnited KingdomAmy Elsner PROPOSAL
Mayumi K NestleFranceXuxue Feng RENEWAL
Isabel U TollnerArgentinaBernardo Dominic QUALIFIED
Salvatore U FigeroaGermanyAsiya Javayant NEW
Mujtaba C AmigonGermanyStephen Shaw NEW
Ashley C FlosiCanadaAnna Fali NEW
Maisha C KuskoIndiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar P WaycottRussia2026-08-08Rangoni Of Florence QUALIFIED33Stephen Shaw
1001Morrow S GauchoFrance2026-07-23King, Christopher A Esq RENEWAL77Asiya Javayant
1002Leja I WaycottRussia2026-07-29Rousseaux, Michael Esq RENEWAL77Onyama Limba
1003Jeanfrancois Y FollerCanada2026-08-08Chemel, James L Cpa NEGOTIATION93Asiya Javayant
1004Aika M CaldareraSpain2026-07-12Rangoni Of Florence PROPOSAL89Anna Fali
1005Maisha J FerenczBrazil2026-07-21Chanay, Jeffrey A Esq NEW23Amy Elsner
1006Mujtaba C ShinkoIndia2026-07-12Buckley Miller Wright QUALIFIED57Xuxue Feng
1007Deepesh P OldroydSpain2026-08-03Feiner Bros NEGOTIATION74Anna Fali
1008Jones E PoquetteAustralia2026-08-06Dorl, James J Esq PROPOSAL35Asiya Javayant
1009Emily O BowleyGermany2026-07-26Printing Dimensions NEGOTIATION86Bernardo Dominic
1010Adams A FerenczAustralia2026-07-26Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1011Leja C FigeroaGermany2026-07-13Benton, John B Jr PROPOSAL57Onyama Limba
1012Tony H StockhamCanada2026-07-29Morlong Associates NEW96Xuxue Feng
1013James D CaudyGermany2026-07-26Rangoni Of Florence NEGOTIATION85Amy Elsner
1014Greenwood R NestleItaly2026-07-27Feltz Printing Service PROPOSAL93Anna Fali
1015Ivar W OldroydRussia2026-07-29Chemel, James L Cpa QUALIFIED25Amy Elsner
1016Julie I RimUnited Kingdom2026-07-17Chapman, Ross E Esq NEW6Onyama Limba
1017Stacey Y RimFrance2026-07-17Feltz Printing Service PROPOSAL41Asiya Javayant
1018Antonio U NickaRussia2026-07-31Benton, John B Jr QUALIFIED99Onyama Limba
1019Ivar F RulapaughAustralia2026-08-08Printing Dimensions NEW69Stephen Shaw
1020Antonio I PaprockiRussia2026-07-19Feltz Printing Service RENEWAL29Bernardo Dominic
1021Arvin F StockhamSpain2026-07-18Buckley Miller Wright NEW40Ioni Bowcher
1022Tony P StockhamFrance2026-07-19Buckley Miller Wright NEGOTIATION42Stephen Shaw
1023David T AlbaresFrance2026-07-25King, Christopher A Esq QUALIFIED1Ioni Bowcher
1024Faith U RoysterBrazil2026-07-22Rangoni Of Florence QUALIFIED72Ioni Bowcher
1025Mujtaba Q GarufiGermany2026-08-02Feiner Bros UNQUALIFIED73Amy Elsner
1026Leon I ButtCanada2026-07-16Buckley Miller Wright QUALIFIED99Stephen Shaw
1027Rodrigues Z FlosiUnited Kingdom2026-08-07Chapman, Ross E Esq NEGOTIATION3Xuxue Feng
1028Murillo F MaletFrance2026-07-31King, Christopher A Esq NEGOTIATION94Elwin Sharvill
1029Costa X SlusarskiFrance2026-07-28Benton, John B Jr UNQUALIFIED34Anna Fali
1030Leja M PaprockiAustralia2026-07-19Truhlar And Truhlar Attys UNQUALIFIED30Asiya Javayant
1031Chavez A TollnerBrazil2026-08-06Benton, John B Jr PROPOSAL26Ioni Bowcher
1032Munro S PoquetteRussia2026-08-04Feiner Bros RENEWAL83Asiya Javayant
1033Francesco U WieserRussia2026-08-04Rousseaux, Michael Esq PROPOSAL47Ioni Bowcher
1034Munro D NickaSpain2026-07-12Chemel, James L Cpa NEGOTIATION55Ioni Bowcher
1035Emily A RimIndia2026-07-13King, Christopher A Esq RENEWAL13Stephen Shaw
1036Jones X FollerUnited Kingdom2026-07-31Morlong Associates QUALIFIED48Anna Fali
1037Sinclair M RimJapan2026-07-27Buckley Miller Wright NEW88Elwin Sharvill
1038Leon Q AlbaresArgentina2026-07-11Chemel, James L Cpa NEW54Ivan Magalhaes
1039Murillo X AmigonSpain2026-07-29Printing Dimensions RENEWAL37Ioni Bowcher
1040Clifford H WieserFrance2026-07-20Truhlar And Truhlar Attys PROPOSAL46Stephen Shaw
1041Clifford H WaycottItaly2026-07-22Rangoni Of Florence UNQUALIFIED6Asiya Javayant
1042Julie T SaylorsFrance2026-07-21Printing Dimensions PROPOSAL71Amy Elsner
1043David B BologniaSpain2026-08-03Printing Dimensions NEGOTIATION87Xuxue Feng
1044Salvatore X TollnerBrazil2026-07-29Buckley Miller Wright QUALIFIED34Ioni Bowcher
1045Antonio C OldroydJapan2026-07-23Rangoni Of Florence NEGOTIATION68Elwin Sharvill
1046Tony E FigeroaAustralia2026-07-17Chemel, James L Cpa QUALIFIED72Ioni Bowcher
1047Jeanfrancois L FerenczRussia2026-07-13Rousseaux, Michael Esq UNQUALIFIED90Elwin Sharvill
1048David O BologniaJapan2026-08-02Buckley Miller Wright QUALIFIED77Anna Fali
1049Costa O CaldareraCanada2026-07-28Benton, John B Jr PROPOSAL6Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Smith X FerenczRussiaAsiya Javayant PROPOSAL
Wickens H FigeroaJapanOnyama Limba QUALIFIED
Francesco D PaprockiRussiaAsiya Javayant UNQUALIFIED
Faith O MorascaFranceBernardo Dominic NEGOTIATION
Ricardo M SaylorsRussiaAnna Fali RENEWAL
James W WhobreySpainBernardo Dominic NEW
Chavez T ButtItalyIoni Bowcher NEW
Mayumi N VocelkaGermanyAmy Elsner QUALIFIED
Cody M MorascaUnited KingdomOnyama Limba QUALIFIED
Kaitlin I TollnerGermanyOnyama Limba PROPOSAL
Murillo N ButtUnited KingdomAmy Elsner RENEWAL
Greenwood K ChuiItalyAmy Elsner NEGOTIATION
Murillo C BriddickCanadaXuxue Feng PROPOSAL
Ricardo M VenereItalyElwin Sharvill QUALIFIED
Deepesh J RutaBrazilAnna Fali PROPOSAL
Murillo Z ChuiItalyXuxue Feng NEW
Isabel I FollerRussiaElwin Sharvill NEW
Jennifer U PerinArgentinaIvan Magalhaes RENEWAL
Leon D WaycottSpainAsiya Javayant UNQUALIFIED
Johnson V GarufiGermanyIoni Bowcher NEGOTIATION
Costa W SchemmerRussiaAnna Fali NEW
Leja B PerinGermanyAsiya Javayant RENEWAL
Juan E WieserArgentinaIvan Magalhaes RENEWAL
Leja N CampainIndiaOnyama Limba PROPOSAL
Aruna D KolmetzIndiaAnna Fali QUALIFIED
Sinclair V BowleySpainStephen Shaw QUALIFIED
Aika X StensethUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois U GillianJapanOnyama Limba QUALIFIED
Octavia J SchemmerSpainStephen Shaw NEW
David A PerinFranceStephen Shaw NEGOTIATION
Kaitlin Y DilliardGermanyElwin Sharvill PROPOSAL
Adams C BologniaAustraliaIoni Bowcher RENEWAL
Izzy P InouyeAustraliaStephen Shaw PROPOSAL
Emily E SchemmerGermanyStephen Shaw UNQUALIFIED
Chavez S CaldareraArgentinaStephen Shaw UNQUALIFIED
Silvio Q MorascaArgentinaOnyama Limba NEGOTIATION
Izzy P KolmetzBrazilStephen Shaw NEGOTIATION
Adams M PaprockiJapanAmy Elsner PROPOSAL
Costa P StensethBrazilIvan Magalhaes NEW
James Q RoysterJapanAsiya Javayant NEGOTIATION
Alejandro Y CaudyRussiaXuxue Feng PROPOSAL
Aika Q FigeroaArgentinaStephen Shaw RENEWAL
Clifford F FlosiRussiaAsiya Javayant NEW
David E StockhamUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois X MacleadSpainBernardo Dominic NEW
Maisha J VocelkaGermanyAsiya Javayant NEW
Jefferson H PaprockiAustraliaStephen Shaw UNQUALIFIED
Sinclair L StensethAustraliaElwin Sharvill NEW
Salvatore Z ChuiRussiaStephen Shaw UNQUALIFIED
Mayumi P CaldareraItalyOnyama Limba PROPOSAL
Frozen Columns
Name
Maisha T Campain
Octavia R Bolognia
Octavia X Malet
David Y Chui
Wickens J Wieser
Mayumi C Albares
Ivar H Schemmer
Emily H Vocelka
Faith T Saylors
Morrow S Kusko
Ivar T Amigon
Leja R Iturbide
Darci G Schemmer
Johnson G Stockham
Kaitlin I Marrier
Sinclair M Foller
Izzy M Garufi
Leja O Wieser
Morrow K Marrier
Stacey P Oldroyd
Isabel C Kolmetz
Murillo V Wieser
Juan R Malet
David C Rulapaugh
Deepesh W Doe
Aika H Stenseth
Adams E Sergi
Maria C Marrier
Morrow B Schemmer
Arvin S Campain
Arvin M Garufi
Misaki A Maclead
Salvatore R Schemmer
Murillo N Ostrosky
Leja L Oldroyd
Ivar V Campain
Sinclair U Royster
Darci A Ferencz
Kadeem K Caldarera
Deepesh H Caldarera
Octavia G Oldroyd
Misaki P Wieser
Darci C Shinko
Rodrigues M Rim
Morrow U Wieser
Murillo N Stenseth
Silvio K Rim
Johnson P Oldroyd
Morrow Y Caudy
Julie W Chui
IdCountryDate
1000Russia2026-07-19
1001Spain2026-07-13
1002Russia2026-08-05
1003Spain2026-07-27
1004India2026-08-04
1005Germany2026-07-12
1006Brazil2026-07-27
1007Spain2026-07-28
1008Australia2026-07-16
1009United Kingdom2026-08-02
1010United Kingdom2026-08-03
1011Spain2026-07-15
1012United Kingdom2026-07-16
1013Argentina2026-08-04
1014Canada2026-07-31
1015Brazil2026-08-02
1016Argentina2026-07-14
1017Italy2026-07-31
1018Canada2026-08-08
1019France2026-07-30
1020Spain2026-08-05
1021Canada2026-08-09
1022Italy2026-07-15
1023Germany2026-07-24
1024Spain2026-07-27
1025Australia2026-07-25
1026Japan2026-07-29
1027Argentina2026-08-05
1028India2026-07-25
1029Russia2026-07-30
1030United Kingdom2026-08-02
1031Italy2026-07-18
1032Argentina2026-07-16
1033Argentina2026-07-14
1034France2026-07-17
1035Spain2026-07-19
1036France2026-07-30
1037Canada2026-07-23
1038Argentina2026-07-21
1039Spain2026-07-18
1040Canada2026-07-20
1041Canada2026-07-11
1042United Kingdom2026-08-07
1043Australia2026-08-02
1044Brazil2026-07-22
1045Russia2026-07-31
1046Russia2026-07-20
1047Argentina2026-07-17
1048Spain2026-08-01
1049Australia2026-08-09

On-Demand Data

NameIdCountryDate
Leja J Venere1000Italy2026-07-11
Adams D Oldroyd1001Australia2026-07-12
Emily D Amigon1002Japan2026-07-19
Aditya G Kolmetz1003India2026-08-04
Salvatore E Malet1004Argentina2026-07-11
Salvatore C Gaucho1005Argentina2026-07-26
Silvio H Gaucho1006France2026-07-26
Salvatore Z Figeroa1007France2026-07-22
Aika Q Bolognia1008Italy2026-07-16
David K Iturbide1009Australia2026-08-08
Francesco A Oldroyd1010Japan2026-07-16
Nicolas U Foller1011Australia2026-07-21
Izzy X Caldarera1012France2026-07-15
Deepesh X Tollner1013Russia2026-07-19
Faith H Tollner1014Spain2026-08-02
Aditya S Campain1015India2026-07-16
Juan K Foller1016Spain2026-07-22
Mayumi L Ruta1017Spain2026-07-28
Rodrigues H Flosi1018France2026-07-16
Julie U Inouye1019United Kingdom2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford I NickaUnited KingdomIoni Bowcher PROPOSAL
Izzy Q PaprockiIndiaStephen Shaw QUALIFIED
Rodrigues J CaldareraCanadaAsiya Javayant PROPOSAL
Jeanfrancois F MorascaItalyAsiya Javayant UNQUALIFIED
Juan P PerinBrazilIvan Magalhaes QUALIFIED
Kadeem V AmigonItalyAsiya Javayant NEW
Stacey A SchemmerCanadaOnyama Limba RENEWAL
Isabel Q WhobreyRussiaXuxue Feng UNQUALIFIED
Antonio T PoquetteFranceXuxue Feng RENEWAL
Aruna E SaylorsBrazilIvan Magalhaes RENEWAL
Mayumi F BriddickItalyIvan Magalhaes QUALIFIED
Maisha N ChuiItalyBernardo Dominic PROPOSAL
Ivar A NestleIndiaOnyama Limba NEW
Sinclair J IturbideAustraliaIoni Bowcher UNQUALIFIED
Greenwood E BologniaRussiaElwin Sharvill QUALIFIED
Arvin S NickaIndiaStephen Shaw PROPOSAL
Deepesh F AlbaresBrazilXuxue Feng UNQUALIFIED
Isabel W DarakjySpainXuxue Feng RENEWAL
Kadeem M ShinkoRussiaAsiya Javayant UNQUALIFIED
Maria R StockhamSpainIoni Bowcher PROPOSAL
Jeanfrancois R KolmetzArgentinaAsiya Javayant UNQUALIFIED
Izzy S KuskoRussiaOnyama Limba UNQUALIFIED
Jones S OstroskyCanadaAsiya Javayant UNQUALIFIED
Jennifer I CaldareraIndiaStephen Shaw NEGOTIATION
Ashley N GarufiBrazilBernardo Dominic PROPOSAL
Isabel S CaudyFranceElwin Sharvill NEGOTIATION
Aika X DoeBrazilOnyama Limba NEW
Misaki R SaylorsBrazilElwin Sharvill UNQUALIFIED
Chavez Y SlusarskiIndiaStephen Shaw UNQUALIFIED
Rodrigues F GarufiSpainXuxue Feng NEW
Jones E KolmetzArgentinaBernardo Dominic RENEWAL
Kadeem V MaletRussiaIvan Magalhaes NEGOTIATION
Francesco L BriddickRussiaStephen Shaw NEGOTIATION
Costa C DoeBrazilAsiya Javayant QUALIFIED
Clifford U AlbaresGermanyAsiya Javayant PROPOSAL
Cody W ShinkoItalyAmy Elsner RENEWAL
Munro Y DoeJapanBernardo Dominic NEW
Leon R GlickBrazilIvan Magalhaes UNQUALIFIED
Ivar O InouyeJapanBernardo Dominic RENEWAL
Chavez T AmigonFranceAsiya Javayant 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>