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
Aditya X DoeGermanyBernardo Dominic QUALIFIED
Kadeem K FlosiSpainXuxue Feng QUALIFIED
Ricardo D AmigonItalyStephen Shaw UNQUALIFIED
Jones J BriddickUnited KingdomStephen Shaw RENEWAL
Ivar O FigeroaUnited KingdomIoni Bowcher RENEWAL
Leja W PerinCanadaOnyama Limba UNQUALIFIED
James B FerenczRussiaAmy Elsner UNQUALIFIED
Arvin B AlbaresJapanXuxue Feng PROPOSAL
Arvin F KolmetzArgentinaOnyama Limba RENEWAL
Octavia C RutaFranceXuxue Feng RENEWAL
Adams M FerenczIndiaOnyama Limba RENEWAL
Aditya E SlusarskiJapanIoni Bowcher RENEWAL
Darci U OstroskyBrazilXuxue Feng QUALIFIED
Leon P BowleyArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois K FollerSpainAsiya Javayant UNQUALIFIED
David A MorascaRussiaAnna Fali QUALIFIED
Aditya H BriddickFranceStephen Shaw PROPOSAL
Darci Y DarakjyCanadaStephen Shaw QUALIFIED
David Y RoysterIndiaOnyama Limba NEGOTIATION
Izzy O NickaJapanAsiya Javayant QUALIFIED
Juan U NickaIndiaIoni Bowcher RENEWAL
Salvatore X WhobreyRussiaElwin Sharvill NEW
Kadeem V MarrierBrazilOnyama Limba NEW
Mayumi P CaldareraBrazilOnyama Limba QUALIFIED
Wickens C CaudyIndiaStephen Shaw PROPOSAL
Mujtaba Q OstroskyFranceAnna Fali UNQUALIFIED
Clifford M WieserArgentinaAmy Elsner RENEWAL
Johnson O WhobreyIndiaBernardo Dominic PROPOSAL
Sinclair L GauchoUnited KingdomAnna Fali NEGOTIATION
Isabel R WhobreyArgentinaStephen Shaw QUALIFIED
Morrow M KuskoSpainXuxue Feng RENEWAL
Chavez G WieserFranceIvan Magalhaes RENEWAL
Adams X WieserAustraliaAsiya Javayant NEW
Octavia V OstroskyFranceIvan Magalhaes NEW
Mayumi D MorascaFranceStephen Shaw UNQUALIFIED
Maria J RoysterArgentinaAsiya Javayant RENEWAL
Jennifer A SchemmerRussiaBernardo Dominic RENEWAL
Leja B PoquetteGermanyAmy Elsner RENEWAL
Nicolas X PerinGermanyAsiya Javayant RENEWAL
Emily V GauchoGermanyAmy Elsner PROPOSAL
James Y DarakjyItalyIvan Magalhaes NEGOTIATION
Sinclair R MarrierAustraliaAmy Elsner NEGOTIATION
Francesco N WieserCanadaBernardo Dominic NEGOTIATION
Alejandro T MarrierRussiaOnyama Limba NEGOTIATION
Wickens V NestleSpainStephen Shaw QUALIFIED
Murillo A FlosiRussiaElwin Sharvill PROPOSAL
Jennifer J BowleyUnited KingdomAmy Elsner QUALIFIED
Wickens F FigeroaIndiaOnyama Limba NEGOTIATION
Wickens M BologniaJapanBernardo Dominic RENEWAL
Chavez G FollerAustraliaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aika O WieserCanadaOnyama Limba RENEWAL
Ashley C MarrierRussiaBernardo Dominic RENEWAL
Maisha R CaudyRussiaStephen Shaw PROPOSAL
Arvin U NestleUnited KingdomAmy Elsner RENEWAL
Smith W BowleyRussiaXuxue Feng QUALIFIED
Darci M KuskoCanadaAnna Fali UNQUALIFIED
Aruna M AlbaresArgentinaIoni Bowcher PROPOSAL
Francesco A PaprockiGermanyAmy Elsner RENEWAL
Silvio K PoquetteIndiaOnyama Limba NEGOTIATION
Salvatore R KolmetzArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo S NestleUnited Kingdom2026-07-31Dorl, James J Esq UNQUALIFIED82Bernardo Dominic
1001Aika M FlosiAustralia2026-07-15King, Christopher A Esq NEGOTIATION62Xuxue Feng
1002Jones Z OstroskyCanada2026-07-19Truhlar And Truhlar Attys PROPOSAL3Amy Elsner
1003Kaitlin V RimRussia2026-08-08Dorl, James J Esq PROPOSAL82Xuxue Feng
1004Munro A WieserBrazil2026-08-08Rangoni Of Florence QUALIFIED77Xuxue Feng
1005Alejandro M CaldareraItaly2026-08-03Dorl, James J Esq NEGOTIATION83Anna Fali
1006Ivar I GauchoUnited Kingdom2026-08-02Feltz Printing Service QUALIFIED24Xuxue Feng
1007Claire J VocelkaArgentina2026-07-11Chanay, Jeffrey A Esq PROPOSAL45Asiya Javayant
1008Jefferson Z CaudyJapan2026-07-24Rangoni Of Florence NEW98Stephen Shaw
1009Aika Q GillianBrazil2026-08-06Benton, John B Jr QUALIFIED37Ivan Magalhaes
1010Isabel J BologniaCanada2026-07-13Chapman, Ross E Esq NEW35Amy Elsner
1011Clifford R SchemmerRussia2026-07-24Commercial Press NEW4Onyama Limba
1012Kaitlin R KuskoGermany2026-08-08Chemel, James L Cpa NEGOTIATION94Onyama Limba
1013Juan N FigeroaAustralia2026-07-25Truhlar And Truhlar Attys UNQUALIFIED25Stephen Shaw
1014Emily Z VenereAustralia2026-08-01Morlong Associates UNQUALIFIED41Bernardo Dominic
1015Octavia C FerenczIndia2026-07-19Commercial Press UNQUALIFIED7Stephen Shaw
1016Jennifer K StensethSpain2026-08-09Dorl, James J Esq PROPOSAL37Asiya Javayant
1017Chavez Z GlickAustralia2026-07-19Chapman, Ross E Esq PROPOSAL57Asiya Javayant
1018Jeanfrancois B GlickJapan2026-07-17Rangoni Of Florence NEGOTIATION52Stephen Shaw
1019Maisha Z FlosiUnited Kingdom2026-07-16Commercial Press PROPOSAL54Bernardo Dominic
1020Morrow L AmigonFrance2026-08-07Dorl, James J Esq NEW40Elwin Sharvill
1021Juan X SaylorsGermany2026-07-29Morlong Associates NEW45Stephen Shaw
1022Murillo A GarufiCanada2026-07-13Chemel, James L Cpa NEW71Elwin Sharvill
1023Clifford Q FigeroaItaly2026-07-23Truhlar And Truhlar Attys RENEWAL52Bernardo Dominic
1024Kaitlin L BriddickRussia2026-07-17Rangoni Of Florence PROPOSAL11Asiya Javayant
1025Stacey H MacleadBrazil2026-07-29Morlong Associates RENEWAL92Amy Elsner
1026Leja F SaylorsBrazil2026-07-22Feiner Bros PROPOSAL46Ivan Magalhaes
1027Sinclair U VocelkaFrance2026-07-25Chapman, Ross E Esq NEGOTIATION0Bernardo Dominic
1028Maisha Z TollnerAustralia2026-07-13King, Christopher A Esq UNQUALIFIED28Anna Fali
1029Morrow T NickaAustralia2026-08-09Chemel, James L Cpa PROPOSAL25Ivan Magalhaes
1030Claire C BriddickIndia2026-07-11Feltz Printing Service QUALIFIED8Stephen Shaw
1031Aditya M SergiUnited Kingdom2026-07-26Chemel, James L Cpa PROPOSAL63Bernardo Dominic
1032Jeanfrancois F FerenczAustralia2026-07-17Printing Dimensions NEGOTIATION35Bernardo Dominic
1033Jones Y VenereBrazil2026-07-19Chemel, James L Cpa RENEWAL49Stephen Shaw
1034Greenwood V PaprockiArgentina2026-07-27Chanay, Jeffrey A Esq PROPOSAL96Elwin Sharvill
1035Mujtaba V OstroskyUnited Kingdom2026-07-30Feiner Bros UNQUALIFIED64Asiya Javayant
1036Chavez N MorascaUnited Kingdom2026-07-18Chemel, James L Cpa QUALIFIED39Anna Fali
1037Isabel U FlosiFrance2026-07-15Chapman, Ross E Esq QUALIFIED48Anna Fali
1038Kadeem S GillianArgentina2026-08-03Rousseaux, Michael Esq NEGOTIATION70Elwin Sharvill
1039Julie B BriddickFrance2026-07-30King, Christopher A Esq NEGOTIATION74Amy Elsner
1040Rodrigues J FollerAustralia2026-07-26Rangoni Of Florence UNQUALIFIED66Anna Fali
1041Emily X StockhamBrazil2026-07-22Dorl, James J Esq PROPOSAL75Asiya Javayant
1042Nicolas R CaldareraGermany2026-07-25Buckley Miller Wright PROPOSAL23Onyama Limba
1043Isabel V CaudyItaly2026-08-07Commercial Press RENEWAL21Ivan Magalhaes
1044Jennifer A AlbaresCanada2026-08-06Chemel, James L Cpa UNQUALIFIED16Asiya Javayant
1045Julie T StensethRussia2026-07-22Rangoni Of Florence QUALIFIED0Onyama Limba
1046Maisha C PoquetteJapan2026-07-22Rangoni Of Florence NEGOTIATION88Asiya Javayant
1047Kadeem O KuskoSpain2026-07-15King, Christopher A Esq RENEWAL20Xuxue Feng
1048Ivar H FerenczBrazil2026-07-27Chemel, James L Cpa RENEWAL24Asiya Javayant
1049Murillo M MacleadAustralia2026-07-22Rangoni Of Florence QUALIFIED4Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Francesco M RutaItalyAsiya Javayant NEGOTIATION
Stacey G MacleadJapanXuxue Feng QUALIFIED
Clifford F GarufiAustraliaIvan Magalhaes PROPOSAL
Munro Y ButtJapanStephen Shaw UNQUALIFIED
Jones V RimFranceAnna Fali NEGOTIATION
Emily W WieserJapanIvan Magalhaes UNQUALIFIED
Leon E ChuiRussiaAmy Elsner PROPOSAL
Kaitlin N GarufiItalyBernardo Dominic PROPOSAL
Claire Y NestleJapanElwin Sharvill QUALIFIED
Johnson Q ChuiItalyIoni Bowcher QUALIFIED
Arvin I DoeItalyElwin Sharvill QUALIFIED
Stacey G RulapaughAustraliaXuxue Feng NEGOTIATION
Arvin W BowleyItalyAnna Fali RENEWAL
David G OldroydIndiaOnyama Limba NEW
Nicolas T FlosiJapanElwin Sharvill NEW
Munro M SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Chavez I MaletUnited KingdomAsiya Javayant PROPOSAL
Juan E SergiBrazilXuxue Feng PROPOSAL
Claire Y FlosiBrazilAnna Fali PROPOSAL
Isabel A VenereGermanyBernardo Dominic PROPOSAL
Wickens V VocelkaIndiaStephen Shaw QUALIFIED
Faith O GauchoFranceIvan Magalhaes RENEWAL
Misaki K ButtAustraliaAsiya Javayant RENEWAL
Maria F BriddickSpainElwin Sharvill NEW
Deepesh K VenereItalyAsiya Javayant QUALIFIED
Cody G RimItalyIoni Bowcher PROPOSAL
Chavez F BologniaArgentinaOnyama Limba PROPOSAL
Misaki S SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Jennifer R FollerRussiaElwin Sharvill PROPOSAL
Sinclair L PoquetteArgentinaAmy Elsner QUALIFIED
Mayumi N ShinkoGermanyAsiya Javayant NEGOTIATION
Salvatore Y RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Salvatore S WhobreySpainAmy Elsner RENEWAL
Nicolas V SlusarskiFranceStephen Shaw NEGOTIATION
James Y ShinkoRussiaIoni Bowcher NEGOTIATION
Clifford X DilliardJapanAsiya Javayant PROPOSAL
James R OstroskyBrazilStephen Shaw RENEWAL
Misaki K FigeroaUnited KingdomAnna Fali RENEWAL
Darci G GlickFranceStephen Shaw NEGOTIATION
Munro S ShinkoFranceStephen Shaw QUALIFIED
Francesco Q RulapaughCanadaAsiya Javayant NEGOTIATION
David G GlickCanadaXuxue Feng PROPOSAL
Smith P DilliardIndiaIoni Bowcher NEW
Munro D RutaJapanIvan Magalhaes UNQUALIFIED
Murillo H SergiBrazilOnyama Limba UNQUALIFIED
Ricardo E NestleUnited KingdomStephen Shaw QUALIFIED
Faith G GauchoArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues E SlusarskiFranceOnyama Limba NEW
Murillo W FollerRussiaIoni Bowcher UNQUALIFIED
Octavia H FlosiIndiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Kadeem M Doe
Ivar L Flosi
Izzy W Stockham
Faith V Schemmer
Maisha A Foller
Nicolas K Whobrey
Nicolas H Flosi
Adams J Caudy
Cody Y Campain
Kaitlin A Whobrey
Rodrigues Z Foller
Arvin F Caudy
Leon Z Briddick
Costa M Waycott
Jefferson Y Marrier
Mujtaba Z Waycott
Aika W Foller
Isabel N Inouye
Leon B Schemmer
Mayumi G Kusko
Misaki Q Wieser
Darci S Albares
Jones Z Saylors
Antonio L Marrier
Kadeem K Stockham
Jennifer K Foller
Isabel M Doe
Claire I Royster
Sinclair V Ostrosky
Aditya F Waycott
Murillo H Marrier
Tony K Waycott
Chavez D Gaucho
Maria E Campain
Chavez E Flosi
Ivar J Whobrey
Jennifer W Nicka
David W Albares
Aruna T Kolmetz
Antonio W Caudy
Tony R Butt
Misaki Q Oldroyd
Morrow J Paprocki
Johnson S Stockham
Julie N Poquette
Leja C Caldarera
Johnson N Foller
Wickens Q Rulapaugh
James T Paprocki
Kaitlin C Caudy
IdCountryDate
1000Italy2026-08-03
1001United Kingdom2026-07-31
1002United Kingdom2026-08-02
1003Australia2026-07-17
1004Italy2026-08-07
1005France2026-07-31
1006Brazil2026-07-24
1007Spain2026-07-28
1008Japan2026-07-19
1009India2026-07-27
1010Brazil2026-07-15
1011Canada2026-07-21
1012Japan2026-07-23
1013Italy2026-08-07
1014Spain2026-08-07
1015Italy2026-07-13
1016Brazil2026-08-07
1017Japan2026-08-07
1018Brazil2026-07-25
1019France2026-07-13
1020Canada2026-07-14
1021Brazil2026-08-01
1022Spain2026-07-17
1023Brazil2026-07-26
1024Australia2026-07-26
1025Germany2026-07-22
1026Russia2026-07-31
1027Russia2026-07-25
1028Argentina2026-07-21
1029France2026-07-19
1030Australia2026-07-20
1031Italy2026-08-05
1032Brazil2026-07-23
1033Brazil2026-07-16
1034Argentina2026-07-13
1035Japan2026-07-17
1036Argentina2026-07-22
1037Spain2026-08-05
1038Australia2026-07-26
1039Japan2026-07-24
1040Italy2026-07-18
1041France2026-07-24
1042Italy2026-07-29
1043United Kingdom2026-07-11
1044France2026-08-07
1045Spain2026-07-11
1046United Kingdom2026-07-12
1047Argentina2026-07-21
1048Russia2026-07-19
1049Russia2026-07-15

