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
Morrow T FlosiJapanStephen Shaw PROPOSAL
Cody B MaletBrazilAmy Elsner QUALIFIED
Costa R VocelkaSpainElwin Sharvill PROPOSAL
Jeanfrancois W FerenczJapanIoni Bowcher NEW
Greenwood F ShinkoCanadaElwin Sharvill UNQUALIFIED
Antonio K MarrierJapanAsiya Javayant QUALIFIED
Leja J SaylorsItalyIvan Magalhaes NEW
Aika N GarufiItalyIoni Bowcher NEGOTIATION
Nicolas D CampainBrazilStephen Shaw QUALIFIED
Maria T SergiRussiaStephen Shaw QUALIFIED
Murillo S AlbaresSpainIoni Bowcher PROPOSAL
Murillo F RimBrazilOnyama Limba NEGOTIATION
Leja H IturbideAustraliaAsiya Javayant RENEWAL
Maria R RimCanadaOnyama Limba RENEWAL
Munro D BowleyItalyStephen Shaw PROPOSAL
Jeanfrancois O KolmetzIndiaBernardo Dominic UNQUALIFIED
Costa W WhobreySpainAmy Elsner UNQUALIFIED
Deepesh T KolmetzCanadaAsiya Javayant RENEWAL
Adams V GillianCanadaBernardo Dominic RENEWAL
Costa L CaudyCanadaIoni Bowcher RENEWAL
Mayumi E MaletIndiaIoni Bowcher UNQUALIFIED
Antonio Z MaletGermanyAnna Fali PROPOSAL
Mayumi J ShinkoUnited KingdomBernardo Dominic PROPOSAL
Sinclair B CaldareraSpainOnyama Limba QUALIFIED
Jeanfrancois F CampainIndiaOnyama Limba PROPOSAL
Sinclair L KolmetzSpainAsiya Javayant UNQUALIFIED
Mujtaba X ChuiBrazilElwin Sharvill UNQUALIFIED
Salvatore D GauchoIndiaXuxue Feng RENEWAL
Johnson M RoysterJapanElwin Sharvill NEGOTIATION
Mayumi Z FlosiFranceIoni Bowcher QUALIFIED
Francesco P PerinItalyIvan Magalhaes RENEWAL
Leon O MarrierAustraliaElwin Sharvill UNQUALIFIED
Octavia W MarrierRussiaAnna Fali QUALIFIED
Aruna K DilliardAustraliaIvan Magalhaes QUALIFIED
Leon L VenereSpainBernardo Dominic NEGOTIATION
Julie J CaudyIndiaStephen Shaw PROPOSAL
Emily Z BowleyCanadaOnyama Limba PROPOSAL
Jefferson U FollerUnited KingdomOnyama Limba RENEWAL
Ashley B WaycottJapanIoni Bowcher QUALIFIED
Maisha V NestleItalyBernardo Dominic NEW
Emily S GauchoBrazilAnna Fali UNQUALIFIED
Octavia P GlickRussiaOnyama Limba NEGOTIATION
Clifford Y PoquetteGermanyAmy Elsner RENEWAL
Smith J ShinkoJapanIvan Magalhaes NEGOTIATION
Munro U RutaJapanStephen Shaw NEGOTIATION
Emily O RoysterCanadaIoni Bowcher QUALIFIED
Arvin R WhobreyIndiaBernardo Dominic NEGOTIATION
Jefferson I BowleyUnited KingdomStephen Shaw UNQUALIFIED
David H NestleIndiaElwin Sharvill NEW
Mujtaba R NickaGermanyXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey C PerinSpainAmy Elsner PROPOSAL
Aruna W FollerGermanyAsiya Javayant QUALIFIED
Deepesh F GlickIndiaIvan Magalhaes UNQUALIFIED
Darci J GillianGermanyBernardo Dominic NEW
Emily Y DarakjySpainAnna Fali QUALIFIED
Juan F WhobreyIndiaXuxue Feng PROPOSAL
Stacey K OstroskyFranceXuxue Feng NEGOTIATION
Jefferson F SergiUnited KingdomIvan Magalhaes RENEWAL
Mayumi X CampainBrazilAmy Elsner NEW
Adams T InouyeCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford N OstroskyIndia2026-07-18Chanay, Jeffrey A Esq NEGOTIATION25Amy Elsner
1001Jones C KuskoUnited Kingdom2026-07-16Feltz Printing Service PROPOSAL40Bernardo Dominic
1002Emily K KolmetzBrazil2026-07-26Chapman, Ross E Esq QUALIFIED61Stephen Shaw
1003Antonio N GillianJapan2026-07-17Feiner Bros RENEWAL60Ioni Bowcher
1004Arvin V MaletItaly2026-07-20Printing Dimensions PROPOSAL96Xuxue Feng
1005Izzy M BowleySpain2026-08-09Truhlar And Truhlar Attys PROPOSAL66Anna Fali
1006Antonio C VocelkaJapan2026-08-10Truhlar And Truhlar Attys NEGOTIATION86Amy Elsner
1007Ricardo Y GarufiBrazil2026-07-24Chemel, James L Cpa QUALIFIED28Elwin Sharvill
1008Emily M OldroydFrance2026-07-16Morlong Associates UNQUALIFIED44Amy Elsner
1009Ricardo T FerenczJapan2026-07-25Morlong Associates PROPOSAL44Anna Fali
1010Smith Z NickaUnited Kingdom2026-07-24Printing Dimensions NEW56Stephen Shaw
1011Ricardo C FerenczRussia2026-07-13Rousseaux, Michael Esq NEGOTIATION13Xuxue Feng
1012Greenwood D SlusarskiSpain2026-07-26Benton, John B Jr PROPOSAL11Asiya Javayant
1013Johnson E PoquetteJapan2026-07-24Buckley Miller Wright NEGOTIATION48Ioni Bowcher
1014Antonio S FollerGermany2026-07-19Rousseaux, Michael Esq QUALIFIED74Stephen Shaw
1015Jeanfrancois A FlosiIndia2026-07-20Morlong Associates RENEWAL41Asiya Javayant
1016Maria L StockhamFrance2026-07-16Truhlar And Truhlar Attys NEW42Onyama Limba
1017Smith V MaletItaly2026-08-08Rousseaux, Michael Esq PROPOSAL21Elwin Sharvill
1018Sinclair Z GauchoBrazil2026-08-02Commercial Press PROPOSAL83Ioni Bowcher
1019Morrow Q RulapaughGermany2026-07-24Chemel, James L Cpa NEGOTIATION16Ioni Bowcher
1020Maisha H GarufiIndia2026-07-18King, Christopher A Esq RENEWAL55Stephen Shaw
1021Rodrigues E TollnerBrazil2026-07-22Morlong Associates QUALIFIED85Asiya Javayant
1022Wickens H RoysterArgentina2026-07-20Benton, John B Jr RENEWAL79Elwin Sharvill
1023Stacey X GillianArgentina2026-08-01Feiner Bros PROPOSAL43Ioni Bowcher
1024Sinclair Y FlosiSpain2026-07-23Rousseaux, Michael Esq RENEWAL66Ivan Magalhaes
1025Clifford F ChuiIndia2026-07-22King, Christopher A Esq NEGOTIATION42Asiya Javayant
1026Rodrigues P AlbaresJapan2026-08-10Chemel, James L Cpa RENEWAL38Bernardo Dominic
1027Rodrigues J FerenczBrazil2026-07-15Feltz Printing Service UNQUALIFIED53Asiya Javayant
1028Emily Y AlbaresItaly2026-07-19Chapman, Ross E Esq UNQUALIFIED28Xuxue Feng
1029Maisha I StockhamCanada2026-08-10Chemel, James L Cpa PROPOSAL2Xuxue Feng
1030Wickens V AlbaresIndia2026-07-19Morlong Associates NEW64Stephen Shaw
1031Faith F InouyeAustralia2026-07-20Commercial Press NEGOTIATION77Ivan Magalhaes
1032Claire G SlusarskiFrance2026-07-12Rousseaux, Michael Esq RENEWAL2Ioni Bowcher
1033Maria G PoquetteBrazil2026-07-15Commercial Press NEW37Asiya Javayant
1034David R SlusarskiJapan2026-07-26King, Christopher A Esq UNQUALIFIED43Onyama Limba
1035Jeanfrancois U ChuiUnited Kingdom2026-08-08Feltz Printing Service UNQUALIFIED16Anna Fali
1036Misaki V WaycottRussia2026-08-09Commercial Press QUALIFIED26Stephen Shaw
1037Mayumi N GarufiCanada2026-07-22Truhlar And Truhlar Attys QUALIFIED99Elwin Sharvill
1038David Z DarakjyGermany2026-08-03Chemel, James L Cpa PROPOSAL60Amy Elsner
1039Nicolas C MorascaRussia2026-07-31Rangoni Of Florence RENEWAL60Elwin Sharvill
1040Octavia D PaprockiItaly2026-08-07Rousseaux, Michael Esq UNQUALIFIED84Ivan Magalhaes
1041Isabel Y MorascaItaly2026-07-22Feltz Printing Service NEW37Onyama Limba
1042Alejandro X RoysterRussia2026-07-18Buckley Miller Wright UNQUALIFIED39Ioni Bowcher
1043Kaitlin R VocelkaJapan2026-07-26King, Christopher A Esq PROPOSAL57Stephen Shaw
1044Mayumi H BologniaBrazil2026-07-13Rousseaux, Michael Esq UNQUALIFIED18Amy Elsner
1045Chavez M RimAustralia2026-08-10Chanay, Jeffrey A Esq UNQUALIFIED98Stephen Shaw
1046Darci D PoquetteRussia2026-07-23Printing Dimensions RENEWAL69Onyama Limba
1047Smith Z StensethRussia2026-08-09Chapman, Ross E Esq PROPOSAL76Stephen Shaw
1048Aditya L GarufiCanada2026-07-30Dorl, James J Esq QUALIFIED63Anna Fali
1049Alejandro I RulapaughJapan2026-07-23Feltz Printing Service UNQUALIFIED52Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair F CampainCanadaXuxue Feng NEGOTIATION
Claire C CampainJapanXuxue Feng RENEWAL
Alejandro N KuskoRussiaAsiya Javayant QUALIFIED
Munro F CaldareraFranceStephen Shaw NEW
Deepesh E VocelkaCanadaIoni Bowcher NEGOTIATION
Cody H RimArgentinaIvan Magalhaes NEW
Jennifer A FollerSpainXuxue Feng PROPOSAL
Jeanfrancois F OldroydCanadaBernardo Dominic RENEWAL
Leja R ChuiCanadaXuxue Feng QUALIFIED
Maisha B MacleadUnited KingdomBernardo Dominic PROPOSAL
Rodrigues K RutaRussiaAsiya Javayant UNQUALIFIED
Jefferson X GlickIndiaOnyama Limba RENEWAL
Maisha J CaldareraSpainXuxue Feng PROPOSAL
Kadeem K NickaUnited KingdomStephen Shaw QUALIFIED
Ricardo H DilliardSpainStephen Shaw NEGOTIATION
Cody U MorascaSpainBernardo Dominic NEW
Mujtaba G RutaBrazilAnna Fali NEGOTIATION
Silvio V GlickBrazilAnna Fali NEW
Alejandro J SergiItalyElwin Sharvill NEW
Adams O MaletFranceIvan Magalhaes NEGOTIATION
Stacey W GauchoUnited KingdomAnna Fali RENEWAL
Juan P PerinBrazilIvan Magalhaes UNQUALIFIED
Antonio A StockhamBrazilElwin Sharvill NEW
Antonio X DoeItalyStephen Shaw NEW
Jennifer P KolmetzCanadaOnyama Limba PROPOSAL
Morrow G GlickJapanOnyama Limba NEW
Maria B NickaFranceXuxue Feng PROPOSAL
Misaki K MaletRussiaIoni Bowcher QUALIFIED
Ashley A RulapaughArgentinaAsiya Javayant NEW
Rodrigues S NestleGermanyElwin Sharvill NEW
Emily J CaldareraItalyStephen Shaw UNQUALIFIED
Julie P ChuiRussiaIoni Bowcher UNQUALIFIED
Silvio Y PoquetteAustraliaElwin Sharvill UNQUALIFIED
Mujtaba Z GlickBrazilAsiya Javayant UNQUALIFIED
Claire E MaletSpainIoni Bowcher NEW
Clifford Q GarufiIndiaBernardo Dominic NEGOTIATION
Kadeem P VenereFranceAmy Elsner RENEWAL
Munro C SergiItalyIoni Bowcher PROPOSAL
Tony S CampainArgentinaAsiya Javayant QUALIFIED
Silvio I MaletGermanyAmy Elsner UNQUALIFIED
Wickens W RimItalyStephen Shaw QUALIFIED
Greenwood C ChuiCanadaAsiya Javayant NEGOTIATION
Kaitlin E IturbideSpainIvan Magalhaes UNQUALIFIED
Greenwood G RulapaughUnited KingdomAsiya Javayant PROPOSAL
Octavia I MaletSpainElwin Sharvill UNQUALIFIED
Kadeem Q BowleyCanadaOnyama Limba NEGOTIATION
Ivar Z MarrierFranceXuxue Feng UNQUALIFIED
Tony P SchemmerJapanXuxue Feng PROPOSAL
Tony O WhobreySpainXuxue Feng NEW
Deepesh N NestleRussiaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Darci P Glick
Maisha D Stockham
Darci A Iturbide
Faith K Royster
Maria E Malet
Octavia Y Kusko
Kadeem G Stockham
Wickens D Dilliard
Nicolas K Whobrey
Costa V Malet
Morrow S Nestle
Mujtaba B Ostrosky
Isabel J Stenseth
Antonio P Rim
Jeanfrancois J Oldroyd
Aditya S Rulapaugh
Aditya Z Bolognia
James F Amigon
Aruna F Slusarski
Rodrigues F Royster
Aruna G Chui
Salvatore F Poquette
Salvatore F Dilliard
Chavez H Garufi
Kadeem J Kolmetz
Kaitlin W Gillian
Mujtaba D Perin
Jennifer O Malet
Deepesh X Rulapaugh
Costa C Ferencz
Adams N Whobrey
Kaitlin O Foller
Isabel O Ruta
Isabel N Bolognia
Ivar M Stockham
Nicolas J Doe
Izzy Q Ferencz
Mujtaba K Gillian
Maria X Shinko
Darci S Shinko
Nicolas C Butt
Aika K Ostrosky
Faith O Paprocki
Stacey W Marrier
Octavia E Schemmer
Emily E Schemmer
Alejandro A Amigon
David M Inouye
Jones H Paprocki
Tony S Wieser
IdCountryDate
1000India2026-08-09
1001Australia2026-07-23
1002India2026-08-07
1003France2026-08-07
1004Australia2026-07-20
1005United Kingdom2026-07-25
1006Canada2026-07-28
1007India2026-08-01
1008United Kingdom2026-08-07
1009Australia2026-08-05
1010Germany2026-08-07
1011India2026-07-18
1012United Kingdom2026-07-12
1013Spain2026-08-08
1014Australia2026-07-28
1015Italy2026-07-23
1016Canada2026-07-25
1017Russia2026-08-01
1018Japan2026-08-07
1019United Kingdom2026-07-28
1020Japan2026-07-26
1021Canada2026-07-13
1022Italy2026-07-18
1023Canada2026-07-31
1024Australia2026-07-20
1025India2026-07-31
1026Argentina2026-07-20
1027Brazil2026-07-15
1028Italy2026-07-26
1029Brazil2026-07-14
1030India2026-07-20
1031Russia2026-07-13
1032France2026-07-30
1033Australia2026-07-20
1034Australia2026-07-19
1035United Kingdom2026-08-10
1036Argentina2026-08-07
1037Brazil2026-07-12
1038Brazil2026-07-29
1039India2026-08-10
1040Italy2026-07-22
1041India2026-07-30
1042Italy2026-07-31
1043Italy2026-07-24
1044Canada2026-07-23
1045Italy2026-08-04
1046Italy2026-08-07
1047India2026-07-29
1048Brazil2026-07-26
1049Spain2026-07-23

