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
Julie F MacleadBrazilAnna Fali NEW
Sinclair I GillianUnited KingdomStephen Shaw UNQUALIFIED
Octavia P TollnerFranceXuxue Feng PROPOSAL
Wickens M RutaBrazilElwin Sharvill NEGOTIATION
Ricardo W StensethArgentinaAsiya Javayant PROPOSAL
Francesco W IturbideBrazilBernardo Dominic UNQUALIFIED
Leon O WaycottItalyOnyama Limba NEW
Maisha Q FerenczSpainIvan Magalhaes NEW
Leja Z BriddickFranceOnyama Limba RENEWAL
Francesco Z KuskoFranceOnyama Limba NEGOTIATION
Darci A CampainSpainElwin Sharvill RENEWAL
Tony N WaycottAustraliaAsiya Javayant NEGOTIATION
Stacey K KuskoRussiaXuxue Feng RENEWAL
Ivar C AmigonCanadaOnyama Limba NEGOTIATION
Jones O VocelkaRussiaOnyama Limba RENEWAL
Maria A WhobreyUnited KingdomBernardo Dominic NEGOTIATION
Faith L GillianGermanyStephen Shaw NEGOTIATION
Maria B MaletCanadaAnna Fali PROPOSAL
Salvatore J OstroskyAustraliaAnna Fali RENEWAL
Claire L WhobreyAustraliaAnna Fali NEGOTIATION
Wickens K RoysterAustraliaXuxue Feng NEGOTIATION
Smith H GlickItalyBernardo Dominic PROPOSAL
Wickens W OstroskyGermanyIoni Bowcher PROPOSAL
Costa W CaudyBrazilAnna Fali UNQUALIFIED
Munro I MaletCanadaElwin Sharvill UNQUALIFIED
Chavez H StensethAustraliaOnyama Limba QUALIFIED
Francesco S ShinkoAustraliaIvan Magalhaes RENEWAL
Ivar U RimCanadaXuxue Feng NEGOTIATION
Darci F VenereUnited KingdomAnna Fali NEW
Leja P RutaRussiaElwin Sharvill NEW
Leon F DilliardCanadaAmy Elsner QUALIFIED
Aika L BowleyIndiaIvan Magalhaes QUALIFIED
Izzy S IturbideFranceElwin Sharvill UNQUALIFIED
Nicolas O PerinBrazilIvan Magalhaes NEW
Octavia A RutaArgentinaAmy Elsner UNQUALIFIED
Maisha I SlusarskiItalyOnyama Limba UNQUALIFIED
Johnson D BowleyCanadaXuxue Feng NEGOTIATION
Adams S CampainAustraliaOnyama Limba UNQUALIFIED
Cody H DilliardSpainElwin Sharvill PROPOSAL
Julie H FerenczJapanIvan Magalhaes PROPOSAL
Nicolas Y OstroskyCanadaXuxue Feng UNQUALIFIED
Isabel O FollerItalyAnna Fali RENEWAL
Johnson S GlickGermanyElwin Sharvill PROPOSAL
James W SlusarskiArgentinaStephen Shaw QUALIFIED
Maisha K GillianArgentinaElwin Sharvill QUALIFIED
Maisha U NestleJapanAnna Fali NEW
Arvin C StockhamFranceBernardo Dominic UNQUALIFIED
Maisha T MaletFranceStephen Shaw QUALIFIED
Kaitlin H NestleRussiaIvan Magalhaes NEGOTIATION
Greenwood Z TollnerCanadaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
David Q BriddickUnited KingdomAnna Fali UNQUALIFIED
Leon N MorascaJapanAsiya Javayant PROPOSAL
Misaki Z StockhamArgentinaAnna Fali UNQUALIFIED
Juan A TollnerItalyIoni Bowcher RENEWAL
Sinclair W RoysterIndiaAmy Elsner UNQUALIFIED
Maisha N FigeroaGermanyAsiya Javayant NEW
Mayumi Z GarufiAustraliaIoni Bowcher QUALIFIED
Misaki S BriddickRussiaStephen Shaw UNQUALIFIED
Cody I SergiSpainXuxue Feng UNQUALIFIED
Isabel O WieserArgentinaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo N CaudyUnited Kingdom2026-06-26Printing Dimensions RENEWAL38Anna Fali
1001Francesco I DilliardCanada2026-06-12Truhlar And Truhlar Attys QUALIFIED22Anna Fali
1002Johnson L NickaAustralia2026-06-25Dorl, James J Esq PROPOSAL89Stephen Shaw
1003Faith D SchemmerUnited Kingdom2026-06-15Chanay, Jeffrey A Esq RENEWAL3Xuxue Feng
1004Juan L MarrierCanada2026-06-12Feltz Printing Service RENEWAL16Xuxue Feng
1005Chavez X PoquetteAustralia2026-06-27Chemel, James L Cpa UNQUALIFIED44Ivan Magalhaes
1006Jefferson Z CaldareraGermany2026-06-14Feiner Bros NEGOTIATION72Bernardo Dominic
1007Alejandro Q WaycottGermany2026-06-05Morlong Associates NEW39Amy Elsner
1008Ricardo D MaletItaly2026-06-19Rangoni Of Florence RENEWAL46Amy Elsner
1009Ricardo C BologniaRussia2026-06-26Feltz Printing Service NEGOTIATION41Anna Fali
1010Morrow H DarakjyItaly2026-06-22Dorl, James J Esq NEGOTIATION82Ioni Bowcher
1011Wickens O PerinIndia2026-06-13Chanay, Jeffrey A Esq RENEWAL80Bernardo Dominic
1012Deepesh E SlusarskiFrance2026-06-25Morlong Associates PROPOSAL64Amy Elsner
1013Octavia B AmigonArgentina2026-07-01Commercial Press PROPOSAL84Onyama Limba
1014Jennifer R DilliardUnited Kingdom2026-07-01Commercial Press NEW30Asiya Javayant
1015Clifford X WieserJapan2026-06-18Chanay, Jeffrey A Esq PROPOSAL8Stephen Shaw
1016Leon A AlbaresCanada2026-06-08Chapman, Ross E Esq RENEWAL65Stephen Shaw
1017Isabel B BologniaItaly2026-06-10Chemel, James L Cpa RENEWAL56Onyama Limba
1018Aruna N KolmetzUnited Kingdom2026-06-13Commercial Press RENEWAL71Xuxue Feng
1019Chavez A FerenczGermany2026-06-05Feiner Bros NEGOTIATION34Ioni Bowcher
1020Octavia V FerenczFrance2026-06-24Dorl, James J Esq PROPOSAL3Anna Fali
1021Jennifer M StensethBrazil2026-06-27Truhlar And Truhlar Attys UNQUALIFIED87Stephen Shaw
1022Silvio V CaudyGermany2026-06-27Dorl, James J Esq QUALIFIED51Amy Elsner
1023Nicolas V NickaBrazil2026-06-21Dorl, James J Esq NEW91Amy Elsner
1024Jones V PaprockiAustralia2026-06-19Chemel, James L Cpa NEW15Asiya Javayant
1025Arvin E CaldareraFrance2026-06-15Dorl, James J Esq RENEWAL22Anna Fali
1026Chavez V CaldareraGermany2026-06-12King, Christopher A Esq NEW5Xuxue Feng
1027Munro M PoquetteCanada2026-07-01Feiner Bros QUALIFIED53Bernardo Dominic
1028Tony H CaldareraBrazil2026-06-23Rousseaux, Michael Esq RENEWAL78Anna Fali
1029Silvio J GarufiJapan2026-06-06Truhlar And Truhlar Attys PROPOSAL68Amy Elsner
1030Antonio H DarakjyUnited Kingdom2026-06-16Dorl, James J Esq NEW9Onyama Limba
1031Jeanfrancois D NestleItaly2026-06-25King, Christopher A Esq UNQUALIFIED48Xuxue Feng
1032Ashley R DilliardCanada2026-06-08Feiner Bros QUALIFIED13Xuxue Feng
1033Smith T DoeGermany2026-06-13Truhlar And Truhlar Attys UNQUALIFIED39Elwin Sharvill
1034Isabel X AmigonUnited Kingdom2026-07-01King, Christopher A Esq RENEWAL37Bernardo Dominic
1035Leon L GlickBrazil2026-06-27Commercial Press PROPOSAL65Ivan Magalhaes
1036Tony M WieserUnited Kingdom2026-06-11Rangoni Of Florence RENEWAL71Ivan Magalhaes
1037Sinclair N SchemmerSpain2026-06-30Rangoni Of Florence UNQUALIFIED36Stephen Shaw
1038Johnson K BologniaAustralia2026-06-20Buckley Miller Wright NEW18Stephen Shaw
1039Clifford H KolmetzArgentina2026-06-09Rousseaux, Michael Esq NEGOTIATION78Stephen Shaw
1040Murillo V GarufiArgentina2026-06-06King, Christopher A Esq NEW82Ivan Magalhaes
1041Nicolas O BologniaJapan2026-06-29Feltz Printing Service UNQUALIFIED7Ioni Bowcher
1042Salvatore F GauchoCanada2026-06-30Truhlar And Truhlar Attys PROPOSAL93Anna Fali
1043Jones J MorascaArgentina2026-06-27Rangoni Of Florence RENEWAL79Bernardo Dominic
1044Ashley M FlosiGermany2026-06-07Chapman, Ross E Esq NEW56Asiya Javayant
1045Kadeem T DilliardRussia2026-06-13King, Christopher A Esq QUALIFIED77Ivan Magalhaes
1046Leja Y StockhamIndia2026-06-23King, Christopher A Esq PROPOSAL26Anna Fali
1047Alejandro V BologniaAustralia2026-06-28Chanay, Jeffrey A Esq UNQUALIFIED12Anna Fali
1048Aika I RutaCanada2026-06-15Chemel, James L Cpa NEGOTIATION25Xuxue Feng
1049Maria B WieserAustralia2026-06-14Chapman, Ross E Esq UNQUALIFIED4Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Octavia T ShinkoSpainAmy Elsner QUALIFIED
Jones N SaylorsRussiaOnyama Limba NEGOTIATION
Octavia X RulapaughArgentinaXuxue Feng NEW
Leja O RoysterRussiaStephen Shaw NEW
Claire J DarakjyRussiaIoni Bowcher PROPOSAL
Greenwood S ChuiItalyIoni Bowcher UNQUALIFIED
Octavia A SaylorsBrazilIvan Magalhaes RENEWAL
Ashley L FollerJapanXuxue Feng NEW
Leja P RimSpainAsiya Javayant NEW
Cody Z NickaJapanElwin Sharvill NEGOTIATION
Maisha K WieserAustraliaIoni Bowcher QUALIFIED
Aruna S WaycottRussiaBernardo Dominic RENEWAL
Salvatore O FigeroaItalyXuxue Feng NEW
Murillo Y WhobreyAustraliaIvan Magalhaes NEGOTIATION
Claire Z VocelkaAustraliaAsiya Javayant RENEWAL
Julie T MacleadSpainIvan Magalhaes NEGOTIATION
Nicolas G ChuiAustraliaAmy Elsner QUALIFIED
Aditya U WieserJapanIvan Magalhaes QUALIFIED
Julie E StockhamBrazilAmy Elsner NEW
Clifford F CampainRussiaIoni Bowcher QUALIFIED
Nicolas D FollerItalyAnna Fali QUALIFIED
Rodrigues A StensethUnited KingdomIoni Bowcher NEGOTIATION
Ricardo V FerenczItalyAmy Elsner UNQUALIFIED
Mujtaba E AmigonGermanyOnyama Limba UNQUALIFIED
Smith D FollerIndiaOnyama Limba PROPOSAL
Arvin R GillianCanadaIoni Bowcher RENEWAL
Faith D WhobreyGermanyAnna Fali NEW
Murillo T CaudyAustraliaAnna Fali RENEWAL
Misaki Z WieserFranceStephen Shaw NEGOTIATION
Sinclair L CampainSpainOnyama Limba NEW
Salvatore N GlickFranceIvan Magalhaes RENEWAL
Francesco B FollerGermanyElwin Sharvill RENEWAL
Faith C ButtRussiaAmy Elsner UNQUALIFIED
Clifford W PoquetteGermanyOnyama Limba QUALIFIED
Munro A GarufiGermanyAsiya Javayant UNQUALIFIED
David F RimJapanXuxue Feng QUALIFIED
Sinclair M CaudySpainXuxue Feng RENEWAL
Murillo D AlbaresRussiaBernardo Dominic NEGOTIATION
Morrow G StockhamIndiaElwin Sharvill UNQUALIFIED
Sinclair L ButtUnited KingdomAnna Fali UNQUALIFIED
Francesco V AmigonArgentinaAmy Elsner NEGOTIATION
Costa G NestleUnited KingdomAmy Elsner RENEWAL
Octavia M GlickItalyIvan Magalhaes QUALIFIED
Stacey X KuskoGermanyOnyama Limba QUALIFIED
James W NestleItalyAnna Fali UNQUALIFIED
Leja F IturbideSpainAsiya Javayant QUALIFIED
Nicolas K RutaBrazilAsiya Javayant PROPOSAL
Salvatore A FlosiFranceXuxue Feng NEW
Octavia B PoquetteRussiaBernardo Dominic QUALIFIED
Adams R ButtUnited KingdomElwin Sharvill PROPOSAL
Frozen Columns
Name
Misaki U Flosi
Emily J Kolmetz
David C Ferencz
Ricardo V Wieser
Salvatore N Tollner
Mujtaba X Whobrey
Aditya V Waycott
Misaki H Malet
Morrow M Saylors
Francesco D Malet
Chavez O Oldroyd
Mujtaba M Maclead
Chavez A Vocelka
James G Sergi
Chavez L Iturbide
Chavez Y Ostrosky
Smith L Nestle
Maria A Rulapaugh
Emily Q Sergi
Maisha P Tollner
Clifford N Marrier
Clifford Y Briddick
Nicolas Q Vocelka
Rodrigues A Nicka
Jennifer K Foller
Smith V Flosi
Cody X Saylors
Jennifer D Oldroyd
Clifford G Dilliard
Aika F Ferencz
Francesco L Tollner
Octavia I Foller
Deepesh M Inouye
Arvin F Marrier
Adams S Iturbide
Octavia J Inouye
Ricardo N Gillian
Morrow M Waycott
Adams R Gaucho
Julie Q Iturbide
Cody W Doe
Greenwood F Garufi
Jefferson E Bolognia
Cody U Garufi
Sinclair E Oldroyd
Mayumi G Oldroyd
Faith F Paprocki
Emily L Tollner
Darci O Morasca
Isabel Q Saylors
IdCountryDate
1000Australia2026-06-29
1001Argentina2026-06-08
1002France2026-06-29
1003Brazil2026-06-25
1004Spain2026-06-26
1005Japan2026-06-23
1006France2026-06-21
1007Spain2026-07-02
1008Germany2026-06-12
1009Australia2026-06-04
1010France2026-07-01
1011Argentina2026-06-19
1012Germany2026-06-03
1013Russia2026-06-26
1014Russia2026-06-20
1015France2026-07-01
1016Canada2026-06-18
1017Italy2026-06-24
1018Italy2026-06-30
1019France2026-06-28
1020Spain2026-06-10
1021Canada2026-06-25
1022Argentina2026-06-14
1023Canada2026-06-18
1024United Kingdom2026-06-12
1025Australia2026-06-21
1026Germany2026-06-18
1027Russia2026-06-30
1028United Kingdom2026-06-22
1029Argentina2026-06-27
1030India2026-06-20
1031India2026-06-07
1032United Kingdom2026-06-12
1033Spain2026-06-13
1034France2026-06-19
1035Italy2026-06-20
1036Spain2026-06-25
1037Italy2026-06-28
1038Argentina2026-06-27
1039Australia2026-06-16
1040Australia2026-06-25
1041India2026-07-02
1042Australia2026-06-13
1043Russia2026-06-24
1044Italy2026-06-08
1045Japan2026-06-15
1046Brazil2026-06-06
1047Russia2026-06-26
1048Japan2026-06-25
1049Spain2026-06-14

