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
Greenwood M CaldareraJapanIvan Magalhaes PROPOSAL
Antonio S MaletAustraliaIoni Bowcher RENEWAL
Julie N PoquetteJapanAmy Elsner PROPOSAL
Tony H GlickSpainXuxue Feng PROPOSAL
Ivar Q RimRussiaStephen Shaw QUALIFIED
Alejandro V ShinkoBrazilAsiya Javayant UNQUALIFIED
Munro S GillianArgentinaIoni Bowcher NEW
Kadeem K BologniaArgentinaBernardo Dominic QUALIFIED
Cody A GauchoAustraliaStephen Shaw UNQUALIFIED
Silvio P WieserGermanyAnna Fali UNQUALIFIED
Aruna U NestleArgentinaAsiya Javayant NEW
Chavez J FigeroaFranceStephen Shaw NEGOTIATION
Ashley P GillianIndiaIvan Magalhaes RENEWAL
Murillo B GillianJapanAnna Fali UNQUALIFIED
Tony Z PerinItalyBernardo Dominic UNQUALIFIED
Jeanfrancois K MacleadFranceXuxue Feng RENEWAL
Aruna D BriddickSpainElwin Sharvill NEGOTIATION
Ashley E VenereItalyOnyama Limba NEW
Arvin I AmigonBrazilXuxue Feng NEGOTIATION
Misaki J CampainBrazilXuxue Feng NEGOTIATION
Stacey M WhobreyItalyXuxue Feng QUALIFIED
Nicolas M BologniaAustraliaElwin Sharvill UNQUALIFIED
Sinclair K FlosiItalyStephen Shaw UNQUALIFIED
Silvio R MorascaGermanyAmy Elsner UNQUALIFIED
James N RutaIndiaElwin Sharvill PROPOSAL
James C AlbaresAustraliaAsiya Javayant UNQUALIFIED
Octavia F SaylorsSpainStephen Shaw NEW
Jeanfrancois B GauchoGermanyBernardo Dominic PROPOSAL
Jennifer R CaldareraFranceBernardo Dominic UNQUALIFIED
Wickens H NestleBrazilStephen Shaw RENEWAL
Ivar Q RimArgentinaIoni Bowcher QUALIFIED
Smith W ShinkoSpainXuxue Feng PROPOSAL
Jeanfrancois A ChuiBrazilAsiya Javayant QUALIFIED
Leon N BriddickBrazilXuxue Feng UNQUALIFIED
Claire E StockhamIndiaAsiya Javayant UNQUALIFIED
Aditya G InouyeCanadaXuxue Feng QUALIFIED
Alejandro R MaletSpainAmy Elsner QUALIFIED
Clifford S VocelkaAustraliaXuxue Feng QUALIFIED
Adams C BowleyArgentinaAmy Elsner NEGOTIATION
Maisha S StensethArgentinaIoni Bowcher UNQUALIFIED
Morrow J StockhamRussiaBernardo Dominic PROPOSAL
Greenwood S SergiGermanyAsiya Javayant QUALIFIED
Claire I MarrierRussiaAsiya Javayant NEW
Leja U MaletBrazilAnna Fali NEGOTIATION
Johnson A SlusarskiCanadaStephen Shaw PROPOSAL
Clifford S AmigonSpainElwin Sharvill UNQUALIFIED
Sinclair H GarufiJapanXuxue Feng RENEWAL
Faith U PaprockiCanadaAnna Fali RENEWAL
Jones L MaletIndiaIvan Magalhaes UNQUALIFIED
Salvatore P GlickFranceOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones W KolmetzCanadaIoni Bowcher PROPOSAL
Faith C AmigonFranceXuxue Feng RENEWAL
Murillo L CaldareraBrazilElwin Sharvill RENEWAL
Wickens L GlickJapanAsiya Javayant RENEWAL
Misaki D WaycottSpainOnyama Limba RENEWAL
Murillo B MarrierRussiaAsiya Javayant NEGOTIATION
Wickens B KolmetzIndiaIoni Bowcher UNQUALIFIED
Greenwood T SlusarskiBrazilXuxue Feng QUALIFIED
Jefferson G FollerFranceIoni Bowcher UNQUALIFIED
Tony D AlbaresItalyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem P GauchoItaly2026-07-19King, Christopher A Esq QUALIFIED91Ioni Bowcher
1001Adams X OldroydCanada2026-07-31Benton, John B Jr UNQUALIFIED30Ivan Magalhaes
1002Stacey C FlosiItaly2026-08-03Chanay, Jeffrey A Esq NEW91Amy Elsner
1003Isabel V WhobreyAustralia2026-08-02Feltz Printing Service NEW73Ioni Bowcher
1004Leon P RimAustralia2026-07-11Truhlar And Truhlar Attys QUALIFIED17Bernardo Dominic
1005Ashley A SchemmerJapan2026-08-07Chapman, Ross E Esq RENEWAL58Anna Fali
1006Leja X NickaGermany2026-07-17Rousseaux, Michael Esq UNQUALIFIED98Anna Fali
1007Isabel U WhobreyCanada2026-07-11Buckley Miller Wright PROPOSAL2Amy Elsner
1008Sinclair I SergiArgentina2026-08-07Truhlar And Truhlar Attys NEGOTIATION4Anna Fali
1009Aruna I RoysterJapan2026-08-05Chemel, James L Cpa NEGOTIATION60Elwin Sharvill
1010Kadeem R AmigonFrance2026-08-07Truhlar And Truhlar Attys UNQUALIFIED49Ioni Bowcher
1011Claire X MorascaFrance2026-08-08Rousseaux, Michael Esq RENEWAL55Ioni Bowcher
1012Costa M PoquetteGermany2026-07-26Truhlar And Truhlar Attys QUALIFIED85Stephen Shaw
1013Darci V MaletJapan2026-07-30Printing Dimensions QUALIFIED36Bernardo Dominic
1014Greenwood H DoeSpain2026-08-02Chapman, Ross E Esq UNQUALIFIED12Elwin Sharvill
1015Arvin N OldroydJapan2026-08-02King, Christopher A Esq UNQUALIFIED70Stephen Shaw
1016Adams U InouyeRussia2026-07-16Buckley Miller Wright NEGOTIATION65Elwin Sharvill
1017Smith C GlickCanada2026-07-27Chanay, Jeffrey A Esq QUALIFIED67Asiya Javayant
1018Jeanfrancois X ChuiItaly2026-07-21Morlong Associates PROPOSAL28Onyama Limba
1019Alejandro D StockhamAustralia2026-07-23Feiner Bros RENEWAL77Amy Elsner
1020Stacey L KolmetzJapan2026-07-27Printing Dimensions NEGOTIATION62Asiya Javayant
1021Ashley H MaletGermany2026-07-23Feltz Printing Service UNQUALIFIED13Asiya Javayant
1022Jeanfrancois X KuskoItaly2026-07-21Commercial Press RENEWAL7Ioni Bowcher
1023Aruna H GarufiIndia2026-08-01Feiner Bros QUALIFIED87Anna Fali
1024Claire A VenereGermany2026-08-02Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1025Adams O AlbaresAustralia2026-08-03Chemel, James L Cpa QUALIFIED40Amy Elsner
1026Jefferson M MorascaItaly2026-07-26Chapman, Ross E Esq UNQUALIFIED54Onyama Limba
1027Nicolas G DoeBrazil2026-07-16Printing Dimensions UNQUALIFIED99Xuxue Feng
1028Francesco T StensethBrazil2026-08-05Rangoni Of Florence UNQUALIFIED83Asiya Javayant
1029Maisha N WhobreyItaly2026-07-22Rangoni Of Florence RENEWAL6Anna Fali
1030Adams B KuskoSpain2026-08-08King, Christopher A Esq NEW10Bernardo Dominic
1031Misaki N WaycottSpain2026-07-31Chanay, Jeffrey A Esq NEW57Elwin Sharvill
1032Cody V KolmetzArgentina2026-08-08Rousseaux, Michael Esq NEW55Onyama Limba
1033Morrow V RoysterCanada2026-07-19Dorl, James J Esq NEW7Asiya Javayant
1034Tony O GarufiGermany2026-08-03Morlong Associates PROPOSAL3Bernardo Dominic
1035Leja A BologniaItaly2026-07-10Chemel, James L Cpa PROPOSAL93Asiya Javayant
1036Mayumi X PoquetteCanada2026-08-05Chanay, Jeffrey A Esq NEGOTIATION67Bernardo Dominic
1037Julie J RoysterSpain2026-07-30Rangoni Of Florence UNQUALIFIED47Ivan Magalhaes
1038Juan W PoquetteAustralia2026-08-07Chemel, James L Cpa QUALIFIED81Amy Elsner
1039Costa P WaycottAustralia2026-07-23Commercial Press PROPOSAL16Ioni Bowcher
1040Munro A MorascaIndia2026-07-26Chapman, Ross E Esq PROPOSAL52Asiya Javayant
1041Silvio X SchemmerIndia2026-07-25Printing Dimensions UNQUALIFIED39Amy Elsner
1042Arvin A InouyeFrance2026-07-20King, Christopher A Esq NEGOTIATION65Stephen Shaw
1043Nicolas Y DarakjySpain2026-07-19Printing Dimensions PROPOSAL54Asiya Javayant
1044Johnson E PoquetteCanada2026-07-20Feltz Printing Service RENEWAL24Asiya Javayant
1045Aika Y NickaJapan2026-07-19Chapman, Ross E Esq NEGOTIATION27Bernardo Dominic
1046Francesco R RimBrazil2026-07-12King, Christopher A Esq PROPOSAL55Xuxue Feng
1047Greenwood W IturbideRussia2026-07-22Buckley Miller Wright RENEWAL55Amy Elsner
1048Alejandro P MaletFrance2026-07-15Rousseaux, Michael Esq NEW78Bernardo Dominic
1049Izzy D MaletAustralia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION96Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois M NickaFranceOnyama Limba NEGOTIATION
Murillo V SchemmerBrazilOnyama Limba NEW
Nicolas M RimCanadaAnna Fali NEW
Chavez N FollerAustraliaElwin Sharvill NEW
Salvatore W IturbideItalyAnna Fali UNQUALIFIED
Kaitlin P WaycottCanadaIoni Bowcher NEW
Cody Y RimArgentinaStephen Shaw QUALIFIED
Juan I VocelkaRussiaXuxue Feng NEGOTIATION
Claire F OstroskyRussiaElwin Sharvill QUALIFIED
Wickens U GillianSpainXuxue Feng NEGOTIATION
Nicolas N SchemmerBrazilOnyama Limba QUALIFIED
Darci R FollerBrazilIoni Bowcher NEW
Costa K WhobreyItalyElwin Sharvill NEW
Julie W BowleyUnited KingdomStephen Shaw NEW
Munro A NickaArgentinaAnna Fali RENEWAL
Ricardo C WieserSpainAmy Elsner RENEWAL
Leon O RutaArgentinaElwin Sharvill QUALIFIED
Izzy U GillianGermanyAsiya Javayant PROPOSAL
Murillo D OldroydArgentinaBernardo Dominic RENEWAL
Faith T RimRussiaIvan Magalhaes RENEWAL
Jones Z RimArgentinaAsiya Javayant PROPOSAL
Juan E DilliardUnited KingdomIvan Magalhaes RENEWAL
Leja V RoysterFranceOnyama Limba PROPOSAL
Greenwood Y CampainAustraliaAsiya Javayant QUALIFIED
Clifford W PoquetteCanadaAsiya Javayant NEW
Aika C RimUnited KingdomXuxue Feng NEGOTIATION
Leja Q OldroydIndiaStephen Shaw QUALIFIED
Alejandro Q DoeAustraliaStephen Shaw RENEWAL
Deepesh F GarufiArgentinaAsiya Javayant PROPOSAL
Leja P VocelkaGermanyElwin Sharvill RENEWAL
Johnson V GillianGermanyBernardo Dominic RENEWAL
Salvatore N FlosiUnited KingdomElwin Sharvill NEW
Nicolas S TollnerAustraliaOnyama Limba NEGOTIATION
Nicolas A CaudyGermanyAmy Elsner QUALIFIED
Kadeem K AlbaresItalyAnna Fali QUALIFIED
Wickens B DarakjyArgentinaBernardo Dominic PROPOSAL
Smith V MaletJapanBernardo Dominic QUALIFIED
Clifford Z NestleRussiaXuxue Feng RENEWAL
Ashley L VocelkaArgentinaIoni Bowcher UNQUALIFIED
Smith Q MorascaJapanIvan Magalhaes NEGOTIATION
David F WaycottBrazilIoni Bowcher PROPOSAL
Leja K MaletRussiaAsiya Javayant NEGOTIATION
Aruna P WhobreyBrazilIoni Bowcher RENEWAL
David Y NestleArgentinaElwin Sharvill RENEWAL
Isabel D BriddickSpainIoni Bowcher NEGOTIATION
Aditya Q InouyeIndiaXuxue Feng NEGOTIATION
Jennifer R SlusarskiArgentinaBernardo Dominic PROPOSAL
Costa L BriddickIndiaBernardo Dominic NEGOTIATION
Tony W WaycottAustraliaElwin Sharvill UNQUALIFIED
Chavez J MacleadIndiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Aika I Campain
Izzy T Inouye
Francesco S Stenseth
Morrow F Rim
Munro A Rim
Adams F Marrier
James B Rulapaugh
Aruna M Gillian
Octavia Z Butt
David B Chui
Antonio D Caldarera
Jefferson W Slusarski
Costa F Poquette
Murillo N Vocelka
Stacey P Figeroa
Aruna P Nestle
Jones R Iturbide
Rodrigues U Vocelka
Ivar K Darakjy
Murillo V Ostrosky
Salvatore B Saylors
Francesco H Briddick
Leja L Flosi
Jefferson C Chui
Arvin M Butt
Cody O Amigon
Leja W Albares
Francesco A Slusarski
Jefferson V Butt
Aruna I Foller
Sinclair T Schemmer
James T Sergi
Aruna D Butt
Aditya L Sergi
Alejandro D Waycott
Faith N Tollner
Mujtaba H Bowley
David H Darakjy
Emily W Whobrey
Cody B Saylors
Munro M Albares
Nicolas V Ruta
Darci X Schemmer
Emily Q Caldarera
Costa U Briddick
Wickens J Stenseth
Ashley R Morasca
Aika G Briddick
Silvio Z Caldarera
Greenwood I Bowley
IdCountryDate
1000Australia2026-07-19
1001Russia2026-08-01
1002India2026-07-18
1003France2026-07-17
1004Italy2026-07-17
1005Brazil2026-07-25
1006Canada2026-07-19
1007Japan2026-07-21
1008Brazil2026-07-31
1009India2026-08-08
1010Spain2026-07-16
1011Italy2026-07-12
1012France2026-07-13
1013Italy2026-07-31
1014Japan2026-07-20
1015Russia2026-07-18
1016Argentina2026-07-25
1017Italy2026-07-17
1018Brazil2026-07-14
1019Argentina2026-07-28
1020Canada2026-07-12
1021France2026-07-12
1022Japan2026-07-17
1023France2026-07-30
1024Italy2026-08-04
1025India2026-08-03
1026Japan2026-07-22
1027Australia2026-07-26
1028Spain2026-08-01
1029Germany2026-07-28
1030Spain2026-07-25
1031Italy2026-08-02
1032Spain2026-07-19
1033India2026-07-22
1034Germany2026-08-03
1035Australia2026-08-08
1036United Kingdom2026-07-13
1037Brazil2026-07-20
1038Canada2026-07-13
1039Germany2026-08-02
1040Germany2026-07-27
1041Argentina2026-08-03
1042Australia2026-07-22
1043Italy2026-08-01
1044Spain2026-07-27
1045Spain2026-07-12
1046Japan2026-08-01
1047Japan2026-07-30
1048United Kingdom2026-07-31
1049Spain2026-07-10

