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
Darci I StockhamIndiaBernardo Dominic PROPOSAL
Silvio S SaylorsFranceOnyama Limba PROPOSAL
Tony X RoysterJapanBernardo Dominic PROPOSAL
Julie R RoysterRussiaAnna Fali UNQUALIFIED
Murillo L CaudyAustraliaOnyama Limba QUALIFIED
Faith L StockhamBrazilAnna Fali NEW
Arvin E FerenczGermanyAnna Fali UNQUALIFIED
Cody N WaycottItalyIvan Magalhaes RENEWAL
Antonio E RutaSpainIvan Magalhaes NEGOTIATION
Faith W MorascaGermanyXuxue Feng QUALIFIED
Aika D TollnerUnited KingdomBernardo Dominic PROPOSAL
Ivar B ShinkoFranceBernardo Dominic RENEWAL
Rodrigues Y RoysterJapanOnyama Limba NEGOTIATION
James N RulapaughBrazilBernardo Dominic QUALIFIED
Cody J InouyeIndiaIoni Bowcher RENEWAL
Izzy G FerenczCanadaOnyama Limba QUALIFIED
Jeanfrancois L KolmetzIndiaAsiya Javayant NEGOTIATION
Munro G SchemmerBrazilBernardo Dominic NEGOTIATION
Juan J SlusarskiBrazilAmy Elsner NEGOTIATION
Jones N PerinJapanXuxue Feng NEGOTIATION
Rodrigues R DoeFranceXuxue Feng NEW
Alejandro M BowleyUnited KingdomAsiya Javayant NEW
Jeanfrancois Y CaldareraArgentinaStephen Shaw UNQUALIFIED
Aruna D IturbideUnited KingdomElwin Sharvill QUALIFIED
Ricardo F MacleadSpainXuxue Feng QUALIFIED
Kadeem B PaprockiItalyStephen Shaw PROPOSAL
Alejandro S MarrierJapanStephen Shaw NEGOTIATION
Smith Q WieserCanadaElwin Sharvill UNQUALIFIED
Claire X BriddickFranceBernardo Dominic NEGOTIATION
Misaki E BriddickSpainAmy Elsner UNQUALIFIED
Munro K SlusarskiFranceElwin Sharvill QUALIFIED
Emily N SaylorsAustraliaXuxue Feng PROPOSAL
Johnson D StockhamFranceAsiya Javayant QUALIFIED
Adams O FerenczJapanOnyama Limba UNQUALIFIED
Tony J DoeJapanIvan Magalhaes NEGOTIATION
Jones F AmigonCanadaBernardo Dominic UNQUALIFIED
Jones V CampainRussiaBernardo Dominic QUALIFIED
Stacey B KolmetzArgentinaStephen Shaw NEW
Cody C DilliardCanadaBernardo Dominic RENEWAL
Jeanfrancois H SergiIndiaAsiya Javayant QUALIFIED
Stacey Y StensethArgentinaAnna Fali QUALIFIED
Mayumi Q FollerFranceStephen Shaw QUALIFIED
Deepesh T StensethAustraliaElwin Sharvill NEW
Munro T FerenczUnited KingdomElwin Sharvill QUALIFIED
Arvin U MacleadItalyXuxue Feng NEGOTIATION
Isabel J FollerAustraliaBernardo Dominic QUALIFIED
Aika P PoquetteIndiaAsiya Javayant NEW
Mujtaba C RoysterSpainAsiya Javayant RENEWAL
Aditya C WieserAustraliaIoni Bowcher RENEWAL
Jones H RoysterJapanOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mujtaba X AmigonRussiaIvan Magalhaes RENEWAL
Julie E MaletGermanyIvan Magalhaes QUALIFIED
Izzy F GlickGermanyElwin Sharvill RENEWAL
Ivar F FollerIndiaElwin Sharvill NEGOTIATION
James K AmigonCanadaXuxue Feng NEGOTIATION
Clifford Y DoeJapanIvan Magalhaes NEGOTIATION
Jones Z ShinkoJapanAsiya Javayant UNQUALIFIED
Faith Q BologniaAustraliaAmy Elsner PROPOSAL
Alejandro L GauchoRussiaIoni Bowcher QUALIFIED
Isabel M PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones D ButtArgentina2026-06-24Printing Dimensions NEW71Ioni Bowcher
1001Arvin C MorascaBrazil2026-07-04King, Christopher A Esq NEGOTIATION70Bernardo Dominic
1002Misaki Z MacleadRussia2026-07-01Morlong Associates NEW93Anna Fali
1003Nicolas I ButtBrazil2026-06-30Rousseaux, Michael Esq NEW88Elwin Sharvill
1004Maria Q StockhamCanada2026-06-27Truhlar And Truhlar Attys NEW47Elwin Sharvill
1005Isabel D NickaArgentina2026-06-29Dorl, James J Esq PROPOSAL23Stephen Shaw
1006Francesco Y SchemmerJapan2026-07-20Benton, John B Jr QUALIFIED94Elwin Sharvill
1007Octavia Y DilliardArgentina2026-07-16Morlong Associates NEW89Elwin Sharvill
1008Silvio J GlickBrazil2026-06-28Truhlar And Truhlar Attys UNQUALIFIED16Amy Elsner
1009Claire Z PerinCanada2026-07-10Printing Dimensions PROPOSAL58Bernardo Dominic
1010Francesco P TollnerRussia2026-07-14Buckley Miller Wright QUALIFIED98Amy Elsner
1011Nicolas W RimArgentina2026-07-07Benton, John B Jr PROPOSAL2Stephen Shaw
1012Jennifer K CaudyGermany2026-07-06Chanay, Jeffrey A Esq PROPOSAL48Onyama Limba
1013Aditya K CaudyUnited Kingdom2026-07-09Chemel, James L Cpa RENEWAL33Elwin Sharvill
1014Johnson H StensethBrazil2026-07-15Feltz Printing Service NEGOTIATION1Ioni Bowcher
1015Claire R MaletFrance2026-07-01Benton, John B Jr NEW42Amy Elsner
1016Julie V TollnerGermany2026-07-11Chanay, Jeffrey A Esq NEGOTIATION62Ivan Magalhaes
1017Juan B RulapaughSpain2026-06-23Feltz Printing Service PROPOSAL15Ioni Bowcher
1018Jones E CampainArgentina2026-07-10Feltz Printing Service NEW23Ioni Bowcher
1019Maisha S CaldareraUnited Kingdom2026-07-01Chapman, Ross E Esq RENEWAL44Ivan Magalhaes
1020Jones K AmigonIndia2026-07-13Rangoni Of Florence NEGOTIATION19Xuxue Feng
1021Costa I WhobreyArgentina2026-07-17Buckley Miller Wright PROPOSAL52Ioni Bowcher
1022Jefferson R WieserBrazil2026-07-01Printing Dimensions RENEWAL55Anna Fali
1023Adams A InouyeUnited Kingdom2026-07-19Printing Dimensions NEW2Anna Fali
1024Aditya Z SlusarskiArgentina2026-07-14Rangoni Of Florence QUALIFIED97Bernardo Dominic
1025Salvatore Z FlosiItaly2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED55Elwin Sharvill
1026Isabel A FerenczGermany2026-07-19Buckley Miller Wright NEW59Ioni Bowcher
1027Tony V MacleadGermany2026-07-01Chemel, James L Cpa QUALIFIED30Ivan Magalhaes
1028Munro V MarrierUnited Kingdom2026-06-26Dorl, James J Esq PROPOSAL19Amy Elsner
1029Kaitlin O NestleItaly2026-07-06Printing Dimensions QUALIFIED45Amy Elsner
1030Aditya C FigeroaUnited Kingdom2026-07-15Feltz Printing Service PROPOSAL65Elwin Sharvill
1031Maisha C CaudyRussia2026-07-14Feiner Bros NEGOTIATION1Anna Fali
1032Maria P MaletGermany2026-07-09Commercial Press NEGOTIATION67Ioni Bowcher
1033Rodrigues Y TollnerBrazil2026-07-07Feltz Printing Service QUALIFIED12Asiya Javayant
1034Kadeem X FlosiArgentina2026-06-29Morlong Associates NEGOTIATION31Xuxue Feng
1035Emily Q PaprockiArgentina2026-06-25Truhlar And Truhlar Attys QUALIFIED79Xuxue Feng
1036Jones O TollnerArgentina2026-07-12Truhlar And Truhlar Attys NEGOTIATION52Bernardo Dominic
1037Aditya I OldroydFrance2026-07-03Feltz Printing Service QUALIFIED41Anna Fali
1038Wickens T MacleadSpain2026-07-15Chapman, Ross E Esq NEW86Xuxue Feng
1039Darci H GauchoBrazil2026-07-07Rangoni Of Florence UNQUALIFIED64Xuxue Feng
1040Jennifer B InouyeUnited Kingdom2026-07-02Dorl, James J Esq UNQUALIFIED80Asiya Javayant
1041Isabel G AlbaresAustralia2026-07-15Rangoni Of Florence NEW3Amy Elsner
1042Alejandro A ShinkoIndia2026-06-24Benton, John B Jr NEW74Anna Fali
1043Arvin A StockhamCanada2026-07-17Printing Dimensions RENEWAL7Anna Fali
1044Antonio K DarakjyJapan2026-07-15Chapman, Ross E Esq UNQUALIFIED24Xuxue Feng
1045Cody E OldroydAustralia2026-07-01Feiner Bros PROPOSAL34Ioni Bowcher
1046Ashley X StockhamArgentina2026-07-20King, Christopher A Esq RENEWAL32Xuxue Feng
1047Alejandro Z WaycottArgentina2026-07-03Feltz Printing Service RENEWAL94Anna Fali
1048Nicolas R DilliardRussia2026-06-26Dorl, James J Esq QUALIFIED99Anna Fali
1049David W RulapaughGermany2026-07-20Buckley Miller Wright RENEWAL36Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Julie R MarrierIndiaAmy Elsner NEW
Maria K SchemmerGermanyAnna Fali NEGOTIATION
Adams R DoeIndiaAnna Fali RENEWAL
Kaitlin J GarufiGermanyAnna Fali PROPOSAL
Ivar J BriddickBrazilAsiya Javayant NEW
Alejandro J RulapaughAustraliaStephen Shaw UNQUALIFIED
Mujtaba C MacleadUnited KingdomAnna Fali UNQUALIFIED
Aruna F BriddickItalyAsiya Javayant UNQUALIFIED
Chavez M OldroydFranceStephen Shaw NEW
Emily Z SchemmerIndiaAnna Fali RENEWAL
Rodrigues W TollnerJapanAnna Fali UNQUALIFIED
Alejandro N SlusarskiArgentinaAsiya Javayant NEW
Alejandro U OldroydRussiaXuxue Feng UNQUALIFIED
Arvin U FerenczFranceXuxue Feng RENEWAL
Smith R BologniaGermanyIoni Bowcher PROPOSAL
Murillo C MorascaFranceAsiya Javayant PROPOSAL
Emily P WieserArgentinaAsiya Javayant NEW
Wickens J WhobreyIndiaAnna Fali UNQUALIFIED
Kaitlin M PaprockiAustraliaStephen Shaw NEW
Cody T VenereGermanyIvan Magalhaes RENEWAL
Jennifer M KolmetzAustraliaAnna Fali QUALIFIED
Aditya I BowleyGermanyBernardo Dominic NEGOTIATION
Murillo T StockhamIndiaAmy Elsner PROPOSAL
Isabel U SchemmerGermanyIoni Bowcher UNQUALIFIED
Julie A SlusarskiJapanAnna Fali UNQUALIFIED
Deepesh Y KuskoFranceOnyama Limba PROPOSAL
Sinclair V OldroydArgentinaAsiya Javayant NEW
Alejandro U SergiIndiaAsiya Javayant NEW
Morrow H GauchoCanadaIvan Magalhaes NEW
Octavia C MorascaBrazilIoni Bowcher NEW
Ashley X AmigonItalyElwin Sharvill NEW
Francesco R SaylorsFranceBernardo Dominic QUALIFIED
Jeanfrancois F AmigonBrazilAnna Fali NEW
Rodrigues C VocelkaRussiaElwin Sharvill QUALIFIED
Misaki X ButtArgentinaAsiya Javayant NEGOTIATION
Jennifer K OstroskyJapanXuxue Feng RENEWAL
Claire B PaprockiBrazilIvan Magalhaes NEGOTIATION
Juan X RutaJapanAnna Fali NEW
Wickens J ChuiSpainXuxue Feng NEW
Julie X SchemmerBrazilBernardo Dominic NEGOTIATION
Ricardo X OstroskyRussiaIvan Magalhaes RENEWAL
Juan F NestleFranceAnna Fali PROPOSAL
Tony T BologniaAustraliaIvan Magalhaes NEW
Adams N NickaFranceAsiya Javayant RENEWAL
Juan R VenereAustraliaAsiya Javayant PROPOSAL
Maria H MorascaSpainBernardo Dominic NEW
Costa A TollnerFranceXuxue Feng UNQUALIFIED
Silvio G ShinkoCanadaElwin Sharvill NEGOTIATION
Ricardo Z AlbaresBrazilAsiya Javayant UNQUALIFIED
Claire R WieserGermanyOnyama Limba UNQUALIFIED
Frozen Columns
Name
David P Kusko
Deepesh W Campain
Jennifer I Chui
Clifford Y Stockham
Aika Q Bowley
Aika P Maclead
Leon T Figeroa
Maria H Paprocki
Chavez H Bolognia
Julie W Caldarera
Misaki Z Kusko
Wickens D Ruta
Francesco D Doe
Alejandro I Garufi
Costa M Albares
Kadeem G Bolognia
Francesco F Whobrey
Izzy U Tollner
Smith A Waycott
Emily F Tollner
Jennifer A Rim
Mujtaba M Sergi
Deepesh G Paprocki
Sinclair N Rulapaugh
Deepesh K Caudy
Claire X Vocelka
Jennifer Z Foller
Jefferson P Dilliard
Ricardo C Marrier
Cody X Figeroa
Murillo J Caldarera
Claire P Stenseth
Mayumi N Dilliard
Emily H Maclead
Jefferson I Maclead
Arvin P Flosi
Jones I Nicka
Francesco R Royster
Chavez M Bowley
David B Gillian
Izzy T Flosi
Clifford V Slusarski
David H Albares
Sinclair Y Paprocki
Julie A Nicka
Ashley G Amigon
Greenwood X Bowley
Jeanfrancois I Gillian
Maria Q Amigon
Julie I Chui
IdCountryDate
1000United Kingdom2026-07-11
1001Brazil2026-06-29
1002France2026-07-08
1003Japan2026-07-01
1004Italy2026-07-12
1005Brazil2026-06-21
1006Spain2026-07-12
1007Argentina2026-07-01
1008Brazil2026-07-14
1009Germany2026-07-09
1010Australia2026-06-27
1011Japan2026-07-04
1012Australia2026-07-14
1013Italy2026-07-17
1014India2026-07-14
1015Spain2026-06-24
1016Brazil2026-06-30
1017Germany2026-07-05
1018Brazil2026-07-02
1019Canada2026-07-07
1020Russia2026-06-22
1021France2026-07-07
1022Argentina2026-06-22
1023India2026-06-24
1024Spain2026-07-04
1025France2026-07-04
1026United Kingdom2026-07-11
1027Spain2026-06-27
1028Japan2026-07-07
1029Italy2026-07-20
1030Germany2026-06-25
1031Italy2026-07-12
1032France2026-07-19
1033Russia2026-06-30
1034Russia2026-06-21
1035Russia2026-07-12
1036Brazil2026-06-24
1037India2026-06-21
1038Australia2026-06-21
1039France2026-07-12
1040Russia2026-07-18
1041Australia2026-07-06
1042Canada2026-06-22
1043Russia2026-07-12
1044Argentina2026-07-09
1045Spain2026-06-28
1046France2026-07-12
1047Argentina2026-06-25
1048Germany2026-07-19
1049Spain2026-07-13

