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
Aika A GauchoBrazilIvan Magalhaes QUALIFIED
Nicolas U DoeAustraliaBernardo Dominic PROPOSAL
Stacey M DilliardSpainStephen Shaw RENEWAL
Adams P DilliardUnited KingdomAmy Elsner NEW
Salvatore X OstroskyIndiaStephen Shaw QUALIFIED
Alejandro Y GillianUnited KingdomElwin Sharvill PROPOSAL
Rodrigues I ButtGermanyOnyama Limba NEW
Greenwood Q DoeCanadaAsiya Javayant NEW
Mayumi V MarrierBrazilOnyama Limba RENEWAL
Cody C SaylorsUnited KingdomIvan Magalhaes RENEWAL
Kaitlin L WaycottUnited KingdomAnna Fali QUALIFIED
Maisha C FerenczFranceOnyama Limba NEW
Ricardo C MacleadAustraliaAnna Fali NEW
Murillo L DarakjySpainIvan Magalhaes NEW
Sinclair P BowleyGermanyIoni Bowcher NEGOTIATION
Salvatore G GarufiItalyIoni Bowcher RENEWAL
Leon T BowleyAustraliaAsiya Javayant QUALIFIED
Aruna A RimCanadaIoni Bowcher RENEWAL
Sinclair S FlosiJapanIvan Magalhaes NEW
Chavez N MorascaJapanStephen Shaw QUALIFIED
Munro E FlosiItalyXuxue Feng UNQUALIFIED
Morrow O AlbaresArgentinaOnyama Limba RENEWAL
Ivar P SlusarskiBrazilAsiya Javayant QUALIFIED
Juan W BowleyUnited KingdomElwin Sharvill NEW
Antonio C DoeRussiaBernardo Dominic QUALIFIED
Misaki I AlbaresIndiaAsiya Javayant RENEWAL
Jennifer D VocelkaSpainAmy Elsner NEW
Wickens K KolmetzJapanElwin Sharvill QUALIFIED
Salvatore Z CaldareraSpainBernardo Dominic UNQUALIFIED
Jeanfrancois F RutaBrazilIoni Bowcher QUALIFIED
Julie E VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Adams W RoysterItalyOnyama Limba NEW
Aruna C SaylorsGermanyOnyama Limba RENEWAL
Jefferson H FerenczUnited KingdomStephen Shaw UNQUALIFIED
Alejandro X CaldareraFranceAsiya Javayant UNQUALIFIED
James O NestleBrazilElwin Sharvill NEGOTIATION
Salvatore I PerinFranceIoni Bowcher RENEWAL
Chavez V ChuiFranceXuxue Feng RENEWAL
Stacey M AmigonItalyAnna Fali NEGOTIATION
Jennifer Q PaprockiIndiaBernardo Dominic RENEWAL
Julie G CaudyFranceIvan Magalhaes NEGOTIATION
Kadeem G BowleyBrazilOnyama Limba PROPOSAL
Juan X GlickFranceOnyama Limba PROPOSAL
Julie Y NickaAustraliaElwin Sharvill QUALIFIED
Wickens M CaudyFranceIvan Magalhaes UNQUALIFIED
Adams G MaletItalyIvan Magalhaes UNQUALIFIED
Izzy V PerinCanadaIvan Magalhaes QUALIFIED
Leja J VocelkaRussiaXuxue Feng NEGOTIATION
Mayumi G ChuiArgentinaIoni Bowcher UNQUALIFIED
Nicolas G DoeGermanyStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin K StockhamBrazilStephen Shaw NEGOTIATION
Octavia G PerinJapanAmy Elsner PROPOSAL
Leja I SchemmerIndiaIoni Bowcher PROPOSAL
Cody M WhobreyAustraliaOnyama Limba RENEWAL
Emily A InouyeCanadaBernardo Dominic NEGOTIATION
Alejandro T RulapaughBrazilStephen Shaw QUALIFIED
Ricardo R RutaItalyBernardo Dominic NEGOTIATION
Maria J BologniaUnited KingdomStephen Shaw NEW
Mayumi K OstroskyAustraliaXuxue Feng QUALIFIED
Misaki B FlosiArgentinaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith P PerinGermany2026-07-27Morlong Associates NEW29Elwin Sharvill
1001Faith U VenereBrazil2026-08-07Benton, John B Jr UNQUALIFIED1Asiya Javayant
1002Ricardo C VocelkaRussia2026-07-29Buckley Miller Wright RENEWAL92Ioni Bowcher
1003Johnson O BologniaSpain2026-07-17Morlong Associates UNQUALIFIED47Anna Fali
1004Salvatore D GauchoJapan2026-08-07Feltz Printing Service NEGOTIATION90Elwin Sharvill
1005Wickens F MorascaAustralia2026-08-02Benton, John B Jr NEW43Elwin Sharvill
1006Julie R StensethAustralia2026-08-14Rangoni Of Florence NEW37Stephen Shaw
1007Deepesh S SergiCanada2026-07-27Printing Dimensions QUALIFIED50Xuxue Feng
1008Murillo T IturbideCanada2026-08-10Feltz Printing Service UNQUALIFIED67Elwin Sharvill
1009Francesco Y WieserArgentina2026-07-21Commercial Press NEGOTIATION75Onyama Limba
1010Octavia T OldroydAustralia2026-08-15Feiner Bros QUALIFIED76Elwin Sharvill
1011Izzy I GlickAustralia2026-08-05King, Christopher A Esq NEGOTIATION17Asiya Javayant
1012Leon C StensethRussia2026-08-12Feltz Printing Service QUALIFIED24Bernardo Dominic
1013Emily S BowleyJapan2026-07-17Dorl, James J Esq PROPOSAL74Asiya Javayant
1014Wickens A DarakjyRussia2026-07-28Morlong Associates QUALIFIED46Ivan Magalhaes
1015Darci Z SergiSpain2026-08-01Buckley Miller Wright PROPOSAL59Amy Elsner
1016Kadeem G VocelkaArgentina2026-08-04Benton, John B Jr UNQUALIFIED55Ivan Magalhaes
1017Faith D WieserCanada2026-08-09Chapman, Ross E Esq NEW25Onyama Limba
1018Aika N SergiUnited Kingdom2026-07-19Printing Dimensions NEGOTIATION21Stephen Shaw
1019Faith Y PerinSpain2026-08-11Rousseaux, Michael Esq UNQUALIFIED24Anna Fali
1020Wickens G WhobreyAustralia2026-08-07Printing Dimensions PROPOSAL68Xuxue Feng
1021Smith M SaylorsArgentina2026-07-31Printing Dimensions UNQUALIFIED61Ioni Bowcher
1022Mayumi P TollnerAustralia2026-08-02Chanay, Jeffrey A Esq QUALIFIED48Ivan Magalhaes
1023Salvatore I MorascaIndia2026-07-22Buckley Miller Wright NEGOTIATION3Stephen Shaw
1024Morrow I NestleCanada2026-07-24Chapman, Ross E Esq QUALIFIED16Asiya Javayant
1025Munro V WhobreyFrance2026-08-12Benton, John B Jr NEW82Ioni Bowcher
1026Maisha W BologniaArgentina2026-07-19Rangoni Of Florence RENEWAL55Bernardo Dominic
1027James R KuskoGermany2026-07-27Feiner Bros UNQUALIFIED56Ivan Magalhaes
1028Clifford G OstroskyFrance2026-08-05Rangoni Of Florence NEGOTIATION89Asiya Javayant
1029Jeanfrancois R MacleadBrazil2026-07-19Printing Dimensions PROPOSAL7Anna Fali
1030Antonio O AmigonArgentina2026-08-11Chanay, Jeffrey A Esq QUALIFIED54Anna Fali
1031Clifford H RutaItaly2026-07-26Morlong Associates QUALIFIED12Asiya Javayant
1032Francesco O RutaIndia2026-07-29Rangoni Of Florence QUALIFIED51Bernardo Dominic
1033Johnson B DoeArgentina2026-07-20Buckley Miller Wright RENEWAL60Anna Fali
1034Isabel I PerinBrazil2026-08-01Morlong Associates RENEWAL72Stephen Shaw
1035Silvio C ShinkoUnited Kingdom2026-08-08Chapman, Ross E Esq UNQUALIFIED7Onyama Limba
1036Octavia U AlbaresAustralia2026-07-20Truhlar And Truhlar Attys PROPOSAL38Elwin Sharvill
1037Kaitlin O SchemmerSpain2026-08-09Rousseaux, Michael Esq NEGOTIATION0Xuxue Feng
1038Izzy B CampainIndia2026-07-18Chanay, Jeffrey A Esq NEGOTIATION57Asiya Javayant
1039Sinclair D MarrierItaly2026-07-24Printing Dimensions QUALIFIED68Anna Fali
1040Morrow M StensethArgentina2026-08-03Feltz Printing Service UNQUALIFIED20Bernardo Dominic
1041David Y KuskoSpain2026-08-04Rangoni Of Florence UNQUALIFIED11Xuxue Feng
1042Isabel V NestleArgentina2026-07-26Benton, John B Jr NEGOTIATION94Xuxue Feng
1043Jeanfrancois V GauchoCanada2026-08-12Dorl, James J Esq PROPOSAL53Anna Fali
1044Munro J NestleAustralia2026-07-26Commercial Press NEW91Anna Fali
1045James A GlickGermany2026-07-26Chemel, James L Cpa NEGOTIATION90Ioni Bowcher
1046Leon H BriddickSpain2026-07-24Benton, John B Jr PROPOSAL25Xuxue Feng
1047Greenwood N GarufiBrazil2026-08-09Chemel, James L Cpa UNQUALIFIED53Stephen Shaw
1048Kaitlin X VocelkaRussia2026-07-26Rousseaux, Michael Esq NEW38Anna Fali
1049Juan W GarufiGermany2026-08-07Rousseaux, Michael Esq PROPOSAL35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson C BowleySpainOnyama Limba PROPOSAL
David P RulapaughRussiaStephen Shaw RENEWAL
Ashley T StockhamJapanIoni Bowcher PROPOSAL
Mujtaba F KolmetzAustraliaOnyama Limba NEW
Ricardo B MaletItalyAsiya Javayant PROPOSAL
Octavia X SchemmerGermanyIoni Bowcher PROPOSAL
Alejandro O IturbideItalyXuxue Feng UNQUALIFIED
Jennifer P TollnerAustraliaStephen Shaw NEGOTIATION
Juan R WieserCanadaIoni Bowcher QUALIFIED
Mujtaba P FlosiFranceXuxue Feng NEW
Ricardo W DilliardBrazilElwin Sharvill UNQUALIFIED
Octavia W VocelkaArgentinaStephen Shaw QUALIFIED
Mujtaba V KuskoIndiaElwin Sharvill NEW
Costa X FigeroaRussiaAsiya Javayant QUALIFIED
Jefferson H NickaBrazilAmy Elsner UNQUALIFIED
Sinclair V FerenczIndiaBernardo Dominic RENEWAL
James V FlosiUnited KingdomStephen Shaw QUALIFIED
David D VocelkaBrazilOnyama Limba NEW
Clifford B FollerGermanyAsiya Javayant UNQUALIFIED
Alejandro T FigeroaBrazilAnna Fali QUALIFIED
Johnson K KolmetzAustraliaBernardo Dominic RENEWAL
Munro S AmigonRussiaXuxue Feng PROPOSAL
Aruna C ChuiRussiaXuxue Feng UNQUALIFIED
Morrow W WieserFranceElwin Sharvill RENEWAL
Alejandro L SchemmerAustraliaOnyama Limba NEW
Emily M ChuiUnited KingdomStephen Shaw NEW
Julie E OstroskyUnited KingdomOnyama Limba QUALIFIED
Juan P CaldareraCanadaOnyama Limba NEW
Julie H KolmetzFranceAsiya Javayant NEW
Leja L ButtItalyIoni Bowcher NEGOTIATION
Jefferson A NestleSpainBernardo Dominic RENEWAL
Aditya Y WaycottSpainAmy Elsner NEW
Chavez T OstroskyCanadaIvan Magalhaes NEW
Darci L GlickBrazilElwin Sharvill QUALIFIED
Antonio H BriddickArgentinaAmy Elsner NEW
Wickens L IturbideItalyAsiya Javayant NEW
Costa J AlbaresUnited KingdomBernardo Dominic PROPOSAL
Munro L FerenczIndiaAmy Elsner UNQUALIFIED
Jefferson O PaprockiCanadaAnna Fali UNQUALIFIED
Costa J DarakjyArgentinaBernardo Dominic NEGOTIATION
Adams J BowleyGermanyAnna Fali QUALIFIED
Mayumi N WieserAustraliaAnna Fali NEW
Greenwood O BriddickGermanyAmy Elsner NEW
Munro Y SchemmerBrazilAmy Elsner NEGOTIATION
Maria N PerinArgentinaIvan Magalhaes NEW
Leja X CaldareraIndiaOnyama Limba RENEWAL
Murillo P PerinJapanAmy Elsner NEW
Deepesh U PerinJapanAnna Fali NEGOTIATION
Salvatore F VenereIndiaBernardo Dominic NEGOTIATION
Silvio N ChuiUnited KingdomIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Maisha V Vocelka
Morrow K Campain
Clifford D Stockham
Emily B Flosi
Darci Y Rim
Smith D Amigon
David Y Vocelka
Jennifer J Caudy
Leja K Amigon
Faith Q Poquette
Sinclair Y Maclead
Wickens E Venere
Chavez L Garufi
Alejandro D Flosi
Nicolas G Rulapaugh
Silvio B Malet
Alejandro Y Inouye
Chavez T Waycott
Chavez S Vocelka
Tony B Sergi
Ashley J Stenseth
Izzy R Gillian
Alejandro M Iturbide
Jefferson F Poquette
Murillo D Waycott
Maria Y Whobrey
Johnson W Ostrosky
Maria H Marrier
Aika U Campain
Costa M Nicka
Salvatore M Campain
Antonio F Saylors
Jefferson Z Flosi
Arvin D Kusko
Ivar U Darakjy
Sinclair L Gillian
Isabel G Iturbide
Arvin Q Kusko
Jeanfrancois P Marrier
Sinclair U Kusko
Izzy P Stenseth
Aika H Dilliard
Nicolas F Doe
Octavia L Malet
Cody W Caldarera
Maisha P Venere
Claire H Doe
Kadeem O Venere
Maisha V Venere
Sinclair V Maclead
IdCountryDate
1000Australia2026-07-29
1001India2026-07-17
1002Spain2026-07-25
1003Japan2026-08-13
1004Japan2026-07-19
1005United Kingdom2026-07-26
1006Argentina2026-08-06
1007Russia2026-07-30
1008Spain2026-07-28
1009United Kingdom2026-08-02
1010Italy2026-07-20
1011Japan2026-08-10
1012France2026-07-27
1013France2026-08-04
1014Argentina2026-08-10
1015United Kingdom2026-07-17
1016Germany2026-07-28
1017Spain2026-07-25
1018Japan2026-08-10
1019Germany2026-08-07
1020Germany2026-08-12
1021Canada2026-08-12
1022Australia2026-08-10
1023Australia2026-07-25
1024Australia2026-08-10
1025Germany2026-08-04
1026Brazil2026-08-10
1027Japan2026-08-15
1028Argentina2026-08-12
1029Argentina2026-07-26
1030Russia2026-08-13
1031United Kingdom2026-08-03
1032Germany2026-07-19
1033Brazil2026-07-20
1034Australia2026-08-11
1035United Kingdom2026-08-13
1036Russia2026-07-28
1037Italy2026-07-30
1038Spain2026-07-25
1039Russia2026-08-14
1040France2026-08-04
1041India2026-07-21
1042Russia2026-08-15
1043France2026-07-23
1044Brazil2026-07-20
1045Argentina2026-08-11
1046Argentina2026-08-04
1047Germany2026-07-17
1048Brazil2026-08-14
1049Italy2026-08-01

