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
Aruna V GlickUnited KingdomAnna Fali NEGOTIATION
Claire J FigeroaRussiaStephen Shaw NEW
Antonio V MaletRussiaElwin Sharvill PROPOSAL
Jeanfrancois Z WieserFranceXuxue Feng UNQUALIFIED
Munro O NestleBrazilXuxue Feng QUALIFIED
Julie M MarrierFranceStephen Shaw QUALIFIED
Maisha N OstroskyIndiaOnyama Limba PROPOSAL
Adams B WieserItalyStephen Shaw UNQUALIFIED
Juan B PoquetteGermanyAnna Fali NEW
Salvatore E FigeroaItalyOnyama Limba UNQUALIFIED
Deepesh B BologniaRussiaIvan Magalhaes RENEWAL
Jefferson E InouyeItalyStephen Shaw PROPOSAL
David U RimIndiaIvan Magalhaes UNQUALIFIED
Johnson L TollnerCanadaElwin Sharvill NEGOTIATION
Ivar M CaudyGermanyElwin Sharvill UNQUALIFIED
Deepesh E MorascaJapanIvan Magalhaes NEGOTIATION
Francesco O GlickAustraliaStephen Shaw QUALIFIED
Arvin Y PoquetteArgentinaAsiya Javayant QUALIFIED
Stacey M PerinAustraliaAmy Elsner UNQUALIFIED
Maisha O WieserAustraliaStephen Shaw NEGOTIATION
Arvin C WhobreyRussiaIvan Magalhaes UNQUALIFIED
Octavia T GillianIndiaAnna Fali RENEWAL
Aika Y CampainUnited KingdomStephen Shaw RENEWAL
Juan E ShinkoGermanyIvan Magalhaes NEGOTIATION
Salvatore F CampainIndiaOnyama Limba RENEWAL
Deepesh O AlbaresRussiaAsiya Javayant NEW
Rodrigues V DoeItalyIoni Bowcher RENEWAL
Silvio K MarrierAustraliaBernardo Dominic PROPOSAL
Deepesh U ChuiJapanIvan Magalhaes NEGOTIATION
Clifford X CaldareraSpainIvan Magalhaes PROPOSAL
Greenwood N SchemmerRussiaIoni Bowcher QUALIFIED
Johnson C MaletSpainAnna Fali QUALIFIED
Jones S OstroskyCanadaIoni Bowcher QUALIFIED
Mayumi U WieserCanadaAnna Fali RENEWAL
Arvin Y RoysterJapanAmy Elsner RENEWAL
Misaki H MaletGermanyElwin Sharvill RENEWAL
Mujtaba O MarrierGermanyXuxue Feng PROPOSAL
Octavia T AlbaresGermanyXuxue Feng QUALIFIED
Aika H DilliardGermanyElwin Sharvill QUALIFIED
Arvin F RulapaughBrazilStephen Shaw PROPOSAL
Salvatore J MaletBrazilAsiya Javayant RENEWAL
Leja G WaycottArgentinaBernardo Dominic NEW
Juan Q VenereRussiaOnyama Limba PROPOSAL
Murillo T AmigonJapanIoni Bowcher NEGOTIATION
Salvatore V MacleadGermanyBernardo Dominic NEW
Ashley U MaletSpainOnyama Limba QUALIFIED
Alejandro A FigeroaArgentinaAnna Fali NEGOTIATION
Sinclair B AlbaresIndiaAsiya Javayant QUALIFIED
Emily O PerinIndiaXuxue Feng NEW
Octavia E KolmetzGermanyOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha O RutaGermanyElwin Sharvill PROPOSAL
Rodrigues O ButtIndiaAmy Elsner PROPOSAL
Salvatore M BriddickSpainAmy Elsner QUALIFIED
Emily Y DarakjyGermanyAmy Elsner RENEWAL
Murillo Q WieserJapanOnyama Limba UNQUALIFIED
Maria A FollerJapanAnna Fali RENEWAL
Rodrigues J DarakjyAustraliaStephen Shaw QUALIFIED
Aditya U AmigonJapanAsiya Javayant NEW
Jennifer O OstroskyGermanyIoni Bowcher NEGOTIATION
Salvatore D DarakjyCanadaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley Y VocelkaAustralia2026-06-14Dorl, James J Esq PROPOSAL62Bernardo Dominic
1001Stacey P OldroydCanada2026-06-18Commercial Press UNQUALIFIED77Anna Fali
1002Antonio W PoquetteItaly2026-06-21Rousseaux, Michael Esq NEW4Onyama Limba
1003Misaki Y InouyeItaly2026-06-23Chanay, Jeffrey A Esq NEGOTIATION81Xuxue Feng
1004Maria G PaprockiRussia2026-06-11Dorl, James J Esq UNQUALIFIED31Anna Fali
1005David A NestleGermany2026-06-22Benton, John B Jr NEGOTIATION86Elwin Sharvill
1006Mujtaba R StockhamAustralia2026-06-11Feiner Bros RENEWAL75Onyama Limba
1007Jeanfrancois E VocelkaSpain2026-06-05Chemel, James L Cpa PROPOSAL53Ioni Bowcher
1008Nicolas J CaudyJapan2026-06-22Morlong Associates QUALIFIED98Ivan Magalhaes
1009David Q RulapaughItaly2026-06-18Dorl, James J Esq QUALIFIED46Asiya Javayant
1010Smith H MaletIndia2026-06-08Rangoni Of Florence QUALIFIED43Asiya Javayant
1011Cody N TollnerArgentina2026-06-12Rousseaux, Michael Esq NEGOTIATION16Ivan Magalhaes
1012Claire O FerenczIndia2026-06-22Feltz Printing Service PROPOSAL69Anna Fali
1013Jeanfrancois A RutaItaly2026-06-05Buckley Miller Wright NEGOTIATION14Anna Fali
1014Wickens I KolmetzItaly2026-06-25Chapman, Ross E Esq UNQUALIFIED94Stephen Shaw
1015Maria G FollerItaly2026-06-06Dorl, James J Esq UNQUALIFIED96Stephen Shaw
1016Tony L GillianSpain2026-06-03Truhlar And Truhlar Attys PROPOSAL53Stephen Shaw
1017Julie Q RoysterIndia2026-06-16Feiner Bros QUALIFIED35Onyama Limba
1018Kaitlin Y BologniaItaly2026-06-03Feiner Bros PROPOSAL58Onyama Limba
1019Ashley O ChuiBrazil2026-06-22Printing Dimensions NEGOTIATION72Xuxue Feng
1020Octavia E RimItaly2026-06-18Dorl, James J Esq NEGOTIATION74Xuxue Feng
1021Wickens C OldroydArgentina2026-06-13Rangoni Of Florence PROPOSAL14Bernardo Dominic
1022Kadeem W NickaGermany2026-06-08Feiner Bros RENEWAL72Anna Fali
1023Mujtaba T WieserAustralia2026-06-22Truhlar And Truhlar Attys UNQUALIFIED60Elwin Sharvill
1024Chavez D CampainUnited Kingdom2026-06-09Dorl, James J Esq NEGOTIATION62Anna Fali
1025Silvio G InouyeArgentina2026-06-03Printing Dimensions QUALIFIED0Ivan Magalhaes
1026Leja O WhobreyGermany2026-06-12Chapman, Ross E Esq QUALIFIED19Xuxue Feng
1027Julie R GauchoItaly2026-06-02Truhlar And Truhlar Attys RENEWAL16Anna Fali
1028Jefferson R SaylorsGermany2026-06-10King, Christopher A Esq NEW63Anna Fali
1029Misaki B CampainAustralia2026-06-30Rangoni Of Florence RENEWAL98Asiya Javayant
1030Salvatore D GauchoRussia2026-06-06Rousseaux, Michael Esq RENEWAL92Elwin Sharvill
1031Isabel R DilliardJapan2026-06-25Rangoni Of Florence NEW9Xuxue Feng
1032Deepesh M FlosiFrance2026-06-07Rangoni Of Florence NEW54Stephen Shaw
1033Sinclair H NestleFrance2026-06-06Dorl, James J Esq PROPOSAL44Ivan Magalhaes
1034Smith F DarakjyItaly2026-06-08Buckley Miller Wright NEW96Ioni Bowcher
1035Rodrigues P WaycottArgentina2026-06-08Rousseaux, Michael Esq NEGOTIATION11Onyama Limba
1036Juan P GlickSpain2026-06-19Morlong Associates RENEWAL97Ivan Magalhaes
1037Aditya X DilliardRussia2026-06-16Chanay, Jeffrey A Esq QUALIFIED72Elwin Sharvill
1038Emily S SlusarskiRussia2026-07-01Commercial Press QUALIFIED10Onyama Limba
1039Faith I GauchoSpain2026-06-06Buckley Miller Wright PROPOSAL22Stephen Shaw
1040Rodrigues Q BriddickRussia2026-06-12Rousseaux, Michael Esq PROPOSAL56Bernardo Dominic
1041Rodrigues B TollnerRussia2026-06-16Chemel, James L Cpa NEW46Onyama Limba
1042Francesco J SaylorsBrazil2026-06-11Truhlar And Truhlar Attys NEGOTIATION42Onyama Limba
1043Greenwood X NestleCanada2026-06-28Buckley Miller Wright NEW27Stephen Shaw
1044Misaki V VocelkaFrance2026-06-25Feiner Bros UNQUALIFIED0Elwin Sharvill
1045Izzy H GlickArgentina2026-06-07Rangoni Of Florence PROPOSAL92Bernardo Dominic
1046Izzy B StockhamGermany2026-06-11Benton, John B Jr NEGOTIATION1Stephen Shaw
1047Cody M NestleBrazil2026-06-09Feiner Bros UNQUALIFIED14Ivan Magalhaes
1048Deepesh C DarakjyFrance2026-06-25King, Christopher A Esq RENEWAL18Bernardo Dominic
1049Salvatore D PaprockiGermany2026-06-14Chemel, James L Cpa NEGOTIATION13Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel V StensethBrazilBernardo Dominic NEW
Salvatore B ButtArgentinaElwin Sharvill UNQUALIFIED
Izzy W RutaItalyStephen Shaw NEW
Octavia K CaldareraGermanyOnyama Limba NEGOTIATION
Octavia R FollerAustraliaXuxue Feng PROPOSAL
Juan L RoysterIndiaBernardo Dominic UNQUALIFIED
Juan I MacleadSpainOnyama Limba NEGOTIATION
Rodrigues E OstroskyArgentinaAnna Fali QUALIFIED
Francesco I PoquetteIndiaAnna Fali NEGOTIATION
Maria G FlosiJapanXuxue Feng NEGOTIATION
Aika C MorascaJapanBernardo Dominic QUALIFIED
Stacey U RoysterIndiaAmy Elsner RENEWAL
Darci X DoeBrazilAmy Elsner RENEWAL
Chavez E PerinFranceIvan Magalhaes QUALIFIED
Ricardo Z SlusarskiCanadaOnyama Limba NEW
Adams N MarrierIndiaAnna Fali RENEWAL
Aika O NickaRussiaBernardo Dominic NEW
Aditya P WaycottUnited KingdomBernardo Dominic PROPOSAL
Jones X RimSpainIvan Magalhaes NEW
Leja J BologniaIndiaAsiya Javayant PROPOSAL
Faith A GillianRussiaAmy Elsner NEW
Kadeem M RulapaughSpainOnyama Limba RENEWAL
Stacey B FigeroaItalyOnyama Limba RENEWAL
Kadeem C ShinkoUnited KingdomIoni Bowcher PROPOSAL
Ashley P ButtJapanIoni Bowcher PROPOSAL
Clifford P CampainBrazilAmy Elsner NEW
Francesco S SlusarskiItalyXuxue Feng NEW
Chavez Q MarrierIndiaElwin Sharvill QUALIFIED
Tony B AmigonCanadaAmy Elsner PROPOSAL
Isabel L GauchoBrazilStephen Shaw NEGOTIATION
Jones V NestleRussiaBernardo Dominic UNQUALIFIED
Maria K BowleyAustraliaXuxue Feng NEW
Emily F OstroskyBrazilAnna Fali PROPOSAL
Johnson C RulapaughCanadaAnna Fali UNQUALIFIED
Faith K WhobreyUnited KingdomStephen Shaw NEW
Ricardo F RulapaughGermanyBernardo Dominic RENEWAL
Rodrigues C FigeroaUnited KingdomAnna Fali QUALIFIED
Jones D IturbideSpainIvan Magalhaes RENEWAL
Faith O SlusarskiItalyElwin Sharvill RENEWAL
Izzy P GauchoItalyAsiya Javayant QUALIFIED
Leon Q GillianCanadaAnna Fali RENEWAL
Aruna O DoeBrazilAsiya Javayant PROPOSAL
Nicolas K RimIndiaStephen Shaw QUALIFIED
Aruna G FollerArgentinaXuxue Feng RENEWAL
Aruna P WhobreyCanadaAsiya Javayant NEW
Claire Z GillianRussiaElwin Sharvill PROPOSAL
Jennifer Z VocelkaBrazilStephen Shaw NEGOTIATION
Jennifer N PerinItalyAsiya Javayant PROPOSAL
Jeanfrancois N MorascaBrazilAmy Elsner QUALIFIED
Jones Z SaylorsIndiaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Jefferson C Flosi
Cody X Gaucho
Julie S Dilliard
Munro H Butt
Maisha F Oldroyd
Aika S Bowley
Francesco Y Ruta
Aditya W Gillian
Misaki Z Malet
Jefferson D Garufi
Cody Y Stockham
Stacey M Amigon
Francesco M Sergi
Stacey V Oldroyd
Aruna N Kolmetz
Maria F Saylors
Ashley O Morasca
Chavez F Slusarski
Sinclair Y Foller
Clifford W Waycott
Costa B Ferencz
Octavia N Waycott
Silvio A Bowley
Costa P Amigon
Jennifer B Ferencz
Leon E Poquette
Stacey X Chui
Mayumi F Bolognia
Murillo V Waycott
Murillo Q Malet
Aruna H Campain
Morrow J Bolognia
Faith X Schemmer
Claire E Marrier
Jeanfrancois K Ostrosky
Kaitlin I Stockham
Rodrigues D Tollner
Francesco R Kusko
Silvio L Caldarera
Ashley M Schemmer
Darci V Flosi
Johnson F Bowley
James Q Figeroa
Nicolas O Morasca
Munro R Kolmetz
Julie Q Nicka
Costa O Whobrey
Ashley G Garufi
Arvin I Morasca
Francesco E Darakjy
IdCountryDate
1000Japan2026-06-27
1001Italy2026-06-04
1002Japan2026-06-24
1003Australia2026-06-16
1004Italy2026-06-07
1005Canada2026-06-21
1006Japan2026-06-26
1007Japan2026-06-30
1008Brazil2026-06-27
1009Germany2026-06-09
1010Australia2026-06-17
1011Italy2026-06-06
1012France2026-06-02
1013Argentina2026-06-28
1014Italy2026-06-30
1015Italy2026-06-05
1016Germany2026-06-19
1017Russia2026-06-26
1018Russia2026-06-10
1019India2026-06-13
1020Japan2026-06-14
1021Russia2026-06-03
1022Germany2026-06-22
1023Australia2026-06-03
1024Italy2026-06-03
1025Argentina2026-06-02
1026United Kingdom2026-06-14
1027Canada2026-06-17
1028France2026-06-19
1029France2026-06-23
1030Japan2026-06-13
1031Argentina2026-06-19
1032Brazil2026-06-21
1033India2026-06-10
1034Spain2026-06-08
1035Argentina2026-06-11
1036France2026-06-27
1037Japan2026-06-08
1038Spain2026-06-12
1039France2026-06-20
1040Spain2026-06-28
1041Italy2026-06-20
1042India2026-06-13
1043United Kingdom2026-06-03
1044Russia2026-06-24
1045Russia2026-06-07
1046United Kingdom2026-06-11
1047India2026-06-03
1048Canada2026-06-04
1049Italy2026-06-28

