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
Izzy R PaprockiSpainAnna Fali NEW
Greenwood R MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Kadeem O PoquetteIndiaBernardo Dominic PROPOSAL
Murillo J DarakjySpainAsiya Javayant NEGOTIATION
Ivar Q BologniaRussiaIoni Bowcher RENEWAL
Johnson J VocelkaArgentinaElwin Sharvill QUALIFIED
Jennifer J ShinkoCanadaAnna Fali UNQUALIFIED
Tony M FerenczFranceOnyama Limba NEGOTIATION
Jones Y BriddickArgentinaAsiya Javayant PROPOSAL
Cody U DoeCanadaOnyama Limba QUALIFIED
Ivar L DarakjyArgentinaXuxue Feng PROPOSAL
Jones A BologniaFranceBernardo Dominic PROPOSAL
Faith B GarufiAustraliaXuxue Feng NEGOTIATION
James C WieserArgentinaXuxue Feng NEGOTIATION
Ivar L KuskoIndiaXuxue Feng NEW
Johnson Q OldroydAustraliaOnyama Limba QUALIFIED
Jefferson I SlusarskiAustraliaBernardo Dominic NEGOTIATION
Adams U DilliardItalyXuxue Feng NEGOTIATION
Wickens B NickaBrazilAmy Elsner UNQUALIFIED
Alejandro M NestleGermanyIvan Magalhaes NEW
Mujtaba L DilliardCanadaBernardo Dominic UNQUALIFIED
Aruna Y GauchoBrazilAnna Fali PROPOSAL
Nicolas C RimCanadaOnyama Limba NEGOTIATION
Kaitlin F MaletSpainIoni Bowcher PROPOSAL
Octavia I FollerCanadaAmy Elsner RENEWAL
Emily Y BologniaGermanyElwin Sharvill RENEWAL
Darci B PerinIndiaXuxue Feng QUALIFIED
Octavia R GarufiIndiaOnyama Limba UNQUALIFIED
Misaki L RutaFranceAnna Fali UNQUALIFIED
Stacey F RoysterIndiaAmy Elsner UNQUALIFIED
Stacey X DarakjyGermanyElwin Sharvill NEGOTIATION
Kadeem H ChuiBrazilXuxue Feng QUALIFIED
Wickens Q RoysterArgentinaXuxue Feng QUALIFIED
Darci R StensethRussiaIvan Magalhaes PROPOSAL
Aruna T FollerArgentinaAmy Elsner NEW
Nicolas T DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Faith X FollerUnited KingdomBernardo Dominic QUALIFIED
Mujtaba M ButtGermanyElwin Sharvill PROPOSAL
Ricardo B OldroydItalyAsiya Javayant UNQUALIFIED
Jones Z InouyeItalyAmy Elsner NEGOTIATION
Mujtaba J MaletFranceElwin Sharvill UNQUALIFIED
Leja W FerenczRussiaOnyama Limba QUALIFIED
Maisha B FlosiCanadaAnna Fali QUALIFIED
David B NestleAustraliaIoni Bowcher UNQUALIFIED
Izzy H AmigonJapanIoni Bowcher RENEWAL
Ricardo H ButtFranceAsiya Javayant QUALIFIED
Juan W NickaRussiaElwin Sharvill RENEWAL
Alejandro J GlickSpainOnyama Limba RENEWAL
Maria C MacleadCanadaAnna Fali UNQUALIFIED
Julie I RulapaughItalyIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair Z VenereFranceAmy Elsner QUALIFIED
Antonio Y NickaBrazilBernardo Dominic NEW
Faith A GlickFranceAmy Elsner UNQUALIFIED
Isabel C CaldareraBrazilOnyama Limba NEW
Claire V BologniaGermanyAsiya Javayant QUALIFIED
Stacey W PerinBrazilAnna Fali NEW
Isabel M KuskoJapanIvan Magalhaes NEW
Salvatore Q KuskoSpainStephen Shaw UNQUALIFIED
Sinclair U SlusarskiArgentinaIoni Bowcher NEGOTIATION
Aika R WieserItalyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba A WieserItaly2026-08-06King, Christopher A Esq NEGOTIATION54Amy Elsner
1001Johnson X StockhamGermany2026-08-13Rousseaux, Michael Esq NEW65Ivan Magalhaes
1002Wickens M RimArgentina2026-07-24Feltz Printing Service NEGOTIATION67Stephen Shaw
1003Leja I StensethCanada2026-08-10Rangoni Of Florence UNQUALIFIED63Stephen Shaw
1004Salvatore B OldroydIndia2026-07-24Truhlar And Truhlar Attys QUALIFIED79Xuxue Feng
1005Smith C GlickItaly2026-08-10Rangoni Of Florence RENEWAL69Ioni Bowcher
1006Ivar C FollerFrance2026-08-06Truhlar And Truhlar Attys PROPOSAL68Asiya Javayant
1007Leon F MorascaIndia2026-07-24Commercial Press RENEWAL79Elwin Sharvill
1008Adams M FollerFrance2026-08-06Truhlar And Truhlar Attys QUALIFIED67Anna Fali
1009David M KolmetzArgentina2026-08-10Buckley Miller Wright NEW2Xuxue Feng
1010Alejandro B ShinkoGermany2026-07-20King, Christopher A Esq NEGOTIATION73Stephen Shaw
1011Tony F StockhamCanada2026-07-29Rangoni Of Florence NEW35Bernardo Dominic
1012Ivar K WhobreyJapan2026-08-16Feiner Bros NEW12Ioni Bowcher
1013Aika J ChuiJapan2026-08-16Benton, John B Jr NEW3Ivan Magalhaes
1014Aruna F CaudyIndia2026-08-12Rangoni Of Florence PROPOSAL72Amy Elsner
1015Leja T MarrierJapan2026-08-02Printing Dimensions QUALIFIED37Ivan Magalhaes
1016Juan Z MorascaSpain2026-07-19Chanay, Jeffrey A Esq PROPOSAL96Elwin Sharvill
1017Faith X SergiAustralia2026-07-31Buckley Miller Wright NEGOTIATION21Ivan Magalhaes
1018Clifford T VenereGermany2026-08-14Feltz Printing Service RENEWAL35Bernardo Dominic
1019Izzy O FollerFrance2026-08-13Buckley Miller Wright RENEWAL50Amy Elsner
1020Salvatore H CaudyFrance2026-07-28Chapman, Ross E Esq QUALIFIED28Bernardo Dominic
1021Faith P FlosiItaly2026-08-09Morlong Associates RENEWAL99Onyama Limba
1022Antonio P CampainArgentina2026-07-27Morlong Associates PROPOSAL42Stephen Shaw
1023Mujtaba R SergiCanada2026-08-17Rangoni Of Florence QUALIFIED1Asiya Javayant
1024Faith T SlusarskiItaly2026-07-19Dorl, James J Esq PROPOSAL12Ioni Bowcher
1025Tony U VocelkaCanada2026-08-07Buckley Miller Wright NEW36Elwin Sharvill
1026Silvio H GillianCanada2026-07-23Feltz Printing Service PROPOSAL39Xuxue Feng
1027James O NickaCanada2026-08-01Morlong Associates RENEWAL10Anna Fali
1028Wickens W MaletItaly2026-07-25Morlong Associates QUALIFIED31Onyama Limba
1029Darci K IturbideGermany2026-08-11Truhlar And Truhlar Attys UNQUALIFIED50Bernardo Dominic
1030Ashley K SergiSpain2026-08-15Printing Dimensions UNQUALIFIED75Onyama Limba
1031Kaitlin C OstroskyArgentina2026-07-26Feiner Bros NEGOTIATION97Amy Elsner
1032Aditya V GarufiAustralia2026-07-19Chanay, Jeffrey A Esq PROPOSAL39Bernardo Dominic
1033Cody Q KolmetzItaly2026-08-13Printing Dimensions QUALIFIED5Onyama Limba
1034Johnson E MaletGermany2026-07-26King, Christopher A Esq RENEWAL12Stephen Shaw
1035Antonio M GlickItaly2026-08-07Truhlar And Truhlar Attys NEGOTIATION93Xuxue Feng
1036Nicolas I VocelkaCanada2026-07-20Truhlar And Truhlar Attys RENEWAL73Bernardo Dominic
1037David D ButtAustralia2026-08-01Rangoni Of Florence RENEWAL31Elwin Sharvill
1038Murillo W RimFrance2026-08-08Chemel, James L Cpa RENEWAL40Asiya Javayant
1039Alejandro H DilliardBrazil2026-07-29Printing Dimensions NEW4Anna Fali
1040Nicolas G MarrierArgentina2026-08-16Dorl, James J Esq PROPOSAL18Bernardo Dominic
1041Wickens T WaycottAustralia2026-08-05Rousseaux, Michael Esq PROPOSAL30Bernardo Dominic
1042Chavez R PoquetteArgentina2026-08-08Chapman, Ross E Esq QUALIFIED70Stephen Shaw
1043Chavez K WhobreyFrance2026-07-23Feltz Printing Service NEW96Asiya Javayant
1044Smith U StensethGermany2026-07-21Chemel, James L Cpa QUALIFIED93Onyama Limba
1045Antonio W RimAustralia2026-08-11Feiner Bros NEGOTIATION31Xuxue Feng
1046Alejandro G GlickSpain2026-07-30Chemel, James L Cpa PROPOSAL83Stephen Shaw
1047Ricardo G RoysterRussia2026-07-20Buckley Miller Wright QUALIFIED92Stephen Shaw
1048Mayumi T AlbaresGermany2026-08-08Printing Dimensions RENEWAL16Asiya Javayant
1049Munro E StensethFrance2026-07-29Chanay, Jeffrey A Esq NEW56Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Clifford H PaprockiJapanAmy Elsner NEGOTIATION
Stacey E InouyeIndiaAmy Elsner QUALIFIED
Juan J BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois H GauchoGermanyAsiya Javayant RENEWAL
Izzy Z FigeroaCanadaAmy Elsner RENEWAL
Arvin T InouyeAustraliaBernardo Dominic PROPOSAL
Leon M MorascaUnited KingdomStephen Shaw NEGOTIATION
Maria P KolmetzCanadaIvan Magalhaes UNQUALIFIED
Adams M SchemmerGermanyStephen Shaw PROPOSAL
Deepesh E CampainUnited KingdomAmy Elsner NEW
Johnson G VenereAustraliaAnna Fali NEGOTIATION
Morrow J CaldareraItalyXuxue Feng NEW
Wickens U KuskoJapanIvan Magalhaes UNQUALIFIED
David W MorascaJapanIvan Magalhaes NEGOTIATION
Jones E AlbaresBrazilOnyama Limba PROPOSAL
James Z PoquetteGermanyAmy Elsner RENEWAL
Misaki P RoysterSpainAnna Fali RENEWAL
Octavia M FollerRussiaStephen Shaw RENEWAL
Aditya I PerinSpainAmy Elsner UNQUALIFIED
Morrow L OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo I NickaAustraliaAmy Elsner RENEWAL
Jennifer K PerinItalyAnna Fali RENEWAL
Aditya F MorascaCanadaBernardo Dominic PROPOSAL
Tony H KolmetzCanadaAnna Fali NEGOTIATION
Salvatore W TollnerRussiaBernardo Dominic PROPOSAL
Greenwood X AlbaresBrazilAmy Elsner QUALIFIED
Leon A AlbaresIndiaIoni Bowcher NEW
Julie H PoquetteItalyIoni Bowcher RENEWAL
Alejandro I SchemmerIndiaAsiya Javayant NEGOTIATION
Munro A WieserUnited KingdomBernardo Dominic PROPOSAL
Leja L FerenczRussiaAmy Elsner NEW
Rodrigues Z CampainGermanyAsiya Javayant UNQUALIFIED
Leja L FlosiAustraliaAmy Elsner PROPOSAL
Cody Y PoquetteIndiaElwin Sharvill PROPOSAL
James U WieserFranceStephen Shaw PROPOSAL
Chavez A FerenczSpainIoni Bowcher RENEWAL
Jones G AmigonArgentinaStephen Shaw PROPOSAL
Leon F CaudyBrazilStephen Shaw NEW
Misaki T InouyeArgentinaIvan Magalhaes QUALIFIED
Izzy W StockhamAustraliaElwin Sharvill NEGOTIATION
Leja B OldroydFranceOnyama Limba NEW
Emily Q PerinRussiaOnyama Limba PROPOSAL
Ricardo B StockhamGermanyAmy Elsner UNQUALIFIED
Aruna W VenereItalyAnna Fali PROPOSAL
David F FollerSpainIoni Bowcher UNQUALIFIED
Izzy X SergiGermanyAsiya Javayant UNQUALIFIED
Salvatore L InouyeAustraliaBernardo Dominic UNQUALIFIED
Murillo F SergiIndiaAsiya Javayant NEW
Mayumi V AlbaresArgentinaIvan Magalhaes RENEWAL
Wickens V GlickUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Deepesh X Chui
Rodrigues Z Stockham
Arvin D Royster
Francesco H Caldarera
Alejandro C Rulapaugh
Isabel S Gillian
Ivar D Malet
Jennifer O Waycott
Salvatore L Bolognia
Faith P Bowley
Darci H Vocelka
Greenwood Y Rim
Isabel H Doe
Sinclair V Chui
Faith W Nicka
Mayumi A Whobrey
Mayumi F Darakjy
Salvatore Q Albares
Rodrigues G Gillian
Maisha O Gaucho
Jones R Maclead
Julie M Malet
Arvin N Gaucho
Julie K Morasca
Francesco B Poquette
Silvio V Nicka
Kadeem X Malet
Octavia X Ruta
Tony V Saylors
Johnson W Nestle
David V Gillian
Francesco G Garufi
Julie Z Rim
Kadeem O Bolognia
Maria O Doe
Wickens C Figeroa
Wickens S Garufi
Antonio D Ostrosky
Aika D Briddick
Alejandro K Saylors
Emily U Waycott
Silvio T Marrier
Maria H Oldroyd
Stacey M Foller
Chavez F Poquette
Jefferson T Rim
Mujtaba F Figeroa
Leon Z Maclead
Mayumi D Malet
Morrow Z Figeroa
IdCountryDate
1000Russia2026-08-17
1001India2026-08-17
1002India2026-07-20
1003Japan2026-08-10
1004Brazil2026-08-07
1005Italy2026-08-07
1006Germany2026-08-14
1007France2026-08-03
1008Australia2026-07-23
1009Germany2026-07-23
1010Spain2026-08-01
1011India2026-07-26
1012Argentina2026-08-17
1013Spain2026-08-08
1014Russia2026-08-16
1015France2026-08-03
1016France2026-08-12
1017Brazil2026-07-27
1018Brazil2026-08-17
1019Spain2026-07-29
1020France2026-07-30
1021Russia2026-08-17
1022Spain2026-07-21
1023Russia2026-08-16
1024Canada2026-07-24
1025Australia2026-07-25
1026Canada2026-07-31
1027Argentina2026-08-10
1028Argentina2026-07-30
1029Spain2026-08-17
1030France2026-08-03
1031Russia2026-08-08
1032Japan2026-08-14
1033United Kingdom2026-07-20
1034Brazil2026-08-06
1035Australia2026-08-16
1036Argentina2026-07-25
1037Russia2026-08-09
1038Japan2026-08-15
1039Brazil2026-07-23
1040Brazil2026-08-09
1041Australia2026-08-04
1042Spain2026-08-02
1043Italy2026-07-29
1044Spain2026-08-12
1045Germany2026-07-19
1046Canada2026-07-22
1047Brazil2026-08-03
1048Australia2026-08-07
1049Germany2026-07-27

