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
Emily F StockhamCanadaOnyama Limba QUALIFIED
Cody L GlickArgentinaAnna Fali UNQUALIFIED
Misaki E MaletUnited KingdomIoni Bowcher RENEWAL
Nicolas O DilliardItalyBernardo Dominic RENEWAL
Leon Q MarrierJapanElwin Sharvill UNQUALIFIED
Jeanfrancois C WaycottSpainIvan Magalhaes QUALIFIED
Salvatore C GlickArgentinaOnyama Limba UNQUALIFIED
Kadeem G GauchoFranceIvan Magalhaes RENEWAL
Kaitlin V BologniaSpainAsiya Javayant NEW
Tony R MarrierFranceXuxue Feng PROPOSAL
Rodrigues N MacleadIndiaAmy Elsner PROPOSAL
Jeanfrancois A GlickAustraliaBernardo Dominic NEGOTIATION
Maisha O DarakjyCanadaIvan Magalhaes UNQUALIFIED
Maria J FigeroaGermanyAnna Fali NEW
Smith R CaldareraBrazilAsiya Javayant UNQUALIFIED
Aditya X PaprockiArgentinaIoni Bowcher QUALIFIED
Darci L DarakjyBrazilStephen Shaw RENEWAL
Francesco F ChuiUnited KingdomBernardo Dominic RENEWAL
Darci H MarrierCanadaIvan Magalhaes NEW
Arvin V CampainIndiaElwin Sharvill QUALIFIED
Johnson C BowleyAustraliaOnyama Limba PROPOSAL
Maisha H WhobreyIndiaAnna Fali NEGOTIATION
Antonio A BologniaFranceAnna Fali PROPOSAL
Claire S RutaBrazilIvan Magalhaes PROPOSAL
Nicolas K WieserIndiaElwin Sharvill PROPOSAL
Mayumi S PaprockiItalyXuxue Feng RENEWAL
Kadeem R AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Jeanfrancois R MorascaItalyStephen Shaw UNQUALIFIED
Murillo J GillianIndiaIvan Magalhaes UNQUALIFIED
Nicolas F ChuiSpainIoni Bowcher RENEWAL
Kadeem K IturbideIndiaIoni Bowcher PROPOSAL
Kaitlin O WaycottAustraliaAmy Elsner RENEWAL
Alejandro I SaylorsJapanElwin Sharvill RENEWAL
Leja A NestleJapanAnna Fali PROPOSAL
Clifford Q RimCanadaOnyama Limba NEGOTIATION
Stacey E NickaSpainAmy Elsner NEGOTIATION
Leja S RulapaughBrazilIvan Magalhaes PROPOSAL
Izzy C RimRussiaAmy Elsner QUALIFIED
Jefferson J VenereSpainAsiya Javayant NEGOTIATION
James I DarakjyAustraliaAsiya Javayant QUALIFIED
Leja Q GauchoIndiaOnyama Limba NEGOTIATION
Aditya M RutaRussiaElwin Sharvill RENEWAL
Ashley U DarakjySpainElwin Sharvill NEGOTIATION
Misaki K RutaGermanyAsiya Javayant UNQUALIFIED
Greenwood X FigeroaSpainAsiya Javayant PROPOSAL
Tony L BowleySpainAnna Fali NEW
Salvatore Z MacleadIndiaElwin Sharvill NEW
David N MorascaItalyAsiya Javayant NEW
Morrow H IturbideCanadaStephen Shaw RENEWAL
Isabel R StensethIndiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin T MacleadUnited KingdomIoni Bowcher NEW
Maria C OstroskyArgentinaXuxue Feng QUALIFIED
Jennifer T SaylorsAustraliaIoni Bowcher PROPOSAL
Jefferson S CaldareraArgentinaAnna Fali NEW
Munro L ChuiAustraliaIoni Bowcher UNQUALIFIED
Adams W FollerCanadaXuxue Feng NEW
Claire W CaldareraJapanAsiya Javayant QUALIFIED
Ricardo Q KuskoRussiaAsiya Javayant RENEWAL
Wickens X VenereFranceAmy Elsner RENEWAL
Claire C OstroskyJapanIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio K TollnerUnited Kingdom2026-08-04Dorl, James J Esq UNQUALIFIED6Anna Fali
1001Ivar R PerinIndia2026-07-17Truhlar And Truhlar Attys UNQUALIFIED47Onyama Limba
1002Emily G KolmetzFrance2026-07-29Printing Dimensions UNQUALIFIED49Amy Elsner
1003Julie E StockhamItaly2026-07-20Printing Dimensions RENEWAL38Amy Elsner
1004Antonio A StockhamBrazil2026-07-06Benton, John B Jr UNQUALIFIED3Stephen Shaw
1005Salvatore Q RulapaughGermany2026-07-29Chemel, James L Cpa NEW78Stephen Shaw
1006Murillo R SlusarskiFrance2026-07-09Chemel, James L Cpa UNQUALIFIED98Asiya Javayant
1007Aditya Y KolmetzGermany2026-07-16Feltz Printing Service UNQUALIFIED32Onyama Limba
1008Maria V StockhamGermany2026-07-19Rousseaux, Michael Esq UNQUALIFIED48Bernardo Dominic
1009Costa R StensethBrazil2026-07-09Commercial Press QUALIFIED56Bernardo Dominic
1010Aika X ChuiItaly2026-07-24Chemel, James L Cpa NEW57Bernardo Dominic
1011Isabel V GlickArgentina2026-07-25Feltz Printing Service NEGOTIATION10Ivan Magalhaes
1012Ashley V SaylorsSpain2026-07-25Printing Dimensions RENEWAL11Anna Fali
1013Kaitlin X StensethGermany2026-07-31King, Christopher A Esq RENEWAL79Ivan Magalhaes
1014Jefferson H GlickArgentina2026-07-18Chanay, Jeffrey A Esq NEGOTIATION93Elwin Sharvill
1015Claire W BowleyItaly2026-07-24Morlong Associates UNQUALIFIED87Elwin Sharvill
1016Faith B ButtRussia2026-08-04Feiner Bros UNQUALIFIED69Stephen Shaw
1017Leja O FlosiIndia2026-08-03Truhlar And Truhlar Attys NEW79Ioni Bowcher
1018Jefferson J AlbaresItaly2026-07-19Morlong Associates NEGOTIATION12Elwin Sharvill
1019Smith S StensethCanada2026-07-19Chanay, Jeffrey A Esq PROPOSAL87Onyama Limba
1020Sinclair B KolmetzFrance2026-07-26Dorl, James J Esq NEGOTIATION64Ioni Bowcher
1021Stacey O BriddickGermany2026-08-01Dorl, James J Esq NEW71Bernardo Dominic
1022Ivar B AmigonIndia2026-07-08Chapman, Ross E Esq PROPOSAL26Asiya Javayant
1023Jennifer L SergiUnited Kingdom2026-07-21Truhlar And Truhlar Attys PROPOSAL77Stephen Shaw
1024Isabel O NestleIndia2026-07-26Chemel, James L Cpa NEW82Ivan Magalhaes
1025Stacey A PaprockiJapan2026-07-21Buckley Miller Wright RENEWAL21Bernardo Dominic
1026Deepesh L VocelkaIndia2026-08-02Rousseaux, Michael Esq NEGOTIATION28Elwin Sharvill
1027Nicolas B BowleyRussia2026-07-20Truhlar And Truhlar Attys PROPOSAL34Ioni Bowcher
1028Murillo A WhobreyIndia2026-07-17Feiner Bros NEGOTIATION50Amy Elsner
1029Tony Y MarrierJapan2026-07-28Chapman, Ross E Esq UNQUALIFIED82Onyama Limba
1030Jennifer V RoysterUnited Kingdom2026-07-10Chanay, Jeffrey A Esq QUALIFIED45Bernardo Dominic
1031Kaitlin P FerenczIndia2026-07-08Chemel, James L Cpa UNQUALIFIED56Amy Elsner
1032Alejandro Q PoquetteCanada2026-07-26Rangoni Of Florence NEW34Amy Elsner
1033Juan K OldroydSpain2026-07-07Rousseaux, Michael Esq NEW74Stephen Shaw
1034Salvatore L SlusarskiGermany2026-07-20Commercial Press UNQUALIFIED22Xuxue Feng
1035Greenwood N CaudyRussia2026-07-21Feltz Printing Service PROPOSAL68Onyama Limba
1036Isabel E CaudyUnited Kingdom2026-07-10Benton, John B Jr NEW36Onyama Limba
1037Darci I WieserUnited Kingdom2026-07-10Morlong Associates NEGOTIATION49Ioni Bowcher
1038Rodrigues K KuskoFrance2026-07-08Chemel, James L Cpa RENEWAL97Asiya Javayant
1039Kaitlin D RimArgentina2026-07-26Feltz Printing Service RENEWAL89Ivan Magalhaes
1040Morrow Z SergiCanada2026-07-15King, Christopher A Esq PROPOSAL6Asiya Javayant
1041Leja M SchemmerAustralia2026-07-21Rangoni Of Florence NEGOTIATION87Onyama Limba
1042Misaki D BowleyIndia2026-07-21Chanay, Jeffrey A Esq PROPOSAL92Xuxue Feng
1043Nicolas T PaprockiArgentina2026-08-01Benton, John B Jr QUALIFIED23Xuxue Feng
1044Misaki I FollerJapan2026-07-22Chapman, Ross E Esq NEGOTIATION48Xuxue Feng
1045Ashley H VocelkaAustralia2026-07-11Morlong Associates NEGOTIATION70Bernardo Dominic
1046Mujtaba P GillianJapan2026-07-17Rangoni Of Florence QUALIFIED54Amy Elsner
1047Rodrigues W AlbaresUnited Kingdom2026-07-26Feiner Bros QUALIFIED86Elwin Sharvill
1048Aika V NickaRussia2026-07-26Rousseaux, Michael Esq NEW64Xuxue Feng
1049David Z VenereBrazil2026-07-28Printing Dimensions NEGOTIATION24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Izzy F CampainAustraliaElwin Sharvill NEGOTIATION
Wickens X ShinkoGermanyXuxue Feng NEGOTIATION
Smith O ChuiAustraliaStephen Shaw QUALIFIED
Aika Y SchemmerFranceAmy Elsner NEW
Mujtaba F CaldareraRussiaAmy Elsner RENEWAL
Francesco O RoysterGermanyAmy Elsner UNQUALIFIED
Kadeem C SergiUnited KingdomOnyama Limba PROPOSAL
Aditya B VocelkaArgentinaOnyama Limba PROPOSAL
Nicolas X BriddickGermanyIvan Magalhaes PROPOSAL
Adams U MacleadCanadaIvan Magalhaes QUALIFIED
Julie I BowleyJapanAmy Elsner NEW
Jefferson K WaycottAustraliaXuxue Feng QUALIFIED
James X CaudyFranceElwin Sharvill NEGOTIATION
Ivar K RutaCanadaBernardo Dominic PROPOSAL
Adams Q AlbaresRussiaIvan Magalhaes UNQUALIFIED
Leja L WaycottFranceXuxue Feng RENEWAL
Jeanfrancois O CampainUnited KingdomIoni Bowcher RENEWAL
James J DarakjySpainOnyama Limba RENEWAL
Sinclair U CaldareraIndiaElwin Sharvill RENEWAL
Darci H CaldareraAustraliaStephen Shaw RENEWAL
Tony V AmigonSpainAnna Fali PROPOSAL
Clifford B DoeRussiaAnna Fali PROPOSAL
Munro R WieserBrazilIvan Magalhaes QUALIFIED
Leja Z PoquetteBrazilElwin Sharvill UNQUALIFIED
Kadeem Y OldroydArgentinaElwin Sharvill NEW
Izzy Z MarrierGermanyOnyama Limba RENEWAL
Maisha H BologniaUnited KingdomOnyama Limba PROPOSAL
Leja G AmigonSpainBernardo Dominic PROPOSAL
Octavia F WhobreyAustraliaIoni Bowcher NEW
Maria Y RimAustraliaAnna Fali NEW
Jefferson I BriddickArgentinaOnyama Limba NEGOTIATION
Darci W SaylorsJapanBernardo Dominic QUALIFIED
Tony E StockhamRussiaStephen Shaw UNQUALIFIED
Tony J OstroskyBrazilAnna Fali NEW
Chavez O BowleyIndiaIvan Magalhaes UNQUALIFIED
Aditya R AlbaresIndiaIoni Bowcher RENEWAL
Darci R MaletGermanyOnyama Limba UNQUALIFIED
Octavia T FerenczFranceBernardo Dominic NEW
Izzy W StockhamArgentinaIoni Bowcher QUALIFIED
Octavia R OldroydArgentinaOnyama Limba NEGOTIATION
Maisha L KuskoGermanyOnyama Limba PROPOSAL
Julie X WaycottBrazilAsiya Javayant PROPOSAL
Juan X ChuiArgentinaXuxue Feng QUALIFIED
Salvatore W MorascaFranceOnyama Limba UNQUALIFIED
Octavia G AmigonSpainAnna Fali NEGOTIATION
Maisha W VenereRussiaStephen Shaw QUALIFIED
Leon J MarrierGermanyAnna Fali PROPOSAL
Deepesh T ShinkoRussiaAnna Fali PROPOSAL
Mayumi H SlusarskiJapanBernardo Dominic PROPOSAL
Antonio R NestleFranceAnna Fali QUALIFIED
Frozen Columns
Name
Kaitlin K Doe
Antonio K Rulapaugh
Isabel M Wieser
Ashley R Wieser
Jefferson V Venere
Isabel Q Paprocki
Greenwood T Stenseth
Cody P Royster
Smith P Morasca
Julie P Poquette
Greenwood H Rim
Cody V Sergi
Francesco F Malet
Aruna P Inouye
Alejandro C Darakjy
Ashley X Amigon
Leon B Paprocki
Murillo K Rim
James C Flosi
Misaki V Ferencz
Emily P Paprocki
Silvio A Oldroyd
Costa A Iturbide
Julie N Iturbide
Aditya U Figeroa
Munro N Briddick
Tony K Ferencz
Wickens R Flosi
David X Kolmetz
Greenwood W Darakjy
Johnson O Gillian
Aruna U Iturbide
Arvin N Briddick
Alejandro E Caudy
Deepesh C Iturbide
David S Oldroyd
Maisha L Shinko
Arvin Y Chui
Greenwood H Venere
Smith J Slusarski
Leon T Stenseth
Jennifer X Stockham
Silvio L Whobrey
Faith C Caudy
Misaki B Maclead
Salvatore A Amigon
Jeanfrancois Q Rim
Murillo O Marrier
Alejandro H Sergi
Izzy W Kusko
IdCountryDate
1000Germany2026-07-16
1001Brazil2026-07-24
1002Germany2026-07-10
1003France2026-07-08
1004Argentina2026-07-29
1005Australia2026-07-16
1006India2026-08-04
1007Russia2026-07-10
1008Canada2026-08-04
1009Spain2026-07-17
1010Germany2026-07-06
1011Italy2026-07-31
1012France2026-07-28
1013Canada2026-07-10
1014United Kingdom2026-07-12
1015Brazil2026-07-09
1016India2026-07-17
1017Germany2026-07-08
1018Russia2026-07-28
1019Spain2026-07-17
1020Germany2026-07-19
1021Spain2026-07-29
1022Australia2026-07-11
1023Australia2026-07-23
1024Argentina2026-07-23
1025Germany2026-07-20
1026Spain2026-08-01
1027Australia2026-07-13
1028France2026-07-08
1029Brazil2026-07-19
1030United Kingdom2026-08-03
1031Germany2026-08-01
1032Australia2026-07-19
1033Brazil2026-07-28
1034Australia2026-07-22
1035Germany2026-07-06
1036France2026-07-09
1037India2026-07-30
1038Canada2026-07-17
1039Germany2026-07-16
1040United Kingdom2026-07-16
1041India2026-07-26
1042Japan2026-07-11
1043Russia2026-07-23
1044United Kingdom2026-07-11
1045Canada2026-07-13
1046Russia2026-07-11
1047Japan2026-07-17
1048United Kingdom2026-07-22
1049India2026-08-03

