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
Smith E WhobreyCanadaAnna Fali PROPOSAL
David D SergiRussiaOnyama Limba PROPOSAL
Jennifer N MaletJapanAsiya Javayant UNQUALIFIED
Ivar E FerenczCanadaIvan Magalhaes UNQUALIFIED
Mujtaba T RutaAustraliaIoni Bowcher NEW
Ashley E BowleyJapanXuxue Feng RENEWAL
Octavia D ButtItalyIoni Bowcher PROPOSAL
James P RoysterItalyIoni Bowcher NEGOTIATION
Greenwood A WhobreyUnited KingdomXuxue Feng QUALIFIED
Juan H MorascaJapanStephen Shaw PROPOSAL
Octavia X AlbaresJapanAmy Elsner UNQUALIFIED
Leja V WaycottIndiaStephen Shaw PROPOSAL
James V AlbaresCanadaBernardo Dominic NEGOTIATION
Mayumi V WhobreyArgentinaOnyama Limba NEGOTIATION
Tony Z BologniaItalyBernardo Dominic RENEWAL
Silvio M PerinArgentinaAsiya Javayant RENEWAL
Francesco G VenereBrazilAsiya Javayant NEGOTIATION
Kaitlin G RutaItalyBernardo Dominic NEGOTIATION
Julie M ButtGermanyIoni Bowcher NEGOTIATION
Octavia R DilliardArgentinaOnyama Limba UNQUALIFIED
Maria Z BologniaRussiaBernardo Dominic NEGOTIATION
Maria G AmigonFranceXuxue Feng NEGOTIATION
Misaki R RoysterAustraliaStephen Shaw NEW
Tony S StockhamSpainBernardo Dominic QUALIFIED
Ricardo S FollerAustraliaAmy Elsner UNQUALIFIED
Cody N SergiItalyElwin Sharvill UNQUALIFIED
Smith G StensethGermanyAmy Elsner RENEWAL
Chavez Q BologniaRussiaAmy Elsner PROPOSAL
Francesco R IturbideIndiaAsiya Javayant NEGOTIATION
Mujtaba K DarakjyFranceXuxue Feng NEW
Izzy T GauchoFranceIvan Magalhaes NEGOTIATION
Kaitlin Z MarrierAustraliaOnyama Limba PROPOSAL
Nicolas S VocelkaAustraliaAsiya Javayant UNQUALIFIED
Faith F DarakjyFranceAsiya Javayant RENEWAL
Greenwood C FollerAustraliaIoni Bowcher NEW
Smith D OstroskyBrazilIvan Magalhaes UNQUALIFIED
Salvatore E PerinBrazilElwin Sharvill UNQUALIFIED
Ricardo H BowleySpainXuxue Feng QUALIFIED
Claire I StockhamRussiaOnyama Limba QUALIFIED
Jefferson C IturbideFranceIoni Bowcher RENEWAL
Munro I CaldareraArgentinaOnyama Limba UNQUALIFIED
Antonio N WhobreySpainIoni Bowcher RENEWAL
Faith E WaycottRussiaIvan Magalhaes RENEWAL
Maisha N MorascaSpainAnna Fali PROPOSAL
Jones S PaprockiUnited KingdomAnna Fali UNQUALIFIED
Maria A PerinAustraliaAmy Elsner RENEWAL
Darci D SlusarskiBrazilElwin Sharvill QUALIFIED
Julie Y DarakjyBrazilAnna Fali QUALIFIED
Jeanfrancois I WieserAustraliaStephen Shaw NEGOTIATION
Kadeem M WhobreyRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio R MorascaRussiaIoni Bowcher QUALIFIED
Misaki A SchemmerCanadaIoni Bowcher PROPOSAL
Leon Z CaudyCanadaIoni Bowcher UNQUALIFIED
Jones C SergiRussiaXuxue Feng NEW
Wickens V SergiRussiaStephen Shaw NEW
Leja K ChuiFranceXuxue Feng UNQUALIFIED
Darci J MaletBrazilAnna Fali RENEWAL
Munro F WhobreyFranceStephen Shaw PROPOSAL
Tony Q StockhamGermanyOnyama Limba PROPOSAL
Munro H RutaCanadaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues N MaletArgentina2026-06-23Rousseaux, Michael Esq UNQUALIFIED21Anna Fali
1001Rodrigues U StensethJapan2026-07-10Rangoni Of Florence UNQUALIFIED24Anna Fali
1002Salvatore F SlusarskiGermany2026-06-25Rangoni Of Florence UNQUALIFIED80Elwin Sharvill
1003Kaitlin P PoquetteIndia2026-07-07Chapman, Ross E Esq RENEWAL6Xuxue Feng
1004Costa A DilliardUnited Kingdom2026-06-20King, Christopher A Esq QUALIFIED88Ioni Bowcher
1005Greenwood I FlosiBrazil2026-07-07Chapman, Ross E Esq UNQUALIFIED43Stephen Shaw
1006Isabel S PerinRussia2026-07-04Rousseaux, Michael Esq NEGOTIATION54Bernardo Dominic
1007Ivar V ChuiArgentina2026-07-13Truhlar And Truhlar Attys RENEWAL22Amy Elsner
1008Julie A AlbaresArgentina2026-07-15Printing Dimensions UNQUALIFIED44Amy Elsner
1009Ashley W ButtJapan2026-07-04Truhlar And Truhlar Attys NEGOTIATION72Elwin Sharvill
1010Maisha S StensethFrance2026-06-25King, Christopher A Esq QUALIFIED76Ivan Magalhaes
1011Misaki U DoeArgentina2026-06-26Printing Dimensions QUALIFIED43Stephen Shaw
1012Jeanfrancois B CaudyFrance2026-07-14Chanay, Jeffrey A Esq NEGOTIATION15Elwin Sharvill
1013Silvio K WieserRussia2026-07-02Rangoni Of Florence NEW75Elwin Sharvill
1014Emily H VenereAustralia2026-07-05Truhlar And Truhlar Attys UNQUALIFIED35Asiya Javayant
1015Wickens Z DoeSpain2026-07-04Benton, John B Jr NEGOTIATION79Onyama Limba
1016Francesco C MarrierIndia2026-07-02Morlong Associates UNQUALIFIED95Ioni Bowcher
1017David P CaudyCanada2026-07-08Rangoni Of Florence NEGOTIATION45Anna Fali
1018Sinclair N GarufiItaly2026-06-24Chapman, Ross E Esq QUALIFIED44Ioni Bowcher
1019Mujtaba A CampainJapan2026-07-11Truhlar And Truhlar Attys PROPOSAL5Anna Fali
1020Munro D FollerBrazil2026-07-02Buckley Miller Wright PROPOSAL18Onyama Limba
1021James T WhobreyUnited Kingdom2026-06-20Commercial Press NEGOTIATION70Asiya Javayant
1022Mujtaba B ChuiSpain2026-06-23Chapman, Ross E Esq NEW50Ivan Magalhaes
1023Kaitlin C BologniaArgentina2026-07-06Rousseaux, Michael Esq QUALIFIED91Xuxue Feng
1024Arvin H FollerAustralia2026-07-09Benton, John B Jr NEGOTIATION71Anna Fali
1025Deepesh Q OstroskyJapan2026-07-12Commercial Press PROPOSAL59Amy Elsner
1026Alejandro A MarrierBrazil2026-07-10Benton, John B Jr RENEWAL7Stephen Shaw
1027Arvin G NestleGermany2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED30Onyama Limba
1028Silvio F DoeAustralia2026-07-11Chapman, Ross E Esq NEGOTIATION60Elwin Sharvill
1029Leja C DoeBrazil2026-06-27Buckley Miller Wright NEGOTIATION0Ivan Magalhaes
1030Ivar Y MaletSpain2026-07-11Commercial Press UNQUALIFIED66Bernardo Dominic
1031Jeanfrancois A NestleItaly2026-07-17Benton, John B Jr QUALIFIED53Anna Fali
1032Juan J FlosiAustralia2026-07-14Rangoni Of Florence UNQUALIFIED75Stephen Shaw
1033Arvin G KuskoUnited Kingdom2026-07-17Chemel, James L Cpa RENEWAL60Anna Fali
1034Murillo Y MacleadRussia2026-07-11Chapman, Ross E Esq PROPOSAL44Amy Elsner
1035Adams V OldroydSpain2026-06-20King, Christopher A Esq NEW20Asiya Javayant
1036Chavez K GlickGermany2026-06-23King, Christopher A Esq PROPOSAL14Xuxue Feng
1037David C SaylorsItaly2026-07-03King, Christopher A Esq PROPOSAL28Elwin Sharvill
1038Faith O AlbaresBrazil2026-06-23Truhlar And Truhlar Attys UNQUALIFIED62Asiya Javayant
1039Deepesh Z CaudyBrazil2026-06-21King, Christopher A Esq NEW26Elwin Sharvill
1040Aika U TollnerGermany2026-06-30Chemel, James L Cpa NEGOTIATION74Elwin Sharvill
1041Ashley E GauchoSpain2026-07-10Chanay, Jeffrey A Esq NEW88Onyama Limba
1042Wickens U MaletGermany2026-06-28Commercial Press QUALIFIED91Asiya Javayant
1043Chavez K MaletAustralia2026-07-02Feltz Printing Service NEGOTIATION0Anna Fali
1044Deepesh H VenereRussia2026-07-04Truhlar And Truhlar Attys RENEWAL27Asiya Javayant
1045Munro M FollerJapan2026-07-05Chapman, Ross E Esq QUALIFIED27Ivan Magalhaes
1046Cody G BriddickRussia2026-07-10Chemel, James L Cpa NEGOTIATION63Ioni Bowcher
1047Antonio X WaycottCanada2026-06-21Dorl, James J Esq PROPOSAL10Ioni Bowcher
1048Kadeem E GauchoCanada2026-06-22Chanay, Jeffrey A Esq QUALIFIED89Bernardo Dominic
1049Antonio S GauchoJapan2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED32Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Stacey Y AmigonIndiaAsiya Javayant RENEWAL
Francesco J AmigonGermanyStephen Shaw UNQUALIFIED
Smith P OldroydGermanyAsiya Javayant RENEWAL
Octavia I ChuiRussiaAmy Elsner NEGOTIATION
Maria I DoeArgentinaIoni Bowcher UNQUALIFIED
Jefferson U FollerRussiaStephen Shaw NEGOTIATION
Tony F PaprockiAustraliaAnna Fali RENEWAL
Juan X ChuiUnited KingdomIoni Bowcher RENEWAL
Cody T CaudyJapanOnyama Limba UNQUALIFIED
Jennifer B WaycottUnited KingdomAnna Fali RENEWAL
Clifford P StensethJapanAmy Elsner UNQUALIFIED
Isabel L TollnerSpainAsiya Javayant QUALIFIED
Rodrigues P StensethSpainElwin Sharvill PROPOSAL
Ashley J SergiJapanAsiya Javayant PROPOSAL
Izzy A ShinkoGermanyAnna Fali RENEWAL
Salvatore M GarufiArgentinaOnyama Limba QUALIFIED
Alejandro H WieserAustraliaStephen Shaw UNQUALIFIED
Tony D MacleadIndiaIvan Magalhaes NEGOTIATION
James X SchemmerSpainIoni Bowcher NEW
Octavia X IturbideUnited KingdomElwin Sharvill QUALIFIED
Adams Q BologniaItalyXuxue Feng NEW
Aika K NestleJapanAmy Elsner NEGOTIATION
Arvin T StensethIndiaXuxue Feng RENEWAL
Darci E BriddickBrazilElwin Sharvill PROPOSAL
Wickens W OstroskyArgentinaOnyama Limba NEW
James O IturbideBrazilOnyama Limba NEGOTIATION
Jennifer E DarakjyFranceIoni Bowcher QUALIFIED
Juan Q SergiGermanyXuxue Feng NEW
David T GarufiUnited KingdomOnyama Limba NEGOTIATION
James U RoysterBrazilXuxue Feng RENEWAL
Faith D WaycottBrazilIoni Bowcher RENEWAL
Ricardo J VenereIndiaBernardo Dominic QUALIFIED
Jefferson H DoeCanadaElwin Sharvill NEGOTIATION
Izzy G RimCanadaXuxue Feng NEGOTIATION
Izzy H WaycottIndiaXuxue Feng PROPOSAL
Cody T DarakjyUnited KingdomOnyama Limba NEGOTIATION
David D BologniaGermanyAsiya Javayant PROPOSAL
Maria B GlickUnited KingdomAsiya Javayant QUALIFIED
Johnson W PoquetteItalyAmy Elsner PROPOSAL
Silvio U SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Juan Z AmigonSpainXuxue Feng QUALIFIED
Francesco C FollerCanadaAnna Fali NEGOTIATION
Munro S OldroydRussiaOnyama Limba NEGOTIATION
James Y ShinkoGermanyXuxue Feng NEW
Leon R IturbideCanadaBernardo Dominic NEGOTIATION
Aruna T ButtItalyXuxue Feng UNQUALIFIED
Stacey A GillianGermanyXuxue Feng QUALIFIED
Morrow X ShinkoArgentinaBernardo Dominic RENEWAL
Chavez I MarrierJapanXuxue Feng RENEWAL
Costa B NickaUnited KingdomIoni Bowcher NEW
Frozen Columns
Name
Darci T Whobrey
Munro B Poquette
Wickens I Stenseth
Stacey N Foller
Stacey H Bolognia
Murillo B Nicka
Alejandro G Sergi
Arvin O Schemmer
Misaki U Darakjy
Aditya H Shinko
Leon R Gaucho
James O Nicka
Aruna M Rim
Maisha A Bolognia
Alejandro O Whobrey
Munro Y Inouye
Aruna B Bowley
Morrow O Malet
Wickens I Malet
Leja H Poquette
Misaki R Stenseth
Ashley M Nicka
Izzy S Shinko
Francesco Z Malet
Sinclair S Foller
Ashley Q Whobrey
Leon E Whobrey
Murillo L Caldarera
Jones N Figeroa
Aditya A Ruta
Clifford U Bowley
Greenwood X Saylors
Leon D Malet
Darci K Stockham
Jefferson D Figeroa
Jefferson D Schemmer
Silvio F Waycott
Aika B Caudy
Maisha A Amigon
Morrow W Morasca
Silvio R Whobrey
James C Flosi
Rodrigues A Tollner
Ivar E Perin
Munro D Rulapaugh
Kaitlin G Malet
Emily J Caudy
Jefferson B Stockham
Maria T Waycott
Munro A Dilliard
IdCountryDate
1000Australia2026-06-29
1001India2026-07-07
1002Russia2026-07-14
1003Canada2026-07-12
1004Spain2026-07-03
1005Spain2026-07-16
1006Argentina2026-07-11
1007France2026-06-28
1008Russia2026-06-20
1009United Kingdom2026-07-14
1010Brazil2026-06-23
1011Brazil2026-06-25
1012France2026-07-05
1013United Kingdom2026-06-24
1014Japan2026-07-03
1015Brazil2026-07-10
1016Canada2026-07-02
1017India2026-07-08
1018Germany2026-06-19
1019United Kingdom2026-07-16
1020Australia2026-07-03
1021Argentina2026-06-19
1022Australia2026-07-01
1023India2026-06-24
1024Canada2026-07-09
1025Australia2026-07-01
1026Argentina2026-06-19
1027Russia2026-06-28
1028Italy2026-06-25
1029Spain2026-07-03
1030Argentina2026-07-02
1031Canada2026-06-20
1032Spain2026-06-19
1033Canada2026-07-05
1034Russia2026-07-11
1035Canada2026-06-23
1036France2026-07-08
1037Argentina2026-07-09
1038Canada2026-07-14
1039Japan2026-07-13
1040Japan2026-07-13
1041Italy2026-07-05
1042United Kingdom2026-07-01
1043Russia2026-07-09
1044Brazil2026-06-18
1045India2026-06-19
1046France2026-07-11
1047Japan2026-06-21
1048Russia2026-06-20
1049Brazil2026-07-13

