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 S BologniaUnited KingdomAmy Elsner QUALIFIED
Deepesh B FollerArgentinaBernardo Dominic RENEWAL
Jennifer X StensethItalyAsiya Javayant UNQUALIFIED
Juan D PerinJapanStephen Shaw NEGOTIATION
Jones I WaycottSpainIvan Magalhaes PROPOSAL
Sinclair K RimCanadaOnyama Limba NEGOTIATION
Mujtaba X SaylorsAustraliaAnna Fali NEW
Isabel V AmigonCanadaElwin Sharvill NEW
Salvatore L GlickRussiaXuxue Feng NEW
Clifford F MarrierItalyIvan Magalhaes QUALIFIED
Sinclair N PoquetteBrazilOnyama Limba RENEWAL
Kaitlin A ShinkoIndiaOnyama Limba QUALIFIED
Aika V BowleyFranceStephen Shaw QUALIFIED
Alejandro K GarufiUnited KingdomStephen Shaw QUALIFIED
Aditya S SchemmerSpainStephen Shaw NEGOTIATION
Nicolas W BologniaItalyAnna Fali NEW
Rodrigues O PoquetteJapanXuxue Feng RENEWAL
Kadeem D FlosiCanadaXuxue Feng NEGOTIATION
Stacey S RutaItalyAnna Fali NEGOTIATION
Misaki D VocelkaAustraliaBernardo Dominic PROPOSAL
Isabel O OstroskyBrazilIoni Bowcher PROPOSAL
Misaki P StockhamAustraliaIvan Magalhaes UNQUALIFIED
Jennifer X KolmetzItalyIvan Magalhaes PROPOSAL
Claire A NickaFranceAsiya Javayant RENEWAL
Jeanfrancois Z NickaArgentinaAnna Fali QUALIFIED
Ivar A RutaFranceBernardo Dominic PROPOSAL
Nicolas D RulapaughRussiaXuxue Feng PROPOSAL
Kadeem N GlickJapanIvan Magalhaes RENEWAL
Leon H NestleBrazilBernardo Dominic RENEWAL
Cody W FollerBrazilAnna Fali QUALIFIED
Costa Z GillianJapanIoni Bowcher UNQUALIFIED
Costa I PerinAustraliaXuxue Feng NEGOTIATION
Deepesh Z FlosiArgentinaAmy Elsner QUALIFIED
Kadeem O GauchoFranceAnna Fali NEGOTIATION
Arvin X WaycottFranceAsiya Javayant NEGOTIATION
Aruna N NickaBrazilBernardo Dominic RENEWAL
Alejandro V FerenczCanadaOnyama Limba PROPOSAL
Francesco O MaletFranceAmy Elsner NEW
Aika X ChuiFranceIvan Magalhaes NEW
Francesco L KolmetzItalyOnyama Limba UNQUALIFIED
Johnson T VocelkaCanadaElwin Sharvill NEW
Mayumi P IturbideArgentinaElwin Sharvill UNQUALIFIED
Rodrigues G VocelkaBrazilStephen Shaw UNQUALIFIED
Stacey I RimFranceBernardo Dominic UNQUALIFIED
Cody J OldroydCanadaAsiya Javayant UNQUALIFIED
Johnson K PoquetteRussiaIvan Magalhaes RENEWAL
Rodrigues V WieserJapanStephen Shaw PROPOSAL
Morrow S OstroskyUnited KingdomBernardo Dominic NEW
Greenwood Q WaycottRussiaIoni Bowcher NEGOTIATION
Silvio F BowleyGermanyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood B VenereJapanStephen Shaw QUALIFIED
Chavez U SergiBrazilIoni Bowcher NEGOTIATION
Ricardo I BologniaUnited KingdomBernardo Dominic QUALIFIED
Alejandro H BowleyCanadaOnyama Limba NEW
Aruna P AlbaresGermanyIoni Bowcher QUALIFIED
Morrow S FollerSpainStephen Shaw RENEWAL
Francesco U MacleadItalyIoni Bowcher NEW
Sinclair C GlickArgentinaAmy Elsner NEGOTIATION
Stacey T CaldareraIndiaStephen Shaw RENEWAL
Kadeem O KuskoIndiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie G GillianUnited Kingdom2026-07-21Truhlar And Truhlar Attys NEW41Elwin Sharvill
1001Jones P CaudyGermany2026-07-01Benton, John B Jr PROPOSAL55Ioni Bowcher
1002Nicolas V SlusarskiRussia2026-07-19Printing Dimensions RENEWAL43Anna Fali
1003Tony C ShinkoItaly2026-07-04Feiner Bros QUALIFIED7Ivan Magalhaes
1004Misaki P GarufiBrazil2026-07-14Benton, John B Jr UNQUALIFIED62Bernardo Dominic
1005Maisha R SergiSpain2026-07-06Commercial Press PROPOSAL1Anna Fali
1006Isabel V TollnerBrazil2026-06-23King, Christopher A Esq PROPOSAL0Ivan Magalhaes
1007Cody R ButtGermany2026-07-07Dorl, James J Esq PROPOSAL83Ivan Magalhaes
1008Jennifer U NestleJapan2026-07-12Truhlar And Truhlar Attys RENEWAL95Onyama Limba
1009Sinclair F FlosiBrazil2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED11Xuxue Feng
1010Rodrigues D RimItaly2026-07-08Feltz Printing Service NEW60Ivan Magalhaes
1011Aditya B ShinkoFrance2026-06-24Dorl, James J Esq NEW61Xuxue Feng
1012Jefferson R FerenczIndia2026-07-02Chemel, James L Cpa UNQUALIFIED26Asiya Javayant
1013Aditya B PoquetteFrance2026-07-01Printing Dimensions RENEWAL3Ioni Bowcher
1014Chavez N DarakjyArgentina2026-07-11Chemel, James L Cpa NEGOTIATION6Xuxue Feng
1015Arvin M FerenczSpain2026-07-01Benton, John B Jr NEGOTIATION58Anna Fali
1016Rodrigues T WhobreyArgentina2026-07-03Morlong Associates NEGOTIATION47Xuxue Feng
1017Cody B CampainGermany2026-07-10Commercial Press RENEWAL90Anna Fali
1018Aditya B VenereAustralia2026-07-19Rangoni Of Florence PROPOSAL96Stephen Shaw
1019Salvatore J TollnerJapan2026-07-06Chanay, Jeffrey A Esq RENEWAL28Amy Elsner
1020Morrow T DilliardJapan2026-06-24Rousseaux, Michael Esq QUALIFIED52Elwin Sharvill
1021Leon L WhobreyRussia2026-07-22Commercial Press NEW60Ioni Bowcher
1022Ricardo R AlbaresUnited Kingdom2026-07-14Morlong Associates RENEWAL79Onyama Limba
1023Aika B DoeIndia2026-07-15Printing Dimensions NEGOTIATION41Stephen Shaw
1024Emily X PoquetteIndia2026-07-05King, Christopher A Esq NEW29Bernardo Dominic
1025Rodrigues N ShinkoCanada2026-06-27Feltz Printing Service UNQUALIFIED77Amy Elsner
1026Ricardo I MarrierRussia2026-07-04Truhlar And Truhlar Attys RENEWAL64Xuxue Feng
1027Octavia B ChuiArgentina2026-07-09Feiner Bros PROPOSAL47Xuxue Feng
1028Claire Y CampainBrazil2026-07-06King, Christopher A Esq UNQUALIFIED72Onyama Limba
1029Maisha Q PoquetteBrazil2026-06-27Commercial Press NEGOTIATION51Asiya Javayant
1030Sinclair U PerinAustralia2026-07-21Chanay, Jeffrey A Esq RENEWAL9Xuxue Feng
1031David G SlusarskiJapan2026-07-03Dorl, James J Esq QUALIFIED60Xuxue Feng
1032Antonio M SergiArgentina2026-07-06Chapman, Ross E Esq NEGOTIATION71Onyama Limba
1033Tony Q DilliardSpain2026-06-30Feltz Printing Service PROPOSAL60Anna Fali
1034Alejandro A ButtBrazil2026-07-04Printing Dimensions QUALIFIED41Stephen Shaw
1035Chavez A BriddickAustralia2026-07-16Truhlar And Truhlar Attys UNQUALIFIED21Stephen Shaw
1036Maisha T MorascaFrance2026-07-04Chanay, Jeffrey A Esq PROPOSAL70Amy Elsner
1037Stacey F BriddickItaly2026-06-30Feltz Printing Service NEGOTIATION20Elwin Sharvill
1038Jefferson U BologniaRussia2026-06-23Dorl, James J Esq QUALIFIED30Amy Elsner
1039Aika K BowleyFrance2026-07-15Chemel, James L Cpa RENEWAL59Onyama Limba
1040Smith Y DilliardRussia2026-06-28Rangoni Of Florence QUALIFIED56Ivan Magalhaes
1041Morrow W RulapaughItaly2026-07-06Feiner Bros RENEWAL75Onyama Limba
1042Leja A StensethIndia2026-07-16Truhlar And Truhlar Attys UNQUALIFIED21Stephen Shaw
1043Darci L ChuiJapan2026-07-08Printing Dimensions NEGOTIATION29Amy Elsner
1044Ricardo B InouyeArgentina2026-07-19Printing Dimensions UNQUALIFIED19Ivan Magalhaes
1045Kaitlin T SaylorsJapan2026-07-05Truhlar And Truhlar Attys QUALIFIED68Anna Fali
1046Jeanfrancois C SergiJapan2026-06-29Rangoni Of Florence NEGOTIATION28Amy Elsner
1047Maria L KolmetzArgentina2026-07-10Dorl, James J Esq QUALIFIED94Ivan Magalhaes
1048Murillo M BologniaGermany2026-06-25Chapman, Ross E Esq RENEWAL99Stephen Shaw
1049Clifford D RoysterIndia2026-06-25Chapman, Ross E Esq NEGOTIATION29Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Maria H NickaIndiaIvan Magalhaes UNQUALIFIED
Aditya Y StensethArgentinaElwin Sharvill RENEWAL
Mujtaba Z DarakjyArgentinaIoni Bowcher QUALIFIED
Murillo G RutaRussiaOnyama Limba UNQUALIFIED
James A InouyeRussiaOnyama Limba PROPOSAL
Emily X ButtItalyAmy Elsner NEW
Juan L MaletBrazilElwin Sharvill NEGOTIATION
Silvio H PoquetteItalyAmy Elsner QUALIFIED
Sinclair S BologniaGermanyOnyama Limba PROPOSAL
Antonio M WhobreyUnited KingdomAmy Elsner QUALIFIED
Izzy Q TollnerUnited KingdomStephen Shaw RENEWAL
Claire A SlusarskiCanadaStephen Shaw NEGOTIATION
Morrow U WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Wickens J RimGermanyOnyama Limba UNQUALIFIED
Adams D SaylorsFranceElwin Sharvill PROPOSAL
Johnson C SlusarskiUnited KingdomOnyama Limba NEGOTIATION
James R NickaJapanIvan Magalhaes QUALIFIED
Chavez U PaprockiFranceElwin Sharvill UNQUALIFIED
Kadeem P FigeroaBrazilElwin Sharvill QUALIFIED
Jennifer N NickaUnited KingdomIvan Magalhaes NEGOTIATION
Antonio K GarufiJapanIoni Bowcher NEW
Nicolas U FollerItalyElwin Sharvill RENEWAL
Ricardo I BriddickGermanyAmy Elsner QUALIFIED
Isabel L TollnerAustraliaBernardo Dominic UNQUALIFIED
Faith R ChuiBrazilAmy Elsner UNQUALIFIED
Antonio P SergiRussiaXuxue Feng PROPOSAL
Smith E SlusarskiItalyAmy Elsner UNQUALIFIED
Isabel T NickaItalyAmy Elsner RENEWAL
Leja L FlosiSpainBernardo Dominic PROPOSAL
Costa O KolmetzIndiaIoni Bowcher NEGOTIATION
Greenwood X KolmetzArgentinaAmy Elsner RENEWAL
Cody Y AmigonSpainIvan Magalhaes QUALIFIED
Juan A PoquetteBrazilBernardo Dominic PROPOSAL
Izzy B CaldareraItalyIoni Bowcher RENEWAL
Leon K NestleBrazilIoni Bowcher NEGOTIATION
Alejandro G CaudySpainStephen Shaw NEGOTIATION
Tony D MaletAustraliaOnyama Limba NEGOTIATION
James A MorascaSpainIvan Magalhaes RENEWAL
Juan K DoeRussiaIvan Magalhaes QUALIFIED
Greenwood Z RutaSpainAmy Elsner RENEWAL
Murillo B VenereArgentinaIvan Magalhaes UNQUALIFIED
Salvatore R AlbaresIndiaIoni Bowcher UNQUALIFIED
Munro X SaylorsItalyAnna Fali UNQUALIFIED
Silvio A BriddickIndiaAnna Fali QUALIFIED
Munro V WaycottSpainAnna Fali NEGOTIATION
Emily R IturbideAustraliaAnna Fali NEGOTIATION
Sinclair T GauchoCanadaIoni Bowcher NEGOTIATION
Murillo M AlbaresArgentinaBernardo Dominic NEGOTIATION
Francesco X FollerItalyAmy Elsner NEGOTIATION
Silvio U FigeroaAustraliaAmy Elsner NEW
Frozen Columns
Name
Johnson E Caudy
Claire E Sergi
Stacey H Briddick
Adams W Vocelka
Izzy E Malet
Cody I Ostrosky
Jeanfrancois Z Stenseth
Aruna X Stockham
Ricardo O Ostrosky
Emily M Doe
Mayumi W Doe
Morrow M Nicka
Octavia W Slusarski
Munro T Schemmer
Johnson S Ostrosky
Leon H Flosi
Ivar Z Malet
Jeanfrancois I Chui
Jefferson K Shinko
Kadeem C Bowley
Munro V Nicka
Emily I Nicka
Costa Q Amigon
Mujtaba Y Butt
James Q Bowley
Octavia D Figeroa
Greenwood E Glick
Tony G Nicka
Ashley A Nestle
Darci T Wieser
Cody X Stockham
Julie C Tollner
Maria C Rulapaugh
Jefferson E Oldroyd
David D Foller
Adams G Venere
Nicolas O Venere
Octavia D Morasca
Rodrigues M Caudy
Maisha W Shinko
Ashley T Kolmetz
Aruna C Marrier
Smith F Sergi
Smith H Campain
Morrow N Marrier
Leon Z Stockham
Jones L Albares
Murillo F Iturbide
David A Gillian
Tony L Malet
IdCountryDate
1000United Kingdom2026-07-01
1001Brazil2026-06-23
1002Russia2026-07-15
1003Japan2026-07-08
1004Brazil2026-07-03
1005Japan2026-07-21
1006Brazil2026-07-01
1007United Kingdom2026-06-30
1008Argentina2026-07-16
1009Argentina2026-07-18
1010United Kingdom2026-07-02
1011Australia2026-07-08
1012Australia2026-07-13
1013Russia2026-07-20
1014United Kingdom2026-07-16
1015Russia2026-07-22
1016Germany2026-07-04
1017Australia2026-06-24
1018Australia2026-07-09
1019Germany2026-07-22
1020Italy2026-07-20
1021India2026-07-06
1022Canada2026-07-16
1023Australia2026-07-15
1024Canada2026-07-16
1025Russia2026-07-17
1026Argentina2026-07-12
1027United Kingdom2026-06-25
1028Canada2026-07-17
1029Germany2026-07-15
1030Germany2026-07-03
1031Canada2026-06-27
1032Japan2026-07-22
1033Italy2026-07-07
1034Germany2026-07-02
1035Germany2026-07-12
1036Spain2026-07-08
1037United Kingdom2026-06-29
1038Argentina2026-06-24
1039France2026-07-19
1040Russia2026-07-20
1041United Kingdom2026-07-11
1042Japan2026-07-14
1043Japan2026-07-07
1044Japan2026-07-04
1045Germany2026-07-17
1046Brazil2026-07-22
1047Germany2026-07-06
1048Canada2026-07-06
1049United Kingdom2026-07-06

