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
Maisha E CaudyItalyStephen Shaw UNQUALIFIED
James Z InouyeCanadaBernardo Dominic QUALIFIED
Maria B GauchoIndiaBernardo Dominic PROPOSAL
Izzy F PaprockiArgentinaOnyama Limba PROPOSAL
Leja C NestleRussiaAmy Elsner NEGOTIATION
Isabel R RimCanadaBernardo Dominic QUALIFIED
Maria E PaprockiItalyBernardo Dominic UNQUALIFIED
Juan E ButtJapanXuxue Feng NEW
Clifford I VenereItalyXuxue Feng PROPOSAL
Jones E FerenczCanadaElwin Sharvill QUALIFIED
Jennifer M GauchoGermanyIoni Bowcher QUALIFIED
Faith E ButtGermanyAmy Elsner NEW
Silvio N RulapaughJapanOnyama Limba RENEWAL
Salvatore R GlickAustraliaAsiya Javayant QUALIFIED
Rodrigues F NestleAustraliaOnyama Limba PROPOSAL
Aruna D MacleadFranceIvan Magalhaes UNQUALIFIED
Ivar Q GauchoUnited KingdomAmy Elsner PROPOSAL
Mujtaba A WieserIndiaIoni Bowcher NEW
Deepesh X MorascaJapanElwin Sharvill RENEWAL
Ashley G AlbaresItalyIvan Magalhaes NEGOTIATION
Jefferson F MorascaGermanyOnyama Limba QUALIFIED
Ivar S RoysterBrazilAmy Elsner QUALIFIED
Alejandro J VocelkaUnited KingdomStephen Shaw PROPOSAL
Ivar G MorascaArgentinaBernardo Dominic PROPOSAL
Mujtaba Z SlusarskiSpainStephen Shaw UNQUALIFIED
Leja M GillianIndiaStephen Shaw NEW
Sinclair D SchemmerCanadaBernardo Dominic NEGOTIATION
Mayumi C WieserFranceElwin Sharvill UNQUALIFIED
Ricardo W ButtArgentinaAsiya Javayant NEGOTIATION
Deepesh M StensethUnited KingdomOnyama Limba NEW
Leon L MaletSpainStephen Shaw NEW
Maria U DoeSpainStephen Shaw QUALIFIED
Aruna S MacleadSpainElwin Sharvill NEGOTIATION
Costa O VenereRussiaIoni Bowcher PROPOSAL
Cody U SlusarskiFranceAsiya Javayant NEGOTIATION
Rodrigues X MorascaGermanyAsiya Javayant NEW
Ivar W BologniaIndiaElwin Sharvill QUALIFIED
Morrow I NickaFranceIoni Bowcher PROPOSAL
Nicolas P TollnerFranceElwin Sharvill NEGOTIATION
Sinclair X RoysterUnited KingdomStephen Shaw PROPOSAL
Kadeem P ChuiBrazilAmy Elsner RENEWAL
Cody T CampainGermanyElwin Sharvill NEGOTIATION
Salvatore L GillianUnited KingdomOnyama Limba QUALIFIED
Mayumi R PoquetteGermanyAnna Fali NEGOTIATION
David A SaylorsGermanyAmy Elsner QUALIFIED
Alejandro G StensethJapanXuxue Feng NEGOTIATION
Jeanfrancois Q ShinkoAustraliaElwin Sharvill PROPOSAL
Jefferson D GlickCanadaAsiya Javayant QUALIFIED
Ivar S OstroskyIndiaElwin Sharvill PROPOSAL
Munro I StockhamBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya L CaldareraGermanyIoni Bowcher PROPOSAL
David I RimCanadaIvan Magalhaes RENEWAL
Aditya Z CampainItalyStephen Shaw UNQUALIFIED
Aika D OstroskyUnited KingdomStephen Shaw NEGOTIATION
Silvio X ShinkoFranceElwin Sharvill UNQUALIFIED
Leja C NestleFranceStephen Shaw PROPOSAL
Cody A CaudyJapanAnna Fali QUALIFIED
Wickens Q BologniaAustraliaAnna Fali PROPOSAL
Claire F StensethIndiaXuxue Feng NEW
Emily X WieserIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco Q NestleIndia2026-06-30Feltz Printing Service NEGOTIATION20Xuxue Feng
1001Julie E DoeGermany2026-06-21Truhlar And Truhlar Attys RENEWAL86Stephen Shaw
1002Deepesh G RulapaughUnited Kingdom2026-06-19Feiner Bros UNQUALIFIED93Amy Elsner
1003Cody D KuskoRussia2026-06-03King, Christopher A Esq PROPOSAL21Elwin Sharvill
1004Maisha I VocelkaCanada2026-06-25Chanay, Jeffrey A Esq QUALIFIED3Ivan Magalhaes
1005Deepesh X PerinIndia2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED95Xuxue Feng
1006Izzy H MaletCanada2026-06-05Feltz Printing Service UNQUALIFIED88Bernardo Dominic
1007Munro V KuskoRussia2026-06-04Feiner Bros NEGOTIATION52Stephen Shaw
1008Morrow G MaletGermany2026-06-17Feiner Bros PROPOSAL8Ivan Magalhaes
1009Arvin O OstroskyAustralia2026-06-21Commercial Press QUALIFIED7Onyama Limba
1010Deepesh Q FigeroaArgentina2026-06-12Commercial Press NEGOTIATION38Elwin Sharvill
1011Ivar L StockhamIndia2026-06-25Benton, John B Jr NEGOTIATION54Asiya Javayant
1012Sinclair T PoquetteGermany2026-06-11Benton, John B Jr PROPOSAL34Ivan Magalhaes
1013Mujtaba C WaycottUnited Kingdom2026-06-02Chanay, Jeffrey A Esq QUALIFIED98Amy Elsner
1014Ricardo C NestleFrance2026-06-15Feiner Bros PROPOSAL25Bernardo Dominic
1015Cody F MarrierCanada2026-06-30Truhlar And Truhlar Attys PROPOSAL67Onyama Limba
1016Sinclair Z GauchoFrance2026-06-07Feltz Printing Service RENEWAL40Bernardo Dominic
1017Emily C MarrierItaly2026-06-14Morlong Associates NEGOTIATION66Ioni Bowcher
1018Murillo H WhobreySpain2026-06-09Commercial Press NEGOTIATION14Elwin Sharvill
1019Johnson X NestleBrazil2026-06-05Morlong Associates NEGOTIATION44Anna Fali
1020Leon V FollerIndia2026-06-08Chemel, James L Cpa RENEWAL50Elwin Sharvill
1021Sinclair P DarakjyIndia2026-06-22Chapman, Ross E Esq NEW59Bernardo Dominic
1022Maria A AmigonUnited Kingdom2026-06-10Truhlar And Truhlar Attys QUALIFIED67Ivan Magalhaes
1023Deepesh T AmigonBrazil2026-06-02Printing Dimensions QUALIFIED51Bernardo Dominic
1024Claire V DarakjyItaly2026-06-03Benton, John B Jr RENEWAL35Xuxue Feng
1025Emily Z DarakjyBrazil2026-06-02Rousseaux, Michael Esq NEW72Xuxue Feng
1026Kadeem A StockhamSpain2026-06-09Printing Dimensions QUALIFIED79Anna Fali
1027Jefferson P WaycottSpain2026-06-15Printing Dimensions PROPOSAL89Elwin Sharvill
1028Tony M AlbaresCanada2026-06-10Chemel, James L Cpa QUALIFIED77Ivan Magalhaes
1029Tony H BowleyArgentina2026-06-27Benton, John B Jr NEGOTIATION89Asiya Javayant
1030Aika M CaudyBrazil2026-06-12Dorl, James J Esq RENEWAL31Asiya Javayant
1031Tony B BologniaGermany2026-06-29Morlong Associates UNQUALIFIED15Stephen Shaw
1032Salvatore P RoysterJapan2026-06-15Printing Dimensions UNQUALIFIED51Amy Elsner
1033Ricardo I RulapaughFrance2026-06-13Morlong Associates UNQUALIFIED24Ioni Bowcher
1034Juan X IturbideArgentina2026-06-28Rousseaux, Michael Esq UNQUALIFIED39Amy Elsner
1035Murillo U FigeroaArgentina2026-06-24Truhlar And Truhlar Attys NEGOTIATION82Ivan Magalhaes
1036Kadeem R GarufiSpain2026-06-02Feltz Printing Service NEW71Stephen Shaw
1037Costa Q FollerJapan2026-06-16Morlong Associates NEGOTIATION68Xuxue Feng
1038Rodrigues N TollnerGermany2026-06-10Buckley Miller Wright NEGOTIATION70Amy Elsner
1039Clifford R RutaAustralia2026-06-27Truhlar And Truhlar Attys QUALIFIED7Elwin Sharvill
1040Munro P CaldareraRussia2026-06-23Feltz Printing Service RENEWAL18Anna Fali
1041Adams I FlosiItaly2026-06-19Benton, John B Jr RENEWAL74Elwin Sharvill
1042Aika S GillianArgentina2026-06-09Truhlar And Truhlar Attys NEGOTIATION27Elwin Sharvill
1043Kadeem N GauchoFrance2026-06-18Rangoni Of Florence PROPOSAL38Asiya Javayant
1044Adams L RutaFrance2026-06-22Truhlar And Truhlar Attys PROPOSAL64Anna Fali
1045Deepesh S ChuiCanada2026-06-28Morlong Associates QUALIFIED85Asiya Javayant
1046Kaitlin I OldroydArgentina2026-06-07Chanay, Jeffrey A Esq UNQUALIFIED78Ioni Bowcher
1047Jennifer W GauchoFrance2026-06-22Benton, John B Jr UNQUALIFIED0Asiya Javayant
1048Alejandro I DilliardAustralia2026-06-21Benton, John B Jr NEGOTIATION10Stephen Shaw
1049Octavia E BowleyGermany2026-06-29Chanay, Jeffrey A Esq PROPOSAL31Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro E VenereAustraliaIvan Magalhaes NEGOTIATION
Kadeem V MarrierJapanStephen Shaw UNQUALIFIED
Ashley L PerinBrazilOnyama Limba UNQUALIFIED
Johnson D IturbideItalyElwin Sharvill NEW
David F CaldareraSpainStephen Shaw PROPOSAL
Jefferson U FlosiRussiaIvan Magalhaes RENEWAL
Isabel A PaprockiBrazilAsiya Javayant PROPOSAL
Deepesh X MaletGermanyElwin Sharvill UNQUALIFIED
Costa W IturbideItalyOnyama Limba RENEWAL
Aruna G FlosiCanadaOnyama Limba PROPOSAL
Maisha F DilliardSpainStephen Shaw PROPOSAL
Jefferson X NestleJapanElwin Sharvill NEW
Adams F SlusarskiIndiaAnna Fali NEW
Cody D VocelkaJapanElwin Sharvill NEGOTIATION
Silvio C GillianBrazilAsiya Javayant NEW
Costa M WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Juan A BriddickSpainIoni Bowcher PROPOSAL
David X ButtArgentinaIvan Magalhaes QUALIFIED
Greenwood B FigeroaSpainBernardo Dominic RENEWAL
Chavez Y MarrierUnited KingdomOnyama Limba QUALIFIED
Sinclair M BriddickArgentinaBernardo Dominic RENEWAL
Munro Q DarakjyItalyOnyama Limba PROPOSAL
Misaki L StockhamGermanyAmy Elsner NEGOTIATION
Isabel U VocelkaGermanyAnna Fali RENEWAL
Octavia H FerenczAustraliaAnna Fali NEGOTIATION
Chavez G NestleFranceAsiya Javayant NEGOTIATION
Jones H FigeroaSpainAnna Fali PROPOSAL
Cody A MaletFranceBernardo Dominic QUALIFIED
Stacey D GarufiAustraliaIvan Magalhaes PROPOSAL
Adams F KolmetzFranceStephen Shaw NEW
Aditya L IturbideRussiaXuxue Feng QUALIFIED
Cody N NickaCanadaIoni Bowcher QUALIFIED
Ivar Z NickaAustraliaStephen Shaw PROPOSAL
Salvatore D SergiIndiaXuxue Feng NEGOTIATION
Sinclair K KuskoCanadaXuxue Feng UNQUALIFIED
Kaitlin Z TollnerRussiaElwin Sharvill NEGOTIATION
Wickens O PerinRussiaAsiya Javayant NEW
Rodrigues G GarufiArgentinaAnna Fali PROPOSAL
Jones C SaylorsJapanBernardo Dominic UNQUALIFIED
Ivar M ChuiFranceXuxue Feng QUALIFIED
Tony V AlbaresAustraliaAsiya Javayant NEGOTIATION
Ivar J DoeIndiaXuxue Feng NEGOTIATION
Mayumi M GillianAustraliaAsiya Javayant NEGOTIATION
Ashley I WhobreyAustraliaAmy Elsner PROPOSAL
Stacey G FerenczCanadaXuxue Feng QUALIFIED
Kadeem V RimArgentinaAmy Elsner RENEWAL
Mujtaba Z DoeAustraliaBernardo Dominic RENEWAL
Claire Z RimUnited KingdomAsiya Javayant RENEWAL
Morrow E RoysterRussiaIoni Bowcher PROPOSAL
Costa Y DarakjyJapanIvan Magalhaes QUALIFIED
Frozen Columns
Name
David H Briddick
Emily Q Figeroa
Francesco E Foller
Leja I Waycott
Munro A Paprocki
Maisha M Albares
Octavia X Bolognia
Izzy Y Tollner
Faith L Tollner
Greenwood Z Marrier
Deepesh R Ruta
James G Shinko
Juan H Marrier
Sinclair O Stenseth
Ivar P Bolognia
Stacey O Bowley
Johnson R Campain
Misaki K Whobrey
Munro U Albares
Wickens Z Nicka
Alejandro I Amigon
Jones U Vocelka
Chavez X Amigon
Kaitlin O Paprocki
Mujtaba H Albares
Misaki S Doe
Sinclair I Doe
Smith O Darakjy
Aditya O Perin
Kaitlin O Royster
Arvin Y Albares
Ricardo X Oldroyd
Arvin Z Dilliard
Mayumi U Venere
Alejandro F Schemmer
Darci T Kusko
Aditya N Marrier
Adams T Glick
Ashley R Poquette
Ivar H Caldarera
James T Stenseth
Mayumi O Briddick
Murillo F Nicka
Ashley B Malet
Aruna K Oldroyd
Aruna L Paprocki
Munro E Nestle
Chavez E Albares
Octavia V Ferencz
Izzy F Ruta
IdCountryDate
1000Italy2026-06-14
1001Canada2026-06-26
1002Argentina2026-06-11
1003Australia2026-06-28
1004Japan2026-06-26
1005Russia2026-06-24
1006Spain2026-06-11
1007Italy2026-06-01
1008Spain2026-06-03
1009Canada2026-06-25
1010Canada2026-06-08
1011Russia2026-06-02
1012Germany2026-06-08
1013Italy2026-06-21
1014Germany2026-06-03
1015Canada2026-06-05
1016United Kingdom2026-06-23
1017France2026-06-07
1018United Kingdom2026-06-21
1019Russia2026-06-21
1020Brazil2026-06-15
1021Canada2026-06-07
1022United Kingdom2026-06-19
1023Spain2026-06-28
1024Italy2026-06-08
1025India2026-06-02
1026Russia2026-06-10
1027United Kingdom2026-06-10
1028France2026-06-21
1029United Kingdom2026-06-26
1030Brazil2026-06-14
1031Argentina2026-06-13
1032Spain2026-06-01
1033Germany2026-06-15
1034United Kingdom2026-06-26
1035Germany2026-06-08
1036Argentina2026-06-28
1037Spain2026-06-14
1038Argentina2026-06-15
1039Australia2026-06-14
1040Russia2026-06-19
1041Brazil2026-06-10
1042France2026-06-09
1043Argentina2026-06-09
1044Argentina2026-06-09
1045Canada2026-06-16
1046Canada2026-06-02
1047Canada2026-06-05
1048Canada2026-06-18
1049Germany2026-06-26