On-Demand Data

NameIdCountryDate
James H Tollner1000Argentina2026-08-09
Jefferson C Wieser1001Russia2026-08-04
Nicolas E Stenseth1002Argentina2026-07-20
Silvio I Morasca1003United Kingdom2026-08-04
Izzy T Schemmer1004United Kingdom2026-08-03
Ashley K Sergi1005Italy2026-08-12
Jennifer N Inouye1006Argentina2026-07-17
Claire R Ferencz1007Japan2026-07-19
Leon G Wieser1008Australia2026-07-23
Rodrigues C Foller1009Argentina2026-07-29
Johnson Q Doe1010Spain2026-08-03
Clifford X Perin1011Australia2026-08-12
Greenwood M Gaucho1012Australia2026-08-04
Deepesh H Albares1013United Kingdom2026-08-14
Jefferson E Tollner1014Australia2026-08-03
Smith V Kolmetz1015Russia2026-08-02
Rodrigues D Campain1016Russia2026-08-08
Aika V Amigon1017Japan2026-07-20
Francesco R Inouye1018Australia2026-07-28
Tony E Foller1019United Kingdom2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Q NestleIndiaXuxue Feng PROPOSAL
David C RutaRussiaAmy Elsner NEW
Johnson S WhobreyAustraliaStephen Shaw QUALIFIED
Jennifer Q SchemmerFranceAsiya Javayant RENEWAL
Claire P CampainSpainAnna Fali QUALIFIED
Stacey E GlickUnited KingdomXuxue Feng RENEWAL
Mayumi O GarufiBrazilElwin Sharvill NEGOTIATION
Juan G SergiJapanOnyama Limba RENEWAL
Clifford V NickaRussiaStephen Shaw QUALIFIED
Jennifer J PaprockiBrazilXuxue Feng NEGOTIATION
Alejandro P DoeBrazilOnyama Limba UNQUALIFIED
Mujtaba G KolmetzGermanyElwin Sharvill NEW
Clifford O CampainCanadaBernardo Dominic PROPOSAL
Francesco Z FigeroaBrazilIoni Bowcher QUALIFIED
Kadeem C SlusarskiFranceIvan Magalhaes QUALIFIED
Stacey Q FigeroaFranceIoni Bowcher NEW
Aruna Q RoysterCanadaAsiya Javayant UNQUALIFIED
Kaitlin U PoquetteJapanIvan Magalhaes UNQUALIFIED
Arvin Y DoeGermanyXuxue Feng RENEWAL
Leon W KuskoArgentinaAnna Fali UNQUALIFIED
Aditya L ShinkoItalyAnna Fali QUALIFIED
Tony J NestleRussiaIoni Bowcher NEGOTIATION
Aruna Z GauchoAustraliaAsiya Javayant UNQUALIFIED
Misaki H MacleadUnited KingdomIoni Bowcher RENEWAL
Costa W GillianBrazilIvan Magalhaes QUALIFIED
Mayumi X TollnerFranceBernardo Dominic NEW
Aika S RimFranceAmy Elsner NEW
Salvatore X BowleyFranceIvan Magalhaes NEGOTIATION
Johnson I MaletJapanBernardo Dominic UNQUALIFIED
Sinclair C BologniaRussiaElwin Sharvill NEGOTIATION
Mujtaba F KuskoItalyBernardo Dominic RENEWAL
Julie Y RimRussiaIvan Magalhaes QUALIFIED
Rodrigues F FollerItalyOnyama Limba RENEWAL
Deepesh R PoquetteSpainBernardo Dominic PROPOSAL
Morrow U NestleArgentinaElwin Sharvill RENEWAL
Arvin Z CaldareraAustraliaElwin Sharvill UNQUALIFIED
David Q RulapaughRussiaIoni Bowcher NEGOTIATION
Jeanfrancois P GillianItalyAnna Fali PROPOSAL
Aika R FigeroaAustraliaBernardo Dominic RENEWAL
Adams S GauchoArgentinaOnyama Limba 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>