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
Kaitlin D GlickJapanAnna Fali RENEWAL
Munro T ShinkoIndiaAsiya Javayant NEW
James S RulapaughCanadaOnyama Limba RENEWAL
Kaitlin Z VenereRussiaIvan Magalhaes NEGOTIATION
Murillo T OstroskyAustraliaAsiya Javayant NEGOTIATION
Johnson K InouyeItalyAsiya Javayant NEW
Francesco A GillianArgentinaElwin Sharvill PROPOSAL
Chavez Y IturbideGermanyAnna Fali NEW
Alejandro G RulapaughBrazilAmy Elsner QUALIFIED
Faith Q WhobreyFranceIvan Magalhaes PROPOSAL
Deepesh L RulapaughUnited KingdomAmy Elsner NEGOTIATION
Kaitlin M BologniaBrazilAnna Fali UNQUALIFIED
James E RoysterArgentinaBernardo Dominic NEGOTIATION
Ashley P SergiUnited KingdomIoni Bowcher QUALIFIED
Maisha I IturbideItalyAsiya Javayant QUALIFIED
Isabel C NestleBrazilAsiya Javayant NEW
Mayumi J BowleyArgentinaElwin Sharvill RENEWAL
Alejandro M BriddickJapanBernardo Dominic RENEWAL
Darci F StensethUnited KingdomIoni Bowcher NEW
Jeanfrancois C CaldareraIndiaXuxue Feng PROPOSAL
Salvatore U GauchoGermanyXuxue Feng NEW
Francesco R FerenczArgentinaXuxue Feng RENEWAL
Francesco R CampainBrazilOnyama Limba UNQUALIFIED
Wickens B ButtCanadaIvan Magalhaes RENEWAL
Ricardo K MaletRussiaOnyama Limba QUALIFIED
Nicolas O WieserRussiaAnna Fali PROPOSAL
Juan E RimBrazilIvan Magalhaes NEGOTIATION
Deepesh G ChuiFranceElwin Sharvill PROPOSAL
Cody R SchemmerBrazilElwin Sharvill NEW
Maisha S RoysterArgentinaIoni Bowcher UNQUALIFIED
Murillo J FerenczGermanyAsiya Javayant QUALIFIED
Alejandro W MorascaArgentinaAsiya Javayant QUALIFIED
Mayumi D TollnerIndiaAsiya Javayant NEW
Aruna G GillianUnited KingdomAmy Elsner QUALIFIED
Ivar W DarakjyFranceIvan Magalhaes RENEWAL
Ricardo M TollnerGermanyXuxue Feng NEW
Alejandro B FigeroaSpainBernardo Dominic NEW
Chavez S KolmetzUnited KingdomIoni Bowcher QUALIFIED
Ashley E MarrierUnited KingdomXuxue Feng QUALIFIED
Jennifer X RulapaughGermanyIvan Magalhaes PROPOSAL
Jones W InouyeBrazilElwin Sharvill NEGOTIATION
Tony I SaylorsUnited KingdomXuxue Feng PROPOSAL
Mayumi Q WhobreySpainIoni Bowcher UNQUALIFIED
Jennifer O CaudyItalyAnna Fali UNQUALIFIED
Maria A KolmetzArgentinaAnna Fali NEGOTIATION
Juan S SlusarskiUnited KingdomXuxue Feng NEW
Smith L VenereArgentinaBernardo Dominic RENEWAL
Maisha O WaycottCanadaStephen Shaw NEGOTIATION
Greenwood X BologniaFranceIvan Magalhaes NEGOTIATION
Jennifer K OstroskyFranceXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Aditya H CaldareraAustraliaStephen Shaw RENEWAL
Jefferson G PaprockiSpainAsiya Javayant QUALIFIED
Mujtaba O GillianIndiaIoni Bowcher NEGOTIATION
Nicolas U StockhamItalyElwin Sharvill UNQUALIFIED
Aika M KuskoFranceAnna Fali UNQUALIFIED
Antonio W NestleSpainXuxue Feng NEW
Deepesh K GlickItalyAsiya Javayant RENEWAL
Faith K CaudyJapanAmy Elsner NEGOTIATION
Salvatore G StockhamFranceAnna Fali QUALIFIED
Deepesh Y SaylorsGermanyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David X PerinArgentina2026-06-09Truhlar And Truhlar Attys RENEWAL20Amy Elsner
1001Clifford R GlickFrance2026-06-23Feltz Printing Service RENEWAL13Ivan Magalhaes
1002Deepesh C MarrierItaly2026-06-07Buckley Miller Wright NEW93Anna Fali
1003Murillo J IturbideRussia2026-06-14Feiner Bros NEGOTIATION69Anna Fali
1004Clifford G VenereAustralia2026-07-02Chanay, Jeffrey A Esq PROPOSAL45Stephen Shaw
1005Ricardo O RutaGermany2026-07-04Feltz Printing Service UNQUALIFIED59Onyama Limba
1006Darci K DarakjyAustralia2026-07-04Rangoni Of Florence QUALIFIED32Bernardo Dominic
1007Aika G KuskoUnited Kingdom2026-07-01Morlong Associates UNQUALIFIED86Ioni Bowcher
1008Rodrigues E OldroydUnited Kingdom2026-06-27Dorl, James J Esq RENEWAL72Asiya Javayant
1009Johnson S InouyeUnited Kingdom2026-07-05Dorl, James J Esq NEGOTIATION78Ioni Bowcher
1010Jefferson M MacleadJapan2026-06-29Rousseaux, Michael Esq NEGOTIATION55Xuxue Feng
1011Aditya A PerinItaly2026-06-25Feltz Printing Service NEW78Stephen Shaw
1012Maria O CaldareraArgentina2026-06-15Feltz Printing Service NEGOTIATION87Asiya Javayant
1013Izzy I MorascaIndia2026-06-25Feiner Bros NEGOTIATION67Bernardo Dominic
1014Maisha G OldroydIndia2026-06-18Commercial Press PROPOSAL98Ioni Bowcher
1015Clifford H VenereBrazil2026-06-17Commercial Press NEW46Amy Elsner
1016Julie E RoysterItaly2026-06-23King, Christopher A Esq QUALIFIED2Amy Elsner
1017Maisha H MaletIndia2026-06-21Chanay, Jeffrey A Esq QUALIFIED2Elwin Sharvill
1018Jeanfrancois P NestleGermany2026-06-20Dorl, James J Esq PROPOSAL73Onyama Limba
1019Isabel P OldroydCanada2026-06-14Feltz Printing Service UNQUALIFIED51Amy Elsner
1020Jeanfrancois R GarufiGermany2026-06-07Chanay, Jeffrey A Esq QUALIFIED45Ivan Magalhaes
1021Ivar Y NestleJapan2026-06-28Rousseaux, Michael Esq RENEWAL51Stephen Shaw
1022Octavia T PerinIndia2026-06-26Rangoni Of Florence NEW57Ivan Magalhaes
1023Aruna U SaylorsGermany2026-06-27Truhlar And Truhlar Attys PROPOSAL14Xuxue Feng
1024Jefferson U TollnerJapan2026-06-23Chanay, Jeffrey A Esq QUALIFIED25Asiya Javayant
1025Munro J VocelkaItaly2026-06-24Commercial Press QUALIFIED68Xuxue Feng
1026Alejandro A CaldareraRussia2026-06-26Feltz Printing Service QUALIFIED1Ioni Bowcher
1027David V SaylorsUnited Kingdom2026-06-23Printing Dimensions UNQUALIFIED76Anna Fali
1028Juan U VenereGermany2026-06-20Truhlar And Truhlar Attys QUALIFIED52Xuxue Feng
1029Jones Y SlusarskiSpain2026-06-11Benton, John B Jr QUALIFIED40Onyama Limba
1030Octavia S CaudyJapan2026-06-07Commercial Press NEGOTIATION48Asiya Javayant
1031Ivar R FlosiFrance2026-07-06Feiner Bros QUALIFIED72Bernardo Dominic
1032Wickens K RoysterRussia2026-06-14Feltz Printing Service PROPOSAL70Stephen Shaw
1033Arvin U MaletAustralia2026-06-22King, Christopher A Esq QUALIFIED87Bernardo Dominic
1034Octavia Z BologniaAustralia2026-06-14Feiner Bros PROPOSAL36Amy Elsner
1035Alejandro I RimJapan2026-07-02Buckley Miller Wright QUALIFIED47Ioni Bowcher
1036Misaki G RimBrazil2026-06-21Chanay, Jeffrey A Esq QUALIFIED54Onyama Limba
1037Jefferson B FigeroaSpain2026-06-12Truhlar And Truhlar Attys QUALIFIED15Onyama Limba
1038Alejandro D DoeAustralia2026-06-13Benton, John B Jr RENEWAL8Ioni Bowcher
1039Izzy H SlusarskiFrance2026-07-04Printing Dimensions QUALIFIED57Anna Fali
1040Jones U IturbideUnited Kingdom2026-06-11Feltz Printing Service UNQUALIFIED76Ioni Bowcher
1041Silvio D OldroydArgentina2026-06-30Benton, John B Jr UNQUALIFIED38Anna Fali
1042Aika P WieserGermany2026-06-09Rousseaux, Michael Esq NEGOTIATION54Ivan Magalhaes
1043Munro M SlusarskiUnited Kingdom2026-06-24Commercial Press NEGOTIATION32Ioni Bowcher
1044Jones T SergiJapan2026-07-05Benton, John B Jr RENEWAL95Amy Elsner
1045Julie G FigeroaBrazil2026-07-05Rangoni Of Florence UNQUALIFIED4Stephen Shaw
1046Sinclair R DilliardIndia2026-06-10Morlong Associates UNQUALIFIED45Ivan Magalhaes
1047Wickens I DilliardJapan2026-07-02Morlong Associates QUALIFIED3Xuxue Feng
1048Izzy M OstroskyIndia2026-06-07Rangoni Of Florence NEW67Amy Elsner
1049Maisha U CampainItaly2026-07-01Buckley Miller Wright NEW62Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aditya Y KolmetzIndiaIoni Bowcher RENEWAL
Izzy U RulapaughRussiaXuxue Feng PROPOSAL
Smith R CaudyItalyIvan Magalhaes UNQUALIFIED
Izzy F MaletSpainAnna Fali UNQUALIFIED
Chavez O MacleadAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois Z MorascaFranceAnna Fali QUALIFIED
Costa N WieserGermanyAmy Elsner UNQUALIFIED
Rodrigues S AlbaresFranceIoni Bowcher UNQUALIFIED
Munro F FollerAustraliaOnyama Limba PROPOSAL
Izzy Q GlickSpainIoni Bowcher NEGOTIATION
Chavez F StockhamCanadaIvan Magalhaes PROPOSAL
Aika Z FigeroaBrazilIvan Magalhaes RENEWAL
Smith I MorascaRussiaElwin Sharvill UNQUALIFIED
Maria H WaycottJapanElwin Sharvill UNQUALIFIED
Jefferson J MarrierAustraliaOnyama Limba NEGOTIATION
Mujtaba M SlusarskiSpainElwin Sharvill RENEWAL
Kaitlin H GauchoIndiaOnyama Limba QUALIFIED
Jones Q MorascaRussiaXuxue Feng NEW
Jefferson S CampainJapanElwin Sharvill NEGOTIATION
Isabel M FerenczUnited KingdomAsiya Javayant QUALIFIED
Leja R InouyeFranceAmy Elsner NEW
Juan M VenereIndiaElwin Sharvill QUALIFIED
Francesco T KuskoUnited KingdomIoni Bowcher QUALIFIED
Munro H BriddickFranceXuxue Feng NEW
Julie B AlbaresGermanyAsiya Javayant RENEWAL
Misaki V ShinkoArgentinaBernardo Dominic RENEWAL
Nicolas T BriddickSpainIoni Bowcher QUALIFIED
Salvatore A FlosiFranceAmy Elsner NEGOTIATION
Jeanfrancois I SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer I DoeRussiaOnyama Limba RENEWAL
Alejandro S CampainFranceIoni Bowcher RENEWAL
Alejandro C OstroskyUnited KingdomElwin Sharvill NEW
Wickens Q DarakjyRussiaAmy Elsner NEGOTIATION
Clifford L MaletAustraliaBernardo Dominic PROPOSAL
Clifford T MacleadFranceAsiya Javayant QUALIFIED
Nicolas S RutaSpainIoni Bowcher RENEWAL
James F SaylorsRussiaIoni Bowcher NEW
Faith M PoquetteCanadaStephen Shaw PROPOSAL
Johnson U FerenczItalyAmy Elsner NEGOTIATION
Nicolas B StensethItalyXuxue Feng NEGOTIATION
Tony N KolmetzUnited KingdomAmy Elsner QUALIFIED
Sinclair O PerinItalyElwin Sharvill PROPOSAL
Alejandro C CaudyFranceOnyama Limba PROPOSAL
Jeanfrancois U FerenczGermanyBernardo Dominic NEW
Misaki G RimIndiaBernardo Dominic RENEWAL
Aika U FerenczArgentinaIvan Magalhaes QUALIFIED
Rodrigues L OldroydUnited KingdomAnna Fali QUALIFIED
Octavia T BologniaSpainAnna Fali UNQUALIFIED
Kaitlin J BologniaJapanIoni Bowcher UNQUALIFIED
Cody Y MacleadSpainStephen Shaw PROPOSAL
Frozen Columns
Name
Silvio Y Dilliard
Maisha H Rulapaugh
Izzy G Perin
Rodrigues D Morasca
Alejandro A Shinko
Ricardo Y Tollner
Silvio N Oldroyd
Darci Y Caldarera
Emily L Kusko
Francesco A Bowley
Emily Q Venere
James M Garufi
Salvatore R Gillian
Juan N Gaucho
Darci P Nicka
Deepesh S Amigon
Aruna L Nicka
Nicolas B Glick
Stacey J Sergi
Darci T Gaucho
Jefferson F Ruta
Adams Y Poquette
Jennifer D Stockham
Sinclair L Paprocki
Cody N Malet
Kadeem E Caudy
Jefferson U Inouye
James W Briddick
David O Maclead
Isabel O Kolmetz
Wickens Q Chui
Greenwood L Butt
Costa F Bowley
Silvio Y Campain
Maria D Royster
Julie S Rulapaugh
Jeanfrancois L Glick
Julie U Malet
Sinclair P Sergi
Wickens F Bolognia
Jennifer T Nestle
Isabel W Kusko
Jennifer Y Tollner
Jennifer C Sergi
Munro S Gaucho
Aditya Z Whobrey
Juan H Briddick
Tony X Stockham
James C Poquette
Julie L Shinko
IdCountryDate
1000India2026-06-28
1001Japan2026-06-07
1002Canada2026-06-28
1003Spain2026-06-22
1004Argentina2026-06-18
1005Brazil2026-06-17
1006Japan2026-06-29
1007Brazil2026-06-13
1008Germany2026-06-15
1009India2026-07-06
1010Russia2026-07-05
1011Russia2026-06-12
1012Italy2026-06-24
1013Canada2026-06-22
1014Brazil2026-06-09
1015Australia2026-07-02
1016France2026-06-09
1017Brazil2026-06-12
1018Argentina2026-07-02
1019Russia2026-07-02
1020United Kingdom2026-06-08
1021Spain2026-06-13
1022India2026-06-18
1023Russia2026-06-25
1024Japan2026-06-07
1025France2026-06-08
1026Japan2026-06-08
1027Russia2026-07-01
1028Japan2026-06-13
1029United Kingdom2026-06-26
1030Canada2026-06-29
1031Canada2026-06-18
1032Australia2026-06-23
1033Spain2026-06-09
1034Japan2026-06-17
1035United Kingdom2026-06-10
1036Canada2026-06-14
1037Canada2026-06-20
1038India2026-06-27
1039Brazil2026-06-16
1040United Kingdom2026-06-29
1041India2026-06-26
1042Brazil2026-06-16
1043France2026-06-18
1044Australia2026-06-27
1045France2026-06-16
1046India2026-07-02
1047Japan2026-06-10
1048France2026-06-11
1049Canada2026-07-04