On-Demand Data

NameIdCountryDate
Kadeem I Caldarera1000Argentina2026-06-11
Murillo U Iturbide1001United Kingdom2026-06-01
Aruna U Morasca1002Argentina2026-06-15
Maisha O Malet1003Italy2026-06-09
Jeanfrancois U Albares1004Germany2026-06-21
Darci S Paprocki1005Russia2026-06-12
Clifford T Malet1006India2026-06-18
Juan U Inouye1007United Kingdom2026-06-26
Mujtaba J Venere1008Italy2026-06-30
Arvin K Morasca1009Spain2026-06-15
Aditya U Oldroyd1010Germany2026-06-04
Misaki W Kolmetz1011Italy2026-06-14
Salvatore W Iturbide1012Russia2026-06-12
Octavia Y Rim1013Japan2026-06-27
Maisha G Foller1014France2026-06-24
Leja F Dilliard1015India2026-06-12
Maisha H Doe1016Australia2026-06-13
Mayumi S Darakjy1017United Kingdom2026-06-02
Jones I Darakjy1018Argentina2026-06-19
Francesco A Chui1019India2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David L GauchoSpainIvan Magalhaes QUALIFIED
Maria J WaycottRussiaIoni Bowcher UNQUALIFIED
Isabel Z WieserIndiaAmy Elsner RENEWAL
Octavia G AmigonSpainAsiya Javayant NEW
Adams H FollerSpainAnna Fali RENEWAL
Leja F FollerIndiaAsiya Javayant UNQUALIFIED
Jones U DoeArgentinaIvan Magalhaes NEGOTIATION
Jefferson W RutaIndiaXuxue Feng NEW
Jennifer E SchemmerIndiaOnyama Limba NEGOTIATION
Ivar R GauchoCanadaElwin Sharvill NEW
Leja U NickaFranceBernardo Dominic NEW
Juan K BologniaItalyAsiya Javayant UNQUALIFIED
Ricardo D BriddickArgentinaXuxue Feng QUALIFIED
Rodrigues L PerinBrazilStephen Shaw PROPOSAL
Isabel Z NestleJapanAmy Elsner NEW
Johnson N PerinCanadaOnyama Limba NEW
Izzy P BowleyIndiaIoni Bowcher NEGOTIATION
Clifford N WaycottUnited KingdomOnyama Limba RENEWAL
Alejandro Y GillianUnited KingdomOnyama Limba QUALIFIED
Silvio P KuskoItalyXuxue Feng NEGOTIATION
Francesco W AlbaresJapanXuxue Feng UNQUALIFIED
Sinclair I FollerItalyAmy Elsner NEW
Johnson P NestleArgentinaIoni Bowcher UNQUALIFIED
Misaki V NestleArgentinaAnna Fali PROPOSAL
Ashley E RutaIndiaXuxue Feng NEW
Kadeem F DoeIndiaElwin Sharvill RENEWAL
Faith N DoeBrazilBernardo Dominic NEGOTIATION
Octavia J IturbideBrazilIoni Bowcher UNQUALIFIED
Costa S RoysterSpainOnyama Limba RENEWAL
Greenwood M RulapaughUnited KingdomXuxue Feng RENEWAL
Maisha R PoquetteRussiaBernardo Dominic NEW
Wickens O SlusarskiJapanElwin Sharvill QUALIFIED
Greenwood D GauchoFranceElwin Sharvill QUALIFIED
Morrow Y KuskoAustraliaStephen Shaw NEGOTIATION
Juan K TollnerCanadaAmy Elsner UNQUALIFIED
Ivar O WieserAustraliaIvan Magalhaes PROPOSAL
Mujtaba U RulapaughFranceIoni Bowcher RENEWAL
Munro P ChuiItalyAmy Elsner NEW
Morrow S AlbaresAustraliaAsiya Javayant PROPOSAL
Ashley H RutaSpainElwin Sharvill 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>