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
Jennifer G PoquetteCanadaAmy Elsner PROPOSAL
Juan V RutaCanadaAsiya Javayant NEGOTIATION
Ashley B SaylorsItalyXuxue Feng UNQUALIFIED
Francesco H TollnerItalyOnyama Limba RENEWAL
Tony T CampainUnited KingdomStephen Shaw UNQUALIFIED
Wickens R AlbaresRussiaStephen Shaw RENEWAL
Clifford C DilliardGermanyStephen Shaw NEW
Aditya M MaletUnited KingdomIoni Bowcher RENEWAL
Costa G MacleadIndiaIoni Bowcher NEW
Kaitlin Z FigeroaIndiaAsiya Javayant UNQUALIFIED
Stacey D GauchoFranceStephen Shaw PROPOSAL
Silvio G CaldareraAustraliaAmy Elsner UNQUALIFIED
Mujtaba P OldroydIndiaAsiya Javayant NEGOTIATION
Stacey N NestleJapanElwin Sharvill PROPOSAL
Leja L SaylorsFranceIoni Bowcher UNQUALIFIED
Julie L MaletRussiaAmy Elsner RENEWAL
Maria Z GillianBrazilOnyama Limba NEW
Octavia I RulapaughFranceElwin Sharvill UNQUALIFIED
Morrow J BriddickGermanyStephen Shaw RENEWAL
Octavia I StensethBrazilIvan Magalhaes PROPOSAL
Tony E WhobreySpainStephen Shaw UNQUALIFIED
Antonio Z FollerUnited KingdomOnyama Limba UNQUALIFIED
Ashley O RutaSpainOnyama Limba QUALIFIED
Leja L RutaBrazilIvan Magalhaes PROPOSAL
Kaitlin V MaletAustraliaStephen Shaw NEGOTIATION
Maria A SergiArgentinaAmy Elsner RENEWAL
Ricardo H DilliardArgentinaIvan Magalhaes NEW
Darci Y StockhamBrazilElwin Sharvill NEGOTIATION
Nicolas M IturbideRussiaAnna Fali RENEWAL
Jennifer K CaudyFranceOnyama Limba UNQUALIFIED
Leon I GlickSpainXuxue Feng QUALIFIED
Rodrigues W OldroydCanadaOnyama Limba RENEWAL
Leon A WaycottAustraliaAmy Elsner PROPOSAL
Nicolas R DarakjyArgentinaBernardo Dominic NEW
Misaki E MaletUnited KingdomAnna Fali QUALIFIED
Alejandro T OstroskyGermanyXuxue Feng NEW
Morrow I ChuiUnited KingdomIoni Bowcher NEW
Rodrigues O IturbideSpainXuxue Feng UNQUALIFIED
Deepesh D IturbideArgentinaAsiya Javayant QUALIFIED
Emily G GlickGermanyAmy Elsner QUALIFIED
Aditya G TollnerUnited KingdomIoni Bowcher NEW
Izzy N CaudyArgentinaStephen Shaw NEGOTIATION
Jennifer Y DarakjyItalyIoni Bowcher UNQUALIFIED
Costa F TollnerJapanAmy Elsner PROPOSAL
Smith X RutaFranceIvan Magalhaes QUALIFIED
Costa A MarrierBrazilIoni Bowcher RENEWAL
Murillo S SaylorsCanadaXuxue Feng NEW
Aruna Z VocelkaSpainXuxue Feng RENEWAL
Arvin T InouyeRussiaAnna Fali UNQUALIFIED
Chavez T StensethAustraliaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja U BowleyJapanIvan Magalhaes PROPOSAL
Leon W TollnerCanadaAnna Fali PROPOSAL
Adams Z OstroskyIndiaAmy Elsner UNQUALIFIED
Smith Z WhobreyUnited KingdomElwin Sharvill NEW
Deepesh Q FollerUnited KingdomBernardo Dominic NEW
Maria C BriddickGermanyStephen Shaw NEGOTIATION
Rodrigues Q FerenczArgentinaAsiya Javayant RENEWAL
Jennifer Y MarrierArgentinaStephen Shaw NEW
Ricardo G FlosiUnited KingdomIvan Magalhaes NEW
James U StensethGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin H MorascaBrazil2026-07-13Truhlar And Truhlar Attys QUALIFIED84Bernardo Dominic
1001Jeanfrancois X DoeCanada2026-07-10Chanay, Jeffrey A Esq NEW25Asiya Javayant
1002Francesco X BriddickJapan2026-07-25Buckley Miller Wright PROPOSAL97Elwin Sharvill
1003Ashley H StockhamSpain2026-07-27Rousseaux, Michael Esq PROPOSAL6Ivan Magalhaes
1004Chavez Z StensethArgentina2026-07-18Morlong Associates NEW68Onyama Limba
1005Silvio H BriddickAustralia2026-07-28Rousseaux, Michael Esq QUALIFIED39Asiya Javayant
1006Salvatore D TollnerCanada2026-07-14Benton, John B Jr PROPOSAL1Asiya Javayant
1007Aditya K GillianIndia2026-08-08Morlong Associates NEGOTIATION25Stephen Shaw
1008Ivar L BologniaUnited Kingdom2026-07-24Morlong Associates PROPOSAL12Bernardo Dominic
1009Stacey P RutaGermany2026-07-12Printing Dimensions UNQUALIFIED30Stephen Shaw
1010Misaki O RutaRussia2026-08-08Buckley Miller Wright QUALIFIED71Bernardo Dominic
1011Silvio X FigeroaCanada2026-07-15Rousseaux, Michael Esq UNQUALIFIED86Onyama Limba
1012Faith L StensethItaly2026-08-06Commercial Press QUALIFIED22Stephen Shaw
1013Wickens I BologniaRussia2026-07-19Dorl, James J Esq NEW88Bernardo Dominic
1014Aika K AmigonArgentina2026-08-07Truhlar And Truhlar Attys NEW52Amy Elsner
1015Arvin W TollnerJapan2026-08-03Rousseaux, Michael Esq NEW8Amy Elsner
1016Adams A InouyeBrazil2026-07-28Truhlar And Truhlar Attys NEW25Anna Fali
1017Jones T SergiAustralia2026-07-28Truhlar And Truhlar Attys QUALIFIED14Bernardo Dominic
1018Ivar N RulapaughAustralia2026-07-19Chanay, Jeffrey A Esq RENEWAL82Bernardo Dominic
1019Juan G VenereCanada2026-07-15Dorl, James J Esq PROPOSAL22Amy Elsner
1020Julie G CampainBrazil2026-08-02Commercial Press NEW18Asiya Javayant
1021Tony S NickaSpain2026-07-15Printing Dimensions NEW84Bernardo Dominic
1022David I StockhamRussia2026-08-05Feiner Bros NEW64Ioni Bowcher
1023Rodrigues Z CampainAustralia2026-07-31Buckley Miller Wright NEGOTIATION59Ioni Bowcher
1024Maisha R DoeAustralia2026-07-26Rangoni Of Florence NEW36Anna Fali
1025Stacey G DoeItaly2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED24Ioni Bowcher
1026Cody C PaprockiAustralia2026-07-15Feltz Printing Service QUALIFIED25Xuxue Feng
1027Tony Y ButtJapan2026-08-01Rousseaux, Michael Esq NEW40Bernardo Dominic
1028Deepesh H MacleadBrazil2026-07-25Dorl, James J Esq RENEWAL16Elwin Sharvill
1029Alejandro P FollerRussia2026-07-22Rangoni Of Florence PROPOSAL82Stephen Shaw
1030Nicolas J NestleItaly2026-08-07Buckley Miller Wright RENEWAL16Ioni Bowcher
1031Tony I CaudyGermany2026-07-28Rangoni Of Florence UNQUALIFIED45Bernardo Dominic
1032Darci H SlusarskiFrance2026-07-28Rousseaux, Michael Esq UNQUALIFIED36Amy Elsner
1033Arvin Z MorascaRussia2026-07-13Commercial Press NEW1Bernardo Dominic
1034Julie B OldroydFrance2026-07-13Printing Dimensions NEGOTIATION40Ivan Magalhaes
1035Jefferson V SaylorsArgentina2026-07-20Feltz Printing Service NEGOTIATION84Xuxue Feng
1036Misaki L KuskoArgentina2026-07-24Printing Dimensions QUALIFIED17Stephen Shaw
1037Wickens X RulapaughGermany2026-07-10Benton, John B Jr NEGOTIATION35Elwin Sharvill
1038James T MarrierAustralia2026-07-16Printing Dimensions UNQUALIFIED44Asiya Javayant
1039Greenwood V AlbaresArgentina2026-07-26Rangoni Of Florence NEW68Elwin Sharvill
1040Rodrigues B FlosiAustralia2026-07-18Rangoni Of Florence PROPOSAL75Bernardo Dominic
1041Rodrigues J OstroskyFrance2026-07-21Feltz Printing Service PROPOSAL7Elwin Sharvill
1042Clifford N StockhamArgentina2026-07-29Morlong Associates RENEWAL58Elwin Sharvill
1043Smith A MorascaJapan2026-07-28Chanay, Jeffrey A Esq QUALIFIED24Ioni Bowcher
1044Aika Q SaylorsJapan2026-07-26Dorl, James J Esq QUALIFIED21Stephen Shaw
1045Jennifer T FerenczCanada2026-07-25Rousseaux, Michael Esq UNQUALIFIED59Asiya Javayant
1046Arvin V MorascaAustralia2026-07-18Chemel, James L Cpa RENEWAL6Asiya Javayant
1047Deepesh O DarakjyFrance2026-07-18Chemel, James L Cpa NEGOTIATION67Bernardo Dominic
1048David W AmigonArgentina2026-07-28Chapman, Ross E Esq NEW32Anna Fali
1049Emily G StockhamFrance2026-07-27Chanay, Jeffrey A Esq NEGOTIATION71Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan Y PoquetteJapanXuxue Feng QUALIFIED
Adams O StockhamCanadaBernardo Dominic RENEWAL
Jeanfrancois G DarakjyGermanyAnna Fali PROPOSAL
Murillo S RutaAustraliaAmy Elsner UNQUALIFIED
Antonio G DoeArgentinaIvan Magalhaes PROPOSAL
Clifford B MacleadJapanStephen Shaw QUALIFIED
Jones S NestleAustraliaElwin Sharvill RENEWAL
Clifford W WieserGermanyElwin Sharvill QUALIFIED
Murillo E VenereRussiaStephen Shaw QUALIFIED
Isabel Q MorascaItalyStephen Shaw UNQUALIFIED
Ivar M BowleyCanadaXuxue Feng QUALIFIED
Costa U AmigonGermanyAmy Elsner NEW
Mayumi J OstroskyGermanyAmy Elsner NEGOTIATION
Morrow I CampainSpainIoni Bowcher QUALIFIED
Jones F IturbideRussiaAmy Elsner PROPOSAL
Aruna K OstroskyBrazilStephen Shaw QUALIFIED
Deepesh H PaprockiSpainIvan Magalhaes QUALIFIED
Ashley N StensethBrazilAmy Elsner UNQUALIFIED
Deepesh B BowleyRussiaStephen Shaw NEGOTIATION
Mujtaba Q WieserRussiaIvan Magalhaes PROPOSAL
Deepesh A DarakjyJapanXuxue Feng NEW
Leja O NestleFranceAmy Elsner NEW
Leon R CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Darci W FigeroaAustraliaBernardo Dominic RENEWAL
Darci A GillianRussiaXuxue Feng NEW
Ivar L ChuiAustraliaIoni Bowcher PROPOSAL
Leja H FollerRussiaBernardo Dominic NEGOTIATION
Antonio J FerenczBrazilElwin Sharvill UNQUALIFIED
Maisha J CampainFranceAsiya Javayant QUALIFIED
Alejandro D IturbideGermanyIoni Bowcher UNQUALIFIED
Clifford V GlickAustraliaAsiya Javayant RENEWAL
Munro Z AmigonSpainElwin Sharvill RENEWAL
Mujtaba F WaycottBrazilBernardo Dominic NEGOTIATION
Alejandro N MaletRussiaStephen Shaw NEGOTIATION
Smith E GauchoUnited KingdomOnyama Limba NEW
Antonio N KuskoSpainAmy Elsner NEGOTIATION
Tony N WaycottCanadaIoni Bowcher QUALIFIED
Jeanfrancois K BowleyItalyElwin Sharvill UNQUALIFIED
Maisha X RoysterIndiaIoni Bowcher NEW
Alejandro X SergiCanadaStephen Shaw QUALIFIED
Izzy B MaletArgentinaIoni Bowcher RENEWAL
Alejandro E StockhamFranceBernardo Dominic QUALIFIED
Jefferson Z GillianBrazilStephen Shaw UNQUALIFIED
Johnson A WieserGermanyAmy Elsner NEGOTIATION
Smith I OstroskyBrazilIoni Bowcher PROPOSAL
Darci R OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer G ChuiSpainOnyama Limba RENEWAL
Maria D GillianGermanyIvan Magalhaes NEGOTIATION
Greenwood J GlickAustraliaAsiya Javayant UNQUALIFIED
Cody L BriddickAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Silvio W Tollner
Emily G Venere
Jennifer G Ruta
Chavez P Wieser
Cody C Caudy
Greenwood F Malet
Isabel O Ostrosky
Arvin V Foller
Misaki R Nestle
Mayumi M Ferencz
Mujtaba F Royster
Maria E Amigon
Stacey A Oldroyd
Jones V Gaucho
Maisha Y Vocelka
Isabel I Wieser
Jennifer Z Gaucho
Aika M Gaucho
Costa N Malet
Isabel I Doe
Clifford I Tollner
Misaki U Shinko
Izzy V Sergi
Darci N Amigon
Francesco R Figeroa
Francesco S Marrier
Murillo I Malet
Aditya D Flosi
Aruna W Rulapaugh
Mayumi W Nicka
Misaki V Iturbide
Salvatore R Ruta
Ashley Z Nestle
Izzy P Saylors
Clifford K Waycott
Arvin S Inouye
Faith G Ruta
Faith W Marrier
Silvio R Slusarski
Jeanfrancois N Caudy
Faith W Glick
Costa A Perin
Francesco T Garufi
Jeanfrancois L Wieser
Aika J Rulapaugh
Tony P Waycott
Juan N Poquette
Johnson N Stockham
Mayumi Q Inouye
Octavia Z Vocelka
IdCountryDate
1000Argentina2026-07-15
1001Japan2026-07-19
1002Italy2026-08-02
1003Japan2026-07-12
1004India2026-07-12
1005India2026-07-17
1006Brazil2026-07-23
1007Russia2026-07-19
1008Australia2026-07-17
1009Japan2026-07-13
1010France2026-07-23
1011United Kingdom2026-08-08
1012Australia2026-08-05
1013France2026-07-16
1014Russia2026-07-17
1015Canada2026-07-18
1016Russia2026-07-14
1017Spain2026-07-23
1018Japan2026-07-16
1019Italy2026-07-24
1020Japan2026-07-22
1021Argentina2026-07-21
1022Italy2026-07-10
1023Australia2026-07-12
1024United Kingdom2026-08-03
1025Japan2026-08-05
1026Brazil2026-08-03
1027United Kingdom2026-07-16
1028Canada2026-07-17
1029Brazil2026-08-08
1030France2026-07-21
1031Russia2026-07-19
1032Germany2026-07-24
1033Spain2026-07-21
1034Spain2026-07-15
1035France2026-08-07
1036Spain2026-08-01
1037Japan2026-07-13
1038Australia2026-07-25
1039Australia2026-08-06
1040Argentina2026-08-04
1041Russia2026-08-08
1042Germany2026-07-22
1043Argentina2026-08-04
1044Brazil2026-07-14
1045Australia2026-08-05
1046Japan2026-08-03
1047United Kingdom2026-07-29
1048Brazil2026-08-01
1049Canada2026-08-03

