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
Stacey T WaycottRussiaOnyama Limba UNQUALIFIED
Costa T MaletCanadaAmy Elsner NEW
Smith G SlusarskiCanadaElwin Sharvill PROPOSAL
Clifford F MaletFranceAnna Fali NEGOTIATION
Ashley G ChuiFranceElwin Sharvill RENEWAL
James R WieserCanadaIoni Bowcher QUALIFIED
Nicolas L MarrierCanadaAmy Elsner NEGOTIATION
Faith X IturbideItalyElwin Sharvill QUALIFIED
Mayumi V InouyeGermanyOnyama Limba NEGOTIATION
Octavia J TollnerIndiaElwin Sharvill QUALIFIED
Cody B CaudyArgentinaXuxue Feng NEGOTIATION
Deepesh L NickaGermanyIoni Bowcher RENEWAL
Claire P WaycottAustraliaAnna Fali RENEWAL
Julie S SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Octavia H InouyeIndiaAmy Elsner QUALIFIED
Ashley K PaprockiAustraliaAmy Elsner NEGOTIATION
Faith Z GarufiSpainXuxue Feng NEW
Juan N StockhamBrazilElwin Sharvill RENEWAL
Chavez T GauchoAustraliaAnna Fali PROPOSAL
Arvin D FigeroaFranceStephen Shaw QUALIFIED
Arvin Z InouyeSpainOnyama Limba PROPOSAL
David H StensethBrazilAnna Fali NEW
Murillo I MarrierIndiaXuxue Feng NEGOTIATION
Faith R FlosiGermanyStephen Shaw QUALIFIED
Stacey S DoeArgentinaAsiya Javayant NEW
Octavia P StensethRussiaStephen Shaw NEGOTIATION
James Y FollerJapanBernardo Dominic UNQUALIFIED
Deepesh T GlickArgentinaStephen Shaw NEW
Aruna T DoeBrazilAsiya Javayant NEGOTIATION
Costa Q GarufiGermanyAsiya Javayant QUALIFIED
Rodrigues K FigeroaItalyAmy Elsner NEW
Darci X CaldareraIndiaAsiya Javayant UNQUALIFIED
Maisha W BriddickUnited KingdomStephen Shaw RENEWAL
Emily B KuskoSpainBernardo Dominic NEW
Wickens P StensethArgentinaBernardo Dominic NEGOTIATION
Deepesh N PoquetteGermanyAmy Elsner RENEWAL
Emily Q CaudyArgentinaAmy Elsner PROPOSAL
Faith X KuskoBrazilIoni Bowcher PROPOSAL
Aditya Y TollnerJapanXuxue Feng NEW
Costa N DarakjyUnited KingdomAmy Elsner RENEWAL
Adams L DoeFranceIvan Magalhaes UNQUALIFIED
Mayumi S BowleyCanadaElwin Sharvill QUALIFIED
Cody Q DoeSpainBernardo Dominic UNQUALIFIED
Leon S GauchoFranceXuxue Feng RENEWAL
Arvin K ChuiUnited KingdomBernardo Dominic NEW
Francesco Y ChuiBrazilIvan Magalhaes QUALIFIED
Leja G KuskoRussiaOnyama Limba PROPOSAL
Silvio F ChuiIndiaOnyama Limba NEGOTIATION
Chavez I AmigonRussiaAmy Elsner PROPOSAL
Ivar O FigeroaGermanyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio I RoysterItalyAsiya Javayant NEGOTIATION
Arvin P GillianIndiaStephen Shaw QUALIFIED
Antonio N IturbideBrazilOnyama Limba QUALIFIED
Kadeem K PerinCanadaXuxue Feng QUALIFIED
Chavez Y AmigonJapanXuxue Feng NEW
Ivar V IturbideAustraliaAmy Elsner NEGOTIATION
Cody B RimBrazilStephen Shaw NEW
Jennifer Y WhobreyFranceOnyama Limba NEW
Nicolas V SchemmerItalyStephen Shaw PROPOSAL
Greenwood M ChuiBrazilAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo U OstroskyFrance2026-07-06Morlong Associates RENEWAL70Onyama Limba
1001Darci J BologniaArgentina2026-06-29Morlong Associates NEW29Anna Fali
1002Mujtaba Y PaprockiCanada2026-06-28Benton, John B Jr RENEWAL3Stephen Shaw
1003Munro P VocelkaItaly2026-07-19Rangoni Of Florence PROPOSAL70Asiya Javayant
1004Johnson X TollnerRussia2026-07-14Feiner Bros QUALIFIED1Ioni Bowcher
1005Adams W FollerItaly2026-07-21Feltz Printing Service RENEWAL76Ivan Magalhaes
1006Ricardo C AmigonFrance2026-07-15Feltz Printing Service NEW65Asiya Javayant
1007Leon P PoquetteGermany2026-07-14King, Christopher A Esq PROPOSAL34Ivan Magalhaes
1008Claire I DarakjyCanada2026-07-21Rangoni Of Florence NEW94Anna Fali
1009Smith Q CaldareraFrance2026-07-08Truhlar And Truhlar Attys RENEWAL22Ivan Magalhaes
1010Maria S WieserCanada2026-07-20Chanay, Jeffrey A Esq PROPOSAL23Ivan Magalhaes
1011Tony Q DoeAustralia2026-06-25Chemel, James L Cpa PROPOSAL49Ioni Bowcher
1012Izzy R WhobreyRussia2026-07-18Rousseaux, Michael Esq UNQUALIFIED84Stephen Shaw
1013Nicolas R SaylorsFrance2026-07-08Benton, John B Jr PROPOSAL52Bernardo Dominic
1014Darci L BologniaAustralia2026-06-25Truhlar And Truhlar Attys PROPOSAL33Onyama Limba
1015Mujtaba F FigeroaJapan2026-07-10King, Christopher A Esq NEGOTIATION90Ivan Magalhaes
1016Darci S ShinkoJapan2026-07-17Chapman, Ross E Esq UNQUALIFIED26Ivan Magalhaes
1017Alejandro B SlusarskiCanada2026-07-11King, Christopher A Esq NEGOTIATION51Amy Elsner
1018Adams J StensethBrazil2026-07-04Dorl, James J Esq RENEWAL31Bernardo Dominic
1019Ivar C NickaCanada2026-07-13Chemel, James L Cpa PROPOSAL7Xuxue Feng
1020Adams W SchemmerJapan2026-07-04Morlong Associates NEW81Elwin Sharvill
1021Jeanfrancois X OstroskyGermany2026-07-05Dorl, James J Esq PROPOSAL21Ioni Bowcher
1022Arvin L SergiJapan2026-07-23Benton, John B Jr PROPOSAL21Bernardo Dominic
1023Leja W CaldareraAustralia2026-07-05Truhlar And Truhlar Attys UNQUALIFIED82Ivan Magalhaes
1024Maisha X TollnerIndia2026-07-12Morlong Associates NEW31Ivan Magalhaes
1025Morrow X GillianArgentina2026-07-10Benton, John B Jr PROPOSAL1Asiya Javayant
1026Misaki D NestleAustralia2026-07-19King, Christopher A Esq QUALIFIED62Asiya Javayant
1027Clifford N PerinSpain2026-07-05Rousseaux, Michael Esq NEGOTIATION87Amy Elsner
1028Jennifer D WhobreyRussia2026-06-26Buckley Miller Wright NEW81Amy Elsner
1029Smith O BologniaUnited Kingdom2026-07-03Feiner Bros QUALIFIED3Xuxue Feng
1030Silvio M GarufiBrazil2026-07-20Chapman, Ross E Esq UNQUALIFIED54Onyama Limba
1031Morrow A NestleFrance2026-07-17Chanay, Jeffrey A Esq RENEWAL99Elwin Sharvill
1032Jefferson V StensethUnited Kingdom2026-06-29Buckley Miller Wright RENEWAL79Stephen Shaw
1033Ivar D PoquetteJapan2026-07-23Rousseaux, Michael Esq PROPOSAL93Ivan Magalhaes
1034Deepesh G AmigonFrance2026-07-21Printing Dimensions RENEWAL35Bernardo Dominic
1035Julie S VenereJapan2026-07-19Truhlar And Truhlar Attys NEW71Bernardo Dominic
1036Costa G KolmetzAustralia2026-06-29Benton, John B Jr PROPOSAL72Onyama Limba
1037Leja B NestleSpain2026-07-22Benton, John B Jr UNQUALIFIED65Ivan Magalhaes
1038Chavez J PoquetteCanada2026-07-01Rousseaux, Michael Esq RENEWAL59Onyama Limba
1039Ricardo R BologniaArgentina2026-07-04Feiner Bros UNQUALIFIED31Xuxue Feng
1040Maisha N DilliardAustralia2026-07-03Chemel, James L Cpa NEGOTIATION86Onyama Limba
1041Emily H FlosiAustralia2026-06-25Dorl, James J Esq PROPOSAL86Asiya Javayant
1042Antonio Z NestleUnited Kingdom2026-07-11Printing Dimensions UNQUALIFIED5Stephen Shaw
1043Emily M DilliardCanada2026-07-12Morlong Associates PROPOSAL38Anna Fali
1044James G StensethGermany2026-07-19Feiner Bros RENEWAL1Anna Fali
1045Maria G BriddickFrance2026-07-10Benton, John B Jr UNQUALIFIED76Bernardo Dominic
1046Wickens O SchemmerFrance2026-06-25Chanay, Jeffrey A Esq NEGOTIATION7Bernardo Dominic
1047Juan X GillianRussia2026-07-05Printing Dimensions NEW4Ivan Magalhaes
1048Misaki B FlosiBrazil2026-07-16Rousseaux, Michael Esq NEW64Ivan Magalhaes
1049Arvin Z PerinSpain2026-07-06Printing Dimensions NEW91Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro E AlbaresIndiaIvan Magalhaes QUALIFIED
Juan D ButtFranceBernardo Dominic NEGOTIATION
David O WhobreyCanadaStephen Shaw QUALIFIED
Wickens V KuskoBrazilAnna Fali QUALIFIED
Jefferson E DarakjyJapanStephen Shaw UNQUALIFIED
David C StockhamRussiaXuxue Feng NEW
David P FerenczIndiaElwin Sharvill RENEWAL
Izzy K GauchoFranceBernardo Dominic PROPOSAL
Ricardo W AlbaresSpainBernardo Dominic RENEWAL
Stacey L BowleyAustraliaIvan Magalhaes PROPOSAL
Aika F TollnerUnited KingdomAmy Elsner QUALIFIED
Maisha G CampainSpainOnyama Limba NEW
Ashley C IturbideAustraliaAnna Fali NEW
Aruna T KuskoItalyStephen Shaw QUALIFIED
Darci R GillianSpainAsiya Javayant PROPOSAL
Isabel E StensethBrazilXuxue Feng PROPOSAL
Aditya Y RulapaughItalyBernardo Dominic PROPOSAL
Aditya M RimCanadaAnna Fali RENEWAL
Ricardo W CaudyArgentinaXuxue Feng NEW
Smith G ShinkoIndiaIvan Magalhaes QUALIFIED
Isabel T IturbideUnited KingdomStephen Shaw UNQUALIFIED
Julie Q AlbaresFranceIvan Magalhaes QUALIFIED
Ivar M OldroydArgentinaAsiya Javayant RENEWAL
Leja K BriddickFranceAsiya Javayant RENEWAL
Aditya K DilliardSpainBernardo Dominic QUALIFIED
Leon Y CaudyRussiaAnna Fali QUALIFIED
Maria E MacleadItalyAnna Fali QUALIFIED
Aruna N FigeroaCanadaXuxue Feng UNQUALIFIED
Emily R InouyeSpainAmy Elsner NEGOTIATION
Kaitlin J RulapaughGermanyIvan Magalhaes NEGOTIATION
Juan Z FollerCanadaBernardo Dominic UNQUALIFIED
Silvio G ShinkoSpainXuxue Feng RENEWAL
Leja Q RoysterArgentinaBernardo Dominic NEGOTIATION
Mayumi X FlosiAustraliaIvan Magalhaes UNQUALIFIED
Alejandro C DilliardGermanyOnyama Limba UNQUALIFIED
Rodrigues T DarakjyArgentinaAsiya Javayant QUALIFIED
Murillo C FigeroaArgentinaXuxue Feng RENEWAL
Izzy S WhobreySpainStephen Shaw QUALIFIED
Alejandro X DoeFranceIvan Magalhaes NEW
Maria X BriddickCanadaBernardo Dominic QUALIFIED
Jeanfrancois X KolmetzAustraliaXuxue Feng PROPOSAL
Morrow W WhobreyGermanyOnyama Limba NEGOTIATION
Faith H SergiRussiaIoni Bowcher NEW
Maisha D RutaSpainAmy Elsner NEGOTIATION
Antonio Q PerinGermanyStephen Shaw NEGOTIATION
Alejandro B GlickCanadaBernardo Dominic PROPOSAL
Ricardo C RoysterCanadaBernardo Dominic PROPOSAL
Antonio M GillianItalyStephen Shaw QUALIFIED
Nicolas R TollnerJapanBernardo Dominic NEGOTIATION
Jefferson W RoysterFranceElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Izzy P Darakjy
Julie B Waycott
Claire S Malet
Aditya D Rulapaugh
Antonio G Marrier
Deepesh L Briddick
Aika I Saylors
Adams L Chui
Morrow Y Nestle
Jennifer D Malet
David V Paprocki
Darci R Doe
Jones X Caudy
Alejandro P Ferencz
Nicolas W Kusko
Adams O Glick
Arvin Y Tollner
Mayumi K Gillian
Jefferson F Bolognia
Mayumi L Dilliard
Adams N Slusarski
Darci P Ruta
Izzy B Ruta
Aditya O Nestle
Leja U Marrier
Izzy F Slusarski
Costa H Perin
Jeanfrancois T Tollner
Aditya S Malet
Aika Q Slusarski
Ricardo F Albares
Darci O Maclead
Munro B Wieser
Isabel G Vocelka
Aruna Z Vocelka
Silvio S Morasca
Mujtaba E Tollner
Kadeem M Malet
Ricardo U Venere
Jones G Figeroa
Faith O Venere
Emily M Whobrey
Costa K Poquette
Wickens G Perin
Johnson Z Amigon
Rodrigues Q Darakjy
Leon M Gaucho
Maria W Kusko
Darci Z Briddick
Maisha B Vocelka
IdCountryDate
1000Italy2026-07-17
1001France2026-06-28
1002Japan2026-07-02
1003Spain2026-07-01
1004Japan2026-07-17
1005Canada2026-07-21
1006Germany2026-06-28
1007Japan2026-07-01
1008Spain2026-07-03
1009Russia2026-07-17
1010Spain2026-07-06
1011United Kingdom2026-07-08
1012Argentina2026-07-09
1013Spain2026-07-18
1014India2026-07-17
1015Russia2026-07-01
1016Japan2026-07-08
1017France2026-07-11
1018Brazil2026-07-12
1019Spain2026-06-28
1020United Kingdom2026-07-21
1021France2026-07-03
1022France2026-06-29
1023Brazil2026-07-22
1024Australia2026-07-22
1025India2026-07-24
1026Spain2026-06-30
1027Italy2026-07-18
1028Canada2026-07-12
1029Argentina2026-06-29
1030Russia2026-07-20
1031Russia2026-07-12
1032Australia2026-07-16
1033Japan2026-07-01
1034Japan2026-06-30
1035Brazil2026-06-27
1036India2026-06-28
1037United Kingdom2026-07-19
1038Spain2026-07-12
1039Australia2026-07-23
1040Russia2026-07-01
1041Italy2026-07-05
1042Russia2026-07-22
1043Spain2026-06-25
1044Canada2026-07-09
1045Brazil2026-07-07
1046Brazil2026-07-15
1047United Kingdom2026-07-08
1048Canada2026-07-14
1049India2026-06-30

