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
Julie B NestleFranceIvan Magalhaes RENEWAL
Kaitlin H VocelkaItalyIvan Magalhaes NEW
Mujtaba R OstroskyFranceIoni Bowcher PROPOSAL
Morrow R PerinUnited KingdomAmy Elsner NEGOTIATION
Greenwood L OldroydUnited KingdomAsiya Javayant RENEWAL
Maisha W FigeroaRussiaAnna Fali QUALIFIED
Francesco E GlickCanadaIvan Magalhaes RENEWAL
James A WieserIndiaOnyama Limba PROPOSAL
Greenwood V WaycottRussiaIvan Magalhaes NEW
James M ShinkoIndiaIvan Magalhaes NEGOTIATION
Deepesh E RutaItalyXuxue Feng RENEWAL
Adams W RulapaughUnited KingdomBernardo Dominic NEW
Salvatore B RutaGermanyIvan Magalhaes QUALIFIED
Morrow G OstroskyBrazilElwin Sharvill UNQUALIFIED
Munro N AlbaresSpainAnna Fali PROPOSAL
Jefferson Z CaldareraCanadaAmy Elsner QUALIFIED
Izzy Y MorascaItalyElwin Sharvill QUALIFIED
Silvio Q DoeUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues V SchemmerIndiaAnna Fali PROPOSAL
Leja W FigeroaUnited KingdomAmy Elsner NEW
Stacey A OldroydIndiaBernardo Dominic NEW
Mujtaba W KolmetzBrazilOnyama Limba RENEWAL
Jefferson V SergiAustraliaAnna Fali UNQUALIFIED
Silvio D AlbaresGermanyBernardo Dominic NEW
Ricardo K RimArgentinaIoni Bowcher PROPOSAL
Clifford S MorascaIndiaOnyama Limba PROPOSAL
Alejandro N SergiUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois D VenereFranceAnna Fali QUALIFIED
Izzy A MaletUnited KingdomAnna Fali NEW
Costa S SaylorsIndiaIvan Magalhaes NEGOTIATION
Clifford Y CaldareraUnited KingdomAnna Fali NEGOTIATION
Emily S BriddickArgentinaAnna Fali NEW
Misaki I WieserUnited KingdomIoni Bowcher NEW
Juan K AlbaresRussiaAsiya Javayant PROPOSAL
Wickens L MacleadBrazilIvan Magalhaes NEW
Izzy O GillianArgentinaOnyama Limba QUALIFIED
David Z ButtFranceIoni Bowcher PROPOSAL
Antonio V MacleadBrazilIvan Magalhaes NEW
Aika G StockhamBrazilAnna Fali UNQUALIFIED
Faith X MacleadSpainStephen Shaw PROPOSAL
Salvatore S DarakjySpainIoni Bowcher UNQUALIFIED
Aditya B MacleadFranceOnyama Limba UNQUALIFIED
Smith F MarrierSpainAnna Fali PROPOSAL
Adams T VenereCanadaXuxue Feng UNQUALIFIED
Cody Z RutaItalyAnna Fali NEW
Leon M GlickArgentinaAmy Elsner NEW
Aditya L SaylorsRussiaIvan Magalhaes RENEWAL
Ashley U GauchoJapanElwin Sharvill UNQUALIFIED
Leja G SchemmerFranceStephen Shaw PROPOSAL
Ashley V VenereJapanAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Smith O GillianGermanyIvan Magalhaes UNQUALIFIED
Kaitlin N DoeAustraliaAmy Elsner NEW
Leja K KolmetzArgentinaIvan Magalhaes NEW
Antonio K RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Claire Z VocelkaItalyAmy Elsner RENEWAL
Kaitlin U KolmetzRussiaOnyama Limba QUALIFIED
Stacey I CampainGermanyAsiya Javayant RENEWAL
Leja J BriddickRussiaXuxue Feng UNQUALIFIED
Deepesh I GlickItalyAsiya Javayant PROPOSAL
Murillo N BriddickFranceBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore R WaycottAustralia2026-08-02Rangoni Of Florence NEGOTIATION75Onyama Limba
1001Johnson S PerinIndia2026-07-25Chanay, Jeffrey A Esq NEGOTIATION71Stephen Shaw
1002Smith E TollnerRussia2026-07-21Printing Dimensions NEW65Anna Fali
1003Murillo I CaudyItaly2026-07-28Dorl, James J Esq NEW28Onyama Limba
1004Tony D VocelkaCanada2026-07-18Truhlar And Truhlar Attys UNQUALIFIED82Stephen Shaw
1005Sinclair X InouyeArgentina2026-08-07Feltz Printing Service PROPOSAL34Anna Fali
1006Isabel P ButtCanada2026-07-28Commercial Press PROPOSAL79Asiya Javayant
1007Clifford P VocelkaIndia2026-08-16Dorl, James J Esq QUALIFIED15Onyama Limba
1008Leon M MaletItaly2026-08-16Truhlar And Truhlar Attys NEGOTIATION39Asiya Javayant
1009Aruna O FlosiUnited Kingdom2026-08-01Commercial Press UNQUALIFIED16Asiya Javayant
1010Jeanfrancois X NickaItaly2026-08-14Dorl, James J Esq PROPOSAL45Anna Fali
1011Sinclair U AlbaresIndia2026-08-08Chanay, Jeffrey A Esq PROPOSAL54Ivan Magalhaes
1012Misaki H FollerBrazil2026-08-03Commercial Press NEGOTIATION15Elwin Sharvill
1013Aditya W FlosiRussia2026-07-20Chanay, Jeffrey A Esq NEW1Anna Fali
1014Jeanfrancois F AlbaresGermany2026-08-12Truhlar And Truhlar Attys NEGOTIATION48Onyama Limba
1015Clifford B ButtUnited Kingdom2026-07-27Chanay, Jeffrey A Esq NEGOTIATION55Ioni Bowcher
1016David E SergiFrance2026-07-26Printing Dimensions PROPOSAL67Stephen Shaw
1017Adams N SaylorsBrazil2026-08-14Buckley Miller Wright QUALIFIED20Anna Fali
1018Antonio O VocelkaArgentina2026-07-29Rousseaux, Michael Esq PROPOSAL17Xuxue Feng
1019Nicolas U VocelkaBrazil2026-07-30Benton, John B Jr UNQUALIFIED62Ivan Magalhaes
1020Munro P IturbideFrance2026-08-01King, Christopher A Esq PROPOSAL85Asiya Javayant
1021Silvio C GlickItaly2026-07-24Feltz Printing Service NEW15Anna Fali
1022Murillo W BriddickArgentina2026-07-22Chemel, James L Cpa NEW33Ioni Bowcher
1023Isabel X ChuiItaly2026-07-18Dorl, James J Esq NEGOTIATION22Anna Fali
1024Salvatore A NickaCanada2026-07-26Feiner Bros NEGOTIATION97Amy Elsner
1025Francesco Q CaudyJapan2026-08-11King, Christopher A Esq QUALIFIED87Asiya Javayant
1026Deepesh X BriddickAustralia2026-07-22King, Christopher A Esq UNQUALIFIED77Onyama Limba
1027Maisha V GillianItaly2026-07-25Feiner Bros NEGOTIATION67Xuxue Feng
1028Aruna M BowleyBrazil2026-08-08Chemel, James L Cpa UNQUALIFIED94Stephen Shaw
1029Jefferson A CampainIndia2026-07-23Morlong Associates UNQUALIFIED17Elwin Sharvill
1030Kaitlin F ButtArgentina2026-08-10Printing Dimensions RENEWAL74Elwin Sharvill
1031Octavia N AmigonUnited Kingdom2026-07-22Chapman, Ross E Esq UNQUALIFIED92Elwin Sharvill
1032Juan W NickaGermany2026-07-29Chemel, James L Cpa PROPOSAL3Amy Elsner
1033Smith K PaprockiSpain2026-07-21Chanay, Jeffrey A Esq NEW5Ioni Bowcher
1034Aika W SaylorsGermany2026-07-18Truhlar And Truhlar Attys UNQUALIFIED66Xuxue Feng
1035Faith Z StensethCanada2026-08-03Chanay, Jeffrey A Esq UNQUALIFIED64Ivan Magalhaes
1036Misaki Y PaprockiArgentina2026-08-10Truhlar And Truhlar Attys UNQUALIFIED48Amy Elsner
1037Maisha R BriddickIndia2026-07-18Commercial Press NEGOTIATION37Xuxue Feng
1038Mayumi K RoysterAustralia2026-08-07King, Christopher A Esq UNQUALIFIED23Xuxue Feng
1039Julie R DilliardBrazil2026-07-27Printing Dimensions UNQUALIFIED15Onyama Limba
1040Wickens L GarufiAustralia2026-08-12King, Christopher A Esq QUALIFIED44Xuxue Feng
1041Tony D FigeroaRussia2026-08-09King, Christopher A Esq UNQUALIFIED39Ivan Magalhaes
1042Ashley R NestleRussia2026-08-04Commercial Press RENEWAL79Elwin Sharvill
1043Murillo I VocelkaAustralia2026-07-31Rangoni Of Florence NEW77Ioni Bowcher
1044Aditya F WaycottIndia2026-08-13Chanay, Jeffrey A Esq NEGOTIATION58Stephen Shaw
1045Francesco N AlbaresUnited Kingdom2026-08-05Feltz Printing Service NEW45Xuxue Feng
1046Johnson T DilliardGermany2026-08-07Chemel, James L Cpa QUALIFIED67Elwin Sharvill
1047Jennifer P DilliardItaly2026-07-31King, Christopher A Esq QUALIFIED44Bernardo Dominic
1048Sinclair L SlusarskiJapan2026-08-16Printing Dimensions UNQUALIFIED18Ioni Bowcher
1049Aika U VenereUnited Kingdom2026-07-31Truhlar And Truhlar Attys QUALIFIED34Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas D MarrierBrazilStephen Shaw PROPOSAL
Mayumi H InouyeUnited KingdomAnna Fali UNQUALIFIED
Octavia J DoeUnited KingdomElwin Sharvill QUALIFIED
Faith F CaudyGermanyAmy Elsner NEGOTIATION
David Q SlusarskiFranceBernardo Dominic NEW
Munro X OstroskyRussiaXuxue Feng PROPOSAL
Ivar U FerenczFranceAmy Elsner NEGOTIATION
Jennifer E MaletArgentinaAnna Fali NEW
Aditya X WaycottBrazilBernardo Dominic NEW
Julie K DilliardArgentinaIvan Magalhaes NEW
Smith H SlusarskiJapanStephen Shaw NEGOTIATION
Octavia V MorascaIndiaBernardo Dominic RENEWAL
Tony L AmigonBrazilElwin Sharvill PROPOSAL
Antonio C CampainCanadaAsiya Javayant NEGOTIATION
Maisha J RulapaughAustraliaOnyama Limba UNQUALIFIED
Stacey B MorascaUnited KingdomOnyama Limba QUALIFIED
Mayumi M AmigonUnited KingdomXuxue Feng NEGOTIATION
Stacey R BologniaItalyIvan Magalhaes QUALIFIED
Jefferson G KuskoRussiaBernardo Dominic RENEWAL
Jones F ChuiBrazilIvan Magalhaes NEGOTIATION
Johnson T BowleySpainAsiya Javayant UNQUALIFIED
Stacey L CaudyAustraliaStephen Shaw RENEWAL
Maria Z GauchoBrazilElwin Sharvill NEGOTIATION
Isabel J RoysterUnited KingdomBernardo Dominic NEW
Adams N OstroskyGermanyIoni Bowcher NEW
Arvin X BowleyGermanyOnyama Limba QUALIFIED
Aditya N CampainFranceOnyama Limba UNQUALIFIED
Cody U DoeIndiaIoni Bowcher NEGOTIATION
Johnson Z AlbaresGermanyAmy Elsner PROPOSAL
David X VenereRussiaAmy Elsner NEGOTIATION
Darci B AlbaresUnited KingdomBernardo Dominic NEW
Ivar J IturbideGermanyIoni Bowcher RENEWAL
Antonio L CaldareraGermanyAsiya Javayant UNQUALIFIED
Leja B MaletCanadaXuxue Feng QUALIFIED
Julie R DoeJapanIoni Bowcher PROPOSAL
Jennifer P MorascaBrazilBernardo Dominic QUALIFIED
Johnson Y WaycottArgentinaElwin Sharvill QUALIFIED
Leon Z WaycottCanadaAnna Fali NEGOTIATION
Maria R OstroskyGermanyIoni Bowcher NEGOTIATION
Morrow D BologniaGermanyOnyama Limba RENEWAL
Chavez X BriddickGermanyAnna Fali NEW
Maria N PoquetteCanadaIoni Bowcher NEW
Antonio B GauchoUnited KingdomStephen Shaw RENEWAL
Leja M CampainUnited KingdomAmy Elsner QUALIFIED
Aditya E RutaCanadaBernardo Dominic NEGOTIATION
Deepesh P WaycottArgentinaOnyama Limba NEGOTIATION
Jennifer S ShinkoCanadaOnyama Limba QUALIFIED
Mujtaba T NestleRussiaStephen Shaw QUALIFIED
Emily I GlickItalyOnyama Limba RENEWAL
Maria R MorascaUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Jennifer O Albares
Leon V Malet
James A Oldroyd
Darci L Perin
Sinclair L Paprocki
Tony E Venere
Kaitlin E Maclead
Jefferson U Kolmetz
Jeanfrancois N Shinko
Salvatore F Gillian
Smith E Figeroa
Johnson H Ruta
Sinclair L Royster
Chavez D Stockham
Francesco U Albares
Izzy W Caldarera
Ivar Y Amigon
Tony M Albares
Wickens M Caldarera
Murillo F Royster
Murillo W Nicka
Faith S Caudy
Faith O Caudy
Sinclair M Foller
Izzy K Doe
Mayumi U Venere
Antonio T Paprocki
Greenwood E Kusko
Leja R Shinko
James H Dilliard
Ricardo D Inouye
Mayumi E Shinko
Leon J Marrier
Tony L Paprocki
Morrow U Tollner
Arvin O Royster
Isabel H Sergi
Jeanfrancois Q Darakjy
Jeanfrancois X Sergi
Emily V Inouye
Munro M Morasca
James Q Stenseth
Rodrigues U Vocelka
Aditya U Oldroyd
Izzy E Waycott
Murillo T Inouye
Mayumi H Royster
Clifford A Nestle
Leon U Whobrey
Cody N Glick
IdCountryDate
1000Japan2026-08-03
1001Spain2026-08-06
1002Germany2026-08-09
1003Australia2026-07-23
1004Italy2026-08-03
1005India2026-07-19
1006United Kingdom2026-08-06
1007India2026-08-07
1008Russia2026-08-16
1009United Kingdom2026-07-20
1010Australia2026-07-27
1011Italy2026-08-11
1012Argentina2026-07-30
1013France2026-07-23
1014Brazil2026-07-26
1015India2026-07-30
1016Brazil2026-07-25
1017Japan2026-08-10
1018Japan2026-07-26
1019Japan2026-08-10
1020Canada2026-07-19
1021Canada2026-07-21
1022France2026-08-10
1023United Kingdom2026-07-25
1024Argentina2026-08-13
1025Australia2026-08-13
1026Brazil2026-08-14
1027Germany2026-07-20
1028Brazil2026-08-08
1029Argentina2026-07-20
1030United Kingdom2026-08-13
1031Argentina2026-08-04
1032Russia2026-07-27
1033United Kingdom2026-08-07
1034Germany2026-08-01
1035Japan2026-08-09
1036India2026-07-25
1037Japan2026-07-27
1038United Kingdom2026-08-01
1039Russia2026-07-31
1040India2026-07-23
1041Italy2026-07-31
1042Germany2026-07-18
1043Argentina2026-07-23
1044India2026-07-23
1045United Kingdom2026-08-02
1046Spain2026-08-06
1047Spain2026-08-03
1048India2026-08-06
1049United Kingdom2026-08-04

