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
Isabel T TollnerFranceElwin Sharvill NEGOTIATION
Faith J WhobreySpainIvan Magalhaes UNQUALIFIED
Francesco N OstroskyGermanyIoni Bowcher NEGOTIATION
Mayumi O WhobreyAustraliaOnyama Limba NEW
Leon X MorascaAustraliaIoni Bowcher PROPOSAL
Misaki I VocelkaJapanStephen Shaw NEGOTIATION
Claire T WaycottSpainOnyama Limba NEGOTIATION
Costa U MorascaItalyXuxue Feng RENEWAL
Misaki E DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer W DilliardSpainAsiya Javayant NEW
Cody Y WaycottBrazilXuxue Feng NEGOTIATION
David U WieserUnited KingdomAmy Elsner NEGOTIATION
Arvin B MorascaSpainAmy Elsner QUALIFIED
Antonio O StensethJapanIoni Bowcher QUALIFIED
Claire K StensethFranceAnna Fali PROPOSAL
Leja F VocelkaRussiaElwin Sharvill NEW
Sinclair H FlosiUnited KingdomAsiya Javayant NEW
Stacey G MaletGermanyIvan Magalhaes NEW
Darci Q VenereFranceAnna Fali QUALIFIED
Jennifer Q FigeroaFranceAsiya Javayant NEGOTIATION
Maisha L FlosiCanadaAnna Fali NEW
Salvatore U MarrierCanadaAnna Fali UNQUALIFIED
Claire C WieserGermanyAnna Fali UNQUALIFIED
Morrow Q ChuiGermanyXuxue Feng PROPOSAL
Jennifer C WhobreyAustraliaXuxue Feng NEW
Adams Q BowleyRussiaOnyama Limba PROPOSAL
Darci I MaletSpainOnyama Limba RENEWAL
Faith P DarakjyFranceBernardo Dominic UNQUALIFIED
Jeanfrancois W CaudyJapanIvan Magalhaes NEGOTIATION
Leja J TollnerItalyXuxue Feng NEGOTIATION
David J CampainCanadaStephen Shaw NEW
Cody A BowleyCanadaIvan Magalhaes QUALIFIED
Salvatore M DarakjyGermanyAnna Fali PROPOSAL
Claire X AlbaresRussiaStephen Shaw RENEWAL
Jefferson E MorascaJapanBernardo Dominic PROPOSAL
Jefferson C FollerItalyIvan Magalhaes NEW
Munro Z InouyeCanadaBernardo Dominic PROPOSAL
Murillo A IturbideAustraliaIvan Magalhaes RENEWAL
Costa P CaudySpainXuxue Feng RENEWAL
Francesco L FigeroaArgentinaAsiya Javayant RENEWAL
Munro E RimBrazilAmy Elsner NEGOTIATION
Antonio J KolmetzGermanyBernardo Dominic NEW
Mayumi T RulapaughSpainIvan Magalhaes NEW
Adams Q KolmetzArgentinaBernardo Dominic NEW
Octavia Q FlosiRussiaAmy Elsner UNQUALIFIED
Ashley W GlickFranceAnna Fali UNQUALIFIED
Deepesh I PerinArgentinaAsiya Javayant UNQUALIFIED
Aditya O OldroydArgentinaElwin Sharvill PROPOSAL
Juan F DoeRussiaAsiya Javayant PROPOSAL
Kaitlin D PoquetteJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Julie E TollnerArgentinaXuxue Feng NEGOTIATION
Maisha Q WaycottSpainAnna Fali PROPOSAL
Munro P KuskoBrazilOnyama Limba RENEWAL
Chavez Z FollerIndiaIvan Magalhaes NEW
Ashley R NestleIndiaStephen Shaw PROPOSAL
Maisha C OstroskySpainXuxue Feng PROPOSAL
Jones I PaprockiIndiaAmy Elsner UNQUALIFIED
Octavia T RutaCanadaAsiya Javayant UNQUALIFIED
Greenwood B ShinkoAustraliaAmy Elsner NEW
Clifford R RoysterGermanyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony Z RimJapan2026-06-20Chemel, James L Cpa PROPOSAL14Anna Fali
1001Adams S SergiIndia2026-06-13Chemel, James L Cpa NEGOTIATION39Amy Elsner
1002Mujtaba R InouyeCanada2026-06-26Rousseaux, Michael Esq NEGOTIATION13Asiya Javayant
1003Juan Q BologniaRussia2026-06-08Rangoni Of Florence RENEWAL90Elwin Sharvill
1004Mujtaba S NickaGermany2026-06-11Chanay, Jeffrey A Esq NEGOTIATION85Stephen Shaw
1005Morrow U CaldareraIndia2026-06-13Rangoni Of Florence NEGOTIATION13Elwin Sharvill
1006Mayumi Z FollerUnited Kingdom2026-06-02Dorl, James J Esq QUALIFIED78Anna Fali
1007Greenwood J FollerBrazil2026-06-25Rangoni Of Florence QUALIFIED56Ivan Magalhaes
1008Wickens V NickaArgentina2026-06-15Rangoni Of Florence PROPOSAL76Stephen Shaw
1009Clifford Z DoeJapan2026-06-30King, Christopher A Esq NEGOTIATION60Xuxue Feng
1010Kadeem E SlusarskiAustralia2026-06-15Chapman, Ross E Esq PROPOSAL79Xuxue Feng
1011Mujtaba K RutaRussia2026-06-10Buckley Miller Wright NEGOTIATION15Bernardo Dominic
1012Clifford S MaletJapan2026-06-05Dorl, James J Esq PROPOSAL38Onyama Limba
1013Izzy C PoquetteAustralia2026-06-28Feltz Printing Service UNQUALIFIED23Stephen Shaw
1014Emily Z CaldareraCanada2026-06-26Chapman, Ross E Esq QUALIFIED76Asiya Javayant
1015Munro Y RoysterAustralia2026-06-22Buckley Miller Wright QUALIFIED85Ioni Bowcher
1016Clifford Q AlbaresGermany2026-06-17Morlong Associates RENEWAL60Elwin Sharvill
1017Leon G TollnerSpain2026-06-10Chanay, Jeffrey A Esq NEGOTIATION17Onyama Limba
1018Munro S RulapaughJapan2026-06-19Commercial Press NEGOTIATION75Stephen Shaw
1019Aruna S WieserIndia2026-06-12Truhlar And Truhlar Attys RENEWAL71Ioni Bowcher
1020Juan G OldroydAustralia2026-06-12Printing Dimensions UNQUALIFIED53Asiya Javayant
1021Ricardo X StensethGermany2026-06-04Rousseaux, Michael Esq RENEWAL52Elwin Sharvill
1022Sinclair F SchemmerGermany2026-06-18Printing Dimensions NEGOTIATION5Elwin Sharvill
1023Izzy A KolmetzArgentina2026-06-17Commercial Press UNQUALIFIED88Ioni Bowcher
1024Clifford N PaprockiBrazil2026-06-04Truhlar And Truhlar Attys NEW76Ivan Magalhaes
1025Adams D FollerIndia2026-06-05Chemel, James L Cpa UNQUALIFIED38Stephen Shaw
1026Claire A GauchoItaly2026-06-27Morlong Associates UNQUALIFIED87Bernardo Dominic
1027Morrow I RoysterFrance2026-06-11Buckley Miller Wright QUALIFIED29Anna Fali
1028Jones Y MarrierUnited Kingdom2026-06-17Morlong Associates UNQUALIFIED58Amy Elsner
1029Silvio C DilliardRussia2026-06-03Morlong Associates NEGOTIATION16Elwin Sharvill
1030Kaitlin S SlusarskiGermany2026-06-05Chapman, Ross E Esq NEGOTIATION92Elwin Sharvill
1031Darci S MacleadCanada2026-06-29Commercial Press QUALIFIED91Ioni Bowcher
1032Tony J PaprockiRussia2026-06-17Dorl, James J Esq NEW52Ivan Magalhaes
1033Jefferson N NestleItaly2026-06-05Truhlar And Truhlar Attys RENEWAL70Elwin Sharvill
1034Nicolas Z AlbaresUnited Kingdom2026-06-10King, Christopher A Esq PROPOSAL54Xuxue Feng
1035Ivar C DarakjyArgentina2026-06-28Truhlar And Truhlar Attys NEGOTIATION46Asiya Javayant
1036Kadeem H GillianFrance2026-06-17Rousseaux, Michael Esq PROPOSAL16Elwin Sharvill
1037Aditya N MaletJapan2026-06-25Benton, John B Jr UNQUALIFIED46Onyama Limba
1038Chavez S IturbideBrazil2026-06-03Rousseaux, Michael Esq NEW25Bernardo Dominic
1039Ricardo C MorascaCanada2026-06-01Rangoni Of Florence PROPOSAL8Onyama Limba
1040Adams F VenereUnited Kingdom2026-06-05Chanay, Jeffrey A Esq RENEWAL56Elwin Sharvill
1041Salvatore L SchemmerSpain2026-06-07Feltz Printing Service PROPOSAL97Onyama Limba
1042Julie O PoquetteIndia2026-06-21King, Christopher A Esq UNQUALIFIED16Bernardo Dominic
1043Juan S VenereItaly2026-06-07Truhlar And Truhlar Attys UNQUALIFIED78Amy Elsner
1044Greenwood N WaycottCanada2026-06-30Rangoni Of Florence NEGOTIATION45Onyama Limba
1045Jones N TollnerIndia2026-06-03Rangoni Of Florence UNQUALIFIED76Onyama Limba
1046Nicolas S PerinCanada2026-06-22Chanay, Jeffrey A Esq RENEWAL64Onyama Limba
1047Tony E FlosiRussia2026-06-05Benton, John B Jr NEGOTIATION65Onyama Limba
1048Darci J KuskoIndia2026-06-30Rousseaux, Michael Esq NEW86Elwin Sharvill
1049Aruna O RutaIndia2026-06-30Benton, John B Jr RENEWAL61Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Emily B RoysterCanadaElwin Sharvill NEW
Salvatore X CaudyUnited KingdomStephen Shaw PROPOSAL
Jennifer E GillianFranceOnyama Limba UNQUALIFIED
Wickens K VocelkaSpainOnyama Limba PROPOSAL
Smith Q VenereArgentinaIvan Magalhaes UNQUALIFIED
Darci U SlusarskiBrazilIvan Magalhaes NEGOTIATION
Kaitlin T SlusarskiBrazilAsiya Javayant NEW
Alejandro E RoysterJapanAmy Elsner RENEWAL
Alejandro L BriddickBrazilAnna Fali RENEWAL
Murillo X VocelkaUnited KingdomIvan Magalhaes PROPOSAL
Mayumi V GlickSpainOnyama Limba UNQUALIFIED
Maisha Y GillianCanadaXuxue Feng PROPOSAL
Kadeem B OldroydRussiaAmy Elsner NEW
Stacey T AlbaresCanadaBernardo Dominic NEW
Kadeem J SlusarskiUnited KingdomOnyama Limba RENEWAL
Adams Y IturbideIndiaIoni Bowcher UNQUALIFIED
Silvio O FollerJapanAnna Fali PROPOSAL
Ricardo Y DarakjyItalyOnyama Limba PROPOSAL
Emily E PerinFranceAsiya Javayant UNQUALIFIED
Kadeem M StensethJapanStephen Shaw NEW
Murillo I BowleyGermanyXuxue Feng PROPOSAL
Kaitlin Y BriddickSpainAmy Elsner QUALIFIED
Morrow U GarufiRussiaXuxue Feng QUALIFIED
Rodrigues Z RimFranceBernardo Dominic NEGOTIATION
Sinclair V DilliardIndiaIvan Magalhaes RENEWAL
Emily C ChuiAustraliaXuxue Feng RENEWAL
Mayumi F RimAustraliaAmy Elsner RENEWAL
Julie X PaprockiItalyAnna Fali NEGOTIATION
Silvio J OstroskyUnited KingdomAmy Elsner QUALIFIED
Costa F MarrierSpainAsiya Javayant NEW
Munro A BologniaRussiaAsiya Javayant PROPOSAL
Emily U RimSpainAsiya Javayant NEW
Misaki I FlosiSpainIvan Magalhaes NEW
Deepesh P MaletCanadaXuxue Feng UNQUALIFIED
Octavia Q ChuiItalyAnna Fali NEGOTIATION
Chavez V BriddickArgentinaIoni Bowcher QUALIFIED
Aika V DarakjyFranceElwin Sharvill NEGOTIATION
Rodrigues N GillianRussiaAmy Elsner PROPOSAL
Darci E PerinRussiaIvan Magalhaes NEW
Mayumi R WieserArgentinaAmy Elsner QUALIFIED
Ashley E MaletItalyXuxue Feng NEGOTIATION
Julie B MaletItalyBernardo Dominic NEW
Johnson O IturbideCanadaXuxue Feng NEGOTIATION
Kadeem X BriddickItalyElwin Sharvill NEGOTIATION
Octavia I AmigonGermanyElwin Sharvill RENEWAL
Jeanfrancois N RulapaughRussiaAmy Elsner RENEWAL
Adams B SergiItalyElwin Sharvill NEGOTIATION
Claire Z KolmetzBrazilBernardo Dominic NEW
Misaki R IturbideRussiaBernardo Dominic RENEWAL
Morrow C RutaBrazilAmy Elsner NEGOTIATION
Frozen Columns
Name
Jennifer N Nicka
Ricardo J Royster
Antonio T Whobrey
Leja E Nicka
Aruna M Nicka
Ivar N Flosi
Octavia A Maclead
Stacey A Stockham
Salvatore E Poquette
Silvio R Stenseth
Mayumi R Ostrosky
Leon H Bolognia
Antonio G Shinko
Johnson J Inouye
Jennifer T Butt
Smith Q Kusko
Isabel X Rim
Maisha K Venere
Claire B Ruta
Kaitlin S Malet
Silvio Y Albares
Maria V Schemmer
Faith S Briddick
Darci L Doe
Julie S Rulapaugh
Morrow B Caldarera
Jeanfrancois E Bolognia
Clifford A Briddick
Emily I Campain
Juan S Butt
Aruna R Foller
Rodrigues Z Saylors
Misaki Z Maclead
Antonio V Flosi
Tony B Oldroyd
Jeanfrancois F Foller
Aruna H Briddick
David Z Butt
Stacey Z Saylors
Salvatore K Ferencz
Aditya N Darakjy
Kaitlin O Foller
Aditya Q Marrier
Emily E Sergi
Aika W Kolmetz
Cody F Perin
Juan T Stenseth
Octavia A Darakjy
Stacey B Figeroa
Munro W Perin
IdCountryDate
1000United Kingdom2026-06-28
1001Argentina2026-06-02
1002Argentina2026-06-18
1003Japan2026-06-14
1004Japan2026-06-14
1005India2026-06-03
1006Brazil2026-06-16
1007France2026-06-11
1008Russia2026-06-24
1009Brazil2026-06-11
1010Italy2026-06-28
1011United Kingdom2026-06-17
1012Spain2026-06-10
1013United Kingdom2026-06-13
1014India2026-06-03
1015United Kingdom2026-06-02
1016Canada2026-06-03
1017Brazil2026-06-12
1018India2026-06-18
1019Australia2026-06-18
1020Russia2026-06-18
1021France2026-06-21
1022Italy2026-06-04
1023Brazil2026-06-22
1024Japan2026-06-08
1025Germany2026-06-07
1026India2026-06-05
1027Brazil2026-06-08
1028Brazil2026-06-15
1029Brazil2026-06-26
1030Argentina2026-06-18
1031United Kingdom2026-06-10
1032United Kingdom2026-06-21
1033Argentina2026-06-16
1034Canada2026-06-30
1035Brazil2026-06-05
1036Germany2026-06-29
1037Italy2026-06-14
1038France2026-06-23
1039India2026-06-09
1040Australia2026-06-27
1041Russia2026-06-01
1042Germany2026-06-05
1043Japan2026-06-03
1044India2026-06-01
1045Italy2026-06-09
1046France2026-06-10
1047Canada2026-06-28
1048Argentina2026-06-14
1049France2026-06-05