On-Demand Data

NameIdCountryDate
Jeanfrancois C Albares1000Italy2026-07-21
Jones X Iturbide1001France2026-08-05
Rodrigues H Wieser1002Australia2026-08-11
Alejandro Y Briddick1003Russia2026-08-10
Aditya T Shinko1004Australia2026-08-01
Jennifer Y Stockham1005United Kingdom2026-07-19
Francesco D Albares1006Australia2026-07-19
Chavez G Garufi1007Japan2026-08-13
Aditya L Marrier1008Canada2026-07-26
Cody Y Vocelka1009Brazil2026-07-28
Tony K Saylors1010Italy2026-07-19
Kaitlin Q Campain1011Canada2026-08-17
Ashley W Gillian1012Russia2026-07-19
Faith M Inouye1013United Kingdom2026-08-13
Mujtaba P Glick1014India2026-07-24
Misaki N Gaucho1015Australia2026-07-25
Antonio S Butt1016Argentina2026-07-29
Tony H Poquette1017Argentina2026-07-27
Tony Z Inouye1018France2026-08-14
Nicolas N Gillian1019Italy2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin A FerenczJapanXuxue Feng NEGOTIATION
Ricardo P RutaGermanyAsiya Javayant QUALIFIED
Sinclair J StensethArgentinaOnyama Limba QUALIFIED
Murillo X BologniaFranceStephen Shaw PROPOSAL
Leja D InouyeItalyAsiya Javayant NEGOTIATION
Murillo G WaycottJapanAmy Elsner UNQUALIFIED
Ashley X KuskoAustraliaBernardo Dominic NEW
Aika Z KolmetzAustraliaStephen Shaw PROPOSAL
Emily V PoquetteIndiaAmy Elsner NEW
Aruna J OldroydIndiaXuxue Feng RENEWAL
Sinclair V MaletBrazilOnyama Limba QUALIFIED
James T BriddickGermanyAnna Fali NEGOTIATION
Mayumi W OldroydIndiaAsiya Javayant PROPOSAL
Costa R CaldareraCanadaOnyama Limba RENEWAL
Greenwood O BriddickBrazilAsiya Javayant RENEWAL
Claire P BologniaRussiaAsiya Javayant NEW
Kaitlin I InouyeUnited KingdomAnna Fali QUALIFIED
Alejandro I KolmetzSpainElwin Sharvill QUALIFIED
Ivar J WaycottSpainIoni Bowcher NEW
Misaki W OstroskyCanadaXuxue Feng UNQUALIFIED
Emily K WieserRussiaXuxue Feng NEGOTIATION
Alejandro B DarakjyFranceBernardo Dominic NEW
Misaki E PerinIndiaElwin Sharvill QUALIFIED
Nicolas B CampainRussiaOnyama Limba RENEWAL
Ashley V MaletAustraliaAnna Fali NEGOTIATION
Costa L CaldareraItalyBernardo Dominic NEW
David J GauchoCanadaAsiya Javayant RENEWAL
Maisha W ChuiGermanyIoni Bowcher UNQUALIFIED
Francesco Z ButtItalyXuxue Feng NEW
Kadeem S AlbaresGermanyAsiya Javayant UNQUALIFIED
Silvio J WhobreyJapanAmy Elsner PROPOSAL
Claire D OldroydGermanyIoni Bowcher QUALIFIED
Claire F SergiRussiaXuxue Feng PROPOSAL
Morrow B BologniaIndiaElwin Sharvill RENEWAL
Costa A MaletUnited KingdomIvan Magalhaes QUALIFIED
Jeanfrancois L CaudyCanadaIvan Magalhaes NEW
Munro G RulapaughArgentinaAsiya Javayant QUALIFIED
David J WieserAustraliaXuxue Feng NEW
Jennifer D NickaBrazilOnyama Limba QUALIFIED
Emily T GauchoCanadaIvan Magalhaes 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>