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
Murillo D WieserGermanyXuxue Feng QUALIFIED
Izzy O RutaArgentinaAmy Elsner PROPOSAL
Maria C SaylorsAustraliaAnna Fali PROPOSAL
David I MaletBrazilBernardo Dominic NEW
Aruna W NestleJapanOnyama Limba PROPOSAL
Misaki K DilliardCanadaBernardo Dominic NEW
Octavia L RutaBrazilAmy Elsner UNQUALIFIED
Misaki B FollerItalyElwin Sharvill RENEWAL
Leon J DilliardUnited KingdomAmy Elsner QUALIFIED
Sinclair I CaudySpainStephen Shaw NEGOTIATION
Maisha F WieserFranceIvan Magalhaes RENEWAL
Francesco U RutaSpainBernardo Dominic UNQUALIFIED
Ricardo T KuskoArgentinaIvan Magalhaes UNQUALIFIED
Maisha Y AmigonFranceIvan Magalhaes NEGOTIATION
Clifford X WaycottCanadaBernardo Dominic PROPOSAL
Mujtaba B GarufiBrazilAnna Fali PROPOSAL
Aika O FigeroaItalyOnyama Limba RENEWAL
Greenwood H GlickGermanyAsiya Javayant NEGOTIATION
Clifford O ButtSpainAnna Fali NEGOTIATION
Maria S KuskoSpainIvan Magalhaes PROPOSAL
Cody B CaldareraGermanyOnyama Limba NEW
Kadeem X MorascaIndiaXuxue Feng RENEWAL
Maria V DarakjyUnited KingdomBernardo Dominic PROPOSAL
Maria I ChuiBrazilXuxue Feng RENEWAL
Jefferson W DilliardUnited KingdomXuxue Feng NEGOTIATION
Murillo E PoquetteIndiaAsiya Javayant UNQUALIFIED
Misaki W BowleyRussiaXuxue Feng NEW
Smith T PoquetteJapanAnna Fali UNQUALIFIED
Jennifer Y RulapaughRussiaXuxue Feng QUALIFIED
Sinclair S MacleadSpainAsiya Javayant RENEWAL
Morrow K CampainFranceAmy Elsner RENEWAL
Arvin R NickaItalyBernardo Dominic NEW
David K PoquetteCanadaIoni Bowcher PROPOSAL
Faith L WieserItalyXuxue Feng NEW
Leon S CaldareraSpainAmy Elsner UNQUALIFIED
Isabel N CaudyBrazilXuxue Feng NEGOTIATION
Aruna A BologniaSpainIvan Magalhaes PROPOSAL
Aika U MaletItalyIvan Magalhaes QUALIFIED
Silvio J FlosiGermanyXuxue Feng RENEWAL
Darci I AlbaresFranceStephen Shaw RENEWAL
Tony W OldroydSpainAnna Fali RENEWAL
Darci T RoysterAustraliaIvan Magalhaes NEW
James V GauchoFranceAmy Elsner RENEWAL
Adams T MorascaIndiaAnna Fali UNQUALIFIED
Maisha O KolmetzGermanyElwin Sharvill QUALIFIED
Maria A MaletItalyXuxue Feng NEGOTIATION
Octavia D VocelkaAustraliaXuxue Feng RENEWAL
Claire M SlusarskiJapanAnna Fali PROPOSAL
James Q MacleadAustraliaStephen Shaw PROPOSAL
Johnson E DarakjyArgentinaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin V DilliardIndiaBernardo Dominic NEGOTIATION
Maisha H MorascaAustraliaIoni Bowcher QUALIFIED
Murillo T BologniaIndiaXuxue Feng PROPOSAL
Misaki R NestleSpainAsiya Javayant NEW
Darci E TollnerAustraliaElwin Sharvill RENEWAL
Stacey N InouyeFranceElwin Sharvill PROPOSAL
Ricardo B RutaSpainXuxue Feng RENEWAL
David D GillianGermanyOnyama Limba RENEWAL
Octavia F InouyeJapanAnna Fali QUALIFIED
Darci V InouyeItalyAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin V GillianCanada2026-06-12Chanay, Jeffrey A Esq RENEWAL71Anna Fali
1001Emily B BriddickRussia2026-06-24Chapman, Ross E Esq QUALIFIED89Stephen Shaw
1002Julie R RoysterAustralia2026-06-22Rangoni Of Florence NEGOTIATION18Ivan Magalhaes
1003Mayumi Z CaldareraIndia2026-06-25Chemel, James L Cpa PROPOSAL90Asiya Javayant
1004Kadeem Q FlosiItaly2026-06-09Dorl, James J Esq NEW69Anna Fali
1005Aruna J FerenczIndia2026-06-13Dorl, James J Esq NEGOTIATION18Amy Elsner
1006Nicolas A CampainAustralia2026-07-03Chapman, Ross E Esq NEGOTIATION43Amy Elsner
1007Mujtaba P GarufiSpain2026-06-22Commercial Press QUALIFIED30Asiya Javayant
1008Claire U MarrierJapan2026-06-27Chanay, Jeffrey A Esq QUALIFIED60Bernardo Dominic
1009Tony N NestleUnited Kingdom2026-07-01Chanay, Jeffrey A Esq PROPOSAL27Elwin Sharvill
1010Francesco R ButtUnited Kingdom2026-06-14Truhlar And Truhlar Attys NEW46Amy Elsner
1011Octavia R CampainItaly2026-06-12Dorl, James J Esq UNQUALIFIED94Ioni Bowcher
1012Ricardo V ChuiBrazil2026-06-21Feiner Bros NEGOTIATION44Bernardo Dominic
1013Arvin V VocelkaIndia2026-06-06Benton, John B Jr PROPOSAL25Onyama Limba
1014Chavez V WieserUnited Kingdom2026-06-04Feiner Bros PROPOSAL58Elwin Sharvill
1015Salvatore R StockhamRussia2026-06-09King, Christopher A Esq NEGOTIATION55Ioni Bowcher
1016Alejandro J GauchoCanada2026-06-05Chanay, Jeffrey A Esq UNQUALIFIED41Amy Elsner
1017Mujtaba S WhobreyBrazil2026-07-01Commercial Press PROPOSAL60Ioni Bowcher
1018Johnson M DarakjyCanada2026-06-26Commercial Press NEGOTIATION82Asiya Javayant
1019Alejandro F DilliardGermany2026-06-04Printing Dimensions NEGOTIATION67Xuxue Feng
1020Faith E WaycottItaly2026-06-04Rousseaux, Michael Esq NEW2Stephen Shaw
1021Octavia K OstroskyIndia2026-06-19Chanay, Jeffrey A Esq RENEWAL16Bernardo Dominic
1022Leja X RoysterItaly2026-06-22Chemel, James L Cpa NEGOTIATION24Elwin Sharvill
1023Stacey V KolmetzRussia2026-06-20Chapman, Ross E Esq PROPOSAL9Stephen Shaw
1024Adams T SchemmerArgentina2026-07-03Commercial Press RENEWAL1Bernardo Dominic
1025Sinclair O MorascaArgentina2026-07-03Buckley Miller Wright NEW98Stephen Shaw
1026Jefferson Z FlosiBrazil2026-06-15King, Christopher A Esq QUALIFIED77Stephen Shaw
1027Maisha S GarufiJapan2026-06-04Dorl, James J Esq PROPOSAL20Anna Fali
1028Ivar O GillianJapan2026-06-14Rangoni Of Florence PROPOSAL14Anna Fali
1029Johnson K AlbaresJapan2026-06-19Chanay, Jeffrey A Esq RENEWAL12Amy Elsner
1030Izzy F RutaJapan2026-06-04Commercial Press PROPOSAL13Xuxue Feng
1031Juan K PoquetteItaly2026-06-27King, Christopher A Esq NEGOTIATION33Ioni Bowcher
1032Jones M RimUnited Kingdom2026-06-23Rangoni Of Florence NEW77Stephen Shaw
1033Kadeem I IturbideItaly2026-06-08Feiner Bros RENEWAL15Stephen Shaw
1034Antonio M MarrierJapan2026-06-17Printing Dimensions NEGOTIATION44Asiya Javayant
1035Isabel U BriddickBrazil2026-07-01Chapman, Ross E Esq NEGOTIATION87Amy Elsner
1036Greenwood N GarufiSpain2026-06-04Chemel, James L Cpa UNQUALIFIED36Onyama Limba
1037Isabel J KolmetzRussia2026-06-13Dorl, James J Esq NEGOTIATION62Ivan Magalhaes
1038Misaki V DoeGermany2026-06-24Chanay, Jeffrey A Esq NEGOTIATION53Anna Fali
1039Cody S NickaIndia2026-06-07Dorl, James J Esq NEW31Elwin Sharvill
1040Isabel U RulapaughRussia2026-06-09Rousseaux, Michael Esq UNQUALIFIED49Stephen Shaw
1041Jeanfrancois H MorascaJapan2026-07-01Commercial Press PROPOSAL62Anna Fali
1042Darci B RoysterGermany2026-07-02Rangoni Of Florence UNQUALIFIED21Ivan Magalhaes
1043Wickens O StockhamCanada2026-06-16Buckley Miller Wright UNQUALIFIED69Stephen Shaw
1044Aika L DilliardAustralia2026-06-22Morlong Associates QUALIFIED19Xuxue Feng
1045Antonio M DoeBrazil2026-06-14King, Christopher A Esq RENEWAL13Ivan Magalhaes
1046Aika G FlosiIndia2026-06-25Truhlar And Truhlar Attys RENEWAL73Xuxue Feng
1047Ricardo N DilliardFrance2026-06-04Dorl, James J Esq PROPOSAL46Amy Elsner
1048Rodrigues M ShinkoCanada2026-07-02King, Christopher A Esq RENEWAL76Bernardo Dominic
1049Ashley V MarrierBrazil2026-06-14Rangoni Of Florence RENEWAL28Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo D VocelkaBrazilIvan Magalhaes UNQUALIFIED
Maria Z MaletFranceXuxue Feng NEW
Munro I BowleyFranceAmy Elsner UNQUALIFIED
Alejandro T FerenczJapanStephen Shaw UNQUALIFIED
Emily U CampainItalyAmy Elsner NEGOTIATION
Maisha N OstroskyCanadaOnyama Limba QUALIFIED
Mayumi Z MacleadSpainIoni Bowcher RENEWAL
Alejandro R CaudyRussiaIoni Bowcher NEGOTIATION
Chavez X SergiJapanStephen Shaw QUALIFIED
Silvio Q DoeSpainElwin Sharvill NEW
Leon M VocelkaFranceElwin Sharvill PROPOSAL
Morrow Q DilliardUnited KingdomAnna Fali PROPOSAL
Cody W BologniaJapanBernardo Dominic PROPOSAL
Ivar I MorascaSpainAsiya Javayant NEGOTIATION
Jennifer T RimGermanyElwin Sharvill UNQUALIFIED
Ivar L FollerBrazilBernardo Dominic RENEWAL
Sinclair V IturbideIndiaAsiya Javayant PROPOSAL
Misaki L SchemmerFranceOnyama Limba NEGOTIATION
Smith D SergiCanadaAsiya Javayant RENEWAL
Morrow E GillianJapanAnna Fali PROPOSAL
Aruna S SchemmerJapanBernardo Dominic RENEWAL
Julie U FerenczArgentinaBernardo Dominic PROPOSAL
Smith O GillianAustraliaAmy Elsner RENEWAL
Alejandro O WieserGermanyIvan Magalhaes NEGOTIATION
Costa Y ButtAustraliaAnna Fali NEW
Francesco N DarakjyCanadaStephen Shaw NEW
Munro D MacleadJapanIvan Magalhaes NEGOTIATION
Munro L FollerUnited KingdomBernardo Dominic NEGOTIATION
Maria V VenereBrazilElwin Sharvill NEW
Jeanfrancois N BowleyItalyIoni Bowcher UNQUALIFIED
Leja D WhobreyIndiaIoni Bowcher RENEWAL
Kadeem Z CaudyFranceBernardo Dominic QUALIFIED
Antonio W FlosiIndiaBernardo Dominic PROPOSAL
Deepesh D DilliardGermanyBernardo Dominic NEW
Isabel E GlickIndiaAnna Fali QUALIFIED
Arvin V InouyeAustraliaIvan Magalhaes NEW
Kadeem B MorascaBrazilIoni Bowcher QUALIFIED
Silvio U IturbideGermanyIvan Magalhaes NEW
Ashley V WieserFranceBernardo Dominic RENEWAL
Mujtaba G MaletAustraliaElwin Sharvill PROPOSAL
Jennifer P OldroydBrazilAsiya Javayant RENEWAL
Aika L SaylorsIndiaBernardo Dominic RENEWAL
Mayumi G KuskoGermanyIoni Bowcher UNQUALIFIED
Juan K WhobreySpainAnna Fali NEW
Chavez V SaylorsBrazilOnyama Limba PROPOSAL
Octavia C SlusarskiGermanyIoni Bowcher NEGOTIATION
Alejandro A MaletGermanyIoni Bowcher QUALIFIED
Claire A MaletUnited KingdomBernardo Dominic PROPOSAL
Kaitlin I OldroydAustraliaAsiya Javayant UNQUALIFIED
Mayumi U MacleadGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Smith B Saylors
Octavia P Whobrey
Deepesh V Briddick
Nicolas P Sergi
Leja Z Waycott
Ivar H Stockham
Smith M Inouye
Faith D Paprocki
Kadeem H Garufi
Chavez C Tollner
Darci Y Foller
Cody J Inouye
Greenwood Y Darakjy
Darci U Rulapaugh
Nicolas J Stenseth
Adams Z Gillian
Octavia H Stenseth
Adams O Darakjy
Faith W Shinko
Arvin N Sergi
Alejandro G Ferencz
Deepesh Z Malet
Johnson E Chui
Sinclair H Marrier
Morrow V Paprocki
Nicolas W Rim
Cody X Nicka
Leja H Flosi
Aika J Amigon
Isabel V Malet
Jefferson C Malet
Arvin R Royster
Octavia I Venere
Julie V Malet
Alejandro I Malet
Arvin S Flosi
Silvio G Doe
Ashley P Caudy
Jones F Nicka
Rodrigues Z Schemmer
Kaitlin V Briddick
Greenwood A Garufi
Mujtaba S Saylors
Isabel J Perin
Greenwood P Poquette
James A Paprocki
Jeanfrancois Z Caldarera
Tony A Kolmetz
Claire V Flosi
Alejandro S Venere
IdCountryDate
1000India2026-06-23
1001Canada2026-06-11
1002Canada2026-07-02
1003Russia2026-06-07
1004Spain2026-06-20
1005Spain2026-06-29
1006France2026-06-28
1007Italy2026-06-17
1008Italy2026-06-18
1009Argentina2026-06-21
1010Australia2026-06-21
1011Japan2026-06-24
1012United Kingdom2026-06-15
1013Spain2026-06-09
1014Brazil2026-07-03
1015Russia2026-06-29
1016India2026-06-18
1017Australia2026-06-12
1018Russia2026-06-22
1019Russia2026-06-06
1020Russia2026-06-08
1021United Kingdom2026-06-10
1022Italy2026-06-29
1023Italy2026-06-04
1024Australia2026-06-27
1025Brazil2026-07-03
1026Brazil2026-06-20
1027Russia2026-06-14
1028Spain2026-06-10
1029Spain2026-06-09
1030Brazil2026-06-15
1031France2026-06-19
1032Brazil2026-06-05
1033Canada2026-06-20
1034Spain2026-06-05
1035United Kingdom2026-06-15
1036Japan2026-06-07
1037United Kingdom2026-06-07
1038Japan2026-06-14
1039Brazil2026-06-27
1040Germany2026-06-23
1041Brazil2026-06-11
1042Canada2026-06-22
1043Japan2026-06-25
1044Argentina2026-06-23
1045Germany2026-06-29
1046Russia2026-06-08
1047Argentina2026-06-25
1048Russia2026-06-10
1049Australia2026-06-22

