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
Jennifer J IturbideJapanBernardo Dominic QUALIFIED
Julie O SlusarskiUnited KingdomBernardo Dominic NEW
Wickens B BowleyItalyOnyama Limba QUALIFIED
Claire O FollerArgentinaXuxue Feng UNQUALIFIED
Sinclair F RimJapanAsiya Javayant UNQUALIFIED
Faith J GauchoCanadaAsiya Javayant NEW
Jennifer M CaldareraRussiaStephen Shaw NEW
Salvatore P MarrierAustraliaElwin Sharvill NEW
Maisha Q WhobreyCanadaBernardo Dominic RENEWAL
Kadeem W MorascaRussiaStephen Shaw NEW
Murillo V CaudyBrazilAnna Fali QUALIFIED
Izzy Y DoeUnited KingdomAsiya Javayant QUALIFIED
Cody K RoysterAustraliaIvan Magalhaes RENEWAL
Leon K WhobreySpainXuxue Feng UNQUALIFIED
Leon F FollerCanadaOnyama Limba NEW
Jefferson K RutaArgentinaIoni Bowcher QUALIFIED
Jefferson H AlbaresArgentinaXuxue Feng UNQUALIFIED
Julie P WhobreySpainAnna Fali NEW
Salvatore G PerinSpainAmy Elsner NEGOTIATION
Antonio K VenereSpainStephen Shaw QUALIFIED
Wickens X KolmetzJapanElwin Sharvill QUALIFIED
Aika C DoeUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba I GlickFranceAmy Elsner NEW
Jennifer C FlosiAustraliaElwin Sharvill PROPOSAL
Alejandro N CaudySpainBernardo Dominic NEGOTIATION
Jefferson G OstroskyGermanyIoni Bowcher PROPOSAL
Misaki M GlickUnited KingdomIvan Magalhaes RENEWAL
Maria U SlusarskiUnited KingdomStephen Shaw RENEWAL
Wickens J SergiCanadaIvan Magalhaes NEGOTIATION
Johnson U SchemmerJapanIoni Bowcher NEW
Murillo L ChuiArgentinaElwin Sharvill NEGOTIATION
Kadeem R SchemmerAustraliaStephen Shaw RENEWAL
David I CaudyCanadaAsiya Javayant QUALIFIED
Rodrigues V InouyeJapanAmy Elsner NEGOTIATION
Ivar G DilliardGermanyXuxue Feng PROPOSAL
Deepesh M FollerRussiaOnyama Limba PROPOSAL
Jefferson N WieserJapanAmy Elsner PROPOSAL
Alejandro Y GlickCanadaOnyama Limba QUALIFIED
Maisha I SergiGermanyStephen Shaw UNQUALIFIED
Isabel V WaycottFranceIvan Magalhaes NEW
Cody W InouyeCanadaAmy Elsner NEW
Octavia A PerinBrazilIoni Bowcher UNQUALIFIED
Isabel H NickaJapanAnna Fali NEGOTIATION
Darci X CaldareraIndiaAsiya Javayant NEGOTIATION
Darci X AmigonSpainIoni Bowcher PROPOSAL
David W MarrierItalyElwin Sharvill PROPOSAL
Deepesh X CampainIndiaAnna Fali QUALIFIED
Deepesh B GillianItalyAsiya Javayant NEGOTIATION
Wickens A ChuiSpainIoni Bowcher QUALIFIED
Isabel Y ShinkoAustraliaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony P SlusarskiAustraliaXuxue Feng NEW
Adams G BologniaArgentinaStephen Shaw NEW
Ricardo H SergiUnited KingdomIvan Magalhaes NEW
James S VocelkaUnited KingdomAmy Elsner NEW
Chavez G KolmetzJapanIvan Magalhaes UNQUALIFIED
Ivar B MorascaItalyStephen Shaw PROPOSAL
Deepesh R VocelkaSpainAsiya Javayant UNQUALIFIED
James R MarrierIndiaBernardo Dominic UNQUALIFIED
Kadeem V RimSpainAnna Fali NEGOTIATION
Rodrigues Z GarufiFranceAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey E KuskoBrazil2026-07-13Printing Dimensions NEW53Ioni Bowcher
1001Mayumi H WhobreyFrance2026-07-17Chanay, Jeffrey A Esq QUALIFIED2Xuxue Feng
1002Chavez X RimArgentina2026-07-07Commercial Press NEW89Ivan Magalhaes
1003Leon G DoeRussia2026-07-12Rangoni Of Florence RENEWAL41Anna Fali
1004Ashley Q ButtFrance2026-07-01Chapman, Ross E Esq NEGOTIATION1Xuxue Feng
1005Faith B SchemmerItaly2026-07-10Printing Dimensions RENEWAL94Asiya Javayant
1006James B FerenczBrazil2026-07-20Feltz Printing Service NEGOTIATION85Amy Elsner
1007Emily A NestleBrazil2026-07-02Commercial Press QUALIFIED30Onyama Limba
1008Adams M MorascaSpain2026-07-20King, Christopher A Esq QUALIFIED98Xuxue Feng
1009David D StensethBrazil2026-07-11Chapman, Ross E Esq NEGOTIATION57Onyama Limba
1010Rodrigues Q AmigonBrazil2026-07-14Dorl, James J Esq NEGOTIATION53Ioni Bowcher
1011Aika A OldroydAustralia2026-07-18Truhlar And Truhlar Attys NEGOTIATION80Onyama Limba
1012Sinclair I DoeArgentina2026-07-11Dorl, James J Esq NEGOTIATION11Asiya Javayant
1013Jones E AmigonIndia2026-06-30Rousseaux, Michael Esq RENEWAL89Ioni Bowcher
1014Juan W KolmetzIndia2026-07-13Rousseaux, Michael Esq RENEWAL12Xuxue Feng
1015Ashley J CaldareraSpain2026-07-14Rangoni Of Florence QUALIFIED58Amy Elsner
1016Jeanfrancois P FlosiSpain2026-07-23Chanay, Jeffrey A Esq NEW44Onyama Limba
1017Johnson B TollnerArgentina2026-07-02Morlong Associates NEGOTIATION98Amy Elsner
1018Sinclair E FerenczBrazil2026-07-11Feiner Bros NEW94Elwin Sharvill
1019Munro M CaldareraAustralia2026-06-30Buckley Miller Wright NEGOTIATION57Anna Fali
1020Deepesh F ChuiUnited Kingdom2026-07-26Chapman, Ross E Esq NEW88Stephen Shaw
1021Jefferson P GauchoGermany2026-07-20Truhlar And Truhlar Attys QUALIFIED46Amy Elsner
1022Sinclair Y DoeUnited Kingdom2026-07-17Buckley Miller Wright QUALIFIED34Xuxue Feng
1023Juan K RutaGermany2026-07-06Morlong Associates UNQUALIFIED86Ivan Magalhaes
1024Francesco E WaycottBrazil2026-07-03Chemel, James L Cpa NEGOTIATION96Stephen Shaw
1025Aruna Z SlusarskiJapan2026-07-15Rangoni Of Florence NEW19Ivan Magalhaes
1026Greenwood U WhobreyIndia2026-07-01Morlong Associates QUALIFIED99Asiya Javayant
1027Francesco X SlusarskiCanada2026-07-11Feiner Bros UNQUALIFIED74Elwin Sharvill
1028Johnson A StockhamFrance2026-07-24Dorl, James J Esq QUALIFIED2Stephen Shaw
1029Silvio Y SaylorsBrazil2026-07-21Rousseaux, Michael Esq QUALIFIED92Anna Fali
1030Chavez D FollerAustralia2026-07-03Commercial Press NEGOTIATION20Amy Elsner
1031Alejandro K SergiBrazil2026-07-26Printing Dimensions PROPOSAL81Stephen Shaw
1032Kadeem A SergiUnited Kingdom2026-07-06Truhlar And Truhlar Attys UNQUALIFIED4Stephen Shaw
1033Francesco N IturbideRussia2026-07-01Truhlar And Truhlar Attys UNQUALIFIED44Bernardo Dominic
1034Johnson P FollerFrance2026-07-06Buckley Miller Wright UNQUALIFIED7Amy Elsner
1035Alejandro G VocelkaSpain2026-07-14Truhlar And Truhlar Attys RENEWAL75Onyama Limba
1036Ashley V SlusarskiAustralia2026-07-03Rangoni Of Florence RENEWAL86Ioni Bowcher
1037Kaitlin N BologniaBrazil2026-07-06Rousseaux, Michael Esq RENEWAL95Ivan Magalhaes
1038Costa T NestleJapan2026-07-13Feltz Printing Service NEGOTIATION94Bernardo Dominic
1039Murillo G TollnerIndia2026-07-16Rangoni Of Florence RENEWAL32Ivan Magalhaes
1040Aika E InouyeUnited Kingdom2026-07-16Truhlar And Truhlar Attys PROPOSAL34Asiya Javayant
1041James O MarrierBrazil2026-07-11King, Christopher A Esq PROPOSAL25Ioni Bowcher
1042Ashley D StensethJapan2026-07-11King, Christopher A Esq PROPOSAL41Amy Elsner
1043Faith P CampainArgentina2026-07-23Rousseaux, Michael Esq RENEWAL15Elwin Sharvill
1044Johnson L RutaIndia2026-06-29Benton, John B Jr NEW57Bernardo Dominic
1045James Y MaletItaly2026-07-22Chemel, James L Cpa RENEWAL26Amy Elsner
1046Nicolas T VenereSpain2026-07-21Feiner Bros NEGOTIATION38Bernardo Dominic
1047Darci O MaletGermany2026-07-25Dorl, James J Esq QUALIFIED86Elwin Sharvill
1048Jeanfrancois Q PoquetteUnited Kingdom2026-07-04King, Christopher A Esq UNQUALIFIED27Asiya Javayant
1049Chavez J BriddickBrazil2026-07-21Printing Dimensions QUALIFIED54Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Claire I GlickBrazilAmy Elsner PROPOSAL
Leja M CampainCanadaBernardo Dominic QUALIFIED
Jeanfrancois D VenereUnited KingdomXuxue Feng UNQUALIFIED
Jones K GillianFranceIvan Magalhaes NEGOTIATION
Ricardo C SergiGermanyAmy Elsner UNQUALIFIED
Francesco N RoysterCanadaIoni Bowcher QUALIFIED
Murillo J ButtArgentinaAsiya Javayant PROPOSAL
Smith L InouyeSpainIoni Bowcher QUALIFIED
Silvio Y GillianBrazilIvan Magalhaes NEW
Claire P KuskoItalyBernardo Dominic QUALIFIED
Murillo X MacleadJapanElwin Sharvill QUALIFIED
Stacey C OldroydRussiaOnyama Limba QUALIFIED
Chavez W TollnerJapanAnna Fali NEGOTIATION
Silvio W GauchoIndiaAnna Fali RENEWAL
Rodrigues Q FlosiAustraliaAnna Fali PROPOSAL
Adams H RoysterFranceBernardo Dominic NEW
Kadeem B CaudyUnited KingdomElwin Sharvill NEW
Johnson B ChuiSpainIvan Magalhaes UNQUALIFIED
Adams H GillianSpainBernardo Dominic QUALIFIED
Smith C FigeroaBrazilIvan Magalhaes PROPOSAL
Leon Q BologniaSpainStephen Shaw RENEWAL
Kaitlin H GillianUnited KingdomElwin Sharvill PROPOSAL
Julie R WaycottRussiaStephen Shaw RENEWAL
Salvatore V SergiItalyOnyama Limba QUALIFIED
Isabel G BowleyIndiaBernardo Dominic NEGOTIATION
Costa Z BologniaBrazilAsiya Javayant UNQUALIFIED
Morrow H DarakjyUnited KingdomAsiya Javayant QUALIFIED
Kaitlin G NestleGermanyOnyama Limba PROPOSAL
Arvin L GlickItalyAnna Fali UNQUALIFIED
Smith E FigeroaJapanIoni Bowcher QUALIFIED
Mayumi Z ButtIndiaBernardo Dominic NEW
Antonio E AmigonFranceIoni Bowcher NEGOTIATION
Isabel Q GauchoIndiaAmy Elsner NEW
Sinclair A MacleadGermanyIoni Bowcher QUALIFIED
Aditya D FollerAustraliaXuxue Feng UNQUALIFIED
Morrow T OstroskyFranceAsiya Javayant NEW
Izzy V DilliardIndiaIoni Bowcher NEW
Arvin Y PaprockiUnited KingdomIoni Bowcher RENEWAL
Adams E MaletCanadaElwin Sharvill NEGOTIATION
Stacey M CaldareraBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois O BowleyFranceAnna Fali PROPOSAL
Ricardo B MarrierBrazilAnna Fali UNQUALIFIED
Leon Y MaletItalyXuxue Feng NEW
Stacey P BowleyJapanIvan Magalhaes RENEWAL
Chavez S DarakjyGermanyStephen Shaw PROPOSAL
David C ChuiSpainAnna Fali UNQUALIFIED
Wickens R StockhamGermanyOnyama Limba PROPOSAL
Francesco D KolmetzJapanXuxue Feng NEGOTIATION
Greenwood Y ChuiFranceIoni Bowcher PROPOSAL
Stacey B BriddickUnited KingdomBernardo Dominic QUALIFIED
Frozen Columns
Name
Isabel W Venere
Kaitlin S Foller
Alejandro H Albares
Salvatore V Albares
Octavia L Ostrosky
Leon D Vocelka
Chavez V Venere
Izzy M Caldarera
Johnson X Vocelka
Clifford G Whobrey
Aditya T Gillian
Rodrigues Y Gaucho
Octavia W Slusarski
Rodrigues K Poquette
Isabel B Poquette
Salvatore T Malet
Greenwood E Sergi
Wickens H Butt
Julie C Stockham
Ivar C Paprocki
Ashley U Whobrey
Francesco Z Morasca
Antonio A Bolognia
Julie J Stenseth
Sinclair R Albares
Alejandro Q Poquette
Tony V Malet
Misaki V Nestle
Sinclair F Caudy
Clifford J Bowley
Murillo V Royster
Francesco F Rulapaugh
Sinclair M Figeroa
Jennifer Q Morasca
Antonio X Wieser
Smith Y Flosi
Juan S Nestle
Sinclair F Inouye
Costa C Campain
Darci H Dilliard
Clifford T Vocelka
Clifford H Kusko
Costa E Caudy
Jefferson Z Gaucho
Sinclair F Bowley
Leja W Campain
Kaitlin S Maclead
Antonio E Maclead
Johnson V Stockham
Adams I Malet
IdCountryDate
1000Japan2026-07-23
1001Italy2026-06-27
1002India2026-07-05
1003India2026-07-07
1004Russia2026-07-14
1005Canada2026-07-25
1006Germany2026-07-26
1007India2026-07-20
1008United Kingdom2026-07-10
1009Italy2026-07-22
1010Italy2026-07-05
1011Brazil2026-07-16
1012United Kingdom2026-07-08
1013Germany2026-07-18
1014Japan2026-06-29
1015France2026-07-09
1016France2026-07-20
1017Australia2026-06-27
1018Italy2026-07-13
1019Japan2026-07-21
1020Argentina2026-06-28
1021Brazil2026-07-07
1022India2026-07-07
1023Canada2026-07-05
1024United Kingdom2026-07-18
1025Germany2026-07-14
1026Japan2026-07-19
1027United Kingdom2026-07-21
1028Spain2026-07-07
1029India2026-06-28
1030Canada2026-07-19
1031Argentina2026-07-15
1032Argentina2026-06-27
1033Italy2026-07-23
1034Japan2026-06-27
1035Brazil2026-07-12
1036India2026-07-25
1037Australia2026-07-02
1038Canada2026-07-13
1039Germany2026-07-13
1040United Kingdom2026-07-09
1041Canada2026-07-12
1042India2026-07-20
1043Japan2026-07-17
1044Italy2026-07-23
1045Japan2026-07-12
1046India2026-06-29
1047Japan2026-07-13
1048Russia2026-06-28
1049Italy2026-07-20