On-Demand Data

NameIdCountryDate
Sinclair X Wieser1000Germany2026-08-06
Smith H Sergi1001Brazil2026-07-30
Maria D Nestle1002Argentina2026-08-08
Izzy T Whobrey1003India2026-08-06
David U Caldarera1004India2026-08-02
Faith P Chui1005Brazil2026-07-14
Morrow G Schemmer1006India2026-07-29
Costa Q Oldroyd1007France2026-07-21
Ashley M Dilliard1008Brazil2026-07-12
Chavez Z Gaucho1009India2026-07-31
Smith G Campain1010Italy2026-08-02
Nicolas E Briddick1011Australia2026-07-16
Ivar T Waycott1012Japan2026-08-07
Jeanfrancois V Ferencz1013Canada2026-08-07
Jones C Maclead1014Canada2026-07-13
Morrow M Albares1015France2026-07-11
Misaki P Figeroa1016France2026-08-06
Kadeem N Flosi1017Russia2026-07-15
Alejandro F Albares1018Japan2026-07-19
Murillo P Rim1019Canada2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci J GlickJapanAsiya Javayant NEGOTIATION
Jefferson R NickaUnited KingdomBernardo Dominic PROPOSAL
Munro U InouyeArgentinaElwin Sharvill RENEWAL
Stacey Y CampainRussiaAsiya Javayant QUALIFIED
Darci A FerenczBrazilAnna Fali RENEWAL
Smith P MarrierGermanyIvan Magalhaes NEGOTIATION
Jones P AmigonRussiaStephen Shaw RENEWAL
Maisha R GauchoItalyElwin Sharvill RENEWAL
Maria V MarrierCanadaIvan Magalhaes PROPOSAL
Julie O SchemmerCanadaIvan Magalhaes RENEWAL
Isabel I CaldareraCanadaAmy Elsner NEW
Faith I SchemmerIndiaIoni Bowcher NEGOTIATION
Jennifer Y ShinkoUnited KingdomXuxue Feng RENEWAL
Chavez R AmigonItalyElwin Sharvill QUALIFIED
Tony D FigeroaGermanyAsiya Javayant UNQUALIFIED
Chavez H StockhamItalyAnna Fali RENEWAL
Octavia Q StensethFranceAnna Fali QUALIFIED
Aika G FlosiUnited KingdomOnyama Limba UNQUALIFIED
Maisha R NickaBrazilBernardo Dominic QUALIFIED
Alejandro F SchemmerItalyStephen Shaw NEW
Octavia E WaycottUnited KingdomAmy Elsner QUALIFIED
Misaki I SlusarskiBrazilStephen Shaw NEW
Smith Y GlickBrazilElwin Sharvill UNQUALIFIED
Jefferson C GauchoItalyIoni Bowcher PROPOSAL
Kaitlin D WaycottRussiaIoni Bowcher NEW
Maria A WieserJapanAsiya Javayant QUALIFIED
Jeanfrancois C FerenczIndiaAsiya Javayant PROPOSAL
Ivar P MorascaItalyAsiya Javayant QUALIFIED
Mayumi V TollnerSpainStephen Shaw QUALIFIED
Emily A NestleSpainElwin Sharvill PROPOSAL
Maria T NickaFranceElwin Sharvill UNQUALIFIED
Julie C ChuiCanadaXuxue Feng RENEWAL
Alejandro E KolmetzFranceOnyama Limba PROPOSAL
Silvio U PoquetteBrazilElwin Sharvill PROPOSAL
Clifford V KolmetzIndiaIoni Bowcher UNQUALIFIED
Izzy Y VocelkaArgentinaOnyama Limba QUALIFIED
Leon N RoysterAustraliaElwin Sharvill NEW
Octavia S SlusarskiJapanXuxue Feng PROPOSAL
Isabel T CaudyGermanyIvan Magalhaes RENEWAL
Nicolas A ShinkoAustraliaStephen Shaw 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>