On-Demand Data

NameIdCountryDate
Misaki K Whobrey1000Japan2026-07-14
Salvatore D Garufi1001Italy2026-07-23
Morrow M Ostrosky1002Australia2026-07-05
Ivar H Marrier1003Russia2026-06-26
Ivar O Oldroyd1004Germany2026-07-21
Leja W Caldarera1005Spain2026-07-16
Jeanfrancois W Foller1006Russia2026-07-17
Maria S Inouye1007Canada2026-06-27
Jones X Gaucho1008India2026-07-05
Leon T Tollner1009Canada2026-07-21
Silvio X Paprocki1010Spain2026-07-23
Munro V Dilliard1011Canada2026-07-03
Juan Q Iturbide1012India2026-07-12
Sinclair A Glick1013Brazil2026-07-24
Nicolas W Paprocki1014Brazil2026-07-04
David X Wieser1015India2026-07-13
David K Butt1016Argentina2026-06-27
Sinclair O Tollner1017Brazil2026-06-28
Arvin W Maclead1018Australia2026-07-09
Juan M Kolmetz1019France2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily M StensethJapanIoni Bowcher NEW
Costa L BowleyIndiaOnyama Limba NEGOTIATION
Jeanfrancois S WhobreyJapanBernardo Dominic UNQUALIFIED
Leja K CaudyBrazilIoni Bowcher NEGOTIATION
Adams U IturbideAustraliaAsiya Javayant PROPOSAL
Kaitlin P WaycottCanadaAsiya Javayant QUALIFIED
Morrow G FigeroaItalyXuxue Feng QUALIFIED
Tony I GillianSpainOnyama Limba PROPOSAL
Cody L NickaIndiaStephen Shaw PROPOSAL
Ricardo R GillianAustraliaAnna Fali QUALIFIED
Ashley F DilliardGermanyIoni Bowcher PROPOSAL
Salvatore V BowleyJapanAmy Elsner UNQUALIFIED
Jeanfrancois I FollerFranceXuxue Feng NEGOTIATION
Stacey U OldroydBrazilBernardo Dominic PROPOSAL
Sinclair A GauchoItalyOnyama Limba UNQUALIFIED
Jefferson W TollnerJapanAnna Fali PROPOSAL
Rodrigues M StockhamJapanAnna Fali NEGOTIATION
Silvio N BriddickUnited KingdomElwin Sharvill RENEWAL
David K GillianJapanXuxue Feng NEW
Antonio E RimGermanyAsiya Javayant UNQUALIFIED
Juan E RutaBrazilAsiya Javayant NEW
Johnson Y ButtArgentinaStephen Shaw NEW
Antonio Q CaudySpainIoni Bowcher UNQUALIFIED
Ashley B OstroskyFranceAmy Elsner RENEWAL
Ivar S VocelkaSpainIoni Bowcher PROPOSAL
Murillo Z KuskoIndiaAsiya Javayant RENEWAL
Murillo W AlbaresIndiaElwin Sharvill UNQUALIFIED
Alejandro G MaletItalyOnyama Limba NEW
Julie Q GarufiAustraliaIoni Bowcher QUALIFIED
Jefferson V StockhamFranceElwin Sharvill RENEWAL
Alejandro V DoeJapanAsiya Javayant UNQUALIFIED
Johnson H PoquetteAustraliaElwin Sharvill PROPOSAL
Greenwood G SlusarskiJapanIvan Magalhaes RENEWAL
Maisha J FigeroaAustraliaAmy Elsner NEW
Antonio P RulapaughCanadaAmy Elsner UNQUALIFIED
Isabel D GarufiIndiaElwin Sharvill NEW
Sinclair D ChuiFranceOnyama Limba NEW
Maisha H CaldareraBrazilAmy Elsner QUALIFIED
Claire P WaycottGermanyIoni Bowcher NEW
Juan B BologniaGermanyAsiya Javayant NEGOTIATION

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