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
Jones R MorascaUnited KingdomIoni Bowcher PROPOSAL
Greenwood Y SergiItalyAnna Fali PROPOSAL
Kaitlin N MacleadIndiaXuxue Feng RENEWAL
Maria X BologniaGermanyElwin Sharvill PROPOSAL
Smith Y DilliardSpainElwin Sharvill RENEWAL
Costa P RulapaughJapanStephen Shaw UNQUALIFIED
Tony W ButtBrazilIvan Magalhaes PROPOSAL
Cody A SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois I PaprockiAustraliaBernardo Dominic UNQUALIFIED
Leja J StockhamJapanAnna Fali PROPOSAL
Smith G MaletArgentinaAsiya Javayant RENEWAL
Murillo E IturbideItalyIvan Magalhaes NEGOTIATION
James Y OstroskyIndiaIoni Bowcher RENEWAL
Rodrigues Z AlbaresBrazilStephen Shaw NEW
Nicolas Y WaycottSpainAsiya Javayant NEW
Adams N TollnerUnited KingdomElwin Sharvill RENEWAL
Aruna A RulapaughJapanAsiya Javayant RENEWAL
Izzy Y WaycottIndiaAnna Fali PROPOSAL
Sinclair N DoeBrazilIoni Bowcher NEW
Tony W RulapaughSpainIoni Bowcher NEGOTIATION
Octavia P OstroskyCanadaStephen Shaw NEGOTIATION
Juan K MorascaFranceIoni Bowcher NEGOTIATION
Munro F DarakjyCanadaAmy Elsner NEW
Costa O OldroydArgentinaAmy Elsner QUALIFIED
Darci W InouyeUnited KingdomAsiya Javayant NEGOTIATION
Claire V WaycottBrazilIvan Magalhaes NEGOTIATION
Octavia L VenereIndiaIoni Bowcher QUALIFIED
Munro W GarufiGermanyBernardo Dominic NEGOTIATION
Morrow S BologniaJapanAmy Elsner PROPOSAL
Aditya S SlusarskiIndiaIvan Magalhaes QUALIFIED
Faith W WaycottSpainAnna Fali PROPOSAL
Jones N WhobreyArgentinaXuxue Feng RENEWAL
Antonio I RoysterCanadaXuxue Feng RENEWAL
Morrow Q BowleyJapanXuxue Feng NEGOTIATION
Emily S VenereIndiaAmy Elsner RENEWAL
Aika K DoeGermanyBernardo Dominic UNQUALIFIED
Murillo F GauchoBrazilIvan Magalhaes UNQUALIFIED
Ivar Y PaprockiCanadaXuxue Feng NEW
Jeanfrancois M RoysterBrazilAnna Fali NEW
Morrow S AmigonGermanyAsiya Javayant RENEWAL
Darci Q SlusarskiAustraliaAsiya Javayant RENEWAL
Leja O DoeArgentinaStephen Shaw NEW
Isabel R GlickRussiaBernardo Dominic QUALIFIED
Mujtaba R BowleyBrazilBernardo Dominic NEW
Aika Z VocelkaSpainStephen Shaw QUALIFIED
Aika M NickaArgentinaStephen Shaw RENEWAL
Tony R ButtBrazilElwin Sharvill PROPOSAL
Claire B DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer E KolmetzRussiaAnna Fali PROPOSAL
Wickens M KolmetzCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois J MaletArgentinaAsiya Javayant QUALIFIED
Ricardo H AmigonJapanIoni Bowcher QUALIFIED
Mayumi U KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Murillo E RoysterArgentinaIoni Bowcher UNQUALIFIED
Cody A ShinkoFranceAmy Elsner UNQUALIFIED
Maria G PoquetteItalyIvan Magalhaes QUALIFIED
Wickens U KolmetzUnited KingdomElwin Sharvill QUALIFIED
Smith T DilliardFranceElwin Sharvill PROPOSAL
Alejandro B KuskoCanadaStephen Shaw UNQUALIFIED
Leon C CaldareraAustraliaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow W IturbideUnited Kingdom2026-07-09Feiner Bros NEGOTIATION74Anna Fali
1001Ashley C GillianBrazil2026-07-12Chemel, James L Cpa NEGOTIATION87Amy Elsner
1002Jeanfrancois U WieserBrazil2026-06-21Benton, John B Jr NEGOTIATION10Anna Fali
1003Sinclair P CaudyFrance2026-07-01Chapman, Ross E Esq NEGOTIATION77Asiya Javayant
1004Maria O CampainAustralia2026-07-03Chanay, Jeffrey A Esq RENEWAL47Onyama Limba
1005Salvatore Q PoquetteAustralia2026-06-22Printing Dimensions UNQUALIFIED32Ivan Magalhaes
1006Adams Y CaudyCanada2026-06-26Printing Dimensions PROPOSAL86Xuxue Feng
1007Cody J NestleFrance2026-07-02Morlong Associates QUALIFIED62Onyama Limba
1008Aruna R SchemmerCanada2026-07-13Rousseaux, Michael Esq UNQUALIFIED60Bernardo Dominic
1009Claire G OldroydAustralia2026-07-07Dorl, James J Esq NEGOTIATION20Anna Fali
1010Ashley X WaycottArgentina2026-07-04Printing Dimensions UNQUALIFIED81Ivan Magalhaes
1011Darci S AmigonGermany2026-07-07Feiner Bros QUALIFIED61Ioni Bowcher
1012Faith Z DilliardGermany2026-06-24Commercial Press PROPOSAL76Amy Elsner
1013Misaki Z NickaFrance2026-07-19Chapman, Ross E Esq QUALIFIED99Elwin Sharvill
1014Leon I RutaGermany2026-07-03Feltz Printing Service RENEWAL27Ioni Bowcher
1015Claire J MarrierJapan2026-07-10Dorl, James J Esq NEGOTIATION7Onyama Limba
1016Jennifer I WaycottFrance2026-07-17Commercial Press RENEWAL26Ivan Magalhaes
1017Antonio N OstroskySpain2026-07-12Printing Dimensions RENEWAL90Amy Elsner
1018Darci J MaletSpain2026-06-25Rousseaux, Michael Esq NEW57Asiya Javayant
1019Costa I FerenczJapan2026-07-16Commercial Press PROPOSAL86Asiya Javayant
1020Ricardo X StockhamArgentina2026-07-06Rousseaux, Michael Esq NEW27Bernardo Dominic
1021Johnson X FigeroaIndia2026-06-24Rousseaux, Michael Esq PROPOSAL84Ivan Magalhaes
1022Jones E OldroydFrance2026-06-25Chapman, Ross E Esq RENEWAL87Xuxue Feng
1023Arvin S PaprockiUnited Kingdom2026-07-19Chapman, Ross E Esq RENEWAL99Asiya Javayant
1024Isabel C PerinFrance2026-06-27Commercial Press RENEWAL19Onyama Limba
1025Jones B CampainJapan2026-07-03Rangoni Of Florence QUALIFIED42Amy Elsner
1026Faith Z CaldareraIndia2026-06-30Printing Dimensions QUALIFIED12Bernardo Dominic
1027Ashley G SergiJapan2026-07-05King, Christopher A Esq NEGOTIATION9Bernardo Dominic
1028Francesco L OldroydJapan2026-06-27Truhlar And Truhlar Attys PROPOSAL76Bernardo Dominic
1029Stacey R StockhamCanada2026-07-10Chemel, James L Cpa RENEWAL2Anna Fali
1030Greenwood N NestleCanada2026-07-08Feltz Printing Service PROPOSAL70Stephen Shaw
1031Kaitlin Y MarrierBrazil2026-06-21Dorl, James J Esq RENEWAL16Asiya Javayant
1032Jeanfrancois L SergiArgentina2026-07-04Morlong Associates UNQUALIFIED66Amy Elsner
1033Greenwood N CampainGermany2026-07-04Feiner Bros PROPOSAL40Elwin Sharvill
1034Murillo P VocelkaGermany2026-06-22Truhlar And Truhlar Attys PROPOSAL92Stephen Shaw
1035Emily Y WhobreyAustralia2026-07-12Printing Dimensions NEGOTIATION66Elwin Sharvill
1036Silvio J IturbideJapan2026-07-15Chanay, Jeffrey A Esq NEGOTIATION52Onyama Limba
1037Jefferson E BowleyCanada2026-07-19Chapman, Ross E Esq PROPOSAL51Amy Elsner
1038Greenwood M WieserCanada2026-07-20King, Christopher A Esq NEW89Ioni Bowcher
1039Octavia J VenereAustralia2026-06-24Chemel, James L Cpa NEW65Ioni Bowcher
1040Emily T TollnerUnited Kingdom2026-07-07Chapman, Ross E Esq QUALIFIED52Bernardo Dominic
1041Chavez Z BriddickJapan2026-07-18King, Christopher A Esq NEGOTIATION23Ioni Bowcher
1042Johnson H MaletUnited Kingdom2026-07-12Rousseaux, Michael Esq UNQUALIFIED43Ioni Bowcher
1043Mujtaba S DilliardGermany2026-07-12Truhlar And Truhlar Attys RENEWAL60Anna Fali
1044Rodrigues B InouyeAustralia2026-06-25Rousseaux, Michael Esq NEGOTIATION28Amy Elsner
1045Emily T PerinArgentina2026-07-15Dorl, James J Esq PROPOSAL36Ioni Bowcher
1046Claire E RimIndia2026-06-28Dorl, James J Esq PROPOSAL24Elwin Sharvill
1047Jeanfrancois J CaldareraBrazil2026-06-28Chemel, James L Cpa QUALIFIED14Onyama Limba
1048Jeanfrancois L FigeroaItaly2026-06-22Truhlar And Truhlar Attys NEW30Bernardo Dominic
1049Aika R SaylorsIndia2026-06-30Rangoni Of Florence QUALIFIED52Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow X StensethArgentinaXuxue Feng PROPOSAL
Faith B MorascaSpainBernardo Dominic NEGOTIATION
Izzy Y DoeAustraliaXuxue Feng NEW
Nicolas D CaudySpainAsiya Javayant PROPOSAL
Jones W StockhamCanadaIvan Magalhaes RENEWAL
Clifford O SergiBrazilStephen Shaw NEGOTIATION
Leon C SchemmerUnited KingdomAmy Elsner PROPOSAL
Adams B OldroydGermanyAmy Elsner NEGOTIATION
Ashley C KolmetzItalyIvan Magalhaes QUALIFIED
Julie T NestleItalyAmy Elsner NEGOTIATION
Wickens F NickaUnited KingdomIoni Bowcher NEGOTIATION
Wickens R MacleadAustraliaOnyama Limba NEGOTIATION
Emily M CaudyFranceAsiya Javayant QUALIFIED
Kaitlin N GarufiItalyIoni Bowcher UNQUALIFIED
Alejandro S IturbideItalyXuxue Feng UNQUALIFIED
Cody O RulapaughCanadaBernardo Dominic UNQUALIFIED
Clifford J NickaArgentinaAnna Fali QUALIFIED
Julie A DilliardArgentinaStephen Shaw RENEWAL
Nicolas T NickaUnited KingdomAsiya Javayant NEW
Murillo Q ButtArgentinaElwin Sharvill PROPOSAL
Jefferson Z AlbaresJapanIvan Magalhaes UNQUALIFIED
Izzy G BriddickBrazilOnyama Limba NEGOTIATION
Sinclair U WaycottUnited KingdomBernardo Dominic PROPOSAL
Misaki Z IturbideSpainAsiya Javayant NEGOTIATION
Rodrigues Y CaldareraJapanBernardo Dominic PROPOSAL
Greenwood B OldroydAustraliaElwin Sharvill UNQUALIFIED
Deepesh R GlickSpainAsiya Javayant QUALIFIED
Deepesh M FlosiIndiaBernardo Dominic NEGOTIATION
Emily I CampainIndiaAmy Elsner PROPOSAL
Kadeem W StockhamFranceXuxue Feng PROPOSAL
Kadeem K AmigonAustraliaIvan Magalhaes NEGOTIATION
Ashley T GillianItalyOnyama Limba NEGOTIATION
Faith M FerenczAustraliaAmy Elsner NEW
Emily X StockhamGermanyStephen Shaw NEW
Smith M MacleadGermanyStephen Shaw NEW
Maisha H FollerSpainIoni Bowcher NEGOTIATION
Stacey R PoquetteRussiaIvan Magalhaes QUALIFIED
Silvio U RutaSpainStephen Shaw PROPOSAL
Darci T GauchoBrazilIoni Bowcher RENEWAL
Izzy Y KolmetzJapanIvan Magalhaes NEGOTIATION
David N FerenczIndiaIoni Bowcher NEGOTIATION
Leon C BologniaSpainIvan Magalhaes PROPOSAL
Darci F WaycottCanadaIvan Magalhaes NEGOTIATION
Julie K GillianUnited KingdomOnyama Limba UNQUALIFIED
James K OldroydFranceAmy Elsner NEW
Aika R VenereSpainAmy Elsner UNQUALIFIED
Silvio R KuskoSpainOnyama Limba UNQUALIFIED
Claire G AlbaresFranceIvan Magalhaes PROPOSAL
Darci S VocelkaRussiaIoni Bowcher NEGOTIATION
Octavia S PerinIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Faith T Waycott
Clifford V Chui
Clifford Y Malet
Morrow O Bolognia
Isabel C Malet
Darci J Stockham
Maria R Stenseth
Ivar M Figeroa
Smith A Malet
Kaitlin W Wieser
Johnson V Nicka
David S Perin
Morrow Y Darakjy
Tony Z Paprocki
Sinclair O Butt
Juan D Albares
Emily M Wieser
Silvio T Foller
Salvatore U Garufi
Jefferson Z Wieser
Aruna J Ferencz
Ashley M Briddick
Aruna S Doe
Jeanfrancois R Figeroa
Misaki B Royster
Silvio M Amigon
Claire A Nestle
Nicolas T Chui
Francesco U Ruta
Isabel R Doe
David Y Foller
Ivar N Tollner
Julie W Flosi
Maria P Dilliard
Nicolas G Rulapaugh
Antonio D Kusko
Julie N Caudy
Johnson D Briddick
Aditya I Stenseth
Ashley A Saylors
Aditya F Slusarski
Jefferson F Caldarera
Morrow E Kusko
Maisha V Schemmer
Chavez K Slusarski
Kadeem W Ostrosky
Stacey D Wieser
Mujtaba E Saylors
Octavia E Rulapaugh
Maria X Campain
IdCountryDate
1000Italy2026-07-05
1001India2026-06-22
1002Argentina2026-06-23
1003Canada2026-07-05
1004Japan2026-06-26
1005Argentina2026-06-25
1006France2026-06-26
1007India2026-07-20
1008India2026-07-02
1009Australia2026-07-02
1010Australia2026-07-07
1011Australia2026-07-18
1012France2026-07-06
1013Brazil2026-06-30
1014France2026-07-13
1015France2026-07-06
1016Italy2026-07-06
1017United Kingdom2026-06-22
1018India2026-07-03
1019Australia2026-06-23
1020Germany2026-07-14
1021Spain2026-07-15
1022Spain2026-07-09
1023Spain2026-06-22
1024France2026-07-20
1025Italy2026-07-13
1026Argentina2026-07-11
1027Japan2026-07-19
1028Brazil2026-07-14
1029United Kingdom2026-07-09
1030Germany2026-06-27
1031India2026-06-26
1032Spain2026-07-17
1033India2026-07-15
1034France2026-06-25
1035Russia2026-06-22
1036France2026-07-15
1037India2026-06-24
1038Australia2026-07-10
1039Germany2026-06-24
1040Italy2026-07-08
1041Japan2026-07-13
1042Canada2026-07-12
1043India2026-07-13
1044United Kingdom2026-07-18
1045Japan2026-07-07
1046Germany2026-07-15
1047India2026-06-23
1048Spain2026-06-25
1049France2026-07-05

