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
Nicolas W GauchoRussiaXuxue Feng NEGOTIATION
Stacey H WieserJapanAnna Fali PROPOSAL
Kadeem G NickaGermanyOnyama Limba RENEWAL
Leon F InouyeArgentinaStephen Shaw UNQUALIFIED
Cody J MarrierItalyOnyama Limba NEW
Izzy F KuskoIndiaElwin Sharvill QUALIFIED
Aditya P ShinkoSpainIvan Magalhaes NEGOTIATION
Morrow S FlosiFranceAsiya Javayant PROPOSAL
Rodrigues G PaprockiGermanyBernardo Dominic RENEWAL
Juan U FollerAustraliaBernardo Dominic PROPOSAL
Costa P SchemmerGermanyElwin Sharvill RENEWAL
Sinclair H VocelkaBrazilAmy Elsner NEW
Jefferson V PaprockiJapanIoni Bowcher NEW
Leja I AlbaresSpainElwin Sharvill RENEWAL
Cody B SaylorsBrazilXuxue Feng PROPOSAL
Izzy G RulapaughCanadaIvan Magalhaes NEGOTIATION
Aruna X CaudyIndiaIvan Magalhaes QUALIFIED
Leon I KolmetzGermanyIvan Magalhaes NEW
Greenwood L GlickIndiaIvan Magalhaes PROPOSAL
Jones H BriddickGermanyIvan Magalhaes NEGOTIATION
Misaki Z GarufiCanadaIvan Magalhaes NEGOTIATION
Ricardo O NickaBrazilOnyama Limba NEGOTIATION
Antonio S KuskoGermanyStephen Shaw NEGOTIATION
Aditya G BologniaGermanyAnna Fali RENEWAL
Jennifer X FlosiGermanyXuxue Feng NEGOTIATION
Nicolas Z VocelkaRussiaAmy Elsner PROPOSAL
Clifford P GillianGermanyAnna Fali RENEWAL
Emily B SlusarskiArgentinaXuxue Feng RENEWAL
Antonio U ChuiAustraliaStephen Shaw NEW
Adams N MacleadIndiaOnyama Limba PROPOSAL
Darci P SchemmerJapanAmy Elsner UNQUALIFIED
Costa S WhobreyRussiaAnna Fali NEGOTIATION
Octavia P GillianGermanyAnna Fali NEGOTIATION
Izzy Z IturbideUnited KingdomXuxue Feng QUALIFIED
Francesco C FigeroaGermanyAnna Fali UNQUALIFIED
Costa K GlickIndiaAsiya Javayant QUALIFIED
Arvin I StensethJapanStephen Shaw UNQUALIFIED
Jennifer D RoysterArgentinaIvan Magalhaes QUALIFIED
Deepesh H ButtGermanyXuxue Feng PROPOSAL
Misaki N WaycottArgentinaAmy Elsner PROPOSAL
Isabel K InouyeCanadaIoni Bowcher NEW
Jones J VenereUnited KingdomIoni Bowcher RENEWAL
Adams N PerinSpainElwin Sharvill NEW
Mayumi J SlusarskiJapanIoni Bowcher NEW
Munro Y AmigonIndiaXuxue Feng PROPOSAL
Kadeem E DilliardUnited KingdomIoni Bowcher NEGOTIATION
Jennifer J CampainJapanXuxue Feng RENEWAL
Jeanfrancois S AmigonUnited KingdomAmy Elsner QUALIFIED
Izzy A BowleyIndiaOnyama Limba NEW
James D MarrierArgentinaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair J ChuiAustraliaIvan Magalhaes PROPOSAL
Nicolas F GarufiFranceBernardo Dominic QUALIFIED
David H CaudyCanadaAmy Elsner QUALIFIED
David W NestleIndiaXuxue Feng NEW
Misaki B SaylorsCanadaOnyama Limba NEW
Aika F SchemmerSpainXuxue Feng PROPOSAL
Mujtaba U KolmetzItalyAnna Fali NEGOTIATION
Ivar O MaletJapanBernardo Dominic RENEWAL
Sinclair H TollnerCanadaAsiya Javayant NEGOTIATION
Munro R MacleadBrazilStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba G SchemmerArgentina2024-09-17Rangoni Of Florence UNQUALIFIED82Onyama Limba
1001Aruna J BowleyGermany2024-09-12Chanay, Jeffrey A Esq QUALIFIED10Stephen Shaw
1002Ricardo T InouyeBrazil2024-08-24Commercial Press NEGOTIATION63Elwin Sharvill
1003Aruna D SergiIndia2024-09-01Chapman, Ross E Esq NEGOTIATION88Xuxue Feng
1004Maisha F FlosiBrazil2024-09-06King, Christopher A Esq NEGOTIATION77Amy Elsner
1005Arvin Y RulapaughGermany2024-08-30Feltz Printing Service UNQUALIFIED45Ivan Magalhaes
1006Costa K MorascaUnited Kingdom2024-08-25Morlong Associates QUALIFIED89Stephen Shaw
1007Kadeem F StockhamAustralia2024-09-10Chapman, Ross E Esq PROPOSAL89Xuxue Feng
1008Leon H PaprockiSpain2024-08-22Chanay, Jeffrey A Esq PROPOSAL58Anna Fali
1009Claire E GauchoAustralia2024-09-02Buckley Miller Wright QUALIFIED54Elwin Sharvill
1010Smith W GarufiFrance2024-09-06Morlong Associates UNQUALIFIED47Ivan Magalhaes
1011Smith Z BriddickAustralia2024-09-01Rangoni Of Florence QUALIFIED86Asiya Javayant
1012Tony M SaylorsItaly2024-09-09Dorl, James J Esq QUALIFIED9Xuxue Feng
1013Munro H SergiUnited Kingdom2024-08-27Feltz Printing Service NEW89Stephen Shaw
1014Chavez N WhobreyCanada2024-08-30Benton, John B Jr UNQUALIFIED29Asiya Javayant
1015Maisha G FerenczUnited Kingdom2024-08-28Chapman, Ross E Esq QUALIFIED98Stephen Shaw
1016Alejandro F NickaArgentina2024-08-29Chemel, James L Cpa UNQUALIFIED38Ioni Bowcher
1017Claire I GlickIndia2024-09-05Dorl, James J Esq RENEWAL35Anna Fali
1018Costa C DoeGermany2024-09-06Buckley Miller Wright NEW8Ivan Magalhaes
1019Claire Q SlusarskiSpain2024-09-09Rousseaux, Michael Esq UNQUALIFIED48Onyama Limba
1020Isabel U RulapaughGermany2024-09-01Chemel, James L Cpa RENEWAL32Ioni Bowcher
1021Maria P RoysterAustralia2024-08-22Feiner Bros NEW22Elwin Sharvill
1022Kaitlin X GlickItaly2024-09-01Chapman, Ross E Esq NEW7Bernardo Dominic
1023Smith F StensethGermany2024-09-08King, Christopher A Esq NEGOTIATION8Asiya Javayant
1024Mujtaba E MorascaAustralia2024-09-08Commercial Press PROPOSAL87Ivan Magalhaes
1025Aditya P StensethArgentina2024-09-16Morlong Associates NEW44Xuxue Feng
1026Kadeem K SchemmerUnited Kingdom2024-09-05Buckley Miller Wright RENEWAL46Onyama Limba
1027Murillo Z PerinJapan2024-08-29Printing Dimensions UNQUALIFIED81Xuxue Feng
1028Nicolas T GarufiArgentina2024-08-26Rousseaux, Michael Esq NEGOTIATION98Anna Fali
1029Faith Q SchemmerCanada2024-09-10King, Christopher A Esq NEW39Ivan Magalhaes
1030Cody E KuskoUnited Kingdom2024-09-13Benton, John B Jr NEW34Amy Elsner
1031Cody G GlickUnited Kingdom2024-09-16Rangoni Of Florence RENEWAL43Ioni Bowcher
1032Jeanfrancois O VenereFrance2024-09-07Printing Dimensions NEW81Asiya Javayant
1033Tony O FlosiItaly2024-09-02Rousseaux, Michael Esq UNQUALIFIED30Onyama Limba
1034Julie E NestleIndia2024-08-29Buckley Miller Wright NEGOTIATION57Ioni Bowcher
1035Murillo L GillianSpain2024-09-09Benton, John B Jr UNQUALIFIED53Ioni Bowcher
1036Johnson U ButtUnited Kingdom2024-08-26Buckley Miller Wright PROPOSAL82Elwin Sharvill
1037Stacey Z KolmetzSpain2024-09-11Dorl, James J Esq QUALIFIED45Ivan Magalhaes
1038Claire L AlbaresJapan2024-09-05Chemel, James L Cpa NEGOTIATION75Anna Fali
1039Leja A MarrierAustralia2024-09-09Rangoni Of Florence UNQUALIFIED74Elwin Sharvill
1040Cody F PerinSpain2024-08-25Rangoni Of Florence PROPOSAL0Onyama Limba
1041Greenwood Y PoquetteAustralia2024-09-15Chapman, Ross E Esq RENEWAL81Anna Fali
1042Alejandro O VenereUnited Kingdom2024-08-28Dorl, James J Esq UNQUALIFIED22Xuxue Feng
1043Smith I CaldareraIndia2024-09-15King, Christopher A Esq QUALIFIED47Bernardo Dominic
1044Silvio M WhobreyJapan2024-08-21Chemel, James L Cpa NEGOTIATION61Onyama Limba
1045Aika H GauchoArgentina2024-08-23Commercial Press NEW84Ioni Bowcher
1046Jennifer X MacleadArgentina2024-09-04Printing Dimensions NEGOTIATION15Ivan Magalhaes
1047Johnson Z ChuiUnited Kingdom2024-09-02Chapman, Ross E Esq NEW58Ivan Magalhaes
1048Antonio U BologniaSpain2024-09-09Buckley Miller Wright NEW91Anna Fali
1049Ivar E GauchoGermany2024-09-06Rousseaux, Michael Esq NEW36Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar J KuskoItalyXuxue Feng NEW
Cody L GillianGermanyOnyama Limba RENEWAL
Jones E IturbideSpainAmy Elsner PROPOSAL
Mayumi A MorascaFranceAmy Elsner NEGOTIATION
Johnson J VenereUnited KingdomAnna Fali RENEWAL
Clifford H RulapaughFranceOnyama Limba PROPOSAL
Isabel I WieserBrazilAsiya Javayant PROPOSAL
Ricardo N AmigonJapanAmy Elsner UNQUALIFIED
Izzy P FerenczRussiaIoni Bowcher NEW
Smith U RutaRussiaIvan Magalhaes PROPOSAL
Mujtaba S MacleadUnited KingdomOnyama Limba NEGOTIATION
Stacey I ShinkoJapanElwin Sharvill NEW
Jones X CaldareraArgentinaAmy Elsner RENEWAL
Jennifer B MorascaFranceStephen Shaw PROPOSAL
Faith D IturbideBrazilIoni Bowcher QUALIFIED
Cody K GlickIndiaIoni Bowcher QUALIFIED
Rodrigues N WieserIndiaIvan Magalhaes NEW
Stacey W FlosiAustraliaIvan Magalhaes QUALIFIED
Kaitlin Q OldroydIndiaOnyama Limba RENEWAL
Chavez B BriddickFranceIvan Magalhaes PROPOSAL
Salvatore C NestleIndiaXuxue Feng PROPOSAL
Arvin W ChuiUnited KingdomBernardo Dominic QUALIFIED
Maria F PaprockiIndiaAnna Fali NEGOTIATION
Morrow E TollnerIndiaAsiya Javayant QUALIFIED
Jennifer J FerenczAustraliaIvan Magalhaes NEW
Claire B FerenczGermanyAsiya Javayant UNQUALIFIED
Jennifer C MorascaRussiaStephen Shaw QUALIFIED
Mayumi Y WaycottArgentinaAnna Fali UNQUALIFIED
Mujtaba C BologniaAustraliaOnyama Limba RENEWAL
Maria A VocelkaFranceIoni Bowcher RENEWAL
Ivar V ButtIndiaBernardo Dominic PROPOSAL
Mayumi B GarufiItalyElwin Sharvill QUALIFIED
Clifford J BologniaUnited KingdomAmy Elsner RENEWAL
Nicolas F CaldareraFranceOnyama Limba PROPOSAL
Jones Y MorascaBrazilBernardo Dominic PROPOSAL
Aruna G OldroydJapanAsiya Javayant NEGOTIATION
Aditya O MarrierBrazilIoni Bowcher QUALIFIED
Cody E FigeroaIndiaAsiya Javayant RENEWAL
Leon E SlusarskiIndiaAmy Elsner RENEWAL
James J MorascaAustraliaXuxue Feng NEGOTIATION
James U BowleyUnited KingdomAmy Elsner UNQUALIFIED
David F MaletUnited KingdomIvan Magalhaes NEW
Rodrigues F DoeAustraliaOnyama Limba NEGOTIATION
Maria M PaprockiRussiaAnna Fali UNQUALIFIED
Alejandro P RimBrazilXuxue Feng QUALIFIED
Octavia T MaletSpainOnyama Limba QUALIFIED
Chavez Z DoeItalyAsiya Javayant RENEWAL
Rodrigues Z OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Salvatore X OldroydGermanyAmy Elsner QUALIFIED
Sinclair Z VocelkaCanadaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Mayumi Y Paprocki
Chavez Y Oldroyd
Johnson Z Schemmer
Wickens F Ostrosky
Ricardo K Foller
Alejandro S Malet
Francesco I Kusko
Murillo Z Kusko
Rodrigues A Bowley
Jefferson A Poquette
Ricardo D Royster
Arvin T Dilliard
Octavia V Figeroa
Aika B Malet
Izzy T Inouye
Maria H Gillian
Silvio K Oldroyd
Sinclair V Gillian
Ashley A Nestle
Mayumi V Sergi
Izzy L Poquette
Isabel C Whobrey
Cody T Flosi
Kadeem N Kolmetz
David Y Figeroa
Chavez C Stenseth
Rodrigues O Gillian
Mayumi K Whobrey
Silvio R Butt
Rodrigues N Malet
Francesco T Iturbide
Smith G Campain
Adams L Ferencz
Izzy G Bolognia
Maria Y Whobrey
Claire W Perin
Kadeem V Wieser
Emily A Perin
Antonio Q Chui
Greenwood S Figeroa
Emily V Morasca
Claire S Rulapaugh
Kadeem K Doe
Wickens V Albares
Deepesh X Inouye
Costa B Briddick
Clifford D Vocelka
Faith T Vocelka
Mayumi T Marrier
Misaki M Venere
IdCountryDate
1000France2024-09-16
1001Germany2024-08-26
1002Japan2024-08-29
1003United Kingdom2024-08-26
1004United Kingdom2024-09-10
1005United Kingdom2024-08-24
1006Canada2024-09-18
1007Brazil2024-09-15
1008Canada2024-09-02
1009Russia2024-09-03
1010Germany2024-08-25
1011Spain2024-09-01
1012Germany2024-09-18
1013Canada2024-09-14
1014Canada2024-08-27
1015France2024-08-27
1016Japan2024-09-06
1017Argentina2024-09-03
1018Italy2024-09-15
1019United Kingdom2024-08-22
1020Canada2024-08-29
1021Australia2024-09-02
1022India2024-08-28
1023Germany2024-09-04
1024Italy2024-09-03
1025Russia2024-09-03
1026Australia2024-08-31
1027Spain2024-08-23
1028United Kingdom2024-09-09
1029Argentina2024-09-18
1030Italy2024-09-14
1031Canada2024-08-30
1032India2024-09-06
1033France2024-09-06
1034Japan2024-09-06
1035Italy2024-09-02
1036Australia2024-08-22
1037Canada2024-08-22
1038Brazil2024-08-29
1039United Kingdom2024-09-19
1040United Kingdom2024-09-10
1041Australia2024-09-15
1042Brazil2024-09-02
1043India2024-08-21
1044Russia2024-08-25
1045Germany2024-09-11
1046Italy2024-09-10
1047Argentina2024-08-24
1048Italy2024-09-01
1049Japan2024-08-21

