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
Murillo T MaletItalyOnyama Limba NEW
Adams Y FerenczItalyAmy Elsner PROPOSAL
Mayumi L BowleyArgentinaAmy Elsner UNQUALIFIED
Francesco R FerenczIndiaAmy Elsner NEGOTIATION
Antonio S BologniaArgentinaIoni Bowcher PROPOSAL
Aruna L SaylorsIndiaOnyama Limba UNQUALIFIED
James X InouyeFranceIoni Bowcher UNQUALIFIED
Darci C NestleIndiaBernardo Dominic UNQUALIFIED
Arvin G OstroskyFranceAsiya Javayant RENEWAL
Mayumi W MacleadFranceElwin Sharvill NEGOTIATION
Stacey W RoysterAustraliaOnyama Limba QUALIFIED
Mujtaba G OldroydCanadaElwin Sharvill NEW
Stacey P OstroskyUnited KingdomIvan Magalhaes RENEWAL
Mayumi Z IturbideSpainAsiya Javayant UNQUALIFIED
Julie T SchemmerSpainElwin Sharvill NEW
Salvatore I FigeroaIndiaXuxue Feng PROPOSAL
Juan P RimGermanyIoni Bowcher PROPOSAL
Adams N AlbaresUnited KingdomIoni Bowcher PROPOSAL
Ashley D DilliardItalyIvan Magalhaes NEW
Aditya J DarakjyFranceAsiya Javayant QUALIFIED
Rodrigues D VocelkaGermanyAnna Fali PROPOSAL
Mujtaba B GlickIndiaOnyama Limba RENEWAL
Chavez E OldroydGermanyAsiya Javayant RENEWAL
Chavez G GillianFranceElwin Sharvill NEW
Rodrigues B WieserUnited KingdomStephen Shaw NEGOTIATION
Francesco S PoquetteItalyAmy Elsner RENEWAL
Isabel I ShinkoIndiaStephen Shaw UNQUALIFIED
Arvin U SchemmerUnited KingdomOnyama Limba QUALIFIED
Izzy X StensethItalyIoni Bowcher RENEWAL
Aruna W InouyeSpainAsiya Javayant NEGOTIATION
Deepesh N GlickJapanXuxue Feng NEW
Jones Q NestleItalyOnyama Limba NEW
Deepesh B RutaBrazilStephen Shaw UNQUALIFIED
Ivar O FigeroaBrazilBernardo Dominic UNQUALIFIED
Clifford J AlbaresJapanIoni Bowcher NEW
Ricardo P MarrierBrazilOnyama Limba RENEWAL
Jones G MaletArgentinaOnyama Limba QUALIFIED
Antonio Y ChuiBrazilXuxue Feng NEGOTIATION
Arvin Q DilliardItalyAmy Elsner RENEWAL
Smith I SlusarskiUnited KingdomBernardo Dominic RENEWAL
Maisha H RulapaughBrazilAmy Elsner NEW
Aruna R ChuiRussiaXuxue Feng RENEWAL
David A PoquetteArgentinaAmy Elsner QUALIFIED
Salvatore I ButtUnited KingdomElwin Sharvill UNQUALIFIED
Johnson E DoeAustraliaIvan Magalhaes QUALIFIED
Aruna E NestleArgentinaStephen Shaw QUALIFIED
Octavia B RutaJapanAmy Elsner UNQUALIFIED
Faith V GlickUnited KingdomAsiya Javayant NEGOTIATION
Ricardo P FlosiCanadaBernardo Dominic RENEWAL
Leon T DilliardGermanyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo G MarrierAustraliaElwin Sharvill UNQUALIFIED
James N RimSpainAmy Elsner PROPOSAL
Kadeem T IturbideIndiaOnyama Limba NEGOTIATION
Costa R MaletJapanStephen Shaw QUALIFIED
Octavia G CaldareraRussiaAsiya Javayant NEGOTIATION
Antonio Z MorascaIndiaOnyama Limba UNQUALIFIED
Jefferson K CaudyUnited KingdomStephen Shaw NEGOTIATION
Rodrigues B KuskoUnited KingdomAmy Elsner RENEWAL
Jeanfrancois T VocelkaCanadaIvan Magalhaes NEGOTIATION
Adams U AlbaresGermanyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan L WaycottArgentina2026-07-31Chemel, James L Cpa QUALIFIED2Onyama Limba
1001David Q WieserBrazil2026-07-25Feiner Bros PROPOSAL99Asiya Javayant
1002Silvio Z BowleyJapan2026-07-25Dorl, James J Esq UNQUALIFIED95Anna Fali
1003Morrow M CampainAustralia2026-08-22Dorl, James J Esq NEGOTIATION1Stephen Shaw
1004Chavez E FollerItaly2026-07-28Chapman, Ross E Esq RENEWAL5Bernardo Dominic
1005Ashley V InouyeItaly2026-08-02Benton, John B Jr RENEWAL59Anna Fali
1006Greenwood T ButtJapan2026-08-02Chapman, Ross E Esq QUALIFIED86Bernardo Dominic
1007Maria H PoquetteRussia2026-07-31Morlong Associates NEW96Bernardo Dominic
1008Isabel Q FollerArgentina2026-08-21King, Christopher A Esq UNQUALIFIED66Ivan Magalhaes
1009Julie K RulapaughFrance2026-08-13Feltz Printing Service PROPOSAL35Asiya Javayant
1010David U FollerSpain2026-08-15Feltz Printing Service NEGOTIATION82Amy Elsner
1011Murillo X BologniaUnited Kingdom2026-08-20Buckley Miller Wright UNQUALIFIED88Amy Elsner
1012Kadeem R MacleadCanada2026-08-16Chapman, Ross E Esq NEGOTIATION36Elwin Sharvill
1013Smith J CampainArgentina2026-08-20Buckley Miller Wright QUALIFIED20Amy Elsner
1014Claire Z RulapaughCanada2026-08-22Feiner Bros QUALIFIED68Onyama Limba
1015Francesco I GauchoIndia2026-08-01Printing Dimensions NEGOTIATION7Asiya Javayant
1016Francesco L ShinkoRussia2026-08-06King, Christopher A Esq RENEWAL3Amy Elsner
1017Maisha A ChuiCanada2026-08-23Rangoni Of Florence UNQUALIFIED93Anna Fali
1018Julie Y SlusarskiArgentina2026-08-19Chanay, Jeffrey A Esq PROPOSAL85Onyama Limba
1019Octavia X KuskoItaly2026-08-17Morlong Associates UNQUALIFIED67Bernardo Dominic
1020Mujtaba Q DarakjyRussia2026-08-04Feltz Printing Service PROPOSAL99Onyama Limba
1021Antonio F DilliardBrazil2026-08-03Printing Dimensions UNQUALIFIED41Ioni Bowcher
1022Antonio K RoysterArgentina2026-08-13King, Christopher A Esq PROPOSAL73Amy Elsner
1023Wickens C VocelkaBrazil2026-08-13Chemel, James L Cpa QUALIFIED75Xuxue Feng
1024Adams W PerinUnited Kingdom2026-07-28King, Christopher A Esq NEGOTIATION14Amy Elsner
1025Kaitlin M RimRussia2026-07-27Truhlar And Truhlar Attys QUALIFIED49Bernardo Dominic
1026Nicolas G PoquetteSpain2026-08-03Feiner Bros PROPOSAL79Xuxue Feng
1027Francesco J WhobreyFrance2026-08-07Truhlar And Truhlar Attys UNQUALIFIED3Onyama Limba
1028Aruna C ButtBrazil2026-07-28Rousseaux, Michael Esq UNQUALIFIED46Ivan Magalhaes
1029Johnson L MaletItaly2026-08-14Dorl, James J Esq PROPOSAL32Elwin Sharvill
1030Claire F VenereIndia2026-08-09Buckley Miller Wright NEW48Xuxue Feng
1031Maisha O MacleadUnited Kingdom2026-07-31Chanay, Jeffrey A Esq NEGOTIATION88Elwin Sharvill
1032Deepesh W NickaCanada2026-08-07Chanay, Jeffrey A Esq PROPOSAL76Ioni Bowcher
1033Octavia L WhobreyGermany2026-07-26Rangoni Of Florence PROPOSAL25Anna Fali
1034Ivar K CaldareraRussia2026-08-14Chemel, James L Cpa PROPOSAL83Anna Fali
1035Ivar N BologniaGermany2026-08-19Chanay, Jeffrey A Esq NEGOTIATION12Ioni Bowcher
1036Aruna Y TollnerGermany2026-08-21Chanay, Jeffrey A Esq NEGOTIATION13Ivan Magalhaes
1037Nicolas R BowleyUnited Kingdom2026-08-18Feiner Bros NEW63Stephen Shaw
1038Juan X AmigonArgentina2026-07-25King, Christopher A Esq NEW63Amy Elsner
1039Jennifer E SaylorsIndia2026-08-14Printing Dimensions UNQUALIFIED35Xuxue Feng
1040Octavia O CaudyItaly2026-08-09King, Christopher A Esq PROPOSAL86Elwin Sharvill
1041Tony W WieserBrazil2026-08-21Dorl, James J Esq NEW94Bernardo Dominic
1042Maria Z KolmetzGermany2026-08-02Feiner Bros PROPOSAL61Amy Elsner
1043Misaki I GarufiSpain2026-08-08Feltz Printing Service RENEWAL20Stephen Shaw
1044Smith S PoquetteJapan2026-08-23Feiner Bros NEW93Ioni Bowcher
1045Morrow G CaldareraArgentina2026-08-17Feltz Printing Service UNQUALIFIED75Elwin Sharvill
1046Maisha I VocelkaGermany2026-08-05Buckley Miller Wright NEGOTIATION53Amy Elsner
1047Alejandro C PerinArgentina2026-07-29Truhlar And Truhlar Attys PROPOSAL96Elwin Sharvill
1048Adams K DoeGermany2026-08-04Printing Dimensions PROPOSAL46Xuxue Feng
1049Wickens C WaycottFrance2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED88Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Johnson V RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem R StensethItalyAmy Elsner NEW
Clifford L MorascaJapanElwin Sharvill UNQUALIFIED
Leja B OstroskyAustraliaBernardo Dominic NEW
Darci X StensethItalyOnyama Limba PROPOSAL
Sinclair G InouyeBrazilOnyama Limba RENEWAL
Morrow J SaylorsCanadaXuxue Feng NEGOTIATION
Sinclair D WhobreyJapanAmy Elsner NEGOTIATION
Alejandro E RimRussiaAsiya Javayant RENEWAL
Emily Y BowleySpainOnyama Limba NEGOTIATION
Aruna O CaldareraSpainStephen Shaw UNQUALIFIED
Jefferson U InouyeGermanyStephen Shaw UNQUALIFIED
Francesco W SaylorsGermanyIoni Bowcher NEGOTIATION
Arvin A SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Smith A WhobreyCanadaXuxue Feng UNQUALIFIED
Ricardo K WieserSpainBernardo Dominic QUALIFIED
Aika L NickaArgentinaStephen Shaw RENEWAL
Mayumi I FlosiFranceElwin Sharvill NEGOTIATION
Silvio J PaprockiIndiaAmy Elsner NEGOTIATION
Jones K NickaItalyAnna Fali PROPOSAL
Emily G MorascaArgentinaOnyama Limba UNQUALIFIED
Alejandro K StockhamGermanyIoni Bowcher NEGOTIATION
Aika E GarufiCanadaIoni Bowcher UNQUALIFIED
Ricardo G KolmetzFranceXuxue Feng QUALIFIED
Mujtaba R AmigonJapanAmy Elsner NEW
Faith N VenereGermanyAnna Fali QUALIFIED
Darci U PoquetteIndiaAnna Fali NEGOTIATION
Rodrigues V TollnerJapanOnyama Limba QUALIFIED
Stacey V MacleadIndiaBernardo Dominic UNQUALIFIED
Greenwood J GlickUnited KingdomOnyama Limba PROPOSAL
Misaki E MorascaSpainAmy Elsner UNQUALIFIED
Jennifer O AlbaresGermanyAmy Elsner NEW
Jefferson V NestleItalyXuxue Feng NEGOTIATION
Misaki I MaletSpainXuxue Feng RENEWAL
Greenwood S GarufiGermanyBernardo Dominic UNQUALIFIED
Stacey N WaycottCanadaIvan Magalhaes PROPOSAL
Chavez U StensethIndiaStephen Shaw QUALIFIED
Adams L IturbideAustraliaBernardo Dominic PROPOSAL
Isabel U InouyeGermanyAnna Fali NEGOTIATION
Stacey B NestleArgentinaIvan Magalhaes NEGOTIATION
Ashley J BowleyAustraliaXuxue Feng NEGOTIATION
Isabel M GauchoFranceAmy Elsner QUALIFIED
Nicolas A SergiJapanStephen Shaw NEW
Faith N SlusarskiUnited KingdomAnna Fali PROPOSAL
Isabel R ChuiGermanyAmy Elsner NEGOTIATION
Maria H CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Octavia I NickaUnited KingdomIoni Bowcher NEW
Sinclair E CampainRussiaAmy Elsner RENEWAL
Munro L RulapaughSpainBernardo Dominic QUALIFIED
Cody B MaletCanadaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Aika G Bolognia
Maria T Figeroa
Aditya K Tollner
Johnson T Sergi
Octavia V Poquette
Antonio U Stenseth
Kadeem I Sergi
Silvio I Malet
Silvio X Marrier
Kadeem C Rulapaugh
Ivar A Rim
Julie J Tollner
Clifford I Kusko
Claire M Figeroa
Faith S Royster
Johnson J Morasca
Izzy Y Albares
Jeanfrancois Q Tollner
Jones O Stockham
Deepesh B Glick
Morrow G Sergi
Adams Y Poquette
Aruna Q Chui
Adams T Kusko
Arvin N Poquette
Silvio P Saylors
Salvatore P Sergi
Morrow W Doe
Maisha Q Rim
Stacey K Campain
Wickens I Glick
Leja W Nestle
Misaki A Bowley
James O Nestle
Juan X Poquette
Jefferson U Malet
Izzy N Stockham
Darci Y Malet
Ivar B Saylors
Stacey J Chui
Leja H Bolognia
Clifford W Malet
Johnson P Inouye
Alejandro M Marrier
Misaki C Kolmetz
Stacey A Saylors
Antonio X Slusarski
Alejandro J Sergi
Izzy L Venere
Clifford B Morasca
IdCountryDate
1000Russia2026-08-19
1001United Kingdom2026-08-12
1002Germany2026-08-06
1003Russia2026-08-19
1004India2026-08-09
1005Canada2026-08-21
1006Australia2026-08-17
1007Brazil2026-08-02
1008India2026-08-01
1009India2026-08-10
1010Argentina2026-07-29
1011Italy2026-08-09
1012Italy2026-08-09
1013Spain2026-07-26
1014Brazil2026-08-09
1015Japan2026-07-30
1016United Kingdom2026-08-05
1017India2026-08-06
1018France2026-08-16
1019Japan2026-08-06
1020Australia2026-08-16
1021Canada2026-08-10
1022India2026-07-30
1023Japan2026-08-13
1024United Kingdom2026-07-31
1025United Kingdom2026-08-02
1026Japan2026-08-18
1027Australia2026-08-16
1028Spain2026-08-09
1029United Kingdom2026-08-06
1030Russia2026-08-19
1031Russia2026-08-18
1032Italy2026-07-27
1033Japan2026-08-19
1034Spain2026-08-15
1035India2026-08-23
1036Australia2026-08-05
1037France2026-08-12
1038Italy2026-08-19
1039Japan2026-07-28
1040Japan2026-08-01
1041Canada2026-07-26
1042Argentina2026-08-20
1043Italy2026-07-30
1044Japan2026-08-04
1045India2026-08-17
1046Australia2026-07-31
1047Brazil2026-08-06
1048Argentina2026-08-04
1049Australia2026-08-20

