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
Salvatore P ButtRussiaOnyama Limba PROPOSAL
Greenwood F VocelkaGermanyIoni Bowcher PROPOSAL
Deepesh I AlbaresItalyStephen Shaw NEGOTIATION
Jeanfrancois A DoeGermanyBernardo Dominic QUALIFIED
Francesco U BologniaBrazilAsiya Javayant NEGOTIATION
Misaki L StockhamUnited KingdomIoni Bowcher NEGOTIATION
Claire X RulapaughJapanStephen Shaw NEW
Maisha X BologniaCanadaBernardo Dominic RENEWAL
Salvatore P BriddickIndiaIvan Magalhaes PROPOSAL
Octavia K FerenczSpainAmy Elsner PROPOSAL
Misaki V RutaCanadaBernardo Dominic QUALIFIED
Silvio A NestleGermanyIvan Magalhaes QUALIFIED
Isabel B SaylorsItalyAnna Fali UNQUALIFIED
Smith E WhobreyRussiaIoni Bowcher UNQUALIFIED
Murillo U RulapaughSpainIoni Bowcher RENEWAL
Wickens Z ButtCanadaXuxue Feng NEW
Rodrigues K KolmetzJapanStephen Shaw NEGOTIATION
Stacey A KolmetzAustraliaStephen Shaw NEGOTIATION
Antonio J BowleyCanadaIvan Magalhaes NEW
Mayumi M OldroydBrazilIvan Magalhaes NEW
Izzy Y MorascaRussiaBernardo Dominic PROPOSAL
Chavez R OstroskyRussiaAmy Elsner QUALIFIED
Ricardo G TollnerAustraliaOnyama Limba NEGOTIATION
Ivar N FlosiAustraliaAmy Elsner RENEWAL
Claire R VenereUnited KingdomIvan Magalhaes QUALIFIED
Alejandro S KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Greenwood M CampainCanadaOnyama Limba UNQUALIFIED
Kaitlin Z SlusarskiFranceBernardo Dominic UNQUALIFIED
Costa Z PaprockiAustraliaOnyama Limba NEGOTIATION
Maria L CaudyRussiaIoni Bowcher RENEWAL
Sinclair O SaylorsArgentinaXuxue Feng NEGOTIATION
Wickens F DilliardArgentinaAmy Elsner NEW
Maisha A PoquetteArgentinaAnna Fali QUALIFIED
Stacey R FigeroaFranceAmy Elsner RENEWAL
Octavia K StensethAustraliaAnna Fali NEW
Aika B CaudyArgentinaXuxue Feng RENEWAL
Misaki S ShinkoUnited KingdomAnna Fali NEW
Tony I ChuiUnited KingdomOnyama Limba PROPOSAL
Julie G KuskoUnited KingdomBernardo Dominic RENEWAL
Chavez P TollnerCanadaAmy Elsner NEW
Costa T VenereJapanAsiya Javayant PROPOSAL
Chavez O RutaRussiaElwin Sharvill PROPOSAL
Aditya S BriddickArgentinaIoni Bowcher PROPOSAL
Deepesh X MorascaJapanAsiya Javayant NEW
Ricardo S DoeJapanStephen Shaw UNQUALIFIED
Murillo N CaldareraBrazilIoni Bowcher PROPOSAL
Morrow K RimItalyAsiya Javayant NEGOTIATION
Izzy T MorascaArgentinaIvan Magalhaes NEW
Stacey C GlickGermanyAsiya Javayant NEW
Julie A PaprockiItalyAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki F BriddickRussiaBernardo Dominic QUALIFIED
David F InouyeJapanBernardo Dominic NEW
Adams E MarrierUnited KingdomAnna Fali QUALIFIED
Mujtaba V VenereUnited KingdomBernardo Dominic UNQUALIFIED
Silvio L KolmetzCanadaBernardo Dominic RENEWAL
Alejandro B VocelkaUnited KingdomOnyama Limba NEW
Isabel C DarakjyArgentinaOnyama Limba NEW
Clifford A PoquetteItalyAnna Fali NEW
Adams S VenereCanadaIoni Bowcher RENEWAL
Clifford W CampainRussiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi X KuskoAustralia2025-06-04Buckley Miller Wright QUALIFIED29Xuxue Feng
1001Ashley W CaudyGermany2025-05-24Rousseaux, Michael Esq NEGOTIATION64Anna Fali
1002Maria P PerinRussia2025-05-29Feltz Printing Service PROPOSAL66Asiya Javayant
1003Aditya N DoeCanada2025-06-11Chanay, Jeffrey A Esq PROPOSAL64Xuxue Feng
1004Juan W SlusarskiArgentina2025-05-26Buckley Miller Wright QUALIFIED15Anna Fali
1005Aditya J ChuiRussia2025-05-30Morlong Associates UNQUALIFIED45Asiya Javayant
1006Kaitlin X MarrierCanada2025-06-10Chanay, Jeffrey A Esq UNQUALIFIED53Bernardo Dominic
1007Tony S WaycottBrazil2025-06-08King, Christopher A Esq NEGOTIATION3Elwin Sharvill
1008Jeanfrancois W MaletArgentina2025-05-20Truhlar And Truhlar Attys NEGOTIATION19Ivan Magalhaes
1009Rodrigues Y BologniaFrance2025-05-21Buckley Miller Wright RENEWAL41Ivan Magalhaes
1010Maisha Z InouyeIndia2025-05-23Rousseaux, Michael Esq QUALIFIED56Bernardo Dominic
1011Arvin C SaylorsGermany2025-06-08Rousseaux, Michael Esq PROPOSAL62Ivan Magalhaes
1012Rodrigues T GlickJapan2025-05-28Rousseaux, Michael Esq QUALIFIED60Onyama Limba
1013Maria I SaylorsAustralia2025-05-20Chemel, James L Cpa NEGOTIATION90Xuxue Feng
1014Jeanfrancois E FollerJapan2025-05-24Chemel, James L Cpa UNQUALIFIED51Ioni Bowcher
1015Jefferson Y BowleyItaly2025-06-12Rousseaux, Michael Esq QUALIFIED79Elwin Sharvill
1016Aika A GauchoGermany2025-06-12Buckley Miller Wright QUALIFIED16Stephen Shaw
1017Juan D DoeArgentina2025-06-01Rangoni Of Florence NEW19Bernardo Dominic
1018Sinclair A BriddickArgentina2025-06-10Commercial Press RENEWAL96Bernardo Dominic
1019Rodrigues A DoeFrance2025-05-18Feiner Bros NEGOTIATION96Elwin Sharvill
1020Munro P StensethGermany2025-06-08Feiner Bros PROPOSAL72Onyama Limba
1021Aika X GlickGermany2025-05-18Chapman, Ross E Esq PROPOSAL93Amy Elsner
1022Aika H RoysterSpain2025-06-06Buckley Miller Wright QUALIFIED61Bernardo Dominic
1023Francesco G CampainItaly2025-05-21King, Christopher A Esq NEW54Ioni Bowcher
1024Silvio E WieserSpain2025-05-19Printing Dimensions NEW16Xuxue Feng
1025Chavez T KolmetzGermany2025-05-23Chanay, Jeffrey A Esq NEW57Xuxue Feng
1026Mujtaba J MaletItaly2025-06-01Chapman, Ross E Esq NEW73Stephen Shaw
1027Faith B SlusarskiItaly2025-05-28Rangoni Of Florence QUALIFIED60Xuxue Feng
1028Ashley W PoquetteBrazil2025-05-22Feltz Printing Service NEW85Ioni Bowcher
1029Wickens V CaldareraArgentina2025-06-15King, Christopher A Esq QUALIFIED68Xuxue Feng
1030Morrow A BologniaGermany2025-05-22Rousseaux, Michael Esq PROPOSAL83Asiya Javayant
1031Aditya X RulapaughBrazil2025-06-03Commercial Press NEW78Amy Elsner
1032Smith Z GarufiFrance2025-06-09Feltz Printing Service UNQUALIFIED97Amy Elsner
1033Aditya E SlusarskiUnited Kingdom2025-06-15Truhlar And Truhlar Attys UNQUALIFIED82Elwin Sharvill
1034Nicolas H VenereSpain2025-05-29Feltz Printing Service QUALIFIED34Amy Elsner
1035David T NestleAustralia2025-06-07Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1036Salvatore E DarakjySpain2025-05-18Printing Dimensions RENEWAL85Amy Elsner
1037Rodrigues T TollnerRussia2025-06-14Chapman, Ross E Esq RENEWAL48Onyama Limba
1038Sinclair D RoysterSpain2025-05-26Benton, John B Jr RENEWAL53Elwin Sharvill
1039Juan S SergiItaly2025-06-08Morlong Associates PROPOSAL48Asiya Javayant
1040Chavez B StockhamFrance2025-05-18Dorl, James J Esq PROPOSAL74Onyama Limba
1041Salvatore Q BowleySpain2025-06-15Buckley Miller Wright NEGOTIATION34Amy Elsner
1042Maisha H SlusarskiSpain2025-05-26Rangoni Of Florence RENEWAL89Amy Elsner
1043Izzy Q FigeroaIndia2025-06-13Feltz Printing Service NEW3Ivan Magalhaes
1044Leon M CaudyAustralia2025-05-19Commercial Press PROPOSAL53Ioni Bowcher
1045Faith A BriddickFrance2025-06-06Benton, John B Jr NEW47Xuxue Feng
1046Ricardo G DarakjyUnited Kingdom2025-06-16Feiner Bros RENEWAL20Xuxue Feng
1047Jennifer Y CampainBrazil2025-06-08Commercial Press QUALIFIED66Stephen Shaw
1048Misaki D MorascaJapan2025-06-12Chemel, James L Cpa UNQUALIFIED33Anna Fali
1049Faith Y StensethIndia2025-05-23Rousseaux, Michael Esq RENEWAL19Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel J TollnerBrazilStephen Shaw QUALIFIED
Claire B PerinArgentinaIoni Bowcher NEGOTIATION
Nicolas K GlickBrazilXuxue Feng NEW
Jefferson H IturbideArgentinaAmy Elsner NEGOTIATION
Stacey F NickaSpainAsiya Javayant NEGOTIATION
Claire U CampainIndiaAsiya Javayant NEW
Claire R BologniaBrazilIvan Magalhaes QUALIFIED
Munro V GillianGermanyAnna Fali NEGOTIATION
Nicolas D AlbaresUnited KingdomIoni Bowcher PROPOSAL
Adams N IturbideCanadaAmy Elsner QUALIFIED
Morrow J CampainJapanBernardo Dominic RENEWAL
Wickens C WhobreyFranceStephen Shaw RENEWAL
Aruna K BriddickBrazilAnna Fali UNQUALIFIED
Claire R GlickRussiaAmy Elsner PROPOSAL
Smith T CaldareraItalyIvan Magalhaes RENEWAL
Salvatore P FollerIndiaXuxue Feng UNQUALIFIED
Octavia V MorascaSpainIoni Bowcher QUALIFIED
Maria H VocelkaSpainAsiya Javayant NEW
Rodrigues O GlickSpainIvan Magalhaes RENEWAL
Antonio O GlickBrazilBernardo Dominic NEGOTIATION
Mayumi F OldroydIndiaElwin Sharvill UNQUALIFIED
Leon Y NickaIndiaOnyama Limba NEW
Claire W BowleySpainAmy Elsner UNQUALIFIED
Johnson X VenereAustraliaOnyama Limba PROPOSAL
Aditya S CaudyBrazilElwin Sharvill PROPOSAL
Emily E OldroydJapanAsiya Javayant NEW
Clifford A DilliardIndiaElwin Sharvill PROPOSAL
Leja U CaudyJapanElwin Sharvill QUALIFIED
Mayumi D DilliardAustraliaAsiya Javayant NEGOTIATION
Emily J MaletJapanStephen Shaw QUALIFIED
Kaitlin W OldroydIndiaIvan Magalhaes UNQUALIFIED
Aditya V FigeroaItalyElwin Sharvill QUALIFIED
Mayumi B VenereUnited KingdomAnna Fali RENEWAL
Adams O ButtItalyElwin Sharvill NEW
Alejandro T KolmetzCanadaAmy Elsner NEGOTIATION
Arvin Q MacleadUnited KingdomAsiya Javayant RENEWAL
Adams I MaletSpainElwin Sharvill PROPOSAL
Mayumi L GlickBrazilBernardo Dominic NEW
Chavez F KuskoGermanyBernardo Dominic RENEWAL
Ashley V BriddickSpainIoni Bowcher NEGOTIATION
Izzy J IturbideCanadaElwin Sharvill UNQUALIFIED
Ivar E CampainAustraliaAsiya Javayant QUALIFIED
Leja E ButtRussiaAmy Elsner NEW
Antonio Z InouyeJapanElwin Sharvill PROPOSAL
Darci F BologniaArgentinaElwin Sharvill NEGOTIATION
Maisha E ChuiJapanStephen Shaw PROPOSAL
James F ButtIndiaAnna Fali NEW
Stacey A SaylorsAustraliaIoni Bowcher NEGOTIATION
Clifford Z DilliardRussiaAsiya Javayant RENEWAL
Jefferson W GlickSpainAmy Elsner NEW
Frozen Columns
Name
Clifford M Slusarski
Alejandro Q Schemmer
Kadeem L Ruta
Stacey P Perin
Darci B Whobrey
Faith A Sergi
Juan T Butt
Adams T Wieser
Claire H Whobrey
Francesco V Garufi
Antonio J Royster
Antonio U Kolmetz
Jeanfrancois S Malet
James H Ostrosky
Emily C Albares
Octavia D Whobrey
David H Oldroyd
Sinclair L Tollner
Aika S Butt
Jones C Ferencz
Isabel C Ferencz
Rodrigues V Nestle
Chavez U Caudy
Rodrigues D Inouye
Jefferson E Kolmetz
Octavia Y Wieser
Chavez W Ostrosky
Jefferson F Iturbide
Maria D Inouye
Octavia M Campain
Wickens R Poquette
Misaki O Bolognia
Julie K Tollner
Aditya F Gaucho
Morrow V Kusko
David U Perin
Ashley M Paprocki
Tony K Oldroyd
Deepesh A Oldroyd
Jeanfrancois N Rim
Faith N Wieser
Silvio K Slusarski
Costa O Gaucho
Maisha Q Butt
Nicolas F Gaucho
Leja T Bowley
James X Sergi
Claire Y Amigon
Chavez A Waycott
Jennifer W Sergi
IdCountryDate
1000India2025-06-08
1001India2025-06-08
1002Canada2025-06-04
1003Australia2025-06-02
1004Brazil2025-06-01
1005India2025-05-27
1006Spain2025-05-21
1007Canada2025-05-27
1008Canada2025-05-30
1009United Kingdom2025-05-22
1010Russia2025-06-04
1011Germany2025-06-11
1012Japan2025-06-05
1013Italy2025-06-16
1014Germany2025-05-29
1015Canada2025-05-19
1016Australia2025-06-15
1017India2025-06-05
1018Japan2025-06-12
1019France2025-06-10
1020Germany2025-06-06
1021United Kingdom2025-05-30
1022Spain2025-05-30
1023Russia2025-06-14
1024Canada2025-06-01
1025Argentina2025-06-09
1026Argentina2025-06-16
1027Spain2025-06-05
1028Australia2025-06-01
1029Russia2025-05-30
1030Canada2025-06-01
1031Italy2025-05-22
1032United Kingdom2025-05-21
1033United Kingdom2025-06-02
1034Germany2025-06-04
1035France2025-05-22
1036United Kingdom2025-05-23
1037United Kingdom2025-06-01
1038Canada2025-05-25
1039United Kingdom2025-06-02
1040Italy2025-05-26
1041Italy2025-06-01
1042Australia2025-06-08
1043Argentina2025-06-10
1044Germany2025-05-29
1045India2025-05-30
1046Italy2025-05-24
1047Canada2025-06-05
1048Brazil2025-05-26
1049Canada2025-05-26