On-Demand Data

NameIdCountryDate
Ricardo H Tollner1000Brazil2026-06-18
Jones T Venere1001Canada2026-06-27
Deepesh X Flosi1002France2026-07-14
Deepesh F Stockham1003India2026-07-03
Kaitlin S Rulapaugh1004France2026-07-13
Morrow L Darakjy1005Brazil2026-06-25
Tony S Gaucho1006Germany2026-06-23
Wickens F Gaucho1007Canada2026-06-18
Leja Z Kolmetz1008Canada2026-06-25
Munro F Tollner1009Italy2026-06-23
Julie M Nicka1010France2026-07-14
Morrow Y Morasca1011Brazil2026-07-13
Kaitlin P Stenseth1012Brazil2026-07-11
Faith T Figeroa1013Japan2026-07-13
Izzy W Doe1014Germany2026-07-09
Mayumi C Amigon1015Russia2026-06-25
Silvio D Dilliard1016United Kingdom2026-07-08
Claire F Tollner1017Canada2026-07-12
Cody N Tollner1018Argentina2026-06-25
Antonio J Vocelka1019Canada2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco T FigeroaAustraliaBernardo Dominic PROPOSAL
Kadeem T CampainIndiaStephen Shaw UNQUALIFIED
Ivar G PerinItalyIoni Bowcher NEW
Kaitlin T FollerRussiaAmy Elsner PROPOSAL
Smith U FollerGermanyOnyama Limba NEGOTIATION
Alejandro C VocelkaAustraliaStephen Shaw UNQUALIFIED
Alejandro B ButtRussiaIvan Magalhaes PROPOSAL
Arvin B ShinkoIndiaStephen Shaw UNQUALIFIED
Isabel I MorascaIndiaAsiya Javayant UNQUALIFIED
Aika F FlosiRussiaAsiya Javayant PROPOSAL
Johnson O BowleyJapanStephen Shaw PROPOSAL
Francesco O GillianSpainXuxue Feng QUALIFIED
Sinclair W GlickArgentinaAnna Fali RENEWAL
Greenwood A FerenczFranceIvan Magalhaes NEGOTIATION
Darci L PaprockiItalyOnyama Limba QUALIFIED
Chavez T CaudyJapanElwin Sharvill NEGOTIATION
Clifford E PoquetteSpainAnna Fali NEW
Faith I AmigonIndiaElwin Sharvill NEGOTIATION
Alejandro G GarufiRussiaXuxue Feng RENEWAL
Aditya D InouyeCanadaStephen Shaw UNQUALIFIED
Izzy O BowleyIndiaAmy Elsner NEGOTIATION
Leja D GauchoItalyIvan Magalhaes NEW
Claire L RutaUnited KingdomAsiya Javayant NEW
Jefferson V VenereRussiaAsiya Javayant UNQUALIFIED
Alejandro L FigeroaIndiaIoni Bowcher RENEWAL
Aika E PerinCanadaAsiya Javayant UNQUALIFIED
Munro Q FerenczGermanyAmy Elsner QUALIFIED
Alejandro Z MaletIndiaBernardo Dominic RENEWAL
Juan V PaprockiItalyElwin Sharvill UNQUALIFIED
Maisha P StensethGermanyOnyama Limba UNQUALIFIED
Munro G WhobreyArgentinaIoni Bowcher UNQUALIFIED
Ashley B CaldareraIndiaBernardo Dominic NEGOTIATION
Silvio K RutaUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois W WieserSpainOnyama Limba PROPOSAL
Isabel J WaycottAustraliaAsiya Javayant NEW
Jefferson R WhobreyJapanAnna Fali QUALIFIED
Johnson S RimCanadaIvan Magalhaes QUALIFIED
Misaki E SlusarskiUnited KingdomAnna Fali QUALIFIED
Isabel F PaprockiItalyAmy Elsner RENEWAL
Jefferson O WhobreyGermanyXuxue Feng 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>