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
Octavia M DarakjyCanadaOnyama Limba UNQUALIFIED
Misaki D WhobreyUnited KingdomIvan Magalhaes RENEWAL
Wickens N TollnerBrazilAnna Fali NEW
Maisha H MorascaSpainIvan Magalhaes NEW
Jones U FlosiAustraliaOnyama Limba NEGOTIATION
Leon E AlbaresItalyOnyama Limba PROPOSAL
Cody C NestleBrazilElwin Sharvill PROPOSAL
Leja A DilliardRussiaAmy Elsner PROPOSAL
Silvio Y SchemmerAustraliaIvan Magalhaes NEGOTIATION
Rodrigues S CaudyArgentinaAsiya Javayant NEGOTIATION
Misaki O KuskoArgentinaOnyama Limba QUALIFIED
Mayumi X WhobreyBrazilXuxue Feng PROPOSAL
Rodrigues D NickaCanadaOnyama Limba NEW
Izzy F SchemmerBrazilIoni Bowcher NEGOTIATION
Smith Y KolmetzFranceElwin Sharvill PROPOSAL
Salvatore P KuskoBrazilAmy Elsner QUALIFIED
Wickens F VenereItalyXuxue Feng NEGOTIATION
Francesco F DarakjyIndiaBernardo Dominic PROPOSAL
Octavia O MaletArgentinaIoni Bowcher RENEWAL
Maisha T AmigonBrazilOnyama Limba QUALIFIED
Julie L GlickJapanStephen Shaw UNQUALIFIED
Deepesh Z GlickBrazilElwin Sharvill PROPOSAL
Ashley O WaycottFranceBernardo Dominic NEGOTIATION
Ivar C DoeArgentinaOnyama Limba PROPOSAL
Mujtaba U BowleyRussiaIoni Bowcher QUALIFIED
Aika M SergiArgentinaBernardo Dominic QUALIFIED
Alejandro D VenereSpainXuxue Feng QUALIFIED
Francesco P BologniaIndiaStephen Shaw NEW
Johnson A SlusarskiRussiaStephen Shaw NEGOTIATION
Claire A GarufiFranceXuxue Feng RENEWAL
Adams C NickaRussiaElwin Sharvill NEGOTIATION
Antonio Z SergiIndiaIoni Bowcher NEW
Tony L OstroskyJapanIvan Magalhaes NEW
Arvin R MarrierArgentinaIoni Bowcher NEW
Claire Y FollerCanadaAsiya Javayant PROPOSAL
Antonio F CaudyUnited KingdomBernardo Dominic QUALIFIED
Ashley F OstroskyRussiaBernardo Dominic RENEWAL
Arvin B InouyeSpainBernardo Dominic PROPOSAL
Faith Q WieserUnited KingdomOnyama Limba PROPOSAL
Aruna G RutaSpainAsiya Javayant UNQUALIFIED
Arvin E RoysterItalyAnna Fali UNQUALIFIED
Greenwood K KuskoRussiaAnna Fali NEW
Costa M DoeJapanAnna Fali NEW
Kadeem D VocelkaGermanyOnyama Limba PROPOSAL
Jeanfrancois F FollerFranceBernardo Dominic PROPOSAL
Jeanfrancois Z SlusarskiJapanAsiya Javayant PROPOSAL
Kaitlin O MaletCanadaOnyama Limba NEGOTIATION
Antonio U ShinkoUnited KingdomAmy Elsner RENEWAL
Johnson B MorascaJapanElwin Sharvill RENEWAL
Munro R StockhamIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Francesco J DilliardArgentinaIvan Magalhaes NEGOTIATION
Leon Q GauchoBrazilIvan Magalhaes UNQUALIFIED
Izzy J GarufiRussiaAmy Elsner RENEWAL
Leja L AmigonGermanyStephen Shaw UNQUALIFIED
Clifford H TollnerItalyAmy Elsner UNQUALIFIED
Ricardo F PoquetteFranceIoni Bowcher PROPOSAL
Jeanfrancois M GauchoGermanyElwin Sharvill NEGOTIATION
Nicolas X PaprockiArgentinaBernardo Dominic QUALIFIED
Jefferson X OstroskyIndiaIoni Bowcher NEGOTIATION
Adams H WieserAustraliaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois B ShinkoRussia2025-04-25King, Christopher A Esq QUALIFIED98Anna Fali
1001Misaki P NestleAustralia2025-05-03Chanay, Jeffrey A Esq PROPOSAL12Bernardo Dominic
1002Silvio U WaycottCanada2025-04-19Buckley Miller Wright NEGOTIATION86Xuxue Feng
1003Clifford V MacleadUnited Kingdom2025-04-16Dorl, James J Esq UNQUALIFIED13Xuxue Feng
1004Smith K ShinkoArgentina2025-04-24Chanay, Jeffrey A Esq PROPOSAL37Ioni Bowcher
1005Salvatore B VenereRussia2025-04-18King, Christopher A Esq UNQUALIFIED75Onyama Limba
1006Ivar F DarakjyAustralia2025-05-01Chanay, Jeffrey A Esq NEW30Asiya Javayant
1007Chavez P RoysterFrance2025-05-03Chanay, Jeffrey A Esq NEGOTIATION38Ioni Bowcher
1008Tony B GlickSpain2025-04-25Benton, John B Jr RENEWAL58Xuxue Feng
1009David C PerinFrance2025-05-02Printing Dimensions UNQUALIFIED33Ioni Bowcher
1010David Y RulapaughJapan2025-04-12Chapman, Ross E Esq PROPOSAL7Xuxue Feng
1011Silvio C KolmetzIndia2025-05-02Printing Dimensions NEW49Bernardo Dominic
1012Nicolas M NestleUnited Kingdom2025-04-19Rangoni Of Florence NEW99Ivan Magalhaes
1013Costa F FollerSpain2025-05-11Morlong Associates UNQUALIFIED6Anna Fali
1014Mayumi Z CaudyGermany2025-05-04Printing Dimensions NEW24Elwin Sharvill
1015Alejandro S PoquetteSpain2025-04-23Printing Dimensions UNQUALIFIED76Bernardo Dominic
1016Nicolas A AmigonSpain2025-05-09King, Christopher A Esq NEW20Anna Fali
1017Wickens I PerinItaly2025-04-20Dorl, James J Esq NEGOTIATION91Xuxue Feng
1018Tony Y NestleArgentina2025-04-24Benton, John B Jr RENEWAL61Onyama Limba
1019Murillo M GarufiJapan2025-04-14Rangoni Of Florence QUALIFIED15Bernardo Dominic
1020Johnson Y FlosiBrazil2025-05-05Feltz Printing Service PROPOSAL83Anna Fali
1021Izzy O RoysterJapan2025-04-28Printing Dimensions QUALIFIED84Xuxue Feng
1022Deepesh H KolmetzCanada2025-05-03Chanay, Jeffrey A Esq NEW64Onyama Limba
1023Kadeem N MaletIndia2025-04-15Chemel, James L Cpa NEGOTIATION78Xuxue Feng
1024Salvatore I BriddickItaly2025-04-13Morlong Associates RENEWAL76Xuxue Feng
1025Greenwood U WhobreyArgentina2025-05-10Buckley Miller Wright UNQUALIFIED15Elwin Sharvill
1026Aruna I MaletSpain2025-05-06King, Christopher A Esq UNQUALIFIED99Ivan Magalhaes
1027Ivar C VenereBrazil2025-04-13Rangoni Of Florence QUALIFIED95Amy Elsner
1028Claire Q SlusarskiBrazil2025-05-11Chapman, Ross E Esq RENEWAL73Asiya Javayant
1029Rodrigues Q SergiUnited Kingdom2025-05-11Chemel, James L Cpa UNQUALIFIED70Bernardo Dominic
1030Costa G GlickItaly2025-04-12Truhlar And Truhlar Attys RENEWAL77Asiya Javayant
1031Isabel T KolmetzFrance2025-04-27Truhlar And Truhlar Attys QUALIFIED36Anna Fali
1032Izzy J MacleadCanada2025-05-02Chemel, James L Cpa UNQUALIFIED69Xuxue Feng
1033Aruna L RulapaughFrance2025-05-05Morlong Associates QUALIFIED98Onyama Limba
1034Kadeem G CaudySpain2025-04-14Morlong Associates QUALIFIED57Elwin Sharvill
1035Munro K PaprockiGermany2025-04-23King, Christopher A Esq NEW58Onyama Limba
1036Antonio H GarufiItaly2025-04-13Rousseaux, Michael Esq NEGOTIATION91Asiya Javayant
1037Salvatore R NestleFrance2025-05-01Feiner Bros UNQUALIFIED77Amy Elsner
1038Emily Y IturbideArgentina2025-04-27Rangoni Of Florence PROPOSAL30Stephen Shaw
1039Jennifer Q WhobreyArgentina2025-04-21Chapman, Ross E Esq UNQUALIFIED6Onyama Limba
1040Izzy Y RutaFrance2025-04-12Chemel, James L Cpa UNQUALIFIED56Asiya Javayant
1041Ashley J MaletUnited Kingdom2025-04-16Printing Dimensions NEW70Ivan Magalhaes
1042Munro B ShinkoIndia2025-05-05Morlong Associates NEGOTIATION1Elwin Sharvill
1043James H KuskoRussia2025-05-01Buckley Miller Wright QUALIFIED47Anna Fali
1044Ivar X OldroydItaly2025-05-01Dorl, James J Esq PROPOSAL96Stephen Shaw
1045Ricardo O MacleadCanada2025-04-13Buckley Miller Wright PROPOSAL59Elwin Sharvill
1046Jeanfrancois L RutaUnited Kingdom2025-04-28Feltz Printing Service QUALIFIED17Elwin Sharvill
1047Deepesh J CaldareraItaly2025-04-12Morlong Associates NEW84Anna Fali
1048Isabel N WaycottItaly2025-05-01Rangoni Of Florence QUALIFIED71Onyama Limba
1049Chavez Y BriddickCanada2025-04-22Rousseaux, Michael Esq RENEWAL42Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Isabel F AmigonFranceIvan Magalhaes RENEWAL
Octavia N TollnerJapanAnna Fali UNQUALIFIED
Alejandro K OldroydJapanIvan Magalhaes PROPOSAL
Morrow I CampainGermanyIoni Bowcher NEW
Ivar Z IturbideArgentinaAnna Fali PROPOSAL
Jennifer A PoquetteCanadaIvan Magalhaes NEW
Leon U MaletSpainBernardo Dominic UNQUALIFIED
Chavez Y GlickSpainIvan Magalhaes RENEWAL
Claire N BriddickAustraliaOnyama Limba PROPOSAL
Antonio V DilliardUnited KingdomOnyama Limba NEGOTIATION
Leon A MaletBrazilAsiya Javayant RENEWAL
Arvin Z OldroydArgentinaAmy Elsner NEW
Sinclair W FollerArgentinaBernardo Dominic RENEWAL
Jeanfrancois O CampainUnited KingdomElwin Sharvill PROPOSAL
Ashley G MacleadRussiaXuxue Feng NEGOTIATION
Costa E VenereGermanyElwin Sharvill UNQUALIFIED
Maisha H StockhamBrazilStephen Shaw RENEWAL
Izzy R RoysterBrazilIoni Bowcher NEW
Ricardo X AmigonIndiaIvan Magalhaes RENEWAL
Aika S CampainJapanIoni Bowcher UNQUALIFIED
Antonio S GlickItalyAnna Fali PROPOSAL
Deepesh N SergiCanadaIoni Bowcher QUALIFIED
Juan J InouyeRussiaAnna Fali QUALIFIED
Claire Y AlbaresCanadaIoni Bowcher UNQUALIFIED
Adams X OstroskyIndiaAmy Elsner UNQUALIFIED
Murillo B IturbideAustraliaOnyama Limba UNQUALIFIED
Antonio K NickaJapanIvan Magalhaes NEW
Leon A StensethIndiaAmy Elsner RENEWAL
Jeanfrancois S BologniaCanadaOnyama Limba NEGOTIATION
Jones N FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Johnson Y RutaGermanyElwin Sharvill PROPOSAL
Jefferson Z NestleSpainBernardo Dominic PROPOSAL
Darci E OldroydSpainStephen Shaw RENEWAL
Ricardo W RulapaughBrazilAsiya Javayant NEW
Antonio J DarakjyCanadaAnna Fali UNQUALIFIED
Misaki T RoysterItalyBernardo Dominic NEGOTIATION
Tony Y ButtAustraliaAnna Fali NEW
Nicolas N OldroydGermanyXuxue Feng QUALIFIED
Emily N DilliardIndiaAsiya Javayant RENEWAL
Maisha F GarufiGermanyBernardo Dominic QUALIFIED
Maisha U MaletGermanyBernardo Dominic RENEWAL
Costa Z BologniaFranceIvan Magalhaes NEW
Jefferson A WaycottIndiaIvan Magalhaes NEGOTIATION
Arvin I InouyeItalyBernardo Dominic RENEWAL
Faith Z PoquetteJapanOnyama Limba PROPOSAL
Wickens Z KuskoAustraliaBernardo Dominic PROPOSAL
Darci Y SergiItalyAnna Fali UNQUALIFIED
Misaki B BologniaIndiaXuxue Feng NEGOTIATION
Emily S AlbaresItalyElwin Sharvill RENEWAL
Arvin K AlbaresAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Mayumi J Malet
Mujtaba L Waycott
Deepesh Y Nicka
Jennifer W Caldarera
Cody V Marrier
Aruna Y Royster
Kaitlin L Waycott
Chavez H Saylors
Misaki A Kusko
Maisha X Briddick
Maria Y Bolognia
David B Caudy
David M Malet
Juan Y Darakjy
Aditya M Caldarera
Rodrigues Z Rim
Murillo P Maclead
Salvatore T Royster
Wickens Z Slusarski
Ricardo H Dilliard
Mayumi V Morasca
Alejandro M Schemmer
Francesco R Slusarski
Greenwood K Dilliard
Chavez T Darakjy
Juan Y Venere
Izzy K Campain
Adams U Albares
Misaki Q Shinko
Stacey V Gaucho
Wickens O Wieser
Chavez X Iturbide
Emily X Chui
James K Perin
Aika L Ferencz
Maria Q Poquette
Leon M Ostrosky
Ivar G Ferencz
Octavia Y Malet
Morrow G Morasca
Johnson Y Maclead
David H Ferencz
Tony W Ruta
Adams B Ferencz
Deepesh M Gaucho
Juan S Flosi
Juan Q Foller
Stacey K Whobrey
Aruna H Rulapaugh
Maisha I Whobrey
IdCountryDate
1000Germany2025-04-30
1001Spain2025-05-04
1002Canada2025-05-09
1003Germany2025-04-19
1004Argentina2025-05-06
1005Brazil2025-05-04
1006France2025-04-13
1007Argentina2025-05-02
1008Italy2025-04-29
1009Italy2025-04-20
1010Australia2025-04-21
1011United Kingdom2025-04-20
1012Spain2025-05-05
1013Italy2025-04-13
1014Australia2025-04-26
1015Australia2025-04-15
1016Italy2025-04-22
1017Germany2025-04-23
1018Italy2025-04-19
1019Argentina2025-05-07
1020Brazil2025-05-08
1021France2025-05-10
1022Germany2025-05-02
1023Germany2025-05-03
1024Canada2025-05-02
1025Japan2025-04-28
1026Italy2025-04-27
1027France2025-04-13
1028Japan2025-04-28
1029Brazil2025-05-10
1030Spain2025-05-04
1031Argentina2025-05-07
1032Canada2025-04-18
1033Argentina2025-05-01
1034Italy2025-05-04
1035United Kingdom2025-05-03
1036India2025-04-13
1037Brazil2025-05-11
1038Australia2025-04-18
1039Argentina2025-04-18
1040Argentina2025-04-14
1041Canada2025-05-07
1042Germany2025-04-17
1043Brazil2025-05-04
1044Australia2025-05-02
1045Japan2025-05-01
1046Argentina2025-04-14
1047Brazil2025-04-25
1048Australia2025-04-22
1049Russia2025-04-19

