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
Ricardo X BriddickAustraliaAmy Elsner PROPOSAL
Francesco P DarakjyGermanyStephen Shaw NEGOTIATION
Antonio C RutaCanadaStephen Shaw UNQUALIFIED
Kadeem G ShinkoRussiaIoni Bowcher QUALIFIED
Nicolas Y GlickArgentinaElwin Sharvill QUALIFIED
Morrow C RulapaughRussiaStephen Shaw RENEWAL
Faith N KolmetzIndiaBernardo Dominic NEGOTIATION
Faith K BologniaGermanyAnna Fali RENEWAL
Jefferson K FerenczCanadaOnyama Limba RENEWAL
Kaitlin M FigeroaJapanAsiya Javayant RENEWAL
Nicolas G MaletAustraliaElwin Sharvill QUALIFIED
Isabel N StensethArgentinaElwin Sharvill PROPOSAL
Mayumi T SlusarskiFranceAsiya Javayant NEW
Mayumi Z ShinkoJapanBernardo Dominic RENEWAL
Nicolas D RutaJapanXuxue Feng PROPOSAL
Darci K WaycottSpainAnna Fali NEGOTIATION
Misaki A BologniaFranceIvan Magalhaes NEW
Emily C BowleyFranceIoni Bowcher QUALIFIED
Murillo S BowleyIndiaOnyama Limba NEGOTIATION
Aruna N MarrierArgentinaXuxue Feng RENEWAL
James I FerenczSpainBernardo Dominic UNQUALIFIED
James X CampainBrazilOnyama Limba NEGOTIATION
Wickens Q OstroskyItalyOnyama Limba UNQUALIFIED
Emily H PaprockiCanadaOnyama Limba PROPOSAL
Johnson M OldroydArgentinaXuxue Feng NEW
Aruna S MarrierJapanOnyama Limba NEW
Ricardo U IturbideGermanyAnna Fali RENEWAL
Ricardo F BologniaFranceStephen Shaw UNQUALIFIED
Jones J RulapaughAustraliaAnna Fali RENEWAL
Sinclair G KolmetzFranceStephen Shaw RENEWAL
Greenwood D ButtCanadaBernardo Dominic NEW
Aruna I WhobreyFranceXuxue Feng QUALIFIED
Deepesh J ShinkoRussiaAnna Fali UNQUALIFIED
Kadeem U MarrierIndiaAmy Elsner UNQUALIFIED
Francesco P NickaFranceIvan Magalhaes PROPOSAL
Chavez N CaudyArgentinaBernardo Dominic PROPOSAL
Darci Q WieserArgentinaBernardo Dominic QUALIFIED
Jones Z WhobreyJapanXuxue Feng RENEWAL
Jefferson V VocelkaCanadaXuxue Feng NEGOTIATION
Izzy E KuskoRussiaIoni Bowcher PROPOSAL
Jennifer F FlosiBrazilIoni Bowcher PROPOSAL
Arvin X ShinkoGermanyIoni Bowcher NEGOTIATION
Claire E IturbideFranceXuxue Feng NEW
Clifford Q MorascaIndiaAmy Elsner NEW
Tony Q MarrierRussiaElwin Sharvill RENEWAL
Juan I TollnerItalyBernardo Dominic UNQUALIFIED
Faith M CampainSpainIoni Bowcher QUALIFIED
Izzy W CampainArgentinaIoni Bowcher QUALIFIED
Rodrigues X ButtBrazilXuxue Feng NEW
Jennifer C OstroskyAustraliaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Munro E WhobreyItalyAsiya Javayant UNQUALIFIED
Jones O RoysterAustraliaElwin Sharvill NEW
Julie S CampainItalyIoni Bowcher QUALIFIED
Sinclair X MorascaCanadaIoni Bowcher NEW
Greenwood H WieserGermanyAnna Fali PROPOSAL
Rodrigues O FigeroaBrazilElwin Sharvill UNQUALIFIED
Emily W IturbideAustraliaBernardo Dominic PROPOSAL
Jeanfrancois F StockhamAustraliaAmy Elsner QUALIFIED
Jefferson T VocelkaUnited KingdomStephen Shaw NEW
Maisha N DoeGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja C WieserAustralia2025-06-11Truhlar And Truhlar Attys QUALIFIED44Bernardo Dominic
1001Leja F VocelkaJapan2025-05-20Chanay, Jeffrey A Esq QUALIFIED54Asiya Javayant
1002Wickens Y FerenczUnited Kingdom2025-05-18Chemel, James L Cpa NEW95Elwin Sharvill
1003Jefferson J CaldareraItaly2025-05-29Feltz Printing Service NEW50Amy Elsner
1004Jones T AmigonUnited Kingdom2025-05-23Feltz Printing Service UNQUALIFIED27Onyama Limba
1005Morrow T DoeArgentina2025-05-29Chapman, Ross E Esq QUALIFIED68Onyama Limba
1006Ricardo Y VenereJapan2025-06-12Buckley Miller Wright QUALIFIED14Onyama Limba
1007Aruna H BriddickRussia2025-06-07Feiner Bros UNQUALIFIED38Ivan Magalhaes
1008Misaki A RimRussia2025-05-17Benton, John B Jr QUALIFIED79Ivan Magalhaes
1009Ricardo N GarufiIndia2025-06-01Truhlar And Truhlar Attys RENEWAL38Ivan Magalhaes
1010Aika B OstroskyItaly2025-05-18Buckley Miller Wright QUALIFIED19Ioni Bowcher
1011Murillo F CaudyUnited Kingdom2025-05-25Buckley Miller Wright UNQUALIFIED49Amy Elsner
1012Maisha K FigeroaIndia2025-06-05Printing Dimensions RENEWAL68Amy Elsner
1013Jeanfrancois W BologniaCanada2025-05-24Printing Dimensions NEW74Amy Elsner
1014Costa T SlusarskiArgentina2025-05-16Dorl, James J Esq UNQUALIFIED27Asiya Javayant
1015Jeanfrancois Q RoysterArgentina2025-05-22King, Christopher A Esq QUALIFIED47Xuxue Feng
1016Murillo A CaudyGermany2025-05-26Dorl, James J Esq PROPOSAL6Ioni Bowcher
1017Tony M CaldareraUnited Kingdom2025-06-14Chanay, Jeffrey A Esq PROPOSAL42Asiya Javayant
1018Adams W PoquetteRussia2025-05-18Rousseaux, Michael Esq PROPOSAL27Ioni Bowcher
1019Jennifer H MorascaSpain2025-06-09Printing Dimensions NEGOTIATION74Elwin Sharvill
1020Nicolas C KolmetzRussia2025-05-23Truhlar And Truhlar Attys UNQUALIFIED87Amy Elsner
1021Isabel C OstroskyCanada2025-06-14Morlong Associates QUALIFIED28Ioni Bowcher
1022Smith S CampainRussia2025-05-27Truhlar And Truhlar Attys NEGOTIATION51Onyama Limba
1023Misaki W PerinBrazil2025-06-04Printing Dimensions PROPOSAL71Asiya Javayant
1024Kaitlin A OstroskyUnited Kingdom2025-05-18Chanay, Jeffrey A Esq PROPOSAL89Ioni Bowcher
1025Maria B VocelkaCanada2025-06-11Truhlar And Truhlar Attys RENEWAL43Xuxue Feng
1026Jones F FlosiIndia2025-06-09Chapman, Ross E Esq PROPOSAL18Stephen Shaw
1027Clifford Q CaldareraArgentina2025-05-23Truhlar And Truhlar Attys PROPOSAL57Elwin Sharvill
1028Ivar E FerenczAustralia2025-05-19Feltz Printing Service NEGOTIATION77Anna Fali
1029Morrow J InouyeSpain2025-06-05Chapman, Ross E Esq QUALIFIED88Stephen Shaw
1030Salvatore X RutaCanada2025-06-11Chemel, James L Cpa PROPOSAL64Ioni Bowcher
1031Leja L FlosiCanada2025-05-26Dorl, James J Esq PROPOSAL23Elwin Sharvill
1032Octavia J WhobreyItaly2025-05-17Chanay, Jeffrey A Esq RENEWAL25Ivan Magalhaes
1033Juan L MorascaRussia2025-06-04Rousseaux, Michael Esq PROPOSAL82Stephen Shaw
1034Jennifer P RulapaughItaly2025-05-20Truhlar And Truhlar Attys NEW91Stephen Shaw
1035Murillo F SlusarskiSpain2025-05-28Morlong Associates NEW32Stephen Shaw
1036Leja M CaudyFrance2025-06-13Feiner Bros QUALIFIED50Asiya Javayant
1037Rodrigues B KolmetzSpain2025-05-20King, Christopher A Esq PROPOSAL67Amy Elsner
1038Kadeem J NickaUnited Kingdom2025-05-21King, Christopher A Esq NEW61Xuxue Feng
1039David Z GarufiBrazil2025-05-25Dorl, James J Esq PROPOSAL87Stephen Shaw
1040Jeanfrancois R GillianIndia2025-05-18Rangoni Of Florence UNQUALIFIED30Ioni Bowcher
1041Morrow W BologniaArgentina2025-06-03Benton, John B Jr RENEWAL83Stephen Shaw
1042Aika P StockhamFrance2025-05-31Feltz Printing Service NEGOTIATION13Ivan Magalhaes
1043Mujtaba C StockhamUnited Kingdom2025-05-21Rousseaux, Michael Esq NEW19Ioni Bowcher
1044Jeanfrancois A FerenczSpain2025-05-24Rangoni Of Florence NEGOTIATION6Stephen Shaw
1045Antonio B ChuiFrance2025-06-09King, Christopher A Esq RENEWAL31Bernardo Dominic
1046Deepesh U RutaUnited Kingdom2025-06-10Dorl, James J Esq NEW6Ioni Bowcher
1047Alejandro N TollnerFrance2025-06-05Chapman, Ross E Esq PROPOSAL42Amy Elsner
1048Rodrigues U MaletArgentina2025-06-06Feiner Bros NEGOTIATION64Xuxue Feng
1049Stacey N KuskoSpain2025-05-31Printing Dimensions QUALIFIED78Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Octavia Y FerenczAustraliaXuxue Feng UNQUALIFIED
Murillo Z MacleadSpainIoni Bowcher PROPOSAL
Stacey R RoysterItalyBernardo Dominic NEGOTIATION
Rodrigues F NickaAustraliaStephen Shaw RENEWAL
Julie B WhobreyUnited KingdomXuxue Feng NEW
Wickens Y MarrierAustraliaAnna Fali QUALIFIED
Sinclair M SchemmerRussiaXuxue Feng PROPOSAL
Aditya M AlbaresJapanAsiya Javayant NEGOTIATION
Kadeem X InouyeUnited KingdomBernardo Dominic PROPOSAL
Greenwood G NickaAustraliaAsiya Javayant UNQUALIFIED
Munro U AlbaresFranceOnyama Limba NEGOTIATION
Smith N MacleadIndiaStephen Shaw UNQUALIFIED
Alejandro D ButtArgentinaAsiya Javayant NEGOTIATION
Claire K VenereGermanyAnna Fali NEGOTIATION
Mayumi K OstroskyUnited KingdomBernardo Dominic NEW
Aditya K InouyeJapanElwin Sharvill NEW
Stacey K FlosiRussiaIvan Magalhaes UNQUALIFIED
Kaitlin G RutaFranceBernardo Dominic RENEWAL
Rodrigues I PaprockiCanadaAnna Fali QUALIFIED
Aruna B ShinkoJapanAsiya Javayant UNQUALIFIED
Tony Z MorascaArgentinaAmy Elsner UNQUALIFIED
Silvio X BowleyRussiaAmy Elsner PROPOSAL
Jeanfrancois R CampainFranceIvan Magalhaes QUALIFIED
Murillo F RoysterGermanyAmy Elsner NEGOTIATION
Johnson U TollnerSpainElwin Sharvill NEW
Morrow Z ChuiCanadaIoni Bowcher NEGOTIATION
Stacey G SchemmerUnited KingdomOnyama Limba PROPOSAL
Izzy O BologniaUnited KingdomIvan Magalhaes RENEWAL
Jennifer S CaudyAustraliaIvan Magalhaes NEGOTIATION
Isabel I InouyeArgentinaIvan Magalhaes NEW
Octavia U GauchoUnited KingdomXuxue Feng RENEWAL
James U CaldareraGermanyAmy Elsner UNQUALIFIED
Murillo U SaylorsJapanBernardo Dominic PROPOSAL
Juan T VocelkaGermanyStephen Shaw UNQUALIFIED
Juan W FollerRussiaIvan Magalhaes UNQUALIFIED
Murillo M MarrierRussiaStephen Shaw RENEWAL
Murillo X WaycottUnited KingdomBernardo Dominic RENEWAL
Costa B FollerJapanIoni Bowcher PROPOSAL
Deepesh F RimIndiaXuxue Feng NEGOTIATION
Arvin C MaletUnited KingdomXuxue Feng UNQUALIFIED
Stacey Y ButtAustraliaAnna Fali NEGOTIATION
Salvatore L TollnerRussiaXuxue Feng NEGOTIATION
Ivar P KuskoBrazilAnna Fali UNQUALIFIED
Rodrigues O NickaArgentinaIvan Magalhaes NEGOTIATION
Silvio B ShinkoJapanElwin Sharvill NEGOTIATION
Aika N PerinAustraliaOnyama Limba RENEWAL
Leja H FlosiAustraliaOnyama Limba UNQUALIFIED
Mujtaba U StockhamItalyIvan Magalhaes QUALIFIED
Adams R BowleyCanadaIvan Magalhaes NEGOTIATION
Arvin G SergiRussiaAnna Fali PROPOSAL
Frozen Columns
Name
Chavez C Bolognia
Silvio P Doe
Adams S Ferencz
Chavez M Vocelka
Mayumi U Nicka
Cody H Bowley
Murillo N Whobrey
Morrow F Ferencz
Adams U Figeroa
Stacey B Saylors
Greenwood I Nestle
Ricardo J Venere
Mayumi O Figeroa
Salvatore S Garufi
Claire N Garufi
Morrow C Venere
Stacey R Maclead
James C Ostrosky
Silvio A Stenseth
Jeanfrancois G Iturbide
Adams N Paprocki
Silvio M Schemmer
Isabel R Briddick
Silvio S Garufi
Morrow J Tollner
Murillo L Morasca
Emily A Gaucho
Rodrigues K Rim
Clifford G Doe
Sinclair O Glick
Stacey M Amigon
Jeanfrancois T Kusko
Cody B Slusarski
Murillo U Whobrey
Sinclair W Rulapaugh
Kadeem C Bowley
Jones C Gillian
Antonio U Sergi
Kadeem B Dilliard
Ivar Z Venere
Clifford P Glick
Aruna A Ostrosky
Darci N Garufi
Aika Y Poquette
Chavez K Shinko
Faith W Nestle
Emily Y Royster
Costa Y Briddick
Juan E Stockham
Jeanfrancois Q Whobrey
IdCountryDate
1000Australia2025-06-08
1001India2025-06-09
1002Australia2025-05-16
1003Spain2025-05-22
1004Argentina2025-05-20
1005Argentina2025-06-07
1006France2025-06-11
1007Italy2025-06-09
1008United Kingdom2025-05-25
1009India2025-05-18
1010Australia2025-06-03
1011Spain2025-05-21
1012Spain2025-06-08
1013Germany2025-06-01
1014Spain2025-05-31
1015Spain2025-05-29
1016Brazil2025-06-03
1017Brazil2025-05-31
1018Canada2025-05-22
1019Italy2025-06-13
1020Germany2025-06-09
1021Russia2025-06-07
1022United Kingdom2025-06-02
1023Spain2025-06-03
1024Italy2025-05-28
1025France2025-05-26
1026United Kingdom2025-05-27
1027France2025-06-12
1028Argentina2025-05-17
1029Germany2025-05-26
1030Germany2025-06-08
1031Germany2025-06-07
1032United Kingdom2025-06-09
1033Australia2025-06-04
1034Russia2025-06-11
1035Japan2025-06-10
1036Japan2025-06-06
1037Italy2025-06-08
1038Canada2025-06-03
1039India2025-05-22
1040Canada2025-06-02
1041Italy2025-05-28
1042Canada2025-05-28
1043Japan2025-06-03
1044Russia2025-06-12
1045Argentina2025-06-03
1046France2025-06-05
1047India2025-05-22
1048Australia2025-05-28
1049France2025-05-17

