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
Arvin P PerinBrazilBernardo Dominic QUALIFIED
Sinclair K FerenczRussiaXuxue Feng UNQUALIFIED
Ivar J PaprockiCanadaElwin Sharvill PROPOSAL
Ivar D SaylorsUnited KingdomAnna Fali PROPOSAL
Darci E StensethGermanyBernardo Dominic NEGOTIATION
Mujtaba G VocelkaSpainAsiya Javayant NEGOTIATION
Jones F AmigonArgentinaIvan Magalhaes QUALIFIED
Mayumi X GlickAustraliaOnyama Limba RENEWAL
Arvin J NestleArgentinaAmy Elsner QUALIFIED
Sinclair L WhobreyRussiaIoni Bowcher NEGOTIATION
Arvin P PoquetteIndiaStephen Shaw NEW
Cody J AlbaresSpainIvan Magalhaes PROPOSAL
Maria J GillianBrazilAmy Elsner NEGOTIATION
Leja C GillianCanadaIoni Bowcher NEW
Salvatore M BriddickBrazilOnyama Limba PROPOSAL
Nicolas S FerenczBrazilBernardo Dominic NEW
Aruna R StensethBrazilIoni Bowcher NEW
Chavez A MaletCanadaAmy Elsner NEW
Jefferson A FlosiGermanyAmy Elsner NEW
Maria Z ChuiArgentinaIoni Bowcher NEW
Faith D SchemmerUnited KingdomAnna Fali RENEWAL
Arvin M ShinkoItalyOnyama Limba PROPOSAL
Costa S CampainAustraliaBernardo Dominic RENEWAL
Francesco Y MacleadAustraliaAnna Fali PROPOSAL
Claire E RutaIndiaElwin Sharvill QUALIFIED
Silvio J PerinAustraliaIvan Magalhaes PROPOSAL
Kaitlin T CaudyCanadaStephen Shaw UNQUALIFIED
Mayumi O OldroydGermanyAnna Fali PROPOSAL
Alejandro U InouyeArgentinaStephen Shaw RENEWAL
Aditya T SlusarskiJapanOnyama Limba QUALIFIED
Johnson O ShinkoJapanXuxue Feng NEW
Silvio D OldroydBrazilXuxue Feng UNQUALIFIED
David B GlickSpainBernardo Dominic PROPOSAL
James J MacleadItalyOnyama Limba NEW
Morrow Z WhobreyAustraliaAsiya Javayant UNQUALIFIED
Julie X ShinkoIndiaElwin Sharvill RENEWAL
Sinclair K WhobreyAustraliaOnyama Limba NEW
Misaki D GillianBrazilIoni Bowcher NEW
Kadeem D DilliardSpainAsiya Javayant UNQUALIFIED
Misaki C RulapaughAustraliaAsiya Javayant PROPOSAL
Arvin L VocelkaGermanyAsiya Javayant NEGOTIATION
Julie N CaudyGermanyBernardo Dominic NEGOTIATION
Tony Q DarakjyItalyXuxue Feng RENEWAL
Stacey X AlbaresJapanStephen Shaw NEGOTIATION
Nicolas T InouyeGermanyIoni Bowcher QUALIFIED
Maria X RulapaughJapanAsiya Javayant NEGOTIATION
Aruna J MaletAustraliaIvan Magalhaes NEGOTIATION
Morrow K ShinkoBrazilElwin Sharvill PROPOSAL
Leja Z CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Antonio T RoysterBrazilAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya C AlbaresUnited KingdomAnna Fali UNQUALIFIED
Clifford Z FlosiRussiaAmy Elsner NEGOTIATION
Claire U SergiBrazilAnna Fali NEW
Rodrigues B SchemmerSpainElwin Sharvill NEW
Stacey U MaletUnited KingdomAnna Fali RENEWAL
Nicolas A MaletJapanAnna Fali UNQUALIFIED
Aruna I OldroydGermanyAmy Elsner RENEWAL
Juan B RulapaughArgentinaAmy Elsner NEW
David N SlusarskiItalyAmy Elsner RENEWAL
Ricardo S GillianIndiaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio G BowleyUnited Kingdom2026-07-21Rangoni Of Florence NEGOTIATION24Ioni Bowcher
1001Mayumi L DoeSpain2026-07-10Commercial Press NEGOTIATION60Elwin Sharvill
1002Octavia N ShinkoGermany2026-07-29Dorl, James J Esq PROPOSAL43Bernardo Dominic
1003Juan J SaylorsAustralia2026-07-09Buckley Miller Wright QUALIFIED52Elwin Sharvill
1004Morrow J StockhamItaly2026-07-09Truhlar And Truhlar Attys NEW30Anna Fali
1005Jefferson H MorascaAustralia2026-07-08Benton, John B Jr PROPOSAL85Bernardo Dominic
1006Aruna T RulapaughArgentina2026-07-26Benton, John B Jr PROPOSAL86Anna Fali
1007Sinclair O DarakjyGermany2026-07-16Chanay, Jeffrey A Esq QUALIFIED41Anna Fali
1008Kadeem P MaletCanada2026-07-04Chanay, Jeffrey A Esq QUALIFIED41Anna Fali
1009Morrow M SlusarskiIndia2026-07-12Chemel, James L Cpa PROPOSAL76Bernardo Dominic
1010Kadeem U GlickGermany2026-07-18Chanay, Jeffrey A Esq NEW28Bernardo Dominic
1011Clifford B OldroydRussia2026-07-16Chanay, Jeffrey A Esq PROPOSAL11Amy Elsner
1012Aditya H WaycottBrazil2026-07-11Rangoni Of Florence PROPOSAL39Stephen Shaw
1013Sinclair Z CampainUnited Kingdom2026-07-25Dorl, James J Esq UNQUALIFIED47Amy Elsner
1014Leja E RoysterCanada2026-07-03Buckley Miller Wright NEGOTIATION89Stephen Shaw
1015Maria H TollnerGermany2026-07-09Feiner Bros UNQUALIFIED19Amy Elsner
1016Chavez L SlusarskiIndia2026-07-23King, Christopher A Esq UNQUALIFIED21Anna Fali
1017Stacey U MaletBrazil2026-07-11Buckley Miller Wright NEW12Ioni Bowcher
1018Alejandro S GlickJapan2026-07-22Morlong Associates QUALIFIED45Xuxue Feng
1019Rodrigues D WhobreySpain2026-07-10Buckley Miller Wright NEGOTIATION62Anna Fali
1020Munro T StensethIndia2026-07-07King, Christopher A Esq RENEWAL24Ioni Bowcher
1021Greenwood O RoysterUnited Kingdom2026-07-24Truhlar And Truhlar Attys NEGOTIATION33Elwin Sharvill
1022Ashley P FollerCanada2026-07-20King, Christopher A Esq RENEWAL24Asiya Javayant
1023Silvio L RimCanada2026-07-08Feltz Printing Service NEGOTIATION28Xuxue Feng
1024Mayumi T DarakjySpain2026-07-24Dorl, James J Esq RENEWAL53Ivan Magalhaes
1025Faith O PaprockiItaly2026-07-20Dorl, James J Esq NEW94Amy Elsner
1026Ashley E MacleadAustralia2026-07-11Chemel, James L Cpa PROPOSAL62Elwin Sharvill
1027Greenwood C ShinkoItaly2026-07-22Truhlar And Truhlar Attys NEW11Bernardo Dominic
1028Claire K StensethAustralia2026-07-29Morlong Associates RENEWAL12Anna Fali
1029Rodrigues M NestleRussia2026-07-16Dorl, James J Esq NEW52Xuxue Feng
1030Leja Y CaudyIndia2026-07-07Chemel, James L Cpa NEW26Onyama Limba
1031Johnson U BologniaBrazil2026-07-18Benton, John B Jr PROPOSAL11Ioni Bowcher
1032Izzy X GauchoArgentina2026-07-02Buckley Miller Wright RENEWAL41Stephen Shaw
1033Jeanfrancois O RimGermany2026-07-14King, Christopher A Esq NEGOTIATION48Onyama Limba
1034David Y KuskoGermany2026-07-01King, Christopher A Esq QUALIFIED35Ioni Bowcher
1035Stacey U VocelkaRussia2026-06-30Feltz Printing Service NEW32Anna Fali
1036Jennifer M MaletUnited Kingdom2026-07-29Printing Dimensions RENEWAL46Xuxue Feng
1037Aruna T CaudySpain2026-07-01Feiner Bros NEGOTIATION32Ivan Magalhaes
1038Chavez P AlbaresBrazil2026-07-16Feltz Printing Service PROPOSAL10Elwin Sharvill
1039Misaki I KuskoUnited Kingdom2026-07-21Rousseaux, Michael Esq UNQUALIFIED18Ivan Magalhaes
1040Clifford Q CaldareraJapan2026-07-18Chapman, Ross E Esq NEGOTIATION67Ioni Bowcher
1041Octavia D AmigonRussia2026-07-17Rangoni Of Florence PROPOSAL41Anna Fali
1042Faith Q MarrierCanada2026-07-16Morlong Associates UNQUALIFIED14Anna Fali
1043Salvatore P BologniaBrazil2026-07-01Dorl, James J Esq RENEWAL2Bernardo Dominic
1044Aruna X CaldareraFrance2026-07-24Chapman, Ross E Esq QUALIFIED57Stephen Shaw
1045Antonio R RutaBrazil2026-07-11Morlong Associates NEGOTIATION43Onyama Limba
1046Smith Z SergiJapan2026-07-12Dorl, James J Esq UNQUALIFIED39Amy Elsner
1047Izzy D KuskoRussia2026-07-29Rangoni Of Florence QUALIFIED60Bernardo Dominic
1048Izzy O PaprockiItaly2026-07-07Feltz Printing Service UNQUALIFIED83Bernardo Dominic
1049Adams U ButtAustralia2026-07-25Buckley Miller Wright RENEWAL0Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo E RulapaughBrazilAmy Elsner QUALIFIED
Alejandro M DilliardAustraliaAmy Elsner UNQUALIFIED
Aika F FollerJapanAnna Fali PROPOSAL
Adams L SaylorsBrazilStephen Shaw NEW
Greenwood M RulapaughRussiaStephen Shaw NEW
Jeanfrancois M PerinItalyOnyama Limba QUALIFIED
Aruna I GauchoUnited KingdomAmy Elsner NEW
Alejandro T NestleCanadaIvan Magalhaes UNQUALIFIED
Maisha W FerenczRussiaBernardo Dominic RENEWAL
Tony Y CaudyUnited KingdomStephen Shaw QUALIFIED
Octavia S ChuiAustraliaBernardo Dominic NEGOTIATION
Leja L RutaJapanIvan Magalhaes RENEWAL
Sinclair T StockhamSpainOnyama Limba NEW
Morrow B IturbideAustraliaIvan Magalhaes PROPOSAL
Alejandro N DoeUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois N SchemmerCanadaBernardo Dominic NEGOTIATION
Jones V StockhamUnited KingdomXuxue Feng UNQUALIFIED
Kadeem H GlickIndiaStephen Shaw NEW
Silvio J PoquetteJapanIoni Bowcher PROPOSAL
Emily D MaletCanadaOnyama Limba PROPOSAL
Jefferson F GarufiBrazilOnyama Limba NEGOTIATION
Isabel K VenereBrazilAmy Elsner UNQUALIFIED
Aruna U RutaCanadaIvan Magalhaes QUALIFIED
Francesco H IturbideIndiaIoni Bowcher NEW
Faith S RutaFranceIvan Magalhaes PROPOSAL
Arvin T DilliardUnited KingdomXuxue Feng QUALIFIED
James B VocelkaCanadaBernardo Dominic PROPOSAL
Octavia M StensethArgentinaXuxue Feng RENEWAL
Darci X WaycottAustraliaBernardo Dominic NEGOTIATION
Darci A ButtItalyAmy Elsner PROPOSAL
Mujtaba M BowleyRussiaIoni Bowcher NEW
Deepesh P PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Wickens U PaprockiFranceElwin Sharvill PROPOSAL
Tony F BriddickGermanyStephen Shaw NEGOTIATION
Jefferson X KuskoAustraliaXuxue Feng NEGOTIATION
Greenwood F MacleadSpainStephen Shaw UNQUALIFIED
Jones L BriddickRussiaStephen Shaw QUALIFIED
Maisha I MorascaArgentinaXuxue Feng UNQUALIFIED
Octavia P MaletJapanIvan Magalhaes PROPOSAL
Misaki Z ButtUnited KingdomElwin Sharvill NEGOTIATION
Juan C InouyeIndiaOnyama Limba NEW
Jones Y VenereJapanIoni Bowcher UNQUALIFIED
Mujtaba C MorascaJapanBernardo Dominic NEGOTIATION
Smith T StensethAustraliaBernardo Dominic NEW
Mujtaba B FigeroaIndiaAmy Elsner RENEWAL
Leon A CampainArgentinaElwin Sharvill PROPOSAL
Silvio A DilliardBrazilStephen Shaw UNQUALIFIED
Tony S FerenczUnited KingdomAsiya Javayant NEGOTIATION
Clifford E CampainGermanyStephen Shaw NEGOTIATION
Arvin C OstroskyArgentinaOnyama Limba NEGOTIATION
Frozen Columns
Name
Isabel T Briddick
James S Whobrey
Juan U Paprocki
Greenwood T Chui
Murillo R Butt
Isabel P Venere
Aika L Schemmer
Leon T Rim
Tony L Bowley
Greenwood D Ferencz
Chavez R Waycott
Jefferson Q Nestle
Morrow K Bolognia
Octavia X Darakjy
Antonio G Shinko
Stacey Q Nestle
Emily W Briddick
Jeanfrancois H Rim
Ashley B Rulapaugh
Jones W Sergi
Adams D Foller
Octavia D Briddick
Ashley S Glick
Sinclair D Caldarera
Emily G Saylors
Jones H Stenseth
Mujtaba T Wieser
Emily Z Bolognia
Alejandro Q Caldarera
Darci U Albares
Alejandro Q Doe
Ivar Z Schemmer
Antonio Y Rim
Stacey E Foller
David I Caudy
Salvatore N Nicka
Alejandro N Figeroa
Jefferson U Malet
Juan G Butt
Mayumi X Inouye
Ricardo A Stockham
Chavez T Bowley
Sinclair W Perin
Antonio B Bowley
Juan D Bowley
Leja S Maclead
Jones W Caudy
Izzy Y Malet
Salvatore Y Tollner
Francesco G Nestle
IdCountryDate
1000Spain2026-07-14
1001Spain2026-07-29
1002Spain2026-07-11
1003Spain2026-07-17
1004India2026-07-16
1005Australia2026-07-17
1006Spain2026-07-19
1007Japan2026-07-20
1008United Kingdom2026-07-27
1009Australia2026-07-04
1010Australia2026-07-03
1011France2026-07-22
1012Italy2026-07-15
1013Canada2026-07-29
1014Germany2026-07-03
1015Russia2026-07-19
1016France2026-07-25
1017India2026-07-06
1018Spain2026-07-08
1019Argentina2026-07-14
1020Germany2026-07-13
1021Argentina2026-07-16
1022Italy2026-07-03
1023France2026-07-18
1024Italy2026-07-18
1025Brazil2026-07-26
1026France2026-07-03
1027United Kingdom2026-07-15
1028Australia2026-07-18
1029Germany2026-07-16
1030Germany2026-07-18
1031Canada2026-07-07
1032United Kingdom2026-07-10
1033Russia2026-06-30
1034Brazil2026-07-28
1035United Kingdom2026-07-10
1036Germany2026-07-10
1037Italy2026-07-16
1038Italy2026-07-20
1039India2026-07-28
1040India2026-07-19
1041Germany2026-07-01
1042Brazil2026-07-02
1043Germany2026-07-09
1044Australia2026-07-27
1045India2026-07-13
1046Italy2026-07-11
1047Spain2026-07-24
1048Spain2026-07-05
1049Canada2026-07-16

