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 V WhobreyItalyElwin Sharvill RENEWAL
Wickens X BowleyJapanIvan Magalhaes NEGOTIATION
Smith S SchemmerAustraliaOnyama Limba NEW
Morrow P StockhamBrazilBernardo Dominic NEGOTIATION
Faith V GauchoIndiaStephen Shaw QUALIFIED
Salvatore U GlickItalyAsiya Javayant NEGOTIATION
Antonio C OldroydArgentinaStephen Shaw QUALIFIED
Darci J ButtItalyElwin Sharvill QUALIFIED
Morrow V CampainItalyBernardo Dominic NEW
Isabel C SchemmerUnited KingdomAnna Fali NEGOTIATION
Antonio T AmigonRussiaIvan Magalhaes NEW
Munro H MacleadArgentinaAmy Elsner QUALIFIED
Stacey M OldroydCanadaAsiya Javayant UNQUALIFIED
Maisha M KuskoItalyAsiya Javayant PROPOSAL
Maria J WieserIndiaStephen Shaw QUALIFIED
Ivar Z GillianUnited KingdomAnna Fali QUALIFIED
Sinclair N WieserRussiaOnyama Limba QUALIFIED
Clifford S NestleGermanyElwin Sharvill QUALIFIED
Julie K AlbaresJapanAsiya Javayant RENEWAL
Salvatore F KuskoUnited KingdomAsiya Javayant PROPOSAL
Deepesh E CampainIndiaElwin Sharvill RENEWAL
Clifford K FollerAustraliaBernardo Dominic NEW
Claire J ChuiRussiaOnyama Limba QUALIFIED
Mayumi C ChuiBrazilElwin Sharvill RENEWAL
Aika V SchemmerJapanIoni Bowcher UNQUALIFIED
Munro E GarufiRussiaElwin Sharvill QUALIFIED
Maria Q VenereRussiaAsiya Javayant RENEWAL
Deepesh Y StockhamJapanBernardo Dominic NEGOTIATION
David M AmigonSpainXuxue Feng NEGOTIATION
Isabel B StockhamIndiaOnyama Limba QUALIFIED
Deepesh Z OldroydAustraliaAmy Elsner PROPOSAL
Ashley E RutaArgentinaXuxue Feng PROPOSAL
Wickens P SergiIndiaAnna Fali UNQUALIFIED
Jeanfrancois U FlosiAustraliaIvan Magalhaes NEGOTIATION
Smith J CaldareraSpainXuxue Feng UNQUALIFIED
Arvin P CampainJapanXuxue Feng NEGOTIATION
Aditya A SaylorsItalyIoni Bowcher QUALIFIED
Juan H MacleadCanadaOnyama Limba RENEWAL
Mujtaba R MaletArgentinaXuxue Feng NEGOTIATION
Jennifer Z FlosiGermanyXuxue Feng NEGOTIATION
Johnson Z KolmetzRussiaIoni Bowcher NEW
Juan E WaycottItalyElwin Sharvill NEW
Deepesh I SchemmerRussiaIoni Bowcher NEGOTIATION
Francesco R VenereJapanAmy Elsner NEGOTIATION
Johnson J FerenczSpainOnyama Limba NEGOTIATION
Salvatore K SaylorsItalyElwin Sharvill RENEWAL
Silvio M RulapaughIndiaAsiya Javayant QUALIFIED
Rodrigues F SaylorsItalyAnna Fali PROPOSAL
James G GarufiArgentinaBernardo Dominic NEGOTIATION
Izzy I BowleyFranceElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin I NickaFranceElwin Sharvill QUALIFIED
Ricardo L PaprockiBrazilAmy Elsner PROPOSAL
Ivar W GillianRussiaIvan Magalhaes NEW
Cody K WhobreyFranceBernardo Dominic NEGOTIATION
Izzy O PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Morrow S DilliardCanadaOnyama Limba PROPOSAL
Emily O BologniaUnited KingdomBernardo Dominic QUALIFIED
Ricardo C CaudyGermanyOnyama Limba QUALIFIED
Julie G NestleBrazilIoni Bowcher RENEWAL
Jefferson J DarakjyFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony W ShinkoGermany2026-08-27Printing Dimensions RENEWAL48Ivan Magalhaes
1001Antonio B FlosiRussia2026-08-02Feiner Bros UNQUALIFIED60Asiya Javayant
1002Kaitlin X BowleyUnited Kingdom2026-08-07Chemel, James L Cpa NEW81Ioni Bowcher
1003Kadeem G BowleyFrance2026-08-13Chemel, James L Cpa NEGOTIATION62Stephen Shaw
1004Maria D WhobreyAustralia2026-08-24Morlong Associates PROPOSAL3Asiya Javayant
1005Wickens F FlosiJapan2026-08-02Chemel, James L Cpa QUALIFIED34Onyama Limba
1006Stacey Z IturbideArgentina2026-08-17Chanay, Jeffrey A Esq RENEWAL85Asiya Javayant
1007Faith B StockhamBrazil2026-08-22Truhlar And Truhlar Attys NEW9Stephen Shaw
1008Adams C PoquetteSpain2026-07-30Rangoni Of Florence RENEWAL27Ivan Magalhaes
1009Morrow Q DoeItaly2026-08-21Rangoni Of Florence PROPOSAL64Onyama Limba
1010Mayumi L ShinkoArgentina2026-08-04King, Christopher A Esq QUALIFIED53Amy Elsner
1011James A FigeroaCanada2026-08-13Chapman, Ross E Esq NEW52Bernardo Dominic
1012Aika C FerenczBrazil2026-08-06Morlong Associates PROPOSAL99Bernardo Dominic
1013Kadeem B VenereFrance2026-08-24Feltz Printing Service PROPOSAL29Stephen Shaw
1014Deepesh K FerenczBrazil2026-08-11Chapman, Ross E Esq NEGOTIATION5Anna Fali
1015Izzy R DoeJapan2026-08-24Chanay, Jeffrey A Esq RENEWAL19Bernardo Dominic
1016Tony V MaletAustralia2026-08-18Commercial Press PROPOSAL3Elwin Sharvill
1017Jones F FlosiCanada2026-08-09Benton, John B Jr RENEWAL3Elwin Sharvill
1018Misaki M ShinkoBrazil2026-08-19Dorl, James J Esq PROPOSAL34Onyama Limba
1019Costa X DilliardGermany2026-08-18Feiner Bros NEW3Amy Elsner
1020Isabel L PoquetteArgentina2026-08-11Truhlar And Truhlar Attys PROPOSAL81Anna Fali
1021Isabel P DoeBrazil2026-08-21Feltz Printing Service QUALIFIED93Ioni Bowcher
1022Clifford C AmigonIndia2026-08-24Morlong Associates NEGOTIATION2Asiya Javayant
1023Maisha O PaprockiBrazil2026-08-21King, Christopher A Esq NEW88Asiya Javayant
1024Wickens X WhobreyUnited Kingdom2026-08-21Feltz Printing Service QUALIFIED50Amy Elsner
1025Leon D WhobreyCanada2026-08-06Rangoni Of Florence PROPOSAL5Amy Elsner
1026Murillo E SchemmerItaly2026-08-26Dorl, James J Esq NEGOTIATION80Onyama Limba
1027Izzy M RutaFrance2026-07-30King, Christopher A Esq RENEWAL3Amy Elsner
1028Sinclair O AmigonSpain2026-08-02Rousseaux, Michael Esq QUALIFIED7Ioni Bowcher
1029Antonio S MacleadItaly2026-08-07Feiner Bros NEW59Xuxue Feng
1030Misaki R ButtUnited Kingdom2026-08-11Chanay, Jeffrey A Esq NEGOTIATION58Onyama Limba
1031Jones F ShinkoBrazil2026-08-07Buckley Miller Wright UNQUALIFIED26Anna Fali
1032Jennifer B PaprockiArgentina2026-08-27Chapman, Ross E Esq NEW49Amy Elsner
1033Ricardo J FlosiSpain2026-08-09Dorl, James J Esq UNQUALIFIED30Amy Elsner
1034Johnson B IturbideAustralia2026-08-04King, Christopher A Esq UNQUALIFIED31Bernardo Dominic
1035Ivar C FigeroaUnited Kingdom2026-08-27Truhlar And Truhlar Attys RENEWAL73Asiya Javayant
1036Ashley Y TollnerSpain2026-08-25Rousseaux, Michael Esq PROPOSAL56Xuxue Feng
1037Murillo I GauchoItaly2026-08-11Printing Dimensions NEGOTIATION85Ivan Magalhaes
1038David T OstroskySpain2026-08-26Benton, John B Jr NEGOTIATION61Bernardo Dominic
1039Octavia Y StensethItaly2026-07-29Rousseaux, Michael Esq NEW18Asiya Javayant
1040Leja Z DilliardAustralia2026-08-27Feiner Bros PROPOSAL55Amy Elsner
1041Mayumi P CaldareraFrance2026-08-03Dorl, James J Esq PROPOSAL15Ivan Magalhaes
1042Alejandro D RulapaughJapan2026-08-19Dorl, James J Esq NEGOTIATION32Xuxue Feng
1043Octavia B RutaGermany2026-07-30Rangoni Of Florence QUALIFIED81Onyama Limba
1044Ashley G MacleadJapan2026-08-12Chanay, Jeffrey A Esq NEW26Bernardo Dominic
1045Mujtaba T RulapaughArgentina2026-08-19Truhlar And Truhlar Attys NEGOTIATION51Bernardo Dominic
1046Octavia R StockhamSpain2026-07-30Chemel, James L Cpa NEW31Ioni Bowcher
1047Munro D DilliardBrazil2026-08-10Chapman, Ross E Esq PROPOSAL71Asiya Javayant
1048Greenwood E GlickIndia2026-08-08Rangoni Of Florence UNQUALIFIED17Onyama Limba
1049Mujtaba I ButtAustralia2026-08-24Chemel, James L Cpa PROPOSAL10Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Isabel W PoquetteFranceBernardo Dominic UNQUALIFIED
Cody I GlickJapanAnna Fali QUALIFIED
Misaki K OldroydUnited KingdomIvan Magalhaes PROPOSAL
Morrow S BowleyIndiaXuxue Feng NEGOTIATION
Salvatore V KuskoBrazilXuxue Feng UNQUALIFIED
Ashley Y KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Isabel Z FlosiIndiaXuxue Feng RENEWAL
Greenwood X MorascaJapanAmy Elsner PROPOSAL
Antonio G AmigonUnited KingdomStephen Shaw QUALIFIED
Kaitlin V RimRussiaAnna Fali PROPOSAL
Cody T DilliardBrazilAsiya Javayant QUALIFIED
Alejandro X CampainIndiaAmy Elsner RENEWAL
Emily R CaldareraAustraliaBernardo Dominic UNQUALIFIED
David I TollnerArgentinaIvan Magalhaes PROPOSAL
Izzy O FerenczItalyIvan Magalhaes NEW
Octavia W DilliardFranceElwin Sharvill RENEWAL
Greenwood K GauchoFranceBernardo Dominic NEW
Julie T GlickUnited KingdomAsiya Javayant NEW
Clifford N RoysterRussiaIoni Bowcher RENEWAL
Sinclair X FlosiFranceElwin Sharvill RENEWAL
Kaitlin K SchemmerArgentinaElwin Sharvill PROPOSAL
Kadeem M FigeroaCanadaAmy Elsner RENEWAL
Claire A DilliardGermanyElwin Sharvill NEW
Smith A ChuiAustraliaElwin Sharvill RENEWAL
Aditya R MorascaGermanyAmy Elsner NEW
Aruna Q NestleJapanOnyama Limba UNQUALIFIED
Misaki K AmigonAustraliaXuxue Feng RENEWAL
Adams N StockhamSpainXuxue Feng NEW
Sinclair G SlusarskiJapanBernardo Dominic NEGOTIATION
Leja Z WaycottFranceOnyama Limba NEW
Chavez P NestleGermanyBernardo Dominic PROPOSAL
Costa W DarakjySpainIvan Magalhaes UNQUALIFIED
Leja H RoysterAustraliaBernardo Dominic RENEWAL
Silvio S VenereGermanyStephen Shaw NEGOTIATION
Antonio M FigeroaBrazilAmy Elsner RENEWAL
Juan V BowleyItalyStephen Shaw NEGOTIATION
Jones P GlickIndiaAmy Elsner NEW
Aruna J GarufiGermanyBernardo Dominic QUALIFIED
Johnson X MacleadGermanyStephen Shaw QUALIFIED
Adams T VocelkaSpainIoni Bowcher NEGOTIATION
Juan C RoysterItalyIvan Magalhaes UNQUALIFIED
Mayumi W TollnerFranceXuxue Feng NEW
Misaki P NestleCanadaAsiya Javayant PROPOSAL
Jennifer J SchemmerFranceBernardo Dominic UNQUALIFIED
Nicolas F GillianItalyAnna Fali NEW
Cody I OldroydBrazilAsiya Javayant NEW
Nicolas E SchemmerGermanyIvan Magalhaes PROPOSAL
Costa L DarakjyBrazilOnyama Limba QUALIFIED
Leon F PoquetteItalyBernardo Dominic QUALIFIED
Murillo P PoquetteJapanBernardo Dominic NEGOTIATION
Frozen Columns
Name
Leon Q Flosi
Adams C Caudy
Misaki I Doe
Ashley N Slusarski
Octavia D Bowley
Faith T Dilliard
Kadeem Z Shinko
Aditya X Morasca
Aruna S Sergi
Claire D Paprocki
Munro H Saylors
Salvatore A Slusarski
Leon Q Flosi
Leja A Royster
Deepesh Q Butt
Wickens U Saylors
Cody T Tollner
Aditya G Stenseth
Johnson P Kusko
Isabel J Schemmer
Salvatore L Stenseth
Chavez P Saylors
Ivar E Darakjy
Darci Z Venere
Deepesh Z Glick
Leon E Chui
Mujtaba N Venere
Jeanfrancois L Caudy
Deepesh Z Glick
Cody S Kolmetz
Mujtaba V Malet
Isabel D Whobrey
Morrow S Darakjy
Leon F Ruta
Jones S Briddick
Jennifer R Whobrey
Juan U Marrier
David Z Albares
Octavia G Kusko
Sinclair P Butt
Johnson A Bolognia
Rodrigues N Inouye
Julie D Tollner
Costa W Schemmer
Maisha T Caudy
Octavia R Schemmer
Aika H Amigon
Tony F Shinko
Greenwood L Albares
Ricardo Z Vocelka
IdCountryDate
1000Australia2026-08-06
1001Germany2026-08-17
1002Russia2026-08-01
1003India2026-08-17
1004Japan2026-08-05
1005France2026-08-14
1006Argentina2026-08-19
1007United Kingdom2026-08-12
1008Brazil2026-08-17
1009United Kingdom2026-08-26
1010Argentina2026-08-02
1011Australia2026-08-10
1012Japan2026-08-21
1013Germany2026-07-30
1014Canada2026-08-22
1015Russia2026-07-29
1016Canada2026-08-12
1017Italy2026-07-29
1018Russia2026-08-16
1019Italy2026-08-22
1020France2026-08-14
1021France2026-08-04
1022Brazil2026-08-05
1023France2026-08-12
1024Brazil2026-08-23
1025Canada2026-07-31
1026Canada2026-08-14
1027Canada2026-07-29
1028Australia2026-08-09
1029Russia2026-08-14
1030Japan2026-08-16
1031Brazil2026-08-01
1032Australia2026-08-27
1033Russia2026-08-24
1034Brazil2026-08-27
1035Germany2026-08-26
1036Argentina2026-08-04
1037India2026-08-19
1038Argentina2026-08-21
1039Spain2026-08-19
1040France2026-08-05
1041Italy2026-08-10
1042Spain2026-08-13
1043Russia2026-07-31
1044Japan2026-08-25
1045United Kingdom2026-08-15
1046United Kingdom2026-08-04
1047India2026-08-26
1048Japan2026-08-01
1049France2026-08-24

