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
Aika B VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Maria I OldroydAustraliaIoni Bowcher UNQUALIFIED
Ashley D VenereRussiaIoni Bowcher PROPOSAL
Clifford P CaudyJapanIoni Bowcher RENEWAL
Julie G SchemmerGermanyIvan Magalhaes RENEWAL
Ashley Q DilliardGermanyOnyama Limba NEGOTIATION
Smith H WieserGermanyAsiya Javayant NEW
Alejandro S PerinFranceAmy Elsner NEW
Greenwood G GillianUnited KingdomXuxue Feng QUALIFIED
Tony I DilliardRussiaAmy Elsner NEGOTIATION
Costa R VenereJapanAnna Fali NEGOTIATION
Jennifer E StockhamGermanyStephen Shaw PROPOSAL
David C WaycottGermanyIoni Bowcher RENEWAL
Leon Q SchemmerRussiaAmy Elsner RENEWAL
Adams M WhobreyGermanyAmy Elsner QUALIFIED
Rodrigues O AlbaresArgentinaOnyama Limba RENEWAL
Isabel Q GarufiCanadaIoni Bowcher RENEWAL
Clifford E WhobreyUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois R WieserArgentinaAsiya Javayant NEW
Chavez Q SaylorsSpainAnna Fali NEGOTIATION
Faith D BriddickItalyXuxue Feng RENEWAL
Jones J PerinJapanAmy Elsner QUALIFIED
Nicolas Z IturbideRussiaAsiya Javayant UNQUALIFIED
Izzy L WieserSpainIoni Bowcher NEGOTIATION
Jones Z CaudyJapanIvan Magalhaes NEW
Ivar Z CaldareraCanadaStephen Shaw PROPOSAL
Arvin B DilliardSpainAmy Elsner RENEWAL
Silvio Q PerinAustraliaBernardo Dominic UNQUALIFIED
Izzy R CaudyUnited KingdomIvan Magalhaes NEW
Sinclair E RutaGermanyAnna Fali PROPOSAL
Aika G StensethSpainElwin Sharvill UNQUALIFIED
Tony N OldroydRussiaIvan Magalhaes RENEWAL
Chavez J RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Johnson Q StockhamJapanElwin Sharvill QUALIFIED
Alejandro H ChuiAustraliaIoni Bowcher RENEWAL
Rodrigues B AmigonGermanyElwin Sharvill UNQUALIFIED
Tony D GarufiCanadaOnyama Limba PROPOSAL
Cody I WhobreyGermanyOnyama Limba PROPOSAL
Munro Y SaylorsItalyBernardo Dominic UNQUALIFIED
Jennifer I StensethUnited KingdomElwin Sharvill UNQUALIFIED
Arvin X BologniaFranceStephen Shaw NEGOTIATION
Munro P IturbideRussiaStephen Shaw QUALIFIED
Leja T FerenczArgentinaAnna Fali NEW
Claire J FerenczJapanAsiya Javayant RENEWAL
Jeanfrancois W StensethArgentinaIoni Bowcher NEGOTIATION
Silvio J FlosiArgentinaAmy Elsner UNQUALIFIED
Salvatore P PaprockiRussiaStephen Shaw RENEWAL
Francesco A VocelkaAustraliaIvan Magalhaes QUALIFIED
Deepesh E DilliardGermanyOnyama Limba NEGOTIATION
Murillo Z OstroskyAustraliaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer S MaletAustraliaOnyama Limba NEGOTIATION
Deepesh K AlbaresIndiaXuxue Feng NEGOTIATION
Clifford N NickaArgentinaXuxue Feng NEW
Costa J OldroydUnited KingdomXuxue Feng QUALIFIED
Antonio X SaylorsRussiaXuxue Feng NEGOTIATION
Aditya V KuskoJapanElwin Sharvill RENEWAL
Clifford Q WieserBrazilOnyama Limba NEGOTIATION
Jeanfrancois U NickaGermanyOnyama Limba RENEWAL
Rodrigues E FollerSpainBernardo Dominic PROPOSAL
Maria J RimIndiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones L NestleBrazil2026-07-04Feltz Printing Service PROPOSAL86Amy Elsner
1001Ashley W GarufiItaly2026-06-12Feltz Printing Service QUALIFIED95Elwin Sharvill
1002Ashley V OldroydArgentina2026-06-20Chanay, Jeffrey A Esq PROPOSAL78Anna Fali
1003Wickens X AlbaresGermany2026-06-14Feltz Printing Service UNQUALIFIED15Stephen Shaw
1004Faith P FlosiUnited Kingdom2026-06-09Chemel, James L Cpa UNQUALIFIED60Anna Fali
1005Tony D RulapaughSpain2026-06-14Chemel, James L Cpa PROPOSAL28Amy Elsner
1006James T CaudyJapan2026-06-16Printing Dimensions NEGOTIATION35Onyama Limba
1007Greenwood A WaycottCanada2026-06-29Commercial Press RENEWAL29Ioni Bowcher
1008Maisha P FollerSpain2026-07-06Printing Dimensions QUALIFIED13Stephen Shaw
1009Juan N MaletBrazil2026-06-26King, Christopher A Esq UNQUALIFIED93Amy Elsner
1010Rodrigues V FigeroaRussia2026-06-13Chapman, Ross E Esq NEW99Bernardo Dominic
1011Smith I WaycottCanada2026-06-08Rangoni Of Florence NEW95Amy Elsner
1012Ivar L StensethAustralia2026-07-05Chemel, James L Cpa NEGOTIATION17Amy Elsner
1013Mayumi Q GauchoArgentina2026-07-06Chapman, Ross E Esq RENEWAL13Asiya Javayant
1014Aditya D MaletItaly2026-07-03Chemel, James L Cpa NEW71Bernardo Dominic
1015Wickens L VenereFrance2026-06-11Rangoni Of Florence NEW78Xuxue Feng
1016Mayumi N CampainFrance2026-06-18Chemel, James L Cpa NEW62Amy Elsner
1017Octavia I WieserJapan2026-06-25Benton, John B Jr PROPOSAL76Stephen Shaw
1018Aruna S PoquetteBrazil2026-07-05Commercial Press QUALIFIED58Ivan Magalhaes
1019Octavia R MacleadGermany2026-06-30Chemel, James L Cpa UNQUALIFIED54Bernardo Dominic
1020Sinclair X BowleyUnited Kingdom2026-06-25Chanay, Jeffrey A Esq NEGOTIATION95Anna Fali
1021Murillo Z PaprockiCanada2026-06-24Rangoni Of Florence QUALIFIED72Ivan Magalhaes
1022Jeanfrancois T IturbideFrance2026-07-01Truhlar And Truhlar Attys NEW44Elwin Sharvill
1023Deepesh U VocelkaAustralia2026-06-28Truhlar And Truhlar Attys PROPOSAL2Ioni Bowcher
1024Aika V PaprockiSpain2026-06-25Feiner Bros QUALIFIED53Onyama Limba
1025Rodrigues R InouyeJapan2026-06-11Printing Dimensions NEGOTIATION69Xuxue Feng
1026Kadeem T SaylorsFrance2026-06-21Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1027James X CampainAustralia2026-07-03Buckley Miller Wright NEW83Bernardo Dominic
1028Leja Q DoeSpain2026-07-04Chanay, Jeffrey A Esq PROPOSAL8Elwin Sharvill
1029Ashley U CampainUnited Kingdom2026-06-13Feltz Printing Service NEW13Onyama Limba
1030Octavia L ButtAustralia2026-06-25Commercial Press QUALIFIED7Stephen Shaw
1031Leja A OstroskyIndia2026-06-13Truhlar And Truhlar Attys RENEWAL23Anna Fali
1032Juan U RoysterIndia2026-06-10Rousseaux, Michael Esq UNQUALIFIED30Elwin Sharvill
1033Sinclair Y PaprockiAustralia2026-06-15Benton, John B Jr NEW28Xuxue Feng
1034Izzy B KuskoAustralia2026-07-02Commercial Press QUALIFIED37Xuxue Feng
1035Wickens O BriddickSpain2026-06-28Chanay, Jeffrey A Esq RENEWAL86Ivan Magalhaes
1036Darci K IturbideBrazil2026-06-18Printing Dimensions RENEWAL7Xuxue Feng
1037Salvatore T StensethFrance2026-06-23Printing Dimensions QUALIFIED95Asiya Javayant
1038Costa I CaudyRussia2026-06-17Feiner Bros NEW96Stephen Shaw
1039Clifford E BriddickGermany2026-06-28Morlong Associates NEGOTIATION46Anna Fali
1040Octavia K GlickItaly2026-06-30Dorl, James J Esq PROPOSAL92Elwin Sharvill
1041Morrow U OstroskyItaly2026-06-08Feltz Printing Service NEGOTIATION83Elwin Sharvill
1042Morrow D IturbideAustralia2026-07-05Commercial Press UNQUALIFIED97Stephen Shaw
1043Juan F MacleadJapan2026-06-26Rousseaux, Michael Esq NEGOTIATION5Ivan Magalhaes
1044Leon F CampainCanada2026-06-29Chapman, Ross E Esq RENEWAL96Ivan Magalhaes
1045Wickens H ButtItaly2026-06-25Feltz Printing Service RENEWAL4Bernardo Dominic
1046Ricardo X InouyeBrazil2026-06-11Buckley Miller Wright UNQUALIFIED94Ivan Magalhaes
1047Jennifer V NestleGermany2026-06-30Truhlar And Truhlar Attys QUALIFIED99Onyama Limba
1048Maria T KuskoAustralia2026-06-19King, Christopher A Esq NEGOTIATION84Anna Fali
1049Jones E RulapaughSpain2026-06-30Buckley Miller Wright UNQUALIFIED11Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan J RulapaughBrazilStephen Shaw NEW
Julie X VocelkaUnited KingdomIoni Bowcher NEW
Jeanfrancois M MarrierJapanStephen Shaw PROPOSAL
Aruna I StensethUnited KingdomElwin Sharvill NEGOTIATION
Silvio J WhobreyBrazilOnyama Limba QUALIFIED
Adams B RimAustraliaXuxue Feng UNQUALIFIED
Emily V SchemmerBrazilBernardo Dominic QUALIFIED
Claire Z NestleFranceOnyama Limba NEW
Arvin P NestleRussiaStephen Shaw QUALIFIED
Salvatore O DilliardJapanIoni Bowcher PROPOSAL
Greenwood S RulapaughJapanOnyama Limba PROPOSAL
Smith Q SchemmerAustraliaOnyama Limba UNQUALIFIED
Greenwood I OldroydSpainStephen Shaw RENEWAL
Aruna C GlickArgentinaElwin Sharvill PROPOSAL
Misaki X BowleySpainAsiya Javayant UNQUALIFIED
Aika E FlosiItalyAmy Elsner NEW
Julie S MaletCanadaOnyama Limba NEW
Wickens W NickaIndiaIvan Magalhaes RENEWAL
Johnson P MacleadFranceAmy Elsner NEGOTIATION
Jennifer W OldroydGermanyStephen Shaw NEGOTIATION
James K VocelkaGermanyIoni Bowcher NEGOTIATION
Rodrigues H DarakjyRussiaAmy Elsner QUALIFIED
Octavia P SergiItalyAnna Fali PROPOSAL
Sinclair I KuskoJapanIoni Bowcher NEW
Adams F BowleySpainElwin Sharvill UNQUALIFIED
Jefferson A AmigonIndiaXuxue Feng UNQUALIFIED
Octavia M FlosiItalyIoni Bowcher RENEWAL
Jeanfrancois Y MaletUnited KingdomIoni Bowcher UNQUALIFIED
Leon Y VenereAustraliaIvan Magalhaes NEGOTIATION
Deepesh Z DarakjyGermanyIoni Bowcher NEW
Francesco I SchemmerJapanAnna Fali QUALIFIED
Leja H AmigonBrazilAsiya Javayant PROPOSAL
Leja Y DoeCanadaStephen Shaw RENEWAL
Jones Y TollnerArgentinaAsiya Javayant NEGOTIATION
Jefferson B WaycottArgentinaOnyama Limba NEGOTIATION
Leon S AlbaresSpainOnyama Limba QUALIFIED
Murillo E GauchoBrazilAmy Elsner PROPOSAL
Alejandro L ButtItalyIvan Magalhaes UNQUALIFIED
Clifford E NestleRussiaElwin Sharvill PROPOSAL
Munro Q RimItalyElwin Sharvill QUALIFIED
Ricardo H MorascaJapanStephen Shaw RENEWAL
Ivar Z NickaSpainStephen Shaw NEGOTIATION
Munro P SaylorsIndiaXuxue Feng PROPOSAL
Isabel X KuskoCanadaAsiya Javayant PROPOSAL
Isabel A RulapaughGermanyAsiya Javayant RENEWAL
Julie P VocelkaCanadaAnna Fali QUALIFIED
Deepesh W WaycottJapanOnyama Limba NEGOTIATION
Isabel S SchemmerGermanyAnna Fali NEGOTIATION
Misaki B InouyeRussiaXuxue Feng QUALIFIED
Ashley R AmigonAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
Alejandro Q Royster
Mayumi U Paprocki
Adams O Shinko
Morrow G Caudy
Faith N Stockham
Maisha J Campain
Jennifer T Slusarski
Aditya S Malet
Jones F Glick
Cody Z Kolmetz
Murillo K Saylors
Tony P Saylors
Maisha K Malet
Juan K Sergi
Adams Y Malet
Maria S Inouye
Johnson J Albares
Jeanfrancois T Slusarski
Darci V Vocelka
Alejandro C Ruta
Silvio N Sergi
Smith B Poquette
Jefferson P Rulapaugh
Morrow T Ostrosky
Jeanfrancois C Campain
Izzy P Stockham
Izzy N Inouye
Francesco R Butt
Stacey G Malet
Izzy G Venere
Aruna B Campain
Costa O Schemmer
Munro X Stenseth
Ashley M Vocelka
Nicolas J Gaucho
Arvin O Shinko
Morrow T Marrier
Chavez P Gaucho
Morrow I Inouye
Silvio N Doe
Jones M Glick
Jennifer D Marrier
Silvio Z Oldroyd
Costa Q Marrier
Salvatore G Oldroyd
Silvio Z Shinko
Octavia Z Malet
Mujtaba Y Maclead
Sinclair G Inouye
Maria C Rim
IdCountryDate
1000Australia2026-07-02
1001Brazil2026-07-01
1002Russia2026-07-03
1003France2026-07-04
1004Spain2026-06-27
1005Italy2026-06-28
1006Argentina2026-06-11
1007Canada2026-06-26
1008India2026-07-04
1009United Kingdom2026-06-14
1010Germany2026-07-05
1011India2026-06-17
1012Brazil2026-07-05
1013Germany2026-07-01
1014Argentina2026-06-09
1015Argentina2026-06-08
1016Australia2026-07-03
1017Germany2026-06-13
1018Germany2026-07-02
1019Australia2026-06-20
1020India2026-06-15
1021Canada2026-07-03
1022Japan2026-07-04
1023Brazil2026-06-30
1024Italy2026-07-02
1025India2026-07-01
1026Spain2026-07-01
1027Argentina2026-06-22
1028Italy2026-07-02
1029United Kingdom2026-07-02
1030Canada2026-06-21
1031Spain2026-07-04
1032Argentina2026-06-22
1033United Kingdom2026-06-19
1034Argentina2026-07-01
1035India2026-06-10
1036Brazil2026-06-17
1037India2026-07-06
1038Spain2026-06-27
1039Australia2026-06-18
1040France2026-06-08
1041Canada2026-06-13
1042Australia2026-06-07
1043Spain2026-06-13
1044Brazil2026-07-03
1045Australia2026-06-22
1046United Kingdom2026-07-04
1047Brazil2026-07-05
1048United Kingdom2026-06-20
1049Italy2026-06-26

