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
Mayumi D CaudyFranceElwin Sharvill PROPOSAL
Sinclair A GarufiAustraliaStephen Shaw NEW
Kaitlin C FollerFranceAmy Elsner UNQUALIFIED
Aika U AmigonArgentinaIvan Magalhaes PROPOSAL
Octavia K KolmetzSpainIoni Bowcher NEGOTIATION
Wickens V AlbaresBrazilXuxue Feng NEW
Arvin D RoysterJapanAnna Fali NEGOTIATION
Julie H KolmetzGermanyIvan Magalhaes PROPOSAL
Leon P OstroskyArgentinaStephen Shaw QUALIFIED
Mujtaba K SlusarskiBrazilAmy Elsner NEGOTIATION
Octavia A VenereArgentinaElwin Sharvill RENEWAL
Nicolas P WaycottItalyXuxue Feng QUALIFIED
Deepesh Q RoysterBrazilXuxue Feng NEW
Cody B CampainCanadaAnna Fali NEGOTIATION
Aditya R GauchoBrazilXuxue Feng NEW
Tony F CampainArgentinaAnna Fali NEW
Deepesh A AmigonRussiaElwin Sharvill QUALIFIED
Claire V TollnerBrazilIvan Magalhaes RENEWAL
Aika I CaldareraItalyOnyama Limba PROPOSAL
Silvio G InouyeUnited KingdomAsiya Javayant PROPOSAL
Tony V MacleadSpainXuxue Feng NEW
Deepesh I SchemmerFranceElwin Sharvill RENEWAL
Silvio D MarrierUnited KingdomXuxue Feng RENEWAL
Morrow T FerenczIndiaElwin Sharvill RENEWAL
Nicolas J DoeBrazilBernardo Dominic RENEWAL
Aditya K KuskoBrazilBernardo Dominic QUALIFIED
Juan G FollerRussiaElwin Sharvill QUALIFIED
Smith Z PerinArgentinaXuxue Feng NEGOTIATION
Jones Z WieserSpainAsiya Javayant NEGOTIATION
Murillo C GarufiJapanElwin Sharvill UNQUALIFIED
Aruna C VenereArgentinaElwin Sharvill QUALIFIED
Francesco G FerenczGermanyBernardo Dominic PROPOSAL
Rodrigues W OldroydGermanyIvan Magalhaes RENEWAL
Emily K FlosiBrazilAnna Fali RENEWAL
Salvatore W ButtSpainStephen Shaw UNQUALIFIED
Mujtaba U MaletArgentinaStephen Shaw PROPOSAL
Tony W NickaAustraliaAsiya Javayant RENEWAL
Tony X ShinkoSpainElwin Sharvill RENEWAL
Nicolas G VenereFranceAmy Elsner RENEWAL
Claire O PaprockiRussiaAsiya Javayant NEW
Stacey B PoquetteUnited KingdomElwin Sharvill NEW
Claire N NickaArgentinaXuxue Feng RENEWAL
Isabel H DarakjyCanadaAnna Fali RENEWAL
Cody N SergiRussiaAnna Fali RENEWAL
Rodrigues N WhobreyJapanAsiya Javayant RENEWAL
Tony H DoeIndiaIvan Magalhaes QUALIFIED
Salvatore C DarakjyItalyOnyama Limba PROPOSAL
Claire O PaprockiArgentinaXuxue Feng RENEWAL
Stacey L CaudyCanadaAmy Elsner RENEWAL
Chavez Y TollnerFranceAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Tony U AlbaresSpainAnna Fali PROPOSAL
Salvatore R IturbideIndiaBernardo Dominic UNQUALIFIED
Chavez N CaldareraJapanElwin Sharvill PROPOSAL
Juan D FerenczSpainAnna Fali NEW
Smith V RutaCanadaIoni Bowcher NEGOTIATION
Ivar V VocelkaBrazilAnna Fali QUALIFIED
Aruna G AlbaresUnited KingdomBernardo Dominic QUALIFIED
Alejandro M NickaRussiaOnyama Limba NEW
Munro F CaudyJapanXuxue Feng NEGOTIATION
Sinclair Q AmigonJapanStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi B AmigonRussia2026-07-16Rousseaux, Michael Esq NEGOTIATION55Asiya Javayant
1001Juan B IturbideGermany2026-07-01Rousseaux, Michael Esq NEW79Amy Elsner
1002Francesco B AlbaresArgentina2026-07-25King, Christopher A Esq PROPOSAL52Anna Fali
1003Ricardo D SergiUnited Kingdom2026-06-29Buckley Miller Wright UNQUALIFIED94Ioni Bowcher
1004Sinclair S KolmetzCanada2026-06-26Benton, John B Jr QUALIFIED39Anna Fali
1005Murillo K NestleFrance2026-07-08Commercial Press NEGOTIATION73Ioni Bowcher
1006Smith W VocelkaFrance2026-07-09Morlong Associates QUALIFIED75Ioni Bowcher
1007Ashley X CampainFrance2026-06-27Chemel, James L Cpa UNQUALIFIED94Elwin Sharvill
1008James M PaprockiJapan2026-07-23Rangoni Of Florence UNQUALIFIED71Anna Fali
1009Rodrigues F WhobreyBrazil2026-06-29Chanay, Jeffrey A Esq NEGOTIATION97Ivan Magalhaes
1010Antonio W RutaBrazil2026-07-19Commercial Press PROPOSAL19Bernardo Dominic
1011Adams Q ShinkoBrazil2026-07-19Feiner Bros RENEWAL11Onyama Limba
1012David G GillianRussia2026-07-21Benton, John B Jr NEW27Amy Elsner
1013Silvio L DoeBrazil2026-07-07Feltz Printing Service NEGOTIATION36Anna Fali
1014Adams K StockhamSpain2026-07-15King, Christopher A Esq NEGOTIATION70Xuxue Feng
1015Stacey Q IturbideSpain2026-06-28Feltz Printing Service UNQUALIFIED99Ioni Bowcher
1016Leon Z BowleyItaly2026-07-13Rousseaux, Michael Esq NEW98Bernardo Dominic
1017Ivar P GarufiUnited Kingdom2026-06-27Commercial Press RENEWAL3Bernardo Dominic
1018Mujtaba V WieserSpain2026-06-30Chapman, Ross E Esq PROPOSAL77Ivan Magalhaes
1019Leja M DilliardUnited Kingdom2026-07-13Chemel, James L Cpa QUALIFIED49Anna Fali
1020Jones Q KolmetzFrance2026-07-25Buckley Miller Wright PROPOSAL37Asiya Javayant
1021Ashley R CaldareraSpain2026-07-02Rousseaux, Michael Esq PROPOSAL58Ivan Magalhaes
1022David R ShinkoItaly2026-07-24Rangoni Of Florence UNQUALIFIED43Onyama Limba
1023Greenwood N KolmetzSpain2026-07-09Feiner Bros NEW94Ivan Magalhaes
1024Darci I MorascaFrance2026-07-06Chanay, Jeffrey A Esq NEW31Ioni Bowcher
1025Deepesh X CaudyArgentina2026-07-08Truhlar And Truhlar Attys QUALIFIED42Asiya Javayant
1026Misaki H MarrierGermany2026-07-01Feiner Bros NEGOTIATION57Amy Elsner
1027Clifford C OldroydArgentina2026-07-14Commercial Press PROPOSAL63Asiya Javayant
1028Chavez W GillianGermany2026-07-18Buckley Miller Wright PROPOSAL37Ivan Magalhaes
1029Greenwood B NickaArgentina2026-07-03King, Christopher A Esq QUALIFIED95Bernardo Dominic
1030Jefferson B RulapaughIndia2026-07-25Dorl, James J Esq NEW86Amy Elsner
1031Chavez N ShinkoItaly2026-07-01Feiner Bros PROPOSAL67Stephen Shaw
1032Ricardo X ButtUnited Kingdom2026-07-25Feiner Bros UNQUALIFIED39Xuxue Feng
1033Isabel R DarakjyFrance2026-07-16Benton, John B Jr PROPOSAL50Bernardo Dominic
1034Ivar H FollerAustralia2026-07-12Dorl, James J Esq NEW15Xuxue Feng
1035Adams Z RoysterArgentina2026-07-05Chapman, Ross E Esq PROPOSAL54Amy Elsner
1036James K StockhamCanada2026-07-23Truhlar And Truhlar Attys NEGOTIATION65Amy Elsner
1037Salvatore U KolmetzArgentina2026-07-20Chemel, James L Cpa NEW1Xuxue Feng
1038Mujtaba L BriddickArgentina2026-07-23Buckley Miller Wright NEW48Xuxue Feng
1039Octavia B MacleadIndia2026-06-28Printing Dimensions UNQUALIFIED7Asiya Javayant
1040Ashley Q CampainUnited Kingdom2026-07-11Benton, John B Jr PROPOSAL42Anna Fali
1041Mayumi U KolmetzRussia2026-07-03Dorl, James J Esq PROPOSAL78Elwin Sharvill
1042Leja J WieserGermany2026-07-01Truhlar And Truhlar Attys RENEWAL92Bernardo Dominic
1043Antonio J WieserUnited Kingdom2026-07-10Feltz Printing Service NEW15Onyama Limba
1044Silvio Z MorascaCanada2026-07-25Rangoni Of Florence UNQUALIFIED69Ioni Bowcher
1045Leja V BowleySpain2026-07-21Commercial Press NEGOTIATION36Ivan Magalhaes
1046Arvin G CaudyGermany2026-07-22Printing Dimensions NEW45Ivan Magalhaes
1047Ricardo W ButtUnited Kingdom2026-07-14Chanay, Jeffrey A Esq NEW93Elwin Sharvill
1048Faith H ShinkoJapan2026-07-04Rousseaux, Michael Esq RENEWAL85Bernardo Dominic
1049Emily G SergiIndia2026-07-13Chapman, Ross E Esq UNQUALIFIED8Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Munro J DilliardJapanAmy Elsner PROPOSAL
Salvatore N NestleIndiaXuxue Feng PROPOSAL
Emily J PoquetteUnited KingdomStephen Shaw NEGOTIATION
Costa X FerenczFranceAmy Elsner UNQUALIFIED
Jones V RimRussiaOnyama Limba QUALIFIED
Aditya D MorascaArgentinaIvan Magalhaes RENEWAL
Aditya F WhobreySpainAsiya Javayant QUALIFIED
Arvin U ChuiJapanIoni Bowcher NEGOTIATION
Sinclair I WieserBrazilXuxue Feng NEW
Munro C OstroskySpainIvan Magalhaes NEW
Maria X DarakjyBrazilOnyama Limba QUALIFIED
Jennifer V BriddickCanadaOnyama Limba UNQUALIFIED
Arvin H WhobreyIndiaAmy Elsner UNQUALIFIED
Greenwood T CaldareraGermanyXuxue Feng NEW
Smith Q WhobreyAustraliaStephen Shaw NEGOTIATION
Ashley Z SaylorsItalyAsiya Javayant UNQUALIFIED
Adams Y IturbideRussiaStephen Shaw PROPOSAL
Deepesh C GauchoCanadaOnyama Limba NEW
Tony V RoysterCanadaAmy Elsner NEW
Wickens R MacleadGermanyStephen Shaw NEW
Aditya E ChuiIndiaAsiya Javayant NEW
Aruna D GlickItalyBernardo Dominic RENEWAL
Isabel L WaycottAustraliaAsiya Javayant NEGOTIATION
Maria U MaletCanadaAnna Fali UNQUALIFIED
Misaki C SlusarskiIndiaAnna Fali UNQUALIFIED
James W CaudyIndiaBernardo Dominic NEGOTIATION
Murillo F FigeroaArgentinaIoni Bowcher PROPOSAL
Misaki A BriddickBrazilAsiya Javayant UNQUALIFIED
Izzy X GillianBrazilIvan Magalhaes NEW
Ashley B MarrierArgentinaAsiya Javayant NEW
Aditya A CaudyCanadaIoni Bowcher NEGOTIATION
Darci T CaudySpainIvan Magalhaes RENEWAL
Maisha P AmigonRussiaAsiya Javayant QUALIFIED
Cody A NestleIndiaAnna Fali UNQUALIFIED
Faith R BologniaFranceXuxue Feng NEGOTIATION
Chavez K CaldareraSpainIvan Magalhaes NEGOTIATION
Emily A MacleadUnited KingdomIvan Magalhaes NEW
Ricardo D GauchoUnited KingdomIoni Bowcher NEGOTIATION
Murillo K ButtIndiaAsiya Javayant NEW
Tony Z GauchoItalyStephen Shaw UNQUALIFIED
Deepesh H GarufiJapanBernardo Dominic NEW
Chavez X InouyeAustraliaElwin Sharvill NEGOTIATION
Jennifer Q PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Greenwood U GlickItalyIvan Magalhaes NEW
Aika U VocelkaRussiaIvan Magalhaes UNQUALIFIED
Izzy D OldroydFranceIvan Magalhaes NEW
Isabel O DilliardJapanAmy Elsner PROPOSAL
Jeanfrancois L KuskoJapanXuxue Feng NEW
Emily B FigeroaGermanyAsiya Javayant NEW
Isabel U DilliardAustraliaBernardo Dominic RENEWAL
Frozen Columns
Name
Sinclair I Caldarera
Salvatore T Inouye
Misaki C Briddick
Ivar M Royster
Murillo K Rulapaugh
Morrow D Chui
Arvin E Waycott
Aditya S Rulapaugh
Johnson U Bolognia
Nicolas S Stockham
David W Gaucho
Maisha D Maclead
Aditya K Venere
Julie Q Nestle
Morrow E Maclead
Misaki K Butt
Nicolas A Bowley
Mujtaba A Ostrosky
Sinclair I Schemmer
Smith L Rim
Chavez Z Poquette
Juan O Bolognia
Rodrigues K Schemmer
Rodrigues T Morasca
Salvatore M Ferencz
David U Chui
Izzy T Malet
Isabel D Tollner
Jefferson B Whobrey
Emily B Foller
Stacey V Gillian
Francesco P Perin
Cody O Saylors
Juan P Caldarera
James Z Inouye
Costa L Waycott
Kadeem G Malet
Francesco Z Flosi
Morrow S Morasca
Stacey Y Figeroa
Silvio E Sergi
Clifford O Malet
Maria F Dilliard
James X Morasca
Jennifer N Kolmetz
Munro M Paprocki
Juan Q Caudy
Ricardo N Chui
Juan R Inouye
Leon K Stockham
IdCountryDate
1000Germany2026-07-02
1001Argentina2026-07-23
1002Italy2026-07-02
1003Spain2026-06-28
1004Japan2026-06-28
1005India2026-07-04
1006India2026-07-18
1007Russia2026-06-26
1008Argentina2026-07-08
1009United Kingdom2026-07-04
1010United Kingdom2026-06-28
1011Brazil2026-07-22
1012United Kingdom2026-07-23
1013Australia2026-07-09
1014Russia2026-07-18
1015Argentina2026-06-28
1016Brazil2026-06-30
1017United Kingdom2026-07-20
1018Spain2026-06-26
1019United Kingdom2026-07-15
1020Argentina2026-06-29
1021Spain2026-07-12
1022Brazil2026-07-17
1023Australia2026-06-29
1024Germany2026-07-24
1025France2026-07-24
1026Canada2026-07-10
1027Italy2026-07-11
1028Australia2026-07-16
1029India2026-07-07
1030France2026-07-03
1031United Kingdom2026-07-13
1032Canada2026-06-29
1033Japan2026-07-08
1034Australia2026-07-17
1035Canada2026-07-10
1036Japan2026-07-15
1037France2026-06-30
1038Japan2026-07-02
1039Argentina2026-07-11
1040Canada2026-07-14
1041Spain2026-07-13
1042Australia2026-07-15
1043Brazil2026-07-08
1044Brazil2026-07-16
1045Australia2026-07-10
1046Japan2026-07-19
1047Germany2026-07-20
1048Brazil2026-07-13
1049Germany2026-07-09

