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
Mayumi D TollnerUnited KingdomAmy Elsner UNQUALIFIED
Antonio K MarrierItalyIvan Magalhaes UNQUALIFIED
Alejandro G AmigonUnited KingdomIoni Bowcher NEW
Ricardo Q RimCanadaBernardo Dominic UNQUALIFIED
Greenwood P GarufiUnited KingdomIvan Magalhaes NEW
Misaki F WaycottJapanIvan Magalhaes QUALIFIED
Aika S MaletAustraliaAmy Elsner NEGOTIATION
Darci B SergiJapanIvan Magalhaes NEGOTIATION
Jefferson X WaycottBrazilAnna Fali UNQUALIFIED
Tony G StensethIndiaBernardo Dominic NEGOTIATION
Octavia R PerinIndiaXuxue Feng PROPOSAL
Murillo F InouyeAustraliaStephen Shaw QUALIFIED
Arvin Y MaletRussiaOnyama Limba RENEWAL
Leja M InouyeIndiaAsiya Javayant NEGOTIATION
Alejandro L MacleadJapanBernardo Dominic NEGOTIATION
Morrow V RutaAustraliaAmy Elsner PROPOSAL
Antonio H PerinRussiaStephen Shaw QUALIFIED
Leja T PoquetteRussiaElwin Sharvill PROPOSAL
Mujtaba H RutaArgentinaIvan Magalhaes NEGOTIATION
Octavia G SergiBrazilStephen Shaw NEGOTIATION
Jefferson N VenereIndiaIoni Bowcher UNQUALIFIED
Claire X ChuiArgentinaAnna Fali NEGOTIATION
Ricardo D GauchoSpainOnyama Limba PROPOSAL
Cody B DarakjyUnited KingdomElwin Sharvill QUALIFIED
Leon I StockhamIndiaAmy Elsner RENEWAL
Leon W DoeUnited KingdomIoni Bowcher RENEWAL
Leon Z SaylorsIndiaAmy Elsner UNQUALIFIED
Kaitlin D SaylorsRussiaStephen Shaw RENEWAL
James D CampainBrazilXuxue Feng NEW
Francesco W SergiItalyOnyama Limba UNQUALIFIED
Munro F ChuiGermanyBernardo Dominic QUALIFIED
Jeanfrancois D MarrierGermanyStephen Shaw PROPOSAL
David H InouyeCanadaElwin Sharvill QUALIFIED
Claire T RimItalyAsiya Javayant PROPOSAL
Aditya M BriddickGermanyIoni Bowcher NEGOTIATION
Jefferson Q FollerIndiaOnyama Limba QUALIFIED
Clifford O CampainUnited KingdomAnna Fali UNQUALIFIED
Aika C KolmetzCanadaOnyama Limba PROPOSAL
Isabel I RulapaughGermanyXuxue Feng RENEWAL
Misaki D FollerGermanyIvan Magalhaes UNQUALIFIED
Ivar P FollerUnited KingdomXuxue Feng PROPOSAL
Tony N MaletGermanyElwin Sharvill NEGOTIATION
Misaki Q BriddickBrazilStephen Shaw NEGOTIATION
Adams D CaudyItalyAmy Elsner RENEWAL
Smith Y CampainRussiaAnna Fali UNQUALIFIED
Ricardo W RulapaughRussiaXuxue Feng NEGOTIATION
Costa H GauchoCanadaIvan Magalhaes NEGOTIATION
Silvio F CaldareraBrazilBernardo Dominic RENEWAL
Adams V MorascaFranceOnyama Limba NEGOTIATION
David P BowleyIndiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria D IturbideArgentinaAnna Fali PROPOSAL
Kadeem E NestleIndiaIvan Magalhaes NEW
Maria B BriddickJapanStephen Shaw RENEWAL
Aika L WieserJapanOnyama Limba NEGOTIATION
Mayumi U StockhamArgentinaAsiya Javayant NEGOTIATION
Maisha U WaycottBrazilOnyama Limba NEGOTIATION
David G StockhamAustraliaBernardo Dominic UNQUALIFIED
Octavia L FlosiArgentinaBernardo Dominic UNQUALIFIED
Mayumi U ShinkoGermanyAsiya Javayant PROPOSAL
Ivar V AlbaresIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones A KolmetzGermany2026-08-07Chanay, Jeffrey A Esq NEGOTIATION12Stephen Shaw
1001Johnson M MarrierFrance2026-08-04Chapman, Ross E Esq QUALIFIED91Asiya Javayant
1002Mayumi N NestleCanada2026-07-21King, Christopher A Esq PROPOSAL44Amy Elsner
1003Arvin K FlosiIndia2026-07-26Truhlar And Truhlar Attys RENEWAL44Asiya Javayant
1004Misaki O SaylorsFrance2026-08-04Rousseaux, Michael Esq QUALIFIED15Asiya Javayant
1005Greenwood E GlickJapan2026-07-21Benton, John B Jr NEGOTIATION78Stephen Shaw
1006Adams U AlbaresFrance2026-07-20Buckley Miller Wright PROPOSAL54Stephen Shaw
1007Kadeem B StockhamRussia2026-08-13Feiner Bros UNQUALIFIED62Onyama Limba
1008Ricardo E WieserAustralia2026-07-30Chanay, Jeffrey A Esq RENEWAL9Xuxue Feng
1009Morrow J FlosiFrance2026-08-01Printing Dimensions UNQUALIFIED35Ioni Bowcher
1010Leon R StensethCanada2026-08-02Benton, John B Jr NEW35Ivan Magalhaes
1011Munro G OstroskyUnited Kingdom2026-07-31Chapman, Ross E Esq PROPOSAL29Xuxue Feng
1012Ashley H ShinkoJapan2026-08-11Commercial Press QUALIFIED79Onyama Limba
1013James K StensethBrazil2026-08-01Chanay, Jeffrey A Esq RENEWAL59Onyama Limba
1014Deepesh G OldroydItaly2026-07-22Buckley Miller Wright NEGOTIATION68Onyama Limba
1015Juan L RulapaughUnited Kingdom2026-07-29Truhlar And Truhlar Attys NEGOTIATION92Ivan Magalhaes
1016Morrow Z RoysterJapan2026-08-12Benton, John B Jr PROPOSAL77Onyama Limba
1017Ivar T WaycottCanada2026-08-06Truhlar And Truhlar Attys NEGOTIATION26Bernardo Dominic
1018Stacey L GauchoCanada2026-07-21Commercial Press NEGOTIATION44Stephen Shaw
1019Johnson S SaylorsArgentina2026-08-14Dorl, James J Esq NEGOTIATION2Stephen Shaw
1020Clifford X MorascaUnited Kingdom2026-07-21Commercial Press NEGOTIATION29Ivan Magalhaes
1021Morrow S MaletFrance2026-07-25Rousseaux, Michael Esq UNQUALIFIED23Bernardo Dominic
1022Murillo O FlosiIndia2026-07-29Benton, John B Jr NEGOTIATION87Elwin Sharvill
1023Silvio R FlosiCanada2026-07-28Morlong Associates QUALIFIED25Elwin Sharvill
1024Clifford P BologniaGermany2026-07-21Dorl, James J Esq UNQUALIFIED88Bernardo Dominic
1025Tony Q VenereRussia2026-08-07Buckley Miller Wright PROPOSAL60Amy Elsner
1026Julie P AmigonRussia2026-07-26Benton, John B Jr NEGOTIATION82Ioni Bowcher
1027Aruna R DarakjySpain2026-07-29Morlong Associates NEW60Amy Elsner
1028Leja K GauchoRussia2026-08-13Dorl, James J Esq NEGOTIATION50Asiya Javayant
1029Faith I SaylorsUnited Kingdom2026-08-15Morlong Associates QUALIFIED29Ioni Bowcher
1030Jeanfrancois C DoeBrazil2026-08-15Chapman, Ross E Esq NEGOTIATION75Asiya Javayant
1031Nicolas K SchemmerCanada2026-08-09Rousseaux, Michael Esq NEW93Xuxue Feng
1032Sinclair U ButtItaly2026-08-13Morlong Associates NEGOTIATION55Stephen Shaw
1033Greenwood O AlbaresRussia2026-08-08Feltz Printing Service UNQUALIFIED97Elwin Sharvill
1034Juan S CampainIndia2026-08-09Buckley Miller Wright UNQUALIFIED52Ioni Bowcher
1035Kadeem X CaldareraIndia2026-07-31Buckley Miller Wright NEGOTIATION94Amy Elsner
1036David A BowleySpain2026-08-03Dorl, James J Esq QUALIFIED95Onyama Limba
1037Ivar A MaletItaly2026-08-02Rangoni Of Florence QUALIFIED3Ioni Bowcher
1038Adams U TollnerJapan2026-07-24Dorl, James J Esq QUALIFIED10Anna Fali
1039Octavia C OldroydSpain2026-07-24Rousseaux, Michael Esq RENEWAL30Xuxue Feng
1040Aruna S SergiItaly2026-07-17Buckley Miller Wright NEGOTIATION85Xuxue Feng
1041Tony V ShinkoItaly2026-08-13Chanay, Jeffrey A Esq NEW61Xuxue Feng
1042Darci I GarufiUnited Kingdom2026-07-30Rangoni Of Florence UNQUALIFIED67Anna Fali
1043Jones V SergiGermany2026-08-10Feltz Printing Service NEGOTIATION36Xuxue Feng
1044Isabel S DoeSpain2026-07-28Feltz Printing Service NEW35Bernardo Dominic
1045Emily O RutaArgentina2026-07-29Feiner Bros NEW66Asiya Javayant
1046Costa K TollnerSpain2026-08-05Chapman, Ross E Esq PROPOSAL28Bernardo Dominic
1047Jones C DilliardCanada2026-08-03Truhlar And Truhlar Attys UNQUALIFIED40Asiya Javayant
1048Darci U GauchoCanada2026-07-17King, Christopher A Esq PROPOSAL79Onyama Limba
1049Stacey E TollnerGermany2026-08-02Commercial Press UNQUALIFIED70Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Leja D AlbaresCanadaBernardo Dominic RENEWAL
Francesco L WhobreyBrazilIvan Magalhaes RENEWAL
Clifford Z DarakjyFranceIoni Bowcher QUALIFIED
Smith Q BologniaCanadaAmy Elsner UNQUALIFIED
Tony K MaletUnited KingdomIoni Bowcher UNQUALIFIED
Murillo D DilliardItalyIoni Bowcher PROPOSAL
Stacey Z GauchoBrazilAmy Elsner QUALIFIED
Rodrigues T TollnerJapanIoni Bowcher PROPOSAL
Ashley E WieserRussiaAmy Elsner NEGOTIATION
Wickens A NestleFranceAmy Elsner PROPOSAL
Arvin Y MaletFranceXuxue Feng QUALIFIED
Jefferson K SlusarskiSpainStephen Shaw NEW
Ashley G CaudyRussiaOnyama Limba PROPOSAL
Mayumi Z GlickUnited KingdomXuxue Feng QUALIFIED
Misaki W ChuiAustraliaAmy Elsner RENEWAL
Adams T ButtFranceAmy Elsner QUALIFIED
Ashley R ButtBrazilOnyama Limba QUALIFIED
Mayumi N RutaJapanAmy Elsner QUALIFIED
Cody Q DarakjyArgentinaIvan Magalhaes QUALIFIED
Julie L ChuiUnited KingdomAnna Fali NEGOTIATION
Cody F WaycottArgentinaAsiya Javayant PROPOSAL
Octavia D MorascaSpainBernardo Dominic QUALIFIED
Maria M KolmetzCanadaAnna Fali NEGOTIATION
Aika T FlosiGermanyElwin Sharvill NEW
Jefferson L SlusarskiIndiaAsiya Javayant PROPOSAL
Jones K VocelkaGermanyIvan Magalhaes NEGOTIATION
Ricardo C PaprockiIndiaIvan Magalhaes RENEWAL
Morrow U MaletGermanyXuxue Feng PROPOSAL
Johnson Q BologniaRussiaOnyama Limba NEW
Ricardo K IturbideFranceAsiya Javayant NEW
Isabel M TollnerCanadaBernardo Dominic NEW
Izzy T PerinGermanyAmy Elsner PROPOSAL
Aika W SlusarskiRussiaBernardo Dominic NEW
Aika E GauchoItalyIvan Magalhaes RENEWAL
Alejandro S PaprockiJapanIoni Bowcher RENEWAL
Ricardo H SlusarskiIndiaAsiya Javayant NEW
Jones W PerinJapanAnna Fali PROPOSAL
Jefferson J VocelkaBrazilAmy Elsner UNQUALIFIED
Clifford B WhobreyAustraliaIvan Magalhaes RENEWAL
Antonio Q MacleadArgentinaIvan Magalhaes NEW
Stacey K NestleRussiaXuxue Feng NEGOTIATION
Murillo T IturbideUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues E CaldareraArgentinaAnna Fali NEW
Mayumi A PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Jones D SergiGermanyOnyama Limba QUALIFIED
Silvio A FigeroaCanadaElwin Sharvill NEGOTIATION
Adams Y WhobreyUnited KingdomXuxue Feng NEGOTIATION
Claire X WaycottSpainElwin Sharvill QUALIFIED
Aika Q ButtAustraliaIvan Magalhaes RENEWAL
Deepesh A DarakjyArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Stacey L Stockham
Adams N Darakjy
Maisha X Gillian
Johnson J Vocelka
Antonio S Figeroa
Emily P Shinko
Antonio I Caudy
Alejandro O Nicka
Ashley A Ruta
Munro T Kusko
Julie P Tollner
Jefferson F Poquette
James Z Inouye
Chavez R Nicka
Antonio N Flosi
Munro F Inouye
Clifford T Doe
Ivar B Rulapaugh
Mujtaba N Royster
Johnson D Oldroyd
Nicolas J Campain
Deepesh O Slusarski
Aditya Q Albares
Ivar J Briddick
Costa B Caldarera
Julie R Marrier
Cody L Gaucho
Ivar L Vocelka
Morrow O Shinko
Leja M Gillian
Chavez P Foller
Darci R Rim
Ricardo E Kusko
David P Caudy
Octavia O Stenseth
Aditya Z Bowley
Aruna N Bowley
Claire W Royster
Darci L Gaucho
Greenwood R Shinko
Stacey F Tollner
Antonio Q Bolognia
Clifford C Schemmer
Isabel Z Gillian
Wickens V Inouye
Adams E Maclead
Adams J Ferencz
Faith P Venere
Aika R Waycott
Adams F Caudy
IdCountryDate
1000India2026-08-06
1001Russia2026-08-05
1002Italy2026-08-12
1003Italy2026-08-13
1004Spain2026-08-06
1005Italy2026-07-29
1006Japan2026-08-10
1007United Kingdom2026-07-24
1008Russia2026-08-09
1009India2026-07-27
1010Australia2026-08-13
1011Germany2026-08-07
1012Italy2026-07-25
1013India2026-07-22
1014Argentina2026-07-18
1015United Kingdom2026-08-03
1016Spain2026-08-08
1017Argentina2026-07-24
1018Spain2026-07-17
1019United Kingdom2026-07-19
1020Japan2026-07-25
1021United Kingdom2026-08-06
1022Canada2026-07-31
1023Italy2026-08-03
1024Russia2026-08-13
1025Brazil2026-08-10
1026Brazil2026-07-19
1027Germany2026-08-15
1028Argentina2026-08-02
1029Argentina2026-07-20
1030France2026-08-10
1031Russia2026-08-03
1032Italy2026-08-09
1033Russia2026-08-11
1034Brazil2026-08-11
1035Australia2026-07-23
1036Argentina2026-07-21
1037Argentina2026-07-26
1038Brazil2026-07-25
1039Italy2026-08-05
1040Brazil2026-08-05
1041Brazil2026-08-10
1042Spain2026-08-12
1043Spain2026-08-07
1044Russia2026-07-21
1045Japan2026-08-05
1046France2026-08-13
1047Australia2026-08-06
1048Australia2026-07-19
1049Russia2026-08-10

