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
Silvio U MorascaArgentinaIvan Magalhaes RENEWAL
Sinclair H BologniaUnited KingdomIoni Bowcher QUALIFIED
David S RutaCanadaAnna Fali PROPOSAL
Darci I MarrierItalyXuxue Feng QUALIFIED
Munro O SergiBrazilIoni Bowcher PROPOSAL
Ivar S NickaIndiaAmy Elsner NEW
Greenwood D RimGermanyAmy Elsner UNQUALIFIED
Faith G PoquetteUnited KingdomIvan Magalhaes NEW
David J SlusarskiArgentinaAmy Elsner QUALIFIED
Ashley O TollnerAustraliaXuxue Feng NEW
Adams R InouyeSpainIoni Bowcher NEGOTIATION
Claire E SchemmerAustraliaStephen Shaw QUALIFIED
Emily U NestleArgentinaBernardo Dominic PROPOSAL
Cody J PaprockiCanadaAmy Elsner PROPOSAL
Jennifer X SergiBrazilIvan Magalhaes UNQUALIFIED
Deepesh R SaylorsIndiaOnyama Limba QUALIFIED
Maisha X GlickItalyBernardo Dominic NEW
Clifford R DarakjyItalyAnna Fali QUALIFIED
Ashley R ButtCanadaIoni Bowcher PROPOSAL
Aruna O GillianBrazilOnyama Limba PROPOSAL
Greenwood J RoysterCanadaIoni Bowcher PROPOSAL
Francesco D SchemmerCanadaBernardo Dominic UNQUALIFIED
Rodrigues M MaletBrazilAnna Fali NEW
Misaki Z GillianCanadaAmy Elsner NEW
Antonio B KuskoSpainElwin Sharvill QUALIFIED
Juan I InouyeCanadaBernardo Dominic QUALIFIED
Aditya C ShinkoFranceIoni Bowcher RENEWAL
Alejandro S SergiBrazilAsiya Javayant PROPOSAL
Ivar C WieserUnited KingdomAmy Elsner NEGOTIATION
Sinclair J MorascaBrazilAnna Fali RENEWAL
Salvatore U NestleArgentinaIvan Magalhaes QUALIFIED
Ivar N BologniaUnited KingdomXuxue Feng RENEWAL
Deepesh T ButtArgentinaBernardo Dominic RENEWAL
Jones P FlosiItalyIoni Bowcher NEW
Deepesh G FigeroaCanadaAmy Elsner NEGOTIATION
Morrow Z PaprockiArgentinaIoni Bowcher RENEWAL
Claire H FlosiBrazilElwin Sharvill NEGOTIATION
James Q BowleyJapanAnna Fali UNQUALIFIED
Kaitlin E FollerBrazilAsiya Javayant UNQUALIFIED
Maisha P SergiArgentinaElwin Sharvill UNQUALIFIED
Greenwood T KuskoArgentinaIoni Bowcher QUALIFIED
Misaki J MacleadFranceElwin Sharvill NEGOTIATION
Alejandro G DilliardGermanyAsiya Javayant PROPOSAL
Maria K RutaSpainStephen Shaw RENEWAL
James A WieserFranceOnyama Limba NEW
Murillo N ButtGermanyXuxue Feng NEW
Ashley V OstroskyIndiaIoni Bowcher NEW
Munro R FigeroaAustraliaXuxue Feng NEGOTIATION
Jefferson Z TollnerItalyAnna Fali QUALIFIED
Tony X IturbideRussiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson J MacleadIndiaAnna Fali QUALIFIED
Tony E CampainIndiaStephen Shaw PROPOSAL
Smith S MaletRussiaIoni Bowcher PROPOSAL
Francesco M ShinkoSpainAsiya Javayant PROPOSAL
Misaki D StensethArgentinaAsiya Javayant UNQUALIFIED
Octavia E BriddickGermanyStephen Shaw PROPOSAL
Alejandro P MorascaRussiaElwin Sharvill NEGOTIATION
Adams Z RutaSpainBernardo Dominic PROPOSAL
Tony A MaletRussiaAnna Fali NEW
Antonio O BowleyFranceAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki R StensethIndia2026-06-23Feiner Bros RENEWAL23Xuxue Feng
1001Claire L GarufiAustralia2026-06-16Chapman, Ross E Esq PROPOSAL51Ivan Magalhaes
1002Costa G WieserUnited Kingdom2026-06-30Rousseaux, Michael Esq NEW51Amy Elsner
1003Johnson L KolmetzFrance2026-06-29Commercial Press UNQUALIFIED30Xuxue Feng
1004Ashley L PaprockiItaly2026-06-30Commercial Press UNQUALIFIED42Anna Fali
1005Jones N GlickItaly2026-06-11Buckley Miller Wright UNQUALIFIED75Stephen Shaw
1006Deepesh N NestleRussia2026-07-04Commercial Press QUALIFIED12Anna Fali
1007Salvatore E MaletFrance2026-06-28Chemel, James L Cpa NEW60Amy Elsner
1008Adams K GillianFrance2026-07-09Buckley Miller Wright QUALIFIED99Ivan Magalhaes
1009Nicolas G FlosiArgentina2026-06-14Buckley Miller Wright QUALIFIED80Anna Fali
1010Cody L PoquetteRussia2026-07-04Rousseaux, Michael Esq QUALIFIED86Amy Elsner
1011Chavez V VocelkaCanada2026-07-06Buckley Miller Wright PROPOSAL77Bernardo Dominic
1012Maisha D BowleyAustralia2026-07-04Truhlar And Truhlar Attys RENEWAL23Xuxue Feng
1013Wickens I StensethCanada2026-06-15Chemel, James L Cpa QUALIFIED45Onyama Limba
1014Smith Q TollnerFrance2026-07-04Morlong Associates QUALIFIED40Ioni Bowcher
1015Ashley S KuskoSpain2026-07-06Benton, John B Jr QUALIFIED8Anna Fali
1016Rodrigues F InouyeFrance2026-06-27Chanay, Jeffrey A Esq NEGOTIATION87Xuxue Feng
1017Maria G SlusarskiIndia2026-07-03Benton, John B Jr QUALIFIED8Xuxue Feng
1018Leja P DoeJapan2026-07-07Morlong Associates UNQUALIFIED30Ivan Magalhaes
1019Misaki Y OstroskyBrazil2026-06-29Rousseaux, Michael Esq PROPOSAL0Onyama Limba
1020Jones B IturbideArgentina2026-07-09Dorl, James J Esq UNQUALIFIED38Stephen Shaw
1021Jones I BriddickBrazil2026-06-14Chapman, Ross E Esq NEGOTIATION11Asiya Javayant
1022Ashley Q FollerAustralia2026-06-27Printing Dimensions RENEWAL2Onyama Limba
1023Chavez D MaletItaly2026-06-22Rousseaux, Michael Esq PROPOSAL69Xuxue Feng
1024Ricardo K OldroydBrazil2026-06-29Buckley Miller Wright UNQUALIFIED86Xuxue Feng
1025Costa A ShinkoUnited Kingdom2026-06-13Benton, John B Jr QUALIFIED89Anna Fali
1026Claire S FlosiItaly2026-07-06Chapman, Ross E Esq QUALIFIED56Xuxue Feng
1027Jeanfrancois T CaldareraItaly2026-07-09Feltz Printing Service NEW91Asiya Javayant
1028Munro N IturbideCanada2026-06-11Buckley Miller Wright QUALIFIED96Elwin Sharvill
1029Clifford Y FigeroaIndia2026-06-23Morlong Associates QUALIFIED52Amy Elsner
1030Ricardo Z BologniaRussia2026-07-09Benton, John B Jr QUALIFIED41Asiya Javayant
1031Faith V PaprockiJapan2026-06-26Chapman, Ross E Esq QUALIFIED18Ivan Magalhaes
1032Smith M RoysterIndia2026-07-09Printing Dimensions PROPOSAL56Ioni Bowcher
1033Nicolas G GauchoArgentina2026-07-09Morlong Associates RENEWAL76Anna Fali
1034Emily N BowleyUnited Kingdom2026-07-07Feltz Printing Service UNQUALIFIED7Asiya Javayant
1035Greenwood F OldroydRussia2026-06-27Morlong Associates PROPOSAL20Stephen Shaw
1036Morrow I FollerJapan2026-06-10Benton, John B Jr PROPOSAL80Xuxue Feng
1037Izzy V BowleyGermany2026-07-08Feltz Printing Service NEW23Bernardo Dominic
1038Jennifer T DilliardItaly2026-06-22Dorl, James J Esq PROPOSAL61Ioni Bowcher
1039Tony F MacleadItaly2026-06-29Rousseaux, Michael Esq QUALIFIED67Amy Elsner
1040Kadeem P CampainIndia2026-07-03Dorl, James J Esq QUALIFIED77Amy Elsner
1041Munro L MacleadFrance2026-07-05Buckley Miller Wright NEGOTIATION59Ivan Magalhaes
1042Francesco A PoquetteRussia2026-06-27Feiner Bros QUALIFIED44Asiya Javayant
1043Ashley U WhobreyJapan2026-06-18Chemel, James L Cpa NEW4Ivan Magalhaes
1044Stacey A OldroydItaly2026-06-18Commercial Press UNQUALIFIED76Elwin Sharvill
1045Ivar M GlickArgentina2026-06-20Buckley Miller Wright RENEWAL36Anna Fali
1046Faith T FlosiSpain2026-06-20Commercial Press NEW61Stephen Shaw
1047Kaitlin T SchemmerCanada2026-06-21Feiner Bros NEGOTIATION97Bernardo Dominic
1048Aika L GauchoItaly2026-06-13Rousseaux, Michael Esq RENEWAL34Bernardo Dominic
1049Costa P FerenczSpain2026-07-04Commercial Press UNQUALIFIED56Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Alejandro J AlbaresSpainOnyama Limba RENEWAL
Misaki X RulapaughBrazilAsiya Javayant NEW
Claire K MaletJapanStephen Shaw NEGOTIATION
Francesco I MaletItalyAsiya Javayant PROPOSAL
David F KuskoItalyOnyama Limba QUALIFIED
Johnson W MacleadJapanXuxue Feng RENEWAL
Maria X MorascaJapanStephen Shaw UNQUALIFIED
Mayumi J NestleBrazilBernardo Dominic PROPOSAL
Stacey X BologniaSpainStephen Shaw UNQUALIFIED
Leon R DoeSpainAsiya Javayant RENEWAL
David R KuskoRussiaAnna Fali NEW
Jennifer T MarrierItalyBernardo Dominic UNQUALIFIED
Leon Q RimArgentinaAmy Elsner NEW
Alejandro P NickaArgentinaOnyama Limba RENEWAL
Rodrigues O DilliardFranceXuxue Feng QUALIFIED
Claire H ChuiUnited KingdomStephen Shaw PROPOSAL
Cody T DilliardIndiaAnna Fali NEW
Adams O ShinkoBrazilBernardo Dominic NEW
Jennifer V SlusarskiIndiaXuxue Feng NEGOTIATION
Jennifer K AlbaresJapanAmy Elsner NEGOTIATION
Leja E FigeroaArgentinaXuxue Feng QUALIFIED
Deepesh B GauchoAustraliaIvan Magalhaes NEGOTIATION
Deepesh M WhobreyJapanXuxue Feng UNQUALIFIED
Maisha C SaylorsFranceStephen Shaw UNQUALIFIED
Nicolas N RoysterJapanAsiya Javayant NEGOTIATION
Adams F NickaCanadaBernardo Dominic UNQUALIFIED
Emily J KolmetzUnited KingdomElwin Sharvill RENEWAL
Tony R AmigonIndiaAnna Fali PROPOSAL
Emily G KuskoFranceIoni Bowcher RENEWAL
Leon Y OstroskyUnited KingdomIoni Bowcher QUALIFIED
Deepesh L NickaJapanOnyama Limba QUALIFIED
Faith A BriddickUnited KingdomAmy Elsner NEW
Salvatore V DoeRussiaIoni Bowcher NEW
Stacey B BriddickFranceAmy Elsner QUALIFIED
Emily I BologniaCanadaAmy Elsner NEW
Isabel B ButtFranceAsiya Javayant NEGOTIATION
Costa B GauchoCanadaAmy Elsner QUALIFIED
Tony Q StensethBrazilElwin Sharvill RENEWAL
Izzy S FerenczRussiaOnyama Limba RENEWAL
Julie E NestleJapanElwin Sharvill UNQUALIFIED
Munro O PoquetteItalyIoni Bowcher RENEWAL
Kaitlin C CaldareraCanadaXuxue Feng NEW
Jennifer T FlosiGermanyAsiya Javayant NEGOTIATION
Jeanfrancois X ButtCanadaAmy Elsner NEW
Alejandro Z CaudyAustraliaIvan Magalhaes PROPOSAL
Maria L GlickJapanElwin Sharvill UNQUALIFIED
Jones O AlbaresUnited KingdomAnna Fali RENEWAL
Johnson L WhobreyCanadaIvan Magalhaes RENEWAL
Kaitlin B ShinkoRussiaXuxue Feng PROPOSAL
Juan U CaudyItalyIoni Bowcher NEW
Frozen Columns
Name
Johnson N Kolmetz
Ashley D Inouye
Antonio E Nicka
Kadeem N Figeroa
Wickens N Briddick
Aika R Oldroyd
Rodrigues Z Nicka
Octavia B Rulapaugh
Wickens U Chui
Antonio K Inouye
Silvio F Oldroyd
Antonio Z Poquette
Morrow F Darakjy
Jennifer Q Doe
Claire E Malet
Kadeem T Nestle
Johnson W Glick
David S Waycott
Sinclair J Caudy
Deepesh D Bowley
Silvio X Perin
Mujtaba K Waycott
Maria N Darakjy
Silvio B Dilliard
Cody A Sergi
Kaitlin O Stenseth
Leon D Caldarera
Chavez L Garufi
Silvio W Gillian
Maria R Kolmetz
Chavez S Wieser
Arvin V Inouye
Alejandro X Amigon
Mujtaba J Morasca
Costa M Amigon
Deepesh L Ferencz
Aika O Kolmetz
Jeanfrancois Q Ostrosky
Deepesh X Malet
Kaitlin I Doe
Faith N Bolognia
James W Stenseth
Mayumi M Glick
Isabel L Campain
Rodrigues D Royster
Maisha U Doe
Chavez F Briddick
Johnson Q Figeroa
Silvio B Kusko
Jefferson M Bowley
IdCountryDate
1000France2026-06-28
1001Canada2026-07-05
1002France2026-06-10
1003Japan2026-07-05
1004Argentina2026-07-01
1005France2026-06-22
1006Germany2026-07-02
1007United Kingdom2026-06-24
1008Australia2026-06-12
1009Germany2026-06-13
1010Japan2026-06-14
1011Spain2026-07-09
1012India2026-06-30
1013Australia2026-06-21
1014Brazil2026-06-14
1015India2026-07-04
1016Japan2026-06-21
1017Japan2026-07-02
1018United Kingdom2026-06-26
1019Australia2026-06-26
1020Brazil2026-06-30
1021Russia2026-06-11
1022Argentina2026-06-19
1023Japan2026-06-25
1024United Kingdom2026-06-15
1025Japan2026-06-21
1026Japan2026-06-14
1027Canada2026-06-10
1028India2026-06-20
1029India2026-06-11
1030Canada2026-06-18
1031Russia2026-07-03
1032Brazil2026-07-02
1033Spain2026-06-22
1034Canada2026-06-25
1035United Kingdom2026-07-05
1036Brazil2026-06-26
1037India2026-06-11
1038United Kingdom2026-07-09
1039Argentina2026-07-02
1040Brazil2026-06-25
1041Argentina2026-06-13
1042Japan2026-07-08
1043Japan2026-06-28
1044France2026-07-07
1045Argentina2026-07-02
1046Argentina2026-06-19
1047Germany2026-07-06
1048Germany2026-06-28
1049Germany2026-06-20

