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
Ivar L GillianAustraliaStephen Shaw UNQUALIFIED
Stacey Q CampainItalyIoni Bowcher RENEWAL
Greenwood P VocelkaCanadaXuxue Feng NEGOTIATION
Greenwood F GlickSpainIoni Bowcher NEW
Emily D RoysterCanadaOnyama Limba NEW
Nicolas F KuskoGermanyBernardo Dominic NEW
Faith R PoquetteIndiaOnyama Limba NEW
Ivar G RoysterIndiaXuxue Feng NEW
Silvio F ChuiArgentinaBernardo Dominic NEGOTIATION
Kaitlin G StockhamGermanyAnna Fali NEGOTIATION
Jennifer K SaylorsUnited KingdomBernardo Dominic PROPOSAL
Aika C AlbaresCanadaAmy Elsner QUALIFIED
Deepesh J BowleyRussiaAsiya Javayant RENEWAL
Antonio E OldroydCanadaAnna Fali PROPOSAL
Emily X PaprockiSpainIoni Bowcher RENEWAL
Sinclair C MaletRussiaXuxue Feng QUALIFIED
Johnson P TollnerArgentinaIoni Bowcher NEW
Mayumi F ShinkoUnited KingdomAsiya Javayant QUALIFIED
Chavez U NickaArgentinaIvan Magalhaes RENEWAL
Mayumi W BowleyArgentinaIvan Magalhaes NEW
Julie J WaycottAustraliaStephen Shaw PROPOSAL
Nicolas E OstroskyFranceAsiya Javayant QUALIFIED
Antonio U DilliardIndiaElwin Sharvill UNQUALIFIED
Deepesh U AlbaresRussiaElwin Sharvill RENEWAL
Chavez O MorascaJapanBernardo Dominic PROPOSAL
Stacey H CaldareraJapanAnna Fali RENEWAL
Faith Y PoquetteIndiaAnna Fali NEW
Octavia A MaletRussiaAnna Fali UNQUALIFIED
Mujtaba M ButtBrazilBernardo Dominic NEGOTIATION
Deepesh R MaletFranceOnyama Limba NEW
Alejandro U OstroskyIndiaAsiya Javayant PROPOSAL
Murillo V MaletBrazilAmy Elsner NEGOTIATION
Emily C FollerUnited KingdomAsiya Javayant NEW
Aika J WaycottSpainXuxue Feng PROPOSAL
Smith X SchemmerItalyAsiya Javayant UNQUALIFIED
Leon X FlosiBrazilAsiya Javayant NEW
Misaki E MaletArgentinaBernardo Dominic NEW
David Z GlickItalyIvan Magalhaes PROPOSAL
Mujtaba Y SlusarskiJapanBernardo Dominic UNQUALIFIED
Rodrigues T FlosiJapanStephen Shaw PROPOSAL
Emily B BriddickCanadaAmy Elsner RENEWAL
Kaitlin W MorascaIndiaIvan Magalhaes UNQUALIFIED
David A MaletFranceAsiya Javayant QUALIFIED
Salvatore N OstroskyCanadaAmy Elsner NEGOTIATION
Deepesh H PerinUnited KingdomElwin Sharvill NEGOTIATION
Clifford O RulapaughJapanAsiya Javayant PROPOSAL
James R CaldareraCanadaOnyama Limba NEGOTIATION
Isabel Z OstroskyBrazilIoni Bowcher RENEWAL
Aruna V CampainAustraliaAsiya Javayant NEW
Maria O RutaArgentinaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Johnson F BriddickBrazilStephen Shaw RENEWAL
David U StensethArgentinaAnna Fali NEW
Aditya I AmigonGermanyStephen Shaw PROPOSAL
Juan S RulapaughJapanIoni Bowcher NEGOTIATION
Francesco N AlbaresJapanBernardo Dominic UNQUALIFIED
Antonio D WieserCanadaIvan Magalhaes UNQUALIFIED
Costa X ButtJapanOnyama Limba NEW
Darci U MaletSpainOnyama Limba NEGOTIATION
Mayumi Y BowleyAustraliaElwin Sharvill UNQUALIFIED
Julie Q GarufiRussiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois J AlbaresRussia2026-08-03King, Christopher A Esq UNQUALIFIED39Elwin Sharvill
1001Chavez H CampainSpain2026-07-23Printing Dimensions QUALIFIED48Stephen Shaw
1002Leja Q FlosiIndia2026-07-29Truhlar And Truhlar Attys QUALIFIED57Amy Elsner
1003Alejandro W WhobreyBrazil2026-07-22King, Christopher A Esq QUALIFIED48Ioni Bowcher
1004Octavia X CampainUnited Kingdom2026-07-20Rangoni Of Florence QUALIFIED48Bernardo Dominic
1005Jennifer X CaudyUnited Kingdom2026-07-14Buckley Miller Wright NEGOTIATION10Bernardo Dominic
1006Emily P FollerFrance2026-07-21Feiner Bros PROPOSAL91Anna Fali
1007Rodrigues Y DoeItaly2026-07-17King, Christopher A Esq QUALIFIED49Asiya Javayant
1008Kaitlin G FollerAustralia2026-07-05Printing Dimensions QUALIFIED8Anna Fali
1009Kaitlin Q TollnerFrance2026-07-31Benton, John B Jr UNQUALIFIED82Asiya Javayant
1010Sinclair H GarufiIndia2026-07-26Dorl, James J Esq NEGOTIATION87Ioni Bowcher
1011Rodrigues A GauchoSpain2026-07-05Dorl, James J Esq PROPOSAL99Amy Elsner
1012Munro C MorascaCanada2026-07-07Chapman, Ross E Esq QUALIFIED26Anna Fali
1013Mayumi S StensethSpain2026-07-18Rangoni Of Florence RENEWAL43Elwin Sharvill
1014Isabel R MarrierArgentina2026-07-28King, Christopher A Esq NEW76Elwin Sharvill
1015Deepesh F TollnerCanada2026-07-31Chanay, Jeffrey A Esq NEW74Asiya Javayant
1016Mujtaba J AmigonRussia2026-07-17Feltz Printing Service NEGOTIATION99Asiya Javayant
1017Leon J NickaGermany2026-07-16Dorl, James J Esq QUALIFIED46Amy Elsner
1018Ricardo L KuskoGermany2026-07-20Printing Dimensions QUALIFIED46Stephen Shaw
1019Isabel D KuskoRussia2026-08-02Chapman, Ross E Esq UNQUALIFIED12Asiya Javayant
1020Sinclair C AmigonFrance2026-07-14Feiner Bros QUALIFIED15Anna Fali
1021Antonio Z RimRussia2026-08-01Feltz Printing Service NEW36Stephen Shaw
1022Emily R OstroskyGermany2026-07-26Truhlar And Truhlar Attys RENEWAL30Onyama Limba
1023Jeanfrancois H NickaGermany2026-07-12Rousseaux, Michael Esq PROPOSAL28Anna Fali
1024Ashley Q MaletJapan2026-07-15Truhlar And Truhlar Attys NEW90Xuxue Feng
1025Tony V RimItaly2026-07-27Printing Dimensions PROPOSAL46Ioni Bowcher
1026Wickens R VocelkaItaly2026-07-12Chanay, Jeffrey A Esq NEGOTIATION30Ioni Bowcher
1027Kaitlin J ChuiSpain2026-07-11Chanay, Jeffrey A Esq NEW35Amy Elsner
1028Maria O InouyeAustralia2026-07-07Feiner Bros PROPOSAL29Anna Fali
1029Jeanfrancois N GillianArgentina2026-07-13Rousseaux, Michael Esq UNQUALIFIED19Elwin Sharvill
1030James X StockhamCanada2026-07-29Chemel, James L Cpa NEGOTIATION88Onyama Limba
1031Clifford C FerenczSpain2026-07-11Chemel, James L Cpa QUALIFIED44Stephen Shaw
1032Leja M SlusarskiItaly2026-07-12Feiner Bros RENEWAL92Ivan Magalhaes
1033James K RimCanada2026-07-20King, Christopher A Esq RENEWAL12Stephen Shaw
1034Murillo H ChuiAustralia2026-07-21Morlong Associates PROPOSAL76Ivan Magalhaes
1035Antonio A OldroydJapan2026-07-17Rousseaux, Michael Esq NEW32Anna Fali
1036Salvatore G FigeroaCanada2026-07-12Rangoni Of Florence QUALIFIED84Ivan Magalhaes
1037Maisha K AlbaresIndia2026-07-16Feiner Bros PROPOSAL58Ivan Magalhaes
1038Aika P RimBrazil2026-08-03Chanay, Jeffrey A Esq RENEWAL32Bernardo Dominic
1039Mayumi X StensethGermany2026-07-18Commercial Press RENEWAL15Ivan Magalhaes
1040Johnson R RoysterCanada2026-07-31Printing Dimensions QUALIFIED89Anna Fali
1041Ricardo Z PaprockiArgentina2026-07-22Chanay, Jeffrey A Esq NEW70Ioni Bowcher
1042Johnson Z CaldareraBrazil2026-08-01Chemel, James L Cpa UNQUALIFIED49Ivan Magalhaes
1043Misaki Q StockhamUnited Kingdom2026-08-02Chanay, Jeffrey A Esq QUALIFIED18Bernardo Dominic
1044Juan X PerinJapan2026-07-23Rangoni Of Florence QUALIFIED81Ivan Magalhaes
1045Julie R MarrierSpain2026-07-08Commercial Press NEGOTIATION79Bernardo Dominic
1046Munro C PaprockiCanada2026-07-14King, Christopher A Esq NEW48Asiya Javayant
1047Adams L FlosiJapan2026-07-20Feltz Printing Service PROPOSAL20Amy Elsner
1048Mayumi A KolmetzUnited Kingdom2026-07-27Chemel, James L Cpa QUALIFIED64Ioni Bowcher
1049Maria E StensethUnited Kingdom2026-07-28Dorl, James J Esq NEW42Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba Y NestleArgentinaIvan Magalhaes UNQUALIFIED
Jones Q StockhamUnited KingdomAmy Elsner QUALIFIED
Aika G WieserItalyStephen Shaw PROPOSAL
Octavia R NickaRussiaAmy Elsner UNQUALIFIED
Munro B WaycottIndiaAsiya Javayant NEGOTIATION
Aruna B VocelkaAustraliaAsiya Javayant UNQUALIFIED
Antonio I DoeIndiaXuxue Feng PROPOSAL
Jeanfrancois N OldroydJapanXuxue Feng NEW
Cody Y NickaFranceAmy Elsner RENEWAL
Smith Z MaletArgentinaBernardo Dominic PROPOSAL
Morrow T ButtGermanyAnna Fali NEW
Johnson N InouyeFranceIvan Magalhaes PROPOSAL
Leon W ShinkoUnited KingdomOnyama Limba RENEWAL
Morrow G OldroydSpainIvan Magalhaes NEGOTIATION
David P MacleadSpainStephen Shaw QUALIFIED
Cody X CaudyUnited KingdomElwin Sharvill RENEWAL
Silvio Y SergiSpainBernardo Dominic RENEWAL
Juan C StensethSpainAmy Elsner NEW
Julie D BriddickFranceOnyama Limba PROPOSAL
Ricardo C IturbideFranceXuxue Feng RENEWAL
Faith D BowleyGermanyAmy Elsner NEGOTIATION
Sinclair E TollnerArgentinaXuxue Feng UNQUALIFIED
Claire Z WhobreySpainStephen Shaw UNQUALIFIED
Johnson U FollerAustraliaAnna Fali QUALIFIED
Claire P NestleArgentinaIvan Magalhaes UNQUALIFIED
Julie T StockhamIndiaElwin Sharvill NEGOTIATION
Greenwood P SchemmerUnited KingdomAnna Fali NEGOTIATION
Cody J FigeroaAustraliaAmy Elsner NEGOTIATION
Claire X TollnerAustraliaStephen Shaw NEGOTIATION
Stacey J StensethFranceBernardo Dominic UNQUALIFIED
Leon W StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Morrow U NickaCanadaAsiya Javayant NEGOTIATION
Kadeem D ChuiAustraliaAnna Fali PROPOSAL
Maria M VenereUnited KingdomAmy Elsner UNQUALIFIED
Mayumi N GillianJapanElwin Sharvill NEGOTIATION
Ashley G SchemmerIndiaElwin Sharvill NEW
Izzy K AmigonFranceXuxue Feng QUALIFIED
Juan H MarrierRussiaAsiya Javayant QUALIFIED
Alejandro K WieserArgentinaIoni Bowcher RENEWAL
Misaki G RutaUnited KingdomBernardo Dominic NEW
Maisha E NestleGermanyStephen Shaw RENEWAL
Darci E MacleadCanadaOnyama Limba NEW
Salvatore Y GauchoGermanyStephen Shaw QUALIFIED
Emily S WhobreyRussiaAnna Fali PROPOSAL
David Z RimArgentinaIoni Bowcher RENEWAL
Ashley E SaylorsJapanAmy Elsner NEGOTIATION
Smith G MorascaBrazilBernardo Dominic NEGOTIATION
Greenwood U CaudyArgentinaOnyama Limba RENEWAL
Salvatore D KolmetzFranceStephen Shaw NEGOTIATION
Silvio W RulapaughIndiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Ashley G Poquette
Chavez D Poquette
Cody M Rim
Izzy X Maclead
Greenwood A Royster
Mayumi J Bowley
Jefferson G Malet
Rodrigues N Ferencz
Aruna J Doe
Leon Q Iturbide
Antonio D Kusko
Jones Y Malet
Stacey N Butt
Aruna X Morasca
Maisha P Whobrey
Jefferson F Malet
Morrow V Doe
Greenwood Q Bolognia
Sinclair I Malet
Izzy E Stenseth
Deepesh D Gillian
Jones Z Campain
James I Bolognia
Morrow R Caudy
Jeanfrancois B Dilliard
Jones Y Perin
Smith D Royster
Juan T Caldarera
Nicolas U Kolmetz
Aruna H Morasca
Faith L Saylors
Arvin C Malet
Wickens U Tollner
Alejandro S Chui
Morrow J Stockham
Jennifer Q Garufi
Jennifer V Royster
Munro G Glick
Murillo O Caldarera
Claire N Garufi
Ashley H Shinko
Isabel Q Maclead
Jeanfrancois J Figeroa
Aika J Figeroa
Isabel W Rim
Octavia O Ostrosky
Deepesh V Foller
Smith S Vocelka
Wickens Y Wieser
Mujtaba Y Sergi
IdCountryDate
1000Russia2026-07-17
1001France2026-07-08
1002Spain2026-08-02
1003Spain2026-07-30
1004Japan2026-07-23
1005Italy2026-07-05
1006Russia2026-07-25
1007Germany2026-08-01
1008Argentina2026-07-20
1009Russia2026-07-18
1010Australia2026-07-18
1011Japan2026-07-31
1012Canada2026-07-28
1013Argentina2026-07-21
1014Brazil2026-07-17
1015Japan2026-07-05
1016Canada2026-08-01
1017France2026-07-17
1018India2026-07-17
1019Italy2026-07-23
1020United Kingdom2026-07-26
1021Brazil2026-07-11
1022Brazil2026-07-16
1023Australia2026-07-10
1024France2026-07-17
1025Australia2026-07-23
1026Italy2026-07-15
1027Russia2026-07-27
1028Spain2026-07-16
1029Canada2026-07-24
1030Brazil2026-07-18
1031Argentina2026-07-16
1032Spain2026-07-16
1033Argentina2026-07-09
1034Germany2026-07-10
1035France2026-07-17
1036Russia2026-07-15
1037Brazil2026-07-26
1038France2026-07-07
1039Spain2026-07-16
1040Italy2026-07-19
1041Japan2026-07-23
1042Australia2026-07-17
1043Spain2026-07-19
1044Germany2026-07-22
1045France2026-07-23
1046Australia2026-07-25
1047Australia2026-07-06
1048Canada2026-07-27
1049Russia2026-07-31

