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
Adams C MaletCanadaBernardo Dominic RENEWAL
David P SaylorsRussiaBernardo Dominic NEW
Mayumi K FlosiBrazilStephen Shaw NEGOTIATION
Wickens G CaudyCanadaOnyama Limba NEGOTIATION
Mujtaba S SlusarskiFranceIvan Magalhaes NEW
Arvin V MacleadAustraliaAmy Elsner NEGOTIATION
Chavez P SaylorsArgentinaXuxue Feng RENEWAL
Murillo C OstroskyIndiaElwin Sharvill PROPOSAL
Arvin W FerenczIndiaXuxue Feng RENEWAL
Francesco T TollnerFranceBernardo Dominic PROPOSAL
Rodrigues T WieserItalyXuxue Feng NEGOTIATION
Antonio P RutaBrazilAsiya Javayant UNQUALIFIED
Smith W FigeroaItalyAmy Elsner NEGOTIATION
Kaitlin N CaldareraJapanXuxue Feng PROPOSAL
Tony J CaudyRussiaAmy Elsner NEGOTIATION
Adams U CampainBrazilOnyama Limba NEW
Julie X BowleyIndiaOnyama Limba RENEWAL
Aika J FollerUnited KingdomStephen Shaw RENEWAL
James E PaprockiAustraliaIoni Bowcher PROPOSAL
Mujtaba M SlusarskiSpainAnna Fali QUALIFIED
Kadeem U ButtGermanyXuxue Feng QUALIFIED
Jefferson O GauchoFranceIvan Magalhaes PROPOSAL
Chavez S SlusarskiIndiaAnna Fali PROPOSAL
Ivar P CampainFranceStephen Shaw UNQUALIFIED
Ivar H DoeBrazilAmy Elsner PROPOSAL
James W MaletBrazilAsiya Javayant NEW
Leon L CaldareraJapanAmy Elsner PROPOSAL
Jefferson P MacleadJapanAmy Elsner NEW
Jeanfrancois I PaprockiCanadaAnna Fali NEGOTIATION
Darci L BowleySpainElwin Sharvill NEGOTIATION
Adams L FigeroaSpainOnyama Limba NEW
James G ShinkoItalyStephen Shaw UNQUALIFIED
Juan K InouyeItalyAsiya Javayant NEW
Maria P ChuiArgentinaOnyama Limba RENEWAL
James L WieserFranceAmy Elsner UNQUALIFIED
Clifford V OstroskyJapanIvan Magalhaes NEGOTIATION
Jennifer F StockhamBrazilElwin Sharvill RENEWAL
Murillo N RulapaughJapanAsiya Javayant UNQUALIFIED
Silvio Z KuskoGermanyAnna Fali PROPOSAL
Clifford M AmigonBrazilAsiya Javayant UNQUALIFIED
Mayumi O GlickIndiaAnna Fali PROPOSAL
Jones Z GarufiAustraliaAnna Fali UNQUALIFIED
Rodrigues H CampainItalyAmy Elsner RENEWAL
Faith H PerinSpainIoni Bowcher PROPOSAL
Antonio X DarakjyBrazilIoni Bowcher NEW
Murillo W InouyeIndiaOnyama Limba NEGOTIATION
Kadeem F VenereArgentinaIoni Bowcher RENEWAL
Maisha X PerinItalyAmy Elsner UNQUALIFIED
Silvio B IturbideSpainXuxue Feng PROPOSAL
Kadeem L MaletSpainAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Antonio M OstroskyJapanBernardo Dominic QUALIFIED
Mujtaba Z MorascaUnited KingdomXuxue Feng QUALIFIED
Izzy U TollnerGermanyIvan Magalhaes NEGOTIATION
Murillo Z DilliardCanadaElwin Sharvill NEGOTIATION
Julie S CaldareraUnited KingdomAmy Elsner QUALIFIED
Leon A WieserUnited KingdomXuxue Feng NEW
Clifford W FollerFranceIoni Bowcher UNQUALIFIED
Octavia X IturbideFranceIvan Magalhaes PROPOSAL
Morrow Y KuskoItalyOnyama Limba NEW
Clifford M KuskoUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo T CampainGermany2026-06-22Morlong Associates RENEWAL2Ivan Magalhaes
1001Ricardo J NickaItaly2026-07-04Chapman, Ross E Esq QUALIFIED79Bernardo Dominic
1002Leon D FerenczUnited Kingdom2026-06-17Commercial Press QUALIFIED6Asiya Javayant
1003Adams U GillianIndia2026-06-13Feiner Bros UNQUALIFIED19Onyama Limba
1004Greenwood S KolmetzBrazil2026-06-30Feltz Printing Service NEW0Bernardo Dominic
1005Adams K OstroskyJapan2026-06-27Chapman, Ross E Esq RENEWAL37Anna Fali
1006Maisha S KolmetzRussia2026-06-13Chapman, Ross E Esq QUALIFIED5Elwin Sharvill
1007Leon C KuskoFrance2026-06-21Feltz Printing Service UNQUALIFIED64Stephen Shaw
1008Maria M MaletRussia2026-06-25Buckley Miller Wright UNQUALIFIED80Xuxue Feng
1009Ricardo O OldroydFrance2026-07-02Feiner Bros NEGOTIATION57Xuxue Feng
1010Leja U WieserBrazil2026-06-17Chapman, Ross E Esq NEGOTIATION73Asiya Javayant
1011Tony I RutaUnited Kingdom2026-06-23Commercial Press NEGOTIATION70Xuxue Feng
1012Adams H DarakjySpain2026-06-26Chanay, Jeffrey A Esq RENEWAL76Elwin Sharvill
1013Claire E OldroydJapan2026-06-26Dorl, James J Esq NEGOTIATION40Elwin Sharvill
1014Smith P DarakjyCanada2026-06-24Commercial Press NEW43Ivan Magalhaes
1015Rodrigues N BriddickGermany2026-06-19Rangoni Of Florence PROPOSAL58Elwin Sharvill
1016Aruna I GillianBrazil2026-06-18Buckley Miller Wright NEW12Anna Fali
1017Maria J KolmetzUnited Kingdom2026-07-09Feltz Printing Service NEGOTIATION24Bernardo Dominic
1018Costa R CampainSpain2026-06-23Chemel, James L Cpa NEW83Stephen Shaw
1019Kaitlin P SaylorsArgentina2026-06-16King, Christopher A Esq PROPOSAL78Amy Elsner
1020Stacey H MorascaRussia2026-06-20Feiner Bros PROPOSAL21Elwin Sharvill
1021Julie R AmigonGermany2026-06-12King, Christopher A Esq RENEWAL59Amy Elsner
1022Costa E OstroskyItaly2026-06-20Rousseaux, Michael Esq PROPOSAL70Xuxue Feng
1023Silvio A BowleyArgentina2026-06-11Printing Dimensions NEGOTIATION90Xuxue Feng
1024Murillo J FollerSpain2026-06-22Feltz Printing Service RENEWAL99Asiya Javayant
1025Tony G WhobreyGermany2026-07-07Truhlar And Truhlar Attys QUALIFIED83Ioni Bowcher
1026Mayumi Q BriddickRussia2026-07-06Morlong Associates NEGOTIATION90Asiya Javayant
1027Octavia U FigeroaRussia2026-06-20King, Christopher A Esq UNQUALIFIED89Elwin Sharvill
1028Clifford D MacleadAustralia2026-06-25Feltz Printing Service NEW17Anna Fali
1029Aika R GillianJapan2026-07-06Dorl, James J Esq QUALIFIED90Onyama Limba
1030Antonio U CampainSpain2026-06-27Feiner Bros PROPOSAL66Anna Fali
1031Sinclair L MorascaJapan2026-07-03Chapman, Ross E Esq QUALIFIED83Xuxue Feng
1032Salvatore U GlickBrazil2026-06-13Benton, John B Jr UNQUALIFIED84Stephen Shaw
1033Tony C CampainBrazil2026-06-22King, Christopher A Esq PROPOSAL8Elwin Sharvill
1034Sinclair X SchemmerCanada2026-06-13Rangoni Of Florence NEGOTIATION6Bernardo Dominic
1035Ivar W RulapaughBrazil2026-06-22Commercial Press UNQUALIFIED89Anna Fali
1036Kadeem J ButtSpain2026-06-12Buckley Miller Wright QUALIFIED12Amy Elsner
1037Chavez A StensethSpain2026-07-03Chemel, James L Cpa UNQUALIFIED72Xuxue Feng
1038Maisha D CaudyAustralia2026-06-12King, Christopher A Esq UNQUALIFIED95Bernardo Dominic
1039Tony K BowleyCanada2026-06-25Truhlar And Truhlar Attys UNQUALIFIED96Ioni Bowcher
1040Aika Q NestleBrazil2026-07-02Commercial Press RENEWAL46Elwin Sharvill
1041Darci D IturbideItaly2026-06-18Chapman, Ross E Esq QUALIFIED29Onyama Limba
1042Alejandro Z GauchoUnited Kingdom2026-07-02King, Christopher A Esq RENEWAL25Bernardo Dominic
1043Wickens B WieserAustralia2026-07-08Printing Dimensions NEW95Amy Elsner
1044Murillo V FerenczArgentina2026-07-05Feiner Bros NEW98Stephen Shaw
1045James F InouyeBrazil2026-07-07Rangoni Of Florence QUALIFIED41Ivan Magalhaes
1046Ashley K RimJapan2026-07-08Dorl, James J Esq UNQUALIFIED14Xuxue Feng
1047Antonio M CaudyGermany2026-06-17Chapman, Ross E Esq NEW76Bernardo Dominic
1048Smith J ButtCanada2026-06-12Chemel, James L Cpa NEW88Stephen Shaw
1049Claire A PoquetteIndia2026-06-14Truhlar And Truhlar Attys NEW94Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues H GlickFranceIvan Magalhaes PROPOSAL
Wickens B NestleAustraliaElwin Sharvill PROPOSAL
Izzy F MacleadAustraliaBernardo Dominic PROPOSAL
Mayumi M RimGermanyAmy Elsner UNQUALIFIED
Kadeem Q ChuiUnited KingdomXuxue Feng RENEWAL
Silvio T FlosiBrazilOnyama Limba PROPOSAL
Faith K DoeArgentinaAsiya Javayant UNQUALIFIED
Maria W CaudyJapanIoni Bowcher UNQUALIFIED
Ashley X WaycottJapanBernardo Dominic UNQUALIFIED
Faith F MaletSpainIoni Bowcher NEGOTIATION
Silvio Q MarrierIndiaIoni Bowcher QUALIFIED
Emily U FigeroaBrazilStephen Shaw NEW
Ricardo J VenereUnited KingdomAmy Elsner PROPOSAL
Leja I DilliardAustraliaAmy Elsner RENEWAL
Jefferson W TollnerJapanIvan Magalhaes PROPOSAL
Ashley Z GarufiGermanyBernardo Dominic QUALIFIED
Costa A WieserItalyXuxue Feng NEW
Chavez D FigeroaJapanXuxue Feng NEW
James Z MaletSpainOnyama Limba NEW
Ashley W MaletCanadaOnyama Limba PROPOSAL
Wickens E SaylorsItalyStephen Shaw QUALIFIED
David V MarrierUnited KingdomAmy Elsner PROPOSAL
Murillo Z DarakjyJapanStephen Shaw PROPOSAL
Kadeem A KolmetzItalyIoni Bowcher NEGOTIATION
Salvatore I KuskoCanadaAsiya Javayant NEW
Rodrigues F CaudyRussiaXuxue Feng NEGOTIATION
Emily U GlickIndiaAnna Fali QUALIFIED
Arvin T DarakjyBrazilXuxue Feng PROPOSAL
Smith E DilliardGermanyElwin Sharvill UNQUALIFIED
Nicolas P CaldareraCanadaAmy Elsner UNQUALIFIED
Ashley N AmigonRussiaBernardo Dominic UNQUALIFIED
Jones Y FlosiGermanyAnna Fali NEW
Ricardo D RutaIndiaStephen Shaw RENEWAL
Mujtaba P BriddickSpainIvan Magalhaes PROPOSAL
Wickens Y InouyeFranceIvan Magalhaes QUALIFIED
Alejandro V SchemmerJapanAmy Elsner RENEWAL
Jones O NickaIndiaXuxue Feng NEW
Munro R CampainFranceAnna Fali NEGOTIATION
Smith F PoquetteFranceStephen Shaw QUALIFIED
Darci R WhobreySpainElwin Sharvill RENEWAL
Silvio M SchemmerCanadaIoni Bowcher QUALIFIED
Ashley D WaycottRussiaStephen Shaw PROPOSAL
Octavia N PaprockiUnited KingdomStephen Shaw PROPOSAL
Kadeem Y GillianGermanyStephen Shaw RENEWAL
David I GillianArgentinaAnna Fali UNQUALIFIED
Leja W BologniaCanadaIoni Bowcher QUALIFIED
Julie W PaprockiRussiaAmy Elsner NEGOTIATION
Cody S VocelkaSpainOnyama Limba PROPOSAL
Munro R KolmetzJapanAsiya Javayant UNQUALIFIED
Jones K PaprockiAustraliaElwin Sharvill QUALIFIED
Frozen Columns
Name
Emily K Kolmetz
Alejandro R Royster
Maria L Caldarera
Aruna M Bowley
Cody E Sergi
Aruna O Poquette
Juan I Garufi
Juan R Wieser
Maisha U Maclead
Antonio L Bowley
Julie V Malet
Izzy I Gaucho
Adams Z Chui
Jefferson G Kusko
Jones O Paprocki
Kaitlin G Saylors
Jefferson D Flosi
Salvatore Y Amigon
Jones S Maclead
Ashley G Amigon
Emily M Shinko
Ashley V Kolmetz
Isabel G Tollner
Mayumi T Slusarski
Aditya T Doe
Adams M Inouye
Greenwood L Ferencz
Rodrigues P Doe
Chavez I Bolognia
James F Wieser
Nicolas L Kolmetz
Juan Z Albares
Aruna O Schemmer
Izzy D Maclead
Sinclair Q Butt
Octavia C Briddick
Emily S Ferencz
Emily L Gillian
Isabel S Campain
Murillo F Nestle
Chavez O Nestle
Leon E Paprocki
Mayumi R Malet
Smith Q Vocelka
Morrow O Albares
Jeanfrancois O Maclead
James W Nestle
Smith A Maclead
Faith F Oldroyd
Sinclair Q Vocelka
IdCountryDate
1000Argentina2026-06-25
1001Canada2026-06-12
1002Canada2026-06-10
1003Germany2026-07-08
1004Australia2026-07-01
1005Canada2026-06-21
1006Russia2026-06-24
1007Spain2026-06-16
1008India2026-06-20
1009Germany2026-06-16
1010Spain2026-06-11
1011Russia2026-06-14
1012Brazil2026-07-07
1013United Kingdom2026-07-04
1014Italy2026-06-13
1015Argentina2026-06-21
1016India2026-06-30
1017Russia2026-06-28
1018India2026-06-17
1019Russia2026-06-14
1020United Kingdom2026-06-12
1021India2026-07-08
1022Germany2026-06-28
1023Brazil2026-06-26
1024Argentina2026-07-03
1025France2026-07-06
1026Germany2026-06-18
1027Russia2026-06-26
1028India2026-06-20
1029France2026-06-27
1030Italy2026-06-26
1031Russia2026-06-26
1032Canada2026-06-22
1033Brazil2026-07-02
1034Germany2026-07-02
1035Australia2026-06-21
1036Japan2026-06-23
1037France2026-07-01
1038Italy2026-07-04
1039France2026-06-21
1040Germany2026-06-30
1041Japan2026-06-26
1042Spain2026-06-25
1043United Kingdom2026-07-05
1044France2026-06-23
1045Canada2026-07-08
1046Brazil2026-06-26
1047Germany2026-06-11
1048France2026-07-09
1049Canada2026-07-09