On-Demand Data

NameIdCountryDate
Ricardo S Kusko1000Australia2026-07-25
James X Glick1001Canada2026-07-25
Stacey Z Oldroyd1002France2026-08-08
Jefferson M Maclead1003Australia2026-08-10
Costa A Wieser1004United Kingdom2026-07-18
Ashley D Poquette1005United Kingdom2026-08-03
Rodrigues Q Doe1006Russia2026-07-29
Ivar B Iturbide1007Brazil2026-07-18
David C Marrier1008Spain2026-08-12
Aditya O Flosi1009Japan2026-08-02
Ashley U Ferencz1010Brazil2026-07-19
Leon X Caldarera1011Spain2026-08-14
Greenwood Z Malet1012Spain2026-08-04
Rodrigues E Rulapaugh1013Germany2026-08-09
Johnson U Stenseth1014Japan2026-08-13
Munro V Briddick1015Spain2026-08-10
Kaitlin Q Glick1016Japan2026-08-06
Johnson D Malet1017India2026-08-02
Sinclair H Slusarski1018Japan2026-07-19
Octavia J Caldarera1019Brazil2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba G StensethFranceAsiya Javayant NEGOTIATION
Maria L RulapaughJapanOnyama Limba NEW
Smith I CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco M SlusarskiSpainIvan Magalhaes NEGOTIATION
Rodrigues Z OstroskyGermanyStephen Shaw QUALIFIED
Silvio Q CampainGermanyXuxue Feng UNQUALIFIED
Claire U InouyeAustraliaStephen Shaw RENEWAL
Greenwood L GauchoIndiaBernardo Dominic PROPOSAL
Johnson D WaycottFranceAmy Elsner NEW
Faith Q VenereItalyIoni Bowcher PROPOSAL
Aika Q BriddickCanadaElwin Sharvill NEW
James Q PoquetteFranceElwin Sharvill NEW
Alejandro Q PoquetteJapanXuxue Feng NEGOTIATION
Izzy I AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo E StockhamCanadaAmy Elsner PROPOSAL
Aruna W NestleAustraliaAsiya Javayant RENEWAL
David O PoquetteIndiaStephen Shaw RENEWAL
Kaitlin E FigeroaUnited KingdomIoni Bowcher NEW
Kadeem C CaldareraArgentinaAmy Elsner NEW
Ashley C AlbaresRussiaOnyama Limba NEW
Izzy K AmigonJapanAsiya Javayant NEGOTIATION
Mujtaba Y DarakjyJapanIvan Magalhaes NEGOTIATION
David Q CaldareraItalyStephen Shaw NEGOTIATION
Faith O RulapaughSpainAsiya Javayant UNQUALIFIED
Morrow H MacleadUnited KingdomAnna Fali UNQUALIFIED
Adams S SlusarskiCanadaAsiya Javayant NEGOTIATION
Ivar B WaycottSpainBernardo Dominic PROPOSAL
Emily L SaylorsJapanAmy Elsner PROPOSAL
Tony L MorascaBrazilAmy Elsner NEGOTIATION
Julie K BologniaUnited KingdomAmy Elsner UNQUALIFIED
Aika E FollerFranceBernardo Dominic RENEWAL
Cody C ChuiBrazilAnna Fali UNQUALIFIED
Jones D FollerArgentinaOnyama Limba QUALIFIED
James W MaletCanadaAmy Elsner RENEWAL
Aika O FlosiItalyBernardo Dominic NEW
Johnson D PerinFranceStephen Shaw NEW
Antonio E WieserAustraliaXuxue Feng QUALIFIED
Salvatore J FollerGermanyAsiya Javayant NEW
Rodrigues N OstroskyAustraliaIvan Magalhaes PROPOSAL
Nicolas I DilliardCanadaElwin 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>