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 W NickaJapanBernardo Dominic NEGOTIATION
Wickens D KuskoUnited KingdomElwin Sharvill RENEWAL
Maisha K KolmetzAustraliaOnyama Limba NEGOTIATION
Jefferson H MorascaRussiaIoni Bowcher NEGOTIATION
Julie J BowleyItalyIvan Magalhaes RENEWAL
Misaki F RimGermanyBernardo Dominic NEGOTIATION
Juan T CampainSpainXuxue Feng NEW
Kadeem G GlickCanadaAmy Elsner NEGOTIATION
Tony M RutaIndiaAsiya Javayant PROPOSAL
Misaki R RoysterGermanyStephen Shaw RENEWAL
Ashley V SlusarskiCanadaAmy Elsner UNQUALIFIED
Mayumi P FerenczRussiaOnyama Limba QUALIFIED
Alejandro Q WieserArgentinaXuxue Feng PROPOSAL
Silvio M ChuiJapanIvan Magalhaes UNQUALIFIED
Leja B ShinkoRussiaIvan Magalhaes NEGOTIATION
Jennifer S PerinIndiaAnna Fali PROPOSAL
Murillo Q AlbaresGermanyBernardo Dominic UNQUALIFIED
Morrow I GauchoSpainStephen Shaw UNQUALIFIED
David S CaudyUnited KingdomXuxue Feng NEGOTIATION
Darci W ShinkoSpainAnna Fali PROPOSAL
Aditya C NickaAustraliaBernardo Dominic RENEWAL
Costa B TollnerGermanyAsiya Javayant QUALIFIED
Adams U TollnerGermanyIvan Magalhaes NEGOTIATION
Jones C MorascaBrazilXuxue Feng NEW
Arvin R MaletArgentinaAsiya Javayant PROPOSAL
James I MaletUnited KingdomElwin Sharvill RENEWAL
Izzy V RoysterIndiaElwin Sharvill NEGOTIATION
Jefferson M RulapaughIndiaOnyama Limba RENEWAL
Octavia O BowleyJapanXuxue Feng QUALIFIED
Deepesh G FerenczFranceAnna Fali PROPOSAL
Murillo Y BologniaIndiaIvan Magalhaes QUALIFIED
Emily V VocelkaAustraliaBernardo Dominic RENEWAL
Faith E RimAustraliaElwin Sharvill RENEWAL
David N RulapaughIndiaIoni Bowcher NEGOTIATION
Maisha P MarrierItalyXuxue Feng NEW
Ivar G VocelkaCanadaElwin Sharvill NEW
Clifford Q GauchoIndiaAsiya Javayant NEGOTIATION
Aruna A CaldareraUnited KingdomIoni Bowcher NEW
Clifford I DarakjyBrazilOnyama Limba RENEWAL
Leon T KuskoBrazilOnyama Limba PROPOSAL
David U WieserFranceAnna Fali PROPOSAL
Chavez S PerinRussiaAnna Fali RENEWAL
Chavez H WhobreyCanadaIoni Bowcher QUALIFIED
Smith F PerinSpainStephen Shaw NEW
Izzy B CaudyAustraliaAsiya Javayant PROPOSAL
Tony R DilliardItalyElwin Sharvill NEGOTIATION
Octavia S StensethItalyAnna Fali NEW
Maisha Y TollnerBrazilAnna Fali RENEWAL
Maisha Z InouyeGermanyAnna Fali PROPOSAL
Arvin V OldroydBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin B MarrierFranceOnyama Limba UNQUALIFIED
Chavez F DarakjyArgentinaElwin Sharvill NEW
Salvatore A RimRussiaXuxue Feng QUALIFIED
Cody Q PoquetteGermanyXuxue Feng RENEWAL
Stacey T WhobreyAustraliaIoni Bowcher UNQUALIFIED
Arvin L SergiCanadaAnna Fali NEW
Arvin E MaletSpainAsiya Javayant NEGOTIATION
Johnson I NestleFranceStephen Shaw RENEWAL
Deepesh Q CaldareraIndiaIvan Magalhaes NEW
Antonio W WhobreyUnited KingdomAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha S AlbaresBrazil2026-07-04King, Christopher A Esq NEGOTIATION58Asiya Javayant
1001Arvin Y ButtItaly2026-07-17Buckley Miller Wright QUALIFIED14Onyama Limba
1002Izzy R DarakjyAustralia2026-07-11Truhlar And Truhlar Attys NEGOTIATION51Bernardo Dominic
1003Wickens U SlusarskiGermany2026-07-18Morlong Associates RENEWAL63Stephen Shaw
1004Octavia I MaletJapan2026-07-01Feltz Printing Service RENEWAL65Ivan Magalhaes
1005Juan E MorascaIndia2026-07-11Chemel, James L Cpa QUALIFIED22Anna Fali
1006Antonio N MaletGermany2026-07-30Dorl, James J Esq NEGOTIATION60Stephen Shaw
1007David Q WaycottGermany2026-07-17Dorl, James J Esq NEW76Elwin Sharvill
1008Cody V AmigonJapan2026-07-29Truhlar And Truhlar Attys PROPOSAL41Anna Fali
1009Arvin L FigeroaJapan2026-07-03Chapman, Ross E Esq NEGOTIATION17Amy Elsner
1010Silvio S CampainCanada2026-07-17Feiner Bros RENEWAL36Amy Elsner
1011Tony Y CaudyAustralia2026-07-11Truhlar And Truhlar Attys RENEWAL71Elwin Sharvill
1012Mujtaba X PoquetteFrance2026-07-30Chanay, Jeffrey A Esq RENEWAL4Amy Elsner
1013Salvatore D WieserSpain2026-07-05Truhlar And Truhlar Attys UNQUALIFIED11Ivan Magalhaes
1014Mujtaba F RoysterJapan2026-07-29Chemel, James L Cpa UNQUALIFIED92Anna Fali
1015Salvatore G SergiCanada2026-07-07Rousseaux, Michael Esq QUALIFIED39Amy Elsner
1016Francesco A KuskoFrance2026-07-21Benton, John B Jr NEGOTIATION54Ivan Magalhaes
1017Jennifer X KolmetzJapan2026-07-16Feiner Bros QUALIFIED83Elwin Sharvill
1018Faith R OstroskyGermany2026-07-21Chemel, James L Cpa NEGOTIATION71Anna Fali
1019Tony J ButtRussia2026-07-27Benton, John B Jr RENEWAL9Ivan Magalhaes
1020Stacey G SlusarskiSpain2026-07-10Chanay, Jeffrey A Esq NEGOTIATION50Onyama Limba
1021Sinclair G MaletIndia2026-07-10Rangoni Of Florence NEGOTIATION47Ivan Magalhaes
1022Jennifer C WieserRussia2026-07-02Benton, John B Jr UNQUALIFIED84Elwin Sharvill
1023Stacey O WhobreyGermany2026-07-12Chemel, James L Cpa UNQUALIFIED36Asiya Javayant
1024Clifford S KuskoCanada2026-07-12Feltz Printing Service NEGOTIATION56Asiya Javayant
1025Jones C VocelkaFrance2026-07-20Commercial Press QUALIFIED83Stephen Shaw
1026Morrow I ButtSpain2026-07-18King, Christopher A Esq QUALIFIED42Xuxue Feng
1027Aika H WaycottAustralia2026-07-25Rangoni Of Florence PROPOSAL23Ivan Magalhaes
1028Maria X ButtBrazil2026-07-29Rangoni Of Florence QUALIFIED28Bernardo Dominic
1029Maisha V StensethCanada2026-07-28Benton, John B Jr NEGOTIATION5Amy Elsner
1030Rodrigues U ChuiArgentina2026-07-24Benton, John B Jr RENEWAL75Bernardo Dominic
1031Jennifer R GlickCanada2026-07-08Feiner Bros UNQUALIFIED81Amy Elsner
1032Rodrigues J DoeGermany2026-07-14Truhlar And Truhlar Attys NEW49Bernardo Dominic
1033Costa Y SlusarskiIndia2026-07-03Feiner Bros RENEWAL79Xuxue Feng
1034Alejandro T AmigonAustralia2026-07-18Feiner Bros NEGOTIATION82Asiya Javayant
1035Faith P SaylorsJapan2026-07-14Rangoni Of Florence RENEWAL63Elwin Sharvill
1036Leon N RulapaughSpain2026-07-18Chapman, Ross E Esq PROPOSAL87Ivan Magalhaes
1037Leja L KolmetzSpain2026-07-21Benton, John B Jr NEGOTIATION70Bernardo Dominic
1038David V FerenczSpain2026-07-29Feiner Bros QUALIFIED65Stephen Shaw
1039Mujtaba K WhobreyIndia2026-07-06Rangoni Of Florence NEGOTIATION90Anna Fali
1040Deepesh I TollnerJapan2026-07-18Chemel, James L Cpa UNQUALIFIED3Elwin Sharvill
1041Leja I MorascaCanada2026-07-29Buckley Miller Wright PROPOSAL79Amy Elsner
1042Emily F ShinkoItaly2026-07-12King, Christopher A Esq RENEWAL18Elwin Sharvill
1043Leja X StockhamAustralia2026-07-23Truhlar And Truhlar Attys NEGOTIATION89Anna Fali
1044David R FerenczFrance2026-07-28Rangoni Of Florence QUALIFIED32Asiya Javayant
1045Mayumi E IturbideSpain2026-07-28Chapman, Ross E Esq QUALIFIED11Elwin Sharvill
1046Misaki P AlbaresUnited Kingdom2026-07-01Commercial Press RENEWAL53Ivan Magalhaes
1047David N CaudyBrazil2026-07-01Feiner Bros NEW44Xuxue Feng
1048Kaitlin J NestleGermany2026-07-12Commercial Press NEW96Amy Elsner
1049Wickens G OldroydJapan2026-07-08Truhlar And Truhlar Attys RENEWAL31Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jefferson U IturbideArgentinaAsiya Javayant NEGOTIATION
Leon H NestleCanadaElwin Sharvill UNQUALIFIED
Misaki R RutaArgentinaAsiya Javayant UNQUALIFIED
James O IturbideArgentinaIoni Bowcher NEGOTIATION
Tony U MaletJapanXuxue Feng UNQUALIFIED
Jennifer F FollerGermanyIvan Magalhaes NEW
Jennifer Z PoquetteRussiaOnyama Limba QUALIFIED
Claire D BriddickAustraliaStephen Shaw NEW
Emily I SlusarskiFranceIoni Bowcher NEGOTIATION
Ivar B KolmetzBrazilIoni Bowcher RENEWAL
David H FlosiJapanIvan Magalhaes NEGOTIATION
Mujtaba W KuskoCanadaOnyama Limba NEW
Tony W ChuiGermanyStephen Shaw PROPOSAL
Aika Y PerinGermanyOnyama Limba UNQUALIFIED
Ivar X MaletBrazilOnyama Limba PROPOSAL
Sinclair H ButtFranceOnyama Limba QUALIFIED
Wickens J TollnerGermanyXuxue Feng UNQUALIFIED
Jeanfrancois J KuskoAustraliaIoni Bowcher PROPOSAL
Jennifer D PerinItalyAmy Elsner NEGOTIATION
Ivar T MarrierCanadaOnyama Limba UNQUALIFIED
Ivar F RulapaughSpainAmy Elsner PROPOSAL
Costa Z WhobreyFranceXuxue Feng NEGOTIATION
Ivar H RoysterBrazilOnyama Limba NEGOTIATION
Chavez C RulapaughIndiaAmy Elsner NEW
Izzy W RutaJapanXuxue Feng UNQUALIFIED
Ivar S WieserRussiaAnna Fali NEGOTIATION
Deepesh W ButtArgentinaElwin Sharvill NEW
Jeanfrancois S RoysterIndiaIoni Bowcher NEGOTIATION
Sinclair D TollnerSpainXuxue Feng QUALIFIED
Maria T FigeroaItalyIoni Bowcher UNQUALIFIED
Juan V ButtFranceAnna Fali NEW
Mujtaba M ChuiFranceStephen Shaw QUALIFIED
Julie Y MaletFranceStephen Shaw NEGOTIATION
Munro O IturbideGermanyIvan Magalhaes UNQUALIFIED
Julie H PaprockiIndiaIvan Magalhaes RENEWAL
Salvatore S FollerItalyIoni Bowcher NEGOTIATION
James O DilliardGermanyBernardo Dominic PROPOSAL
Kaitlin D SergiItalyXuxue Feng UNQUALIFIED
Jefferson D KolmetzArgentinaAnna Fali NEGOTIATION
Deepesh I KuskoArgentinaIvan Magalhaes RENEWAL
Rodrigues P CaldareraUnited KingdomElwin Sharvill PROPOSAL
Faith A OstroskySpainXuxue Feng RENEWAL
Darci N BriddickFranceElwin Sharvill RENEWAL
Clifford E NestleCanadaStephen Shaw PROPOSAL
Isabel H ButtAustraliaIoni Bowcher RENEWAL
Smith Q MarrierAustraliaOnyama Limba QUALIFIED
Tony J GillianItalyStephen Shaw QUALIFIED
Ivar B TollnerIndiaElwin Sharvill QUALIFIED
Antonio O BologniaAustraliaXuxue Feng RENEWAL
Chavez X SaylorsIndiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Costa X Figeroa
Faith U Malet
Stacey P Schemmer
James B Caldarera
Isabel C Slusarski
David M Bowley
Mayumi Q Marrier
Alejandro U Wieser
Jeanfrancois K Gillian
Kadeem F Sergi
Misaki J Albares
Adams E Stenseth
Tony B Bowley
Ricardo O Schemmer
Jones D Foller
Stacey I Kusko
Isabel A Marrier
Arvin B Figeroa
Aditya N Butt
Adams E Caldarera
David A Campain
Wickens S Gaucho
Rodrigues W Chui
Izzy Z Caldarera
Deepesh V Bowley
Chavez Y Ferencz
Octavia E Gillian
Deepesh G Iturbide
Claire Q Stenseth
Octavia J Poquette
Wickens V Slusarski
David X Flosi
Maria A Ruta
Misaki R Flosi
James N Gaucho
Maria L Perin
Ashley T Rulapaugh
Murillo G Chui
Silvio I Tollner
Cody S Ostrosky
Ricardo A Briddick
Costa F Doe
Adams G Malet
Nicolas M Gaucho
Arvin G Slusarski
Ivar Q Rim
Leon Z Ostrosky
Julie O Venere
Claire H Paprocki
Ashley J Kusko
IdCountryDate
1000Spain2026-07-16
1001Germany2026-07-07
1002Australia2026-07-24
1003Russia2026-07-23
1004Spain2026-07-03
1005Italy2026-07-25
1006Spain2026-07-14
1007Italy2026-07-21
1008India2026-07-11
1009Australia2026-07-27
1010India2026-07-30
1011Japan2026-07-04
1012Canada2026-07-08
1013Brazil2026-07-05
1014United Kingdom2026-07-14
1015Brazil2026-07-27
1016Russia2026-07-04
1017Russia2026-07-27
1018Germany2026-07-16
1019Italy2026-07-03
1020Japan2026-07-11
1021Spain2026-07-25
1022Russia2026-07-09
1023Russia2026-07-22
1024Brazil2026-07-16
1025France2026-07-17
1026Russia2026-07-01
1027Australia2026-07-29
1028Canada2026-07-13
1029India2026-07-30
1030United Kingdom2026-07-16
1031Russia2026-07-05
1032Canada2026-07-14
1033Australia2026-07-24
1034Spain2026-07-21
1035Japan2026-07-01
1036Russia2026-07-25
1037India2026-07-19
1038Russia2026-07-03
1039United Kingdom2026-07-12
1040Germany2026-07-21
1041Brazil2026-07-05
1042Italy2026-07-13
1043Brazil2026-07-04
1044Argentina2026-07-19
1045Japan2026-07-29
1046Australia2026-07-04
1047Brazil2026-07-19
1048Spain2026-07-04
1049Canada2026-07-23

