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
Chavez L MaletAustraliaXuxue Feng NEW
Octavia T GarufiAustraliaStephen Shaw PROPOSAL
Claire B SergiIndiaStephen Shaw PROPOSAL
Cody N CampainCanadaAnna Fali RENEWAL
Salvatore F BowleyBrazilAsiya Javayant NEW
Leon J RutaGermanyAsiya Javayant NEGOTIATION
Ivar B GillianGermanyElwin Sharvill NEW
Kaitlin S RulapaughJapanElwin Sharvill UNQUALIFIED
Alejandro D MaletSpainAmy Elsner UNQUALIFIED
Smith Z MacleadArgentinaStephen Shaw RENEWAL
Clifford P CampainIndiaOnyama Limba NEGOTIATION
Mujtaba E TollnerUnited KingdomAsiya Javayant UNQUALIFIED
Juan Z OldroydArgentinaOnyama Limba NEW
Nicolas N VenereUnited KingdomAnna Fali UNQUALIFIED
Darci J MaletFranceAnna Fali UNQUALIFIED
Faith T OstroskyRussiaAnna Fali PROPOSAL
Francesco Z SchemmerBrazilStephen Shaw RENEWAL
Sinclair K StockhamRussiaIvan Magalhaes RENEWAL
Emily Q VenereItalyOnyama Limba UNQUALIFIED
Costa R CaudyGermanyIvan Magalhaes PROPOSAL
Jefferson S ButtItalyAmy Elsner NEGOTIATION
Costa B SlusarskiIndiaElwin Sharvill RENEWAL
Emily K WieserFranceIoni Bowcher UNQUALIFIED
Mayumi W FlosiSpainIoni Bowcher PROPOSAL
Mayumi I PoquetteUnited KingdomAsiya Javayant NEW
Claire O BowleyBrazilIoni Bowcher QUALIFIED
Costa G WieserItalyOnyama Limba NEGOTIATION
Salvatore D TollnerSpainBernardo Dominic NEW
Izzy W RutaItalyXuxue Feng PROPOSAL
Adams N VocelkaArgentinaAnna Fali UNQUALIFIED
Johnson H DilliardArgentinaIoni Bowcher NEGOTIATION
Izzy S VocelkaCanadaIvan Magalhaes QUALIFIED
Leon Y GlickArgentinaXuxue Feng QUALIFIED
Stacey P MaletArgentinaBernardo Dominic RENEWAL
Jones M WieserSpainStephen Shaw PROPOSAL
Izzy F ChuiSpainIoni Bowcher UNQUALIFIED
Ricardo S IturbideIndiaIoni Bowcher UNQUALIFIED
Rodrigues Y BologniaBrazilAnna Fali NEW
Maria N WieserBrazilStephen Shaw QUALIFIED
Cody P StockhamGermanyIoni Bowcher RENEWAL
Salvatore Q IturbideAustraliaOnyama Limba QUALIFIED
Ivar T CampainUnited KingdomAmy Elsner UNQUALIFIED
Cody P DarakjyRussiaStephen Shaw NEW
Costa N MacleadUnited KingdomStephen Shaw PROPOSAL
Arvin O AlbaresFranceIvan Magalhaes NEGOTIATION
Francesco C VenereRussiaXuxue Feng UNQUALIFIED
Izzy R FlosiJapanAnna Fali RENEWAL
Alejandro H MacleadUnited KingdomOnyama Limba UNQUALIFIED
Aditya V CaldareraCanadaAsiya Javayant PROPOSAL
Cody W VenereBrazilAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Stacey F RutaItalyElwin Sharvill PROPOSAL
Arvin A WhobreyRussiaOnyama Limba RENEWAL
Juan L ChuiArgentinaElwin Sharvill RENEWAL
James C MarrierItalyOnyama Limba NEGOTIATION
Maisha H DilliardUnited KingdomBernardo Dominic QUALIFIED
Ashley D MacleadItalyAmy Elsner QUALIFIED
Jones L DarakjyAustraliaXuxue Feng NEW
Mujtaba K NestleBrazilIvan Magalhaes NEW
Chavez G StensethRussiaOnyama Limba NEGOTIATION
Mujtaba T GarufiBrazilAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci H NickaUnited Kingdom2026-07-25Feiner Bros PROPOSAL17Elwin Sharvill
1001Mayumi F CampainCanada2026-07-15Chemel, James L Cpa RENEWAL92Ivan Magalhaes
1002Leja Y WieserArgentina2026-07-03Rousseaux, Michael Esq NEW89Stephen Shaw
1003James E KolmetzSpain2026-07-19Chanay, Jeffrey A Esq NEW43Asiya Javayant
1004Antonio T WaycottBrazil2026-07-14Chanay, Jeffrey A Esq QUALIFIED72Bernardo Dominic
1005Maisha K GarufiRussia2026-07-03Morlong Associates RENEWAL72Onyama Limba
1006Jennifer W StockhamAustralia2026-07-21Chemel, James L Cpa NEGOTIATION89Stephen Shaw
1007Darci A GarufiGermany2026-07-21Feiner Bros NEW97Ivan Magalhaes
1008Chavez R InouyeAustralia2026-07-22Chanay, Jeffrey A Esq PROPOSAL49Bernardo Dominic
1009Antonio O CampainIndia2026-07-13Chemel, James L Cpa UNQUALIFIED44Xuxue Feng
1010Adams K PaprockiItaly2026-07-03Truhlar And Truhlar Attys PROPOSAL82Amy Elsner
1011Kaitlin W SergiGermany2026-06-30King, Christopher A Esq PROPOSAL56Anna Fali
1012Murillo R OstroskyJapan2026-07-12Chemel, James L Cpa NEGOTIATION70Onyama Limba
1013Darci T KolmetzBrazil2026-07-11Chemel, James L Cpa NEW62Onyama Limba
1014Maria D MarrierBrazil2026-07-14Feiner Bros RENEWAL66Bernardo Dominic
1015Ricardo O OldroydGermany2026-07-17Dorl, James J Esq QUALIFIED5Xuxue Feng
1016Maisha N BologniaBrazil2026-06-30Dorl, James J Esq QUALIFIED75Bernardo Dominic
1017Mujtaba M OstroskySpain2026-07-01Printing Dimensions NEW14Bernardo Dominic
1018Clifford J RimBrazil2026-07-08Dorl, James J Esq QUALIFIED1Asiya Javayant
1019Nicolas X BologniaUnited Kingdom2026-07-18Printing Dimensions QUALIFIED63Stephen Shaw
1020Mujtaba Y MarrierFrance2026-07-09Buckley Miller Wright QUALIFIED77Anna Fali
1021Aruna H MarrierArgentina2026-07-14Buckley Miller Wright RENEWAL91Ivan Magalhaes
1022Maisha H WhobreyRussia2026-07-28Morlong Associates RENEWAL76Bernardo Dominic
1023Costa N CampainRussia2026-07-12Truhlar And Truhlar Attys RENEWAL84Ioni Bowcher
1024Aruna Y MaletBrazil2026-07-20Chanay, Jeffrey A Esq UNQUALIFIED13Amy Elsner
1025Maisha J MacleadItaly2026-07-22Rangoni Of Florence UNQUALIFIED13Elwin Sharvill
1026Leja R AlbaresSpain2026-07-11Chapman, Ross E Esq PROPOSAL26Stephen Shaw
1027Mayumi H FerenczGermany2026-07-02Dorl, James J Esq NEW26Ivan Magalhaes
1028Deepesh S ButtSpain2026-07-07Rangoni Of Florence NEW71Onyama Limba
1029Maria T MacleadBrazil2026-07-16Rangoni Of Florence NEGOTIATION75Bernardo Dominic
1030Izzy E WaycottSpain2026-07-12Feiner Bros NEGOTIATION2Elwin Sharvill
1031Murillo Z WhobreyArgentina2026-07-14Truhlar And Truhlar Attys QUALIFIED77Onyama Limba
1032Tony K MaletItaly2026-07-24Chemel, James L Cpa UNQUALIFIED10Ivan Magalhaes
1033Salvatore F OldroydIndia2026-07-07Rangoni Of Florence RENEWAL13Ioni Bowcher
1034Izzy B SaylorsUnited Kingdom2026-07-03Chanay, Jeffrey A Esq NEGOTIATION18Xuxue Feng
1035Cody Z KuskoAustralia2026-07-14Chapman, Ross E Esq UNQUALIFIED15Onyama Limba
1036Ivar A FollerUnited Kingdom2026-07-25Morlong Associates PROPOSAL90Elwin Sharvill
1037Francesco F AmigonArgentina2026-07-01Rousseaux, Michael Esq NEW64Amy Elsner
1038Salvatore W RoysterAustralia2026-07-09Morlong Associates QUALIFIED81Ivan Magalhaes
1039Nicolas S InouyeUnited Kingdom2026-07-14Feltz Printing Service QUALIFIED40Amy Elsner
1040Wickens M PerinItaly2026-07-07King, Christopher A Esq NEW82Stephen Shaw
1041Aruna Z GillianSpain2026-07-20Dorl, James J Esq NEGOTIATION99Xuxue Feng
1042Misaki J FigeroaGermany2026-07-23Commercial Press UNQUALIFIED46Ioni Bowcher
1043Emily A BowleyJapan2026-07-22King, Christopher A Esq NEW50Ioni Bowcher
1044Alejandro Q IturbideJapan2026-07-26Truhlar And Truhlar Attys NEW5Anna Fali
1045Emily W RulapaughSpain2026-07-21Dorl, James J Esq NEGOTIATION7Asiya Javayant
1046Mujtaba M StensethIndia2026-07-24Truhlar And Truhlar Attys QUALIFIED33Elwin Sharvill
1047Maisha A PaprockiJapan2026-07-18Chemel, James L Cpa UNQUALIFIED47Anna Fali
1048Jeanfrancois Q ChuiFrance2026-07-22King, Christopher A Esq NEGOTIATION93Amy Elsner
1049Rodrigues E PaprockiBrazil2026-07-11Benton, John B Jr NEGOTIATION28Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria D KolmetzFranceAmy Elsner UNQUALIFIED
Jennifer X SchemmerItalyIoni Bowcher NEGOTIATION
Ricardo B OstroskyRussiaAsiya Javayant NEGOTIATION
Darci H NestleSpainAmy Elsner NEW
Emily O PoquetteCanadaIvan Magalhaes NEGOTIATION
Claire Z OldroydBrazilIvan Magalhaes UNQUALIFIED
James C KolmetzArgentinaOnyama Limba RENEWAL
Isabel M ButtJapanAsiya Javayant NEW
Leon P PaprockiUnited KingdomIoni Bowcher NEW
Greenwood F PerinUnited KingdomOnyama Limba NEW
Costa K AlbaresRussiaAsiya Javayant NEW
Deepesh D BowleyItalyXuxue Feng RENEWAL
Aditya O SergiItalyAmy Elsner RENEWAL
Greenwood R AmigonIndiaIoni Bowcher RENEWAL
James S TollnerAustraliaXuxue Feng RENEWAL
Arvin I BologniaUnited KingdomAmy Elsner PROPOSAL
Leon H FerenczArgentinaAmy Elsner QUALIFIED
Mayumi P StockhamIndiaAnna Fali RENEWAL
Misaki I KolmetzAustraliaBernardo Dominic NEGOTIATION
Wickens V WieserRussiaIoni Bowcher PROPOSAL
Kaitlin N ChuiGermanyIvan Magalhaes NEW
Jeanfrancois A DilliardJapanStephen Shaw NEW
Octavia G FigeroaRussiaAmy Elsner QUALIFIED
Aruna E PerinUnited KingdomElwin Sharvill RENEWAL
Alejandro V RutaArgentinaOnyama Limba UNQUALIFIED
Francesco U VenereCanadaAmy Elsner NEW
Jefferson Y StockhamCanadaAnna Fali PROPOSAL
Stacey T StockhamJapanBernardo Dominic UNQUALIFIED
James V KuskoBrazilIvan Magalhaes NEW
Jones T StensethIndiaOnyama Limba NEGOTIATION
Claire S CaudyCanadaIvan Magalhaes PROPOSAL
Izzy A TollnerArgentinaElwin Sharvill UNQUALIFIED
Murillo R VocelkaItalyAmy Elsner PROPOSAL
Salvatore M StensethAustraliaBernardo Dominic UNQUALIFIED
Munro B BowleyAustraliaIvan Magalhaes NEGOTIATION
Stacey E ButtItalyAsiya Javayant UNQUALIFIED
Emily Z NickaAustraliaAmy Elsner NEGOTIATION
Jefferson I PaprockiItalyElwin Sharvill QUALIFIED
Kaitlin B NestleUnited KingdomElwin Sharvill UNQUALIFIED
Costa C MaletRussiaOnyama Limba UNQUALIFIED
Nicolas C BologniaSpainAsiya Javayant QUALIFIED
Aika M RulapaughGermanyAsiya Javayant RENEWAL
Clifford X WhobreyJapanIvan Magalhaes NEGOTIATION
Johnson A MarrierItalyOnyama Limba UNQUALIFIED
Chavez F WaycottBrazilStephen Shaw UNQUALIFIED
Sinclair W KolmetzArgentinaElwin Sharvill RENEWAL
Isabel G PoquetteArgentinaAsiya Javayant NEGOTIATION
Chavez Y PaprockiItalyElwin Sharvill UNQUALIFIED
Mayumi I GarufiSpainAnna Fali PROPOSAL
Jones S AlbaresAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Julie E Iturbide
Francesco V Dilliard
Faith R Albares
Wickens D Poquette
Jefferson I Nicka
Wickens T Marrier
Darci J Shinko
Maisha Y Darakjy
Misaki L Malet
Kaitlin M Malet
Maisha E Foller
Maisha O Kusko
Darci P Ruta
Emily I Kolmetz
Salvatore N Rim
Mujtaba X Darakjy
Alejandro G Ruta
Murillo C Ferencz
Leon S Inouye
Ashley G Schemmer
Cody D Wieser
Misaki H Chui
Deepesh X Iturbide
Johnson R Stockham
Leon W Caldarera
Wickens S Marrier
Stacey F Glick
Leon E Darakjy
Murillo D Ostrosky
David G Figeroa
Silvio M Caldarera
Morrow D Malet
Mayumi J Doe
Jennifer Y Rulapaugh
Costa X Shinko
Leja C Garufi
Sinclair J Venere
David X Flosi
Jennifer P Amigon
Murillo X Morasca
Antonio M Malet
Claire I Rulapaugh
Leon T Rulapaugh
Murillo B Flosi
Octavia M Glick
Ashley N Doe
Ivar P Royster
Jefferson R Ferencz
Leon P Whobrey
Jeanfrancois A Vocelka
IdCountryDate
1000United Kingdom2026-07-08
1001Australia2026-07-12
1002France2026-07-15
1003Brazil2026-07-13
1004Argentina2026-07-05
1005Canada2026-07-19
1006Australia2026-07-07
1007Italy2026-07-07
1008Brazil2026-07-07
1009Argentina2026-07-03
1010Spain2026-07-08
1011Japan2026-07-07
1012France2026-07-23
1013Japan2026-07-08
1014India2026-07-08
1015Brazil2026-07-29
1016Argentina2026-07-18
1017Italy2026-07-10
1018Canada2026-07-08
1019Italy2026-07-15
1020Canada2026-07-08
1021Australia2026-07-03
1022United Kingdom2026-07-05
1023Spain2026-07-01
1024India2026-07-13
1025France2026-07-08
1026France2026-06-30
1027Italy2026-07-16
1028United Kingdom2026-07-28
1029Italy2026-07-09
1030Japan2026-07-04
1031Germany2026-07-13
1032United Kingdom2026-07-08
1033Brazil2026-07-05
1034Germany2026-07-13
1035Germany2026-07-17
1036Australia2026-06-30
1037India2026-07-18
1038Canada2026-07-09
1039Japan2026-07-01
1040Italy2026-07-26
1041Canada2026-07-24
1042Brazil2026-07-11
1043Japan2026-07-27
1044Germany2026-07-25
1045Canada2026-07-16
1046Argentina2026-07-27
1047India2026-06-30
1048Russia2026-07-03
1049Russia2026-07-11