On-Demand Data

NameIdCountryDate
Jennifer X Whobrey1000Italy2026-06-23
Tony T Butt1001Spain2026-06-02
Juan P Glick1002Russia2026-06-18
Antonio Z Slusarski1003Russia2026-06-29
Kadeem E Glick1004Japan2026-06-21
Morrow F Vocelka1005Germany2026-06-30
Isabel X Nicka1006France2026-06-06
Emily R Inouye1007Canada2026-06-10
Juan G Marrier1008Argentina2026-06-18
Aruna J Inouye1009Brazil2026-06-05
Kadeem W Kusko1010India2026-06-08
Rodrigues U Malet1011Japan2026-06-06
Jones R Nestle1012Australia2026-06-01
Jefferson F Perin1013Japan2026-06-01
Silvio X Venere1014Australia2026-06-11
Wickens Z Figeroa1015Argentina2026-06-04
Aditya H Paprocki1016Brazil2026-06-05
Antonio S Maclead1017Spain2026-06-14
Greenwood S Glick1018Canada2026-06-07
Faith C Amigon1019Canada2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha Z OstroskyRussiaIoni Bowcher RENEWAL
Mujtaba M MaletArgentinaOnyama Limba RENEWAL
Costa P GauchoJapanXuxue Feng NEW
Julie U MacleadCanadaOnyama Limba UNQUALIFIED
Cody W StockhamIndiaAsiya Javayant PROPOSAL
Chavez R PerinSpainAsiya Javayant UNQUALIFIED
Ivar W DilliardUnited KingdomIoni Bowcher RENEWAL
Maria Y AmigonGermanyAmy Elsner NEGOTIATION
Arvin H BologniaBrazilElwin Sharvill NEGOTIATION
Deepesh Q MarrierItalyOnyama Limba QUALIFIED
Jeanfrancois N CaldareraBrazilXuxue Feng PROPOSAL
Alejandro M MacleadGermanyOnyama Limba NEGOTIATION
Claire Y FlosiBrazilBernardo Dominic PROPOSAL
James J WieserGermanyAsiya Javayant RENEWAL
Morrow I MacleadRussiaAnna Fali PROPOSAL
Claire D DarakjyBrazilAsiya Javayant NEGOTIATION
Salvatore A KolmetzSpainAnna Fali QUALIFIED
Mujtaba H PoquetteJapanStephen Shaw NEGOTIATION
Silvio Q VenereArgentinaIoni Bowcher NEW
Kadeem I KolmetzFranceBernardo Dominic RENEWAL
Murillo W GauchoItalyBernardo Dominic QUALIFIED
Ashley K RoysterFranceBernardo Dominic NEGOTIATION
Stacey V InouyeAustraliaOnyama Limba PROPOSAL
Wickens H FollerSpainIoni Bowcher NEGOTIATION
Claire H FlosiSpainAmy Elsner QUALIFIED
Emily A AmigonGermanyIvan Magalhaes NEW
Deepesh U DoeRussiaAsiya Javayant PROPOSAL
Adams H MaletCanadaAmy Elsner RENEWAL
Kadeem G BriddickAustraliaIvan Magalhaes NEW
Alejandro Q BriddickJapanAmy Elsner QUALIFIED
Leja Z MarrierAustraliaAsiya Javayant NEW
Munro Z IturbideSpainAsiya Javayant NEW
Emily S NestleUnited KingdomBernardo Dominic RENEWAL
Ashley P OstroskyFranceBernardo Dominic RENEWAL
Greenwood L MacleadBrazilAmy Elsner UNQUALIFIED
Leon E PerinRussiaAsiya Javayant UNQUALIFIED
Clifford F WieserArgentinaOnyama Limba NEGOTIATION
Jennifer S ShinkoGermanyStephen Shaw NEGOTIATION
Morrow C OstroskyGermanyElwin Sharvill UNQUALIFIED
Mayumi T CaudyCanadaAnna Fali 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>