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 I StensethGermanyIvan Magalhaes NEGOTIATION
Ricardo R DilliardArgentinaStephen Shaw QUALIFIED
Greenwood I RutaRussiaAmy Elsner PROPOSAL
Johnson K AlbaresFranceAnna Fali RENEWAL
Wickens W DoeGermanyIoni Bowcher NEGOTIATION
Juan L IturbideItalyOnyama Limba UNQUALIFIED
Chavez K GarufiCanadaXuxue Feng PROPOSAL
Cody Q DarakjyBrazilXuxue Feng UNQUALIFIED
Clifford E WhobreyGermanyOnyama Limba UNQUALIFIED
Arvin F KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Stacey F InouyeJapanIvan Magalhaes UNQUALIFIED
Darci L DoeSpainBernardo Dominic QUALIFIED
Alejandro H BologniaCanadaStephen Shaw NEGOTIATION
Antonio Y VenereArgentinaIvan Magalhaes RENEWAL
Rodrigues A MorascaRussiaAnna Fali NEGOTIATION
Nicolas S DoeArgentinaIoni Bowcher NEW
Rodrigues C OstroskyJapanStephen Shaw QUALIFIED
Ivar H RimJapanBernardo Dominic QUALIFIED
Ricardo U DoeAustraliaStephen Shaw UNQUALIFIED
Wickens G PaprockiBrazilOnyama Limba NEGOTIATION
Jefferson T FigeroaArgentinaXuxue Feng PROPOSAL
Maria S GlickIndiaAsiya Javayant UNQUALIFIED
Kadeem C SaylorsRussiaStephen Shaw PROPOSAL
Aruna G MacleadRussiaAnna Fali NEGOTIATION
Clifford Q NestleSpainStephen Shaw QUALIFIED
Leon D CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Julie F MacleadAustraliaOnyama Limba NEW
Kaitlin F VenereIndiaIoni Bowcher RENEWAL
Juan V BowleyRussiaIvan Magalhaes NEGOTIATION
Costa Z PaprockiGermanyStephen Shaw QUALIFIED
James L OstroskyJapanElwin Sharvill UNQUALIFIED
Aditya P MacleadBrazilIvan Magalhaes RENEWAL
Arvin N MarrierUnited KingdomIoni Bowcher PROPOSAL
Alejandro J MacleadUnited KingdomIvan Magalhaes NEGOTIATION
Aruna X WaycottGermanyIvan Magalhaes PROPOSAL
Maria R VenereBrazilOnyama Limba UNQUALIFIED
Leja A FollerUnited KingdomOnyama Limba QUALIFIED
Arvin Q MarrierIndiaBernardo Dominic PROPOSAL
Munro N GillianCanadaStephen Shaw NEGOTIATION
Faith X OldroydSpainElwin Sharvill NEW
Silvio P AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Aika V AmigonRussiaBernardo Dominic UNQUALIFIED
Arvin M KolmetzArgentinaAmy Elsner UNQUALIFIED
Adams E WaycottCanadaXuxue Feng RENEWAL
Costa Q DarakjyCanadaAmy Elsner NEW
Munro C AlbaresAustraliaOnyama Limba NEGOTIATION
Smith I PaprockiFranceElwin Sharvill NEGOTIATION
Mayumi S NestleIndiaIoni Bowcher PROPOSAL
Leja I NestleIndiaAsiya Javayant QUALIFIED
Leja S GauchoGermanyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa Q BologniaArgentinaBernardo Dominic PROPOSAL
Darci L StockhamItalyBernardo Dominic NEW
Kaitlin H BologniaCanadaOnyama Limba NEGOTIATION
Deepesh T OldroydGermanyAnna Fali NEW
Maria E IturbideItalyElwin Sharvill PROPOSAL
Deepesh S GauchoJapanAmy Elsner NEGOTIATION
Munro Q CaldareraRussiaIoni Bowcher NEW
Aditya O WieserUnited KingdomOnyama Limba RENEWAL
Darci Y WhobreyGermanyIoni Bowcher PROPOSAL
Salvatore K RoysterItalyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey U WieserSpain2026-06-11Morlong Associates NEGOTIATION45Bernardo Dominic
1001Clifford H AmigonUnited Kingdom2026-06-03Commercial Press RENEWAL4Xuxue Feng
1002Aruna O ButtRussia2026-06-02Chapman, Ross E Esq RENEWAL98Elwin Sharvill
1003Leja O VenereItaly2026-06-02Rangoni Of Florence PROPOSAL53Xuxue Feng
1004Mujtaba W MacleadIndia2026-06-06Chemel, James L Cpa UNQUALIFIED6Amy Elsner
1005Julie E SergiGermany2026-06-14Rousseaux, Michael Esq QUALIFIED57Bernardo Dominic
1006Costa K FlosiFrance2026-06-11Commercial Press NEW66Bernardo Dominic
1007Smith A DilliardItaly2026-06-11Dorl, James J Esq RENEWAL92Elwin Sharvill
1008Stacey H ShinkoIndia2026-06-02Feiner Bros NEGOTIATION55Stephen Shaw
1009Misaki O NestleRussia2026-06-22Feiner Bros NEGOTIATION78Amy Elsner
1010Morrow O CaldareraJapan2026-07-01Dorl, James J Esq NEGOTIATION62Bernardo Dominic
1011Antonio R SergiSpain2026-06-03Truhlar And Truhlar Attys NEGOTIATION1Xuxue Feng
1012Antonio Z AmigonItaly2026-06-08Chanay, Jeffrey A Esq NEW69Anna Fali
1013Jones C GlickIndia2026-06-24Benton, John B Jr UNQUALIFIED59Elwin Sharvill
1014Adams W RulapaughBrazil2026-06-23Buckley Miller Wright QUALIFIED61Stephen Shaw
1015Arvin V NestleArgentina2026-06-26Feltz Printing Service RENEWAL6Ioni Bowcher
1016Kadeem H VocelkaGermany2026-06-16Feltz Printing Service RENEWAL72Elwin Sharvill
1017Julie R DilliardUnited Kingdom2026-06-05Buckley Miller Wright QUALIFIED85Xuxue Feng
1018Juan I VenereItaly2026-06-25Benton, John B Jr PROPOSAL15Ioni Bowcher
1019Julie S RutaArgentina2026-06-12Truhlar And Truhlar Attys UNQUALIFIED90Xuxue Feng
1020Arvin N GillianIndia2026-06-29Chanay, Jeffrey A Esq RENEWAL62Xuxue Feng
1021Mujtaba T PaprockiItaly2026-06-29Morlong Associates QUALIFIED99Elwin Sharvill
1022Munro P InouyeRussia2026-06-30Printing Dimensions PROPOSAL56Ivan Magalhaes
1023Rodrigues P OldroydBrazil2026-06-11Buckley Miller Wright PROPOSAL3Amy Elsner
1024Jennifer H NickaUnited Kingdom2026-06-28Dorl, James J Esq NEW22Elwin Sharvill
1025Morrow L PoquetteArgentina2026-06-06King, Christopher A Esq NEW26Asiya Javayant
1026Johnson L GillianCanada2026-06-11Commercial Press NEW83Amy Elsner
1027Rodrigues E ButtRussia2026-06-28Dorl, James J Esq NEGOTIATION92Ivan Magalhaes
1028Kadeem Z PoquetteJapan2026-06-15Truhlar And Truhlar Attys UNQUALIFIED75Bernardo Dominic
1029Arvin W RimFrance2026-06-16Truhlar And Truhlar Attys QUALIFIED27Xuxue Feng
1030Octavia N AmigonJapan2026-06-29Chapman, Ross E Esq QUALIFIED36Xuxue Feng
1031Leja U VocelkaUnited Kingdom2026-06-16Feiner Bros UNQUALIFIED28Bernardo Dominic
1032Claire J ShinkoUnited Kingdom2026-06-04Feiner Bros RENEWAL67Elwin Sharvill
1033Murillo G VocelkaArgentina2026-06-04King, Christopher A Esq QUALIFIED15Ioni Bowcher
1034Rodrigues Y ButtIndia2026-06-21Chapman, Ross E Esq UNQUALIFIED5Elwin Sharvill
1035Izzy M CampainIndia2026-06-27Chanay, Jeffrey A Esq UNQUALIFIED68Onyama Limba
1036Claire C TollnerUnited Kingdom2026-06-17Truhlar And Truhlar Attys NEGOTIATION9Amy Elsner
1037Kadeem P PoquetteGermany2026-06-20Benton, John B Jr NEW44Amy Elsner
1038Mujtaba N VenereCanada2026-06-21Rousseaux, Michael Esq PROPOSAL65Ivan Magalhaes
1039Jefferson R WieserIndia2026-06-27Chemel, James L Cpa NEW52Asiya Javayant
1040Tony E AmigonSpain2026-06-09King, Christopher A Esq RENEWAL14Anna Fali
1041Leja X AmigonJapan2026-06-22Feltz Printing Service QUALIFIED80Stephen Shaw
1042Ashley U MorascaItaly2026-06-05Rousseaux, Michael Esq QUALIFIED1Onyama Limba
1043Clifford V MaletUnited Kingdom2026-06-05King, Christopher A Esq NEGOTIATION73Bernardo Dominic
1044Murillo N GlickSpain2026-06-25Rangoni Of Florence UNQUALIFIED41Elwin Sharvill
1045Aruna A WieserFrance2026-06-08Chemel, James L Cpa UNQUALIFIED57Ioni Bowcher
1046Aika O ChuiRussia2026-06-08Feltz Printing Service NEW92Anna Fali
1047Misaki D RutaUnited Kingdom2026-06-11Truhlar And Truhlar Attys NEGOTIATION28Bernardo Dominic
1048James K SchemmerJapan2026-06-12Rangoni Of Florence NEGOTIATION10Onyama Limba
1049Octavia K MaletItaly2026-06-30Commercial Press QUALIFIED62Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Murillo L NickaFranceAnna Fali NEW
Morrow W VocelkaRussiaIoni Bowcher QUALIFIED
Silvio F ShinkoRussiaBernardo Dominic PROPOSAL
Emily V DoeCanadaIvan Magalhaes UNQUALIFIED
Ivar A CaldareraGermanyAnna Fali PROPOSAL
Izzy K PerinIndiaStephen Shaw NEGOTIATION
Jefferson M InouyeItalyAmy Elsner NEW
Munro U WhobreyFranceIvan Magalhaes UNQUALIFIED
Sinclair N NestleSpainStephen Shaw RENEWAL
Sinclair S CampainArgentinaXuxue Feng UNQUALIFIED
Kadeem I GauchoFranceAmy Elsner RENEWAL
Adams G MorascaItalyAnna Fali RENEWAL
Smith K ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Cody C GarufiAustraliaAnna Fali QUALIFIED
Costa K SlusarskiCanadaBernardo Dominic UNQUALIFIED
Cody P PoquetteAustraliaAnna Fali NEGOTIATION
Maria J FlosiUnited KingdomAmy Elsner RENEWAL
Francesco P RutaItalyOnyama Limba NEGOTIATION
Ricardo K DoeBrazilAsiya Javayant QUALIFIED
Faith Q SchemmerCanadaStephen Shaw NEW
Cody S MorascaJapanElwin Sharvill NEGOTIATION
Darci W FollerCanadaAmy Elsner QUALIFIED
Aika B BowleyFranceAsiya Javayant PROPOSAL
Silvio M DarakjyFranceBernardo Dominic NEW
Francesco I AlbaresIndiaAmy Elsner PROPOSAL
Mujtaba A IturbideJapanAnna Fali NEW
James A FerenczJapanAsiya Javayant UNQUALIFIED
David S SlusarskiGermanyOnyama Limba RENEWAL
Cody C FerenczJapanBernardo Dominic PROPOSAL
Mujtaba G BriddickJapanAnna Fali RENEWAL
Greenwood W AlbaresSpainAsiya Javayant UNQUALIFIED
Leon H KuskoBrazilAsiya Javayant UNQUALIFIED
Maisha P GauchoAustraliaIoni Bowcher RENEWAL
Misaki M VocelkaBrazilStephen Shaw QUALIFIED
Leon G OstroskyRussiaStephen Shaw QUALIFIED
Maria Y InouyeItalyAnna Fali PROPOSAL
Darci R MorascaCanadaIoni Bowcher PROPOSAL
Juan A WieserJapanAsiya Javayant NEGOTIATION
Darci K MaletGermanyXuxue Feng NEGOTIATION
David X DarakjyFranceXuxue Feng NEGOTIATION
Aditya T FollerIndiaIoni Bowcher NEGOTIATION
Murillo E SchemmerBrazilOnyama Limba RENEWAL
Maisha G BologniaIndiaIoni Bowcher PROPOSAL
Jones Z WaycottAustraliaAmy Elsner PROPOSAL
Emily U DilliardJapanStephen Shaw QUALIFIED
Jennifer M KuskoUnited KingdomXuxue Feng UNQUALIFIED
Claire Z MaletCanadaStephen Shaw RENEWAL
Rodrigues Z CaldareraBrazilElwin Sharvill QUALIFIED
Arvin B PerinItalyAnna Fali NEGOTIATION
Wickens B SchemmerItalyXuxue Feng NEGOTIATION
Frozen Columns
Name
Darci L Royster
Tony X Iturbide
Claire N Marrier
Antonio M Caudy
Maria I Caldarera
Maria R Shinko
Juan N Sergi
Isabel C Marrier
Ashley D Whobrey
Misaki B Kolmetz
Greenwood S Kusko
Aika Q Ostrosky
Sinclair C Sergi
Maisha D Inouye
Aruna L Ruta
Rodrigues B Oldroyd
Arvin K Rulapaugh
Jones Z Whobrey
Aruna D Ostrosky
Ricardo T Albares
Costa U Maclead
Arvin X Butt
Cody Y Vocelka
Misaki E Chui
Aditya D Nestle
Stacey O Wieser
Arvin V Briddick
Kadeem W Figeroa
Wickens A Darakjy
Deepesh W Oldroyd
Salvatore M Gaucho
Wickens N Vocelka
Mayumi H Wieser
Aruna Y Poquette
Rodrigues H Nestle
Alejandro J Stockham
Aruna O Dilliard
Johnson O Wieser
Leja S Royster
Aika H Marrier
Isabel W Glick
Smith O Bowley
Tony G Wieser
Morrow F Garufi
James F Bowley
Jennifer Z Maclead
Aditya P Saylors
Deepesh M Stockham
Wickens L Dilliard
Rodrigues J Maclead
IdCountryDate
1000Argentina2026-06-27
1001Canada2026-06-02
1002India2026-06-19
1003Italy2026-06-10
1004India2026-06-30
1005Russia2026-06-11
1006United Kingdom2026-06-23
1007Argentina2026-06-13
1008India2026-06-26
1009Russia2026-06-16
1010India2026-06-20
1011Germany2026-06-13
1012Italy2026-06-16
1013Argentina2026-06-27
1014India2026-06-26
1015Argentina2026-06-18
1016France2026-06-28
1017Germany2026-06-29
1018Australia2026-06-16
1019Canada2026-06-02
1020United Kingdom2026-06-25
1021Spain2026-06-07
1022Australia2026-06-22
1023Japan2026-06-20
1024Japan2026-06-21
1025United Kingdom2026-06-30
1026Argentina2026-06-28
1027Canada2026-06-27
1028India2026-06-16
1029United Kingdom2026-06-24
1030Germany2026-06-20
1031Argentina2026-06-18
1032France2026-06-11
1033Japan2026-06-05
1034Brazil2026-06-17
1035Japan2026-06-22
1036India2026-06-15
1037Argentina2026-06-05
1038Australia2026-06-05
1039Russia2026-06-12
1040United Kingdom2026-06-19
1041Canada2026-06-18
1042United Kingdom2026-06-13
1043Argentina2026-06-26
1044Italy2026-06-17
1045Italy2026-06-12
1046India2026-06-28
1047Germany2026-06-24
1048Canada2026-06-15
1049Germany2026-06-09

