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
Darci Y TollnerBrazilIoni Bowcher RENEWAL
Greenwood V PoquetteAustraliaIoni Bowcher RENEWAL
Wickens I CampainArgentinaAnna Fali RENEWAL
Jennifer R CaldareraUnited KingdomXuxue Feng PROPOSAL
Smith O CaudySpainAnna Fali NEW
Leon U TollnerAustraliaOnyama Limba QUALIFIED
Aruna W OstroskyJapanElwin Sharvill NEGOTIATION
Stacey O KolmetzIndiaBernardo Dominic UNQUALIFIED
Octavia H IturbideAustraliaBernardo Dominic NEW
Salvatore R SergiSpainElwin Sharvill NEW
Maria E VenereItalyBernardo Dominic NEW
Leon I MaletArgentinaOnyama Limba RENEWAL
Morrow M GauchoSpainIvan Magalhaes PROPOSAL
Smith U SergiArgentinaElwin Sharvill NEW
Munro Y OldroydRussiaXuxue Feng NEGOTIATION
Leja R ButtJapanStephen Shaw RENEWAL
Misaki F DilliardRussiaAnna Fali UNQUALIFIED
Aditya M FollerJapanElwin Sharvill QUALIFIED
Faith O InouyeJapanBernardo Dominic NEW
Sinclair K VenereBrazilIvan Magalhaes NEW
Kadeem G GlickRussiaOnyama Limba RENEWAL
Jennifer M CampainItalyStephen Shaw UNQUALIFIED
Greenwood Q BowleyFranceOnyama Limba PROPOSAL
Francesco X MaletFranceIvan Magalhaes NEGOTIATION
Greenwood T WieserAustraliaXuxue Feng RENEWAL
Maria H GillianUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues V KuskoItalyIoni Bowcher NEW
Mujtaba P SergiCanadaIoni Bowcher NEGOTIATION
Izzy W GlickRussiaXuxue Feng PROPOSAL
Antonio P MorascaIndiaXuxue Feng NEGOTIATION
Jones G MarrierBrazilOnyama Limba NEW
Mujtaba C GarufiItalyElwin Sharvill QUALIFIED
Maria C RimCanadaAsiya Javayant RENEWAL
Leja L MaletCanadaOnyama Limba NEW
Costa U PerinBrazilStephen Shaw NEW
Aika B SergiBrazilAnna Fali NEW
Leon D RulapaughItalyElwin Sharvill UNQUALIFIED
Cody B KuskoArgentinaIoni Bowcher RENEWAL
Johnson L InouyeRussiaAmy Elsner QUALIFIED
Chavez Q FigeroaUnited KingdomStephen Shaw NEW
Leon S MaletArgentinaIoni Bowcher QUALIFIED
Arvin X ChuiGermanyIoni Bowcher NEGOTIATION
Tony Z ChuiBrazilXuxue Feng RENEWAL
Clifford X CampainJapanBernardo Dominic PROPOSAL
Jones Y CaudySpainIvan Magalhaes QUALIFIED
Izzy H AlbaresGermanyBernardo Dominic NEW
Ricardo A OldroydFranceIvan Magalhaes QUALIFIED
Stacey A BowleyUnited KingdomStephen Shaw QUALIFIED
Smith B DarakjyRussiaAmy Elsner PROPOSAL
James J WhobreySpainElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Claire G MacleadSpainOnyama Limba RENEWAL
Misaki Y StockhamJapanAnna Fali QUALIFIED
Tony Y CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Chavez C VenereGermanyAmy Elsner NEW
Johnson V OstroskySpainAnna Fali PROPOSAL
Aika U FigeroaRussiaBernardo Dominic NEGOTIATION
Silvio S KuskoItalyBernardo Dominic NEGOTIATION
Mayumi R CaldareraArgentinaStephen Shaw NEW
Aditya M IturbideUnited KingdomIvan Magalhaes QUALIFIED
Stacey E WaycottArgentinaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja L SaylorsRussia2026-06-09Rangoni Of Florence QUALIFIED29Ioni Bowcher
1001Aruna F CaldareraFrance2026-07-05Buckley Miller Wright NEW13Stephen Shaw
1002Aruna J CaldareraGermany2026-06-25Chemel, James L Cpa NEGOTIATION38Asiya Javayant
1003Jefferson L BologniaArgentina2026-06-22Chemel, James L Cpa PROPOSAL39Anna Fali
1004Jennifer V PoquetteFrance2026-06-14Feltz Printing Service NEGOTIATION39Asiya Javayant
1005Mayumi F VocelkaArgentina2026-06-13Dorl, James J Esq NEW5Asiya Javayant
1006Misaki G AlbaresRussia2026-06-12Buckley Miller Wright NEGOTIATION44Onyama Limba
1007Deepesh W CaudySpain2026-06-15Commercial Press PROPOSAL23Xuxue Feng
1008Antonio G SergiItaly2026-06-30Morlong Associates PROPOSAL82Ioni Bowcher
1009Morrow L GillianAustralia2026-07-01Feltz Printing Service UNQUALIFIED46Amy Elsner
1010Leja N BriddickCanada2026-06-27Commercial Press NEGOTIATION72Anna Fali
1011Octavia I GillianGermany2026-06-08Buckley Miller Wright QUALIFIED13Onyama Limba
1012Sinclair Z MacleadBrazil2026-06-12King, Christopher A Esq NEGOTIATION88Ivan Magalhaes
1013Stacey G NestleSpain2026-06-10Benton, John B Jr NEGOTIATION69Stephen Shaw
1014Chavez O OldroydRussia2026-06-18Feiner Bros NEW32Onyama Limba
1015Claire T MaletSpain2026-06-28Commercial Press UNQUALIFIED51Elwin Sharvill
1016Cody W AlbaresItaly2026-07-05Truhlar And Truhlar Attys PROPOSAL19Elwin Sharvill
1017Darci F VocelkaFrance2026-07-05Chemel, James L Cpa NEW16Ivan Magalhaes
1018James X GauchoUnited Kingdom2026-06-24Dorl, James J Esq RENEWAL24Stephen Shaw
1019Nicolas U ButtAustralia2026-06-29Dorl, James J Esq NEGOTIATION58Xuxue Feng
1020Munro L VocelkaRussia2026-06-29Chapman, Ross E Esq RENEWAL71Asiya Javayant
1021Tony I MorascaRussia2026-06-07Commercial Press NEW96Stephen Shaw
1022Faith S KuskoBrazil2026-06-07Buckley Miller Wright UNQUALIFIED73Ioni Bowcher
1023Juan L StensethCanada2026-06-14Rousseaux, Michael Esq PROPOSAL24Bernardo Dominic
1024Munro S SlusarskiBrazil2026-06-28Dorl, James J Esq PROPOSAL82Asiya Javayant
1025Ricardo V CaudyArgentina2026-07-02Chapman, Ross E Esq PROPOSAL79Onyama Limba
1026Salvatore O ChuiSpain2026-06-17Feiner Bros UNQUALIFIED3Amy Elsner
1027Kaitlin B GillianCanada2026-06-11Morlong Associates UNQUALIFIED15Bernardo Dominic
1028Jeanfrancois T OldroydGermany2026-06-11Benton, John B Jr PROPOSAL33Onyama Limba
1029Julie R SchemmerUnited Kingdom2026-06-27Commercial Press QUALIFIED21Ioni Bowcher
1030Jefferson K StockhamUnited Kingdom2026-06-16Benton, John B Jr QUALIFIED70Bernardo Dominic
1031Maria V BowleyUnited Kingdom2026-06-23Printing Dimensions PROPOSAL96Onyama Limba
1032Nicolas R BologniaIndia2026-06-12Dorl, James J Esq UNQUALIFIED74Anna Fali
1033Jefferson T WaycottIndia2026-06-20Feiner Bros UNQUALIFIED2Amy Elsner
1034Rodrigues L OstroskyJapan2026-06-20Rangoni Of Florence UNQUALIFIED45Elwin Sharvill
1035Ivar W OldroydFrance2026-06-16Rangoni Of Florence NEW35Amy Elsner
1036Nicolas Y GillianGermany2026-06-21Rangoni Of Florence PROPOSAL12Asiya Javayant
1037Cody P KuskoIndia2026-07-03Chemel, James L Cpa RENEWAL74Bernardo Dominic
1038Stacey U CaldareraItaly2026-06-10Commercial Press RENEWAL66Anna Fali
1039Aditya J SlusarskiRussia2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED13Amy Elsner
1040Munro K PaprockiFrance2026-06-22Morlong Associates RENEWAL3Onyama Limba
1041Silvio R NickaJapan2026-06-13Feiner Bros PROPOSAL39Bernardo Dominic
1042Maria I CaldareraCanada2026-06-25Chemel, James L Cpa QUALIFIED22Ioni Bowcher
1043Sinclair O DarakjyUnited Kingdom2026-06-15Truhlar And Truhlar Attys RENEWAL88Ivan Magalhaes
1044Leon X SchemmerSpain2026-06-07Chanay, Jeffrey A Esq NEGOTIATION18Ivan Magalhaes
1045Juan Q ShinkoJapan2026-07-06Benton, John B Jr RENEWAL55Bernardo Dominic
1046Nicolas O DilliardAustralia2026-06-27Rangoni Of Florence RENEWAL8Amy Elsner
1047Jones D PerinIndia2026-06-12Rousseaux, Michael Esq NEGOTIATION67Onyama Limba
1048Arvin X NestleIndia2026-06-10Buckley Miller Wright NEW43Anna Fali
1049Sinclair P AlbaresFrance2026-06-22Chanay, Jeffrey A Esq UNQUALIFIED80Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Adams E FollerRussiaIoni Bowcher QUALIFIED
Johnson L RulapaughFranceXuxue Feng UNQUALIFIED
Leja O GarufiUnited KingdomBernardo Dominic RENEWAL
Chavez X FlosiFranceBernardo Dominic QUALIFIED
Leon A RutaUnited KingdomAmy Elsner QUALIFIED
Morrow I MacleadAustraliaXuxue Feng UNQUALIFIED
Maria Q CaldareraFranceBernardo Dominic QUALIFIED
Juan Q GlickIndiaIvan Magalhaes PROPOSAL
Izzy R OstroskySpainAmy Elsner UNQUALIFIED
Emily G SlusarskiIndiaAmy Elsner RENEWAL
Clifford H WhobreyFranceIvan Magalhaes NEW
Leon Y DilliardUnited KingdomAnna Fali UNQUALIFIED
Maisha K FerenczBrazilStephen Shaw NEGOTIATION
James S FlosiAustraliaAnna Fali UNQUALIFIED
Emily E PerinIndiaElwin Sharvill NEGOTIATION
Smith J MorascaCanadaOnyama Limba QUALIFIED
Izzy J MarrierJapanXuxue Feng PROPOSAL
Clifford A FigeroaRussiaIvan Magalhaes QUALIFIED
Mayumi X MorascaItalyAmy Elsner NEW
Claire K SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Darci J RulapaughFranceIoni Bowcher UNQUALIFIED
Leon G FerenczBrazilAsiya Javayant RENEWAL
Munro E MaletRussiaOnyama Limba NEGOTIATION
Morrow S OldroydSpainElwin Sharvill PROPOSAL
Jennifer S GillianSpainElwin Sharvill UNQUALIFIED
Greenwood F ShinkoArgentinaOnyama Limba RENEWAL
Julie H SlusarskiArgentinaAmy Elsner UNQUALIFIED
Ivar T BologniaRussiaAnna Fali RENEWAL
Kaitlin T SergiItalyAnna Fali UNQUALIFIED
Kaitlin P ButtArgentinaIvan Magalhaes RENEWAL
Cody U IturbideRussiaXuxue Feng PROPOSAL
Izzy G MarrierGermanyBernardo Dominic RENEWAL
Aditya S OstroskyRussiaStephen Shaw UNQUALIFIED
Darci U BriddickFranceStephen Shaw RENEWAL
Morrow P ButtItalyElwin Sharvill NEGOTIATION
Arvin D RutaFranceBernardo Dominic UNQUALIFIED
Octavia V OldroydAustraliaAnna Fali PROPOSAL
Rodrigues D OstroskyFranceAsiya Javayant PROPOSAL
Jeanfrancois B FerenczUnited KingdomIvan Magalhaes QUALIFIED
Alejandro R ButtRussiaStephen Shaw NEGOTIATION
Jefferson N PoquetteJapanAsiya Javayant RENEWAL
Ashley R PaprockiAustraliaXuxue Feng QUALIFIED
Morrow N CaldareraUnited KingdomStephen Shaw PROPOSAL
Maisha P RutaJapanXuxue Feng UNQUALIFIED
Aruna Z FlosiGermanyElwin Sharvill QUALIFIED
Julie I MaletFranceAsiya Javayant RENEWAL
Claire S SlusarskiBrazilStephen Shaw RENEWAL
Leja Q DilliardUnited KingdomAnna Fali UNQUALIFIED
Octavia S MorascaFranceAnna Fali NEGOTIATION
Rodrigues I KolmetzSpainOnyama Limba RENEWAL
Frozen Columns
Name
Izzy U Figeroa
Mayumi P Flosi
Aika T Royster
Stacey P Paprocki
Jeanfrancois B Glick
Aruna I Caudy
Leon V Gillian
Deepesh E Malet
Julie S Paprocki
Francesco U Flosi
Sinclair M Nicka
Jennifer P Ferencz
Aditya R Foller
Ivar Z Morasca
Alejandro X Wieser
Izzy D Sergi
Maisha L Caldarera
Francesco K Nestle
James U Bolognia
Munro Q Vocelka
Maria O Perin
Arvin T Gillian
Jefferson R Flosi
Ashley Q Saylors
Jones I Stenseth
Leja V Vocelka
Faith C Amigon
Aditya Y Poquette
Izzy F Vocelka
Ivar U Gillian
Chavez A Wieser
Kaitlin S Sergi
Izzy H Albares
Leja K Rulapaugh
James Y Whobrey
Izzy F Shinko
Aika K Slusarski
Ricardo V Inouye
Juan R Waycott
Claire S Rulapaugh
Francesco W Darakjy
Munro O Malet
Mujtaba Q Iturbide
Maria Q Wieser
Silvio V Flosi
Deepesh E Flosi
Salvatore T Rim
Kaitlin W Whobrey
Misaki W Caldarera
Morrow T Caldarera
IdCountryDate
1000Germany2026-06-27
1001Canada2026-06-10
1002Russia2026-06-26
1003Russia2026-06-09
1004Canada2026-06-25
1005Brazil2026-06-16
1006Australia2026-06-19
1007Germany2026-06-23
1008India2026-06-08
1009France2026-06-14
1010Australia2026-06-20
1011Italy2026-06-11
1012Japan2026-06-20
1013United Kingdom2026-06-15
1014Russia2026-06-23
1015United Kingdom2026-06-29
1016Argentina2026-06-15
1017France2026-06-29
1018Italy2026-06-18
1019Canada2026-06-21
1020Spain2026-06-22
1021Brazil2026-06-20
1022Spain2026-06-16
1023United Kingdom2026-06-11
1024Argentina2026-06-19
1025Australia2026-06-30
1026Canada2026-06-30
1027Italy2026-06-12
1028United Kingdom2026-06-21
1029Italy2026-06-29
1030United Kingdom2026-06-16
1031Brazil2026-06-17
1032United Kingdom2026-06-07
1033India2026-07-05
1034Australia2026-06-18
1035Argentina2026-07-04
1036Germany2026-07-05
1037Australia2026-06-19
1038Canada2026-06-26
1039France2026-06-18
1040Italy2026-06-10
1041Brazil2026-06-26
1042United Kingdom2026-07-04
1043Russia2026-07-01
1044Canada2026-06-08
1045Canada2026-06-16
1046Spain2026-07-01
1047Russia2026-06-09
1048India2026-07-01
1049Russia2026-06-08

