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
Arvin H StockhamAustraliaStephen Shaw UNQUALIFIED
Rodrigues D DilliardIndiaIoni Bowcher UNQUALIFIED
Salvatore E TollnerArgentinaAnna Fali UNQUALIFIED
Mujtaba D ButtAustraliaAnna Fali NEW
Maisha J StockhamAustraliaOnyama Limba NEW
Emily S FigeroaJapanAnna Fali NEGOTIATION
Chavez X FigeroaJapanElwin Sharvill RENEWAL
Ricardo X MaletFranceAsiya Javayant NEGOTIATION
Greenwood Z GarufiUnited KingdomStephen Shaw QUALIFIED
Kadeem Y FollerAustraliaAsiya Javayant QUALIFIED
Sinclair T StensethIndiaIvan Magalhaes UNQUALIFIED
Jefferson D FollerJapanOnyama Limba NEGOTIATION
Juan W GarufiSpainAnna Fali PROPOSAL
Stacey Y CampainIndiaIoni Bowcher UNQUALIFIED
Faith I PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Smith T RoysterRussiaXuxue Feng PROPOSAL
Jones X GillianItalyBernardo Dominic NEGOTIATION
Silvio K DoeSpainBernardo Dominic PROPOSAL
James D IturbideAustraliaIoni Bowcher QUALIFIED
Morrow T VocelkaJapanIoni Bowcher UNQUALIFIED
Leja O KuskoRussiaStephen Shaw NEGOTIATION
David G BologniaIndiaAsiya Javayant NEGOTIATION
Aditya V OstroskyItalyAsiya Javayant UNQUALIFIED
Aditya S MarrierCanadaXuxue Feng PROPOSAL
Leja D WaycottArgentinaAnna Fali RENEWAL
Darci I KuskoRussiaAmy Elsner RENEWAL
Izzy B AlbaresUnited KingdomXuxue Feng PROPOSAL
Sinclair E ButtSpainOnyama Limba RENEWAL
Aditya G RutaFranceXuxue Feng QUALIFIED
Greenwood J ChuiIndiaAsiya Javayant NEW
Johnson C CaldareraGermanyStephen Shaw NEW
Jennifer W WaycottGermanyElwin Sharvill NEGOTIATION
Mayumi C MaletItalyAsiya Javayant PROPOSAL
Adams B ShinkoGermanyStephen Shaw PROPOSAL
Arvin I SergiUnited KingdomStephen Shaw RENEWAL
Ricardo G VocelkaIndiaIvan Magalhaes NEW
Jefferson T FigeroaFranceIoni Bowcher UNQUALIFIED
Wickens H IturbideGermanyAsiya Javayant UNQUALIFIED
Greenwood T WhobreyBrazilXuxue Feng NEW
David W VocelkaItalyIvan Magalhaes NEGOTIATION
Cody F DilliardCanadaXuxue Feng QUALIFIED
Maisha D MaletJapanStephen Shaw UNQUALIFIED
Cody I MaletAustraliaXuxue Feng NEGOTIATION
Salvatore M BowleyIndiaXuxue Feng PROPOSAL
Francesco T FerenczAustraliaAmy Elsner UNQUALIFIED
Cody D ChuiRussiaXuxue Feng NEW
Deepesh G CampainSpainBernardo Dominic QUALIFIED
Jones J TollnerAustraliaBernardo Dominic PROPOSAL
Maria V KolmetzCanadaIoni Bowcher PROPOSAL
Kaitlin A BologniaUnited KingdomAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody Q MacleadArgentinaBernardo Dominic NEGOTIATION
Salvatore O VocelkaRussiaXuxue Feng QUALIFIED
Silvio F TollnerJapanAsiya Javayant RENEWAL
Francesco I WhobreyUnited KingdomXuxue Feng RENEWAL
Antonio W MaletItalyIoni Bowcher UNQUALIFIED
Wickens Y IturbideRussiaXuxue Feng RENEWAL
Silvio M BologniaArgentinaIvan Magalhaes NEGOTIATION
Emily B MorascaCanadaIvan Magalhaes RENEWAL
Clifford A FerenczArgentinaAsiya Javayant QUALIFIED
Tony X SlusarskiBrazilOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin Z MacleadIndia2026-07-05Morlong Associates QUALIFIED51Ivan Magalhaes
1001James T SergiUnited Kingdom2026-07-02Benton, John B Jr NEW71Onyama Limba
1002Murillo E ButtGermany2026-07-14Chanay, Jeffrey A Esq NEGOTIATION93Ioni Bowcher
1003Johnson S FollerIndia2026-07-30Benton, John B Jr QUALIFIED33Onyama Limba
1004Stacey Z WhobreyArgentina2026-07-14Benton, John B Jr NEGOTIATION50Onyama Limba
1005Jeanfrancois S WieserSpain2026-07-29Benton, John B Jr UNQUALIFIED36Anna Fali
1006Cody X FollerJapan2026-07-22Feiner Bros PROPOSAL20Asiya Javayant
1007Smith Q MacleadJapan2026-07-16Rousseaux, Michael Esq UNQUALIFIED82Anna Fali
1008Isabel M NestleCanada2026-07-02Benton, John B Jr PROPOSAL46Ioni Bowcher
1009Cody Z MorascaItaly2026-07-18Printing Dimensions PROPOSAL3Asiya Javayant
1010Antonio D SchemmerIndia2026-07-15King, Christopher A Esq NEW35Asiya Javayant
1011Morrow W SaylorsGermany2026-07-12Rousseaux, Michael Esq NEGOTIATION51Asiya Javayant
1012Kadeem X WieserAustralia2026-07-02Commercial Press UNQUALIFIED41Amy Elsner
1013Darci L InouyeCanada2026-07-15Feiner Bros NEW32Elwin Sharvill
1014Ivar Z InouyeCanada2026-07-16Chapman, Ross E Esq RENEWAL93Bernardo Dominic
1015Costa J CaudyIndia2026-07-03Dorl, James J Esq RENEWAL96Anna Fali
1016Morrow I CaudySpain2026-07-03Truhlar And Truhlar Attys RENEWAL73Amy Elsner
1017Jennifer U MaletSpain2026-07-19Dorl, James J Esq NEW46Stephen Shaw
1018Adams Z SaylorsSpain2026-07-04King, Christopher A Esq PROPOSAL42Ivan Magalhaes
1019Faith U FollerBrazil2026-07-23Chapman, Ross E Esq NEW31Asiya Javayant
1020Faith M MarrierBrazil2026-07-20Printing Dimensions QUALIFIED82Ioni Bowcher
1021Ivar C VocelkaUnited Kingdom2026-07-24King, Christopher A Esq NEW24Bernardo Dominic
1022Francesco I ShinkoBrazil2026-07-16Chanay, Jeffrey A Esq QUALIFIED97Elwin Sharvill
1023Rodrigues D WhobreyFrance2026-07-20Chanay, Jeffrey A Esq PROPOSAL37Onyama Limba
1024Maisha A SlusarskiBrazil2026-07-28Chapman, Ross E Esq QUALIFIED28Xuxue Feng
1025Aruna Q TollnerArgentina2026-07-05Benton, John B Jr NEW35Anna Fali
1026Leja X BriddickCanada2026-07-28Chapman, Ross E Esq PROPOSAL6Elwin Sharvill
1027Antonio F AlbaresCanada2026-07-15Feltz Printing Service QUALIFIED10Asiya Javayant
1028Munro E PerinCanada2026-07-30Morlong Associates QUALIFIED23Ioni Bowcher
1029Salvatore O SlusarskiSpain2026-07-24Chemel, James L Cpa NEW93Bernardo Dominic
1030Misaki A GlickCanada2026-07-20Dorl, James J Esq UNQUALIFIED13Amy Elsner
1031Deepesh D TollnerUnited Kingdom2026-07-23Truhlar And Truhlar Attys QUALIFIED35Xuxue Feng
1032David W NickaBrazil2026-07-12Buckley Miller Wright RENEWAL48Xuxue Feng
1033Adams F AlbaresRussia2026-07-18Morlong Associates NEGOTIATION39Asiya Javayant
1034Arvin P CampainArgentina2026-07-02Commercial Press NEGOTIATION37Ioni Bowcher
1035Aditya D SchemmerAustralia2026-07-25Morlong Associates NEGOTIATION96Amy Elsner
1036Leja Q SaylorsBrazil2026-07-18Commercial Press NEW49Onyama Limba
1037Maisha L MaletJapan2026-07-21Chemel, James L Cpa RENEWAL23Amy Elsner
1038Julie N BowleyUnited Kingdom2026-07-11Truhlar And Truhlar Attys PROPOSAL23Elwin Sharvill
1039Kaitlin X KolmetzArgentina2026-07-18Feltz Printing Service NEGOTIATION48Ioni Bowcher
1040Murillo R KuskoCanada2026-07-09Commercial Press PROPOSAL70Xuxue Feng
1041Ricardo P AmigonCanada2026-07-19Benton, John B Jr UNQUALIFIED75Anna Fali
1042Darci M IturbideBrazil2026-07-30Rousseaux, Michael Esq UNQUALIFIED51Elwin Sharvill
1043Emily C NestleRussia2026-07-23Rousseaux, Michael Esq UNQUALIFIED89Bernardo Dominic
1044Maria G RutaJapan2026-07-12Chanay, Jeffrey A Esq NEW36Ivan Magalhaes
1045Claire K ChuiRussia2026-07-09Chemel, James L Cpa NEW3Elwin Sharvill
1046Sinclair J BriddickRussia2026-07-30Chemel, James L Cpa NEGOTIATION65Amy Elsner
1047Morrow Q RulapaughArgentina2026-07-17Rangoni Of Florence UNQUALIFIED39Ioni Bowcher
1048Leon M BowleyAustralia2026-07-02Chemel, James L Cpa NEGOTIATION93Xuxue Feng
1049Morrow P SaylorsRussia2026-07-03Rangoni Of Florence PROPOSAL34Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba E TollnerAustraliaOnyama Limba RENEWAL
Alejandro J KolmetzArgentinaOnyama Limba NEW
Aruna V RutaIndiaXuxue Feng NEGOTIATION
Arvin B MorascaSpainOnyama Limba NEGOTIATION
Chavez S WieserUnited KingdomAsiya Javayant NEW
Stacey W BologniaItalyAnna Fali QUALIFIED
Darci X MorascaCanadaAmy Elsner NEGOTIATION
Jeanfrancois W WaycottUnited KingdomXuxue Feng NEGOTIATION
Greenwood T StockhamUnited KingdomAnna Fali PROPOSAL
Aruna H BowleyItalyAmy Elsner QUALIFIED
Alejandro Z RimIndiaOnyama Limba NEGOTIATION
Antonio W MarrierJapanElwin Sharvill PROPOSAL
Leja L ButtCanadaXuxue Feng RENEWAL
Aditya Z FigeroaRussiaAsiya Javayant QUALIFIED
Ashley F FlosiBrazilElwin Sharvill QUALIFIED
Misaki J AmigonFranceAnna Fali RENEWAL
Wickens B StensethCanadaAsiya Javayant RENEWAL
Izzy Y RoysterItalyIoni Bowcher NEGOTIATION
Antonio G DarakjyItalyAmy Elsner QUALIFIED
Francesco F TollnerRussiaAmy Elsner NEGOTIATION
Smith E PerinItalyXuxue Feng NEW
Rodrigues I GarufiBrazilXuxue Feng NEGOTIATION
Greenwood U BowleyGermanyElwin Sharvill PROPOSAL
Julie E SchemmerGermanyStephen Shaw QUALIFIED
Smith M NickaGermanyBernardo Dominic QUALIFIED
Leja P BowleyAustraliaIvan Magalhaes NEW
Johnson B CaldareraBrazilAsiya Javayant QUALIFIED
Sinclair N AmigonSpainElwin Sharvill RENEWAL
Clifford X BowleyBrazilElwin Sharvill RENEWAL
Costa N CaudyJapanIoni Bowcher PROPOSAL
Smith A OldroydSpainElwin Sharvill NEW
James T WieserIndiaElwin Sharvill NEGOTIATION
Isabel D SlusarskiIndiaIoni Bowcher RENEWAL
Aika N FigeroaSpainIoni Bowcher PROPOSAL
Leon Q InouyeAustraliaStephen Shaw NEW
Mayumi B MarrierIndiaIoni Bowcher NEGOTIATION
Arvin P MorascaSpainAsiya Javayant NEGOTIATION
Julie T MaletBrazilOnyama Limba PROPOSAL
Stacey N GauchoFranceIvan Magalhaes PROPOSAL
Maria Q VenereItalyOnyama Limba QUALIFIED
Emily N FlosiItalyIoni Bowcher UNQUALIFIED
Costa P WieserIndiaStephen Shaw QUALIFIED
Francesco T TollnerUnited KingdomBernardo Dominic PROPOSAL
Mayumi S NickaCanadaXuxue Feng UNQUALIFIED
Munro M WhobreyArgentinaXuxue Feng UNQUALIFIED
Smith F FlosiJapanAsiya Javayant QUALIFIED
Alejandro P RulapaughUnited KingdomBernardo Dominic NEW
Aika S OldroydAustraliaStephen Shaw UNQUALIFIED
Greenwood L GillianGermanyElwin Sharvill NEGOTIATION
Darci S PaprockiAustraliaAmy Elsner PROPOSAL
Frozen Columns
Name
Salvatore B Rulapaugh
Adams J Perin
Kaitlin M Malet
Mayumi K Caudy
Salvatore J Albares
Murillo T Dilliard
Misaki I Gaucho
Ashley A Flosi
Ashley Y Briddick
Jones P Flosi
Francesco M Kolmetz
Aruna R Kusko
Silvio D Paprocki
Ashley P Stockham
Johnson A Marrier
Jennifer U Maclead
Morrow A Chui
Izzy P Butt
Maria E Schemmer
Juan O Waycott
Murillo B Slusarski
Jeanfrancois R Waycott
Mayumi L Gaucho
Deepesh C Gillian
Cody T Kolmetz
Johnson Q Vocelka
Darci J Schemmer
Kadeem N Maclead
Antonio R Caldarera
Aruna A Darakjy
Silvio B Rim
Izzy A Venere
Smith N Nicka
Leon K Maclead
James Z Inouye
Smith W Schemmer
Smith Z Marrier
David K Iturbide
Arvin C Oldroyd
Jennifer C Iturbide
Claire C Stockham
Misaki K Vocelka
James F Albares
Tony T Garufi
Darci N Nicka
Nicolas M Figeroa
Cody J Garufi
James V Chui
Jeanfrancois S Gillian
Darci S Campain
IdCountryDate
1000France2026-07-20
1001Australia2026-07-03
1002Germany2026-07-20
1003Germany2026-07-25
1004Australia2026-07-23
1005United Kingdom2026-07-08
1006Argentina2026-07-05
1007Spain2026-07-20
1008Germany2026-07-30
1009Germany2026-07-31
1010Australia2026-07-19
1011Germany2026-07-12
1012Australia2026-07-26
1013Brazil2026-07-11
1014Brazil2026-07-20
1015Italy2026-07-31
1016Russia2026-07-20
1017Brazil2026-07-16
1018United Kingdom2026-07-15
1019Germany2026-07-20
1020France2026-07-19
1021India2026-07-25
1022Italy2026-07-04
1023Argentina2026-07-12
1024Japan2026-07-16
1025Australia2026-07-05
1026United Kingdom2026-07-21
1027Brazil2026-07-24
1028Russia2026-07-09
1029India2026-07-07
1030Germany2026-07-03
1031Spain2026-07-10
1032Argentina2026-07-20
1033France2026-07-23
1034Spain2026-07-09
1035Canada2026-07-05
1036France2026-07-29
1037Spain2026-07-22
1038Russia2026-07-12
1039Argentina2026-07-20
1040Spain2026-07-05
1041Australia2026-07-18
1042Italy2026-07-24
1043Japan2026-07-09
1044Australia2026-07-12
1045Australia2026-07-24
1046Germany2026-07-05
1047India2026-07-15
1048United Kingdom2026-07-09
1049Brazil2026-07-25

