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
Maria J SchemmerArgentinaAmy Elsner NEGOTIATION
Jones O MacleadItalyAsiya Javayant PROPOSAL
Alejandro S GauchoCanadaIoni Bowcher NEW
Jeanfrancois L ShinkoSpainElwin Sharvill NEW
Deepesh Z VocelkaUnited KingdomIoni Bowcher NEW
Faith Y FerenczSpainAnna Fali RENEWAL
Greenwood F ButtArgentinaAsiya Javayant NEGOTIATION
Costa O MorascaSpainIvan Magalhaes UNQUALIFIED
Antonio T ShinkoGermanyAmy Elsner NEGOTIATION
Aditya O MorascaAustraliaAsiya Javayant NEGOTIATION
Arvin T SaylorsCanadaAsiya Javayant NEW
Arvin B CaldareraGermanyOnyama Limba RENEWAL
Misaki I PaprockiSpainIoni Bowcher RENEWAL
Chavez K SlusarskiArgentinaBernardo Dominic PROPOSAL
Cody W FerenczBrazilIoni Bowcher PROPOSAL
Kadeem D BologniaGermanyAsiya Javayant QUALIFIED
Kaitlin H RimBrazilAnna Fali NEW
Jones R RutaFranceAsiya Javayant QUALIFIED
Tony Q DarakjyGermanyBernardo Dominic QUALIFIED
Isabel J SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois F DarakjyAustraliaIvan Magalhaes PROPOSAL
Misaki J PerinAustraliaAsiya Javayant PROPOSAL
Jefferson A PaprockiBrazilBernardo Dominic NEGOTIATION
Aika B DilliardRussiaAnna Fali NEGOTIATION
Misaki C SlusarskiArgentinaStephen Shaw NEW
Munro Y VenereArgentinaStephen Shaw QUALIFIED
Darci G SlusarskiCanadaXuxue Feng PROPOSAL
James B BriddickIndiaAsiya Javayant NEGOTIATION
Johnson S WhobreyBrazilStephen Shaw UNQUALIFIED
Murillo D VocelkaRussiaElwin Sharvill PROPOSAL
Costa A InouyeRussiaAmy Elsner PROPOSAL
Izzy Q SergiArgentinaIvan Magalhaes QUALIFIED
Aika N FerenczGermanyAnna Fali NEGOTIATION
Aika A PaprockiJapanXuxue Feng NEGOTIATION
Ashley Y SaylorsBrazilStephen Shaw UNQUALIFIED
Jennifer R DarakjyIndiaXuxue Feng RENEWAL
Misaki K VenereFranceAmy Elsner PROPOSAL
Ashley U AlbaresGermanyIvan Magalhaes RENEWAL
Julie G SlusarskiCanadaStephen Shaw QUALIFIED
Sinclair K MaletGermanyStephen Shaw UNQUALIFIED
Antonio M VocelkaSpainAmy Elsner QUALIFIED
James I DarakjyArgentinaIoni Bowcher QUALIFIED
Aruna X KuskoRussiaStephen Shaw NEW
Aditya C WieserJapanOnyama Limba UNQUALIFIED
Wickens L StockhamIndiaStephen Shaw RENEWAL
David I SergiUnited KingdomAsiya Javayant PROPOSAL
Jefferson K GarufiBrazilBernardo Dominic NEGOTIATION
Alejandro A GillianJapanStephen Shaw NEGOTIATION
Jefferson Z BologniaArgentinaElwin Sharvill PROPOSAL
Maisha D RoysterArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio J PerinFranceBernardo Dominic PROPOSAL
Mayumi A StockhamBrazilBernardo Dominic RENEWAL
Faith G PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Cody L PerinJapanBernardo Dominic NEGOTIATION
Leon G KolmetzCanadaAsiya Javayant NEGOTIATION
Isabel T AmigonIndiaAsiya Javayant PROPOSAL
Ivar A DoeBrazilBernardo Dominic NEGOTIATION
Ricardo V TollnerItalyAmy Elsner PROPOSAL
Salvatore E InouyeGermanyIvan Magalhaes UNQUALIFIED
Smith V DarakjyRussiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha H VenereArgentina2025-05-27Feltz Printing Service RENEWAL38Elwin Sharvill
1001Greenwood I ButtGermany2025-06-01Truhlar And Truhlar Attys QUALIFIED21Anna Fali
1002Nicolas Z SergiBrazil2025-06-03King, Christopher A Esq NEGOTIATION34Elwin Sharvill
1003Antonio Z GillianJapan2025-06-09Feltz Printing Service NEGOTIATION53Anna Fali
1004Isabel R BologniaCanada2025-05-29Rousseaux, Michael Esq UNQUALIFIED79Stephen Shaw
1005Misaki B GarufiArgentina2025-06-09Printing Dimensions QUALIFIED48Ioni Bowcher
1006Kadeem Y OstroskyUnited Kingdom2025-06-04Chemel, James L Cpa RENEWAL89Amy Elsner
1007Emily M InouyeRussia2025-06-13Feiner Bros RENEWAL59Ioni Bowcher
1008Maisha F WhobreyRussia2025-05-29Dorl, James J Esq PROPOSAL29Ioni Bowcher
1009Rodrigues Y StensethGermany2025-05-21Printing Dimensions NEGOTIATION33Elwin Sharvill
1010Jennifer Q WieserSpain2025-06-10Feltz Printing Service RENEWAL62Elwin Sharvill
1011Morrow A ButtIndia2025-05-20Dorl, James J Esq QUALIFIED94Amy Elsner
1012Wickens G SchemmerBrazil2025-06-02King, Christopher A Esq RENEWAL92Amy Elsner
1013Ricardo Z TollnerGermany2025-05-29Morlong Associates PROPOSAL78Asiya Javayant
1014Leon C CaudyRussia2025-05-25Commercial Press NEW65Xuxue Feng
1015Wickens O CampainUnited Kingdom2025-05-18Dorl, James J Esq QUALIFIED1Asiya Javayant
1016Deepesh Q ShinkoCanada2025-06-05Rangoni Of Florence PROPOSAL72Asiya Javayant
1017Jones F VocelkaIndia2025-06-08Chemel, James L Cpa QUALIFIED32Asiya Javayant
1018Octavia R RutaBrazil2025-05-29Chapman, Ross E Esq QUALIFIED59Elwin Sharvill
1019Maria R WhobreyGermany2025-05-23Rousseaux, Michael Esq NEGOTIATION87Ioni Bowcher
1020Misaki O AlbaresIndia2025-05-29Benton, John B Jr NEW57Elwin Sharvill
1021Julie H VenereRussia2025-05-30Chanay, Jeffrey A Esq QUALIFIED38Ioni Bowcher
1022Mayumi X GauchoArgentina2025-06-02Feiner Bros PROPOSAL26Xuxue Feng
1023Silvio U PoquetteAustralia2025-05-23Rousseaux, Michael Esq RENEWAL71Ioni Bowcher
1024Greenwood C SlusarskiBrazil2025-06-08Commercial Press QUALIFIED30Xuxue Feng
1025Jennifer J NickaGermany2025-06-05Printing Dimensions RENEWAL87Elwin Sharvill
1026Ashley A BowleySpain2025-06-02King, Christopher A Esq UNQUALIFIED59Amy Elsner
1027Chavez Y TollnerGermany2025-06-06Rousseaux, Michael Esq UNQUALIFIED0Ivan Magalhaes
1028Chavez V KuskoAustralia2025-05-21Benton, John B Jr NEGOTIATION34Asiya Javayant
1029Costa P DarakjyJapan2025-05-25Chemel, James L Cpa PROPOSAL68Onyama Limba
1030Costa Y FigeroaSpain2025-06-04Buckley Miller Wright PROPOSAL58Amy Elsner
1031Darci T MacleadGermany2025-06-13Rousseaux, Michael Esq UNQUALIFIED16Onyama Limba
1032Aditya W GarufiUnited Kingdom2025-06-04Feltz Printing Service PROPOSAL37Ivan Magalhaes
1033Smith X WaycottCanada2025-05-31Buckley Miller Wright NEGOTIATION85Onyama Limba
1034Jefferson V SaylorsGermany2025-06-05Printing Dimensions PROPOSAL82Ioni Bowcher
1035Faith R VenereArgentina2025-05-18Feltz Printing Service UNQUALIFIED35Asiya Javayant
1036Stacey Z KolmetzIndia2025-05-20Rousseaux, Michael Esq QUALIFIED33Stephen Shaw
1037Clifford U PerinFrance2025-06-07Feltz Printing Service RENEWAL95Ioni Bowcher
1038Mujtaba N VocelkaFrance2025-06-03King, Christopher A Esq QUALIFIED65Anna Fali
1039Ivar L OstroskyArgentina2025-05-24King, Christopher A Esq NEW87Stephen Shaw
1040Claire O MarrierArgentina2025-05-19Chemel, James L Cpa QUALIFIED24Ioni Bowcher
1041David K ButtArgentina2025-05-21Rousseaux, Michael Esq UNQUALIFIED69Ivan Magalhaes
1042Johnson E ChuiFrance2025-06-13Rousseaux, Michael Esq NEGOTIATION2Asiya Javayant
1043Wickens G GlickSpain2025-05-23Commercial Press NEGOTIATION72Amy Elsner
1044Kaitlin A StockhamJapan2025-05-22Truhlar And Truhlar Attys NEW33Elwin Sharvill
1045Adams P RulapaughFrance2025-06-14Chapman, Ross E Esq NEW11Amy Elsner
1046Greenwood Y FollerSpain2025-06-14Rousseaux, Michael Esq QUALIFIED41Amy Elsner
1047Kadeem S RulapaughSpain2025-05-17Chemel, James L Cpa PROPOSAL5Stephen Shaw
1048Leja S KolmetzIndia2025-06-06King, Christopher A Esq RENEWAL10Bernardo Dominic
1049Clifford X KuskoFrance2025-05-30Commercial Press PROPOSAL81Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Darci X WhobreyUnited KingdomXuxue Feng NEGOTIATION
Salvatore S GarufiFranceStephen Shaw PROPOSAL
Costa Z DarakjyJapanOnyama Limba UNQUALIFIED
Jones G IturbideRussiaAsiya Javayant UNQUALIFIED
Aditya Y GlickBrazilAsiya Javayant UNQUALIFIED
Darci W KolmetzAustraliaIvan Magalhaes NEGOTIATION
Julie N AlbaresBrazilAmy Elsner PROPOSAL
Maria V OldroydFranceAmy Elsner NEGOTIATION
Leon L BologniaJapanAnna Fali RENEWAL
Smith R WhobreyRussiaStephen Shaw NEGOTIATION
Antonio Y SchemmerAustraliaIoni Bowcher PROPOSAL
Alejandro I BowleyJapanBernardo Dominic QUALIFIED
Ricardo P FerenczUnited KingdomAsiya Javayant PROPOSAL
Darci L RulapaughFranceElwin Sharvill PROPOSAL
Aditya E WaycottRussiaAsiya Javayant PROPOSAL
Alejandro O AlbaresIndiaBernardo Dominic PROPOSAL
Murillo E BriddickItalyAnna Fali PROPOSAL
Kadeem C OstroskyJapanElwin Sharvill QUALIFIED
Aruna T IturbideArgentinaAmy Elsner UNQUALIFIED
Isabel N MaletBrazilIvan Magalhaes NEGOTIATION
Wickens U VocelkaIndiaOnyama Limba PROPOSAL
Claire X RimUnited KingdomXuxue Feng NEGOTIATION
Darci Q SaylorsCanadaElwin Sharvill NEW
Darci P MorascaFranceStephen Shaw PROPOSAL
Murillo R ButtArgentinaBernardo Dominic NEGOTIATION
Greenwood J AmigonFranceBernardo Dominic RENEWAL
Mayumi P KolmetzBrazilAsiya Javayant UNQUALIFIED
Octavia B BriddickItalyElwin Sharvill RENEWAL
Murillo D KolmetzUnited KingdomOnyama Limba PROPOSAL
Isabel Z OldroydFranceElwin Sharvill QUALIFIED
Maria A MaletGermanyAmy Elsner NEW
Chavez W RutaIndiaElwin Sharvill UNQUALIFIED
James H MacleadRussiaIvan Magalhaes QUALIFIED
Costa N WieserUnited KingdomOnyama Limba NEGOTIATION
Cody T AlbaresGermanyIoni Bowcher NEGOTIATION
Salvatore W OldroydJapanStephen Shaw UNQUALIFIED
Mayumi M CampainUnited KingdomOnyama Limba NEW
Alejandro F RutaItalyAsiya Javayant PROPOSAL
Ricardo H FigeroaRussiaStephen Shaw QUALIFIED
Ivar H BriddickArgentinaBernardo Dominic NEGOTIATION
Rodrigues H FlosiIndiaBernardo Dominic UNQUALIFIED
Cody V OldroydItalyOnyama Limba PROPOSAL
Ashley I AmigonAustraliaBernardo Dominic NEW
Maisha Y MacleadItalyXuxue Feng PROPOSAL
Misaki N MaletArgentinaOnyama Limba UNQUALIFIED
Francesco X FigeroaUnited KingdomXuxue Feng NEW
Murillo U VocelkaGermanyIvan Magalhaes UNQUALIFIED
Ashley F DarakjyCanadaAmy Elsner UNQUALIFIED
Greenwood E VocelkaAustraliaAnna Fali QUALIFIED
Maisha I MaletArgentinaAnna Fali NEW
Frozen Columns
Name
Greenwood Y Ostrosky
Kaitlin Z Oldroyd
Isabel O Flosi
Octavia A Nicka
Leja W Chui
Salvatore Y Butt
Isabel H Rim
Izzy P Foller
Kaitlin E Butt
Faith K Amigon
Morrow H Amigon
Ricardo Z Slusarski
Leja O Campain
Stacey W Caldarera
Ricardo G Inouye
Tony Y Gaucho
Jeanfrancois J Nestle
Izzy A Amigon
Antonio F Iturbide
Leon W Kolmetz
Antonio O Glick
Darci Z Stockham
Jefferson Z Stenseth
Octavia B Figeroa
Smith B Rulapaugh
Stacey U Rulapaugh
Sinclair B Darakjy
Chavez B Nestle
Misaki R Poquette
Claire Z Gaucho
Mujtaba V Wieser
Aditya G Figeroa
Arvin Q Albares
Deepesh C Kolmetz
Mayumi U Royster
Cody B Perin
Isabel F Glick
Octavia Z Waycott
Silvio T Sergi
Jefferson O Figeroa
Arvin S Glick
Ricardo S Maclead
Faith S Albares
Isabel I Shinko
Jeanfrancois V Ferencz
Leja Y Perin
Isabel M Briddick
Alejandro W Malet
Cody S Paprocki
Arvin N Royster
IdCountryDate
1000Italy2025-05-25
1001Brazil2025-05-22
1002United Kingdom2025-06-07
1003United Kingdom2025-06-13
1004Brazil2025-06-05
1005Russia2025-05-22
1006Spain2025-05-30
1007United Kingdom2025-06-12
1008Australia2025-05-20
1009Japan2025-06-13
1010India2025-05-17
1011Japan2025-06-03
1012France2025-05-18
1013Australia2025-05-26
1014Spain2025-06-06
1015Canada2025-05-24
1016Canada2025-06-05
1017Australia2025-06-01
1018Italy2025-05-31
1019United Kingdom2025-05-28
1020Spain2025-06-11
1021France2025-05-29
1022India2025-05-29
1023Italy2025-05-29
1024Australia2025-05-31
1025Brazil2025-05-27
1026Italy2025-06-02
1027India2025-06-11
1028India2025-05-18
1029Italy2025-05-28
1030United Kingdom2025-06-13
1031Australia2025-05-26
1032Japan2025-05-30
1033France2025-06-11
1034Australia2025-05-19
1035Japan2025-06-09
1036Canada2025-06-10
1037Canada2025-06-09
1038Russia2025-06-09
1039France2025-05-25
1040Italy2025-06-01
1041Argentina2025-06-04
1042Spain2025-06-10
1043Argentina2025-06-07
1044Australia2025-06-04
1045France2025-05-23
1046Canada2025-05-21
1047Italy2025-05-24
1048Argentina2025-06-04
1049Brazil2025-05-23