On-Demand Data

NameIdCountryDate
Emily F Rulapaugh1000Japan2026-07-05
Claire Z Doe1001Germany2026-07-14
Stacey B Poquette1002France2026-07-17
Chavez X Amigon1003Germany2026-07-31
Munro L Campain1004Australia2026-08-01
Munro N Inouye1005Argentina2026-08-03
Ashley S Kusko1006United Kingdom2026-07-25
Chavez L Glick1007Canada2026-07-05
Maria O Rulapaugh1008France2026-07-06
Claire E Ferencz1009Argentina2026-07-09
Chavez G Perin1010Brazil2026-07-17
Costa Y Stenseth1011Spain2026-07-19
Chavez Z Waycott1012United Kingdom2026-07-05
Tony G Slusarski1013Australia2026-07-30
Jefferson I Whobrey1014Canada2026-07-19
Emily P Morasca1015United Kingdom2026-07-18
Misaki O Saylors1016Argentina2026-07-29
Juan B Sergi1017France2026-07-22
Johnson Z Rulapaugh1018Spain2026-07-26
Jennifer Q Kolmetz1019Germany2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria X ButtItalyXuxue Feng PROPOSAL
Morrow H NickaArgentinaIvan Magalhaes NEW
Faith F IturbideItalyElwin Sharvill PROPOSAL
Adams S MaletIndiaBernardo Dominic NEW
Faith F SaylorsIndiaBernardo Dominic NEW
Silvio L StensethFranceIoni Bowcher UNQUALIFIED
Rodrigues E BriddickBrazilIoni Bowcher NEGOTIATION
Jennifer M MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Smith R PaprockiBrazilIoni Bowcher UNQUALIFIED
Leja N GauchoAustraliaIvan Magalhaes NEW
Cody T OstroskyUnited KingdomIoni Bowcher QUALIFIED
Antonio A CaudyGermanyOnyama Limba PROPOSAL
Wickens D SaylorsCanadaIvan Magalhaes PROPOSAL
Rodrigues K AmigonRussiaElwin Sharvill NEGOTIATION
Maisha H BriddickAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois U ButtFranceAmy Elsner NEGOTIATION
Sinclair N OldroydIndiaAsiya Javayant PROPOSAL
Stacey R GarufiBrazilIvan Magalhaes PROPOSAL
Maria B GarufiAustraliaAmy Elsner RENEWAL
Faith D SlusarskiCanadaAmy Elsner QUALIFIED
Sinclair F KolmetzUnited KingdomXuxue Feng QUALIFIED
Ricardo J VenereFranceIvan Magalhaes QUALIFIED
Jefferson F WhobreySpainOnyama Limba UNQUALIFIED
Smith E DoeIndiaXuxue Feng PROPOSAL
Juan V RulapaughSpainIvan Magalhaes NEGOTIATION
Chavez A CaldareraSpainOnyama Limba RENEWAL
Jennifer R RutaFranceElwin Sharvill NEW
Aruna G SchemmerGermanyAsiya Javayant PROPOSAL
Ivar Y DoeCanadaStephen Shaw UNQUALIFIED
Smith Y VenereCanadaAmy Elsner RENEWAL
Maria S GillianGermanyAsiya Javayant NEGOTIATION
Jennifer J ChuiIndiaAsiya Javayant PROPOSAL
Leja U SaylorsAustraliaIoni Bowcher NEW
Wickens A PoquetteAustraliaIoni Bowcher RENEWAL
Costa Q FlosiUnited KingdomStephen Shaw PROPOSAL
Jennifer D PaprockiIndiaBernardo Dominic UNQUALIFIED
Chavez T GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem E DarakjyIndiaXuxue Feng PROPOSAL
Mujtaba I RutaIndiaOnyama Limba UNQUALIFIED
Arvin P StensethAustraliaXuxue Feng 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>