On-Demand Data

NameIdCountryDate
Aditya N Darakjy1000France2026-06-18
Jefferson E Schemmer1001Australia2026-06-23
Munro R Nicka1002Brazil2026-06-23
David C Dilliard1003Canada2026-06-03
Aika W Paprocki1004Argentina2026-06-27
Nicolas K Malet1005Australia2026-06-11
Kaitlin J Dilliard1006Italy2026-06-25
Murillo A Bolognia1007Russia2026-06-30
Mujtaba F Bolognia1008India2026-06-30
Francesco A Wieser1009Brazil2026-06-22
Aditya X Tollner1010Spain2026-06-14
Ricardo N Stenseth1011Australia2026-06-08
Emily A Saylors1012Australia2026-06-04
Kaitlin E Marrier1013Canada2026-06-07
Leja Y Bowley1014Japan2026-06-21
Leja L Ostrosky1015United Kingdom2026-06-22
Chavez B Caldarera1016France2026-06-21
Greenwood Z Sergi1017Italy2026-06-09
Salvatore Z Rulapaugh1018Spain2026-06-07
Kaitlin U Royster1019Spain2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja T PerinAustraliaAmy Elsner NEGOTIATION
Tony K BologniaCanadaAnna Fali NEGOTIATION
Alejandro K FlosiFranceAsiya Javayant PROPOSAL
Ashley S OstroskyGermanyOnyama Limba UNQUALIFIED
Leja A PoquetteRussiaBernardo Dominic QUALIFIED
Tony V DoeBrazilAsiya Javayant PROPOSAL
Silvio K VenereCanadaXuxue Feng NEW
Aruna Z ShinkoSpainIvan Magalhaes NEGOTIATION
Clifford I ButtArgentinaXuxue Feng PROPOSAL
Leja Y WhobreyGermanyElwin Sharvill NEW
Maisha T MaletCanadaIoni Bowcher NEGOTIATION
Sinclair H IturbideCanadaOnyama Limba NEGOTIATION
Chavez C FigeroaFranceIoni Bowcher RENEWAL
Jones H FollerRussiaBernardo Dominic PROPOSAL
David A StensethArgentinaIvan Magalhaes UNQUALIFIED
Darci L RutaSpainStephen Shaw PROPOSAL
Francesco T KolmetzArgentinaXuxue Feng QUALIFIED
Silvio N PaprockiCanadaAnna Fali NEW
Leja B FlosiIndiaAnna Fali RENEWAL
Aruna B PerinItalyAnna Fali RENEWAL
Julie M OstroskyBrazilElwin Sharvill RENEWAL
Chavez H DilliardRussiaIoni Bowcher NEGOTIATION
Aika G FerenczSpainIoni Bowcher PROPOSAL
Isabel D VocelkaItalyElwin Sharvill QUALIFIED
Rodrigues C InouyeFranceStephen Shaw NEW
Juan F StensethJapanElwin Sharvill RENEWAL
Murillo O BriddickBrazilIvan Magalhaes NEGOTIATION
Jefferson R StockhamAustraliaElwin Sharvill QUALIFIED
Nicolas O MorascaSpainStephen Shaw NEGOTIATION
Mujtaba F GauchoGermanyOnyama Limba UNQUALIFIED
Arvin X SaylorsSpainAnna Fali RENEWAL
Claire K VenereFranceStephen Shaw UNQUALIFIED
Jeanfrancois X GillianFranceAmy Elsner QUALIFIED
Misaki U StensethIndiaAnna Fali NEGOTIATION
Leja I OstroskyAustraliaElwin Sharvill NEGOTIATION
Alejandro E RutaRussiaOnyama Limba PROPOSAL
Ashley H MorascaFranceOnyama Limba NEGOTIATION
Smith O WaycottArgentinaIoni Bowcher UNQUALIFIED
Darci G RoysterUnited KingdomElwin Sharvill PROPOSAL
Juan P PaprockiFranceAnna Fali UNQUALIFIED

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