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
Morrow D OldroydUnited KingdomAmy Elsner PROPOSAL
Greenwood T OldroydAustraliaAnna Fali RENEWAL
Izzy H PerinIndiaIoni Bowcher NEGOTIATION
Sinclair O MacleadJapanAsiya Javayant PROPOSAL
Murillo A WieserIndiaBernardo Dominic UNQUALIFIED
Claire O RutaCanadaBernardo Dominic QUALIFIED
Adams V SergiItalyStephen Shaw PROPOSAL
Rodrigues H FerenczRussiaAmy Elsner UNQUALIFIED
David V WaycottFranceXuxue Feng NEGOTIATION
Jeanfrancois X ChuiRussiaBernardo Dominic NEGOTIATION
Deepesh Y WaycottArgentinaOnyama Limba RENEWAL
Rodrigues X MorascaItalyIvan Magalhaes PROPOSAL
Ivar P DilliardRussiaBernardo Dominic UNQUALIFIED
Ivar P MacleadItalyStephen Shaw NEGOTIATION
Arvin Z OstroskyFranceIoni Bowcher RENEWAL
Jeanfrancois M RimFranceAnna Fali NEGOTIATION
Sinclair P NestleUnited KingdomOnyama Limba NEGOTIATION
Izzy X MaletFranceIoni Bowcher PROPOSAL
Francesco D RimCanadaAnna Fali QUALIFIED
Aika V WaycottFranceIvan Magalhaes NEW
Emily B ShinkoFranceAnna Fali NEW
Jones T DarakjyIndiaIoni Bowcher QUALIFIED
Claire Z InouyeUnited KingdomBernardo Dominic NEW
Wickens J PaprockiArgentinaBernardo Dominic UNQUALIFIED
Darci D OstroskyJapanIoni Bowcher QUALIFIED
Aruna O OstroskyIndiaAnna Fali NEGOTIATION
Alejandro Q SergiGermanyAnna Fali RENEWAL
Juan B OstroskyAustraliaElwin Sharvill NEW
Ricardo T OstroskyAustraliaStephen Shaw RENEWAL
Maisha P DarakjyBrazilElwin Sharvill PROPOSAL
Morrow Q CaudyAustraliaAmy Elsner NEGOTIATION
Arvin T ButtUnited KingdomAnna Fali NEW
David W GlickRussiaOnyama Limba UNQUALIFIED
Kadeem C MaletBrazilAnna Fali NEGOTIATION
Faith G AlbaresAustraliaBernardo Dominic QUALIFIED
James K StensethUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi P DarakjyCanadaIoni Bowcher NEW
Chavez V MaletItalyElwin Sharvill NEW
Octavia D KuskoBrazilElwin Sharvill QUALIFIED
Ivar G GauchoFranceAmy Elsner RENEWAL
Greenwood N GauchoSpainXuxue Feng QUALIFIED
Leja B GarufiSpainAmy Elsner NEW
Costa O RimUnited KingdomStephen Shaw PROPOSAL
Nicolas R ButtFranceIvan Magalhaes QUALIFIED
Izzy E MarrierRussiaAsiya Javayant NEW
Maria T InouyeRussiaAsiya Javayant UNQUALIFIED
Clifford S DarakjyGermanyAnna Fali UNQUALIFIED
Ashley P VenereJapanBernardo Dominic UNQUALIFIED
Alejandro N GarufiSpainAnna Fali NEW
James T CaudyAustraliaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya N MarrierFranceAmy Elsner NEW
Tony I OstroskyAustraliaIoni Bowcher NEW
Ashley Y DilliardUnited KingdomXuxue Feng RENEWAL
Aruna E GillianCanadaXuxue Feng QUALIFIED
Tony J RimCanadaElwin Sharvill RENEWAL
Kadeem Y NickaGermanyIvan Magalhaes PROPOSAL
Leja S MacleadJapanIvan Magalhaes UNQUALIFIED
Francesco C ShinkoCanadaAnna Fali RENEWAL
Nicolas S MaletItalyOnyama Limba QUALIFIED
Wickens V IturbideUnited KingdomOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore V MaletAustralia2026-06-18Feiner Bros PROPOSAL8Bernardo Dominic
1001Arvin G DilliardCanada2026-06-22Chapman, Ross E Esq UNQUALIFIED29Stephen Shaw
1002Misaki U MaletRussia2026-06-26King, Christopher A Esq UNQUALIFIED20Stephen Shaw
1003Ricardo M StensethSpain2026-06-10Benton, John B Jr NEGOTIATION45Ivan Magalhaes
1004Ivar P MarrierIndia2026-06-07Chemel, James L Cpa UNQUALIFIED90Ivan Magalhaes
1005Greenwood B BologniaIndia2026-06-13Printing Dimensions NEGOTIATION20Ivan Magalhaes
1006Deepesh K OstroskyFrance2026-06-28Truhlar And Truhlar Attys PROPOSAL30Anna Fali
1007Ivar I OstroskyBrazil2026-07-06Morlong Associates NEGOTIATION31Onyama Limba
1008Munro Q GillianItaly2026-06-07Chemel, James L Cpa RENEWAL25Onyama Limba
1009Nicolas X RimAustralia2026-06-08Chemel, James L Cpa NEW4Ivan Magalhaes
1010Jennifer J MorascaArgentina2026-06-15Feltz Printing Service QUALIFIED96Elwin Sharvill
1011Jefferson K GarufiCanada2026-07-04Commercial Press QUALIFIED5Bernardo Dominic
1012Ashley V BologniaSpain2026-06-16Morlong Associates PROPOSAL27Xuxue Feng
1013Mujtaba Z CaudyAustralia2026-06-27Truhlar And Truhlar Attys NEGOTIATION95Xuxue Feng
1014Leja H RoysterAustralia2026-07-01King, Christopher A Esq NEGOTIATION40Elwin Sharvill
1015Aika I OldroydItaly2026-06-28Feltz Printing Service NEGOTIATION58Elwin Sharvill
1016Aruna B SchemmerCanada2026-06-20Truhlar And Truhlar Attys NEGOTIATION68Xuxue Feng
1017Morrow X FlosiItaly2026-06-20King, Christopher A Esq NEGOTIATION43Anna Fali
1018Darci A WieserItaly2026-06-09King, Christopher A Esq NEGOTIATION25Asiya Javayant
1019Sinclair T IturbideAustralia2026-06-09Chapman, Ross E Esq RENEWAL77Anna Fali
1020Aditya T PaprockiCanada2026-06-20King, Christopher A Esq RENEWAL22Bernardo Dominic
1021Antonio T CaudyIndia2026-06-14Dorl, James J Esq NEGOTIATION1Bernardo Dominic
1022Greenwood T RoysterGermany2026-06-17Commercial Press UNQUALIFIED14Elwin Sharvill
1023Sinclair H WieserJapan2026-06-19Feiner Bros NEGOTIATION73Onyama Limba
1024Isabel C MacleadBrazil2026-06-09Dorl, James J Esq NEGOTIATION53Onyama Limba
1025Maisha M IturbideRussia2026-06-27King, Christopher A Esq UNQUALIFIED75Ioni Bowcher
1026Nicolas L GlickIndia2026-06-29Printing Dimensions QUALIFIED29Amy Elsner
1027Adams S CaudyRussia2026-06-25Chemel, James L Cpa PROPOSAL16Elwin Sharvill
1028Leja A PerinSpain2026-06-08Feltz Printing Service UNQUALIFIED4Ivan Magalhaes
1029Smith S WieserGermany2026-06-13Truhlar And Truhlar Attys PROPOSAL25Xuxue Feng
1030Murillo J InouyeIndia2026-06-09Chapman, Ross E Esq QUALIFIED47Stephen Shaw
1031Claire E ButtFrance2026-06-18Morlong Associates NEW34Ioni Bowcher
1032Alejandro P MaletSpain2026-06-28Printing Dimensions RENEWAL73Anna Fali
1033Deepesh R MorascaItaly2026-06-07Dorl, James J Esq NEGOTIATION47Ivan Magalhaes
1034Alejandro L SchemmerCanada2026-06-14Morlong Associates NEGOTIATION38Stephen Shaw
1035Alejandro U NestleFrance2026-07-02Buckley Miller Wright QUALIFIED21Onyama Limba
1036David Z RoysterItaly2026-06-14Chanay, Jeffrey A Esq RENEWAL81Amy Elsner
1037Aditya M RutaBrazil2026-07-05Chanay, Jeffrey A Esq UNQUALIFIED35Stephen Shaw
1038Wickens F VenereBrazil2026-06-19Truhlar And Truhlar Attys NEW83Amy Elsner
1039Wickens Q InouyeUnited Kingdom2026-06-11Dorl, James J Esq PROPOSAL64Ivan Magalhaes
1040Ashley H MorascaRussia2026-06-13Truhlar And Truhlar Attys PROPOSAL89Anna Fali
1041Deepesh R OstroskyArgentina2026-06-10King, Christopher A Esq QUALIFIED17Ioni Bowcher
1042Jefferson B MaletJapan2026-07-06Printing Dimensions UNQUALIFIED85Elwin Sharvill
1043Emily Z PerinRussia2026-07-06Dorl, James J Esq NEW85Asiya Javayant
1044Maisha W ButtCanada2026-06-21Benton, John B Jr NEW73Amy Elsner
1045Aditya S RoysterUnited Kingdom2026-07-03Dorl, James J Esq PROPOSAL13Elwin Sharvill
1046Murillo L PerinUnited Kingdom2026-06-15Rangoni Of Florence QUALIFIED82Stephen Shaw
1047Jefferson U DoeFrance2026-06-22Truhlar And Truhlar Attys PROPOSAL76Ivan Magalhaes
1048Leon D BologniaRussia2026-06-25Feiner Bros RENEWAL3Anna Fali
1049Maisha Q GauchoArgentina2026-07-01Benton, John B Jr NEGOTIATION73Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria T AlbaresJapanElwin Sharvill RENEWAL
Tony W WhobreyUnited KingdomBernardo Dominic QUALIFIED
Maisha Q RutaArgentinaBernardo Dominic UNQUALIFIED
Arvin I CaudyUnited KingdomAnna Fali QUALIFIED
Faith E TollnerRussiaStephen Shaw PROPOSAL
Rodrigues P NestleItalyAmy Elsner QUALIFIED
Stacey K MarrierCanadaIvan Magalhaes QUALIFIED
Cody B MacleadItalyStephen Shaw RENEWAL
Juan U MaletCanadaAmy Elsner UNQUALIFIED
Maisha Z MacleadGermanyAmy Elsner PROPOSAL
Juan Q BologniaRussiaIvan Magalhaes QUALIFIED
Alejandro T WaycottJapanAsiya Javayant UNQUALIFIED
Chavez K ChuiBrazilStephen Shaw PROPOSAL
Munro H MaletCanadaIoni Bowcher UNQUALIFIED
Chavez A MaletArgentinaXuxue Feng RENEWAL
Kadeem J RutaRussiaIoni Bowcher PROPOSAL
Isabel K WhobreyRussiaBernardo Dominic PROPOSAL
Jeanfrancois E KuskoJapanAnna Fali QUALIFIED
David S MacleadCanadaOnyama Limba NEGOTIATION
Faith Y PerinUnited KingdomAmy Elsner NEGOTIATION
Jennifer O MaletGermanyAmy Elsner NEW
Jones M VocelkaCanadaElwin Sharvill NEW
Misaki T DilliardSpainStephen Shaw NEW
Aditya B KolmetzIndiaOnyama Limba NEW
Munro X MaletUnited KingdomBernardo Dominic RENEWAL
Smith X CaldareraBrazilBernardo Dominic NEW
Tony T GillianCanadaStephen Shaw QUALIFIED
Isabel Z MorascaIndiaIoni Bowcher QUALIFIED
Juan Z NickaItalyElwin Sharvill RENEWAL
Stacey J SlusarskiSpainElwin Sharvill QUALIFIED
Misaki T CaldareraBrazilXuxue Feng RENEWAL
Kadeem S CaldareraAustraliaIoni Bowcher NEGOTIATION
Maria I KuskoRussiaStephen Shaw NEW
Leja B BowleySpainStephen Shaw RENEWAL
Tony D FollerBrazilAnna Fali PROPOSAL
Alejandro M SlusarskiGermanyElwin Sharvill NEW
Mayumi S WieserAustraliaBernardo Dominic UNQUALIFIED
Adams O NestleSpainIoni Bowcher QUALIFIED
Tony J InouyeBrazilAmy Elsner QUALIFIED
Salvatore Y WaycottCanadaAnna Fali UNQUALIFIED
Cody M InouyeGermanyAnna Fali QUALIFIED
Wickens H VenereUnited KingdomBernardo Dominic RENEWAL
Izzy R GlickBrazilAsiya Javayant NEW
Kadeem K GauchoArgentinaStephen Shaw NEGOTIATION
Ashley M TollnerFranceElwin Sharvill QUALIFIED
Jeanfrancois I BowleyFranceAmy Elsner NEW
Deepesh I PerinBrazilIoni Bowcher PROPOSAL
Adams K FerenczAustraliaIoni Bowcher UNQUALIFIED
Darci N VenereSpainAnna Fali NEGOTIATION
Mayumi D KolmetzUnited KingdomIvan Magalhaes RENEWAL
Frozen Columns
Name
Munro R Amigon
Ashley L Iturbide
Munro V Rim
Jefferson K Amigon
Aditya A Bowley
Salvatore O Royster
Deepesh L Waycott
Claire B Poquette
Misaki S Ostrosky
Adams U Bowley
Cody C Bowley
Salvatore B Nestle
Juan R Tollner
Francesco L Wieser
Ashley Z Nicka
Morrow S Perin
Smith M Shinko
Leon K Poquette
Octavia Y Caudy
Darci M Inouye
Adams E Briddick
Izzy Z Caldarera
Ivar S Stenseth
Misaki E Stenseth
Smith K Poquette
Chavez K Slusarski
Ricardo B Shinko
Maria I Nestle
Wickens F Chui
Juan W Malet
Rodrigues X Stenseth
Ricardo P Kolmetz
Stacey Y Caldarera
Alejandro K Waycott
Aruna S Vocelka
Nicolas T Whobrey
Darci J Briddick
Tony V Slusarski
Maisha R Albares
Rodrigues O Iturbide
Izzy E Nestle
Greenwood G Maclead
James E Ruta
Johnson K Caldarera
Johnson N Butt
Maisha P Rim
Julie Z Vocelka
Kadeem V Stenseth
Mujtaba H Ostrosky
Misaki M Briddick
IdCountryDate
1000France2026-06-29
1001Canada2026-06-30
1002Italy2026-06-16
1003Italy2026-06-28
1004Italy2026-06-25
1005Japan2026-06-30
1006Russia2026-06-28
1007Germany2026-06-23
1008Argentina2026-07-03
1009Brazil2026-06-16
1010Brazil2026-06-13
1011Brazil2026-06-15
1012Russia2026-07-06
1013Australia2026-06-28
1014Germany2026-06-23
1015Japan2026-06-10
1016India2026-06-11
1017Australia2026-06-29
1018Spain2026-06-27
1019Spain2026-06-08
1020Russia2026-07-02
1021Brazil2026-06-18
1022India2026-06-09
1023Australia2026-06-23
1024Australia2026-06-26
1025Spain2026-06-09
1026Italy2026-06-09
1027Germany2026-06-25
1028Russia2026-06-11
1029United Kingdom2026-06-17
1030Italy2026-06-12
1031Argentina2026-06-29
1032India2026-07-06
1033Spain2026-06-24
1034India2026-06-14
1035United Kingdom2026-06-09
1036Argentina2026-06-18
1037Australia2026-06-14
1038Germany2026-06-19
1039Spain2026-07-03
1040France2026-06-15
1041Germany2026-06-21
1042Canada2026-06-29
1043Russia2026-06-23
1044United Kingdom2026-07-04
1045Argentina2026-06-13
1046Australia2026-06-30
1047Russia2026-07-04
1048India2026-06-30
1049Brazil2026-06-07

