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
Nicolas H AlbaresIndiaAnna Fali NEGOTIATION
Claire C NestleGermanyIvan Magalhaes NEGOTIATION
Octavia Q FerenczIndiaAmy Elsner QUALIFIED
Cody B PaprockiArgentinaXuxue Feng RENEWAL
David G CaudyBrazilAnna Fali NEW
Isabel R FollerUnited KingdomElwin Sharvill NEW
Mayumi S RoysterGermanyAnna Fali RENEWAL
Aruna M VocelkaSpainAsiya Javayant NEGOTIATION
Salvatore B ButtArgentinaOnyama Limba NEW
Smith S BowleyUnited KingdomOnyama Limba RENEWAL
Faith L RoysterGermanyElwin Sharvill PROPOSAL
Leon S MaletBrazilAsiya Javayant QUALIFIED
Ricardo K AmigonRussiaIvan Magalhaes QUALIFIED
Mujtaba X FlosiAustraliaIoni Bowcher UNQUALIFIED
Emily N ChuiIndiaStephen Shaw UNQUALIFIED
Greenwood Q ButtBrazilBernardo Dominic NEGOTIATION
Silvio K NickaJapanXuxue Feng NEW
Leon A MaletUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues I WieserFranceOnyama Limba NEW
Jeanfrancois I SergiCanadaBernardo Dominic UNQUALIFIED
Leja L KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Stacey H WhobreySpainAnna Fali NEGOTIATION
Aruna P StensethCanadaAsiya Javayant QUALIFIED
Aruna W IturbideFranceXuxue Feng PROPOSAL
Sinclair M IturbideUnited KingdomAnna Fali QUALIFIED
Cody K GlickSpainAsiya Javayant PROPOSAL
Aditya D MaletItalyAnna Fali NEGOTIATION
Faith Z NestleGermanyBernardo Dominic RENEWAL
Julie G ShinkoBrazilOnyama Limba PROPOSAL
Morrow A ShinkoRussiaStephen Shaw UNQUALIFIED
Antonio C WieserGermanyElwin Sharvill NEGOTIATION
David M AmigonGermanyXuxue Feng QUALIFIED
Rodrigues I GillianSpainAsiya Javayant NEW
David U GillianGermanyElwin Sharvill PROPOSAL
Mayumi W SaylorsRussiaAnna Fali UNQUALIFIED
Maisha J MaletSpainIoni Bowcher RENEWAL
Leon B OldroydUnited KingdomAsiya Javayant RENEWAL
Aditya D VocelkaUnited KingdomIoni Bowcher RENEWAL
Alejandro C VocelkaBrazilStephen Shaw NEW
Silvio N FollerIndiaAmy Elsner QUALIFIED
Faith N OldroydSpainBernardo Dominic PROPOSAL
Salvatore M SergiRussiaAmy Elsner NEW
Jefferson U IturbideBrazilIvan Magalhaes NEW
Greenwood S SlusarskiBrazilElwin Sharvill PROPOSAL
Izzy P InouyeBrazilXuxue Feng RENEWAL
Sinclair M PerinSpainBernardo Dominic PROPOSAL
Antonio M FlosiJapanIoni Bowcher PROPOSAL
Francesco M MacleadGermanyStephen Shaw UNQUALIFIED
Maisha H KuskoFranceOnyama Limba QUALIFIED
Jones D FigeroaItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood N MorascaUnited KingdomXuxue Feng UNQUALIFIED
Izzy D CaldareraSpainIvan Magalhaes NEW
Leja V MaletCanadaIoni Bowcher NEW
Jeanfrancois N SchemmerBrazilXuxue Feng QUALIFIED
Francesco H OstroskyFranceAsiya Javayant PROPOSAL
Maisha R InouyeItalyOnyama Limba NEW
Izzy Z SergiCanadaStephen Shaw NEGOTIATION
Sinclair R SaylorsFranceAsiya Javayant UNQUALIFIED
Jefferson B AmigonJapanIoni Bowcher NEW
Smith R SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo B GauchoJapan2026-08-19King, Christopher A Esq NEW72Asiya Javayant
1001Johnson C MaletJapan2026-08-27Printing Dimensions NEGOTIATION8Stephen Shaw
1002Munro V WieserCanada2026-08-06Feiner Bros NEW5Xuxue Feng
1003Ricardo K GauchoAustralia2026-08-20Printing Dimensions RENEWAL48Bernardo Dominic
1004Stacey M FigeroaGermany2026-08-29King, Christopher A Esq UNQUALIFIED16Ioni Bowcher
1005Ashley Q SlusarskiAustralia2026-08-18Rangoni Of Florence PROPOSAL87Elwin Sharvill
1006Arvin K BologniaJapan2026-08-20Truhlar And Truhlar Attys QUALIFIED25Asiya Javayant
1007David L RulapaughItaly2026-08-11Buckley Miller Wright UNQUALIFIED77Xuxue Feng
1008Ashley N KolmetzFrance2026-09-02Dorl, James J Esq PROPOSAL49Asiya Javayant
1009Emily C VocelkaItaly2026-08-11Rangoni Of Florence UNQUALIFIED17Anna Fali
1010Maria V ChuiAustralia2026-09-02Dorl, James J Esq NEGOTIATION8Ioni Bowcher
1011Octavia L MorascaJapan2026-08-23Chanay, Jeffrey A Esq NEGOTIATION79Ivan Magalhaes
1012David C FlosiSpain2026-08-26Chapman, Ross E Esq UNQUALIFIED57Amy Elsner
1013Julie X FerenczItaly2026-08-29Chemel, James L Cpa NEGOTIATION69Asiya Javayant
1014Aruna U PoquetteGermany2026-08-07Morlong Associates PROPOSAL95Elwin Sharvill
1015Emily U MarrierCanada2026-08-04Buckley Miller Wright NEW62Onyama Limba
1016Jennifer T PoquetteJapan2026-08-10Rousseaux, Michael Esq NEGOTIATION71Amy Elsner
1017Julie S PoquetteCanada2026-08-25Benton, John B Jr PROPOSAL82Stephen Shaw
1018Ricardo O GauchoUnited Kingdom2026-08-11Printing Dimensions RENEWAL76Amy Elsner
1019Sinclair A CaldareraCanada2026-08-17Chapman, Ross E Esq UNQUALIFIED75Ioni Bowcher
1020Jefferson V StensethArgentina2026-08-22Printing Dimensions RENEWAL53Elwin Sharvill
1021Francesco W StockhamArgentina2026-08-06Morlong Associates RENEWAL44Stephen Shaw
1022Francesco T DarakjyItaly2026-08-15Rousseaux, Michael Esq NEW11Xuxue Feng
1023Julie W RoysterAustralia2026-08-27Rangoni Of Florence UNQUALIFIED35Ioni Bowcher
1024Salvatore C BowleyGermany2026-09-01Rangoni Of Florence NEW44Ivan Magalhaes
1025James G OldroydItaly2026-08-13Rangoni Of Florence PROPOSAL99Ioni Bowcher
1026Wickens Y VocelkaBrazil2026-08-16King, Christopher A Esq PROPOSAL27Anna Fali
1027Rodrigues R SchemmerJapan2026-08-05Benton, John B Jr RENEWAL27Amy Elsner
1028Ashley Y WhobreyFrance2026-08-22Chanay, Jeffrey A Esq RENEWAL41Ioni Bowcher
1029Leja P BriddickAustralia2026-08-29Rangoni Of Florence RENEWAL99Amy Elsner
1030Johnson N SchemmerCanada2026-08-25Dorl, James J Esq RENEWAL58Bernardo Dominic
1031Johnson F BriddickCanada2026-08-19Chapman, Ross E Esq PROPOSAL55Ioni Bowcher
1032Leon W ShinkoGermany2026-08-20Rousseaux, Michael Esq PROPOSAL81Onyama Limba
1033Francesco Z RoysterFrance2026-08-10Feiner Bros QUALIFIED18Xuxue Feng
1034Antonio X OstroskyCanada2026-08-23Chemel, James L Cpa UNQUALIFIED4Asiya Javayant
1035James J StockhamGermany2026-08-08Morlong Associates PROPOSAL23Asiya Javayant
1036Morrow Z RoysterAustralia2026-08-18Rousseaux, Michael Esq RENEWAL2Elwin Sharvill
1037Maria X RimIndia2026-08-18Dorl, James J Esq PROPOSAL56Xuxue Feng
1038Aruna D WieserSpain2026-08-16Truhlar And Truhlar Attys NEW7Ivan Magalhaes
1039Stacey G KolmetzUnited Kingdom2026-08-24Rangoni Of Florence UNQUALIFIED16Onyama Limba
1040Aika N FigeroaArgentina2026-08-20Chemel, James L Cpa QUALIFIED31Onyama Limba
1041Greenwood F OstroskyItaly2026-08-30Rousseaux, Michael Esq QUALIFIED11Elwin Sharvill
1042Morrow B DilliardArgentina2026-08-26Chanay, Jeffrey A Esq NEW28Xuxue Feng
1043Nicolas C NestleSpain2026-08-26Rousseaux, Michael Esq UNQUALIFIED24Xuxue Feng
1044Claire C PaprockiAustralia2026-08-10Printing Dimensions QUALIFIED13Ivan Magalhaes
1045Francesco E FigeroaAustralia2026-08-31Chanay, Jeffrey A Esq QUALIFIED39Amy Elsner
1046Deepesh T OldroydJapan2026-08-12Printing Dimensions PROPOSAL51Ioni Bowcher
1047Greenwood F RimFrance2026-08-24Chanay, Jeffrey A Esq NEW9Asiya Javayant
1048Jones S VenereBrazil2026-08-12Chapman, Ross E Esq PROPOSAL25Bernardo Dominic
1049Sinclair D CaudyCanada2026-08-24Commercial Press RENEWAL19Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez Q WhobreyIndiaBernardo Dominic NEW
Misaki T GlickItalyAnna Fali NEW
Cody F NickaIndiaAsiya Javayant NEW
Costa C MaletJapanXuxue Feng QUALIFIED
Jefferson G RulapaughCanadaOnyama Limba RENEWAL
Ashley C MacleadJapanOnyama Limba RENEWAL
Cody X OldroydBrazilOnyama Limba RENEWAL
Juan U SergiItalyElwin Sharvill UNQUALIFIED
Arvin K BriddickAustraliaIvan Magalhaes RENEWAL
Stacey L CaldareraGermanyIoni Bowcher QUALIFIED
Kaitlin P RoysterRussiaBernardo Dominic QUALIFIED
Jeanfrancois J OldroydUnited KingdomIvan Magalhaes RENEWAL
Smith B GlickGermanyIvan Magalhaes NEW
Deepesh X FerenczJapanElwin Sharvill NEGOTIATION
Costa L AmigonUnited KingdomIvan Magalhaes RENEWAL
Ashley K FigeroaArgentinaAmy Elsner NEW
Mayumi Z CampainIndiaIvan Magalhaes RENEWAL
Faith L MaletUnited KingdomXuxue Feng QUALIFIED
James M MaletRussiaAmy Elsner PROPOSAL
Costa Z CampainSpainBernardo Dominic NEW
Munro B MorascaFranceIoni Bowcher QUALIFIED
Alejandro C BriddickGermanyXuxue Feng UNQUALIFIED
Morrow X AmigonFranceOnyama Limba NEW
Sinclair P DoeCanadaOnyama Limba QUALIFIED
Cody S IturbideGermanyElwin Sharvill PROPOSAL
Greenwood U VocelkaAustraliaBernardo Dominic RENEWAL
Jeanfrancois C FollerRussiaElwin Sharvill PROPOSAL
Misaki S FigeroaArgentinaAsiya Javayant RENEWAL
Claire K FollerItalyStephen Shaw QUALIFIED
Antonio X DarakjySpainAsiya Javayant RENEWAL
Francesco X ButtItalyStephen Shaw NEW
Salvatore D ShinkoAustraliaIoni Bowcher PROPOSAL
Murillo S ButtGermanyOnyama Limba RENEWAL
Alejandro U WhobreyArgentinaXuxue Feng NEGOTIATION
Juan J PoquetteGermanyIvan Magalhaes PROPOSAL
Costa C FlosiFranceElwin Sharvill RENEWAL
Cody Y ChuiUnited KingdomAnna Fali RENEWAL
Leja V BologniaBrazilElwin Sharvill PROPOSAL
Smith E NestleAustraliaOnyama Limba UNQUALIFIED
Nicolas E WaycottJapanIoni Bowcher PROPOSAL
Juan P NestleUnited KingdomBernardo Dominic NEW
Adams M AmigonItalyIvan Magalhaes NEW
Nicolas C IturbideSpainStephen Shaw PROPOSAL
Jennifer C DoeSpainXuxue Feng RENEWAL
Ashley G DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Misaki M KuskoIndiaElwin Sharvill UNQUALIFIED
Jones R CaudyCanadaOnyama Limba PROPOSAL
Maria O PerinBrazilOnyama Limba NEGOTIATION
Aika W WieserCanadaElwin Sharvill QUALIFIED
Ivar J BowleyIndiaAsiya Javayant NEW
Frozen Columns
Name
Morrow V Albares
Antonio L Flosi
Munro R Dilliard
Smith F Bolognia
Julie P Albares
Chavez S Albares
Octavia Z Flosi
Juan M Gaucho
Octavia R Caudy
Adams F Slusarski
Julie P Garufi
Octavia M Bowley
Julie A Stenseth
Izzy U Amigon
Greenwood P Schemmer
Silvio D Wieser
David B Malet
Costa I Whobrey
Misaki U Bowley
Johnson S Saylors
Ashley L Rim
Jeanfrancois R Vocelka
Ivar H Darakjy
Murillo E Caldarera
Juan A Malet
Murillo S Campain
Adams C Stockham
Chavez F Sergi
Ivar S Dilliard
Jennifer O Campain
Aruna F Glick
Ricardo X Venere
Claire Y Ostrosky
Isabel P Gaucho
Francesco G Tollner
Ashley Z Oldroyd
Greenwood F Kusko
Jones Q Inouye
Maisha P Oldroyd
Izzy W Slusarski
Misaki W Campain
James X Morasca
Claire M Gaucho
Murillo U Stenseth
Ivar S Figeroa
Smith B Ostrosky
David F Garufi
Smith W Kusko
Kadeem X Stenseth
Jennifer J Caudy
IdCountryDate
1000Russia2026-08-29
1001Russia2026-08-14
1002Italy2026-08-20
1003France2026-08-25
1004Italy2026-08-25
1005India2026-08-22
1006Canada2026-08-22
1007Spain2026-08-14
1008Australia2026-08-13
1009Spain2026-08-23
1010India2026-08-22
1011Spain2026-08-22
1012United Kingdom2026-08-24
1013France2026-08-09
1014Australia2026-08-21
1015United Kingdom2026-08-09
1016France2026-08-08
1017Canada2026-08-20
1018United Kingdom2026-08-08
1019Russia2026-08-28
1020Argentina2026-08-16
1021Japan2026-08-09
1022India2026-08-14
1023France2026-08-20
1024Italy2026-08-21
1025Argentina2026-09-02
1026United Kingdom2026-08-29
1027United Kingdom2026-08-17
1028Brazil2026-08-13
1029Spain2026-08-26
1030Russia2026-08-19
1031Russia2026-08-12
1032United Kingdom2026-09-02
1033Russia2026-08-04
1034Russia2026-08-20
1035United Kingdom2026-08-18
1036Brazil2026-08-22
1037United Kingdom2026-08-23
1038France2026-08-18
1039Argentina2026-08-10
1040Italy2026-08-18
1041Brazil2026-08-04
1042Argentina2026-08-16
1043India2026-08-06
1044Brazil2026-08-19
1045Argentina2026-08-23
1046Australia2026-09-02
1047Germany2026-09-02
1048Canada2026-08-15
1049Argentina2026-09-02