On-Demand Data

NameIdCountryDate
Nicolas L Royster1000Argentina2026-06-28
Arvin I Stockham1001France2026-07-14
Antonio E Rulapaugh1002Japan2026-07-06
Kadeem A Perin1003Spain2026-07-14
Jennifer X Doe1004France2026-07-11
Maisha L Iturbide1005Russia2026-07-12
Chavez K Glick1006Canada2026-06-22
Smith Y Whobrey1007Australia2026-06-22
Aika Y Figeroa1008Canada2026-07-19
Kaitlin R Saylors1009India2026-07-16
Ivar C Chui1010France2026-07-15
Smith M Butt1011Germany2026-06-23
Isabel O Malet1012Canada2026-07-01
Antonio K Oldroyd1013India2026-07-13
Julie C Stenseth1014Spain2026-07-08
Aditya F Doe1015Russia2026-07-17
Misaki D Flosi1016Italy2026-07-04
Morrow H Kusko1017Russia2026-06-25
Wickens W Perin1018Japan2026-07-03
Stacey G Bolognia1019United Kingdom2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria I GarufiRussiaXuxue Feng RENEWAL
Tony A PaprockiJapanAmy Elsner NEGOTIATION
Smith J FerenczArgentinaAnna Fali PROPOSAL
Rodrigues T KuskoItalyStephen Shaw NEW
Alejandro Z KuskoCanadaAmy Elsner QUALIFIED
Nicolas P KuskoSpainBernardo Dominic RENEWAL
Johnson Q WhobreyFranceAnna Fali PROPOSAL
Antonio E StockhamIndiaXuxue Feng NEW
Mujtaba U GarufiArgentinaElwin Sharvill PROPOSAL
Julie W MarrierJapanStephen Shaw RENEWAL
Leja N FigeroaFranceIvan Magalhaes PROPOSAL
Aruna T MarrierAustraliaAsiya Javayant RENEWAL
Chavez O OldroydJapanAmy Elsner NEW
David E PoquetteArgentinaAsiya Javayant PROPOSAL
Cody W CaudyAustraliaStephen Shaw UNQUALIFIED
Ricardo R SlusarskiFranceElwin Sharvill NEW
Leja R FigeroaAustraliaElwin Sharvill RENEWAL
Jones L MaletUnited KingdomXuxue Feng NEGOTIATION
Smith X AmigonArgentinaOnyama Limba NEGOTIATION
Mayumi C RutaArgentinaXuxue Feng PROPOSAL
Nicolas V NestleJapanIoni Bowcher NEW
Adams C MorascaBrazilAmy Elsner UNQUALIFIED
Emily T FigeroaAustraliaIoni Bowcher NEGOTIATION
Murillo E PerinRussiaAmy Elsner PROPOSAL
Morrow J FerenczUnited KingdomIvan Magalhaes PROPOSAL
Tony E PerinGermanyIvan Magalhaes PROPOSAL
Murillo P BriddickItalyXuxue Feng QUALIFIED
Cody R GauchoCanadaOnyama Limba NEW
Isabel K FerenczAustraliaAmy Elsner NEGOTIATION
Leon R SchemmerGermanyAsiya Javayant UNQUALIFIED
Jefferson P VocelkaIndiaStephen Shaw UNQUALIFIED
Julie M AlbaresIndiaXuxue Feng QUALIFIED
Octavia T NickaCanadaXuxue Feng QUALIFIED
Maria N AlbaresBrazilOnyama Limba NEW
Octavia C BologniaJapanStephen Shaw NEGOTIATION
Emily S CaldareraGermanyIoni Bowcher QUALIFIED
Alejandro K RimSpainIoni Bowcher NEW
Mayumi P MaletBrazilIvan Magalhaes QUALIFIED
Alejandro C DarakjyUnited KingdomAmy Elsner PROPOSAL
Maria J TollnerAustraliaIvan Magalhaes NEW

<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>