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
Tony B WieserItalyAsiya Javayant NEGOTIATION
Cody J BologniaJapanElwin Sharvill RENEWAL
Izzy S GauchoArgentinaIvan Magalhaes PROPOSAL
Aditya K AlbaresFranceOnyama Limba QUALIFIED
Aruna A DarakjyGermanyElwin Sharvill NEW
Kadeem A CaudyFranceAmy Elsner RENEWAL
Ricardo Z FollerArgentinaBernardo Dominic QUALIFIED
Salvatore C DoeAustraliaBernardo Dominic UNQUALIFIED
Julie N WieserAustraliaBernardo Dominic RENEWAL
Sinclair P DoeGermanyBernardo Dominic NEGOTIATION
Chavez M FollerGermanyAsiya Javayant NEGOTIATION
Nicolas L MaletBrazilOnyama Limba RENEWAL
Ashley P WaycottItalyIoni Bowcher NEW
Claire Q SaylorsJapanXuxue Feng QUALIFIED
Darci O VocelkaCanadaXuxue Feng QUALIFIED
Kadeem T SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Jones N VenereBrazilIvan Magalhaes PROPOSAL
Cody X CampainJapanAnna Fali RENEWAL
Johnson F DarakjyGermanyElwin Sharvill NEW
Kadeem X OldroydGermanyAmy Elsner UNQUALIFIED
Tony P GlickCanadaAmy Elsner NEW
Izzy C KuskoItalyBernardo Dominic NEW
Mujtaba O WaycottSpainIvan Magalhaes QUALIFIED
Arvin R GarufiAustraliaIoni Bowcher NEGOTIATION
Mujtaba M BowleyBrazilStephen Shaw UNQUALIFIED
Tony Z MaletGermanyOnyama Limba UNQUALIFIED
Emily K WhobreyItalyAmy Elsner UNQUALIFIED
Misaki L CaldareraGermanyXuxue Feng QUALIFIED
Salvatore X ChuiUnited KingdomIvan Magalhaes RENEWAL
Sinclair U MacleadIndiaIvan Magalhaes NEW
Clifford B SaylorsCanadaXuxue Feng UNQUALIFIED
Claire O PaprockiFranceStephen Shaw QUALIFIED
Izzy B AlbaresJapanBernardo Dominic QUALIFIED
Silvio O ShinkoArgentinaIvan Magalhaes NEGOTIATION
Misaki K RutaRussiaAsiya Javayant NEGOTIATION
Jefferson H CaudyArgentinaAmy Elsner UNQUALIFIED
Claire E KuskoAustraliaAnna Fali NEGOTIATION
Mayumi S ChuiItalyIoni Bowcher PROPOSAL
Kadeem U MaletGermanyAsiya Javayant RENEWAL
Salvatore P MaletUnited KingdomBernardo Dominic NEGOTIATION
Jones O FollerJapanAnna Fali PROPOSAL
Izzy X NestleCanadaStephen Shaw RENEWAL
Greenwood W GillianJapanBernardo Dominic UNQUALIFIED
Aika F FlosiJapanXuxue Feng QUALIFIED
Faith G VenereJapanAmy Elsner PROPOSAL
Stacey W DarakjyJapanAnna Fali UNQUALIFIED
Ivar M FigeroaGermanyIvan Magalhaes NEGOTIATION
Munro V DilliardSpainXuxue Feng UNQUALIFIED
Sinclair Z MaletItalyIoni Bowcher UNQUALIFIED
Mujtaba Y OldroydUnited KingdomAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson O BowleyBrazilBernardo Dominic NEW
Silvio L RimArgentinaElwin Sharvill NEW
Antonio J IturbideAustraliaIoni Bowcher NEGOTIATION
Jeanfrancois F PoquetteArgentinaAmy Elsner UNQUALIFIED
Izzy L CampainFranceStephen Shaw UNQUALIFIED
Francesco M InouyeArgentinaIoni Bowcher PROPOSAL
Aditya C MacleadArgentinaAmy Elsner UNQUALIFIED
Misaki F WhobreyCanadaAmy Elsner UNQUALIFIED
Munro M DoeUnited KingdomAmy Elsner UNQUALIFIED
Munro U DarakjyJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin P AlbaresCanada2025-04-03Rousseaux, Michael Esq UNQUALIFIED21Bernardo Dominic
1001Claire C MacleadJapan2025-04-10Printing Dimensions NEGOTIATION59Ioni Bowcher
1002Ivar U InouyeSpain2025-04-09Commercial Press NEGOTIATION49Anna Fali
1003Arvin I OstroskyIndia2025-04-01Feiner Bros PROPOSAL92Bernardo Dominic
1004Murillo H CampainIndia2025-04-07Printing Dimensions UNQUALIFIED9Ioni Bowcher
1005Ashley D IturbideCanada2025-04-11Chapman, Ross E Esq NEGOTIATION14Elwin Sharvill
1006Francesco P MacleadIndia2025-04-17Benton, John B Jr UNQUALIFIED36Ioni Bowcher
1007Salvatore Z IturbideCanada2025-04-19Feltz Printing Service NEW98Onyama Limba
1008James R CaudyGermany2025-04-26Rousseaux, Michael Esq NEW92Ioni Bowcher
1009Murillo R SlusarskiJapan2025-04-15Rangoni Of Florence RENEWAL50Stephen Shaw
1010Ivar R PaprockiUnited Kingdom2025-04-05Chanay, Jeffrey A Esq UNQUALIFIED38Elwin Sharvill
1011Antonio R CaldareraUnited Kingdom2025-04-21Commercial Press PROPOSAL39Amy Elsner
1012Juan H AlbaresJapan2025-04-11Rousseaux, Michael Esq RENEWAL53Xuxue Feng
1013Murillo Z ChuiBrazil2025-04-08Benton, John B Jr PROPOSAL80Amy Elsner
1014Maisha H CaudyAustralia2025-04-20Benton, John B Jr NEGOTIATION10Xuxue Feng
1015Claire B GillianUnited Kingdom2025-04-05Buckley Miller Wright RENEWAL39Stephen Shaw
1016Clifford S MorascaItaly2025-04-20King, Christopher A Esq NEW18Ioni Bowcher
1017Misaki G FlosiJapan2025-04-16Chemel, James L Cpa PROPOSAL49Anna Fali
1018Cody Y FlosiUnited Kingdom2025-04-28Chapman, Ross E Esq NEW3Ioni Bowcher
1019Kadeem T WieserAustralia2025-04-09Truhlar And Truhlar Attys UNQUALIFIED37Asiya Javayant
1020Mayumi C StensethArgentina2025-04-03Rousseaux, Michael Esq PROPOSAL95Anna Fali
1021Wickens B WhobreyBrazil2025-04-03Feiner Bros QUALIFIED95Ioni Bowcher
1022Aditya A SchemmerCanada2025-04-28King, Christopher A Esq QUALIFIED27Onyama Limba
1023Darci Q InouyeArgentina2025-04-21Benton, John B Jr PROPOSAL6Bernardo Dominic
1024Darci B InouyeCanada2025-04-10Chapman, Ross E Esq QUALIFIED42Ioni Bowcher
1025Alejandro M InouyeRussia2025-04-29Chemel, James L Cpa RENEWAL56Asiya Javayant
1026Francesco Q AlbaresArgentina2025-04-02Dorl, James J Esq NEW70Anna Fali
1027Ashley C SchemmerGermany2025-04-06Printing Dimensions PROPOSAL49Amy Elsner
1028Jones T WaycottUnited Kingdom2025-04-17Rousseaux, Michael Esq QUALIFIED67Ivan Magalhaes
1029Jefferson F RutaItaly2025-04-29Chanay, Jeffrey A Esq QUALIFIED93Amy Elsner
1030Smith Y RutaArgentina2025-04-01King, Christopher A Esq RENEWAL40Bernardo Dominic
1031Emily N NestleItaly2025-04-05King, Christopher A Esq RENEWAL43Stephen Shaw
1032Mujtaba G DilliardItaly2025-04-23Feiner Bros NEW93Amy Elsner
1033Faith T InouyeRussia2025-04-09Feltz Printing Service NEW6Elwin Sharvill
1034Aditya F InouyeItaly2025-04-29Rangoni Of Florence RENEWAL69Asiya Javayant
1035Salvatore E FlosiFrance2025-04-04Benton, John B Jr NEW61Elwin Sharvill
1036Jennifer H OstroskyUnited Kingdom2025-04-25Chapman, Ross E Esq UNQUALIFIED94Elwin Sharvill
1037Jefferson Z FollerAustralia2025-04-05Rangoni Of Florence PROPOSAL18Amy Elsner
1038Chavez J GillianBrazil2025-04-15Printing Dimensions NEGOTIATION95Amy Elsner
1039Arvin Q AlbaresArgentina2025-04-30Feltz Printing Service NEW85Asiya Javayant
1040Jennifer T NestleJapan2025-04-27Benton, John B Jr NEW84Xuxue Feng
1041Stacey O SchemmerItaly2025-04-27Feltz Printing Service RENEWAL85Elwin Sharvill
1042Kadeem X MaletRussia2025-04-29Rousseaux, Michael Esq QUALIFIED82Asiya Javayant
1043Alejandro G NestleCanada2025-04-06Rangoni Of Florence UNQUALIFIED68Ioni Bowcher
1044Alejandro R NickaArgentina2025-04-14Chapman, Ross E Esq NEGOTIATION46Stephen Shaw
1045Faith X RoysterGermany2025-04-15Feiner Bros QUALIFIED43Stephen Shaw
1046Deepesh P RoysterUnited Kingdom2025-04-05Rangoni Of Florence PROPOSAL17Onyama Limba
1047Ivar U DilliardCanada2025-04-22Dorl, James J Esq UNQUALIFIED11Asiya Javayant
1048Isabel R MaletJapan2025-04-17Chanay, Jeffrey A Esq UNQUALIFIED23Amy Elsner
1049Leja V ShinkoArgentina2025-04-21Buckley Miller Wright NEGOTIATION25Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith X OldroydRussiaAnna Fali NEGOTIATION
Isabel Q OldroydJapanXuxue Feng UNQUALIFIED
Munro R CaldareraAustraliaIvan Magalhaes QUALIFIED
Kaitlin M ChuiCanadaElwin Sharvill RENEWAL
Ivar Z FerenczCanadaElwin Sharvill UNQUALIFIED
Jefferson S OldroydBrazilAnna Fali QUALIFIED
Kadeem U DarakjySpainOnyama Limba RENEWAL
Mayumi R ButtCanadaXuxue Feng NEW
Octavia I IturbideGermanyIoni Bowcher PROPOSAL
Murillo X AmigonIndiaAmy Elsner RENEWAL
Mujtaba J GillianItalyOnyama Limba RENEWAL
Murillo T MorascaUnited KingdomAnna Fali UNQUALIFIED
Smith R NestleUnited KingdomIvan Magalhaes NEGOTIATION
Emily R GauchoGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois W PoquetteJapanElwin Sharvill QUALIFIED
Misaki N PerinJapanOnyama Limba QUALIFIED
James X TollnerRussiaXuxue Feng QUALIFIED
Clifford S BriddickItalyIoni Bowcher NEGOTIATION
Maria J ButtArgentinaXuxue Feng NEGOTIATION
Ivar Q WieserGermanyStephen Shaw NEGOTIATION
Darci L PoquetteGermanyBernardo Dominic QUALIFIED
Jennifer Q NickaCanadaAmy Elsner PROPOSAL
Adams M WieserUnited KingdomAsiya Javayant NEW
Sinclair E MorascaAustraliaBernardo Dominic NEW
Francesco Q GillianRussiaAnna Fali NEGOTIATION
Alejandro W IturbideBrazilBernardo Dominic UNQUALIFIED
Aika F ChuiGermanyXuxue Feng QUALIFIED
Kadeem I MarrierGermanyStephen Shaw PROPOSAL
Claire K StensethIndiaBernardo Dominic QUALIFIED
Jefferson N ShinkoFranceXuxue Feng RENEWAL
Octavia W FigeroaIndiaIvan Magalhaes RENEWAL
Jeanfrancois I DarakjySpainElwin Sharvill PROPOSAL
Deepesh P BologniaUnited KingdomAmy Elsner UNQUALIFIED
Silvio H DilliardRussiaXuxue Feng QUALIFIED
Salvatore D MaletAustraliaAnna Fali RENEWAL
Julie E GlickCanadaStephen Shaw UNQUALIFIED
Morrow E IturbideCanadaStephen Shaw RENEWAL
Deepesh S FigeroaSpainBernardo Dominic QUALIFIED
Chavez Q ShinkoBrazilXuxue Feng RENEWAL
Cody F BowleyFranceXuxue Feng UNQUALIFIED
Tony S SaylorsCanadaAnna Fali UNQUALIFIED
Darci K NickaFranceStephen Shaw NEGOTIATION
Claire F CaudySpainAsiya Javayant UNQUALIFIED
Claire M SlusarskiSpainBernardo Dominic QUALIFIED
Jennifer H PerinAustraliaIoni Bowcher PROPOSAL
Faith S RutaIndiaStephen Shaw NEGOTIATION
Rodrigues A StensethGermanyBernardo Dominic PROPOSAL
Faith L MarrierRussiaIvan Magalhaes NEW
Sinclair Z WhobreyCanadaIvan Magalhaes QUALIFIED
Ashley C CaudyItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
Wickens H Foller
Ashley L Iturbide
Izzy D Figeroa
Aditya X Ferencz
Aditya B Amigon
Silvio Q Poquette
Jones S Foller
Jones S Kolmetz
James C Bolognia
Jefferson L Venere
Kaitlin F Wieser
Ashley L Whobrey
James Y Garufi
Jeanfrancois V Glick
Rodrigues M Gillian
Ricardo X Oldroyd
Silvio J Gaucho
Rodrigues J Ruta
James X Doe
Costa T Paprocki
James F Malet
Costa K Briddick
Maria Q Nestle
Cody W Marrier
Chavez O Caudy
Antonio O Garufi
Alejandro Q Perin
Kadeem U Darakjy
Aruna J Chui
Nicolas Y Chui
Munro Z Marrier
Leja I Morasca
Izzy O Rim
Alejandro P Bolognia
Chavez P Nestle
Leon A Chui
Rodrigues N Flosi
Kaitlin M Glick
Misaki Q Perin
Cody R Perin
Octavia W Rim
Adams N Ostrosky
Isabel S Whobrey
Clifford N Waycott
Maria Y Saylors
Kaitlin X Albares
Mayumi K Albares
Francesco Q Figeroa
Maria A Tollner
Jefferson S Venere
IdCountryDate
1000Australia2025-04-03
1001Australia2025-04-07
1002Russia2025-04-12
1003France2025-04-05
1004Japan2025-04-08
1005Brazil2025-04-08
1006Japan2025-04-22
1007Japan2025-04-07
1008Brazil2025-04-27
1009India2025-04-27
1010Italy2025-04-10
1011Spain2025-04-17
1012Brazil2025-04-16
1013United Kingdom2025-04-16
1014United Kingdom2025-04-04
1015India2025-04-06
1016France2025-04-20
1017Germany2025-04-07
1018Australia2025-04-06
1019Australia2025-04-19
1020Germany2025-04-28
1021United Kingdom2025-04-24
1022Argentina2025-04-03
1023Russia2025-04-18
1024Canada2025-04-23
1025United Kingdom2025-04-26
1026Japan2025-04-17
1027United Kingdom2025-04-04
1028Argentina2025-04-17
1029United Kingdom2025-04-04
1030Japan2025-04-26
1031Japan2025-04-19
1032Brazil2025-04-09
1033United Kingdom2025-04-04
1034Italy2025-04-29
1035United Kingdom2025-04-14
1036Canada2025-04-03
1037United Kingdom2025-04-30
1038France2025-04-21
1039Canada2025-04-08
1040Canada2025-04-16
1041Brazil2025-04-10
1042India2025-04-14
1043United Kingdom2025-04-21
1044Italy2025-04-30
1045France2025-04-20
1046India2025-04-12
1047Brazil2025-04-19
1048Russia2025-04-06
1049Brazil2025-04-14

