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
Jones O AmigonArgentinaAsiya Javayant NEW
Aika B DoeRussiaAsiya Javayant QUALIFIED
Chavez L DoeJapanOnyama Limba PROPOSAL
Juan I RutaIndiaElwin Sharvill RENEWAL
Clifford Q MorascaGermanyXuxue Feng RENEWAL
Mayumi C WieserRussiaXuxue Feng QUALIFIED
Maisha F NestleJapanXuxue Feng QUALIFIED
Morrow R SergiGermanyStephen Shaw QUALIFIED
Cody N MaletJapanOnyama Limba QUALIFIED
Silvio E CampainAustraliaXuxue Feng PROPOSAL
Claire J WhobreyItalyXuxue Feng UNQUALIFIED
Costa D MarrierSpainOnyama Limba NEGOTIATION
Smith W DilliardSpainBernardo Dominic UNQUALIFIED
Munro M BologniaJapanStephen Shaw RENEWAL
Ricardo O GarufiRussiaXuxue Feng NEW
Stacey U MaletArgentinaIvan Magalhaes RENEWAL
Juan I BowleyArgentinaAnna Fali UNQUALIFIED
Antonio R RimItalyAmy Elsner UNQUALIFIED
Jennifer E ChuiAustraliaXuxue Feng NEW
Maria I CampainBrazilIoni Bowcher RENEWAL
Aditya K DoeGermanyAmy Elsner QUALIFIED
Mayumi U GarufiUnited KingdomXuxue Feng RENEWAL
Alejandro E GauchoRussiaXuxue Feng RENEWAL
Kadeem X WieserBrazilAmy Elsner UNQUALIFIED
Jefferson V MorascaRussiaStephen Shaw RENEWAL
Jones O BriddickRussiaIoni Bowcher RENEWAL
Jennifer G FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Julie Z FerenczSpainElwin Sharvill PROPOSAL
Juan F BowleyJapanAnna Fali RENEWAL
Antonio Q NestleIndiaAsiya Javayant UNQUALIFIED
Misaki Q WieserBrazilIoni Bowcher UNQUALIFIED
Maisha Y SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Jones J VenereCanadaElwin Sharvill RENEWAL
Isabel V GlickSpainIvan Magalhaes NEGOTIATION
David Z MaletIndiaXuxue Feng PROPOSAL
Murillo B ShinkoUnited KingdomAsiya Javayant NEW
Jennifer M AlbaresAustraliaStephen Shaw UNQUALIFIED
Aditya F MacleadCanadaElwin Sharvill UNQUALIFIED
Smith B SchemmerJapanElwin Sharvill NEW
Jeanfrancois J RimBrazilElwin Sharvill NEGOTIATION
Claire U ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem A FlosiBrazilOnyama Limba RENEWAL
Faith H GillianJapanStephen Shaw NEW
Deepesh P GarufiSpainElwin Sharvill RENEWAL
Izzy E CaudyItalyBernardo Dominic UNQUALIFIED
Aika R FlosiRussiaXuxue Feng PROPOSAL
Jeanfrancois S MacleadItalyAmy Elsner PROPOSAL
Deepesh V RutaAustraliaIoni Bowcher UNQUALIFIED
Kaitlin N MorascaSpainStephen Shaw PROPOSAL
Julie B NickaCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson L OstroskyJapanElwin Sharvill UNQUALIFIED
Nicolas U MacleadIndiaAmy Elsner PROPOSAL
Aditya X FlosiGermanyIvan Magalhaes RENEWAL
Rodrigues K KuskoUnited KingdomIoni Bowcher NEGOTIATION
Maisha P VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Claire O VenereItalyXuxue Feng PROPOSAL
Leon X WieserAustraliaOnyama Limba NEW
Darci A CaldareraUnited KingdomIoni Bowcher PROPOSAL
Adams B GlickIndiaIvan Magalhaes NEW
Smith G DarakjySpainAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Z DilliardGermany2026-06-09Printing Dimensions NEW77Amy Elsner
1001Ivar M OldroydBrazil2026-06-29Chapman, Ross E Esq UNQUALIFIED71Xuxue Feng
1002Mayumi S BriddickJapan2026-06-02Morlong Associates NEGOTIATION49Ioni Bowcher
1003Alejandro O FollerRussia2026-06-21Truhlar And Truhlar Attys NEGOTIATION40Xuxue Feng
1004Clifford K AlbaresAustralia2026-06-26Chemel, James L Cpa NEGOTIATION72Elwin Sharvill
1005Deepesh G SchemmerAustralia2026-06-21Chemel, James L Cpa NEW66Onyama Limba
1006Smith J FollerUnited Kingdom2026-06-11Chapman, Ross E Esq QUALIFIED37Asiya Javayant
1007Stacey D MorascaJapan2026-06-23Feltz Printing Service RENEWAL31Elwin Sharvill
1008Misaki G MorascaIndia2026-06-13Truhlar And Truhlar Attys NEGOTIATION73Onyama Limba
1009Sinclair T BologniaItaly2026-06-17Chanay, Jeffrey A Esq NEGOTIATION60Bernardo Dominic
1010Antonio A WieserUnited Kingdom2026-06-01Chapman, Ross E Esq PROPOSAL26Anna Fali
1011Sinclair O KuskoItaly2026-06-19Dorl, James J Esq RENEWAL56Bernardo Dominic
1012Juan C CaldareraUnited Kingdom2026-06-16Commercial Press UNQUALIFIED26Stephen Shaw
1013Clifford S IturbideAustralia2026-06-02Commercial Press QUALIFIED60Bernardo Dominic
1014Faith J VocelkaRussia2026-06-26Chapman, Ross E Esq RENEWAL59Ioni Bowcher
1015Alejandro L ButtCanada2026-06-24Commercial Press RENEWAL22Anna Fali
1016Arvin Y BowleyBrazil2026-06-06Benton, John B Jr NEW90Anna Fali
1017Maisha N CampainSpain2026-06-07Buckley Miller Wright UNQUALIFIED26Ivan Magalhaes
1018Jones Q KuskoAustralia2026-05-31Chemel, James L Cpa NEW85Xuxue Feng
1019Claire L PerinSpain2026-06-27Chemel, James L Cpa RENEWAL85Asiya Javayant
1020Mujtaba S PerinJapan2026-06-12Commercial Press PROPOSAL75Bernardo Dominic
1021Nicolas W SchemmerAustralia2026-06-10King, Christopher A Esq UNQUALIFIED44Amy Elsner
1022Ricardo O CaldareraCanada2026-06-06Buckley Miller Wright NEGOTIATION46Onyama Limba
1023Munro D OldroydFrance2026-05-31Truhlar And Truhlar Attys NEGOTIATION66Amy Elsner
1024Wickens Y AmigonArgentina2026-06-25Chemel, James L Cpa NEGOTIATION60Stephen Shaw
1025Alejandro U FerenczJapan2026-06-24Chanay, Jeffrey A Esq PROPOSAL85Ioni Bowcher
1026Emily Y AlbaresArgentina2026-06-22Rangoni Of Florence UNQUALIFIED61Ioni Bowcher
1027Aika A GillianItaly2026-06-13Chanay, Jeffrey A Esq NEGOTIATION94Ioni Bowcher
1028Ashley J GarufiAustralia2026-06-08Rangoni Of Florence PROPOSAL70Ioni Bowcher
1029Jefferson X RulapaughUnited Kingdom2026-06-20Chanay, Jeffrey A Esq NEW94Bernardo Dominic
1030Leon X ShinkoUnited Kingdom2026-06-17Rousseaux, Michael Esq UNQUALIFIED96Ioni Bowcher
1031Antonio R SergiIndia2026-06-11Chemel, James L Cpa RENEWAL14Stephen Shaw
1032Ashley F CampainUnited Kingdom2026-06-13Commercial Press PROPOSAL98Asiya Javayant
1033Clifford I MarrierItaly2026-06-28Truhlar And Truhlar Attys PROPOSAL97Anna Fali
1034Smith G SlusarskiCanada2026-06-28Truhlar And Truhlar Attys PROPOSAL19Anna Fali
1035Adams N KuskoIndia2026-06-11Benton, John B Jr RENEWAL67Bernardo Dominic
1036Johnson C ButtBrazil2026-06-02Chemel, James L Cpa QUALIFIED43Anna Fali
1037David A AmigonIndia2026-06-03Commercial Press QUALIFIED28Amy Elsner
1038Stacey C CaldareraIndia2026-06-16Rangoni Of Florence QUALIFIED12Xuxue Feng
1039Clifford S OldroydJapan2026-06-18Benton, John B Jr UNQUALIFIED33Ioni Bowcher
1040Faith W PoquetteBrazil2026-06-04Benton, John B Jr RENEWAL81Xuxue Feng
1041Kadeem T SergiUnited Kingdom2026-05-31Chemel, James L Cpa NEGOTIATION28Anna Fali
1042Costa O DarakjyJapan2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED90Xuxue Feng
1043Maria E NickaCanada2026-06-22Truhlar And Truhlar Attys PROPOSAL67Ivan Magalhaes
1044Izzy F TollnerUnited Kingdom2026-06-09Rangoni Of Florence RENEWAL80Bernardo Dominic
1045Maria M RimBrazil2026-06-27Buckley Miller Wright PROPOSAL30Amy Elsner
1046Izzy U InouyeRussia2026-06-12Commercial Press NEGOTIATION38Xuxue Feng
1047Octavia O FlosiUnited Kingdom2026-05-31Feltz Printing Service NEW66Bernardo Dominic
1048Alejandro H GauchoItaly2026-06-10Feiner Bros UNQUALIFIED3Anna Fali
1049Cody Y DarakjyJapan2026-06-24Rangoni Of Florence QUALIFIED2Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues W BologniaJapanAsiya Javayant UNQUALIFIED
Sinclair C FollerCanadaOnyama Limba RENEWAL
Emily Y ShinkoGermanyIvan Magalhaes NEGOTIATION
Morrow N IturbideUnited KingdomIoni Bowcher NEW
Leon H VenereBrazilBernardo Dominic RENEWAL
Clifford Y WieserItalyIvan Magalhaes PROPOSAL
Julie I ShinkoCanadaXuxue Feng PROPOSAL
Jeanfrancois U VenereFranceBernardo Dominic QUALIFIED
Mayumi E MarrierArgentinaElwin Sharvill PROPOSAL
Kaitlin S FigeroaSpainAmy Elsner UNQUALIFIED
Kadeem O PoquetteItalyAmy Elsner NEGOTIATION
Greenwood Y MacleadJapanAsiya Javayant NEW
Francesco L FollerSpainElwin Sharvill PROPOSAL
Murillo M MacleadCanadaAnna Fali UNQUALIFIED
Wickens E VenereFranceAmy Elsner NEW
Aruna S NestleItalyStephen Shaw PROPOSAL
Rodrigues M TollnerSpainAsiya Javayant NEGOTIATION
Deepesh R RutaCanadaXuxue Feng QUALIFIED
Maria G InouyeGermanyOnyama Limba QUALIFIED
Arvin H SaylorsRussiaIvan Magalhaes NEW
Misaki H PerinCanadaOnyama Limba NEGOTIATION
Alejandro E RulapaughIndiaStephen Shaw UNQUALIFIED
Leon P ButtIndiaAsiya Javayant PROPOSAL
Ricardo H BowleyItalyOnyama Limba UNQUALIFIED
Smith N FerenczGermanyElwin Sharvill NEGOTIATION
Tony Y IturbideArgentinaOnyama Limba RENEWAL
Stacey O StockhamUnited KingdomElwin Sharvill PROPOSAL
David F RimAustraliaStephen Shaw NEGOTIATION
Murillo B ShinkoCanadaBernardo Dominic QUALIFIED
Darci V DoeRussiaIvan Magalhaes QUALIFIED
Smith W WieserSpainIoni Bowcher UNQUALIFIED
Murillo B ButtJapanBernardo Dominic PROPOSAL
Aruna B CaudyFranceIoni Bowcher NEGOTIATION
Maria T MorascaBrazilXuxue Feng QUALIFIED
Francesco Z GauchoFranceOnyama Limba NEGOTIATION
Jefferson A VenereSpainAmy Elsner NEW
Nicolas D AmigonJapanAmy Elsner NEGOTIATION
Leon B DoeRussiaStephen Shaw QUALIFIED
Rodrigues Z WieserIndiaAsiya Javayant PROPOSAL
Alejandro P SchemmerAustraliaXuxue Feng RENEWAL
Wickens K FigeroaIndiaAsiya Javayant RENEWAL
Nicolas S RimAustraliaElwin Sharvill NEGOTIATION
Maisha W BologniaUnited KingdomBernardo Dominic UNQUALIFIED
Jones X CaldareraJapanIoni Bowcher PROPOSAL
Ricardo E StensethBrazilBernardo Dominic UNQUALIFIED
Maisha S WhobreyItalyXuxue Feng PROPOSAL
Murillo Z GlickJapanIoni Bowcher QUALIFIED
Jennifer L VocelkaGermanyIvan Magalhaes UNQUALIFIED
Izzy W MarrierCanadaAnna Fali RENEWAL
Morrow M StensethAustraliaXuxue Feng NEGOTIATION
Frozen Columns
Name
Emily H Saylors
Wickens H Marrier
Tony V Butt
Antonio T Vocelka
Maria Q Ruta
Leon S Vocelka
Ashley H Nicka
Antonio V Venere
Izzy Y Briddick
Greenwood Z Nicka
Isabel U Bolognia
Greenwood U Royster
Octavia X Ostrosky
Jeanfrancois H Waycott
Ashley P Kolmetz
Maria E Caldarera
Rodrigues T Stockham
Mujtaba H Marrier
Emily U Gaucho
Emily H Venere
Silvio Y Doe
Octavia J Shinko
Johnson V Stockham
Cody W Dilliard
Arvin L Butt
Kaitlin E Kusko
David B Ostrosky
Claire M Schemmer
Ivar B Figeroa
Deepesh H Wieser
Jones U Vocelka
Ashley K Vocelka
Nicolas E Rim
Silvio D Nestle
Clifford N Ferencz
Silvio O Royster
Maisha Z Marrier
James Q Maclead
Murillo B Iturbide
Johnson I Briddick
Salvatore A Slusarski
Chavez A Albares
Tony A Ferencz
Morrow F Caldarera
Antonio L Poquette
Ivar P Glick
Sinclair E Doe
Arvin C Glick
Rodrigues X Malet
Morrow J Flosi
IdCountryDate
1000Germany2026-06-17
1001Canada2026-06-23
1002Argentina2026-06-17
1003United Kingdom2026-06-29
1004Canada2026-06-23
1005Brazil2026-06-19
1006India2026-06-13
1007Argentina2026-06-01
1008Italy2026-06-23
1009Canada2026-06-25
1010Brazil2026-06-14
1011United Kingdom2026-06-27
1012Japan2026-06-13
1013Spain2026-06-17
1014Italy2026-06-21
1015Japan2026-06-29
1016India2026-06-14
1017India2026-06-23
1018Spain2026-06-19
1019Spain2026-06-16
1020Italy2026-06-02
1021Japan2026-06-09
1022Spain2026-06-21
1023Argentina2026-06-16
1024Canada2026-06-17
1025Spain2026-05-31
1026Spain2026-06-19
1027United Kingdom2026-06-25
1028Australia2026-06-17
1029Spain2026-06-26
1030India2026-06-23
1031Italy2026-06-23
1032Canada2026-06-22
1033Italy2026-06-15
1034France2026-06-12
1035India2026-06-29
1036United Kingdom2026-06-22
1037United Kingdom2026-06-08
1038Spain2026-06-04
1039Brazil2026-06-10
1040Germany2026-06-27
1041Spain2026-06-11
1042Japan2026-06-12
1043Brazil2026-06-07
1044Spain2026-06-21
1045Italy2026-06-28
1046Spain2026-06-14
1047Argentina2026-06-18
1048United Kingdom2026-06-22
1049India2026-06-17