On-Demand Data

NameIdCountryDate
Leon Q Wieser1000Italy2025-06-13
Clifford N Albares1001France2025-06-06
Mujtaba C Stockham1002Australia2025-06-04
Wickens N Bolognia1003Japan2025-06-07
Cody M Stenseth1004Russia2025-05-23
Jeanfrancois K Vocelka1005Brazil2025-06-04
Darci O Waycott1006Japan2025-06-01
Clifford T Bowley1007Germany2025-06-09
Costa G Perin1008Australia2025-05-17
Costa V Ostrosky1009Canada2025-06-10
Arvin G Amigon1010Russia2025-06-11
Leon K Ruta1011France2025-06-12
Leon Z Marrier1012Australia2025-06-08
Antonio P Venere1013Brazil2025-06-13
Wickens X Waycott1014United Kingdom2025-05-21
Leon M Glick1015Germany2025-05-17
Kaitlin Z Schemmer1016France2025-06-02
Jennifer J Amigon1017Italy2025-05-27
Ricardo H Flosi1018Australia2025-05-18
Arvin R Figeroa1019Russia2025-05-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio B FollerAustraliaAsiya Javayant RENEWAL
Cody Y StockhamCanadaIoni Bowcher PROPOSAL
Ivar B SchemmerBrazilAnna Fali NEGOTIATION
Ricardo P OstroskyIndiaOnyama Limba PROPOSAL
Jones I CaldareraGermanyAmy Elsner NEW
David T GarufiSpainAnna Fali NEW
Ivar H DilliardArgentinaIoni Bowcher RENEWAL
Morrow X AlbaresAustraliaStephen Shaw QUALIFIED
Stacey Z StockhamItalyXuxue Feng PROPOSAL
Jefferson B GillianArgentinaElwin Sharvill QUALIFIED
Ashley U SergiRussiaIvan Magalhaes PROPOSAL
Octavia Y AlbaresAustraliaBernardo Dominic UNQUALIFIED
Izzy U RutaItalyXuxue Feng NEW
Salvatore F FollerArgentinaOnyama Limba UNQUALIFIED
Julie K StensethGermanyStephen Shaw QUALIFIED
Claire E BowleyCanadaIoni Bowcher NEGOTIATION
Chavez D OstroskyBrazilAmy Elsner PROPOSAL
Kaitlin O BowleyRussiaAsiya Javayant NEW
Octavia O DarakjySpainIvan Magalhaes RENEWAL
Julie J FerenczRussiaAmy Elsner NEGOTIATION
Antonio J OldroydItalyIvan Magalhaes NEW
Salvatore K StensethRussiaStephen Shaw UNQUALIFIED
Tony U AmigonRussiaOnyama Limba PROPOSAL
Jefferson H InouyeGermanyOnyama Limba NEW
Mayumi X BriddickCanadaElwin Sharvill QUALIFIED
Aika F CaudyRussiaStephen Shaw RENEWAL
Ashley Y TollnerJapanIoni Bowcher NEW
Deepesh K KolmetzItalyAnna Fali RENEWAL
Misaki V VocelkaAustraliaIoni Bowcher UNQUALIFIED
Izzy Z VenereJapanStephen Shaw QUALIFIED
Smith G GauchoRussiaAsiya Javayant NEW
Rodrigues S ButtUnited KingdomIvan Magalhaes PROPOSAL
Antonio L ChuiJapanXuxue Feng RENEWAL
Mujtaba Z CaudyCanadaBernardo Dominic UNQUALIFIED
Leja U RimUnited KingdomBernardo Dominic RENEWAL
James X CaudyCanadaAnna Fali NEGOTIATION
David N RoysterBrazilOnyama Limba PROPOSAL
Nicolas V PoquetteUnited KingdomOnyama Limba QUALIFIED
Aika O ChuiGermanyIoni Bowcher UNQUALIFIED
Misaki N PerinUnited KingdomBernardo Dominic QUALIFIED

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