On-Demand Data

NameIdCountryDate
Munro T Iturbide1000Italy2026-07-29
Nicolas C Slusarski1001Germany2026-07-13
Stacey G Shinko1002Japan2026-07-17
Alejandro N Oldroyd1003Germany2026-07-16
Deepesh D Dilliard1004Japan2026-07-11
Darci M Wieser1005Italy2026-07-17
Emily T Vocelka1006France2026-07-24
Rodrigues H Waycott1007India2026-08-07
Aika S Oldroyd1008India2026-08-02
Ricardo P Dilliard1009Canada2026-07-24
Salvatore Z Venere1010Germany2026-08-02
Smith B Slusarski1011France2026-07-30
Juan D Inouye1012United Kingdom2026-07-30
Chavez C Amigon1013India2026-07-19
Maisha E Gaucho1014Australia2026-07-18
Aditya U Briddick1015Spain2026-07-17
Wickens Y Flosi1016Japan2026-08-08
Nicolas H Kolmetz1017Australia2026-07-11
Leon L Venere1018France2026-08-08
Isabel G Shinko1019Germany2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar L MarrierSpainIoni Bowcher NEW
Sinclair T TollnerCanadaXuxue Feng NEW
Salvatore M StockhamAustraliaAnna Fali QUALIFIED
Costa G MarrierItalyIoni Bowcher NEGOTIATION
Chavez N FerenczIndiaIoni Bowcher UNQUALIFIED
Stacey W GillianGermanyIvan Magalhaes QUALIFIED
Stacey Q RimGermanyXuxue Feng QUALIFIED
Leon C PoquetteAustraliaAnna Fali QUALIFIED
Silvio L WhobreyUnited KingdomElwin Sharvill NEW
Isabel J GlickJapanAmy Elsner UNQUALIFIED
Octavia P ButtCanadaOnyama Limba PROPOSAL
Octavia R PaprockiBrazilBernardo Dominic RENEWAL
Maria M VenereSpainAmy Elsner UNQUALIFIED
Maria I MacleadCanadaStephen Shaw PROPOSAL
Antonio O TollnerRussiaIoni Bowcher PROPOSAL
Jeanfrancois O SaylorsCanadaOnyama Limba PROPOSAL
Salvatore W MaletJapanElwin Sharvill PROPOSAL
Arvin U PoquetteBrazilIoni Bowcher QUALIFIED
Greenwood O FollerAustraliaXuxue Feng PROPOSAL
Francesco V FigeroaBrazilBernardo Dominic QUALIFIED
Murillo N DoeSpainOnyama Limba UNQUALIFIED
Misaki Y GarufiCanadaAmy Elsner QUALIFIED
Adams S VenereAustraliaOnyama Limba NEGOTIATION
Smith O BriddickFranceOnyama Limba QUALIFIED
David A ChuiAustraliaAmy Elsner NEGOTIATION
Stacey M FlosiRussiaElwin Sharvill RENEWAL
Isabel Y SlusarskiAustraliaElwin Sharvill RENEWAL
Kadeem D ChuiItalyIvan Magalhaes NEW
David H PaprockiSpainAmy Elsner UNQUALIFIED
Jeanfrancois R DilliardRussiaOnyama Limba PROPOSAL
Sinclair T PerinArgentinaOnyama Limba PROPOSAL
Isabel M WhobreyCanadaAmy Elsner RENEWAL
Greenwood S GillianIndiaAnna Fali NEGOTIATION
Smith V FollerFranceBernardo Dominic RENEWAL
Ivar L BriddickCanadaBernardo Dominic NEGOTIATION
Murillo B ButtUnited KingdomStephen Shaw RENEWAL
Juan J FerenczItalyOnyama Limba RENEWAL
Murillo N IturbideCanadaBernardo Dominic UNQUALIFIED
Smith R BowleyIndiaXuxue Feng QUALIFIED
Maisha D NestleFranceBernardo Dominic 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>