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
Stacey D SchemmerIndiaOnyama Limba NEW
Leja G IturbideAustraliaIoni Bowcher NEGOTIATION
Kaitlin O SlusarskiJapanAnna Fali UNQUALIFIED
Darci R FlosiSpainAmy Elsner QUALIFIED
Rodrigues C ShinkoGermanyAsiya Javayant UNQUALIFIED
Deepesh X PaprockiItalyAnna Fali NEGOTIATION
Salvatore J RimAustraliaAmy Elsner NEW
Ricardo A WieserCanadaXuxue Feng QUALIFIED
Smith P NickaJapanIoni Bowcher NEW
Murillo S DoeRussiaAsiya Javayant NEGOTIATION
Costa N BriddickCanadaIvan Magalhaes RENEWAL
Smith S WhobreySpainAnna Fali UNQUALIFIED
Ivar G MacleadGermanyBernardo Dominic UNQUALIFIED
Emily H MorascaJapanAmy Elsner QUALIFIED
James I PerinFranceAmy Elsner UNQUALIFIED
Jefferson I FlosiRussiaXuxue Feng UNQUALIFIED
Leon J RutaSpainAnna Fali PROPOSAL
Ivar F MorascaArgentinaIvan Magalhaes PROPOSAL
Maria C WieserRussiaBernardo Dominic PROPOSAL
Ashley D GillianSpainElwin Sharvill PROPOSAL
Clifford Q NestleRussiaAsiya Javayant QUALIFIED
Emily H VocelkaIndiaXuxue Feng UNQUALIFIED
Aika E AlbaresCanadaAmy Elsner QUALIFIED
Aditya W DilliardAustraliaIoni Bowcher RENEWAL
Octavia O RoysterJapanAmy Elsner NEGOTIATION
Darci H WieserFranceAnna Fali NEGOTIATION
Cody U GarufiBrazilIoni Bowcher UNQUALIFIED
Juan R FigeroaGermanyOnyama Limba NEGOTIATION
Izzy I CampainBrazilAsiya Javayant NEGOTIATION
Maisha X PaprockiItalyAnna Fali RENEWAL
Cody F IturbideAustraliaAnna Fali UNQUALIFIED
Misaki D RimGermanyIvan Magalhaes QUALIFIED
Greenwood N SergiAustraliaOnyama Limba UNQUALIFIED
Maria P ChuiGermanyAmy Elsner PROPOSAL
Claire H DilliardSpainStephen Shaw NEGOTIATION
Ashley M FlosiJapanXuxue Feng PROPOSAL
Adams S KolmetzFranceXuxue Feng QUALIFIED
Misaki C ShinkoCanadaAsiya Javayant PROPOSAL
Murillo W ShinkoAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois K VenereUnited KingdomAsiya Javayant UNQUALIFIED
Aditya H KolmetzArgentinaElwin Sharvill NEGOTIATION
Mayumi V SaylorsAustraliaIoni Bowcher RENEWAL
Salvatore S OldroydGermanyElwin Sharvill NEW
Kaitlin O MaletSpainIoni Bowcher NEW
Munro W SaylorsIndiaXuxue Feng RENEWAL
Francesco N IturbideBrazilBernardo Dominic UNQUALIFIED
Morrow C GauchoBrazilAnna Fali UNQUALIFIED
Maisha P MarrierIndiaAsiya Javayant NEW
Darci Y KuskoUnited KingdomAmy Elsner QUALIFIED
Mujtaba N OldroydRussiaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois X BologniaCanadaBernardo Dominic QUALIFIED
Tony R MarrierRussiaBernardo Dominic UNQUALIFIED
James A TollnerRussiaIoni Bowcher RENEWAL
Darci I OstroskyItalyElwin Sharvill UNQUALIFIED
Sinclair E CampainIndiaAnna Fali RENEWAL
Arvin V IturbideCanadaAsiya Javayant RENEWAL
Octavia U KuskoCanadaElwin Sharvill RENEWAL
Isabel A MaletGermanyAnna Fali NEW
Murillo E SchemmerJapanOnyama Limba UNQUALIFIED
Jennifer C DarakjyRussiaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja S VenereArgentina2026-07-08Rangoni Of Florence QUALIFIED78Bernardo Dominic
1001Johnson E SchemmerAustralia2026-06-17Rangoni Of Florence PROPOSAL28Bernardo Dominic
1002Jeanfrancois P CaudySpain2026-06-17Rousseaux, Michael Esq PROPOSAL69Bernardo Dominic
1003Julie U DoeIndia2026-07-15Buckley Miller Wright PROPOSAL65Asiya Javayant
1004Ricardo V RutaGermany2026-06-23Chanay, Jeffrey A Esq UNQUALIFIED95Onyama Limba
1005Misaki R NestleRussia2026-07-02Chanay, Jeffrey A Esq RENEWAL39Stephen Shaw
1006Ashley X GlickCanada2026-07-03Buckley Miller Wright RENEWAL41Asiya Javayant
1007Cody J KuskoGermany2026-06-27Rangoni Of Florence NEW71Elwin Sharvill
1008Aditya M MaletRussia2026-07-10Chapman, Ross E Esq RENEWAL76Onyama Limba
1009Darci K AmigonRussia2026-07-12Rangoni Of Florence PROPOSAL58Amy Elsner
1010Greenwood M MacleadArgentina2026-07-12Chanay, Jeffrey A Esq PROPOSAL39Anna Fali
1011Isabel G OstroskyIndia2026-07-11Rousseaux, Michael Esq PROPOSAL92Xuxue Feng
1012Maisha E RulapaughSpain2026-07-14King, Christopher A Esq RENEWAL45Xuxue Feng
1013Wickens E BowleySpain2026-07-02Rousseaux, Michael Esq NEGOTIATION41Xuxue Feng
1014Murillo S OstroskyJapan2026-06-24Feiner Bros PROPOSAL97Asiya Javayant
1015Alejandro N GlickIndia2026-07-13Chanay, Jeffrey A Esq QUALIFIED68Anna Fali
1016Murillo S MaletCanada2026-06-27Feltz Printing Service QUALIFIED52Xuxue Feng
1017Izzy S MarrierItaly2026-07-14Rousseaux, Michael Esq PROPOSAL7Bernardo Dominic
1018Isabel F IturbideItaly2026-06-29Dorl, James J Esq NEW79Elwin Sharvill
1019David T CaudyAustralia2026-06-18Buckley Miller Wright NEGOTIATION36Anna Fali
1020Wickens F WaycottFrance2026-06-30Printing Dimensions RENEWAL82Bernardo Dominic
1021Munro X WhobreyAustralia2026-06-18King, Christopher A Esq UNQUALIFIED68Onyama Limba
1022Tony T SlusarskiSpain2026-07-07King, Christopher A Esq RENEWAL38Ivan Magalhaes
1023Mayumi J NestleJapan2026-06-19Feiner Bros UNQUALIFIED0Elwin Sharvill
1024Rodrigues V GillianFrance2026-06-29Rousseaux, Michael Esq QUALIFIED0Anna Fali
1025Antonio R AmigonFrance2026-06-25Chemel, James L Cpa RENEWAL70Ivan Magalhaes
1026Juan J RimJapan2026-06-25King, Christopher A Esq NEW36Onyama Limba
1027Morrow C MacleadFrance2026-07-06Buckley Miller Wright NEW84Ivan Magalhaes
1028Isabel D StensethIndia2026-06-21Commercial Press QUALIFIED5Asiya Javayant
1029Sinclair W GarufiGermany2026-07-12Feiner Bros UNQUALIFIED73Ivan Magalhaes
1030Morrow Z KuskoSpain2026-06-17Rangoni Of Florence QUALIFIED28Xuxue Feng
1031Cody L FigeroaRussia2026-07-11Commercial Press NEW76Amy Elsner
1032Arvin Y BowleyUnited Kingdom2026-06-28Chanay, Jeffrey A Esq NEGOTIATION74Stephen Shaw
1033Ivar V CaudyGermany2026-06-24Buckley Miller Wright NEW82Ioni Bowcher
1034Deepesh E DilliardBrazil2026-06-21Buckley Miller Wright NEGOTIATION73Asiya Javayant
1035Munro H SlusarskiAustralia2026-07-05Rangoni Of Florence UNQUALIFIED37Bernardo Dominic
1036Nicolas L VocelkaIndia2026-06-23Rangoni Of Florence NEGOTIATION63Stephen Shaw
1037Silvio X TollnerGermany2026-06-30Dorl, James J Esq NEGOTIATION64Xuxue Feng
1038Leja N DilliardCanada2026-06-27Commercial Press NEGOTIATION2Ivan Magalhaes
1039Clifford J MorascaAustralia2026-06-25Truhlar And Truhlar Attys QUALIFIED14Stephen Shaw
1040Jennifer Y TollnerItaly2026-06-27Dorl, James J Esq NEGOTIATION52Asiya Javayant
1041Aruna T CaudyRussia2026-07-06Benton, John B Jr NEW74Asiya Javayant
1042Aruna D MorascaGermany2026-06-23Rousseaux, Michael Esq PROPOSAL66Stephen Shaw
1043Tony Q PaprockiBrazil2026-06-27Chemel, James L Cpa NEGOTIATION8Anna Fali
1044Ashley R CaudyJapan2026-07-07Rousseaux, Michael Esq QUALIFIED63Amy Elsner
1045Jefferson H RulapaughArgentina2026-06-20King, Christopher A Esq PROPOSAL69Amy Elsner
1046Cody U BriddickArgentina2026-07-07Rousseaux, Michael Esq QUALIFIED54Elwin Sharvill
1047Isabel D AlbaresGermany2026-06-22Chapman, Ross E Esq RENEWAL36Elwin Sharvill
1048Chavez D PoquetteBrazil2026-06-21Chapman, Ross E Esq PROPOSAL6Stephen Shaw
1049Ivar M StockhamSpain2026-07-15Rousseaux, Michael Esq UNQUALIFIED26Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan Q FlosiRussiaIvan Magalhaes PROPOSAL
Murillo V FerenczCanadaAmy Elsner QUALIFIED
Jeanfrancois N ChuiIndiaElwin Sharvill PROPOSAL
Julie G WaycottArgentinaIvan Magalhaes UNQUALIFIED
Sinclair B PerinBrazilAsiya Javayant UNQUALIFIED
Jennifer A AlbaresSpainElwin Sharvill PROPOSAL
Faith Q StockhamFranceOnyama Limba NEGOTIATION
Silvio G FigeroaItalyAmy Elsner NEW
Nicolas J MaletIndiaBernardo Dominic PROPOSAL
Adams B FollerAustraliaXuxue Feng QUALIFIED
Kaitlin T CaudyFranceOnyama Limba PROPOSAL
Leon C MaletGermanyAsiya Javayant PROPOSAL
Emily S CampainJapanXuxue Feng RENEWAL
Antonio U SergiIndiaAnna Fali NEW
Alejandro E WhobreyIndiaAsiya Javayant PROPOSAL
Aruna A PaprockiFranceAmy Elsner NEGOTIATION
Adams J StensethBrazilAmy Elsner NEGOTIATION
Antonio W CampainBrazilAsiya Javayant NEGOTIATION
Rodrigues C RoysterFranceIvan Magalhaes UNQUALIFIED
Isabel W PoquetteFranceAmy Elsner NEW
Emily V DarakjyGermanyBernardo Dominic NEGOTIATION
Maisha S CampainUnited KingdomIvan Magalhaes RENEWAL
Greenwood N VocelkaIndiaStephen Shaw RENEWAL
Morrow B CaldareraGermanyBernardo Dominic RENEWAL
Alejandro O WieserUnited KingdomXuxue Feng QUALIFIED
Mayumi P ChuiJapanBernardo Dominic NEGOTIATION
Jefferson Q PoquetteBrazilXuxue Feng NEGOTIATION
Antonio K OldroydCanadaIoni Bowcher NEGOTIATION
Salvatore C FlosiUnited KingdomStephen Shaw NEW
Faith C ShinkoSpainAsiya Javayant QUALIFIED
Rodrigues Q GillianCanadaAnna Fali UNQUALIFIED
Leja D NickaCanadaIoni Bowcher UNQUALIFIED
Jones P MorascaBrazilIvan Magalhaes RENEWAL
Stacey V StensethArgentinaStephen Shaw PROPOSAL
Cody T FigeroaCanadaAsiya Javayant NEW
Stacey P FlosiItalyAsiya Javayant NEGOTIATION
Rodrigues W WhobreyAustraliaStephen Shaw NEW
Stacey I NestleCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois T ChuiUnited KingdomElwin Sharvill NEGOTIATION
Aditya D FigeroaBrazilStephen Shaw QUALIFIED
Aika F CaudySpainAsiya Javayant NEW
Munro V InouyeCanadaAsiya Javayant NEW
Leon G DoeItalyAsiya Javayant UNQUALIFIED
Rodrigues Y DoeRussiaOnyama Limba PROPOSAL
Stacey L NickaCanadaStephen Shaw NEGOTIATION
Faith P OstroskyAustraliaAsiya Javayant RENEWAL
Adams C SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Emily Y OstroskyRussiaBernardo Dominic PROPOSAL
Isabel A FlosiJapanAnna Fali QUALIFIED
Emily M DarakjyArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Leon E Slusarski
Clifford Q Gaucho
Jones H Amigon
Adams S Nicka
David X Caldarera
Mujtaba T Nicka
Darci W Kolmetz
Misaki H Butt
Arvin O Bowley
Izzy O Waycott
Jennifer H Venere
Emily U Albares
James I Tollner
Johnson E Flosi
Emily H Glick
Stacey G Rulapaugh
Morrow O Caldarera
Isabel Y Saylors
Mayumi G Royster
Antonio P Kusko
James B Perin
Murillo U Whobrey
Adams Z Gaucho
Leon J Royster
Costa P Rim
Aditya X Darakjy
Ashley Q Butt
Ashley T Darakjy
Antonio Q Rim
Nicolas Z Albares
Sinclair D Whobrey
Misaki E Perin
Octavia J Ostrosky
Stacey Y Poquette
Jeanfrancois M Dilliard
Ashley G Malet
Ivar N Chui
Costa O Rulapaugh
Ricardo J Ostrosky
Adams R Morasca
Greenwood K Nestle
James S Waycott
James N Darakjy
Leja D Glick
Morrow R Rulapaugh
Maisha G Oldroyd
Stacey J Vocelka
Adams R Rulapaugh
Kadeem Q Dilliard
Juan I Doe
IdCountryDate
1000Italy2026-07-03
1001Russia2026-06-23
1002Japan2026-07-06
1003Germany2026-07-10
1004Spain2026-06-26
1005Japan2026-07-11
1006India2026-06-27
1007United Kingdom2026-06-19
1008Italy2026-06-24
1009Brazil2026-06-20
1010Russia2026-07-03
1011Canada2026-07-11
1012Australia2026-06-22
1013United Kingdom2026-06-28
1014Spain2026-06-20
1015Italy2026-07-04
1016Canada2026-06-23
1017India2026-07-13
1018Japan2026-06-19
1019France2026-06-24
1020Japan2026-07-06
1021Italy2026-07-07
1022Germany2026-06-24
1023Japan2026-06-25
1024Australia2026-07-16
1025Brazil2026-06-27
1026Canada2026-06-21
1027Russia2026-06-30
1028Australia2026-07-16
1029Brazil2026-07-14
1030Japan2026-06-18
1031Germany2026-07-11
1032Germany2026-06-28
1033United Kingdom2026-07-02
1034Italy2026-06-19
1035United Kingdom2026-07-01
1036Spain2026-07-14
1037Brazil2026-07-05
1038France2026-07-03
1039Japan2026-06-22
1040Italy2026-06-26
1041Italy2026-06-27
1042Germany2026-07-05
1043United Kingdom2026-07-12
1044Australia2026-07-11
1045United Kingdom2026-06-24
1046Australia2026-06-28
1047Brazil2026-06-29
1048Australia2026-06-27
1049France2026-06-17

