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
Mujtaba L BowleyAustraliaAnna Fali NEGOTIATION
Ashley U CaldareraUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois R MaletCanadaOnyama Limba UNQUALIFIED
Aditya Y FollerRussiaAsiya Javayant QUALIFIED
Maria M CampainSpainAmy Elsner NEGOTIATION
Leja L ChuiRussiaAmy Elsner UNQUALIFIED
Rodrigues M PoquetteBrazilBernardo Dominic PROPOSAL
Murillo Y NickaBrazilBernardo Dominic NEGOTIATION
Maria H SaylorsAustraliaIoni Bowcher NEGOTIATION
Greenwood L DilliardCanadaStephen Shaw NEW
Mayumi P BriddickUnited KingdomAsiya Javayant PROPOSAL
Clifford O CampainJapanIvan Magalhaes QUALIFIED
Smith P KolmetzIndiaAnna Fali PROPOSAL
Salvatore T FollerBrazilElwin Sharvill RENEWAL
Greenwood O MaletIndiaIvan Magalhaes UNQUALIFIED
Munro B WieserGermanyElwin Sharvill PROPOSAL
Maisha S SaylorsIndiaBernardo Dominic RENEWAL
Deepesh X SaylorsCanadaAsiya Javayant NEGOTIATION
Deepesh T BowleyCanadaElwin Sharvill QUALIFIED
Ricardo D FerenczFranceStephen Shaw RENEWAL
Kaitlin B DoeJapanOnyama Limba QUALIFIED
Ivar P GillianJapanOnyama Limba NEW
Smith F FlosiSpainAsiya Javayant NEW
Izzy N CaudySpainStephen Shaw NEW
Kaitlin X MacleadFranceElwin Sharvill PROPOSAL
Emily K StockhamFranceStephen Shaw NEW
Costa S CampainIndiaAsiya Javayant RENEWAL
Isabel E IturbideCanadaElwin Sharvill UNQUALIFIED
Smith Q BowleyAustraliaAnna Fali QUALIFIED
Leja P GarufiFranceElwin Sharvill QUALIFIED
Jeanfrancois V WhobreyGermanyStephen Shaw NEW
Misaki L RoysterItalyIvan Magalhaes RENEWAL
Arvin Y GlickBrazilIoni Bowcher QUALIFIED
Jefferson G GillianBrazilIoni Bowcher NEGOTIATION
Emily O FlosiIndiaElwin Sharvill UNQUALIFIED
Morrow T KuskoIndiaIoni Bowcher NEGOTIATION
Faith Z SchemmerRussiaAmy Elsner UNQUALIFIED
Morrow V DoeIndiaStephen Shaw QUALIFIED
Leja N RutaRussiaAsiya Javayant RENEWAL
Misaki D CampainBrazilAsiya Javayant NEGOTIATION
Kadeem C NickaArgentinaOnyama Limba NEW
Smith O MaletRussiaBernardo Dominic PROPOSAL
Greenwood E MacleadRussiaOnyama Limba NEGOTIATION
Jefferson R SlusarskiBrazilAmy Elsner PROPOSAL
Sinclair F CampainJapanStephen Shaw QUALIFIED
Murillo S PerinBrazilIoni Bowcher NEW
Jefferson C InouyeUnited KingdomElwin Sharvill NEGOTIATION
Deepesh B OstroskyCanadaXuxue Feng NEGOTIATION
Alejandro M SaylorsItalyAsiya Javayant QUALIFIED
Francesco C FigeroaGermanyIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody O VocelkaBrazilElwin Sharvill UNQUALIFIED
Salvatore R DarakjyRussiaAmy Elsner PROPOSAL
Rodrigues C MarrierFranceAmy Elsner NEW
Ricardo W RimAustraliaAmy Elsner NEGOTIATION
Maria J ChuiIndiaElwin Sharvill NEGOTIATION
Aika T ShinkoGermanyXuxue Feng UNQUALIFIED
Deepesh X MorascaItalyBernardo Dominic PROPOSAL
Maria X VocelkaAustraliaIoni Bowcher UNQUALIFIED
Johnson D GarufiAustraliaStephen Shaw PROPOSAL
Munro U NickaBrazilXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez L DarakjyIndia2026-07-04Dorl, James J Esq PROPOSAL24Elwin Sharvill
1001Jeanfrancois F SchemmerIndia2026-06-24Rangoni Of Florence NEW57Ioni Bowcher
1002Kaitlin W SergiUnited Kingdom2026-06-09Dorl, James J Esq NEGOTIATION81Amy Elsner
1003Claire H RutaIndia2026-06-18Buckley Miller Wright QUALIFIED82Anna Fali
1004Jones R NestleArgentina2026-07-08Feltz Printing Service UNQUALIFIED53Stephen Shaw
1005Isabel O PoquetteBrazil2026-07-02Commercial Press NEGOTIATION2Stephen Shaw
1006James W SaylorsIndia2026-07-02Dorl, James J Esq QUALIFIED81Amy Elsner
1007Salvatore Z DarakjyUnited Kingdom2026-06-29Truhlar And Truhlar Attys NEW12Ioni Bowcher
1008Ricardo V IturbideIndia2026-06-10King, Christopher A Esq PROPOSAL21Ioni Bowcher
1009Jefferson F RulapaughRussia2026-06-12Rangoni Of Florence RENEWAL18Bernardo Dominic
1010Ricardo I KolmetzRussia2026-06-23Chanay, Jeffrey A Esq PROPOSAL87Onyama Limba
1011Francesco F ChuiFrance2026-07-03Chemel, James L Cpa RENEWAL44Stephen Shaw
1012Julie S GlickIndia2026-06-30Rousseaux, Michael Esq PROPOSAL62Ivan Magalhaes
1013Murillo T InouyeItaly2026-06-24Dorl, James J Esq RENEWAL48Elwin Sharvill
1014Aditya A GauchoUnited Kingdom2026-06-20Feiner Bros QUALIFIED70Amy Elsner
1015Chavez H DarakjyGermany2026-06-23Rangoni Of Florence NEGOTIATION1Ivan Magalhaes
1016Aditya B WaycottArgentina2026-06-25Chapman, Ross E Esq NEGOTIATION62Asiya Javayant
1017Maria O WhobreyBrazil2026-06-17Truhlar And Truhlar Attys NEW92Onyama Limba
1018Ashley F GillianBrazil2026-07-07Dorl, James J Esq PROPOSAL56Amy Elsner
1019James M OstroskySpain2026-06-28Truhlar And Truhlar Attys QUALIFIED30Xuxue Feng
1020Ashley N FigeroaGermany2026-06-11Chanay, Jeffrey A Esq NEGOTIATION97Onyama Limba
1021Clifford A OstroskyCanada2026-06-24Commercial Press PROPOSAL41Ioni Bowcher
1022Jefferson U WhobreyBrazil2026-06-25Benton, John B Jr PROPOSAL75Elwin Sharvill
1023Aditya U SchemmerIndia2026-06-17King, Christopher A Esq RENEWAL6Elwin Sharvill
1024Jennifer H VocelkaUnited Kingdom2026-06-12Chapman, Ross E Esq UNQUALIFIED38Xuxue Feng
1025Faith G DilliardSpain2026-06-15King, Christopher A Esq QUALIFIED47Bernardo Dominic
1026Clifford N ChuiBrazil2026-06-27Chapman, Ross E Esq RENEWAL95Bernardo Dominic
1027Jennifer Y KolmetzItaly2026-06-26King, Christopher A Esq QUALIFIED29Amy Elsner
1028Chavez G WhobreyAustralia2026-06-23Chanay, Jeffrey A Esq PROPOSAL41Stephen Shaw
1029Maisha K BologniaIndia2026-07-01Truhlar And Truhlar Attys NEGOTIATION23Ivan Magalhaes
1030Juan F RulapaughFrance2026-07-06King, Christopher A Esq UNQUALIFIED18Bernardo Dominic
1031Juan Z PerinIndia2026-07-03Rousseaux, Michael Esq RENEWAL74Anna Fali
1032Ashley V PoquetteArgentina2026-07-06Truhlar And Truhlar Attys UNQUALIFIED75Xuxue Feng
1033David V BowleyIndia2026-06-20King, Christopher A Esq RENEWAL72Ivan Magalhaes
1034Rodrigues X AlbaresAustralia2026-07-01Chapman, Ross E Esq UNQUALIFIED38Anna Fali
1035Jones E VenereJapan2026-06-09Rousseaux, Michael Esq QUALIFIED2Elwin Sharvill
1036Sinclair Z MorascaBrazil2026-06-26Benton, John B Jr UNQUALIFIED7Ioni Bowcher
1037Leon U OstroskyJapan2026-06-20Buckley Miller Wright UNQUALIFIED29Amy Elsner
1038Rodrigues X FollerItaly2026-07-05Chapman, Ross E Esq UNQUALIFIED2Ivan Magalhaes
1039Ashley V WaycottGermany2026-06-11Commercial Press NEW42Elwin Sharvill
1040Tony Y RimItaly2026-07-03Feltz Printing Service QUALIFIED65Bernardo Dominic
1041Juan D OldroydFrance2026-06-09Chanay, Jeffrey A Esq QUALIFIED13Asiya Javayant
1042Costa D ShinkoSpain2026-07-01Chemel, James L Cpa UNQUALIFIED36Ivan Magalhaes
1043Chavez E SlusarskiUnited Kingdom2026-06-17Buckley Miller Wright PROPOSAL98Stephen Shaw
1044Ashley F WaycottSpain2026-07-08King, Christopher A Esq NEW60Stephen Shaw
1045Stacey I RulapaughArgentina2026-06-10Morlong Associates UNQUALIFIED78Stephen Shaw
1046Leja Q PerinSpain2026-06-12Feiner Bros NEGOTIATION65Anna Fali
1047Murillo B MarrierAustralia2026-06-26Feiner Bros NEGOTIATION43Asiya Javayant
1048Jones M BologniaArgentina2026-06-20Chanay, Jeffrey A Esq QUALIFIED36Amy Elsner
1049Silvio A FerenczGermany2026-06-24Truhlar And Truhlar Attys QUALIFIED23Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith C SchemmerIndiaAmy Elsner UNQUALIFIED
Claire H AlbaresSpainIoni Bowcher NEW
Jefferson H GlickSpainAsiya Javayant UNQUALIFIED
Stacey R CaldareraItalyBernardo Dominic QUALIFIED
Silvio X FerenczUnited KingdomIoni Bowcher NEGOTIATION
Alejandro R RimSpainAmy Elsner NEGOTIATION
Stacey F MaletUnited KingdomBernardo Dominic QUALIFIED
Clifford J KuskoSpainIvan Magalhaes NEW
Sinclair P SlusarskiItalyIoni Bowcher RENEWAL
Julie W FerenczItalyStephen Shaw RENEWAL
Wickens K RimArgentinaXuxue Feng NEGOTIATION
Adams Q FollerRussiaAnna Fali QUALIFIED
Leon U KuskoUnited KingdomBernardo Dominic NEW
Aditya F BriddickCanadaIoni Bowcher NEW
Aika W PaprockiArgentinaOnyama Limba NEW
Maria O GauchoItalyStephen Shaw NEW
Misaki R BowleySpainOnyama Limba UNQUALIFIED
Kadeem H FollerGermanyElwin Sharvill PROPOSAL
Smith H BologniaFranceAsiya Javayant NEGOTIATION
Clifford O FigeroaGermanyOnyama Limba PROPOSAL
Deepesh K KuskoUnited KingdomElwin Sharvill NEW
Leja H SaylorsSpainAsiya Javayant NEW
Julie I IturbideJapanAnna Fali RENEWAL
Silvio E RutaAustraliaAnna Fali RENEWAL
Ivar U PoquetteGermanyIoni Bowcher NEGOTIATION
Ivar R MaletItalyBernardo Dominic RENEWAL
Faith D FlosiIndiaAnna Fali NEW
Francesco T SergiItalyXuxue Feng UNQUALIFIED
Julie E RoysterSpainXuxue Feng RENEWAL
Cody N CampainArgentinaAsiya Javayant RENEWAL
Adams Z SchemmerSpainStephen Shaw RENEWAL
Leon V IturbideIndiaOnyama Limba PROPOSAL
Costa Q BriddickIndiaXuxue Feng UNQUALIFIED
Morrow X RoysterBrazilOnyama Limba NEGOTIATION
Wickens Q DoeArgentinaIvan Magalhaes QUALIFIED
David G AmigonAustraliaXuxue Feng RENEWAL
Greenwood W MaletJapanOnyama Limba NEGOTIATION
Juan E PaprockiJapanElwin Sharvill UNQUALIFIED
Wickens T NestleArgentinaAmy Elsner PROPOSAL
Sinclair X RoysterGermanyXuxue Feng PROPOSAL
Isabel G CaldareraGermanyOnyama Limba UNQUALIFIED
Wickens F VenereRussiaBernardo Dominic PROPOSAL
Misaki Y RutaItalyElwin Sharvill UNQUALIFIED
Kaitlin U FollerRussiaAnna Fali PROPOSAL
Juan E FollerBrazilIvan Magalhaes QUALIFIED
Mayumi Y BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Alejandro O SergiGermanyIvan Magalhaes NEGOTIATION
James U MacleadGermanyIoni Bowcher NEGOTIATION
Mujtaba B ButtBrazilAmy Elsner QUALIFIED
Wickens Q ButtUnited KingdomOnyama Limba NEGOTIATION
Frozen Columns
Name
Leja G Rim
Isabel H Inouye
Leja H Waycott
Darci E Waycott
Aruna I Wieser
Octavia N Inouye
Octavia S Stockham
Nicolas A Foller
Ivar S Nestle
Salvatore A Royster
Smith R Morasca
Maria X Glick
Jennifer S Doe
Jennifer I Stenseth
Deepesh X Butt
Isabel H Figeroa
Munro M Venere
Smith S Butt
Mayumi L Figeroa
Chavez U Schemmer
Jones C Vocelka
Kaitlin W Kolmetz
Chavez Y Bolognia
Kaitlin T Poquette
Costa N Nestle
Jeanfrancois M Nicka
Emily F Kusko
Julie P Nicka
Jennifer S Albares
Faith Q Foller
Misaki P Tollner
Jennifer F Garufi
Clifford R Rim
Ricardo H Royster
Darci V Perin
Silvio K Garufi
Jones V Oldroyd
Antonio W Royster
Morrow R Butt
Juan B Flosi
Mujtaba Y Kolmetz
Leon O Sergi
Smith M Gaucho
Maria D Wieser
Sinclair G Butt
Johnson Y Dilliard
Jones Y Tollner
Mayumi O Ostrosky
Misaki B Tollner
Arvin A Briddick
IdCountryDate
1000United Kingdom2026-07-06
1001Spain2026-06-20
1002United Kingdom2026-06-09
1003Japan2026-07-01
1004Spain2026-06-21
1005Italy2026-07-01
1006Australia2026-06-12
1007Germany2026-06-13
1008Australia2026-06-26
1009Russia2026-06-09
1010Germany2026-07-07
1011Argentina2026-07-07
1012United Kingdom2026-06-30
1013Australia2026-06-19
1014India2026-07-05
1015France2026-07-05
1016Germany2026-07-04
1017France2026-06-29
1018Australia2026-07-03
1019Italy2026-06-09
1020France2026-07-02
1021Japan2026-06-20
1022Russia2026-06-23
1023Canada2026-06-10
1024Spain2026-06-10
1025France2026-06-16
1026Brazil2026-06-14
1027United Kingdom2026-06-24
1028Spain2026-06-13
1029India2026-06-14
1030India2026-06-18
1031India2026-06-24
1032Brazil2026-06-16
1033United Kingdom2026-07-08
1034Australia2026-06-27
1035Canada2026-06-16
1036Spain2026-06-14
1037Germany2026-07-02
1038Germany2026-06-13
1039Spain2026-07-06
1040Russia2026-06-16
1041Germany2026-06-17
1042France2026-06-17
1043Spain2026-07-03
1044India2026-06-14
1045Spain2026-06-27
1046Russia2026-06-22
1047Brazil2026-06-25
1048Spain2026-06-25
1049Brazil2026-06-15