On-Demand Data

NameIdCountryDate
Costa F Vocelka1000Russia2026-06-15
Misaki K Caldarera1001Germany2026-07-04
Greenwood X Schemmer1002United Kingdom2026-07-04
David C Caudy1003Argentina2026-06-30
Kadeem E Rulapaugh1004Canada2026-07-06
Juan P Ruta1005Spain2026-06-09
Darci T Figeroa1006France2026-06-30
Adams L Flosi1007Spain2026-06-28
Tony A Waycott1008Australia2026-06-30
Kaitlin C Waycott1009India2026-07-01
Francesco Q Caldarera1010India2026-06-15
Maisha Q Amigon1011Australia2026-07-05
Aika Y Campain1012Australia2026-06-19
Ashley D Poquette1013Italy2026-06-22
Antonio E Albares1014Australia2026-07-01
Wickens H Nestle1015Brazil2026-07-01
Salvatore Y Butt1016Australia2026-06-10
Alejandro E Oldroyd1017Italy2026-06-23
Tony A Whobrey1018United Kingdom2026-06-23
Deepesh D Bolognia1019United Kingdom2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy D FollerAustraliaOnyama Limba NEW
Aruna Y SergiArgentinaIoni Bowcher QUALIFIED
Alejandro G OstroskyArgentinaOnyama Limba NEW
Francesco C InouyeItalyIoni Bowcher UNQUALIFIED
Faith U BowleyArgentinaAsiya Javayant QUALIFIED
Izzy P WieserAustraliaOnyama Limba NEGOTIATION
Jeanfrancois M AlbaresBrazilStephen Shaw NEGOTIATION
Antonio Z BologniaItalyAsiya Javayant QUALIFIED
Costa G BowleyIndiaAsiya Javayant PROPOSAL
Jones O GillianJapanBernardo Dominic NEW
Silvio O OstroskyFranceOnyama Limba RENEWAL
David A VenereFranceIvan Magalhaes UNQUALIFIED
Kadeem K FollerRussiaAnna Fali RENEWAL
Misaki X SaylorsCanadaIvan Magalhaes QUALIFIED
Clifford S CaldareraRussiaOnyama Limba UNQUALIFIED
Octavia M MarrierCanadaBernardo Dominic PROPOSAL
David Y NickaAustraliaXuxue Feng RENEWAL
Chavez G KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Cody C MorascaCanadaOnyama Limba PROPOSAL
Kaitlin T OstroskyAustraliaStephen Shaw UNQUALIFIED
Ivar S CaldareraFranceIvan Magalhaes UNQUALIFIED
Maria A OstroskyCanadaAsiya Javayant NEW
Aruna E WhobreyAustraliaXuxue Feng UNQUALIFIED
Clifford Y PaprockiGermanyIoni Bowcher QUALIFIED
Francesco F DilliardArgentinaAsiya Javayant QUALIFIED
Salvatore I WhobreySpainAmy Elsner UNQUALIFIED
Arvin G StensethGermanyOnyama Limba QUALIFIED
James N CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Smith O GillianRussiaAmy Elsner NEGOTIATION
Arvin Z CaudyCanadaXuxue Feng QUALIFIED
Octavia J WhobreyBrazilOnyama Limba UNQUALIFIED
Adams C OstroskyAustraliaBernardo Dominic NEGOTIATION
Silvio I CaldareraArgentinaAnna Fali NEGOTIATION
Isabel T MarrierIndiaIoni Bowcher RENEWAL
David F ShinkoJapanIvan Magalhaes NEGOTIATION
Octavia L DoeItalyBernardo Dominic QUALIFIED
Salvatore D ChuiJapanOnyama Limba PROPOSAL
Aruna N DoeItalyIvan Magalhaes UNQUALIFIED
Ashley D OldroydBrazilXuxue Feng NEGOTIATION
Ivar Y KuskoBrazilIvan 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>