On-Demand Data

NameIdCountryDate
Chavez N Marrier1000Brazil2026-06-18
Antonio M Ruta1001India2026-06-16
Chavez X Dilliard1002Japan2026-06-30
Johnson K Amigon1003Germany2026-06-14
Clifford W Poquette1004Germany2026-07-06
Chavez T Butt1005Canada2026-07-02
Maisha F Ostrosky1006Argentina2026-06-23
Silvio C Oldroyd1007Australia2026-06-08
David D Bowley1008Italy2026-06-17
Jeanfrancois Y Maclead1009Russia2026-06-17
Greenwood L Bolognia1010Canada2026-06-30
Sinclair O Inouye1011Spain2026-07-03
Chavez G Flosi1012Argentina2026-06-30
Morrow S Perin1013United Kingdom2026-07-01
Faith Z Tollner1014Russia2026-06-10
Cody X Albares1015Italy2026-06-30
Aditya H Stenseth1016United Kingdom2026-06-15
Salvatore M Iturbide1017Argentina2026-06-29
Aditya H Glick1018India2026-07-05
Costa W Flosi1019United Kingdom2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Y GauchoUnited KingdomStephen Shaw PROPOSAL
Octavia G ButtFranceIoni Bowcher QUALIFIED
Jefferson D MaletBrazilIoni Bowcher QUALIFIED
Smith J DarakjyGermanyIoni Bowcher QUALIFIED
Mayumi K FerenczItalyBernardo Dominic PROPOSAL
Johnson A RulapaughCanadaStephen Shaw UNQUALIFIED
Ricardo A StensethIndiaXuxue Feng UNQUALIFIED
Wickens A SlusarskiIndiaStephen Shaw QUALIFIED
Jones S PaprockiGermanyAnna Fali QUALIFIED
Mayumi T RulapaughAustraliaAmy Elsner NEGOTIATION
Morrow Y OldroydCanadaElwin Sharvill NEW
Silvio Z IturbideRussiaBernardo Dominic RENEWAL
Aika Y StensethSpainIoni Bowcher QUALIFIED
Jennifer J MarrierIndiaOnyama Limba QUALIFIED
Deepesh K PerinJapanAmy Elsner UNQUALIFIED
Arvin M InouyeBrazilAmy Elsner NEW
Clifford O NickaJapanXuxue Feng RENEWAL
Murillo X FlosiItalyBernardo Dominic NEGOTIATION
Silvio T AmigonArgentinaXuxue Feng NEW
Leja T OstroskyCanadaIoni Bowcher UNQUALIFIED
James Y FerenczItalyAnna Fali QUALIFIED
Julie F VenereUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh B MorascaJapanIoni Bowcher QUALIFIED
Jeanfrancois J SaylorsGermanyAnna Fali PROPOSAL
Silvio D PerinCanadaIoni Bowcher UNQUALIFIED
Misaki E OstroskyJapanXuxue Feng NEW
Julie V SaylorsAustraliaAsiya Javayant UNQUALIFIED
Alejandro F OstroskyFranceIvan Magalhaes QUALIFIED
Stacey S FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Ivar L VenereRussiaIoni Bowcher NEGOTIATION
Leon H MaletAustraliaOnyama Limba UNQUALIFIED
Morrow A RoysterGermanyOnyama Limba NEW
Octavia L SergiGermanyXuxue Feng QUALIFIED
Juan P GarufiRussiaOnyama Limba RENEWAL
Aditya U TollnerItalyXuxue Feng NEW
Morrow H IturbideCanadaBernardo Dominic NEGOTIATION
Julie Q FerenczJapanOnyama Limba NEGOTIATION
Smith J GauchoFranceXuxue Feng RENEWAL
Smith K AlbaresRussiaAmy Elsner UNQUALIFIED
Mayumi B FigeroaArgentinaAnna Fali 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>