On-Demand Data

NameIdCountryDate
Sinclair E Iturbide1000Canada2024-08-23
Aditya U Amigon1001Italy2024-09-17
Nicolas N Butt1002Argentina2024-09-03
Stacey G Ferencz1003Spain2024-08-25
Ashley J Bowley1004United Kingdom2024-09-04
Maria D Shinko1005Italy2024-08-24
Smith K Nicka1006Japan2024-08-29
Juan A Iturbide1007Canada2024-09-17
Deepesh S Shinko1008United Kingdom2024-08-31
Mayumi A Bolognia1009Spain2024-09-09
Kaitlin I Flosi1010Japan2024-08-29
Jones T Sergi1011France2024-09-03
Faith J Morasca1012Germany2024-09-10
Izzy G Nicka1013Australia2024-09-17
Jeanfrancois Y Doe1014France2024-09-05
Munro R Nestle1015Argentina2024-09-03
Aditya T Inouye1016Russia2024-09-19
Ivar G Rulapaugh1017Italy2024-09-13
Emily W Amigon1018Italy2024-09-07
Octavia N Royster1019Canada2024-08-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair M InouyeCanadaIoni Bowcher RENEWAL
Aditya D SaylorsItalyIvan Magalhaes PROPOSAL
Rodrigues S DarakjyGermanyOnyama Limba UNQUALIFIED
Munro I GauchoIndiaAnna Fali NEGOTIATION
Aruna N StensethAustraliaOnyama Limba RENEWAL
Jennifer I AmigonArgentinaAsiya Javayant PROPOSAL
Mayumi D SlusarskiSpainAsiya Javayant NEGOTIATION
Nicolas V PoquetteFranceIoni Bowcher UNQUALIFIED
Ashley I SlusarskiUnited KingdomOnyama Limba RENEWAL
James G WaycottAustraliaBernardo Dominic NEGOTIATION
Rodrigues P RulapaughSpainElwin Sharvill PROPOSAL
David Z VenereArgentinaBernardo Dominic QUALIFIED
Emily P GauchoRussiaBernardo Dominic NEGOTIATION
Misaki O WhobreyGermanyAsiya Javayant NEGOTIATION
Morrow C WaycottAustraliaElwin Sharvill UNQUALIFIED
Johnson T FlosiBrazilAsiya Javayant RENEWAL
Faith T SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Sinclair R NestleAustraliaAmy Elsner RENEWAL
Jennifer D BowleyUnited KingdomAsiya Javayant PROPOSAL
Deepesh O FigeroaRussiaIoni Bowcher NEGOTIATION
Ashley T OldroydRussiaIoni Bowcher PROPOSAL
Ricardo B MarrierArgentinaBernardo Dominic NEW
Chavez I GauchoGermanyXuxue Feng NEGOTIATION
Murillo D SaylorsArgentinaAsiya Javayant NEGOTIATION
Ashley T CaldareraSpainIoni Bowcher NEW
Claire O WieserCanadaElwin Sharvill UNQUALIFIED
Deepesh L FerenczIndiaOnyama Limba UNQUALIFIED
Kadeem X OstroskyCanadaIoni Bowcher QUALIFIED
Jones B BowleyUnited KingdomBernardo Dominic NEW
Jennifer L ButtAustraliaAmy Elsner QUALIFIED
Sinclair F AlbaresGermanyIvan Magalhaes QUALIFIED
Leja I WhobreyGermanyBernardo Dominic NEW
Francesco Y AlbaresAustraliaAsiya Javayant UNQUALIFIED
Mayumi L BriddickArgentinaBernardo Dominic NEGOTIATION
Kaitlin C GarufiUnited KingdomXuxue Feng NEGOTIATION
Alejandro V CaudyAustraliaAnna Fali NEW
Claire Z GauchoRussiaAmy Elsner NEGOTIATION
Chavez N KuskoUnited KingdomElwin Sharvill PROPOSAL
Silvio F RulapaughIndiaBernardo Dominic NEW
Stacey X GillianSpainIvan Magalhaes 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>