On-Demand Data

NameIdCountryDate
Ricardo I Morasca1000Spain2026-08-11
Ashley K Malet1001Canada2026-08-20
Clifford X Ferencz1002India2026-08-08
Izzy O Briddick1003Canada2026-08-18
Misaki M Wieser1004Russia2026-08-24
Salvatore X Caldarera1005India2026-08-05
Aditya B Sergi1006Spain2026-08-18
Mujtaba S Maclead1007Italy2026-08-04
Kadeem H Oldroyd1008Brazil2026-08-06
Chavez B Perin1009India2026-08-11
Johnson L Glick1010United Kingdom2026-08-08
Emily I Waycott1011Australia2026-08-07
Claire P Slusarski1012France2026-09-02
Jeanfrancois D Shinko1013Germany2026-08-04
Rodrigues P Briddick1014Canada2026-09-01
Izzy E Inouye1015India2026-08-28
Maria F Morasca1016Argentina2026-08-07
Adams K Whobrey1017Argentina2026-08-18
Arvin N Waycott1018Australia2026-08-23
Alejandro Q Briddick1019Italy2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody O RulapaughGermanyOnyama Limba PROPOSAL
Kadeem P DarakjySpainStephen Shaw PROPOSAL
Ashley W NestleFranceIoni Bowcher NEW
Antonio G BowleyArgentinaStephen Shaw PROPOSAL
Mayumi M ButtRussiaIoni Bowcher NEW
Jefferson C BriddickSpainStephen Shaw PROPOSAL
Rodrigues H RutaArgentinaIvan Magalhaes NEGOTIATION
Maria I WieserBrazilAsiya Javayant RENEWAL
Emily O RimRussiaIvan Magalhaes NEGOTIATION
Costa B BologniaBrazilIvan Magalhaes PROPOSAL
Sinclair W BriddickSpainStephen Shaw NEW
Deepesh U VocelkaGermanyAmy Elsner NEGOTIATION
Nicolas X StensethJapanOnyama Limba PROPOSAL
Chavez C AmigonGermanyAsiya Javayant NEGOTIATION
Jones E FlosiGermanyAmy Elsner PROPOSAL
Claire W OstroskyFranceBernardo Dominic PROPOSAL
Jefferson C FigeroaJapanIvan Magalhaes QUALIFIED
Mujtaba T DilliardGermanyAsiya Javayant PROPOSAL
James H DoeJapanAmy Elsner QUALIFIED
Salvatore I IturbideIndiaElwin Sharvill QUALIFIED
Wickens K KolmetzAustraliaAnna Fali UNQUALIFIED
Johnson L BologniaIndiaIoni Bowcher QUALIFIED
Cody D GillianUnited KingdomElwin Sharvill NEGOTIATION
Aditya A MaletCanadaXuxue Feng NEGOTIATION
Salvatore E TollnerUnited KingdomElwin Sharvill NEW
Johnson D CampainAustraliaStephen Shaw RENEWAL
Salvatore Q MarrierRussiaIoni Bowcher RENEWAL
Costa U StensethFranceStephen Shaw QUALIFIED
Julie U MorascaUnited KingdomBernardo Dominic RENEWAL
Wickens H MaletJapanXuxue Feng RENEWAL
Darci A SlusarskiCanadaAnna Fali UNQUALIFIED
Maisha B CaldareraFranceBernardo Dominic QUALIFIED
Murillo B OstroskyItalyAsiya Javayant NEGOTIATION
Antonio S KolmetzIndiaStephen Shaw NEW
Adams A ButtJapanXuxue Feng NEW
Deepesh P AmigonBrazilBernardo Dominic PROPOSAL
Aika N GlickSpainElwin Sharvill NEW
Rodrigues F ChuiSpainStephen Shaw QUALIFIED
Darci Z MorascaRussiaIvan Magalhaes NEW
Aruna Y WhobreyUnited KingdomXuxue Feng 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>