On-Demand Data

NameIdCountryDate
Isabel I Vocelka1000Argentina2026-07-09
Alejandro S Bolognia1001United Kingdom2026-07-24
David Q Caudy1002Australia2026-07-10
Izzy J Rim1003Brazil2026-07-22
Misaki J Maclead1004Russia2026-07-18
Munro S Briddick1005Germany2026-07-01
Mujtaba Y Slusarski1006Argentina2026-07-12
Clifford T Saylors1007United Kingdom2026-07-05
Leja S Maclead1008Spain2026-07-07
Cody Y Ferencz1009Spain2026-07-19
Leja R Vocelka1010Japan2026-07-14
Arvin I Ferencz1011Canada2026-07-15
Aruna X Kusko1012Australia2026-07-01
Julie Z Malet1013Italy2026-07-01
Chavez V Albares1014Canada2026-07-08
Jennifer C Inouye1015Germany2026-07-04
Greenwood Z Paprocki1016Brazil2026-07-18
Juan R Morasca1017Spain2026-07-04
Jeanfrancois T Whobrey1018Canada2026-07-04
Misaki W Schemmer1019Japan2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James U ChuiItalyIoni Bowcher UNQUALIFIED
Julie Y FigeroaFranceIoni Bowcher NEGOTIATION
Jefferson Z NestleFranceOnyama Limba QUALIFIED
Clifford D GauchoRussiaStephen Shaw NEGOTIATION
Cody F GillianIndiaIoni Bowcher NEGOTIATION
Wickens A SergiCanadaOnyama Limba NEW
Izzy V FigeroaBrazilStephen Shaw PROPOSAL
Costa H RulapaughAustraliaIoni Bowcher QUALIFIED
David J GlickIndiaBernardo Dominic NEW
Jennifer Z MorascaArgentinaElwin Sharvill UNQUALIFIED
Aruna C KolmetzRussiaElwin Sharvill RENEWAL
Aditya N ShinkoGermanyIoni Bowcher QUALIFIED
Sinclair U CaudyRussiaAnna Fali RENEWAL
Clifford C VenereIndiaElwin Sharvill QUALIFIED
Jennifer W MorascaIndiaElwin Sharvill PROPOSAL
Alejandro T MacleadBrazilElwin Sharvill QUALIFIED
Adams F SergiIndiaAmy Elsner UNQUALIFIED
Smith X MarrierIndiaIvan Magalhaes QUALIFIED
Deepesh F ChuiFranceAsiya Javayant NEGOTIATION
Izzy D InouyeAustraliaAnna Fali QUALIFIED
Izzy J SergiBrazilStephen Shaw NEGOTIATION
Ivar E StockhamUnited KingdomStephen Shaw RENEWAL
Jeanfrancois K KolmetzItalyAsiya Javayant RENEWAL
Chavez Y StensethSpainIoni Bowcher UNQUALIFIED
Smith B CaldareraBrazilElwin Sharvill UNQUALIFIED
Sinclair J FigeroaSpainBernardo Dominic PROPOSAL
Jeanfrancois I CaldareraItalyAnna Fali NEGOTIATION
Aika O WhobreyFranceElwin Sharvill PROPOSAL
Jennifer O VenereRussiaIoni Bowcher NEW
Munro I FollerBrazilAnna Fali NEGOTIATION
Isabel Y PaprockiRussiaElwin Sharvill UNQUALIFIED
Aditya B MaletGermanyAmy Elsner PROPOSAL
Maria E VocelkaSpainXuxue Feng PROPOSAL
Leja L SergiIndiaAsiya Javayant RENEWAL
Izzy Z GauchoAustraliaIvan Magalhaes PROPOSAL
Francesco I FerenczJapanOnyama Limba RENEWAL
Aditya O InouyeSpainOnyama Limba QUALIFIED
Aditya P KuskoItalyIvan Magalhaes QUALIFIED
Costa W VenereFranceBernardo Dominic QUALIFIED
Leja C GlickSpainElwin Sharvill NEGOTIATION

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