On-Demand Data

NameIdCountryDate
Octavia G Slusarski1000Argentina2026-06-09
Morrow N Bowley1001United Kingdom2026-06-22
Izzy X Nicka1002Spain2026-06-01
Octavia V Glick1003Brazil2026-06-11
Aditya J Vocelka1004Russia2026-06-15
Maisha H Bowley1005Argentina2026-06-05
James N Briddick1006India2026-05-31
Emily W Perin1007Italy2026-06-06
Leon M Bowley1008Argentina2026-06-28
Faith H Ostrosky1009Spain2026-06-25
Antonio F Paprocki1010Germany2026-06-17
Juan S Whobrey1011India2026-06-23
Claire F Flosi1012France2026-06-18
Jefferson W Wieser1013Brazil2026-06-29
Munro T Venere1014India2026-06-21
Misaki I Royster1015United Kingdom2026-06-23
Clifford W Inouye1016Russia2026-06-18
Darci R Campain1017France2026-06-25
Kaitlin Z Wieser1018India2026-06-19
Chavez X Sergi1019Germany2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson U MorascaGermanyBernardo Dominic NEGOTIATION
Tony F WaycottUnited KingdomXuxue Feng RENEWAL
Kaitlin M StensethAustraliaAnna Fali RENEWAL
Adams V NickaRussiaAmy Elsner NEW
Jefferson B SergiSpainIvan Magalhaes NEW
Sinclair N CampainIndiaAsiya Javayant PROPOSAL
Jefferson G DilliardAustraliaAmy Elsner UNQUALIFIED
Julie R CaudyFranceStephen Shaw RENEWAL
Jefferson Q StockhamUnited KingdomOnyama Limba NEW
Maisha J ButtRussiaOnyama Limba RENEWAL
Maria Y VocelkaItalyAmy Elsner NEGOTIATION
Ashley B KolmetzCanadaElwin Sharvill QUALIFIED
Emily X AmigonArgentinaBernardo Dominic QUALIFIED
Emily T WhobreyJapanIoni Bowcher PROPOSAL
Maisha V BowleyItalyElwin Sharvill NEGOTIATION
Murillo H IturbideItalyAmy Elsner NEGOTIATION
Alejandro A MarrierCanadaXuxue Feng NEGOTIATION
Misaki Q MacleadJapanElwin Sharvill NEW
Aruna P KuskoGermanyElwin Sharvill UNQUALIFIED
Nicolas H GlickGermanyXuxue Feng PROPOSAL
David P VenereItalyAnna Fali QUALIFIED
Maria S ChuiSpainIvan Magalhaes NEW
Antonio G GarufiBrazilStephen Shaw QUALIFIED
Kadeem O InouyeRussiaStephen Shaw RENEWAL
Arvin U SchemmerIndiaAsiya Javayant NEGOTIATION
Adams E RulapaughCanadaAsiya Javayant PROPOSAL
Faith N RutaItalyStephen Shaw PROPOSAL
Jennifer X DilliardBrazilAmy Elsner NEW
Aruna S WieserAustraliaStephen Shaw QUALIFIED
Leja G SlusarskiAustraliaAmy Elsner RENEWAL
Juan J SlusarskiBrazilOnyama Limba QUALIFIED
Maria Q MarrierCanadaIvan Magalhaes PROPOSAL
Clifford W PerinGermanyAnna Fali UNQUALIFIED
Ashley E ChuiSpainAnna Fali UNQUALIFIED
Octavia T DarakjyGermanyStephen Shaw QUALIFIED
Emily F StockhamRussiaAnna Fali RENEWAL
Ashley D WaycottFranceIvan Magalhaes RENEWAL
Morrow W BowleyArgentinaElwin Sharvill NEGOTIATION
Aika W WieserFranceIvan Magalhaes RENEWAL
Kadeem P WhobreyItalyXuxue Feng QUALIFIED

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