On-Demand Data

NameIdCountryDate
Isabel X Stockham1000Australia2026-07-15
Arvin J Paprocki1001Japan2026-06-24
Julie W Inouye1002Germany2026-06-17
Salvatore N Gillian1003Spain2026-06-17
Julie X Figeroa1004United Kingdom2026-06-21
Octavia O Amigon1005Spain2026-07-05
Jones Y Chui1006Canada2026-06-21
Stacey G Nestle1007Russia2026-07-02
Silvio W Caldarera1008United Kingdom2026-07-06
Ivar Y Ferencz1009Italy2026-06-22
Maisha W Waycott1010Australia2026-06-18
David T Gaucho1011Brazil2026-06-24
Faith K Rim1012Brazil2026-06-29
Jennifer G Saylors1013Spain2026-07-16
Misaki G Campain1014Canada2026-06-18
Kadeem U Figeroa1015Italy2026-06-23
Aika O Sergi1016United Kingdom2026-07-06
Mujtaba Z Shinko1017India2026-06-19
Darci Z Caldarera1018United Kingdom2026-07-11
Tony B Briddick1019Japan2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika E WieserGermanyXuxue Feng PROPOSAL
Octavia E MarrierRussiaStephen Shaw NEGOTIATION
Emily E NickaBrazilIvan Magalhaes NEW
Ricardo W MarrierSpainXuxue Feng PROPOSAL
Misaki K StensethCanadaOnyama Limba QUALIFIED
Misaki P SaylorsJapanIvan Magalhaes NEW
Ashley K FigeroaArgentinaIvan Magalhaes NEGOTIATION
David L FollerArgentinaOnyama Limba NEGOTIATION
Smith D FerenczGermanyStephen Shaw PROPOSAL
Salvatore O KuskoUnited KingdomAsiya Javayant NEW
Jeanfrancois L RulapaughUnited KingdomStephen Shaw RENEWAL
Mujtaba C SergiArgentinaAmy Elsner RENEWAL
Morrow T MarrierCanadaElwin Sharvill UNQUALIFIED
Jefferson S CampainRussiaOnyama Limba QUALIFIED
Murillo Y PoquetteItalyAsiya Javayant NEGOTIATION
Francesco C GillianRussiaIvan Magalhaes QUALIFIED
Claire M KolmetzAustraliaIoni Bowcher UNQUALIFIED
Adams B OstroskyCanadaAnna Fali NEW
Maisha G BriddickUnited KingdomXuxue Feng RENEWAL
Cody E StockhamArgentinaElwin Sharvill PROPOSAL
Jefferson Z PaprockiIndiaElwin Sharvill QUALIFIED
Leon V VenereIndiaAsiya Javayant UNQUALIFIED
Morrow D StockhamGermanyIvan Magalhaes QUALIFIED
Leon T WhobreySpainAnna Fali RENEWAL
Costa F KuskoItalyStephen Shaw UNQUALIFIED
Silvio Z MacleadSpainIvan Magalhaes RENEWAL
Ashley D FlosiBrazilIoni Bowcher RENEWAL
Adams B SlusarskiCanadaAmy Elsner NEGOTIATION
Chavez J MacleadRussiaBernardo Dominic NEGOTIATION
Chavez C MacleadIndiaAsiya Javayant QUALIFIED
Darci M WhobreyFranceStephen Shaw UNQUALIFIED
Munro N DarakjyRussiaStephen Shaw PROPOSAL
Jones Z BriddickRussiaElwin Sharvill UNQUALIFIED
James J MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Smith R RoysterJapanElwin Sharvill RENEWAL
Munro H RoysterUnited KingdomIoni Bowcher PROPOSAL
Jefferson A BriddickArgentinaAmy Elsner PROPOSAL
Julie Y RimAustraliaBernardo Dominic PROPOSAL
Aika D FerenczItalyOnyama Limba NEW
Leja P MarrierBrazilBernardo Dominic QUALIFIED

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