On-Demand Data

NameIdCountryDate
Ricardo C Saylors1000Germany2026-06-10
Antonio F Gaucho1001Brazil2026-06-16
Clifford F Sergi1002Japan2026-06-14
Maria W Paprocki1003France2026-06-10
David J Morasca1004Japan2026-06-08
Jones U Marrier1005Italy2026-06-07
Leon Q Stockham1006Germany2026-06-24
Darci M Nestle1007India2026-06-29
Clifford A Sergi1008Argentina2026-06-23
Nicolas B Nestle1009United Kingdom2026-06-14
Aika C Kolmetz1010Argentina2026-06-12
Mayumi R Tollner1011Germany2026-06-30
Aruna P Flosi1012Brazil2026-06-02
Aruna R Perin1013Argentina2026-06-17
Claire O Slusarski1014France2026-06-20
Aika G Marrier1015Argentina2026-06-29
Octavia I Tollner1016United Kingdom2026-06-08
Smith K Iturbide1017France2026-06-03
Salvatore K Garufi1018Australia2026-06-29
Nicolas G Doe1019Argentina2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues W RulapaughFranceXuxue Feng NEW
Claire Y StockhamItalyIvan Magalhaes NEGOTIATION
Jennifer V CaudyFranceOnyama Limba PROPOSAL
Munro S RoysterJapanAsiya Javayant NEW
Jennifer E IturbideCanadaIvan Magalhaes PROPOSAL
Rodrigues L ChuiRussiaIvan Magalhaes QUALIFIED
James X ChuiAustraliaAmy Elsner RENEWAL
Johnson E FerenczUnited KingdomBernardo Dominic QUALIFIED
Emily L ShinkoGermanyBernardo Dominic QUALIFIED
Jeanfrancois B ButtIndiaBernardo Dominic NEGOTIATION
Emily A BriddickBrazilIvan Magalhaes UNQUALIFIED
Jones M TollnerRussiaIoni Bowcher PROPOSAL
Mujtaba I BowleySpainAmy Elsner RENEWAL
Aika C VenereItalyIvan Magalhaes PROPOSAL
Murillo R SergiUnited KingdomAsiya Javayant NEW
Antonio E AlbaresFranceAmy Elsner NEW
Sinclair W PaprockiSpainAnna Fali QUALIFIED
Juan O AmigonFranceAmy Elsner PROPOSAL
Johnson W RutaBrazilBernardo Dominic RENEWAL
Tony E DoeFranceIoni Bowcher QUALIFIED
Silvio M CaldareraArgentinaBernardo Dominic PROPOSAL
Francesco J GarufiJapanElwin Sharvill NEW
Morrow U WaycottFranceAsiya Javayant PROPOSAL
Isabel F RutaIndiaXuxue Feng NEGOTIATION
Greenwood K StockhamRussiaXuxue Feng NEGOTIATION
Mujtaba L IturbideFranceIoni Bowcher PROPOSAL
Alejandro I BowleyRussiaElwin Sharvill PROPOSAL
James R FigeroaRussiaAsiya Javayant NEW
Jeanfrancois K ShinkoFranceXuxue Feng RENEWAL
Nicolas W NickaAustraliaAnna Fali NEW
David E FigeroaItalyStephen Shaw PROPOSAL
Francesco N StockhamBrazilXuxue Feng NEW
Aditya R GillianCanadaAnna Fali QUALIFIED
Rodrigues E StockhamRussiaAnna Fali PROPOSAL
James B MacleadCanadaIoni Bowcher RENEWAL
Adams D InouyeBrazilAnna Fali PROPOSAL
Murillo A SchemmerUnited KingdomAsiya Javayant RENEWAL
Maria T CampainAustraliaIvan Magalhaes QUALIFIED
Rodrigues V SaylorsArgentinaIvan Magalhaes NEGOTIATION
Maisha M SergiIndiaBernardo 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>