On-Demand Data

NameIdCountryDate
David R Whobrey1000Germany2026-06-13
Adams S Schemmer1001Argentina2026-06-28
Francesco G Malet1002India2026-06-18
Costa E Kolmetz1003France2026-06-12
Emily Y Campain1004Australia2026-06-15
Aditya K Albares1005Italy2026-06-23
Darci G Schemmer1006India2026-06-22
Ashley W Dilliard1007United Kingdom2026-06-10
Ashley C Wieser1008Russia2026-06-28
Julie P Darakjy1009Spain2026-06-20
Alejandro K Kusko1010France2026-07-09
Salvatore H Poquette1011Germany2026-06-15
Ashley F Campain1012India2026-06-16
Aika F Vocelka1013Canada2026-06-10
Costa H Bolognia1014Canada2026-06-30
Julie W Flosi1015United Kingdom2026-06-13
Darci S Gaucho1016Germany2026-07-04
Morrow A Campain1017Spain2026-06-28
Leja Y Paprocki1018Canada2026-07-02
Costa X Morasca1019Japan2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford J BriddickSpainIvan Magalhaes RENEWAL
Juan Z TollnerBrazilStephen Shaw QUALIFIED
Smith N BologniaCanadaIvan Magalhaes QUALIFIED
Smith H AmigonArgentinaAnna Fali QUALIFIED
Aditya F IturbideRussiaIvan Magalhaes RENEWAL
Sinclair R RulapaughItalyStephen Shaw NEW
Aditya T BriddickUnited KingdomAnna Fali RENEWAL
Aditya H VenereUnited KingdomOnyama Limba UNQUALIFIED
Ashley B StockhamSpainElwin Sharvill PROPOSAL
Chavez R GarufiJapanAsiya Javayant PROPOSAL
Maisha S ButtUnited KingdomStephen Shaw PROPOSAL
Antonio N BriddickIndiaIoni Bowcher NEGOTIATION
Jones S FerenczRussiaXuxue Feng RENEWAL
Leon W DoeUnited KingdomStephen Shaw QUALIFIED
Isabel T SlusarskiBrazilElwin Sharvill NEW
Aditya M VenereRussiaIvan Magalhaes RENEWAL
Antonio V KolmetzArgentinaIvan Magalhaes QUALIFIED
Claire R RimItalyStephen Shaw QUALIFIED
Misaki U WieserJapanBernardo Dominic PROPOSAL
Julie H PerinSpainIvan Magalhaes UNQUALIFIED
Rodrigues V WhobreyItalyElwin Sharvill UNQUALIFIED
Maisha Q RulapaughItalyStephen Shaw NEGOTIATION
Ricardo R StockhamCanadaBernardo Dominic RENEWAL
Juan U KolmetzIndiaBernardo Dominic NEW
Rodrigues V RimUnited KingdomAsiya Javayant RENEWAL
Cody D DarakjyItalyElwin Sharvill NEW
Morrow J PaprockiArgentinaAnna Fali PROPOSAL
Clifford Y BologniaFranceAnna Fali PROPOSAL
Jefferson R MorascaBrazilBernardo Dominic NEW
Darci Y AmigonAustraliaOnyama Limba NEGOTIATION
Jones Z FlosiIndiaAnna Fali NEW
Mujtaba W GarufiJapanAsiya Javayant PROPOSAL
Maria X ChuiUnited KingdomElwin Sharvill RENEWAL
Kaitlin N DarakjyJapanAsiya Javayant QUALIFIED
Jefferson O NestleIndiaOnyama Limba NEGOTIATION
Juan L ShinkoRussiaAsiya Javayant RENEWAL
Nicolas U DarakjyUnited KingdomOnyama Limba PROPOSAL
Salvatore T AmigonJapanOnyama Limba PROPOSAL
Ivar S IturbideGermanyIvan Magalhaes NEGOTIATION
Aika T PoquetteGermanyXuxue Feng UNQUALIFIED

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