On-Demand Data

NameIdCountryDate
Ivar E Gaucho1000Canada2026-07-11
Julie N Vocelka1001Brazil2026-08-02
Wickens N Malet1002India2026-08-02
Murillo V Campain1003Brazil2026-08-05
Francesco J Doe1004India2026-07-29
Darci K Paprocki1005United Kingdom2026-07-13
Alejandro O Royster1006France2026-07-10
Claire S Caldarera1007Canada2026-08-08
Leja A Perin1008United Kingdom2026-07-20
Juan K Briddick1009Argentina2026-07-23
Smith A Vocelka1010Russia2026-07-23
Sinclair Q Butt1011France2026-07-15
Maria U Oldroyd1012Italy2026-07-24
Jennifer L Venere1013Germany2026-07-16
Mayumi J Gaucho1014France2026-07-21
Octavia I Figeroa1015United Kingdom2026-07-19
Kadeem P Rim1016Australia2026-07-10
Jones M Waycott1017Australia2026-07-21
Cody J Whobrey1018Brazil2026-08-04
Aditya E Briddick1019India2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody V BologniaRussiaOnyama Limba RENEWAL
Salvatore F IturbideCanadaXuxue Feng RENEWAL
Darci I TollnerItalyAmy Elsner PROPOSAL
Cody I GauchoBrazilStephen Shaw NEW
Arvin R SlusarskiGermanyStephen Shaw NEGOTIATION
Mujtaba N CaudyItalyElwin Sharvill RENEWAL
Juan N MacleadAustraliaAnna Fali UNQUALIFIED
Chavez L BologniaFranceBernardo Dominic UNQUALIFIED
Misaki L MarrierJapanElwin Sharvill UNQUALIFIED
Aika M ShinkoBrazilAnna Fali UNQUALIFIED
Antonio R SchemmerGermanyAmy Elsner PROPOSAL
Leon V FerenczCanadaXuxue Feng QUALIFIED
Greenwood B ChuiFranceOnyama Limba UNQUALIFIED
David U RulapaughGermanyOnyama Limba PROPOSAL
James A MorascaJapanIvan Magalhaes QUALIFIED
Chavez O CampainAustraliaIvan Magalhaes PROPOSAL
Sinclair B CaldareraCanadaElwin Sharvill NEW
Johnson W MorascaItalyStephen Shaw QUALIFIED
Stacey J GarufiItalyIoni Bowcher RENEWAL
Mujtaba K SchemmerSpainXuxue Feng QUALIFIED
Jennifer B WhobreyCanadaXuxue Feng UNQUALIFIED
Jennifer C MaletCanadaAmy Elsner NEGOTIATION
Kaitlin N ChuiCanadaAmy Elsner NEGOTIATION
Isabel B BowleyJapanAnna Fali RENEWAL
Alejandro Z PoquetteSpainXuxue Feng UNQUALIFIED
Maisha H WieserAustraliaIoni Bowcher NEGOTIATION
Leon L ChuiUnited KingdomXuxue Feng QUALIFIED
Jones A RulapaughUnited KingdomXuxue Feng UNQUALIFIED
David N InouyeCanadaElwin Sharvill NEGOTIATION
Kaitlin H VenereItalyXuxue Feng NEGOTIATION
Maisha I MacleadIndiaAnna Fali UNQUALIFIED
Jefferson J SlusarskiRussiaAsiya Javayant UNQUALIFIED
Mayumi A AlbaresArgentinaBernardo Dominic NEW
Munro E DilliardFranceAnna Fali NEW
Ashley L InouyeBrazilXuxue Feng PROPOSAL
Smith J IturbideCanadaAnna Fali PROPOSAL
Murillo O FlosiGermanyBernardo Dominic UNQUALIFIED
Maisha X DarakjyItalyAmy Elsner UNQUALIFIED
Jennifer F RoysterFranceAsiya Javayant NEGOTIATION
Clifford S TollnerFranceBernardo Dominic PROPOSAL

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