On-Demand Data

NameIdCountryDate
David R Oldroyd1000Canada2026-07-02
James Q Sergi1001Japan2026-06-19
Deepesh V Gaucho1002Japan2026-06-23
Cody Q Royster1003Japan2026-06-18
Jennifer G Caudy1004Canada2026-06-16
Kaitlin P Inouye1005Canada2026-06-13
Salvatore P Royster1006India2026-06-20
Maisha P Briddick1007India2026-06-18
Maria Z Schemmer1008France2026-06-16
Ricardo Y Albares1009Germany2026-06-19
Murillo V Shinko1010India2026-06-11
Emily C Nestle1011Russia2026-06-16
Adams E Wieser1012Japan2026-06-13
Maisha A Inouye1013Russia2026-06-25
Aruna P Malet1014France2026-06-10
Munro L Morasca1015Argentina2026-06-07
Morrow Y Iturbide1016Spain2026-06-27
Ashley S Caudy1017Italy2026-06-22
Nicolas H Nicka1018Spain2026-07-05
Tony Z Gillian1019Spain2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois E CaudyArgentinaXuxue Feng RENEWAL
Emily X InouyeBrazilElwin Sharvill NEW
Antonio D AmigonUnited KingdomBernardo Dominic NEGOTIATION
Ricardo R AlbaresArgentinaBernardo Dominic UNQUALIFIED
Alejandro H MorascaRussiaAmy Elsner PROPOSAL
Munro B AlbaresAustraliaStephen Shaw QUALIFIED
Salvatore Q MarrierGermanyBernardo Dominic PROPOSAL
Ricardo D FollerJapanElwin Sharvill NEGOTIATION
Claire H SlusarskiGermanyOnyama Limba RENEWAL
Claire H SlusarskiRussiaAnna Fali NEW
Rodrigues J SlusarskiIndiaIvan Magalhaes PROPOSAL
Wickens K MorascaFranceBernardo Dominic NEW
Julie O MorascaItalyBernardo Dominic QUALIFIED
Chavez X TollnerIndiaAnna Fali PROPOSAL
Aditya F MaletBrazilAmy Elsner UNQUALIFIED
Tony C SchemmerRussiaStephen Shaw RENEWAL
Faith L MarrierGermanyElwin Sharvill NEW
Mujtaba D KuskoSpainElwin Sharvill PROPOSAL
Munro T MaletBrazilBernardo Dominic QUALIFIED
Aditya R MarrierFranceOnyama Limba RENEWAL
Francesco Z MaletAustraliaAmy Elsner NEW
Sinclair H RimRussiaXuxue Feng RENEWAL
James H DilliardFranceIoni Bowcher PROPOSAL
Leja D DarakjyGermanyOnyama Limba RENEWAL
Ricardo J CampainUnited KingdomIvan Magalhaes QUALIFIED
Jefferson W KuskoFranceOnyama Limba UNQUALIFIED
Kadeem P BologniaRussiaIoni Bowcher NEW
Maisha D ChuiAustraliaAmy Elsner UNQUALIFIED
Darci T VenereCanadaIoni Bowcher PROPOSAL
Silvio Z SergiJapanAsiya Javayant QUALIFIED
Darci N StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Maisha C PerinIndiaOnyama Limba QUALIFIED
Ivar V AlbaresJapanBernardo Dominic NEW
Nicolas W FigeroaAustraliaAsiya Javayant RENEWAL
Jefferson P MacleadBrazilIoni Bowcher PROPOSAL
Silvio K RoysterRussiaIvan Magalhaes NEW
Ashley O RoysterUnited KingdomOnyama Limba NEW
Adams L SaylorsItalyAnna Fali NEW
Arvin Y WaycottSpainStephen Shaw UNQUALIFIED
Ashley Z KuskoIndiaIoni Bowcher 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>