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
Munro M DilliardRussiaXuxue Feng RENEWAL
Clifford N CaudyCanadaAsiya Javayant RENEWAL
Maria B TollnerJapanStephen Shaw QUALIFIED
Costa X AmigonJapanAmy Elsner UNQUALIFIED
James S CaudyUnited KingdomAsiya Javayant QUALIFIED
Clifford J WieserItalyAsiya Javayant NEGOTIATION
Morrow C KolmetzRussiaAmy Elsner UNQUALIFIED
Emily C OldroydCanadaStephen Shaw RENEWAL
Isabel F OldroydRussiaIvan Magalhaes QUALIFIED
Faith W FigeroaSpainOnyama Limba RENEWAL
Jeanfrancois L BowleyAustraliaAnna Fali RENEWAL
Faith I ChuiRussiaXuxue Feng PROPOSAL
Mayumi L IturbideJapanAsiya Javayant PROPOSAL
Cody D OstroskyJapanAnna Fali UNQUALIFIED
Arvin B ShinkoBrazilIoni Bowcher UNQUALIFIED
Jefferson T RulapaughAustraliaXuxue Feng UNQUALIFIED
Izzy B IturbideJapanXuxue Feng NEGOTIATION
Mujtaba C MaletItalyAnna Fali NEGOTIATION
Julie H DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Greenwood P WhobreyUnited KingdomAsiya Javayant RENEWAL
Costa Y DarakjyBrazilOnyama Limba UNQUALIFIED
Juan T StensethRussiaAmy Elsner PROPOSAL
Ashley U StensethFranceIoni Bowcher PROPOSAL
Silvio G NestleFranceIoni Bowcher RENEWAL
Faith M ShinkoArgentinaOnyama Limba QUALIFIED
Murillo R RutaGermanyXuxue Feng UNQUALIFIED
James B MorascaJapanOnyama Limba QUALIFIED
Aruna D ShinkoUnited KingdomElwin Sharvill NEW
Kadeem U StockhamCanadaStephen Shaw PROPOSAL
Mujtaba A OstroskyGermanyIvan Magalhaes RENEWAL
Sinclair Y ChuiCanadaBernardo Dominic NEW
Aika M OldroydBrazilBernardo Dominic RENEWAL
Alejandro C FlosiRussiaElwin Sharvill QUALIFIED
Francesco J DarakjyJapanAnna Fali QUALIFIED
Stacey Y PerinRussiaAnna Fali QUALIFIED
Claire W MorascaRussiaAmy Elsner NEGOTIATION
Silvio H GauchoRussiaXuxue Feng NEW
Deepesh Z NickaBrazilAsiya Javayant NEW
Adams O DarakjyJapanIvan Magalhaes RENEWAL
Isabel G CampainUnited KingdomBernardo Dominic PROPOSAL
Cody J RimBrazilAmy Elsner RENEWAL
Costa S VocelkaFranceIoni Bowcher RENEWAL
Jones F KuskoGermanyAmy Elsner NEW
Tony Q SchemmerJapanAmy Elsner NEW
Leja J MorascaAustraliaIvan Magalhaes RENEWAL
Wickens B MacleadFranceOnyama Limba QUALIFIED
Isabel X RimRussiaIvan Magalhaes PROPOSAL
Salvatore V ShinkoBrazilBernardo Dominic NEW
Tony O RulapaughSpainIvan Magalhaes RENEWAL
Leja V MaletFranceStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford P PoquetteBrazilElwin Sharvill PROPOSAL
Silvio E SergiItalyAsiya Javayant QUALIFIED
Nicolas P ButtUnited KingdomAsiya Javayant PROPOSAL
Octavia H SchemmerJapanBernardo Dominic UNQUALIFIED
Francesco I VenereCanadaAmy Elsner UNQUALIFIED
Faith B OldroydItalyOnyama Limba QUALIFIED
Julie J OldroydGermanyIoni Bowcher NEW
Johnson W CaudyBrazilOnyama Limba NEW
Jennifer O SlusarskiBrazilAmy Elsner PROPOSAL
Isabel Y CaudyGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams R MorascaJapan2026-06-27Morlong Associates PROPOSAL59Amy Elsner
1001Ashley S RimSpain2026-06-29Feltz Printing Service PROPOSAL31Xuxue Feng
1002Salvatore I MarrierIndia2026-06-23Rousseaux, Michael Esq PROPOSAL69Ivan Magalhaes
1003Julie J OstroskySpain2026-06-23Rousseaux, Michael Esq UNQUALIFIED90Amy Elsner
1004Clifford B AmigonUnited Kingdom2026-07-15Truhlar And Truhlar Attys RENEWAL16Elwin Sharvill
1005Aditya E AlbaresJapan2026-06-24Feiner Bros QUALIFIED88Stephen Shaw
1006Wickens U DoeGermany2026-07-16Benton, John B Jr NEGOTIATION57Xuxue Feng
1007Deepesh Q DoeArgentina2026-07-21Truhlar And Truhlar Attys NEGOTIATION75Xuxue Feng
1008Darci L MorascaAustralia2026-06-28Feiner Bros NEGOTIATION23Stephen Shaw
1009Jefferson V SlusarskiJapan2026-07-01Chapman, Ross E Esq NEGOTIATION90Asiya Javayant
1010Stacey U BriddickAustralia2026-07-09Chemel, James L Cpa NEGOTIATION63Amy Elsner
1011Tony X GauchoFrance2026-07-21Rousseaux, Michael Esq QUALIFIED30Anna Fali
1012Misaki W RimCanada2026-06-29King, Christopher A Esq UNQUALIFIED2Ioni Bowcher
1013Murillo L VocelkaSpain2026-07-11Rangoni Of Florence QUALIFIED52Asiya Javayant
1014James D TollnerBrazil2026-07-15Rousseaux, Michael Esq PROPOSAL77Ivan Magalhaes
1015Jefferson Y VenereFrance2026-06-23Commercial Press PROPOSAL62Asiya Javayant
1016David C SlusarskiAustralia2026-06-23Dorl, James J Esq UNQUALIFIED65Stephen Shaw
1017Arvin E GarufiItaly2026-07-08King, Christopher A Esq NEGOTIATION18Asiya Javayant
1018Juan Z BologniaArgentina2026-07-08Morlong Associates UNQUALIFIED92Elwin Sharvill
1019Salvatore A FollerArgentina2026-07-10Printing Dimensions NEGOTIATION81Ivan Magalhaes
1020Cody S SergiAustralia2026-07-21Feiner Bros NEGOTIATION89Ivan Magalhaes
1021Adams X DilliardAustralia2026-07-04Benton, John B Jr RENEWAL30Ivan Magalhaes
1022Darci O DarakjyAustralia2026-07-04Printing Dimensions RENEWAL18Elwin Sharvill
1023Darci E PaprockiFrance2026-07-05Morlong Associates PROPOSAL99Bernardo Dominic
1024Antonio S TollnerAustralia2026-07-10Chapman, Ross E Esq PROPOSAL56Asiya Javayant
1025Faith Y SergiCanada2026-06-30Morlong Associates PROPOSAL3Bernardo Dominic
1026Wickens Q SlusarskiSpain2026-07-22Chemel, James L Cpa UNQUALIFIED30Ivan Magalhaes
1027Julie A CampainSpain2026-07-17King, Christopher A Esq NEGOTIATION90Ivan Magalhaes
1028Ricardo N KolmetzIndia2026-07-11King, Christopher A Esq PROPOSAL73Elwin Sharvill
1029Aditya B FlosiArgentina2026-06-27Chemel, James L Cpa PROPOSAL14Ivan Magalhaes
1030Ricardo X SchemmerRussia2026-07-13Chapman, Ross E Esq NEGOTIATION35Anna Fali
1031Faith C CampainBrazil2026-07-13Commercial Press NEW21Amy Elsner
1032Jones X GauchoGermany2026-06-30Commercial Press RENEWAL28Ioni Bowcher
1033Juan B NestleFrance2026-07-11King, Christopher A Esq NEW65Anna Fali
1034Francesco C GillianBrazil2026-07-01Truhlar And Truhlar Attys QUALIFIED76Ivan Magalhaes
1035Murillo K NickaUnited Kingdom2026-07-22Rangoni Of Florence PROPOSAL73Ivan Magalhaes
1036Faith K WieserRussia2026-07-20Morlong Associates UNQUALIFIED84Stephen Shaw
1037Nicolas Q ChuiAustralia2026-06-23Rangoni Of Florence NEW91Stephen Shaw
1038Ashley U MarrierFrance2026-06-29Feltz Printing Service NEGOTIATION69Ivan Magalhaes
1039Morrow L FigeroaItaly2026-07-22Chapman, Ross E Esq QUALIFIED8Onyama Limba
1040Ricardo B CampainArgentina2026-07-20Truhlar And Truhlar Attys QUALIFIED7Stephen Shaw
1041James I BowleySpain2026-06-26Benton, John B Jr QUALIFIED25Elwin Sharvill
1042Juan N MaletGermany2026-06-27Truhlar And Truhlar Attys PROPOSAL66Anna Fali
1043Octavia W SchemmerSpain2026-07-10Rangoni Of Florence PROPOSAL17Bernardo Dominic
1044Maisha G SaylorsIndia2026-06-30Commercial Press PROPOSAL93Elwin Sharvill
1045Rodrigues G KuskoItaly2026-07-04Chanay, Jeffrey A Esq NEGOTIATION34Amy Elsner
1046Francesco A GarufiAustralia2026-07-02Rangoni Of Florence PROPOSAL70Elwin Sharvill
1047Kaitlin I BologniaJapan2026-07-20Dorl, James J Esq RENEWAL44Amy Elsner
1048Kaitlin M SaylorsArgentina2026-06-30Feiner Bros RENEWAL67Elwin Sharvill
1049Kaitlin E SergiUnited Kingdom2026-06-27Feiner Bros RENEWAL28Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Wickens B RutaItalyAmy Elsner NEGOTIATION
Arvin N KuskoCanadaAsiya Javayant NEGOTIATION
Mayumi D GarufiRussiaAsiya Javayant QUALIFIED
Stacey U WieserUnited KingdomStephen Shaw QUALIFIED
Mayumi O WhobreySpainAmy Elsner RENEWAL
Chavez L CaudyGermanyAmy Elsner RENEWAL
Kadeem N AmigonSpainIoni Bowcher NEGOTIATION
James Y MarrierItalyAmy Elsner PROPOSAL
Tony N NickaArgentinaAmy Elsner RENEWAL
Clifford V FerenczSpainOnyama Limba NEGOTIATION
James E PoquetteUnited KingdomAmy Elsner RENEWAL
Johnson N PoquetteJapanXuxue Feng PROPOSAL
Maisha Y AmigonFranceElwin Sharvill NEGOTIATION
Izzy R MaletArgentinaElwin Sharvill RENEWAL
Juan D InouyeGermanyIoni Bowcher NEGOTIATION
Stacey O NestleItalyAsiya Javayant PROPOSAL
Aruna C SergiIndiaAsiya Javayant PROPOSAL
Nicolas X NickaAustraliaIvan Magalhaes PROPOSAL
Cody K FlosiAustraliaIvan Magalhaes QUALIFIED
Cody A PoquetteUnited KingdomIoni Bowcher PROPOSAL
Isabel K GlickSpainAsiya Javayant QUALIFIED
Antonio T FerenczCanadaAmy Elsner NEW
Smith A AlbaresFranceXuxue Feng RENEWAL
Rodrigues T GillianSpainElwin Sharvill NEGOTIATION
Smith F OldroydFranceXuxue Feng RENEWAL
Rodrigues L ButtItalyAnna Fali NEW
Smith I NickaJapanBernardo Dominic PROPOSAL
Nicolas C ShinkoUnited KingdomAmy Elsner NEGOTIATION
Francesco D OstroskyBrazilAmy Elsner UNQUALIFIED
Cody G RoysterUnited KingdomOnyama Limba QUALIFIED
Alejandro O SlusarskiArgentinaXuxue Feng PROPOSAL
Aruna T KolmetzRussiaStephen Shaw RENEWAL
Claire F WhobreyBrazilBernardo Dominic RENEWAL
Clifford Z MaletRussiaAmy Elsner NEW
Sinclair C SaylorsSpainStephen Shaw UNQUALIFIED
Nicolas C MaletAustraliaOnyama Limba UNQUALIFIED
Tony R VocelkaJapanAnna Fali NEW
Mayumi B BowleyArgentinaBernardo Dominic PROPOSAL
Ricardo K MaletFranceElwin Sharvill PROPOSAL
Juan J GlickItalyIvan Magalhaes QUALIFIED
Aditya V RoysterJapanIoni Bowcher UNQUALIFIED
Jennifer X RoysterUnited KingdomElwin Sharvill RENEWAL
Julie M FigeroaBrazilIvan Magalhaes NEW
Emily C BriddickSpainAmy Elsner PROPOSAL
Salvatore Q AlbaresRussiaElwin Sharvill QUALIFIED
Jennifer K GillianArgentinaOnyama Limba QUALIFIED
Leon Z KuskoSpainElwin Sharvill NEW
Julie X FerenczGermanyAnna Fali QUALIFIED
Aika X BologniaAustraliaAmy Elsner RENEWAL
Ricardo T GarufiRussiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Leja I Stockham
Stacey P Flosi
James S Poquette
Jefferson L Ruta
Aika D Nicka
Maisha N Figeroa
Jeanfrancois D Caudy
Alejandro Q Malet
Mujtaba S Gaucho
Leon P Vocelka
Aruna X Stenseth
Emily M Ferencz
Silvio R Bowley
Jones P Chui
Aruna M Inouye
Nicolas C Iturbide
Tony U Caudy
Stacey G Dilliard
Jennifer Q Poquette
Kaitlin I Nestle
Arvin W Briddick
Alejandro K Nestle
Faith A Foller
Faith V Foller
Aruna L Bolognia
Octavia H Royster
Aruna X Nicka
Jeanfrancois E Amigon
Izzy L Ostrosky
Maisha T Maclead
Kadeem I Royster
Stacey H Gaucho
Cody U Inouye
Aruna Q Kolmetz
Clifford M Inouye
Silvio F Chui
Antonio V Malet
Francesco F Waycott
Kaitlin K Ruta
Alejandro U Schemmer
Murillo N Rim
Tony Q Tollner
Deepesh T Slusarski
Leon P Flosi
Octavia O Saylors
Salvatore W Schemmer
Wickens J Saylors
Aditya K Whobrey
James M Caldarera
Aika W Kolmetz
IdCountryDate
1000Japan2026-07-13
1001Canada2026-07-05
1002Germany2026-06-23
1003France2026-07-03
1004Canada2026-06-23
1005Spain2026-06-30
1006Canada2026-07-07
1007Germany2026-06-26
1008Spain2026-07-06
1009France2026-06-27
1010Russia2026-07-21
1011India2026-06-23
1012Russia2026-07-12
1013France2026-07-10
1014Argentina2026-07-08
1015Germany2026-07-07
1016Australia2026-07-15
1017Argentina2026-07-17
1018France2026-07-13
1019Italy2026-07-21
1020Spain2026-07-05
1021France2026-07-04
1022Japan2026-07-20
1023Germany2026-07-02
1024Italy2026-07-02
1025Russia2026-06-24
1026Germany2026-07-05
1027Brazil2026-07-16
1028France2026-07-11
1029Russia2026-07-20
1030Brazil2026-06-24
1031France2026-06-24
1032Australia2026-07-20
1033Australia2026-07-22
1034India2026-07-04
1035Canada2026-07-14
1036Canada2026-06-23
1037Spain2026-07-11
1038Argentina2026-07-05
1039Canada2026-07-12
1040India2026-07-03
1041Spain2026-07-04
1042Canada2026-07-06
1043Australia2026-07-11
1044Australia2026-06-29
1045Canada2026-06-24
1046Russia2026-07-09
1047Japan2026-07-01
1048Germany2026-07-22
1049Australia2026-07-16