On-Demand Data

NameIdCountryDate
Stacey Z Marrier1000Argentina2026-06-18
Antonio K Marrier1001United Kingdom2026-06-07
Antonio J Malet1002Brazil2026-06-14
Jones X Shinko1003France2026-06-11
Leon O Malet1004Germany2026-06-27
Emily R Kolmetz1005Canada2026-06-02
Kaitlin H Morasca1006Japan2026-06-22
Ricardo F Bolognia1007Argentina2026-06-30
Deepesh E Kusko1008Germany2026-06-10
Chavez H Wieser1009Canada2026-06-05
Cody S Stockham1010Italy2026-06-16
Claire U Shinko1011Argentina2026-07-01
Faith Q Poquette1012Italy2026-06-07
Chavez L Kusko1013France2026-06-14
Adams H Caudy1014Italy2026-06-18
Antonio M Nestle1015Japan2026-06-02
Stacey F Figeroa1016France2026-06-07
Maria Y Perin1017Germany2026-06-25
Alejandro K Royster1018Germany2026-06-18
Aruna O Stockham1019Japan2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna H MarrierAustraliaOnyama Limba PROPOSAL
Sinclair W MarrierIndiaOnyama Limba RENEWAL
Maria O OldroydArgentinaAnna Fali PROPOSAL
Faith D CampainRussiaXuxue Feng NEW
Wickens Q RutaSpainXuxue Feng RENEWAL
Misaki O OldroydBrazilAsiya Javayant NEW
Nicolas K GlickBrazilAsiya Javayant NEW
Ricardo N PerinGermanyOnyama Limba RENEWAL
Mayumi V MarrierIndiaOnyama Limba NEGOTIATION
Wickens S FollerIndiaIoni Bowcher PROPOSAL
Julie S SchemmerAustraliaElwin Sharvill RENEWAL
Antonio I CaudyIndiaAmy Elsner RENEWAL
Alejandro F SaylorsJapanXuxue Feng PROPOSAL
Tony G DarakjyItalyElwin Sharvill QUALIFIED
Tony T GauchoCanadaStephen Shaw RENEWAL
Sinclair H OldroydAustraliaAsiya Javayant NEGOTIATION
Alejandro N OstroskyArgentinaAnna Fali QUALIFIED
Maria A VocelkaSpainAnna Fali NEW
Morrow U RulapaughGermanyAmy Elsner NEW
Sinclair D StensethUnited KingdomBernardo Dominic RENEWAL
Cody V TollnerSpainAmy Elsner QUALIFIED
Faith M PerinJapanAsiya Javayant UNQUALIFIED
Leja E GlickRussiaStephen Shaw UNQUALIFIED
Tony H SchemmerUnited KingdomIoni Bowcher PROPOSAL
Isabel F SaylorsCanadaOnyama Limba UNQUALIFIED
Deepesh N ChuiJapanIoni Bowcher UNQUALIFIED
Rodrigues D DilliardItalyXuxue Feng PROPOSAL
Antonio N RutaIndiaElwin Sharvill RENEWAL
Ivar A BologniaBrazilOnyama Limba NEW
Leja Q GlickSpainOnyama Limba UNQUALIFIED
Ivar D FollerArgentinaIvan Magalhaes NEW
Costa F RutaRussiaAnna Fali NEW
Jeanfrancois K VocelkaFranceElwin Sharvill UNQUALIFIED
Jefferson C StockhamUnited KingdomIoni Bowcher RENEWAL
Emily V MarrierUnited KingdomAsiya Javayant RENEWAL
Misaki G NickaJapanOnyama Limba PROPOSAL
Octavia P BologniaCanadaBernardo Dominic NEGOTIATION
Ricardo S BowleyAustraliaIvan Magalhaes UNQUALIFIED
Costa S FollerCanadaOnyama Limba QUALIFIED
Chavez U FlosiItalyAmy Elsner 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>