On-Demand Data

NameIdCountryDate
Tony H Waycott1000Russia2026-07-11
Aruna E Foller1001France2026-07-02
Adams U Vocelka1002India2026-07-04
Francesco D Rim1003Spain2026-07-22
Deepesh I Foller1004Germany2026-07-08
Misaki T Waycott1005Italy2026-07-01
Emily I Sergi1006Germany2026-07-14
Adams X Nestle1007Spain2026-07-24
Juan C Sergi1008Japan2026-07-03
Francesco Y Malet1009Brazil2026-07-25
Salvatore L Waycott1010Australia2026-07-14
Leon B Iturbide1011Germany2026-07-01
David O Iturbide1012Australia2026-07-07
Wickens W Poquette1013United Kingdom2026-07-16
Aruna T Venere1014Brazil2026-07-10
Murillo B Oldroyd1015France2026-07-28
Johnson V Paprocki1016France2026-07-20
Julie W Vocelka1017Japan2026-07-07
Juan E Bolognia1018Italy2026-07-21
Tony B Ostrosky1019Italy2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa F GlickItalyAmy Elsner PROPOSAL
Darci X StensethSpainOnyama Limba UNQUALIFIED
Aruna L SaylorsSpainElwin Sharvill NEGOTIATION
Misaki K TollnerIndiaXuxue Feng PROPOSAL
Darci F RimFranceElwin Sharvill NEGOTIATION
Adams N MorascaArgentinaElwin Sharvill NEGOTIATION
Ashley D WhobreyJapanIoni Bowcher NEGOTIATION
Izzy C AmigonFranceIoni Bowcher NEGOTIATION
Salvatore R GillianUnited KingdomAmy Elsner UNQUALIFIED
Arvin M CaldareraBrazilXuxue Feng PROPOSAL
Mujtaba I CaldareraFranceOnyama Limba QUALIFIED
Jennifer C RulapaughArgentinaOnyama Limba RENEWAL
Octavia F FollerIndiaXuxue Feng NEGOTIATION
Mayumi M BriddickGermanyAsiya Javayant NEGOTIATION
Alejandro Q NestleFranceAnna Fali NEGOTIATION
Jennifer T KolmetzFranceAnna Fali RENEWAL
Morrow H MacleadItalyIoni Bowcher QUALIFIED
Silvio G StockhamGermanyAmy Elsner UNQUALIFIED
Morrow A RutaIndiaXuxue Feng NEW
Munro F SergiSpainAnna Fali UNQUALIFIED
Tony D DilliardIndiaAmy Elsner RENEWAL
Maisha M PoquetteArgentinaXuxue Feng UNQUALIFIED
Juan W BologniaCanadaIvan Magalhaes NEW
Wickens E PoquetteAustraliaIoni Bowcher NEGOTIATION
Misaki J SergiAustraliaBernardo Dominic PROPOSAL
Kaitlin O InouyeSpainStephen Shaw PROPOSAL
Stacey G PaprockiGermanyIoni Bowcher PROPOSAL
David O BologniaBrazilElwin Sharvill UNQUALIFIED
Greenwood Q IturbideArgentinaIoni Bowcher PROPOSAL
Johnson A StockhamGermanyAmy Elsner NEW
Darci C FerenczFranceAsiya Javayant UNQUALIFIED
Maisha B SchemmerUnited KingdomAnna Fali QUALIFIED
Faith P CampainItalyBernardo Dominic PROPOSAL
Wickens R RimGermanyStephen Shaw NEW
Tony N MaletIndiaOnyama Limba QUALIFIED
Juan U OstroskyBrazilIoni Bowcher PROPOSAL
Ashley B PaprockiGermanyAmy Elsner NEW
Claire O RimGermanyAsiya Javayant NEW
Morrow I SaylorsJapanIoni Bowcher NEGOTIATION
Munro T PerinArgentinaAnna Fali NEW

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