On-Demand Data

NameIdCountryDate
Mujtaba J Rim1000Spain2026-07-05
Cody F Gillian1001Japan2026-07-03
Jones B Bolognia1002Japan2026-07-16
Silvio R Chui1003Germany2026-07-13
Arvin I Perin1004Japan2026-07-24
Maisha A Nestle1005United Kingdom2026-07-06
Arvin E Marrier1006India2026-07-04
Aditya P Malet1007United Kingdom2026-07-10
Alejandro J Ruta1008Australia2026-07-25
Jones P Bowley1009Japan2026-07-23
Stacey D Ferencz1010Brazil2026-07-30
Arvin D Slusarski1011India2026-07-30
James A Maclead1012Japan2026-07-24
Antonio T Vocelka1013France2026-07-12
Munro U Waycott1014Argentina2026-07-29
Stacey R Butt1015Russia2026-07-15
Mayumi M Glick1016Germany2026-07-15
Salvatore C Campain1017Brazil2026-07-10
Faith S Stenseth1018Japan2026-07-15
Emily W Nestle1019Spain2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci B IturbideBrazilAsiya Javayant NEW
Aruna G GarufiJapanIoni Bowcher NEGOTIATION
Leja D OldroydCanadaXuxue Feng UNQUALIFIED
Aditya P TollnerJapanBernardo Dominic RENEWAL
Adams X GlickIndiaXuxue Feng QUALIFIED
Alejandro X ShinkoIndiaXuxue Feng RENEWAL
Jeanfrancois W MacleadArgentinaOnyama Limba QUALIFIED
Maisha W FigeroaJapanOnyama Limba PROPOSAL
Misaki U BowleyArgentinaIoni Bowcher UNQUALIFIED
Antonio R PerinItalyAnna Fali UNQUALIFIED
Juan A AlbaresFranceAmy Elsner QUALIFIED
Maisha N TollnerFranceIoni Bowcher RENEWAL
Faith V DilliardItalyOnyama Limba NEGOTIATION
Murillo K IturbideIndiaStephen Shaw PROPOSAL
Emily G NestleAustraliaBernardo Dominic QUALIFIED
Munro F GarufiGermanyAmy Elsner QUALIFIED
Kadeem U MacleadCanadaIvan Magalhaes UNQUALIFIED
Ivar U GarufiBrazilStephen Shaw RENEWAL
Jefferson Y FigeroaFranceAsiya Javayant NEW
James C MaletArgentinaElwin Sharvill QUALIFIED
Antonio I GarufiArgentinaIoni Bowcher RENEWAL
Maisha T ButtAustraliaBernardo Dominic QUALIFIED
Ashley Z GlickRussiaAmy Elsner RENEWAL
Maria E OldroydIndiaAsiya Javayant QUALIFIED
James R GauchoArgentinaAmy Elsner NEGOTIATION
Francesco O InouyeJapanBernardo Dominic QUALIFIED
Isabel W StockhamFranceOnyama Limba RENEWAL
Jennifer V SaylorsAustraliaOnyama Limba NEW
Darci B OstroskyCanadaBernardo Dominic NEW
Jones L GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues L DoeItalyElwin Sharvill PROPOSAL
Kadeem A SchemmerCanadaAsiya Javayant PROPOSAL
Francesco Q InouyeGermanyAsiya Javayant RENEWAL
Morrow B BologniaBrazilIoni Bowcher RENEWAL
Leja Y MorascaIndiaAnna Fali NEW
Rodrigues X FigeroaArgentinaXuxue Feng NEW
Adams I RulapaughArgentinaXuxue Feng UNQUALIFIED
Johnson A PerinBrazilStephen Shaw QUALIFIED
Isabel O CampainArgentinaOnyama Limba QUALIFIED
Jefferson M RulapaughIndiaIoni Bowcher 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>