On-Demand Data

NameIdCountryDate
Clifford O Vocelka1000Japan2026-08-01
Adams J Albares1001France2026-08-09
James E Dilliard1002Italy2026-08-26
Sinclair L Stenseth1003India2026-08-11
Jennifer G Shinko1004France2026-08-18
Aditya M Caudy1005Argentina2026-08-18
Wickens Y Briddick1006Germany2026-08-16
Wickens Z Shinko1007Argentina2026-08-16
Jennifer F Rim1008France2026-08-14
Ricardo R Wieser1009Germany2026-08-03
Adams Z Gaucho1010Australia2026-08-02
Mujtaba R Paprocki1011France2026-08-25
Rodrigues W Poquette1012Canada2026-08-12
Claire T Waycott1013France2026-08-11
Clifford M Caldarera1014Germany2026-08-20
Aditya U Stockham1015Brazil2026-08-08
Johnson G Ostrosky1016Russia2026-08-04
Mayumi N Paprocki1017Brazil2026-08-13
Deepesh W Marrier1018United Kingdom2026-08-25
Kaitlin A Amigon1019Russia2026-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford X StensethArgentinaStephen Shaw PROPOSAL
Leon N MarrierIndiaStephen Shaw UNQUALIFIED
Isabel K ButtItalyBernardo Dominic QUALIFIED
Costa M FerenczItalyXuxue Feng PROPOSAL
Johnson N MorascaFranceAsiya Javayant NEW
Munro B BriddickCanadaStephen Shaw NEGOTIATION
Faith F MarrierAustraliaIvan Magalhaes NEGOTIATION
Arvin X OstroskyIndiaElwin Sharvill UNQUALIFIED
Octavia E VocelkaGermanyAmy Elsner NEW
Juan H DoeArgentinaBernardo Dominic UNQUALIFIED
Adams Q BriddickRussiaIvan Magalhaes NEW
Sinclair N VocelkaItalyStephen Shaw QUALIFIED
Julie J DilliardFranceBernardo Dominic RENEWAL
Deepesh N CampainBrazilXuxue Feng UNQUALIFIED
Aditya D BologniaAustraliaAsiya Javayant RENEWAL
Stacey C MacleadGermanyStephen Shaw PROPOSAL
Misaki F DoeJapanIvan Magalhaes NEGOTIATION
Faith M StensethAustraliaAmy Elsner PROPOSAL
Jefferson K OstroskyRussiaIvan Magalhaes NEGOTIATION
Johnson B InouyeArgentinaAnna Fali NEW
Munro T CaldareraItalyStephen Shaw PROPOSAL
Arvin Q RulapaughIndiaIvan Magalhaes RENEWAL
Adams L ShinkoSpainBernardo Dominic PROPOSAL
Ivar J PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Misaki E StockhamGermanyAmy Elsner NEGOTIATION
Chavez B GillianIndiaAmy Elsner PROPOSAL
Kadeem C FollerArgentinaOnyama Limba NEW
Adams G OldroydUnited KingdomIoni Bowcher QUALIFIED
Stacey B PoquetteBrazilBernardo Dominic UNQUALIFIED
Silvio Q VenereIndiaBernardo Dominic PROPOSAL
Rodrigues C BowleyBrazilIvan Magalhaes QUALIFIED
Greenwood Z BowleySpainXuxue Feng UNQUALIFIED
Ivar L InouyeCanadaAsiya Javayant NEW
Tony Z StensethSpainOnyama Limba PROPOSAL
Johnson H KolmetzCanadaAnna Fali RENEWAL
Adams V FigeroaIndiaIoni Bowcher NEW
Stacey R FollerJapanElwin Sharvill NEW
Cody J VenereRussiaAnna Fali QUALIFIED
Smith K InouyeCanadaStephen Shaw NEW
Jones S WaycottIndiaAmy Elsner 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>