On-Demand Data

NameIdCountryDate
Emily C Gillian1000Russia2025-06-08
Deepesh N Caudy1001Italy2025-06-02
Deepesh Y Glick1002Italy2025-05-26
Juan J Ostrosky1003Argentina2025-05-24
David V Marrier1004United Kingdom2025-06-10
Rodrigues A Rim1005France2025-06-11
Rodrigues V Nestle1006Germany2025-06-08
Ashley K Iturbide1007Australia2025-05-19
Isabel B Marrier1008United Kingdom2025-06-16
James E Dilliard1009Spain2025-05-24
Jones W Venere1010France2025-06-16
Deepesh R Whobrey1011Russia2025-05-30
Darci N Sergi1012Russia2025-05-27
Jefferson G Garufi1013Canada2025-06-09
Leon M Bowley1014India2025-05-21
Cody J Figeroa1015Canada2025-05-31
Leja D Caudy1016Japan2025-05-21
Jefferson N Campain1017Germany2025-05-30
Johnson S Amigon1018Germany2025-05-18
Maria O Caldarera1019Japan2025-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi O WaycottAustraliaOnyama Limba PROPOSAL
Jeanfrancois W CampainCanadaXuxue Feng NEW
Alejandro W FlosiUnited KingdomElwin Sharvill PROPOSAL
Mujtaba P GillianFranceBernardo Dominic QUALIFIED
Misaki R ButtJapanBernardo Dominic UNQUALIFIED
Maria P GauchoJapanIvan Magalhaes NEW
Maisha Q KuskoIndiaAsiya Javayant UNQUALIFIED
Jones Y PaprockiIndiaElwin Sharvill QUALIFIED
Maria R NestleItalyIvan Magalhaes UNQUALIFIED
Salvatore K GarufiJapanElwin Sharvill UNQUALIFIED
Ivar P WieserGermanyOnyama Limba RENEWAL
Tony V PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Leja X NickaJapanXuxue Feng NEW
Francesco Z CampainRussiaXuxue Feng NEW
Emily F VocelkaRussiaIvan Magalhaes RENEWAL
Juan E PoquetteFranceAnna Fali RENEWAL
Sinclair C RimFranceElwin Sharvill PROPOSAL
Maria I RutaUnited KingdomOnyama Limba QUALIFIED
Ivar R FigeroaRussiaOnyama Limba UNQUALIFIED
Ricardo Q StockhamFranceIvan Magalhaes NEGOTIATION
Deepesh L OstroskyItalyAmy Elsner QUALIFIED
Mayumi S OldroydFranceXuxue Feng NEGOTIATION
Ivar S VocelkaCanadaOnyama Limba NEW
Stacey T RutaBrazilIoni Bowcher RENEWAL
Claire Q AlbaresBrazilIoni Bowcher PROPOSAL
Faith C CaldareraSpainElwin Sharvill UNQUALIFIED
Wickens X MaletAustraliaAnna Fali NEW
Johnson V TollnerIndiaAmy Elsner NEGOTIATION
Julie U AmigonBrazilAnna Fali PROPOSAL
Emily I AlbaresRussiaXuxue Feng RENEWAL
Emily W CaudySpainXuxue Feng NEW
Kadeem T KolmetzItalyAsiya Javayant RENEWAL
Antonio O KuskoAustraliaElwin Sharvill PROPOSAL
Maisha R SlusarskiJapanIvan Magalhaes RENEWAL
Smith B SlusarskiRussiaAnna Fali QUALIFIED
Jeanfrancois S FollerUnited KingdomStephen Shaw NEGOTIATION
Jefferson N VocelkaRussiaAmy Elsner UNQUALIFIED
Chavez R DoeAustraliaAmy Elsner RENEWAL
Alejandro U OldroydRussiaIoni Bowcher UNQUALIFIED
Deepesh M RimBrazilOnyama Limba 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>