On-Demand Data

NameIdCountryDate
Octavia R Caldarera1000Canada2026-06-29
Ricardo M Dilliard1001United Kingdom2026-06-26
James Y Slusarski1002United Kingdom2026-07-21
Stacey T Morasca1003Germany2026-07-13
Sinclair J Ruta1004Canada2026-06-25
Johnson F Maclead1005Brazil2026-07-22
Emily S Waycott1006Spain2026-06-30
Emily W Iturbide1007Japan2026-07-19
Ricardo J Stenseth1008Germany2026-07-22
Ashley Z Gillian1009Russia2026-06-23
Faith V Campain1010Italy2026-06-28
Leja B Caudy1011Germany2026-07-19
Claire P Rim1012United Kingdom2026-07-17
Julie A Foller1013United Kingdom2026-07-09
Sinclair V Briddick1014Spain2026-06-27
Mayumi R Iturbide1015Italy2026-07-02
Munro S Stockham1016United Kingdom2026-07-06
Ashley S Foller1017France2026-07-07
Ivar V Caudy1018Russia2026-07-16
Cody P Malet1019Italy2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey U RutaUnited KingdomStephen Shaw NEW
Kaitlin J CaldareraAustraliaElwin Sharvill RENEWAL
Jennifer J RoysterBrazilXuxue Feng QUALIFIED
James B FlosiUnited KingdomAnna Fali UNQUALIFIED
Arvin Z SchemmerItalyIvan Magalhaes QUALIFIED
Ivar T GarufiRussiaAnna Fali NEGOTIATION
Juan P SaylorsItalyAnna Fali RENEWAL
Morrow N AlbaresBrazilBernardo Dominic NEW
Francesco Z GarufiArgentinaIoni Bowcher PROPOSAL
Kaitlin O FollerArgentinaAnna Fali NEGOTIATION
Leon J MarrierAustraliaIvan Magalhaes RENEWAL
Munro S PaprockiGermanyElwin Sharvill PROPOSAL
Stacey M ChuiItalyIvan Magalhaes UNQUALIFIED
Ivar G GillianIndiaIvan Magalhaes RENEWAL
Leon Y WaycottIndiaAmy Elsner PROPOSAL
Kaitlin A FollerUnited KingdomOnyama Limba QUALIFIED
Antonio V SaylorsArgentinaIoni Bowcher NEGOTIATION
Jefferson V OldroydArgentinaIvan Magalhaes PROPOSAL
Maria S DilliardFranceIoni Bowcher QUALIFIED
Deepesh L PerinJapanAsiya Javayant NEGOTIATION
Aika K DoeGermanyAsiya Javayant NEGOTIATION
Chavez J VocelkaIndiaXuxue Feng NEGOTIATION
Sinclair K CampainArgentinaOnyama Limba RENEWAL
Arvin M RoysterArgentinaIoni Bowcher UNQUALIFIED
Aditya F GillianRussiaBernardo Dominic PROPOSAL
Aruna D TollnerFranceAnna Fali NEGOTIATION
Jeanfrancois L WaycottBrazilAnna Fali QUALIFIED
Tony V MarrierCanadaStephen Shaw QUALIFIED
Emily R IturbideItalyIoni Bowcher UNQUALIFIED
Sinclair K InouyeUnited KingdomAmy Elsner QUALIFIED
Kaitlin H RimAustraliaXuxue Feng QUALIFIED
Nicolas R InouyeGermanyOnyama Limba RENEWAL
Alejandro F StockhamUnited KingdomXuxue Feng NEW
Alejandro H NickaSpainXuxue Feng NEW
Leja J AlbaresItalyAmy Elsner QUALIFIED
Leja H MacleadUnited KingdomStephen Shaw UNQUALIFIED
Antonio R StockhamSpainStephen Shaw PROPOSAL
Darci A OstroskyIndiaXuxue Feng RENEWAL
Wickens S OldroydBrazilOnyama Limba RENEWAL
Munro W BriddickSpainOnyama Limba 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>