On-Demand Data

NameIdCountryDate
Antonio H Venere1000Spain2026-07-02
Juan B Maclead1001United Kingdom2026-07-23
Deepesh I Royster1002India2026-07-12
Mujtaba F Venere1003United Kingdom2026-07-17
Darci D Gillian1004Japan2026-07-01
Sinclair G Marrier1005Brazil2026-07-23
Johnson X Albares1006Spain2026-07-08
Darci G Perin1007Russia2026-07-08
Ashley T Ferencz1008Italy2026-07-04
Izzy L Waycott1009Spain2026-07-15
Octavia R Gaucho1010Russia2026-07-11
Munro J Poquette1011Italy2026-07-26
Murillo Y Slusarski1012India2026-07-17
David Q Caudy1013Russia2026-07-04
Jones C Rulapaugh1014France2026-07-04
Mujtaba O Garufi1015United Kingdom2026-07-23
Chavez Z Slusarski1016Australia2026-07-18
Stacey N Morasca1017Spain2026-07-28
Darci A Poquette1018Russia2026-07-22
Rodrigues E Paprocki1019Australia2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith I GlickArgentinaAnna Fali QUALIFIED
Mujtaba N BologniaSpainIvan Magalhaes PROPOSAL
Izzy F GlickItalyAnna Fali NEGOTIATION
Aruna D FerenczCanadaXuxue Feng RENEWAL
Murillo W GauchoSpainAsiya Javayant NEGOTIATION
Darci Y NestleAustraliaXuxue Feng QUALIFIED
David X GauchoSpainOnyama Limba NEW
Emily J SchemmerUnited KingdomIoni Bowcher NEW
James V SchemmerCanadaAmy Elsner NEW
Maisha N GlickAustraliaXuxue Feng RENEWAL
Alejandro C BowleyCanadaIvan Magalhaes RENEWAL
Kadeem M WieserFranceBernardo Dominic RENEWAL
Leon D SchemmerAustraliaAmy Elsner NEW
Maisha G FerenczAustraliaElwin Sharvill PROPOSAL
Francesco L FollerSpainXuxue Feng PROPOSAL
Emily R ChuiIndiaAnna Fali UNQUALIFIED
Juan M DarakjyCanadaAmy Elsner UNQUALIFIED
Wickens U MarrierItalyXuxue Feng UNQUALIFIED
Francesco S DarakjyFranceAmy Elsner UNQUALIFIED
Silvio N DilliardArgentinaAmy Elsner QUALIFIED
David L MaletGermanyOnyama Limba RENEWAL
Julie G MaletRussiaAsiya Javayant PROPOSAL
Juan K FlosiSpainElwin Sharvill NEGOTIATION
Kaitlin X RimItalyElwin Sharvill QUALIFIED
Clifford C KolmetzBrazilAmy Elsner QUALIFIED
Octavia B RutaRussiaElwin Sharvill NEGOTIATION
Wickens S MaletArgentinaAmy Elsner RENEWAL
Arvin F FollerSpainAsiya Javayant UNQUALIFIED
Claire Y IturbideIndiaAmy Elsner UNQUALIFIED
Chavez Y GillianItalyAsiya Javayant UNQUALIFIED
Kadeem L SergiJapanStephen Shaw NEW
Mayumi K FigeroaIndiaXuxue Feng PROPOSAL
James J RulapaughArgentinaAnna Fali QUALIFIED
Octavia K AmigonFranceAsiya Javayant UNQUALIFIED
Faith J BowleyFranceAsiya Javayant PROPOSAL
Nicolas B RoysterRussiaAsiya Javayant RENEWAL
Tony J InouyeArgentinaBernardo Dominic RENEWAL
Costa O KolmetzGermanyBernardo Dominic RENEWAL
Aika I SlusarskiAustraliaAmy Elsner RENEWAL
Jeanfrancois V ChuiSpainIoni Bowcher RENEWAL

<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>