On-Demand Data

NameIdCountryDate
Claire X Rim1000Brazil2026-07-29
Sinclair Y Ruta1001Japan2026-08-15
Antonio X Albares1002Argentina2026-08-08
Mujtaba V Glick1003Russia2026-07-29
Ivar J Stenseth1004Canada2026-08-07
Ricardo Z Foller1005Brazil2026-07-23
Costa V Bolognia1006Japan2026-07-19
Silvio Z Albares1007Spain2026-07-22
Aika F Figeroa1008India2026-08-04
Costa H Foller1009Australia2026-08-16
Kaitlin C Kolmetz1010Russia2026-08-14
Munro R Flosi1011Brazil2026-08-06
Greenwood Q Slusarski1012France2026-07-20
Cody L Schemmer1013Russia2026-08-09
Jeanfrancois X Garufi1014Italy2026-08-16
Claire E Ostrosky1015United Kingdom2026-08-15
Costa H Malet1016Argentina2026-08-16
Jones E Campain1017Canada2026-08-09
Ricardo Z Malet1018Argentina2026-07-29
Tony A Darakjy1019India2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith W BriddickGermanyElwin Sharvill QUALIFIED
Munro F VenereCanadaOnyama Limba NEGOTIATION
Arvin Z DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Juan L WaycottIndiaAsiya Javayant QUALIFIED
Ricardo T RutaJapanElwin Sharvill QUALIFIED
Misaki R RoysterAustraliaIvan Magalhaes PROPOSAL
Murillo W FerenczAustraliaAnna Fali NEW
Chavez B KolmetzCanadaIoni Bowcher NEW
Ricardo Q NickaArgentinaBernardo Dominic NEGOTIATION
Kadeem I FerenczItalyXuxue Feng NEGOTIATION
Arvin Z DilliardIndiaIoni Bowcher NEGOTIATION
Munro T FlosiUnited KingdomOnyama Limba NEW
Nicolas K SlusarskiUnited KingdomElwin Sharvill UNQUALIFIED
Clifford U GlickFranceIoni Bowcher QUALIFIED
Kaitlin Z AmigonAustraliaOnyama Limba NEW
Misaki I NickaAustraliaStephen Shaw NEW
Aruna R AmigonGermanyIvan Magalhaes NEGOTIATION
Maisha E AmigonArgentinaXuxue Feng NEW
Deepesh Q SlusarskiGermanyElwin Sharvill RENEWAL
Mujtaba L RutaIndiaIvan Magalhaes NEW
Francesco S MacleadArgentinaOnyama Limba RENEWAL
Julie X DoeBrazilStephen Shaw NEW
Kadeem X FerenczFranceOnyama Limba NEGOTIATION
Francesco C FigeroaCanadaElwin Sharvill RENEWAL
Clifford V KuskoSpainStephen Shaw QUALIFIED
Sinclair T SchemmerGermanyAnna Fali QUALIFIED
Alejandro K SaylorsIndiaElwin Sharvill QUALIFIED
Clifford Z RoysterArgentinaIvan Magalhaes UNQUALIFIED
Misaki Z GlickBrazilXuxue Feng NEW
Kadeem G FlosiCanadaXuxue Feng QUALIFIED
Octavia Z VocelkaSpainBernardo Dominic NEGOTIATION
Octavia U StockhamIndiaAsiya Javayant NEW
Deepesh U OldroydArgentinaBernardo Dominic QUALIFIED
Deepesh P KolmetzGermanyIvan Magalhaes NEW
Morrow M BowleyItalyElwin Sharvill QUALIFIED
Wickens R ButtUnited KingdomIvan Magalhaes RENEWAL
Deepesh G RutaFranceStephen Shaw PROPOSAL
Clifford W GauchoIndiaXuxue Feng UNQUALIFIED
Rodrigues B CampainRussiaBernardo Dominic UNQUALIFIED
Smith D InouyeSpainStephen Shaw 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>