On-Demand Data

NameIdCountryDate
Rodrigues G Paprocki1000India2026-06-27
Murillo Q Doe1001United Kingdom2026-06-21
Salvatore F Waycott1002Italy2026-06-18
Adams D Caldarera1003Germany2026-06-09
Maria G Kusko1004France2026-06-12
Aruna J Malet1005Japan2026-06-17
Jeanfrancois M Venere1006Argentina2026-06-23
Ashley Q Poquette1007Italy2026-06-18
Leon K Vocelka1008Italy2026-06-14
Jeanfrancois N Whobrey1009Australia2026-06-12
Munro O Poquette1010Japan2026-07-03
Aika I Butt1011Germany2026-06-16
Leja B Foller1012Canada2026-06-30
Maisha P Garufi1013Japan2026-06-16
Alejandro C Whobrey1014United Kingdom2026-06-28
Alejandro P Ostrosky1015France2026-07-03
Wickens D Garufi1016France2026-06-30
Salvatore Y Wieser1017Russia2026-07-01
Jefferson T Albares1018Japan2026-06-09
Ashley V Glick1019Argentina2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford X AmigonSpainOnyama Limba NEW
Kadeem K KolmetzGermanyIoni Bowcher UNQUALIFIED
Clifford F BowleyRussiaOnyama Limba RENEWAL
Aruna I KolmetzAustraliaAmy Elsner RENEWAL
Aika M SergiBrazilOnyama Limba NEGOTIATION
Adams T DarakjyJapanBernardo Dominic QUALIFIED
Sinclair X StockhamAustraliaStephen Shaw NEW
Wickens I GarufiFranceStephen Shaw NEW
Antonio N GarufiItalyAsiya Javayant PROPOSAL
Arvin N PerinCanadaElwin Sharvill RENEWAL
Juan C PaprockiSpainAsiya Javayant QUALIFIED
Julie H RoysterUnited KingdomXuxue Feng RENEWAL
Rodrigues M GarufiRussiaIvan Magalhaes UNQUALIFIED
Jones A GillianCanadaStephen Shaw NEGOTIATION
Mayumi O CaldareraBrazilAsiya Javayant UNQUALIFIED
Greenwood Z FlosiBrazilBernardo Dominic NEW
Maria E MorascaCanadaElwin Sharvill NEW
Izzy M ShinkoArgentinaAmy Elsner RENEWAL
Jones B MaletAustraliaElwin Sharvill NEGOTIATION
Cody M WhobreyRussiaXuxue Feng NEGOTIATION
Johnson W PerinGermanyStephen Shaw NEGOTIATION
Izzy E MacleadArgentinaAnna Fali RENEWAL
Leon H AmigonJapanXuxue Feng UNQUALIFIED
Aruna N SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Chavez O KuskoItalyElwin Sharvill QUALIFIED
Greenwood Z IturbideJapanIvan Magalhaes QUALIFIED
Mujtaba T WaycottJapanAsiya Javayant NEGOTIATION
Maria B MarrierArgentinaXuxue Feng NEGOTIATION
Francesco Q OldroydUnited KingdomElwin Sharvill QUALIFIED
Salvatore D VocelkaFranceIoni Bowcher NEW
Chavez N BriddickAustraliaBernardo Dominic NEW
Faith E VenereCanadaIoni Bowcher PROPOSAL
Salvatore X AlbaresArgentinaIoni Bowcher QUALIFIED
Jefferson C StockhamFranceStephen Shaw PROPOSAL
Aika G OstroskySpainXuxue Feng NEGOTIATION
Jennifer A MaletRussiaAsiya Javayant NEGOTIATION
Octavia W SaylorsRussiaXuxue Feng UNQUALIFIED
Tony S FerenczFranceStephen Shaw RENEWAL
Octavia P CaldareraItalyOnyama Limba PROPOSAL
Rodrigues F RutaArgentinaAnna 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>