On-Demand Data

NameIdCountryDate
Aika Z Doe1000France2026-08-23
David J Kusko1001Russia2026-08-23
Maria X Oldroyd1002Canada2026-08-19
Julie O Shinko1003Germany2026-08-07
Juan I Tollner1004France2026-08-15
Octavia P Gillian1005Japan2026-08-11
Aditya A Nestle1006Australia2026-07-25
Arvin E Poquette1007Italy2026-08-01
Faith B Paprocki1008Italy2026-08-06
Jones M Caldarera1009Russia2026-08-22
Jennifer B Figeroa1010Australia2026-08-11
Misaki H Maclead1011Russia2026-08-05
Stacey O Doe1012Japan2026-08-15
Darci N Waycott1013Germany2026-08-11
Antonio F Gaucho1014Japan2026-07-25
Isabel K Caudy1015Japan2026-08-04
Cody I Caldarera1016Japan2026-07-28
Ivar U Shinko1017Italy2026-07-31
Aika A Butt1018Argentina2026-08-18
David K Gaucho1019Russia2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith H CampainIndiaStephen Shaw NEW
Munro N OldroydAustraliaAmy Elsner NEGOTIATION
Jefferson T TollnerItalyStephen Shaw RENEWAL
Sinclair I BowleyJapanBernardo Dominic NEGOTIATION
Munro X WieserAustraliaAnna Fali NEW
James N KuskoSpainElwin Sharvill QUALIFIED
Francesco P MaletUnited KingdomAmy Elsner QUALIFIED
Leja U GillianBrazilElwin Sharvill UNQUALIFIED
Salvatore H ChuiIndiaAsiya Javayant UNQUALIFIED
Rodrigues H TollnerGermanyAnna Fali NEGOTIATION
Greenwood W MacleadBrazilElwin Sharvill RENEWAL
Leja J NestleGermanyElwin Sharvill NEGOTIATION
Antonio A DilliardSpainIvan Magalhaes RENEWAL
Emily K FlosiGermanyBernardo Dominic NEW
Francesco L ChuiIndiaAmy Elsner QUALIFIED
Morrow F RimIndiaBernardo Dominic NEW
Stacey I FigeroaFranceIvan Magalhaes RENEWAL
Jennifer E StensethIndiaAmy Elsner QUALIFIED
Costa O WhobreyJapanStephen Shaw PROPOSAL
Arvin X SaylorsRussiaIoni Bowcher UNQUALIFIED
Morrow O RoysterArgentinaStephen Shaw UNQUALIFIED
Izzy N ShinkoGermanyIoni Bowcher UNQUALIFIED
Maria D BowleyFranceAnna Fali PROPOSAL
Antonio G SlusarskiJapanAmy Elsner NEW
Silvio L SergiFranceStephen Shaw QUALIFIED
Stacey G CaldareraIndiaElwin Sharvill UNQUALIFIED
Juan V FerenczIndiaStephen Shaw QUALIFIED
Munro S SlusarskiGermanyXuxue Feng QUALIFIED
Adams H CaudyRussiaXuxue Feng QUALIFIED
Aditya S SergiArgentinaAnna Fali RENEWAL
Ashley T ShinkoCanadaIvan Magalhaes NEGOTIATION
Nicolas L GillianArgentinaBernardo Dominic PROPOSAL
Stacey P MaletUnited KingdomXuxue Feng PROPOSAL
Silvio L CaudyJapanAsiya Javayant PROPOSAL
Johnson Y BowleyJapanAmy Elsner PROPOSAL
Johnson J TollnerUnited KingdomXuxue Feng NEW
Morrow Y GarufiItalyOnyama Limba NEW
Claire P VenereIndiaAmy Elsner UNQUALIFIED
Octavia G MaletFranceIvan Magalhaes NEGOTIATION
Cody P NestleFranceIoni Bowcher 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>