On-Demand Data

NameIdCountryDate
Chavez H Oldroyd1000United Kingdom2026-07-04
Rodrigues L Chui1001United Kingdom2026-07-12
David F Amigon1002Russia2026-07-07
Tony I Schemmer1003United Kingdom2026-07-15
Tony H Garufi1004Italy2026-07-12
Cody D Butt1005France2026-07-19
Ivar M Waycott1006United Kingdom2026-07-16
Ricardo R Saylors1007Spain2026-07-19
Darci V Amigon1008Italy2026-07-18
Faith L Iturbide1009India2026-07-12
Julie W Saylors1010India2026-07-04
Julie D Tollner1011Russia2026-07-12
Leon R Slusarski1012Canada2026-07-06
Francesco H Bolognia1013India2026-07-17
Jeanfrancois H Kusko1014Brazil2026-07-13
Johnson P Doe1015Italy2026-06-29
Juan P Rim1016Japan2026-07-01
Jeanfrancois V Foller1017Germany2026-07-15
Mayumi B Saylors1018India2026-07-18
Stacey Q Iturbide1019Germany2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin Q BowleyFranceAsiya Javayant QUALIFIED
Morrow U InouyeIndiaAsiya Javayant NEW
Francesco U VenereUnited KingdomAsiya Javayant RENEWAL
Arvin X InouyeAustraliaIvan Magalhaes UNQUALIFIED
Faith X PoquetteBrazilStephen Shaw NEGOTIATION
James D SaylorsFranceAsiya Javayant RENEWAL
Octavia X BowleyRussiaAnna Fali NEGOTIATION
Murillo F SaylorsItalyIvan Magalhaes QUALIFIED
Munro I KolmetzBrazilAsiya Javayant NEGOTIATION
Jefferson J InouyeFranceBernardo Dominic RENEWAL
Clifford R MarrierAustraliaOnyama Limba UNQUALIFIED
Darci I SergiBrazilBernardo Dominic PROPOSAL
Arvin X GlickIndiaIoni Bowcher NEW
Chavez F VocelkaRussiaIvan Magalhaes UNQUALIFIED
Aditya F DarakjyItalyAnna Fali UNQUALIFIED
Aika Q RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Leon C OldroydUnited KingdomStephen Shaw UNQUALIFIED
Ricardo U InouyeGermanyBernardo Dominic PROPOSAL
Julie O RimBrazilAsiya Javayant NEGOTIATION
Isabel D NestleItalyAnna Fali RENEWAL
Rodrigues O FerenczItalyStephen Shaw RENEWAL
Morrow E IturbideAustraliaIvan Magalhaes NEGOTIATION
Stacey X WaycottAustraliaAnna Fali PROPOSAL
James U FigeroaRussiaOnyama Limba QUALIFIED
Jeanfrancois S StockhamUnited KingdomElwin Sharvill NEGOTIATION
Smith E CampainCanadaAnna Fali NEW
Ashley F WhobreyUnited KingdomBernardo Dominic NEGOTIATION
Munro I IturbideIndiaXuxue Feng UNQUALIFIED
Arvin E DoeItalyAmy Elsner PROPOSAL
Wickens V InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Smith V InouyeAustraliaStephen Shaw RENEWAL
Juan L CaudySpainAnna Fali NEW
Julie D TollnerUnited KingdomStephen Shaw QUALIFIED
Jennifer Z WhobreyAustraliaIoni Bowcher NEW
Rodrigues T PerinItalyBernardo Dominic QUALIFIED
Claire K DilliardArgentinaXuxue Feng QUALIFIED
Aika X OstroskyArgentinaElwin Sharvill PROPOSAL
Julie K SergiAustraliaOnyama Limba QUALIFIED
Leja A BologniaCanadaIoni Bowcher RENEWAL
Antonio D MaletSpainAsiya Javayant 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>