On-Demand Data

NameIdCountryDate
Jennifer O Shinko1000Spain2026-07-17
Kadeem V Stockham1001Japan2026-07-02
Misaki G Inouye1002Germany2026-06-29
Deepesh F Caudy1003France2026-06-30
Deepesh E Kolmetz1004Japan2026-06-29
Ivar T Ferencz1005Canada2026-06-29
Leja X Foller1006France2026-07-12
Jones Y Albares1007Italy2026-07-05
Rodrigues K Kolmetz1008Japan2026-07-13
Mayumi L Gaucho1009Australia2026-07-15
Morrow L Garufi1010United Kingdom2026-07-01
Jones H Nicka1011Argentina2026-07-10
Misaki Y Tollner1012Russia2026-07-02
Arvin Q Doe1013Brazil2026-07-20
Costa G Wieser1014Japan2026-06-28
Stacey H Bowley1015Canada2026-07-02
Adams O Nicka1016Germany2026-07-23
David K Marrier1017India2026-07-19
Murillo X Figeroa1018Canada2026-07-05
Silvio W Iturbide1019Argentina2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois G WaycottBrazilStephen Shaw QUALIFIED
Arvin T MaletItalyIoni Bowcher PROPOSAL
Octavia S RoysterFranceIvan Magalhaes PROPOSAL
Maisha H VocelkaJapanAsiya Javayant NEGOTIATION
Kaitlin O CampainCanadaIvan Magalhaes RENEWAL
Kaitlin C GarufiUnited KingdomStephen Shaw UNQUALIFIED
Maisha K BologniaJapanIvan Magalhaes NEGOTIATION
Munro F FlosiAustraliaBernardo Dominic RENEWAL
Antonio X MorascaAustraliaStephen Shaw PROPOSAL
Maria B GarufiBrazilOnyama Limba NEW
Darci J SlusarskiBrazilAnna Fali NEW
Jones V DarakjyFranceAmy Elsner PROPOSAL
Kaitlin O IturbideGermanyAnna Fali NEGOTIATION
Octavia R OldroydSpainAnna Fali PROPOSAL
Greenwood A SaylorsRussiaAmy Elsner PROPOSAL
Mayumi K AmigonRussiaXuxue Feng QUALIFIED
Aditya O WhobreyBrazilStephen Shaw NEGOTIATION
Adams Z BowleyRussiaIoni Bowcher QUALIFIED
Ricardo I RoysterUnited KingdomBernardo Dominic PROPOSAL
Salvatore X FerenczArgentinaStephen Shaw UNQUALIFIED
Nicolas H WieserRussiaAnna Fali NEGOTIATION
Johnson B OldroydJapanIoni Bowcher PROPOSAL
Ivar I BriddickJapanAnna Fali PROPOSAL
Stacey Y MorascaItalyAmy Elsner UNQUALIFIED
Johnson E GauchoItalyIvan Magalhaes RENEWAL
Munro R MaletJapanElwin Sharvill RENEWAL
Darci R GauchoAustraliaIoni Bowcher NEW
Silvio O DoeIndiaAmy Elsner PROPOSAL
Ricardo M OldroydRussiaXuxue Feng NEGOTIATION
Munro D CaldareraArgentinaElwin Sharvill PROPOSAL
Ivar L CaldareraGermanyXuxue Feng UNQUALIFIED
Octavia O MaletRussiaIoni Bowcher NEGOTIATION
Jeanfrancois O WieserIndiaIvan Magalhaes UNQUALIFIED
Arvin J GillianGermanyAnna Fali RENEWAL
Jennifer J SaylorsArgentinaOnyama Limba RENEWAL
Ashley E GillianGermanyOnyama Limba NEW
Tony B VenereGermanyElwin Sharvill NEGOTIATION
Emily W RoysterArgentinaAmy Elsner RENEWAL
Wickens F FigeroaSpainIoni Bowcher RENEWAL
Chavez B KolmetzIndiaAnna Fali QUALIFIED

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