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
Isabel U MaletItalyAnna Fali QUALIFIED
Leon K MorascaArgentinaIoni Bowcher RENEWAL
Aditya Y CaldareraRussiaOnyama Limba NEGOTIATION
Salvatore U GarufiAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin B OstroskyJapanAnna Fali NEW
Kaitlin N FigeroaBrazilAnna Fali NEGOTIATION
Ivar F FollerAustraliaBernardo Dominic QUALIFIED
Julie Q PaprockiGermanyXuxue Feng QUALIFIED
Francesco M GlickBrazilAnna Fali RENEWAL
Juan G PoquetteIndiaBernardo Dominic UNQUALIFIED
Aruna Q RoysterSpainIvan Magalhaes NEW
Sinclair E InouyeSpainIoni Bowcher UNQUALIFIED
Mujtaba G AlbaresFranceXuxue Feng PROPOSAL
Cody M InouyeRussiaElwin Sharvill RENEWAL
Greenwood D TollnerItalyElwin Sharvill NEW
Alejandro A DilliardGermanyAmy Elsner PROPOSAL
Claire A GauchoIndiaAsiya Javayant QUALIFIED
Munro C PoquetteUnited KingdomIvan Magalhaes RENEWAL
Antonio Q PerinCanadaAsiya Javayant NEW
Maria Y MorascaItalyBernardo Dominic NEW
Leja E GlickIndiaBernardo Dominic RENEWAL
Salvatore P ChuiAustraliaAnna Fali PROPOSAL
Leon P MarrierSpainAnna Fali UNQUALIFIED
Clifford L PerinSpainXuxue Feng PROPOSAL
Ricardo G AmigonArgentinaStephen Shaw PROPOSAL
Izzy T DarakjyCanadaAsiya Javayant UNQUALIFIED
Ashley L VenereRussiaAsiya Javayant QUALIFIED
Alejandro Y RoysterFranceAsiya Javayant RENEWAL
Silvio Q WaycottArgentinaIoni Bowcher QUALIFIED
Emily B NickaBrazilIvan Magalhaes RENEWAL
Ricardo N ShinkoCanadaAsiya Javayant NEW
Jennifer T PaprockiIndiaBernardo Dominic NEGOTIATION
Munro I RoysterSpainStephen Shaw NEW
Silvio S NickaSpainElwin Sharvill NEW
Stacey C RoysterItalyElwin Sharvill UNQUALIFIED
Murillo V FerenczAustraliaIoni Bowcher QUALIFIED
Maisha G GarufiRussiaElwin Sharvill QUALIFIED
Sinclair S SlusarskiFranceAsiya Javayant PROPOSAL
Nicolas E StensethGermanyAsiya Javayant QUALIFIED
Chavez Y WhobreySpainOnyama Limba QUALIFIED
Murillo C MorascaGermanyOnyama Limba QUALIFIED
Jefferson M BriddickIndiaBernardo Dominic NEGOTIATION
Munro I MaletAustraliaStephen Shaw PROPOSAL
Alejandro K VenereCanadaElwin Sharvill RENEWAL
Ashley I DilliardJapanIoni Bowcher NEW
Rodrigues C GauchoItalyIoni Bowcher PROPOSAL
Jefferson A RutaUnited KingdomXuxue Feng QUALIFIED
Murillo R VocelkaGermanyAnna Fali NEW
Nicolas N AmigonAustraliaAnna Fali NEW
Adams N PoquetteArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem K WieserArgentinaAnna Fali NEGOTIATION
Jefferson F MaletIndiaStephen Shaw RENEWAL
Isabel E FigeroaAustraliaIvan Magalhaes PROPOSAL
Silvio K StockhamArgentinaIvan Magalhaes NEW
Adams X TollnerUnited KingdomElwin Sharvill QUALIFIED
Wickens E DarakjySpainAsiya Javayant PROPOSAL
Ricardo A MaletFranceAsiya Javayant PROPOSAL
Claire W FollerItalyAsiya Javayant PROPOSAL
Faith W ShinkoIndiaIoni Bowcher RENEWAL
Jones N NickaGermanyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony Z StockhamSpain2025-06-07Chemel, James L Cpa PROPOSAL0Onyama Limba
1001Aika C SchemmerAustralia2025-06-03Chapman, Ross E Esq UNQUALIFIED95Anna Fali
1002Silvio V StockhamCanada2025-06-03Feiner Bros UNQUALIFIED57Asiya Javayant
1003Arvin G GlickBrazil2025-05-19Chemel, James L Cpa NEGOTIATION37Amy Elsner
1004Arvin E ButtItaly2025-06-12Commercial Press QUALIFIED9Anna Fali
1005Antonio S FerenczArgentina2025-05-26Feltz Printing Service RENEWAL48Elwin Sharvill
1006Isabel K WhobreyAustralia2025-06-14Morlong Associates PROPOSAL14Anna Fali
1007Mujtaba T FigeroaArgentina2025-06-11Truhlar And Truhlar Attys PROPOSAL1Anna Fali
1008Mayumi G DoeIndia2025-05-28Rousseaux, Michael Esq QUALIFIED38Anna Fali
1009Maria K KolmetzArgentina2025-06-05Chanay, Jeffrey A Esq QUALIFIED12Anna Fali
1010Isabel C CampainAustralia2025-06-16Morlong Associates NEW98Onyama Limba
1011Ricardo Z BriddickRussia2025-06-05Printing Dimensions NEGOTIATION44Amy Elsner
1012Antonio Q CampainRussia2025-05-24Printing Dimensions QUALIFIED21Amy Elsner
1013Emily A RulapaughItaly2025-06-12Morlong Associates QUALIFIED81Amy Elsner
1014Julie C VocelkaFrance2025-05-31Dorl, James J Esq UNQUALIFIED0Asiya Javayant
1015Jefferson I OstroskyRussia2025-06-02Rangoni Of Florence QUALIFIED52Anna Fali
1016Morrow Z CampainIndia2025-06-15Commercial Press QUALIFIED19Ivan Magalhaes
1017Wickens D SlusarskiBrazil2025-06-15Commercial Press RENEWAL1Ioni Bowcher
1018Leja C BowleyIndia2025-05-29Chemel, James L Cpa NEW3Asiya Javayant
1019Jennifer Y SaylorsSpain2025-05-23Truhlar And Truhlar Attys NEW70Ioni Bowcher
1020Jefferson U DoeUnited Kingdom2025-05-22Rangoni Of Florence UNQUALIFIED35Ioni Bowcher
1021Alejandro E MarrierCanada2025-06-05Benton, John B Jr NEW60Stephen Shaw
1022Aditya Q WaycottCanada2025-05-31Dorl, James J Esq UNQUALIFIED82Bernardo Dominic
1023Tony P KuskoItaly2025-06-10Feiner Bros QUALIFIED48Xuxue Feng
1024Jeanfrancois U MorascaGermany2025-05-20Chanay, Jeffrey A Esq NEW59Asiya Javayant
1025Clifford X SchemmerUnited Kingdom2025-06-04Benton, John B Jr RENEWAL55Onyama Limba
1026Greenwood Z WaycottIndia2025-05-20Buckley Miller Wright RENEWAL53Onyama Limba
1027Nicolas O WieserGermany2025-05-25Feiner Bros UNQUALIFIED78Asiya Javayant
1028Johnson L NestleIndia2025-05-19Feltz Printing Service NEGOTIATION40Asiya Javayant
1029Rodrigues G SchemmerGermany2025-06-06Chapman, Ross E Esq QUALIFIED34Onyama Limba
1030Francesco W OldroydFrance2025-06-11Printing Dimensions NEGOTIATION77Ioni Bowcher
1031Kaitlin O PoquetteGermany2025-05-26Chapman, Ross E Esq QUALIFIED65Stephen Shaw
1032Alejandro H GlickGermany2025-05-19Commercial Press UNQUALIFIED35Xuxue Feng
1033Mujtaba L KolmetzSpain2025-05-19Morlong Associates RENEWAL21Bernardo Dominic
1034Rodrigues F MaletItaly2025-06-15Feltz Printing Service QUALIFIED27Anna Fali
1035Darci I GauchoCanada2025-05-27Chemel, James L Cpa NEGOTIATION66Anna Fali
1036Stacey B ButtAustralia2025-06-14Commercial Press NEW83Asiya Javayant
1037Greenwood Q SergiItaly2025-06-02Morlong Associates NEGOTIATION37Elwin Sharvill
1038Maisha U BologniaIndia2025-06-01King, Christopher A Esq NEW3Anna Fali
1039Octavia H ShinkoItaly2025-06-11Morlong Associates PROPOSAL73Asiya Javayant
1040Isabel E MaletIndia2025-05-25Dorl, James J Esq UNQUALIFIED54Ioni Bowcher
1041Leon S BowleyFrance2025-06-02Printing Dimensions PROPOSAL70Stephen Shaw
1042Francesco T BowleyAustralia2025-06-09Rangoni Of Florence RENEWAL96Ivan Magalhaes
1043Salvatore U SergiRussia2025-05-25Rangoni Of Florence UNQUALIFIED82Xuxue Feng
1044Misaki F WieserJapan2025-06-04King, Christopher A Esq NEGOTIATION23Stephen Shaw
1045Jones U WaycottGermany2025-05-25Chemel, James L Cpa RENEWAL2Ioni Bowcher
1046Aika E SchemmerGermany2025-06-10Dorl, James J Esq UNQUALIFIED14Stephen Shaw
1047Clifford C VocelkaFrance2025-06-10Feltz Printing Service UNQUALIFIED49Xuxue Feng
1048James S RoysterJapan2025-05-31Buckley Miller Wright QUALIFIED66Xuxue Feng
1049Clifford P RulapaughItaly2025-05-22Benton, John B Jr UNQUALIFIED98Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow Z GauchoFranceAmy Elsner RENEWAL
Ashley V FollerGermanyStephen Shaw PROPOSAL
Sinclair E CampainAustraliaElwin Sharvill UNQUALIFIED
Morrow O StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Aika V MaletSpainAnna Fali NEW
Juan V OstroskySpainAsiya Javayant NEGOTIATION
Jones B OldroydAustraliaAsiya Javayant UNQUALIFIED
Ricardo Y KolmetzSpainOnyama Limba UNQUALIFIED
David H CaudyItalyStephen Shaw RENEWAL
Claire Q SchemmerAustraliaXuxue Feng PROPOSAL
Costa I VocelkaIndiaOnyama Limba NEGOTIATION
Costa I FerenczFranceIvan Magalhaes NEW
Aditya T FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois S PaprockiSpainBernardo Dominic NEGOTIATION
Jennifer M RoysterCanadaAmy Elsner QUALIFIED
Leon O TollnerSpainIvan Magalhaes RENEWAL
Julie F SchemmerSpainOnyama Limba UNQUALIFIED
Deepesh U PoquetteAustraliaStephen Shaw NEW
Kadeem W BriddickBrazilAnna Fali QUALIFIED
Alejandro T StensethRussiaElwin Sharvill RENEWAL
Munro M DilliardSpainStephen Shaw NEGOTIATION
Ashley L AmigonFranceStephen Shaw PROPOSAL
Emily N MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi H RutaRussiaAsiya Javayant RENEWAL
Murillo O MorascaGermanyAsiya Javayant QUALIFIED
Isabel W MorascaGermanyElwin Sharvill NEGOTIATION
Alejandro Z RutaAustraliaXuxue Feng QUALIFIED
Isabel B InouyeCanadaIoni Bowcher RENEWAL
Jennifer X OstroskyFranceIoni Bowcher NEW
Munro M ButtArgentinaOnyama Limba QUALIFIED
Adams Y ButtAustraliaBernardo Dominic RENEWAL
Mayumi X BowleyGermanyStephen Shaw QUALIFIED
Smith Y TollnerFranceElwin Sharvill UNQUALIFIED
Faith V ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro P CaudySpainAsiya Javayant PROPOSAL
Julie S MacleadFranceXuxue Feng NEGOTIATION
Smith N CaldareraAustraliaXuxue Feng RENEWAL
Deepesh A KolmetzSpainElwin Sharvill UNQUALIFIED
Faith L SergiSpainBernardo Dominic UNQUALIFIED
Leon C PerinSpainElwin Sharvill NEW
Kadeem G NestleAustraliaIvan Magalhaes RENEWAL
Deepesh M FollerUnited KingdomXuxue Feng UNQUALIFIED
Tony R GlickJapanOnyama Limba RENEWAL
Juan I CampainBrazilAmy Elsner RENEWAL
James P ChuiBrazilElwin Sharvill NEGOTIATION
Costa C GauchoBrazilElwin Sharvill RENEWAL
Silvio Y RimIndiaXuxue Feng UNQUALIFIED
Smith Z MaletJapanAnna Fali NEW
Aika Z SergiItalyElwin Sharvill NEGOTIATION
Darci C KuskoBrazilOnyama Limba QUALIFIED
Frozen Columns
Name
Faith Z Bolognia
Munro A Kusko
Tony R Maclead
Aditya I Garufi
Costa D Gaucho
Misaki V Glick
Izzy Y Rulapaugh
Aditya Q Marrier
Greenwood C Stenseth
Aruna E Campain
Arvin L Slusarski
Aika L Venere
Cody B Perin
Nicolas F Stockham
Deepesh N Nicka
Claire S Schemmer
Maisha U Bolognia
Mujtaba Y Glick
Maria H Kusko
Jefferson P Slusarski
Kaitlin C Venere
Sinclair P Venere
Murillo R Perin
Izzy J Tollner
Aditya B Whobrey
Sinclair N Gillian
Emily M Flosi
Faith J Chui
Octavia D Vocelka
Smith V Rim
Leja S Perin
Maria Y Waycott
Mayumi Y Venere
Adams X Morasca
Greenwood C Nestle
Julie G Flosi
Kadeem M Foller
Salvatore Z Figeroa
Juan O Gillian
Isabel I Oldroyd
Salvatore S Marrier
Aruna U Doe
Misaki P Garufi
Maria E Wieser
Johnson G Albares
Alejandro O Gaucho
Mayumi Z Oldroyd
Rodrigues H Royster
Kaitlin W Rulapaugh
Johnson D Oldroyd
IdCountryDate
1000Russia2025-06-16
1001Germany2025-06-03
1002Spain2025-06-14
1003India2025-06-16
1004Argentina2025-05-22
1005India2025-06-08
1006Canada2025-05-21
1007Brazil2025-06-13
1008Spain2025-05-21
1009Spain2025-06-15
1010Brazil2025-05-25
1011India2025-05-20
1012Spain2025-06-15
1013Italy2025-06-15
1014France2025-06-09
1015Australia2025-05-27
1016Brazil2025-06-06
1017Russia2025-05-25
1018Canada2025-05-20
1019Italy2025-06-14
1020United Kingdom2025-06-01
1021Brazil2025-05-22
1022Italy2025-05-27
1023Japan2025-06-10
1024United Kingdom2025-05-23
1025Russia2025-05-29
1026India2025-06-06
1027Italy2025-06-14
1028Germany2025-06-01
1029France2025-06-13
1030Italy2025-05-29
1031Argentina2025-06-14
1032Germany2025-05-29
1033Australia2025-05-18
1034Italy2025-06-08
1035Germany2025-06-07
1036Australia2025-05-20
1037Japan2025-06-04
1038Italy2025-06-08
1039France2025-05-29
1040Russia2025-06-05
1041Germany2025-05-22
1042India2025-05-23
1043Germany2025-05-21
1044Argentina2025-06-04
1045Spain2025-06-04
1046Argentina2025-06-07
1047India2025-05-30
1048France2025-06-10
1049Brazil2025-06-11