On-Demand Data

NameIdCountryDate
Silvio F Paprocki1000Germany2026-06-20
Francesco W Venere1001Japan2026-06-20
Kaitlin L Gaucho1002Argentina2026-06-26
Darci S Foller1003Japan2026-06-07
Murillo J Waycott1004Italy2026-06-06
Cody F Doe1005Japan2026-06-07
Aditya D Slusarski1006Argentina2026-06-12
Francesco A Rim1007France2026-06-15
Nicolas X Doe1008Japan2026-06-16
Maria N Glick1009Japan2026-06-29
Nicolas D Iturbide1010France2026-06-25
David D Foller1011Germany2026-06-17
Mujtaba N Nicka1012Spain2026-07-03
Rodrigues B Maclead1013Russia2026-06-13
Rodrigues P Saylors1014Canada2026-06-11
Stacey U Royster1015Italy2026-06-13
Ricardo X Dilliard1016Spain2026-06-20
Jones Z Bolognia1017Argentina2026-06-10
Costa G Venere1018Spain2026-06-04
Antonio W Campain1019Germany2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas Y MaletUnited KingdomAmy Elsner RENEWAL
Arvin B MarrierSpainOnyama Limba NEGOTIATION
Izzy G FerenczSpainElwin Sharvill NEGOTIATION
Ivar C StensethGermanyStephen Shaw NEW
Arvin E RutaFranceIoni Bowcher NEW
Costa T PoquetteFranceAmy Elsner QUALIFIED
Kadeem X FollerGermanyAnna Fali NEGOTIATION
Ashley O FollerRussiaAsiya Javayant UNQUALIFIED
Arvin X NestleJapanIoni Bowcher PROPOSAL
Jefferson H ChuiAustraliaIvan Magalhaes UNQUALIFIED
Leja X OldroydBrazilAsiya Javayant PROPOSAL
Ivar V FollerJapanBernardo Dominic QUALIFIED
Darci Y WaycottGermanyAmy Elsner RENEWAL
Salvatore O PaprockiAustraliaStephen Shaw NEW
Darci P RimSpainAnna Fali PROPOSAL
James E OstroskyFranceAsiya Javayant RENEWAL
Jennifer N MaletAustraliaElwin Sharvill NEGOTIATION
Antonio Q GillianJapanAnna Fali NEGOTIATION
Tony J StensethRussiaXuxue Feng PROPOSAL
Antonio U AlbaresRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois L BriddickBrazilAmy Elsner UNQUALIFIED
Faith P DoeBrazilXuxue Feng QUALIFIED
Isabel P RutaArgentinaBernardo Dominic RENEWAL
Aruna D MaletCanadaAnna Fali RENEWAL
Costa N StockhamUnited KingdomElwin Sharvill QUALIFIED
Misaki Z FollerIndiaXuxue Feng NEW
Ashley I GarufiGermanyAnna Fali NEW
Stacey Q TollnerCanadaOnyama Limba NEGOTIATION
Darci D VocelkaAustraliaBernardo Dominic UNQUALIFIED
Ricardo C MorascaArgentinaXuxue Feng PROPOSAL
Kadeem G SlusarskiItalyXuxue Feng QUALIFIED
Antonio B ButtItalyXuxue Feng PROPOSAL
Faith Z StockhamFranceAnna Fali NEW
James E CaldareraSpainAsiya Javayant UNQUALIFIED
Juan M MaletArgentinaAnna Fali NEGOTIATION
Leon X RulapaughGermanyIvan Magalhaes RENEWAL
Juan W PaprockiIndiaIvan Magalhaes RENEWAL
David P StockhamCanadaElwin Sharvill NEGOTIATION
Aditya Y ButtArgentinaElwin Sharvill NEW
Adams C MarrierFranceBernardo Dominic 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>