On-Demand Data

NameIdCountryDate
Murillo O Paprocki1000Australia2026-07-07
Stacey U Nicka1001France2026-07-11
Darci R Foller1002Spain2026-07-14
Faith U Glick1003Italy2026-07-06
Aruna X Malet1004Italy2026-07-27
Kaitlin R Rulapaugh1005Spain2026-07-10
Julie L Perin1006India2026-07-31
Jennifer A Waycott1007Argentina2026-07-31
Ivar P Slusarski1008Australia2026-07-15
Ashley T Slusarski1009Australia2026-07-29
Antonio I Glick1010Argentina2026-07-29
Darci P Schemmer1011Japan2026-07-18
Salvatore Y Rulapaugh1012Australia2026-08-04
Tony U Garufi1013United Kingdom2026-07-21
Jefferson X Garufi1014Argentina2026-07-25
Kadeem H Caldarera1015United Kingdom2026-07-13
Munro L Poquette1016Russia2026-07-09
Kadeem Q Kolmetz1017France2026-07-30
Jones K Bolognia1018Brazil2026-07-12
Costa S Dilliard1019Brazil2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro B InouyeItalyXuxue Feng NEW
Stacey A RimUnited KingdomBernardo Dominic NEW
Kaitlin D SergiAustraliaIoni Bowcher NEW
Mayumi U GlickArgentinaStephen Shaw NEGOTIATION
Cody A VenereSpainAnna Fali UNQUALIFIED
Mujtaba G OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas E KuskoAustraliaAmy Elsner QUALIFIED
Misaki A BriddickIndiaStephen Shaw RENEWAL
Mujtaba I RimIndiaIoni Bowcher RENEWAL
Ricardo X RimSpainBernardo Dominic NEW
Murillo O DarakjyAustraliaBernardo Dominic NEW
Leon I RulapaughItalyIoni Bowcher QUALIFIED
Silvio Y DoeArgentinaXuxue Feng RENEWAL
Sinclair Q FollerItalyAmy Elsner RENEWAL
Mayumi W DoeUnited KingdomStephen Shaw PROPOSAL
Emily I WhobreyGermanyAsiya Javayant UNQUALIFIED
Morrow Z SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
Faith I DoeArgentinaIoni Bowcher NEW
Jefferson V GauchoArgentinaIoni Bowcher QUALIFIED
Mayumi P AmigonCanadaXuxue Feng UNQUALIFIED
Kaitlin I CaldareraSpainXuxue Feng NEGOTIATION
Jefferson R WieserBrazilIoni Bowcher NEGOTIATION
Alejandro R DilliardCanadaOnyama Limba PROPOSAL
Jeanfrancois Q KuskoItalyAmy Elsner PROPOSAL
Antonio X PoquetteSpainIoni Bowcher QUALIFIED
Julie S MarrierGermanyElwin Sharvill PROPOSAL
Cody J FerenczFranceIvan Magalhaes PROPOSAL
Claire H MorascaIndiaXuxue Feng NEW
Jennifer H IturbideFranceAsiya Javayant UNQUALIFIED
Munro Z KolmetzRussiaXuxue Feng PROPOSAL
Mujtaba H OldroydFranceOnyama Limba PROPOSAL
Munro U FlosiIndiaAmy Elsner NEGOTIATION
Darci N AmigonUnited KingdomOnyama Limba QUALIFIED
Arvin T NestleArgentinaOnyama Limba PROPOSAL
James A DilliardCanadaAmy Elsner UNQUALIFIED
Salvatore B CaldareraArgentinaBernardo Dominic QUALIFIED
Leon I SaylorsItalyElwin Sharvill QUALIFIED
Claire X PaprockiFranceOnyama Limba UNQUALIFIED
Ivar E DoeSpainIvan Magalhaes PROPOSAL
Costa K MacleadRussiaAsiya Javayant PROPOSAL

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