On-Demand Data

NameIdCountryDate
Smith X Venere1000Australia2026-07-05
Jeanfrancois R Bowley1001United Kingdom2026-07-01
Johnson B Iturbide1002Spain2026-06-15
Greenwood O Stockham1003Russia2026-06-11
Nicolas K Slusarski1004United Kingdom2026-06-27
Aruna R Flosi1005Australia2026-07-04
Leon M Saylors1006Canada2026-06-16
Silvio J Wieser1007India2026-07-08
Clifford R Dilliard1008Italy2026-06-12
Francesco D Rulapaugh1009Germany2026-06-25
Claire Q Stockham1010Argentina2026-07-03
Darci F Gaucho1011Canada2026-06-22
Munro U Figeroa1012Argentina2026-06-16
Adams C Albares1013Italy2026-07-09
Ashley J Stockham1014India2026-06-15
David C Gillian1015Russia2026-06-24
Jefferson I Figeroa1016Canada2026-06-22
Leja A Royster1017Russia2026-06-29
Antonio B Kusko1018India2026-06-23
Stacey U Gillian1019Brazil2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer G RoysterCanadaBernardo Dominic QUALIFIED
Aruna S RulapaughBrazilAmy Elsner QUALIFIED
Sinclair A MaletJapanBernardo Dominic QUALIFIED
Maria W SergiGermanyAsiya Javayant QUALIFIED
Leon K OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Faith V TollnerRussiaElwin Sharvill NEW
Maria D PoquetteUnited KingdomAnna Fali RENEWAL
Jeanfrancois B ChuiArgentinaXuxue Feng NEW
Aditya Z FerenczCanadaStephen Shaw NEGOTIATION
Munro F WieserGermanyAnna Fali RENEWAL
Faith G GlickItalyXuxue Feng QUALIFIED
Izzy Z KolmetzUnited KingdomIoni Bowcher RENEWAL
Izzy O BologniaFranceElwin Sharvill RENEWAL
Faith P PaprockiArgentinaIoni Bowcher RENEWAL
Octavia N CampainRussiaIvan Magalhaes RENEWAL
James D SchemmerRussiaAsiya Javayant NEGOTIATION
Cody G VocelkaBrazilAsiya Javayant RENEWAL
Sinclair K KolmetzArgentinaIoni Bowcher NEGOTIATION
Alejandro A MaletJapanAnna Fali UNQUALIFIED
James J OldroydSpainAmy Elsner PROPOSAL
Mayumi Q ShinkoItalyIvan Magalhaes NEW
Ivar P KuskoUnited KingdomAmy Elsner PROPOSAL
Wickens S OldroydItalyIoni Bowcher PROPOSAL
Maria H PerinGermanyIoni Bowcher NEGOTIATION
Deepesh F AmigonAustraliaIoni Bowcher NEGOTIATION
Greenwood K DoeSpainStephen Shaw RENEWAL
Smith I OldroydSpainBernardo Dominic RENEWAL
Emily X WieserIndiaXuxue Feng NEW
Antonio M TollnerJapanOnyama Limba QUALIFIED
Ricardo G FigeroaCanadaStephen Shaw QUALIFIED
Jennifer Y TollnerIndiaXuxue Feng NEW
Izzy E AlbaresArgentinaAsiya Javayant NEGOTIATION
Maisha U DarakjyItalyAmy Elsner UNQUALIFIED
Jennifer M GlickBrazilAsiya Javayant NEW
Leja R ChuiGermanyAnna Fali RENEWAL
Johnson F TollnerArgentinaAsiya Javayant QUALIFIED
James Y CaudyFranceStephen Shaw NEW
Emily C StockhamIndiaIvan Magalhaes UNQUALIFIED
Leon R KuskoRussiaElwin Sharvill UNQUALIFIED
Emily C FlosiJapanAsiya Javayant NEGOTIATION

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