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
Alejandro R IturbideAustraliaBernardo Dominic UNQUALIFIED
Francesco O NickaArgentinaIvan Magalhaes NEGOTIATION
Ashley C StockhamJapanAnna Fali UNQUALIFIED
James S DarakjySpainStephen Shaw NEW
Munro J RulapaughGermanyIvan Magalhaes UNQUALIFIED
Aika B BowleyAustraliaStephen Shaw QUALIFIED
Salvatore C PaprockiIndiaBernardo Dominic NEGOTIATION
Rodrigues L CaldareraGermanyAnna Fali NEGOTIATION
Kaitlin B SlusarskiAustraliaAnna Fali QUALIFIED
Jones F CaldareraArgentinaStephen Shaw NEGOTIATION
Juan F WhobreyArgentinaAnna Fali UNQUALIFIED
Murillo T DarakjyJapanIoni Bowcher RENEWAL
Murillo H OldroydArgentinaAsiya Javayant PROPOSAL
Isabel Y BologniaIndiaAsiya Javayant NEW
Mayumi R NestleGermanyStephen Shaw PROPOSAL
Maisha N DilliardArgentinaXuxue Feng PROPOSAL
Ivar L IturbideUnited KingdomIoni Bowcher NEGOTIATION
Cody W MacleadIndiaIvan Magalhaes QUALIFIED
Jeanfrancois C MaletItalyStephen Shaw QUALIFIED
Jennifer G NestleAustraliaIoni Bowcher QUALIFIED
Julie B ShinkoIndiaBernardo Dominic NEW
Kadeem P CampainItalyIoni Bowcher UNQUALIFIED
Chavez E TollnerCanadaIoni Bowcher PROPOSAL
Maisha D MarrierItalyElwin Sharvill QUALIFIED
Maria E NickaFranceElwin Sharvill PROPOSAL
Silvio J RoysterCanadaStephen Shaw PROPOSAL
Leja I KolmetzGermanyStephen Shaw RENEWAL
Cody N DoeCanadaAmy Elsner NEGOTIATION
James W DoeCanadaBernardo Dominic RENEWAL
Silvio M BriddickJapanBernardo Dominic QUALIFIED
Emily E PaprockiAustraliaBernardo Dominic RENEWAL
Johnson L RulapaughJapanIoni Bowcher NEGOTIATION
Silvio I KolmetzIndiaIoni Bowcher UNQUALIFIED
Maria B BriddickSpainAsiya Javayant NEGOTIATION
Leja G GauchoBrazilOnyama Limba PROPOSAL
Leon X GlickUnited KingdomBernardo Dominic NEW
Leja U StensethAustraliaXuxue Feng QUALIFIED
Maria Q CampainArgentinaXuxue Feng PROPOSAL
Nicolas L AlbaresJapanElwin Sharvill QUALIFIED
Morrow M GlickCanadaIvan Magalhaes NEGOTIATION
Alejandro B StockhamGermanyStephen Shaw QUALIFIED
Stacey W MarrierBrazilBernardo Dominic RENEWAL
Smith J CaldareraIndiaOnyama Limba NEW
Adams J StensethFranceStephen Shaw PROPOSAL
Adams F ShinkoCanadaOnyama Limba RENEWAL
Leja B SchemmerUnited KingdomBernardo Dominic NEW
Cody A TollnerJapanAmy Elsner NEW
Mujtaba X DarakjyUnited KingdomAsiya Javayant PROPOSAL
Murillo D GlickFranceStephen Shaw NEW
Ricardo H KolmetzRussiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio L SchemmerItalyIvan Magalhaes UNQUALIFIED
Aika I SlusarskiIndiaBernardo Dominic RENEWAL
Darci E SlusarskiRussiaStephen Shaw UNQUALIFIED
Isabel P GlickJapanOnyama Limba RENEWAL
Ivar G CaudySpainStephen Shaw NEGOTIATION
Smith H MorascaBrazilIvan Magalhaes RENEWAL
Claire C CampainArgentinaAsiya Javayant UNQUALIFIED
Kaitlin T BriddickSpainIoni Bowcher QUALIFIED
Alejandro U BowleyGermanyIvan Magalhaes UNQUALIFIED
Ricardo F BologniaFranceXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow D SaylorsRussia2025-06-10Feltz Printing Service RENEWAL35Stephen Shaw
1001Kaitlin M WaycottArgentina2025-06-02Printing Dimensions RENEWAL54Amy Elsner
1002Jones J StockhamRussia2025-06-06Morlong Associates NEW99Onyama Limba
1003Kadeem B SaylorsAustralia2025-06-15Chanay, Jeffrey A Esq NEGOTIATION52Bernardo Dominic
1004Kadeem I PoquetteGermany2025-06-15Commercial Press RENEWAL17Anna Fali
1005James J ButtAustralia2025-06-11Chapman, Ross E Esq QUALIFIED70Onyama Limba
1006Smith P PoquetteGermany2025-06-06Feltz Printing Service NEGOTIATION85Ivan Magalhaes
1007Jefferson P FerenczItaly2025-05-28Printing Dimensions QUALIFIED10Bernardo Dominic
1008Morrow Z RimGermany2025-06-13Benton, John B Jr PROPOSAL18Onyama Limba
1009Nicolas R GlickBrazil2025-05-23Chanay, Jeffrey A Esq PROPOSAL3Bernardo Dominic
1010Octavia G MorascaItaly2025-06-03Benton, John B Jr UNQUALIFIED40Onyama Limba
1011Ashley Q FlosiBrazil2025-05-26Rangoni Of Florence UNQUALIFIED90Xuxue Feng
1012Julie G StockhamFrance2025-05-24Benton, John B Jr RENEWAL36Anna Fali
1013Tony O RimArgentina2025-06-08Dorl, James J Esq PROPOSAL12Stephen Shaw
1014Kaitlin Y MacleadRussia2025-05-20Rangoni Of Florence NEW59Stephen Shaw
1015Octavia Y PoquetteUnited Kingdom2025-05-25King, Christopher A Esq NEW70Ioni Bowcher
1016Wickens Y KolmetzItaly2025-06-13Benton, John B Jr RENEWAL84Amy Elsner
1017Munro M WaycottGermany2025-06-12Benton, John B Jr UNQUALIFIED21Elwin Sharvill
1018Ricardo C KuskoSpain2025-06-16Feiner Bros PROPOSAL47Onyama Limba
1019Johnson U RulapaughBrazil2025-05-18Morlong Associates RENEWAL78Asiya Javayant
1020Adams H SergiSpain2025-06-07Chemel, James L Cpa NEGOTIATION20Asiya Javayant
1021Isabel G KuskoItaly2025-05-18Printing Dimensions RENEWAL77Elwin Sharvill
1022Julie I FollerJapan2025-05-20Chemel, James L Cpa RENEWAL65Onyama Limba
1023Greenwood J MacleadIndia2025-06-11Rangoni Of Florence UNQUALIFIED37Onyama Limba
1024Ashley Q FigeroaIndia2025-05-25Commercial Press UNQUALIFIED48Xuxue Feng
1025Tony V RulapaughItaly2025-05-31Benton, John B Jr UNQUALIFIED87Ivan Magalhaes
1026Smith M KolmetzArgentina2025-05-31Feiner Bros NEW77Onyama Limba
1027Misaki T SergiJapan2025-05-31Commercial Press UNQUALIFIED15Anna Fali
1028Ivar H GlickFrance2025-05-29King, Christopher A Esq NEGOTIATION42Bernardo Dominic
1029Kadeem Q IturbideAustralia2025-05-21Feiner Bros QUALIFIED19Anna Fali
1030Mujtaba C WhobreyGermany2025-05-21Rousseaux, Michael Esq PROPOSAL6Bernardo Dominic
1031Smith Q TollnerGermany2025-06-16Feltz Printing Service UNQUALIFIED41Ioni Bowcher
1032Octavia Y FollerJapan2025-05-26Rousseaux, Michael Esq PROPOSAL3Ioni Bowcher
1033Greenwood H VenereCanada2025-05-26Chanay, Jeffrey A Esq NEW52Onyama Limba
1034Deepesh J SchemmerJapan2025-05-23King, Christopher A Esq NEGOTIATION94Xuxue Feng
1035Emily M GauchoSpain2025-05-31Feltz Printing Service NEW52Onyama Limba
1036Kaitlin P FollerJapan2025-06-15Rousseaux, Michael Esq UNQUALIFIED80Asiya Javayant
1037Ashley U DarakjyAustralia2025-06-11Chapman, Ross E Esq NEW78Asiya Javayant
1038Murillo W KolmetzItaly2025-06-09King, Christopher A Esq PROPOSAL60Bernardo Dominic
1039Clifford B PoquetteIndia2025-06-10Feltz Printing Service UNQUALIFIED49Amy Elsner
1040Faith V GauchoJapan2025-05-24Chapman, Ross E Esq RENEWAL71Xuxue Feng
1041Jones J ShinkoFrance2025-06-11Benton, John B Jr RENEWAL89Anna Fali
1042Greenwood P SergiSpain2025-05-20Truhlar And Truhlar Attys QUALIFIED19Anna Fali
1043Clifford W DoeSpain2025-06-08Feltz Printing Service QUALIFIED45Stephen Shaw
1044Adams E VenereUnited Kingdom2025-06-14Commercial Press PROPOSAL95Xuxue Feng
1045Aruna O FigeroaItaly2025-06-08Feiner Bros NEGOTIATION22Xuxue Feng
1046Misaki D RutaJapan2025-05-19Feltz Printing Service UNQUALIFIED43Anna Fali
1047James Q SchemmerJapan2025-06-02Feltz Printing Service UNQUALIFIED13Ioni Bowcher
1048Mayumi L AlbaresCanada2025-06-10Dorl, James J Esq PROPOSAL93Stephen Shaw
1049Maria E ChuiIndia2025-06-16Chanay, Jeffrey A Esq QUALIFIED78Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Francesco D WieserAustraliaIvan Magalhaes NEW
Ashley I GillianBrazilIoni Bowcher QUALIFIED
Wickens T IturbideArgentinaAnna Fali NEGOTIATION
Jefferson A WieserUnited KingdomAnna Fali RENEWAL
Antonio W DoeRussiaAmy Elsner RENEWAL
Arvin T ChuiAustraliaAnna Fali QUALIFIED
Deepesh C KuskoIndiaBernardo Dominic RENEWAL
Alejandro M IturbideGermanyElwin Sharvill NEGOTIATION
James L SlusarskiCanadaBernardo Dominic NEGOTIATION
Ricardo K TollnerUnited KingdomXuxue Feng UNQUALIFIED
Alejandro F BologniaGermanyAmy Elsner UNQUALIFIED
Sinclair I MaletArgentinaElwin Sharvill NEGOTIATION
Johnson Z GarufiUnited KingdomStephen Shaw NEGOTIATION
Jennifer I NickaSpainAsiya Javayant RENEWAL
Antonio K KuskoCanadaIoni Bowcher NEGOTIATION
Ashley H AlbaresCanadaStephen Shaw NEW
Isabel K MarrierSpainXuxue Feng UNQUALIFIED
Mayumi C MacleadCanadaAnna Fali PROPOSAL
Morrow C RutaSpainAsiya Javayant NEW
Jones T MaletGermanyStephen Shaw RENEWAL
Stacey J MaletGermanyAmy Elsner QUALIFIED
Mujtaba B GarufiGermanyAnna Fali NEGOTIATION
Ashley Z KuskoJapanIoni Bowcher PROPOSAL
Aruna C AlbaresFranceAsiya Javayant PROPOSAL
Tony C PoquetteRussiaElwin Sharvill PROPOSAL
Octavia F BologniaJapanXuxue Feng QUALIFIED
Octavia N RulapaughRussiaAmy Elsner UNQUALIFIED
Arvin X ChuiJapanOnyama Limba RENEWAL
Stacey X CaudyItalyOnyama Limba QUALIFIED
Emily L PaprockiGermanyElwin Sharvill PROPOSAL
Julie H SlusarskiRussiaElwin Sharvill QUALIFIED
Mayumi I MaletUnited KingdomElwin Sharvill PROPOSAL
Salvatore E BriddickSpainXuxue Feng NEW
Jefferson S FigeroaCanadaXuxue Feng NEGOTIATION
Kaitlin R FigeroaRussiaAnna Fali RENEWAL
David S RoysterBrazilStephen Shaw UNQUALIFIED
Ricardo Z IturbideBrazilAsiya Javayant PROPOSAL
Costa H VocelkaGermanyOnyama Limba PROPOSAL
Darci K RulapaughFranceBernardo Dominic PROPOSAL
Greenwood J StensethCanadaStephen Shaw UNQUALIFIED
Deepesh G ChuiArgentinaStephen Shaw NEGOTIATION
James Z SlusarskiSpainIoni Bowcher NEW
Kadeem I BologniaCanadaBernardo Dominic UNQUALIFIED
Tony Z RulapaughRussiaAmy Elsner RENEWAL
Tony Y GarufiBrazilStephen Shaw RENEWAL
Cody Z NestleRussiaAnna Fali UNQUALIFIED
Clifford G WaycottRussiaXuxue Feng NEW
Leja E FlosiAustraliaAnna Fali NEGOTIATION
Aika L MarrierUnited KingdomBernardo Dominic PROPOSAL
Octavia E TollnerFranceElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Aruna U Albares
Jefferson D Dilliard
Aruna Y Dilliard
Isabel A Stockham
Jefferson B Briddick
Alejandro A Poquette
Johnson Y Garufi
Cody E Waycott
Ashley U Glick
Adams N Ruta
Aika S Gaucho
Murillo Z Inouye
Rodrigues E Slusarski
Julie M Saylors
Smith Y Wieser
Mayumi Z Amigon
Clifford N Foller
Silvio B Bolognia
Greenwood I Oldroyd
Wickens Z Wieser
Johnson R Poquette
Wickens X Poquette
Jefferson Q Campain
Nicolas C Iturbide
James J Royster
Izzy N Paprocki
Francesco N Briddick
Morrow Q Butt
Johnson X Dilliard
Rodrigues K Malet
Johnson E Oldroyd
Emily U Butt
Mujtaba A Morasca
Leon P Gaucho
Jones K Nestle
Nicolas P Sergi
Antonio L Chui
Morrow N Shinko
Izzy Z Whobrey
Wickens O Malet
Aditya E Stenseth
David X Kusko
Salvatore M Perin
Salvatore C Ferencz
Murillo J Caudy
Ricardo Y Caudy
Cody L Caldarera
Antonio W Flosi
Morrow B Caudy
Murillo B Amigon
IdCountryDate
1000France2025-06-02
1001Russia2025-05-24
1002Argentina2025-05-23
1003Australia2025-06-08
1004Germany2025-05-25
1005Japan2025-06-08
1006United Kingdom2025-06-08
1007Argentina2025-06-12
1008Italy2025-06-02
1009Japan2025-06-11
1010Japan2025-05-30
1011India2025-06-07
1012India2025-06-10
1013Japan2025-06-03
1014Japan2025-05-28
1015Argentina2025-05-20
1016United Kingdom2025-06-08
1017Brazil2025-05-22
1018Argentina2025-06-15
1019Italy2025-05-28
1020India2025-06-01
1021Brazil2025-05-24
1022Brazil2025-06-08
1023India2025-05-26
1024Australia2025-05-19
1025Spain2025-06-03
1026Argentina2025-06-08
1027Russia2025-05-24
1028Germany2025-06-04
1029Canada2025-05-24
1030Italy2025-05-29
1031Germany2025-06-10
1032Argentina2025-05-27
1033Italy2025-05-31
1034United Kingdom2025-05-21
1035Germany2025-06-13
1036Germany2025-06-05
1037Canada2025-05-30
1038Japan2025-06-05
1039Spain2025-06-15
1040Germany2025-06-07
1041Brazil2025-06-10
1042Argentina2025-06-07
1043Japan2025-05-30
1044Russia2025-05-20
1045Japan2025-05-18
1046Germany2025-06-06
1047Italy2025-06-07
1048France2025-06-01
1049Canada2025-05-30

