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
Antonio I OldroydFranceAnna Fali UNQUALIFIED
James P MarrierRussiaElwin Sharvill RENEWAL
Leon O RutaSpainIoni Bowcher PROPOSAL
Kadeem M TollnerBrazilElwin Sharvill RENEWAL
Octavia C FollerRussiaBernardo Dominic RENEWAL
Stacey Q ButtGermanyAmy Elsner UNQUALIFIED
Deepesh Y DarakjyCanadaStephen Shaw NEW
Cody Q TollnerAustraliaAnna Fali RENEWAL
Isabel V GarufiCanadaStephen Shaw RENEWAL
Juan X MarrierRussiaAnna Fali NEGOTIATION
Leon A OldroydJapanXuxue Feng NEGOTIATION
Murillo A RulapaughGermanyAsiya Javayant NEW
Kaitlin H SaylorsCanadaOnyama Limba UNQUALIFIED
Leon R KolmetzUnited KingdomIoni Bowcher QUALIFIED
Aika T WhobreySpainXuxue Feng QUALIFIED
Rodrigues U FollerSpainIvan Magalhaes QUALIFIED
Izzy B FollerRussiaElwin Sharvill UNQUALIFIED
Chavez R RimCanadaStephen Shaw RENEWAL
Munro N StockhamRussiaAnna Fali NEW
James D StockhamGermanyElwin Sharvill NEW
Maisha K CaldareraRussiaIoni Bowcher PROPOSAL
Aruna B AmigonRussiaElwin Sharvill NEW
Emily E GarufiUnited KingdomAsiya Javayant RENEWAL
Adams D RutaGermanyOnyama Limba NEW
Ashley G GlickAustraliaIoni Bowcher RENEWAL
Kadeem R GillianArgentinaIoni Bowcher QUALIFIED
Silvio G NestleRussiaElwin Sharvill NEGOTIATION
Adams K AmigonBrazilElwin Sharvill NEGOTIATION
Chavez B OstroskyAustraliaElwin Sharvill NEW
Isabel J StensethSpainIoni Bowcher NEGOTIATION
Rodrigues G OldroydJapanXuxue Feng PROPOSAL
Alejandro L RulapaughIndiaAmy Elsner RENEWAL
Ashley I WaycottArgentinaIoni Bowcher NEGOTIATION
Aika F OstroskySpainIvan Magalhaes PROPOSAL
Wickens I WieserAustraliaBernardo Dominic QUALIFIED
Stacey Z MorascaGermanyAmy Elsner QUALIFIED
Greenwood Z MorascaRussiaAmy Elsner NEW
Leon O SlusarskiJapanXuxue Feng NEGOTIATION
James W TollnerGermanyXuxue Feng PROPOSAL
Greenwood Y PerinCanadaXuxue Feng QUALIFIED
Ricardo V RimArgentinaIvan Magalhaes NEW
Mayumi Q AmigonArgentinaIoni Bowcher NEGOTIATION
Emily S GarufiItalyElwin Sharvill QUALIFIED
Aditya D WieserJapanIoni Bowcher PROPOSAL
Jefferson K BowleyFranceAnna Fali UNQUALIFIED
Ricardo F MorascaArgentinaAnna Fali QUALIFIED
Faith D RoysterAustraliaOnyama Limba NEW
Munro Z ShinkoAustraliaBernardo Dominic NEGOTIATION
Antonio R MaletFranceAsiya Javayant PROPOSAL
Tony Y AmigonItalyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer I BologniaJapanStephen Shaw QUALIFIED
Deepesh Y FollerItalyAsiya Javayant UNQUALIFIED
Adams P CampainSpainOnyama Limba NEGOTIATION
Deepesh U WieserGermanyStephen Shaw NEGOTIATION
Aika E DilliardIndiaXuxue Feng QUALIFIED
Rodrigues L SaylorsItalyAmy Elsner UNQUALIFIED
Antonio S FerenczJapanStephen Shaw PROPOSAL
Ricardo O MorascaAustraliaAsiya Javayant QUALIFIED
Ashley I BologniaCanadaOnyama Limba NEGOTIATION
Silvio M IturbideRussiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas W RimIndia2026-06-27Chemel, James L Cpa PROPOSAL9Ivan Magalhaes
1001Leja E BologniaIndia2026-06-25Chemel, James L Cpa NEGOTIATION76Ivan Magalhaes
1002Izzy Z ChuiUnited Kingdom2026-07-13Chapman, Ross E Esq RENEWAL71Onyama Limba
1003Munro T CaudyGermany2026-06-22Printing Dimensions NEW95Ioni Bowcher
1004Chavez Z FollerGermany2026-07-01Buckley Miller Wright UNQUALIFIED14Asiya Javayant
1005Mayumi J GarufiSpain2026-06-22Chapman, Ross E Esq UNQUALIFIED83Onyama Limba
1006Misaki F RutaJapan2026-06-29Dorl, James J Esq QUALIFIED74Amy Elsner
1007Julie I CaudyAustralia2026-06-26Buckley Miller Wright NEW99Elwin Sharvill
1008Alejandro R MarrierBrazil2026-07-10Feiner Bros NEGOTIATION63Amy Elsner
1009Jeanfrancois N DoeFrance2026-07-03Feiner Bros NEGOTIATION26Anna Fali
1010Octavia Y MaletFrance2026-06-23King, Christopher A Esq UNQUALIFIED34Bernardo Dominic
1011Jefferson G ButtRussia2026-07-15Buckley Miller Wright NEGOTIATION17Amy Elsner
1012Salvatore T FerenczSpain2026-06-23Buckley Miller Wright RENEWAL46Anna Fali
1013Morrow M MaletItaly2026-07-13Truhlar And Truhlar Attys NEW54Onyama Limba
1014Mujtaba Z SaylorsAustralia2026-07-11Chemel, James L Cpa QUALIFIED32Onyama Limba
1015Smith X MarrierCanada2026-06-26Feltz Printing Service RENEWAL3Amy Elsner
1016Francesco J OldroydArgentina2026-06-29Buckley Miller Wright PROPOSAL39Ivan Magalhaes
1017Ashley Z KolmetzJapan2026-07-05Rangoni Of Florence UNQUALIFIED12Bernardo Dominic
1018David V WhobreyJapan2026-07-03Feltz Printing Service NEW40Ivan Magalhaes
1019Misaki Y ButtItaly2026-06-25Chapman, Ross E Esq PROPOSAL72Anna Fali
1020Darci T GauchoAustralia2026-06-30Truhlar And Truhlar Attys PROPOSAL62Xuxue Feng
1021Munro F GillianJapan2026-07-02Printing Dimensions UNQUALIFIED79Asiya Javayant
1022Deepesh Y WhobreyItaly2026-07-14Dorl, James J Esq NEGOTIATION36Amy Elsner
1023James C InouyeItaly2026-06-26King, Christopher A Esq RENEWAL80Stephen Shaw
1024Sinclair K IturbideJapan2026-07-19Feltz Printing Service NEGOTIATION42Anna Fali
1025Chavez T FollerGermany2026-07-09Truhlar And Truhlar Attys RENEWAL73Ivan Magalhaes
1026Munro W VenereArgentina2026-07-12Feiner Bros RENEWAL19Ioni Bowcher
1027Darci D StockhamUnited Kingdom2026-06-22Feiner Bros PROPOSAL91Bernardo Dominic
1028Kadeem L StockhamCanada2026-07-03Morlong Associates NEW93Amy Elsner
1029Francesco F MarrierRussia2026-07-15Rangoni Of Florence PROPOSAL9Ivan Magalhaes
1030Claire L StockhamArgentina2026-06-26Feltz Printing Service RENEWAL5Stephen Shaw
1031Silvio D MaletUnited Kingdom2026-06-26King, Christopher A Esq PROPOSAL40Ivan Magalhaes
1032Aditya Y FollerIndia2026-07-02Chanay, Jeffrey A Esq NEW2Amy Elsner
1033Maria R GillianJapan2026-06-29Printing Dimensions PROPOSAL69Elwin Sharvill
1034Jennifer F VenereGermany2026-06-25Printing Dimensions NEW16Bernardo Dominic
1035Clifford L AmigonJapan2026-06-30Benton, John B Jr UNQUALIFIED59Asiya Javayant
1036Tony X MaletArgentina2026-07-13Buckley Miller Wright UNQUALIFIED62Elwin Sharvill
1037Stacey Z ButtUnited Kingdom2026-07-11Buckley Miller Wright RENEWAL14Bernardo Dominic
1038Stacey Y RulapaughIndia2026-06-27Rangoni Of Florence QUALIFIED82Ivan Magalhaes
1039Leon X WaycottJapan2026-07-09Benton, John B Jr NEGOTIATION61Ivan Magalhaes
1040Jeanfrancois T BriddickRussia2026-07-12Commercial Press UNQUALIFIED2Xuxue Feng
1041Ricardo K VenereAustralia2026-07-14Morlong Associates QUALIFIED81Elwin Sharvill
1042Murillo D GillianGermany2026-07-16Benton, John B Jr RENEWAL9Onyama Limba
1043Faith U MarrierGermany2026-06-22Rangoni Of Florence QUALIFIED40Ivan Magalhaes
1044Tony E VocelkaBrazil2026-07-21Rangoni Of Florence UNQUALIFIED39Asiya Javayant
1045Mayumi N NestleAustralia2026-06-28Morlong Associates PROPOSAL1Ivan Magalhaes
1046Clifford N PoquetteGermany2026-06-25Chanay, Jeffrey A Esq RENEWAL4Onyama Limba
1047Jefferson Y OldroydGermany2026-07-04Chapman, Ross E Esq QUALIFIED83Ioni Bowcher
1048Maisha H MaletFrance2026-07-14Feltz Printing Service NEW19Elwin Sharvill
1049Arvin F PerinSpain2026-07-16Buckley Miller Wright RENEWAL97Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar Y FigeroaUnited KingdomAsiya Javayant NEW
Leon B WaycottSpainOnyama Limba UNQUALIFIED
Johnson V InouyeCanadaOnyama Limba RENEWAL
Mayumi M FollerArgentinaElwin Sharvill PROPOSAL
Isabel A FlosiUnited KingdomAmy Elsner NEGOTIATION
Ivar B MarrierCanadaAnna Fali NEW
Misaki E SlusarskiAustraliaXuxue Feng RENEWAL
Clifford Z MacleadArgentinaIoni Bowcher NEW
Rodrigues Y FerenczCanadaElwin Sharvill NEW
Costa D SchemmerArgentinaIvan Magalhaes NEW
Silvio E KuskoGermanyAmy Elsner QUALIFIED
Morrow E RimRussiaElwin Sharvill NEGOTIATION
Jefferson U OstroskyArgentinaIvan Magalhaes NEW
Salvatore H NickaBrazilBernardo Dominic RENEWAL
Aika V CaudyItalyAnna Fali PROPOSAL
Morrow M MaletGermanyElwin Sharvill RENEWAL
Darci O WieserRussiaIvan Magalhaes UNQUALIFIED
Wickens C CaldareraItalyAsiya Javayant PROPOSAL
Smith X BriddickSpainAmy Elsner RENEWAL
Maisha D DarakjyRussiaAmy Elsner RENEWAL
Kaitlin E WhobreyRussiaOnyama Limba PROPOSAL
Costa I OstroskyRussiaAsiya Javayant RENEWAL
Jones Y PerinBrazilAsiya Javayant RENEWAL
Leja G BriddickIndiaStephen Shaw NEW
David G FerenczRussiaIoni Bowcher NEW
Emily I DarakjyGermanyAmy Elsner NEGOTIATION
Silvio O PoquetteBrazilAnna Fali NEW
Morrow A PaprockiIndiaIoni Bowcher PROPOSAL
Smith J FlosiJapanStephen Shaw RENEWAL
Ashley A BriddickRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois H GarufiCanadaAnna Fali QUALIFIED
Aika T KolmetzUnited KingdomStephen Shaw RENEWAL
Jones E RulapaughAustraliaBernardo Dominic QUALIFIED
Deepesh M WieserIndiaIvan Magalhaes UNQUALIFIED
Maria D RulapaughAustraliaAsiya Javayant NEW
Smith X MacleadGermanyAnna Fali UNQUALIFIED
Claire B CaldareraRussiaStephen Shaw QUALIFIED
Izzy M MorascaAustraliaElwin Sharvill UNQUALIFIED
Costa P DoeIndiaAsiya Javayant PROPOSAL
Octavia S VenereCanadaBernardo Dominic NEW
Leja O MorascaUnited KingdomBernardo Dominic NEGOTIATION
Claire D GlickIndiaXuxue Feng UNQUALIFIED
Arvin X KolmetzSpainAnna Fali UNQUALIFIED
Nicolas B CaudyGermanyStephen Shaw NEGOTIATION
Clifford A CaldareraRussiaElwin Sharvill NEW
Adams Q PerinBrazilStephen Shaw NEW
Maisha U FollerItalyAnna Fali PROPOSAL
Faith L RoysterAustraliaAnna Fali NEGOTIATION
Maisha Q RutaArgentinaBernardo Dominic NEGOTIATION
Francesco U IturbideRussiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Arvin F Bolognia
Johnson C Morasca
Stacey X Flosi
Chavez L Shinko
Smith Y Rim
Aika R Saylors
Maria Q Bolognia
Sinclair C Rulapaugh
Johnson N Amigon
Smith T Malet
Izzy J Dilliard
Arvin A Vocelka
Aruna Q Campain
Francesco X Poquette
Ivar D Malet
Deepesh D Albares
Munro W Oldroyd
Jeanfrancois P Caudy
Ricardo Q Albares
Aruna I Figeroa
Leon Z Ostrosky
Aika E Ferencz
Rodrigues M Morasca
Isabel N Amigon
Jones S Foller
Greenwood X Doe
Antonio B Kolmetz
Cody P Malet
Izzy W Rulapaugh
Silvio M Rim
Jones U Slusarski
Stacey G Darakjy
Kaitlin V Garufi
Emily T Slusarski
Kadeem B Slusarski
Kadeem N Briddick
Aditya J Royster
Isabel A Tollner
Darci X Butt
David R Darakjy
Claire W Iturbide
Mujtaba U Oldroyd
Johnson J Perin
Salvatore O Flosi
Juan M Nestle
Aditya V Ostrosky
Jeanfrancois O Ostrosky
Kadeem L Waycott
Jefferson B Paprocki
Salvatore T Caudy
IdCountryDate
1000France2026-07-14
1001United Kingdom2026-06-29
1002Canada2026-07-17
1003Russia2026-07-03
1004Argentina2026-07-09
1005Australia2026-07-17
1006Germany2026-07-20
1007Japan2026-07-03
1008Russia2026-07-04
1009Argentina2026-07-17
1010Russia2026-06-29
1011Australia2026-07-08
1012Spain2026-07-21
1013Canada2026-07-21
1014Japan2026-07-01
1015India2026-07-01
1016France2026-07-20
1017United Kingdom2026-07-09
1018United Kingdom2026-07-21
1019India2026-06-27
1020Australia2026-07-10
1021India2026-06-26
1022India2026-07-16
1023Russia2026-06-24
1024Italy2026-07-02
1025United Kingdom2026-07-03
1026Russia2026-07-21
1027Japan2026-06-23
1028Brazil2026-06-27
1029Russia2026-07-19
1030Japan2026-07-01
1031United Kingdom2026-06-25
1032France2026-07-03
1033United Kingdom2026-07-09
1034Italy2026-07-02
1035Canada2026-07-02
1036Japan2026-07-09
1037Brazil2026-06-22
1038Australia2026-07-16
1039Brazil2026-07-14
1040Italy2026-06-25
1041Germany2026-07-09
1042France2026-07-04
1043Italy2026-07-05
1044Argentina2026-07-06
1045Russia2026-06-24
1046Japan2026-07-09
1047Italy2026-07-02
1048Canada2026-07-01
1049United Kingdom2026-06-29

