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
Juan H StockhamIndiaElwin Sharvill RENEWAL
Jennifer T CaudyFranceStephen Shaw QUALIFIED
Faith S SergiJapanIoni Bowcher NEW
Octavia J MaletCanadaIvan Magalhaes PROPOSAL
Jones V DarakjyUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois P MaletUnited KingdomAnna Fali PROPOSAL
Smith A BologniaSpainAsiya Javayant UNQUALIFIED
Morrow I MorascaSpainElwin Sharvill NEW
Salvatore W SlusarskiSpainAnna Fali NEGOTIATION
Deepesh I WieserUnited KingdomElwin Sharvill QUALIFIED
Rodrigues F SaylorsItalyAmy Elsner UNQUALIFIED
Arvin E DoeArgentinaOnyama Limba NEGOTIATION
Silvio N StockhamSpainAsiya Javayant PROPOSAL
Maisha B MaletArgentinaBernardo Dominic PROPOSAL
Jennifer D SchemmerJapanOnyama Limba PROPOSAL
Deepesh T ChuiSpainAmy Elsner NEW
Smith P ButtBrazilXuxue Feng NEGOTIATION
Kadeem L KolmetzIndiaIvan Magalhaes UNQUALIFIED
Antonio P SaylorsFranceAmy Elsner PROPOSAL
Silvio S IturbideRussiaIoni Bowcher RENEWAL
Costa L SlusarskiSpainStephen Shaw NEW
Mujtaba N PoquetteFranceIvan Magalhaes NEW
Maisha Q CampainJapanXuxue Feng QUALIFIED
Isabel N RoysterBrazilBernardo Dominic UNQUALIFIED
Costa O FollerUnited KingdomAmy Elsner QUALIFIED
Munro W CaudyAustraliaAnna Fali UNQUALIFIED
Johnson B GlickArgentinaStephen Shaw NEW
David P GlickArgentinaOnyama Limba QUALIFIED
Faith K DoeUnited KingdomXuxue Feng PROPOSAL
Juan S MorascaJapanXuxue Feng RENEWAL
Greenwood Q DilliardGermanyBernardo Dominic UNQUALIFIED
Claire P TollnerGermanyIvan Magalhaes PROPOSAL
Clifford J InouyeJapanElwin Sharvill PROPOSAL
Murillo B MorascaArgentinaAmy Elsner NEW
Kaitlin X OldroydBrazilStephen Shaw NEW
Jennifer X DarakjyAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois M AlbaresIndiaOnyama Limba RENEWAL
Mayumi V MacleadJapanBernardo Dominic QUALIFIED
Octavia U VenereArgentinaAmy Elsner NEW
Johnson H OldroydArgentinaBernardo Dominic UNQUALIFIED
Aditya B StockhamFranceIvan Magalhaes QUALIFIED
Jennifer L StockhamSpainBernardo Dominic QUALIFIED
Juan H FigeroaJapanBernardo Dominic NEGOTIATION
Aruna N BowleyRussiaAmy Elsner RENEWAL
Sinclair X VenereRussiaBernardo Dominic RENEWAL
James W DilliardUnited KingdomBernardo Dominic PROPOSAL
Nicolas L AmigonFranceIoni Bowcher UNQUALIFIED
Mujtaba B StockhamCanadaIoni Bowcher UNQUALIFIED
Aditya B SergiCanadaAmy Elsner UNQUALIFIED
Maria Z TollnerFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio H FigeroaUnited KingdomStephen Shaw UNQUALIFIED
Leon X SchemmerIndiaXuxue Feng PROPOSAL
Francesco R DarakjySpainIvan Magalhaes NEGOTIATION
Jones Z NestleAustraliaIoni Bowcher NEGOTIATION
Stacey W NestleRussiaIoni Bowcher UNQUALIFIED
Greenwood V StockhamRussiaAsiya Javayant RENEWAL
Morrow Z KuskoGermanyAsiya Javayant QUALIFIED
Smith G ChuiRussiaBernardo Dominic QUALIFIED
Rodrigues X MorascaAustraliaIoni Bowcher NEGOTIATION
Izzy M SchemmerGermanyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody A CampainCanada2026-07-08Benton, John B Jr QUALIFIED24Stephen Shaw
1001Leja F BriddickBrazil2026-06-15Truhlar And Truhlar Attys QUALIFIED85Onyama Limba
1002Chavez Z WieserIndia2026-06-13Rangoni Of Florence RENEWAL5Onyama Limba
1003Nicolas Q WhobreyCanada2026-06-25Chapman, Ross E Esq QUALIFIED66Elwin Sharvill
1004Tony Z OldroydBrazil2026-06-19Chapman, Ross E Esq QUALIFIED36Bernardo Dominic
1005Johnson E MaletUnited Kingdom2026-06-19Feiner Bros NEGOTIATION97Stephen Shaw
1006Darci K RutaArgentina2026-06-22Buckley Miller Wright PROPOSAL89Stephen Shaw
1007Juan W RutaJapan2026-06-20King, Christopher A Esq UNQUALIFIED55Ivan Magalhaes
1008Julie K VocelkaUnited Kingdom2026-07-11Commercial Press PROPOSAL34Ioni Bowcher
1009Ricardo U MacleadBrazil2026-07-01Buckley Miller Wright RENEWAL61Stephen Shaw
1010Ivar J SchemmerFrance2026-06-21Rousseaux, Michael Esq QUALIFIED5Bernardo Dominic
1011Darci A AlbaresJapan2026-06-13Truhlar And Truhlar Attys NEW85Anna Fali
1012Sinclair H NickaArgentina2026-06-18Commercial Press UNQUALIFIED43Onyama Limba
1013Sinclair S WhobreyJapan2026-07-03Commercial Press NEW42Ioni Bowcher
1014Adams Q MarrierCanada2026-06-27Rangoni Of Florence PROPOSAL77Ioni Bowcher
1015Leon U WaycottBrazil2026-06-25Printing Dimensions UNQUALIFIED32Ioni Bowcher
1016Julie F MorascaIndia2026-06-13Chemel, James L Cpa NEW60Onyama Limba
1017Isabel H FlosiSpain2026-06-22Truhlar And Truhlar Attys PROPOSAL98Anna Fali
1018Sinclair X DoeBrazil2026-07-10Printing Dimensions PROPOSAL15Bernardo Dominic
1019Ashley M RoysterFrance2026-07-06King, Christopher A Esq QUALIFIED86Stephen Shaw
1020Salvatore N GauchoSpain2026-06-23Buckley Miller Wright NEW9Anna Fali
1021Alejandro M WaycottGermany2026-06-23King, Christopher A Esq UNQUALIFIED40Anna Fali
1022Arvin O ShinkoSpain2026-06-28King, Christopher A Esq NEGOTIATION26Xuxue Feng
1023Julie D CaudyRussia2026-06-17Benton, John B Jr PROPOSAL59Ioni Bowcher
1024Alejandro T PerinBrazil2026-06-19Feiner Bros QUALIFIED79Asiya Javayant
1025Adams O GauchoIndia2026-07-01Chapman, Ross E Esq RENEWAL28Xuxue Feng
1026Mujtaba F PoquetteAustralia2026-06-13Chapman, Ross E Esq RENEWAL50Amy Elsner
1027James D RimRussia2026-06-24Feltz Printing Service NEW85Anna Fali
1028Darci I ChuiRussia2026-06-27Buckley Miller Wright NEGOTIATION22Xuxue Feng
1029Darci N OldroydItaly2026-07-11Benton, John B Jr NEW91Ioni Bowcher
1030Mayumi F ChuiUnited Kingdom2026-07-03Chemel, James L Cpa UNQUALIFIED34Xuxue Feng
1031Aruna M MaletCanada2026-06-16Printing Dimensions RENEWAL42Xuxue Feng
1032Arvin U GlickJapan2026-06-13Benton, John B Jr PROPOSAL52Stephen Shaw
1033Smith E WieserFrance2026-06-27Chapman, Ross E Esq NEW42Bernardo Dominic
1034Arvin P GarufiSpain2026-06-30Chanay, Jeffrey A Esq QUALIFIED48Ioni Bowcher
1035Mayumi A DarakjyItaly2026-06-28Morlong Associates UNQUALIFIED7Ioni Bowcher
1036Claire L CaldareraItaly2026-07-01Morlong Associates RENEWAL42Xuxue Feng
1037Rodrigues W MarrierSpain2026-06-24King, Christopher A Esq NEGOTIATION59Ioni Bowcher
1038Clifford O SlusarskiJapan2026-06-13Feiner Bros RENEWAL17Asiya Javayant
1039Jeanfrancois Q ShinkoCanada2026-07-04Chanay, Jeffrey A Esq NEW81Xuxue Feng
1040Jones A CaldareraSpain2026-07-03Rangoni Of Florence RENEWAL95Xuxue Feng
1041Julie J GauchoSpain2026-07-05Buckley Miller Wright NEW60Xuxue Feng
1042Izzy U ChuiBrazil2026-06-18Printing Dimensions QUALIFIED98Elwin Sharvill
1043Chavez S GauchoGermany2026-07-11Feltz Printing Service NEW4Anna Fali
1044Arvin B TollnerFrance2026-06-12Rousseaux, Michael Esq QUALIFIED23Xuxue Feng
1045Tony K FollerCanada2026-06-20Chemel, James L Cpa PROPOSAL89Asiya Javayant
1046Deepesh L RoysterItaly2026-07-04Rangoni Of Florence RENEWAL36Elwin Sharvill
1047Darci H WhobreyArgentina2026-06-17Chanay, Jeffrey A Esq UNQUALIFIED57Onyama Limba
1048Costa I DoeUnited Kingdom2026-06-17Chanay, Jeffrey A Esq RENEWAL74Onyama Limba
1049Greenwood N FerenczIndia2026-06-25Feltz Printing Service NEW46Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria X NestleAustraliaStephen Shaw NEW
Jennifer A FlosiCanadaXuxue Feng UNQUALIFIED
Octavia J MarrierArgentinaAmy Elsner NEGOTIATION
Mayumi L RimGermanyAnna Fali NEGOTIATION
Munro N TollnerItalyIvan Magalhaes PROPOSAL
Deepesh U AlbaresFranceOnyama Limba QUALIFIED
Morrow G CaudyIndiaAmy Elsner NEGOTIATION
Costa U DarakjyGermanyAsiya Javayant NEW
Maisha E FlosiAustraliaAnna Fali UNQUALIFIED
Jefferson T BriddickAustraliaIvan Magalhaes NEGOTIATION
Leja Q RimRussiaAsiya Javayant PROPOSAL
Darci P KuskoArgentinaStephen Shaw QUALIFIED
Alejandro C VenereSpainBernardo Dominic NEGOTIATION
David E CaldareraSpainAmy Elsner QUALIFIED
Francesco K CaldareraRussiaIvan Magalhaes NEGOTIATION
Stacey H MaletSpainStephen Shaw UNQUALIFIED
Silvio W ShinkoUnited KingdomAsiya Javayant PROPOSAL
Chavez M StensethJapanIvan Magalhaes RENEWAL
Julie D GillianJapanBernardo Dominic UNQUALIFIED
Murillo V CaudyIndiaOnyama Limba UNQUALIFIED
Sinclair B NickaAustraliaStephen Shaw NEGOTIATION
Ashley O BriddickRussiaOnyama Limba NEGOTIATION
Isabel W VocelkaCanadaAmy Elsner RENEWAL
Smith G CaldareraAustraliaStephen Shaw UNQUALIFIED
Rodrigues P PaprockiRussiaElwin Sharvill UNQUALIFIED
Aditya V IturbideGermanyStephen Shaw RENEWAL
Sinclair J PaprockiBrazilAnna Fali RENEWAL
Jennifer J FlosiUnited KingdomXuxue Feng NEW
Deepesh O InouyeFranceIvan Magalhaes NEGOTIATION
Wickens R BriddickArgentinaElwin Sharvill PROPOSAL
Francesco O AmigonSpainAmy Elsner PROPOSAL
Antonio Y CaudyCanadaAnna Fali NEW
Salvatore V PerinFranceElwin Sharvill UNQUALIFIED
Smith E NestleRussiaElwin Sharvill UNQUALIFIED
Ashley F ShinkoArgentinaAsiya Javayant NEGOTIATION
Kaitlin E IturbideIndiaXuxue Feng PROPOSAL
Darci F TollnerGermanyOnyama Limba UNQUALIFIED
Emily E AmigonJapanOnyama Limba UNQUALIFIED
Costa B IturbideUnited KingdomAnna Fali QUALIFIED
Kadeem W AlbaresCanadaIvan Magalhaes UNQUALIFIED
Mujtaba L MarrierGermanyOnyama Limba NEW
Aruna A OstroskyBrazilStephen Shaw UNQUALIFIED
Silvio J OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Julie Z FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Jennifer Z NestleRussiaBernardo Dominic UNQUALIFIED
Francesco N CaldareraGermanyIvan Magalhaes NEW
Leon D CaldareraGermanyXuxue Feng RENEWAL
Munro J FollerUnited KingdomStephen Shaw PROPOSAL
Mayumi P AmigonFranceElwin Sharvill RENEWAL
Arvin X ChuiGermanyXuxue Feng NEGOTIATION
Frozen Columns
Name
Mujtaba K Vocelka
Deepesh F Malet
Greenwood V Tollner
Faith S Marrier
Tony H Paprocki
Jefferson L Tollner
Ivar U Ferencz
Deepesh A Ostrosky
Mujtaba L Ferencz
Maria J Morasca
Morrow Y Inouye
Izzy T Glick
Francesco G Amigon
Maisha J Ferencz
Stacey N Rulapaugh
Leja M Kolmetz
Stacey B Oldroyd
Maria L Whobrey
Rodrigues Q Marrier
Arvin G Iturbide
Wickens T Venere
Mujtaba X Doe
Tony U Bolognia
Tony R Inouye
Claire Z Darakjy
Sinclair K Paprocki
Jones Y Maclead
Kaitlin K Perin
Smith E Ferencz
Mujtaba X Oldroyd
Silvio V Maclead
Leon A Stockham
Wickens V Oldroyd
Kaitlin S Glick
Stacey B Oldroyd
Rodrigues X Shinko
Smith B Vocelka
Aika M Kolmetz
Costa H Venere
Tony T Nestle
Jones E Iturbide
Emily J Briddick
Arvin E Marrier
Ivar P Gillian
Mayumi T Dilliard
Alejandro X Caldarera
Chavez X Stockham
Deepesh F Poquette
Jones D Sergi
Murillo I Kolmetz
IdCountryDate
1000Japan2026-07-02
1001United Kingdom2026-06-12
1002Argentina2026-07-03
1003India2026-06-25
1004Germany2026-06-24
1005India2026-07-11
1006Canada2026-06-25
1007Brazil2026-07-02
1008Canada2026-06-30
1009United Kingdom2026-07-10
1010India2026-06-15
1011Australia2026-07-01
1012United Kingdom2026-07-02
1013Spain2026-06-28
1014Canada2026-06-23
1015Canada2026-07-10
1016Russia2026-06-29
1017Japan2026-06-14
1018France2026-06-25
1019Japan2026-06-19
1020Spain2026-06-14
1021Germany2026-06-18
1022Brazil2026-06-24
1023Argentina2026-06-28
1024Australia2026-07-01
1025Australia2026-07-08
1026Brazil2026-07-07
1027Spain2026-06-13
1028Brazil2026-06-20
1029France2026-06-20
1030Canada2026-07-06
1031United Kingdom2026-07-10
1032Japan2026-06-19
1033Australia2026-07-06
1034Spain2026-06-24
1035Argentina2026-07-11
1036India2026-06-25
1037United Kingdom2026-07-05
1038India2026-06-26
1039Italy2026-06-15
1040Canada2026-07-04
1041United Kingdom2026-06-25
1042United Kingdom2026-06-20
1043Australia2026-06-23
1044Canada2026-06-19
1045Australia2026-07-09
1046France2026-06-18
1047United Kingdom2026-06-23
1048India2026-07-06
1049United Kingdom2026-06-22