On-Demand Data

NameIdCountryDate
Johnson B Figeroa1000Italy2026-07-04
Stacey I Tollner1001Spain2026-07-07
Mujtaba I Caudy1002Spain2026-07-28
Ivar S Perin1003Brazil2026-07-15
Greenwood H Foller1004Australia2026-07-15
Antonio C Rim1005Argentina2026-07-03
Kaitlin L Ferencz1006Italy2026-07-03
Izzy P Venere1007Brazil2026-07-13
Adams D Nestle1008Canada2026-07-03
Alejandro C Vocelka1009France2026-07-27
Leon E Nestle1010India2026-07-21
Jefferson A Rulapaugh1011Germany2026-07-26
Aruna V Ruta1012Argentina2026-07-07
Kadeem W Royster1013Australia2026-07-29
Greenwood C Nestle1014Germany2026-07-20
Costa Z Stockham1015Canada2026-07-18
Ashley I Amigon1016United Kingdom2026-07-24
Jefferson P Marrier1017Russia2026-07-18
Claire H Flosi1018Japan2026-07-26
Arvin D Saylors1019United Kingdom2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens K GillianIndiaXuxue Feng PROPOSAL
Maisha Z FlosiFranceIoni Bowcher UNQUALIFIED
Alejandro L WhobreyJapanOnyama Limba UNQUALIFIED
Juan Y GarufiIndiaAmy Elsner PROPOSAL
Emily O WieserGermanyIoni Bowcher NEW
Kadeem R VenereRussiaAmy Elsner PROPOSAL
Leja I SchemmerGermanyAnna Fali NEGOTIATION
Johnson T GarufiGermanyIoni Bowcher NEW
Munro X DarakjyCanadaAmy Elsner UNQUALIFIED
Tony U NickaRussiaStephen Shaw UNQUALIFIED
Misaki C TollnerAustraliaElwin Sharvill NEW
Leon G KuskoFranceBernardo Dominic QUALIFIED
Jeanfrancois J RoysterCanadaBernardo Dominic NEW
Ashley F ChuiGermanyElwin Sharvill QUALIFIED
Smith O MacleadArgentinaElwin Sharvill QUALIFIED
Morrow W OstroskyCanadaIoni Bowcher UNQUALIFIED
Clifford V InouyeArgentinaXuxue Feng RENEWAL
Izzy P CampainFranceBernardo Dominic NEW
Stacey H DarakjyUnited KingdomAmy Elsner NEW
Nicolas V DarakjyGermanyIoni Bowcher QUALIFIED
Antonio M AmigonSpainElwin Sharvill NEGOTIATION
Sinclair P BologniaGermanyElwin Sharvill PROPOSAL
Clifford E DilliardIndiaXuxue Feng QUALIFIED
Alejandro P SlusarskiRussiaElwin Sharvill QUALIFIED
Julie L WieserItalyOnyama Limba UNQUALIFIED
Deepesh E CaldareraIndiaAnna Fali QUALIFIED
Leja H GlickUnited KingdomAnna Fali QUALIFIED
Aika I FigeroaUnited KingdomElwin Sharvill QUALIFIED
Misaki K GarufiAustraliaBernardo Dominic RENEWAL
Cody K WieserJapanAmy Elsner PROPOSAL
Leja W ChuiBrazilAsiya Javayant QUALIFIED
Emily C KolmetzIndiaAsiya Javayant NEW
Greenwood D NestleAustraliaIoni Bowcher QUALIFIED
Greenwood P AmigonJapanElwin Sharvill RENEWAL
Alejandro Z WhobreyFranceXuxue Feng UNQUALIFIED
Ivar U CaudyIndiaOnyama Limba PROPOSAL
Adams I AlbaresUnited KingdomIoni Bowcher RENEWAL
Wickens H SlusarskiJapanElwin Sharvill UNQUALIFIED
Leon M SaylorsJapanIoni Bowcher QUALIFIED
Faith H ButtJapanAmy Elsner 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>