On-Demand Data

NameIdCountryDate
Francesco M Nicka1000Germany2025-04-28
Chavez P Morasca1001India2025-04-21
Francesco V Venere1002Germany2025-04-20
Jeanfrancois A Venere1003India2025-05-09
Johnson N Perin1004Argentina2025-05-02
Faith F Bolognia1005India2025-04-26
Claire Y Morasca1006Russia2025-05-09
Juan B Royster1007Germany2025-04-17
Leon J Caudy1008Spain2025-05-03
Smith H Tollner1009Brazil2025-05-03
Kaitlin N Dilliard1010Spain2025-05-05
Antonio T Oldroyd1011France2025-05-07
Misaki S Marrier1012Russia2025-04-25
Aditya Z Briddick1013Germany2025-04-22
David M Rulapaugh1014Russia2025-05-10
Misaki M Nicka1015France2025-04-24
Ashley M Waycott1016Japan2025-05-06
Clifford I Tollner1017Japan2025-05-06
Mujtaba E Maclead1018Spain2025-04-28
Jones C Marrier1019Japan2025-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin M OldroydGermanyIoni Bowcher UNQUALIFIED
Maria M ButtAustraliaIvan Magalhaes QUALIFIED
Sinclair O ButtCanadaXuxue Feng PROPOSAL
Silvio Q WieserGermanyAnna Fali NEW
Izzy K OldroydRussiaAmy Elsner QUALIFIED
Morrow X GlickUnited KingdomElwin Sharvill UNQUALIFIED
Ashley Y MarrierJapanBernardo Dominic UNQUALIFIED
Chavez H DoeJapanIoni Bowcher QUALIFIED
Ivar T FlosiJapanElwin Sharvill NEW
Julie E FerenczSpainElwin Sharvill NEW
James A SaylorsCanadaOnyama Limba NEW
Mayumi X VenereUnited KingdomAsiya Javayant NEW
Morrow P StockhamArgentinaIvan Magalhaes RENEWAL
Adams W ChuiGermanyBernardo Dominic RENEWAL
Aika M ShinkoArgentinaIvan Magalhaes RENEWAL
Rodrigues C WhobreyFranceAnna Fali QUALIFIED
Jennifer O StensethCanadaAmy Elsner PROPOSAL
Maria H GarufiJapanBernardo Dominic NEGOTIATION
Ricardo M CaldareraAustraliaAsiya Javayant NEW
Octavia S DarakjyArgentinaOnyama Limba RENEWAL
Izzy L VocelkaRussiaOnyama Limba UNQUALIFIED
Sinclair K AmigonUnited KingdomStephen Shaw NEW
Aika Y MaletItalyAmy Elsner RENEWAL
Ashley V BologniaAustraliaOnyama Limba NEW
Nicolas V DoeRussiaElwin Sharvill RENEWAL
Jeanfrancois Q GauchoIndiaIvan Magalhaes RENEWAL
Kaitlin W PoquetteGermanyOnyama Limba NEW
Aika S PaprockiIndiaAsiya Javayant NEW
Juan S DarakjyGermanyAnna Fali NEGOTIATION
Aika O FollerFranceIoni Bowcher RENEWAL
Juan O FigeroaCanadaStephen Shaw UNQUALIFIED
Stacey N WaycottUnited KingdomElwin Sharvill NEW
Mayumi X ShinkoRussiaAsiya Javayant RENEWAL
Leja W DarakjyItalyXuxue Feng PROPOSAL
Morrow B CaudyCanadaXuxue Feng RENEWAL
Leja P SchemmerUnited KingdomIvan Magalhaes RENEWAL
Emily A GarufiSpainElwin Sharvill NEW
Murillo Z IturbideGermanyBernardo Dominic RENEWAL
Ricardo S GillianAustraliaOnyama Limba QUALIFIED
Alejandro R WaycottArgentinaAsiya Javayant 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>