On-Demand Data

NameIdCountryDate
Kaitlin K Garufi1000Japan2025-06-15
Maria R Waycott1001France2025-06-14
Leon Z Venere1002Australia2025-05-25
Kadeem N Iturbide1003France2025-06-05
Izzy N Venere1004France2025-05-27
Morrow R Paprocki1005Australia2025-06-13
Maria N Whobrey1006India2025-06-02
Smith G Inouye1007Spain2025-06-08
Mayumi M Malet1008Germany2025-06-06
Mujtaba M Slusarski1009United Kingdom2025-06-14
Mayumi L Malet1010Russia2025-05-30
Jones S Inouye1011Germany2025-05-24
Octavia C Gaucho1012France2025-05-21
Adams Z Saylors1013Russia2025-05-19
Arvin O Ferencz1014India2025-05-20
Cody A Wieser1015Argentina2025-05-24
Julie L Chui1016Australia2025-05-18
Kadeem U Nicka1017Brazil2025-06-06
Izzy M Foller1018Canada2025-06-11
Mayumi B Vocelka1019Argentina2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James J KuskoFranceBernardo Dominic QUALIFIED
Leon P PerinRussiaOnyama Limba NEGOTIATION
Costa J MorascaRussiaBernardo Dominic RENEWAL
Ashley D MorascaCanadaOnyama Limba UNQUALIFIED
Deepesh R GillianArgentinaAnna Fali RENEWAL
Antonio P SaylorsGermanyAnna Fali NEGOTIATION
Murillo S CampainIndiaElwin Sharvill NEGOTIATION
Sinclair F SlusarskiFranceStephen Shaw NEW
Ashley K DarakjyUnited KingdomAsiya Javayant NEW
Kaitlin G KolmetzAustraliaOnyama Limba NEW
Misaki Q AmigonUnited KingdomBernardo Dominic NEW
Arvin K DoeUnited KingdomAmy Elsner QUALIFIED
Ivar G CampainJapanXuxue Feng PROPOSAL
Kadeem V MorascaFranceIvan Magalhaes RENEWAL
Morrow N KuskoArgentinaIvan Magalhaes QUALIFIED
Wickens P BologniaJapanAsiya Javayant NEGOTIATION
Ivar I StensethAustraliaBernardo Dominic PROPOSAL
Morrow U MorascaAustraliaOnyama Limba NEGOTIATION
Aruna U ShinkoCanadaIvan Magalhaes NEW
Silvio H VocelkaBrazilBernardo Dominic RENEWAL
Kaitlin R SaylorsGermanyIvan Magalhaes NEGOTIATION
Mujtaba U PoquetteBrazilIvan Magalhaes QUALIFIED
Silvio X SaylorsBrazilStephen Shaw RENEWAL
Kaitlin X ChuiJapanAsiya Javayant UNQUALIFIED
Maria H BowleyAustraliaXuxue Feng RENEWAL
Stacey M DarakjyIndiaBernardo Dominic NEW
David I AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood D GillianArgentinaBernardo Dominic NEGOTIATION
Sinclair V StockhamArgentinaIoni Bowcher NEW
Faith Q DoeCanadaIvan Magalhaes NEW
Isabel P WaycottBrazilAmy Elsner NEGOTIATION
Chavez Y CaldareraSpainXuxue Feng QUALIFIED
Chavez F ShinkoAustraliaOnyama Limba PROPOSAL
Mujtaba D RulapaughBrazilAmy Elsner RENEWAL
Darci Z MarrierBrazilBernardo Dominic NEGOTIATION
Izzy L GlickBrazilAnna Fali NEW
Kadeem A WieserSpainElwin Sharvill NEW
Rodrigues X MacleadBrazilAsiya Javayant QUALIFIED
Maria T RimFranceIvan Magalhaes NEW
Tony N DoeCanadaStephen Shaw 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>