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
Antonio L VenereAustraliaIoni Bowcher NEGOTIATION
Mayumi N IturbideSpainAnna Fali PROPOSAL
Misaki M CaudyUnited KingdomOnyama Limba PROPOSAL
Maria N IturbideUnited KingdomXuxue Feng UNQUALIFIED
Misaki P CaudyFranceBernardo Dominic QUALIFIED
Aika N DarakjyJapanOnyama Limba RENEWAL
Antonio Q SchemmerItalyAsiya Javayant QUALIFIED
Greenwood S GillianRussiaElwin Sharvill RENEWAL
Jones Z AmigonRussiaBernardo Dominic RENEWAL
Mayumi Z VocelkaFranceIvan Magalhaes UNQUALIFIED
Julie F WhobreyItalyIvan Magalhaes NEW
Adams P AlbaresArgentinaStephen Shaw UNQUALIFIED
Emily A FigeroaRussiaIvan Magalhaes PROPOSAL
Kadeem C MaletUnited KingdomAmy Elsner RENEWAL
Leja D PerinJapanAsiya Javayant PROPOSAL
Adams Q SergiRussiaIvan Magalhaes QUALIFIED
Wickens P GlickJapanElwin Sharvill NEW
Tony X BriddickItalyOnyama Limba QUALIFIED
Octavia L WaycottSpainAnna Fali PROPOSAL
Aruna M CaudyAustraliaElwin Sharvill NEW
Kadeem R RimGermanyElwin Sharvill NEGOTIATION
Leon P RulapaughBrazilBernardo Dominic UNQUALIFIED
Misaki E CaldareraUnited KingdomOnyama Limba RENEWAL
Aditya Q OstroskyIndiaStephen Shaw UNQUALIFIED
Wickens W ChuiRussiaIvan Magalhaes NEW
Arvin Q GillianSpainAsiya Javayant NEW
Faith G RimRussiaOnyama Limba QUALIFIED
Silvio D RutaItalyAmy Elsner PROPOSAL
Maria O RoysterCanadaXuxue Feng NEGOTIATION
Mujtaba W FollerIndiaIvan Magalhaes PROPOSAL
Costa P AlbaresArgentinaStephen Shaw NEW
Leja F ButtFranceAsiya Javayant PROPOSAL
Jefferson L AlbaresFranceXuxue Feng RENEWAL
Smith T CaudyArgentinaIoni Bowcher QUALIFIED
Tony P WaycottGermanyOnyama Limba NEGOTIATION
Deepesh P MorascaRussiaIvan Magalhaes NEGOTIATION
Wickens X MacleadArgentinaAmy Elsner RENEWAL
Ashley L PerinSpainIvan Magalhaes NEGOTIATION
Nicolas S IturbideGermanyIvan Magalhaes NEGOTIATION
Emily V KuskoFranceOnyama Limba UNQUALIFIED
Wickens R PerinRussiaIvan Magalhaes UNQUALIFIED
Leja F PerinArgentinaElwin Sharvill NEW
Isabel B RoysterCanadaXuxue Feng PROPOSAL
Smith T RutaGermanyOnyama Limba PROPOSAL
Emily W ButtAustraliaIoni Bowcher RENEWAL
Tony K FigeroaFranceStephen Shaw QUALIFIED
James L WaycottAustraliaAsiya Javayant RENEWAL
Kadeem H BowleyArgentinaAnna Fali RENEWAL
Faith B PerinRussiaBernardo Dominic UNQUALIFIED
Mujtaba K GauchoRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia J SaylorsAustraliaXuxue Feng NEGOTIATION
Julie R SlusarskiIndiaBernardo Dominic RENEWAL
Murillo J FollerCanadaIoni Bowcher UNQUALIFIED
Isabel G CaldareraBrazilStephen Shaw PROPOSAL
Nicolas I SaylorsGermanyStephen Shaw PROPOSAL
Maisha C OstroskyBrazilIoni Bowcher UNQUALIFIED
Jeanfrancois V CampainJapanIvan Magalhaes UNQUALIFIED
Arvin A ChuiAustraliaIvan Magalhaes NEW
Antonio T WhobreySpainAnna Fali UNQUALIFIED
Misaki V MarrierRussiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David H DarakjyIndia2025-05-25Rousseaux, Michael Esq NEGOTIATION69Asiya Javayant
1001Arvin H GauchoArgentina2025-05-20Commercial Press NEGOTIATION8Onyama Limba
1002Francesco J RutaBrazil2025-05-22Rousseaux, Michael Esq UNQUALIFIED95Stephen Shaw
1003Jones H StensethJapan2025-05-26Feiner Bros QUALIFIED54Xuxue Feng
1004Izzy U CaldareraFrance2025-06-09Printing Dimensions UNQUALIFIED65Ivan Magalhaes
1005Jeanfrancois C MarrierRussia2025-05-18Benton, John B Jr UNQUALIFIED88Bernardo Dominic
1006Sinclair I CaudyAustralia2025-06-15Commercial Press PROPOSAL37Amy Elsner
1007Aika U RulapaughJapan2025-05-18Commercial Press PROPOSAL27Bernardo Dominic
1008Leon U BowleyItaly2025-05-23Feltz Printing Service NEGOTIATION2Amy Elsner
1009Ashley J PaprockiIndia2025-05-24Commercial Press NEGOTIATION54Onyama Limba
1010Octavia N DarakjyGermany2025-05-24Truhlar And Truhlar Attys QUALIFIED20Elwin Sharvill
1011Maria H StockhamJapan2025-05-23Rangoni Of Florence NEGOTIATION50Anna Fali
1012Leon D DarakjyBrazil2025-05-31Morlong Associates PROPOSAL63Asiya Javayant
1013Wickens Z VocelkaBrazil2025-05-27Truhlar And Truhlar Attys QUALIFIED60Amy Elsner
1014Cody A AlbaresJapan2025-06-08Chemel, James L Cpa RENEWAL71Anna Fali
1015Antonio G SergiRussia2025-06-03Benton, John B Jr RENEWAL17Anna Fali
1016Stacey N SergiFrance2025-06-06Buckley Miller Wright UNQUALIFIED24Onyama Limba
1017Tony A CaudyAustralia2025-05-28Rangoni Of Florence NEGOTIATION50Amy Elsner
1018Smith N MacleadCanada2025-06-04Printing Dimensions QUALIFIED82Ivan Magalhaes
1019Mayumi A SergiItaly2025-06-02Truhlar And Truhlar Attys PROPOSAL51Asiya Javayant
1020Murillo V GauchoIndia2025-06-04Commercial Press UNQUALIFIED68Bernardo Dominic
1021Deepesh X GarufiRussia2025-06-09Commercial Press QUALIFIED59Onyama Limba
1022Isabel Z StensethGermany2025-05-31Feiner Bros NEGOTIATION39Amy Elsner
1023Ashley P FerenczFrance2025-05-27Benton, John B Jr QUALIFIED32Bernardo Dominic
1024Emily T GarufiJapan2025-05-23Chanay, Jeffrey A Esq RENEWAL93Ivan Magalhaes
1025Jones H OldroydRussia2025-06-11Chapman, Ross E Esq NEGOTIATION79Xuxue Feng
1026Mujtaba M FlosiGermany2025-06-04King, Christopher A Esq QUALIFIED13Xuxue Feng
1027Nicolas Z MacleadCanada2025-06-15Buckley Miller Wright NEW26Onyama Limba
1028Silvio B SaylorsItaly2025-06-10Feiner Bros QUALIFIED28Bernardo Dominic
1029Aruna W FollerCanada2025-05-22Rousseaux, Michael Esq UNQUALIFIED13Ioni Bowcher
1030Faith W MacleadArgentina2025-06-04Chemel, James L Cpa NEW97Asiya Javayant
1031Greenwood O WhobreyBrazil2025-06-06Feiner Bros UNQUALIFIED43Amy Elsner
1032Misaki J NestleCanada2025-06-12King, Christopher A Esq QUALIFIED41Anna Fali
1033Leon C RimAustralia2025-05-29Chanay, Jeffrey A Esq NEW97Asiya Javayant
1034Leja L PerinRussia2025-05-19Printing Dimensions UNQUALIFIED3Asiya Javayant
1035Aika V SlusarskiCanada2025-06-10Commercial Press PROPOSAL82Bernardo Dominic
1036Maisha B RimCanada2025-05-26Buckley Miller Wright UNQUALIFIED93Amy Elsner
1037Claire W FigeroaBrazil2025-05-30Dorl, James J Esq PROPOSAL4Xuxue Feng
1038Stacey F RulapaughIndia2025-05-28Chanay, Jeffrey A Esq NEW17Elwin Sharvill
1039Darci Z WaycottUnited Kingdom2025-06-16Benton, John B Jr UNQUALIFIED93Onyama Limba
1040Francesco M DoeJapan2025-05-31Rangoni Of Florence NEGOTIATION55Xuxue Feng
1041James M RoysterBrazil2025-05-28Feltz Printing Service NEW87Xuxue Feng
1042Aika F DilliardJapan2025-05-24Dorl, James J Esq RENEWAL36Amy Elsner
1043Leon V AlbaresSpain2025-06-10Commercial Press NEW37Bernardo Dominic
1044Isabel L KolmetzSpain2025-06-08Rousseaux, Michael Esq QUALIFIED95Onyama Limba
1045Smith A GauchoCanada2025-06-04Truhlar And Truhlar Attys RENEWAL54Amy Elsner
1046Rodrigues N RoysterCanada2025-05-28Rangoni Of Florence NEGOTIATION68Xuxue Feng
1047Morrow L KolmetzUnited Kingdom2025-06-03Morlong Associates UNQUALIFIED6Elwin Sharvill
1048Wickens X RutaIndia2025-06-07Truhlar And Truhlar Attys UNQUALIFIED23Anna Fali
1049Chavez Y WhobreySpain2025-06-03King, Christopher A Esq QUALIFIED91Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Arvin Y GauchoBrazilAmy Elsner NEW
Leon L CampainGermanyIoni Bowcher QUALIFIED
Adams P FerenczArgentinaXuxue Feng NEGOTIATION
Isabel N NestleUnited KingdomIvan Magalhaes QUALIFIED
Claire X GillianGermanyStephen Shaw QUALIFIED
Sinclair X RulapaughJapanIvan Magalhaes PROPOSAL
Munro A InouyeAustraliaAsiya Javayant QUALIFIED
Munro D BowleyIndiaAnna Fali RENEWAL
Jennifer C DoeAustraliaIvan Magalhaes NEGOTIATION
Leja W AmigonFranceOnyama Limba PROPOSAL
Octavia G IturbideBrazilElwin Sharvill NEW
Kaitlin F GlickBrazilBernardo Dominic UNQUALIFIED
Greenwood T VenereSpainStephen Shaw RENEWAL
Adams L GlickJapanBernardo Dominic PROPOSAL
Octavia T KolmetzUnited KingdomAmy Elsner PROPOSAL
Smith O MorascaSpainStephen Shaw PROPOSAL
Nicolas F BologniaUnited KingdomStephen Shaw PROPOSAL
Cody Q MacleadFranceBernardo Dominic RENEWAL
Morrow S MaletIndiaOnyama Limba NEGOTIATION
Izzy N RimJapanAnna Fali NEW
Kadeem R IturbideJapanIoni Bowcher UNQUALIFIED
Johnson Z SchemmerArgentinaAsiya Javayant PROPOSAL
Alejandro B ChuiArgentinaElwin Sharvill PROPOSAL
Ricardo Z DoeArgentinaStephen Shaw QUALIFIED
Leon F ChuiFranceOnyama Limba RENEWAL
Maria E GillianIndiaXuxue Feng RENEWAL
Claire H WaycottItalyElwin Sharvill NEGOTIATION
Greenwood O RoysterUnited KingdomAmy Elsner NEW
Julie D FollerJapanAnna Fali PROPOSAL
Sinclair I BowleyAustraliaAsiya Javayant NEW
Adams A RutaArgentinaOnyama Limba QUALIFIED
Isabel Q GlickSpainOnyama Limba NEW
Emily V IturbideRussiaIoni Bowcher UNQUALIFIED
Izzy J RulapaughIndiaAnna Fali NEGOTIATION
Johnson L AlbaresBrazilStephen Shaw PROPOSAL
Francesco E DarakjySpainElwin Sharvill UNQUALIFIED
Costa V ShinkoRussiaAmy Elsner UNQUALIFIED
James R MaletBrazilAmy Elsner PROPOSAL
Greenwood C AmigonSpainIoni Bowcher NEW
Maisha E DarakjyIndiaXuxue Feng QUALIFIED
Francesco Z SaylorsIndiaXuxue Feng NEGOTIATION
Ricardo Z CaldareraBrazilXuxue Feng NEW
Kadeem K WaycottItalyStephen Shaw UNQUALIFIED
Kaitlin Z DarakjyUnited KingdomXuxue Feng NEGOTIATION
Arvin E GauchoRussiaAmy Elsner NEGOTIATION
Izzy G BologniaSpainAsiya Javayant PROPOSAL
Jennifer G KuskoFranceIvan Magalhaes NEW
Mayumi Y AlbaresIndiaIvan Magalhaes UNQUALIFIED
Kaitlin B MaletFranceAsiya Javayant UNQUALIFIED
Jefferson T InouyeSpainElwin Sharvill NEW
Frozen Columns
Name
Emily T Slusarski
Francesco H Garufi
Nicolas U Waycott
Munro N Bowley
Antonio C Shinko
Munro G Ostrosky
Mayumi J Iturbide
Rodrigues M Albares
Octavia E Caudy
David L Maclead
Maria M Poquette
Johnson O Slusarski
Aruna L Rulapaugh
David W Caudy
Aika W Darakjy
Izzy U Rulapaugh
Antonio G Bowley
Leja S Campain
Octavia V Foller
Julie M Rulapaugh
Maisha H Waycott
Sinclair C Rulapaugh
Aruna G Figeroa
Ivar L Bolognia
Silvio F Amigon
Antonio I Caudy
Chavez K Dilliard
Octavia Y Maclead
Nicolas I Ferencz
Isabel D Garufi
Octavia B Paprocki
Salvatore Q Waycott
Leon H Butt
Maisha S Malet
Rodrigues M Wieser
Tony A Whobrey
Chavez T Malet
Salvatore P Tollner
Mayumi A Morasca
Deepesh W Nestle
Leja Z Oldroyd
Octavia G Nicka
Clifford D Iturbide
Julie G Kusko
Jefferson C Bolognia
Emily U Nicka
Misaki Z Kolmetz
Deepesh I Tollner
Wickens M Maclead
Francesco L Oldroyd
IdCountryDate
1000Japan2025-05-27
1001Germany2025-06-14
1002France2025-05-26
1003Italy2025-05-19
1004Argentina2025-05-24
1005Russia2025-05-31
1006Japan2025-05-29
1007Russia2025-06-13
1008Argentina2025-06-03
1009Germany2025-06-12
1010Italy2025-05-29
1011Brazil2025-06-03
1012Italy2025-05-23
1013Italy2025-05-30
1014Japan2025-05-31
1015United Kingdom2025-06-12
1016India2025-06-08
1017Argentina2025-05-27
1018France2025-05-31
1019Canada2025-06-03
1020Japan2025-06-01
1021United Kingdom2025-05-22
1022France2025-05-20
1023France2025-05-28
1024Italy2025-06-11
1025France2025-06-07
1026Japan2025-06-01
1027Brazil2025-05-25
1028Russia2025-05-19
1029Brazil2025-05-29
1030Argentina2025-05-21
1031Canada2025-05-22
1032Spain2025-05-25
1033Russia2025-05-29
1034Brazil2025-05-25
1035France2025-06-09
1036Argentina2025-06-10
1037France2025-06-12
1038Italy2025-05-23
1039Spain2025-05-21
1040Brazil2025-05-25
1041France2025-05-29
1042Japan2025-05-27
1043Argentina2025-05-28
1044Canada2025-05-26
1045Brazil2025-05-23
1046Brazil2025-05-20
1047Japan2025-06-11
1048Germany2025-06-06
1049Japan2025-05-24