On-Demand Data

NameIdCountryDate
Jennifer J Whobrey1000Japan2025-06-13
Mayumi Y Dilliard1001Canada2025-06-01
Darci W Sergi1002Argentina2025-06-14
Ivar S Rim1003Japan2025-06-07
Ricardo D Ostrosky1004Spain2025-06-13
Rodrigues S Butt1005Japan2025-06-10
Jeanfrancois H Maclead1006United Kingdom2025-05-21
Aika O Oldroyd1007United Kingdom2025-06-14
Costa Q Amigon1008India2025-06-14
Emily U Briddick1009Brazil2025-06-04
Adams Z Slusarski1010Argentina2025-05-27
Juan D Maclead1011Italy2025-05-18
Julie S Kusko1012France2025-06-13
Jefferson Z Glick1013Japan2025-06-10
Maisha N Amigon1014Australia2025-05-16
Ashley S Schemmer1015United Kingdom2025-05-17
Adams Z Tollner1016Canada2025-06-14
Jones K Kusko1017France2025-06-05
Clifford I Flosi1018United Kingdom2025-06-09
Mayumi U Rim1019Russia2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams X FollerFranceIvan Magalhaes RENEWAL
Munro K FigeroaBrazilElwin Sharvill PROPOSAL
Munro J CaudyFranceIoni Bowcher QUALIFIED
Smith I FlosiAustraliaElwin Sharvill NEGOTIATION
Morrow H NestleIndiaStephen Shaw RENEWAL
Sinclair S ButtJapanElwin Sharvill PROPOSAL
Isabel M GillianArgentinaBernardo Dominic QUALIFIED
Emily Z NickaGermanyXuxue Feng NEW
Mayumi P ChuiAustraliaAsiya Javayant UNQUALIFIED
Silvio Q StockhamIndiaAnna Fali RENEWAL
Cody D CaudySpainIoni Bowcher QUALIFIED
Maisha T DilliardAustraliaAmy Elsner QUALIFIED
Smith B MorascaSpainIoni Bowcher NEGOTIATION
Darci H RulapaughCanadaBernardo Dominic NEW
Jennifer Q DarakjyUnited KingdomAnna Fali NEGOTIATION
Ricardo F FerenczRussiaXuxue Feng QUALIFIED
Smith Q VenereItalyIoni Bowcher NEGOTIATION
Francesco Z GlickItalyXuxue Feng NEW
Munro D GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Maria Y OldroydJapanElwin Sharvill RENEWAL
Emily Z WieserFranceBernardo Dominic UNQUALIFIED
Antonio Z NestleRussiaOnyama Limba RENEWAL
Isabel T FigeroaAustraliaStephen Shaw QUALIFIED
Sinclair Z StensethJapanOnyama Limba PROPOSAL
Octavia I GarufiRussiaAnna Fali NEGOTIATION
Arvin S RimCanadaElwin Sharvill PROPOSAL
Julie W SlusarskiRussiaXuxue Feng UNQUALIFIED
Jefferson X MaletJapanOnyama Limba UNQUALIFIED
Izzy L MacleadFranceElwin Sharvill PROPOSAL
Antonio H WieserItalyAmy Elsner RENEWAL
David I DarakjyUnited KingdomElwin Sharvill QUALIFIED
Adams J CaldareraItalyBernardo Dominic NEGOTIATION
Isabel O KolmetzAustraliaAmy Elsner UNQUALIFIED
Octavia R PerinUnited KingdomAsiya Javayant NEW
Adams G WhobreyGermanyAsiya Javayant RENEWAL
Salvatore U MaletItalyIoni Bowcher PROPOSAL
Ivar A OstroskyGermanyAnna Fali UNQUALIFIED
Jefferson C CampainSpainAmy Elsner QUALIFIED
Kaitlin V MorascaJapanAsiya Javayant NEW
Silvio B InouyeIndiaAmy Elsner 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>