On-Demand Data

NameIdCountryDate
Mayumi X Amigon1000Italy2025-04-04
Silvio C Glick1001Spain2025-04-24
Alejandro C Gaucho1002United Kingdom2025-04-08
Jeanfrancois K Gaucho1003Italy2025-04-17
James U Saylors1004Italy2025-04-19
Alejandro U Caldarera1005India2025-04-01
Rodrigues D Saylors1006France2025-04-30
David F Doe1007Argentina2025-04-13
Ivar G Kolmetz1008Australia2025-04-20
Deepesh T Oldroyd1009Spain2025-04-11
Costa R Albares1010France2025-04-30
Murillo Y Albares1011France2025-04-25
Jones W Saylors1012Japan2025-04-04
Stacey Q Bowley1013Canada2025-04-21
Wickens U Tollner1014Italy2025-04-19
Silvio Z Gaucho1015United Kingdom2025-04-19
Misaki R Rulapaugh1016Argentina2025-04-15
Francesco N Chui1017Brazil2025-04-12
James N Ferencz1018Germany2025-04-18
Cody J Gaucho1019Russia2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair B InouyeArgentinaIoni Bowcher RENEWAL
Maria N RimRussiaAnna Fali NEW
Greenwood E RutaArgentinaIoni Bowcher NEGOTIATION
Ricardo D CaldareraUnited KingdomXuxue Feng RENEWAL
Stacey W SlusarskiIndiaIoni Bowcher PROPOSAL
Ashley V ButtGermanyAnna Fali QUALIFIED
Aditya C AmigonArgentinaAmy Elsner UNQUALIFIED
Aika R BowleyJapanElwin Sharvill RENEWAL
Aika J InouyeArgentinaIoni Bowcher NEGOTIATION
Costa K MaletBrazilElwin Sharvill NEGOTIATION
Ivar N GauchoBrazilOnyama Limba PROPOSAL
Ricardo M FigeroaBrazilIoni Bowcher UNQUALIFIED
Antonio W WieserIndiaStephen Shaw PROPOSAL
Faith D SergiBrazilAmy Elsner UNQUALIFIED
Jennifer O FlosiIndiaBernardo Dominic QUALIFIED
Stacey F PerinIndiaAmy Elsner UNQUALIFIED
Ashley Y MacleadSpainBernardo Dominic UNQUALIFIED
Cody R CaldareraAustraliaStephen Shaw UNQUALIFIED
Maria Y PaprockiIndiaAmy Elsner NEGOTIATION
Jones G KolmetzBrazilBernardo Dominic QUALIFIED
Smith O KuskoItalyBernardo Dominic NEGOTIATION
Munro O SchemmerRussiaStephen Shaw NEW
Aika Q RulapaughSpainAnna Fali PROPOSAL
Tony D AmigonAustraliaXuxue Feng UNQUALIFIED
Leon A RutaItalyXuxue Feng NEGOTIATION
Antonio I WieserItalyAsiya Javayant NEGOTIATION
Morrow U WaycottJapanStephen Shaw RENEWAL
Murillo S VocelkaFranceAmy Elsner NEW
Kaitlin A FerenczItalyIoni Bowcher UNQUALIFIED
Kadeem Z MarrierSpainAnna Fali PROPOSAL
Ivar E MarrierJapanBernardo Dominic PROPOSAL
Aditya A FigeroaIndiaIoni Bowcher PROPOSAL
Clifford F InouyeArgentinaIoni Bowcher PROPOSAL
Chavez W FerenczAustraliaIoni Bowcher NEGOTIATION
Faith F IturbideIndiaAnna Fali RENEWAL
Alejandro U CaldareraJapanElwin Sharvill QUALIFIED
Mujtaba W AmigonArgentinaAmy Elsner NEGOTIATION
Antonio L SergiAustraliaIvan Magalhaes PROPOSAL
Johnson K PoquetteAustraliaAnna Fali RENEWAL
Stacey O SergiAustraliaAsiya Javayant 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>