On-Demand Data

NameIdCountryDate
Sinclair E Briddick1000Russia2026-07-06
Tony N Ostrosky1001Russia2026-07-15
Ashley H Ferencz1002Spain2026-06-23
Mujtaba Z Slusarski1003India2026-07-17
Ashley N Albares1004Germany2026-07-10
Johnson Y Rulapaugh1005Canada2026-07-02
Izzy T Doe1006Russia2026-07-18
Clifford I Darakjy1007United Kingdom2026-06-24
Faith L Maclead1008Japan2026-07-21
Izzy F Ruta1009Italy2026-07-21
Cody X Morasca1010Germany2026-07-12
Morrow G Foller1011Australia2026-07-16
Ivar G Dilliard1012Brazil2026-07-02
Mujtaba F Garufi1013Spain2026-07-11
Adams D Venere1014Japan2026-06-23
Jeanfrancois B Ruta1015United Kingdom2026-07-20
Cody K Doe1016Russia2026-07-06
Ashley X Malet1017Australia2026-07-10
Jeanfrancois I Bowley1018Canada2026-07-21
Antonio L Perin1019France2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer Y InouyeCanadaAsiya Javayant QUALIFIED
Faith A DoeCanadaAsiya Javayant UNQUALIFIED
Misaki L StockhamSpainBernardo Dominic NEW
Darci D KuskoIndiaAmy Elsner QUALIFIED
Jennifer L AmigonBrazilElwin Sharvill NEGOTIATION
Leon C PerinArgentinaXuxue Feng RENEWAL
Greenwood K CampainSpainIoni Bowcher PROPOSAL
Chavez M BowleyAustraliaAnna Fali QUALIFIED
Arvin U BriddickArgentinaIoni Bowcher UNQUALIFIED
Ivar N MaletUnited KingdomAmy Elsner QUALIFIED
Morrow N RoysterCanadaIvan Magalhaes NEW
Rodrigues M FollerAustraliaIvan Magalhaes PROPOSAL
Leon H OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Leon R MorascaArgentinaAsiya Javayant NEGOTIATION
Jones N DarakjyBrazilXuxue Feng UNQUALIFIED
Ashley O DilliardGermanyBernardo Dominic QUALIFIED
Claire F DilliardCanadaAmy Elsner UNQUALIFIED
Ashley T SlusarskiAustraliaAmy Elsner PROPOSAL
Salvatore Y MarrierBrazilXuxue Feng PROPOSAL
Aditya W WaycottJapanOnyama Limba QUALIFIED
Smith L KuskoFranceAnna Fali NEW
Salvatore A NickaJapanXuxue Feng PROPOSAL
Jeanfrancois J ShinkoItalyOnyama Limba NEGOTIATION
Adams C StockhamGermanyIvan Magalhaes PROPOSAL
Cody Q SchemmerAustraliaElwin Sharvill RENEWAL
Clifford R ShinkoIndiaIoni Bowcher NEGOTIATION
Ashley J RutaFranceBernardo Dominic QUALIFIED
Cody M GlickRussiaStephen Shaw UNQUALIFIED
Leon F WaycottItalyAsiya Javayant NEGOTIATION
Munro L WhobreyItalyXuxue Feng UNQUALIFIED
Morrow S MaletGermanyAnna Fali RENEWAL
Ivar U InouyeGermanyElwin Sharvill QUALIFIED
Faith W CampainRussiaIoni Bowcher NEW
Isabel T DilliardJapanAsiya Javayant PROPOSAL
Ashley P SchemmerBrazilOnyama Limba NEGOTIATION
Darci J DarakjyItalyElwin Sharvill UNQUALIFIED
Cody X WhobreySpainOnyama Limba PROPOSAL
Greenwood X PaprockiCanadaBernardo Dominic UNQUALIFIED
Kaitlin V RulapaughItalyAsiya Javayant NEW
Ricardo Y GlickAustraliaAnna 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>