On-Demand Data

NameIdCountryDate
Antonio U Butt1000Spain2026-06-29
Antonio I Bolognia1001Germany2026-06-29
Julie K Morasca1002India2026-07-18
Aditya P Kolmetz1003Australia2026-07-02
Isabel A Whobrey1004India2026-07-17
Juan L Schemmer1005Spain2026-06-27
Greenwood Z Caldarera1006Russia2026-07-12
Kaitlin X Waycott1007Brazil2026-07-05
Maisha M Kolmetz1008Australia2026-06-26
Faith I Nicka1009Russia2026-06-26
Deepesh M Marrier1010Argentina2026-06-26
David D Whobrey1011Germany2026-07-06
Antonio I Dilliard1012India2026-07-16
Ivar V Stockham1013Argentina2026-07-04
Salvatore M Briddick1014Argentina2026-07-05
Greenwood M Morasca1015Canada2026-06-27
Claire O Briddick1016Italy2026-07-04
Salvatore M Figeroa1017Italy2026-06-25
Cody A Perin1018Russia2026-07-15
Adams Y Rulapaugh1019Argentina2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Z StensethItalyXuxue Feng NEW
Silvio H GauchoGermanyIvan Magalhaes RENEWAL
Jeanfrancois W SchemmerJapanAsiya Javayant PROPOSAL
Mujtaba Z RoysterIndiaAnna Fali QUALIFIED
Darci W WieserCanadaOnyama Limba NEGOTIATION
Jefferson R GauchoCanadaStephen Shaw NEGOTIATION
Alejandro S OstroskyCanadaXuxue Feng NEW
Maria E ChuiAustraliaAmy Elsner UNQUALIFIED
Mayumi B WieserGermanyIvan Magalhaes NEGOTIATION
Aika G InouyeRussiaIvan Magalhaes PROPOSAL
Jefferson I AmigonCanadaAsiya Javayant NEW
Rodrigues E PoquetteRussiaAmy Elsner PROPOSAL
Johnson X SchemmerBrazilOnyama Limba PROPOSAL
Julie O SergiBrazilIoni Bowcher NEW
Johnson O CaldareraSpainBernardo Dominic RENEWAL
Morrow S PoquetteSpainIoni Bowcher UNQUALIFIED
Clifford I OldroydRussiaElwin Sharvill UNQUALIFIED
Izzy X RutaItalyAsiya Javayant NEGOTIATION
Ivar H AmigonAustraliaBernardo Dominic QUALIFIED
Greenwood A RulapaughCanadaAmy Elsner NEW
Mayumi Q GauchoSpainIvan Magalhaes PROPOSAL
Aika Q PaprockiIndiaStephen Shaw RENEWAL
Nicolas L BologniaFranceBernardo Dominic UNQUALIFIED
Greenwood N FlosiArgentinaElwin Sharvill NEGOTIATION
Arvin V FigeroaFranceOnyama Limba NEW
Tony C RoysterUnited KingdomXuxue Feng QUALIFIED
Aika M PoquetteAustraliaIoni Bowcher UNQUALIFIED
Octavia V GlickCanadaElwin Sharvill QUALIFIED
Mujtaba X CaldareraSpainIvan Magalhaes PROPOSAL
Cody V AlbaresRussiaBernardo Dominic QUALIFIED
Arvin B CampainFranceAmy Elsner QUALIFIED
Alejandro U DoeGermanyAnna Fali QUALIFIED
Jones F WieserJapanXuxue Feng RENEWAL
Ricardo N DilliardItalyAmy Elsner UNQUALIFIED
Jennifer C FerenczJapanElwin Sharvill RENEWAL
Jennifer U PaprockiIndiaElwin Sharvill QUALIFIED
Ricardo L RutaJapanIoni Bowcher NEGOTIATION
Costa F MaletSpainIoni Bowcher NEW
James B MarrierRussiaElwin Sharvill NEGOTIATION
Tony P NickaIndiaStephen Shaw RENEWAL

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