On-Demand Data

NameIdCountryDate
Maria J Amigon1000Brazil2026-06-29
Chavez P Marrier1001Germany2026-06-29
Leja X Caldarera1002Japan2026-06-26
Jeanfrancois Z Nicka1003France2026-07-10
Aika A Maclead1004Brazil2026-07-11
Jones R Rim1005France2026-06-12
Adams G Whobrey1006Spain2026-06-23
Ivar O Iturbide1007Italy2026-06-23
Jennifer Q Malet1008Russia2026-06-18
Jones Y Briddick1009India2026-06-14
Izzy C Caldarera1010India2026-07-07
Arvin P Iturbide1011Spain2026-06-29
Arvin X Foller1012Russia2026-07-05
David L Stenseth1013Italy2026-06-18
Aditya P Paprocki1014Australia2026-06-12
Nicolas B Paprocki1015Australia2026-07-04
Aika D Whobrey1016Brazil2026-06-20
Cody X Shinko1017Spain2026-07-05
Faith B Butt1018Canada2026-06-28
Murillo A Ferencz1019Japan2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya Y AmigonItalyElwin Sharvill NEW
Juan I SchemmerSpainElwin Sharvill RENEWAL
Kaitlin B NestleAustraliaXuxue Feng UNQUALIFIED
Ricardo N CaldareraJapanAsiya Javayant NEW
Francesco E DoeFranceStephen Shaw QUALIFIED
Ashley W VocelkaFranceAsiya Javayant RENEWAL
Antonio H MaletJapanIvan Magalhaes UNQUALIFIED
Misaki U PoquetteRussiaOnyama Limba PROPOSAL
Maisha Y TollnerBrazilElwin Sharvill NEW
Jeanfrancois C StensethFranceIoni Bowcher NEGOTIATION
Clifford C WaycottFranceXuxue Feng RENEWAL
Mayumi L WaycottFranceAnna Fali UNQUALIFIED
Jeanfrancois X AmigonItalyElwin Sharvill UNQUALIFIED
Leon S RutaAustraliaOnyama Limba PROPOSAL
Chavez N BologniaIndiaAsiya Javayant RENEWAL
Clifford Y ButtFranceXuxue Feng UNQUALIFIED
Octavia N WieserAustraliaElwin Sharvill NEGOTIATION
Misaki H NickaItalyStephen Shaw PROPOSAL
Octavia L OstroskyItalyOnyama Limba UNQUALIFIED
Jennifer Y PaprockiRussiaAsiya Javayant PROPOSAL
Mayumi O GarufiAustraliaElwin Sharvill UNQUALIFIED
Rodrigues P VenereArgentinaAsiya Javayant PROPOSAL
Costa Y AlbaresRussiaXuxue Feng NEGOTIATION
Aditya U PerinBrazilStephen Shaw NEW
Mujtaba U BologniaJapanAmy Elsner NEGOTIATION
Leja Y ShinkoArgentinaAmy Elsner RENEWAL
Cody O SergiIndiaIoni Bowcher PROPOSAL
Octavia J SaylorsIndiaElwin Sharvill RENEWAL
Emily L FlosiIndiaIoni Bowcher QUALIFIED
Arvin S GillianCanadaAmy Elsner PROPOSAL
Kaitlin Q InouyeCanadaBernardo Dominic PROPOSAL
Jefferson I IturbideRussiaAnna Fali UNQUALIFIED
Julie M RulapaughIndiaIvan Magalhaes PROPOSAL
Johnson A KolmetzAustraliaXuxue Feng RENEWAL
Costa K VocelkaSpainAsiya Javayant RENEWAL
Aditya I FollerRussiaIoni Bowcher QUALIFIED
Arvin B GauchoRussiaAmy Elsner UNQUALIFIED
Smith A BologniaAustraliaAsiya Javayant RENEWAL
Wickens N VenereIndiaElwin Sharvill QUALIFIED
Wickens A BowleyIndiaIvan Magalhaes RENEWAL

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