On-Demand Data

NameIdCountryDate
Ashley X Sergi1000India2025-06-16
Leon E Slusarski1001India2025-06-04
Adams R Iturbide1002Canada2025-05-30
Mujtaba C Chui1003Canada2025-06-12
Misaki X Dilliard1004Argentina2025-06-02
Mujtaba M Tollner1005France2025-06-06
Jeanfrancois Q Oldroyd1006Russia2025-06-09
Jeanfrancois L Ostrosky1007Australia2025-06-12
Leon D Slusarski1008Brazil2025-05-19
Deepesh L Bowley1009India2025-05-29
Jones L Sergi1010United Kingdom2025-05-26
James F Caudy1011France2025-06-10
Antonio C Marrier1012India2025-06-05
Ivar A Gillian1013Russia2025-05-30
Emily W Whobrey1014Germany2025-06-05
Maisha Q Darakjy1015Argentina2025-05-24
Jones G Butt1016Germany2025-06-10
Jennifer Z Albares1017Spain2025-05-30
Tony Z Stenseth1018Germany2025-05-18
Aruna K Slusarski1019Canada2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro V DarakjyRussiaAmy Elsner PROPOSAL
Leja U DarakjyUnited KingdomOnyama Limba PROPOSAL
Nicolas W DilliardRussiaAsiya Javayant NEGOTIATION
Claire T KolmetzJapanAsiya Javayant NEGOTIATION
Cody L DoeGermanyElwin Sharvill PROPOSAL
Rodrigues S InouyeBrazilXuxue Feng UNQUALIFIED
Julie M GarufiCanadaIoni Bowcher QUALIFIED
Maisha C VocelkaIndiaAsiya Javayant QUALIFIED
Stacey E MacleadFranceAmy Elsner UNQUALIFIED
Juan N KuskoItalyOnyama Limba UNQUALIFIED
Kaitlin H GlickFranceBernardo Dominic UNQUALIFIED
Jones B RoysterSpainBernardo Dominic RENEWAL
Leon F FlosiItalyIvan Magalhaes UNQUALIFIED
Isabel U DilliardRussiaAnna Fali PROPOSAL
Misaki D VocelkaItalyElwin Sharvill PROPOSAL
Emily C PoquetteJapanXuxue Feng RENEWAL
Leon V CaudyCanadaIvan Magalhaes NEW
Darci Q SergiIndiaAnna Fali RENEWAL
Ivar L BowleyRussiaIvan Magalhaes NEW
Izzy A NickaFranceStephen Shaw PROPOSAL
Aditya T SaylorsBrazilBernardo Dominic QUALIFIED
Mayumi L KuskoJapanAsiya Javayant RENEWAL
Jeanfrancois D WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Leon S PaprockiFranceAsiya Javayant UNQUALIFIED
Morrow Z ShinkoBrazilIoni Bowcher QUALIFIED
Salvatore Y BologniaFranceIvan Magalhaes QUALIFIED
Jefferson Y NickaSpainIvan Magalhaes QUALIFIED
Mayumi Q SchemmerIndiaElwin Sharvill UNQUALIFIED
Francesco V GillianBrazilBernardo Dominic NEW
Greenwood X WhobreyBrazilIoni Bowcher QUALIFIED
Smith N MaletBrazilStephen Shaw NEGOTIATION
Nicolas A DarakjyIndiaElwin Sharvill RENEWAL
Morrow O ButtIndiaBernardo Dominic RENEWAL
Jefferson N ChuiJapanAmy Elsner RENEWAL
Chavez L KuskoSpainStephen Shaw NEGOTIATION
Silvio T MaletUnited KingdomAsiya Javayant QUALIFIED
Antonio Q DilliardIndiaBernardo Dominic RENEWAL
Claire L RutaArgentinaXuxue Feng UNQUALIFIED
Alejandro M RutaGermanyAnna Fali UNQUALIFIED
Isabel Y MaletBrazilAsiya Javayant 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>