On-Demand Data

NameIdCountryDate
Ivar K Waycott1000Italy2026-07-27
Salvatore G Iturbide1001Brazil2026-08-09
Rodrigues G Chui1002Canada2026-08-05
Ashley A Campain1003Brazil2026-08-10
Leon O Ruta1004Italy2026-08-06
Jones H Malet1005Japan2026-08-05
Darci X Doe1006India2026-08-04
Silvio Z Gaucho1007Brazil2026-07-27
Misaki M Ferencz1008Japan2026-07-20
Munro R Oldroyd1009Germany2026-07-26
Emily L Maclead1010Japan2026-08-05
Greenwood M Garufi1011United Kingdom2026-07-26
Aruna G Waycott1012Germany2026-07-12
Misaki B Albares1013Germany2026-07-14
Adams S Vocelka1014Germany2026-07-29
Murillo C Foller1015Canada2026-08-07
Misaki F Poquette1016Japan2026-07-21
Aika T Wieser1017Spain2026-07-28
Greenwood J Slusarski1018United Kingdom2026-08-02
Jones A Campain1019Japan2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria J CaldareraRussiaXuxue Feng PROPOSAL
Alejandro L TollnerGermanyAsiya Javayant UNQUALIFIED
Greenwood K RulapaughUnited KingdomAnna Fali UNQUALIFIED
Silvio G GlickUnited KingdomXuxue Feng RENEWAL
Jefferson D AmigonBrazilIoni Bowcher UNQUALIFIED
Emily X MaletItalyAsiya Javayant RENEWAL
Francesco N CampainIndiaIvan Magalhaes QUALIFIED
Emily J PerinJapanIoni Bowcher UNQUALIFIED
Ricardo L MacleadGermanyXuxue Feng QUALIFIED
Costa C VocelkaGermanyAnna Fali QUALIFIED
Adams H WhobreyUnited KingdomAnna Fali NEW
Octavia W VenereAustraliaIvan Magalhaes NEGOTIATION
Ricardo L VenereCanadaAsiya Javayant UNQUALIFIED
Mayumi E FerenczJapanAnna Fali QUALIFIED
James W PaprockiSpainOnyama Limba QUALIFIED
Cody O WieserRussiaAsiya Javayant PROPOSAL
Chavez N DoeItalyXuxue Feng NEW
Isabel T OstroskyItalyXuxue Feng RENEWAL
Stacey N StensethRussiaAnna Fali NEW
Rodrigues R StensethBrazilBernardo Dominic UNQUALIFIED
Juan G GlickBrazilElwin Sharvill QUALIFIED
Aditya C SlusarskiItalyElwin Sharvill RENEWAL
Kaitlin G RoysterAustraliaBernardo Dominic UNQUALIFIED
Cody D CampainSpainBernardo Dominic QUALIFIED
Salvatore G OstroskyArgentinaAsiya Javayant NEGOTIATION
Ivar W DoeItalyOnyama Limba UNQUALIFIED
Rodrigues Z NestleIndiaXuxue Feng PROPOSAL
Aika D StensethGermanyAsiya Javayant NEGOTIATION
Juan Z KolmetzRussiaAsiya Javayant NEGOTIATION
Emily C StensethIndiaXuxue Feng UNQUALIFIED
Aruna F IturbideRussiaBernardo Dominic QUALIFIED
Maisha R ChuiItalyOnyama Limba NEW
Arvin U OldroydFranceAsiya Javayant QUALIFIED
Clifford C CaldareraSpainXuxue Feng PROPOSAL
Leon R FigeroaGermanyStephen Shaw NEW
Jefferson C AmigonFranceBernardo Dominic NEGOTIATION
Deepesh R VocelkaJapanOnyama Limba QUALIFIED
Munro F DoeArgentinaElwin Sharvill PROPOSAL
Emily U TollnerJapanAmy Elsner NEGOTIATION
Emily A GauchoArgentinaIoni Bowcher PROPOSAL

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