On-Demand Data

NameIdCountryDate
Stacey R Ferencz1000United Kingdom2026-06-22
Aditya C Sergi1001India2026-06-30
Kadeem Y Bolognia1002Japan2026-06-26
Mayumi J Caldarera1003Spain2026-07-06
Aika U Saylors1004Spain2026-06-15
Ricardo M Morasca1005Australia2026-07-07
Chavez H Rulapaugh1006Australia2026-06-12
Darci O Bolognia1007Japan2026-06-11
Kaitlin O Bowley1008Japan2026-06-25
Sinclair N Perin1009Canada2026-06-26
Ivar S Rim1010Canada2026-06-20
Octavia L Ostrosky1011United Kingdom2026-06-20
Isabel T Ruta1012Canada2026-06-30
Misaki P Campain1013Australia2026-06-25
Francesco Q Whobrey1014Australia2026-07-01
Kadeem S Dilliard1015Spain2026-06-11
Arvin F Sergi1016Italy2026-06-10
Jeanfrancois K Wieser1017Japan2026-06-16
Ricardo E Albares1018Russia2026-07-08
Jennifer G Ruta1019Italy2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika N WhobreyBrazilAnna Fali QUALIFIED
Tony U MaletJapanAmy Elsner UNQUALIFIED
Claire B DarakjyBrazilAsiya Javayant UNQUALIFIED
Izzy S NestleUnited KingdomStephen Shaw NEW
Murillo F DilliardSpainOnyama Limba UNQUALIFIED
James L RutaFranceStephen Shaw UNQUALIFIED
Smith V DilliardUnited KingdomIoni Bowcher NEW
Cody S KuskoArgentinaXuxue Feng PROPOSAL
Rodrigues K WaycottUnited KingdomStephen Shaw NEGOTIATION
Morrow T WhobreyUnited KingdomXuxue Feng NEW
Tony I OldroydIndiaBernardo Dominic QUALIFIED
Francesco T PoquetteUnited KingdomStephen Shaw NEGOTIATION
Morrow D BowleyRussiaBernardo Dominic NEW
Smith E FigeroaArgentinaBernardo Dominic UNQUALIFIED
Emily P MarrierItalyOnyama Limba NEGOTIATION
Antonio V CaudyUnited KingdomAmy Elsner UNQUALIFIED
Johnson K MorascaSpainXuxue Feng QUALIFIED
David W StockhamAustraliaIvan Magalhaes PROPOSAL
Antonio C TollnerFranceElwin Sharvill UNQUALIFIED
Jones Z KolmetzBrazilIvan Magalhaes UNQUALIFIED
Sinclair N KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Isabel V GillianCanadaAmy Elsner NEGOTIATION
Jeanfrancois E FigeroaUnited KingdomStephen Shaw QUALIFIED
Cody P StockhamAustraliaIoni Bowcher RENEWAL
Adams O MacleadAustraliaStephen Shaw UNQUALIFIED
Deepesh J NickaFranceOnyama Limba QUALIFIED
Salvatore K VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Maisha F VocelkaUnited KingdomBernardo Dominic RENEWAL
Maisha M IturbideFranceBernardo Dominic QUALIFIED
Stacey D WhobreyItalyOnyama Limba RENEWAL
Salvatore J OldroydJapanXuxue Feng PROPOSAL
Clifford S WaycottArgentinaOnyama Limba RENEWAL
Antonio Y FlosiFranceElwin Sharvill PROPOSAL
Juan U OldroydBrazilBernardo Dominic PROPOSAL
Kadeem G CampainFranceIvan Magalhaes UNQUALIFIED
Francesco E OldroydUnited KingdomIvan Magalhaes NEW
Johnson J InouyeGermanyStephen Shaw NEGOTIATION
Cody S WieserAustraliaBernardo Dominic UNQUALIFIED
Murillo I SlusarskiRussiaElwin Sharvill PROPOSAL
Adams N MaletCanadaBernardo Dominic NEGOTIATION

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