On-Demand Data

NameIdCountryDate
Jennifer V Venere1000Russia2025-05-30
Costa V Caudy1001Brazil2025-05-22
Murillo Z Dilliard1002Russia2025-05-20
Mayumi R Foller1003Australia2025-05-22
Claire V Glick1004Germany2025-06-01
Emily T Garufi1005Canada2025-05-26
Munro W Iturbide1006Spain2025-05-27
Ricardo O Vocelka1007Japan2025-05-22
Jennifer E Figeroa1008Spain2025-05-18
Greenwood N Foller1009Argentina2025-05-29
Emily F Perin1010Russia2025-06-01
Aika A Iturbide1011Russia2025-06-12
Arvin O Figeroa1012France2025-05-20
Salvatore N Darakjy1013Russia2025-05-20
Costa D Malet1014Australia2025-06-03
Maria U Maclead1015France2025-05-18
Chavez K Maclead1016Italy2025-06-04
Mayumi P Whobrey1017India2025-06-14
Julie U Slusarski1018India2025-06-15
Leon R Stockham1019Japan2025-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer T MorascaCanadaAsiya Javayant NEGOTIATION
Jefferson F BriddickFranceElwin Sharvill QUALIFIED
Rodrigues M CaudyFranceStephen Shaw UNQUALIFIED
Jennifer J ChuiGermanyIvan Magalhaes RENEWAL
Antonio S MaletFranceAsiya Javayant NEGOTIATION
Greenwood Y WhobreyIndiaElwin Sharvill PROPOSAL
Kadeem F AlbaresAustraliaAmy Elsner QUALIFIED
Adams J MacleadGermanyBernardo Dominic NEW
Morrow E PerinUnited KingdomAnna Fali NEGOTIATION
Izzy Q PerinArgentinaAnna Fali UNQUALIFIED
Murillo S FerenczSpainOnyama Limba NEW
Leja P ChuiUnited KingdomAmy Elsner NEW
Morrow H AlbaresUnited KingdomAmy Elsner NEW
Arvin Y VenereIndiaStephen Shaw QUALIFIED
Aruna B SlusarskiFranceAsiya Javayant PROPOSAL
Murillo A CaudyItalyBernardo Dominic PROPOSAL
Isabel H VocelkaItalyIvan Magalhaes RENEWAL
Aruna K WieserUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer Q WhobreyGermanyOnyama Limba RENEWAL
Aika C KuskoJapanElwin Sharvill PROPOSAL
Stacey G MacleadCanadaAnna Fali PROPOSAL
Alejandro S NickaFranceElwin Sharvill NEGOTIATION
Wickens H MaletBrazilOnyama Limba QUALIFIED
Maria E FlosiAustraliaAsiya Javayant NEGOTIATION
Wickens V KolmetzSpainStephen Shaw PROPOSAL
Faith H InouyeIndiaIvan Magalhaes RENEWAL
Johnson Z AlbaresGermanyElwin Sharvill PROPOSAL
Aika R MorascaSpainIvan Magalhaes RENEWAL
Aika Y DarakjyIndiaAsiya Javayant UNQUALIFIED
Munro W DilliardGermanyAmy Elsner UNQUALIFIED
Greenwood E PerinRussiaOnyama Limba QUALIFIED
Leja J VenereFranceOnyama Limba RENEWAL
Ashley F RulapaughSpainAsiya Javayant UNQUALIFIED
Alejandro L MarrierJapanIvan Magalhaes QUALIFIED
Ashley J MarrierJapanIvan Magalhaes PROPOSAL
Tony V MaletJapanAsiya Javayant UNQUALIFIED
Smith Q FigeroaRussiaAmy Elsner NEGOTIATION
Costa P KolmetzItalyAnna Fali NEW
Rodrigues G BowleyItalyBernardo Dominic QUALIFIED
Francesco Y MarrierRussiaIvan Magalhaes 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>