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
Ivar S AmigonItalyElwin Sharvill PROPOSAL
Maria N GlickFranceIvan Magalhaes PROPOSAL
Arvin X GlickSpainAmy Elsner NEGOTIATION
Morrow Z StensethJapanAmy Elsner RENEWAL
Mayumi N MaletJapanAnna Fali UNQUALIFIED
Silvio Y MaletRussiaBernardo Dominic NEGOTIATION
Misaki G VenereGermanyAmy Elsner PROPOSAL
Murillo P CaudyArgentinaBernardo Dominic NEW
Octavia U RoysterGermanyElwin Sharvill NEGOTIATION
Jennifer Y SergiItalyXuxue Feng NEW
Mujtaba E InouyeGermanyAmy Elsner NEGOTIATION
Alejandro S RimJapanAnna Fali NEW
Aika L AmigonAustraliaAnna Fali PROPOSAL
Nicolas Z GillianRussiaElwin Sharvill UNQUALIFIED
Jefferson A AlbaresSpainXuxue Feng NEGOTIATION
Maisha W BowleyCanadaStephen Shaw NEGOTIATION
Julie F OstroskySpainIvan Magalhaes NEW
Adams M MaletAustraliaIvan Magalhaes UNQUALIFIED
Leon W GarufiGermanyElwin Sharvill QUALIFIED
Alejandro F StockhamCanadaXuxue Feng UNQUALIFIED
Smith N KuskoFranceAmy Elsner NEW
Julie I CaudyArgentinaIvan Magalhaes UNQUALIFIED
Mayumi Z InouyeItalyAsiya Javayant NEW
Kadeem S WieserIndiaAsiya Javayant UNQUALIFIED
Leja T CaudyFranceOnyama Limba NEGOTIATION
Nicolas V StockhamGermanyOnyama Limba NEW
Ricardo A MacleadCanadaStephen Shaw NEW
James K VenereJapanIvan Magalhaes QUALIFIED
Alejandro A MorascaUnited KingdomXuxue Feng RENEWAL
Isabel D SlusarskiIndiaBernardo Dominic QUALIFIED
Tony P GarufiItalyIvan Magalhaes UNQUALIFIED
Julie C RimSpainIvan Magalhaes RENEWAL
Aditya I MacleadUnited KingdomIoni Bowcher PROPOSAL
Greenwood S DoeFranceIoni Bowcher QUALIFIED
Jeanfrancois R InouyeGermanyAsiya Javayant PROPOSAL
Mayumi A KuskoCanadaIvan Magalhaes NEW
Clifford X NestleArgentinaAnna Fali QUALIFIED
Wickens J MorascaRussiaAmy Elsner UNQUALIFIED
Arvin Z ShinkoAustraliaAnna Fali RENEWAL
Kaitlin V WaycottArgentinaIoni Bowcher NEW
Octavia E CampainUnited KingdomOnyama Limba RENEWAL
Darci G ButtJapanXuxue Feng QUALIFIED
Emily L CampainAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois B KolmetzBrazilAsiya Javayant QUALIFIED
Kadeem W FerenczArgentinaXuxue Feng QUALIFIED
Julie V CaldareraCanadaXuxue Feng PROPOSAL
Kadeem E CaudyIndiaOnyama Limba NEW
Greenwood E RoysterRussiaXuxue Feng NEW
Claire G VenereSpainOnyama Limba PROPOSAL
Jeanfrancois A OstroskyJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon L MacleadCanadaBernardo Dominic PROPOSAL
Clifford L MacleadAustraliaOnyama Limba NEW
Isabel A ChuiRussiaIoni Bowcher NEGOTIATION
Nicolas L VenereFranceIoni Bowcher PROPOSAL
Chavez X RoysterFranceBernardo Dominic PROPOSAL
Alejandro Q RulapaughBrazilOnyama Limba PROPOSAL
Silvio U RimRussiaAnna Fali NEW
Chavez W GillianArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois Q ShinkoRussiaIvan Magalhaes UNQUALIFIED
Misaki E MarrierArgentinaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan L MorascaJapan2026-06-30Commercial Press PROPOSAL7Amy Elsner
1001Leja Y GauchoAustralia2026-06-16Truhlar And Truhlar Attys UNQUALIFIED12Onyama Limba
1002Aruna A OldroydCanada2026-06-05Rangoni Of Florence PROPOSAL26Stephen Shaw
1003Johnson L MarrierFrance2026-06-17Buckley Miller Wright NEW20Stephen Shaw
1004Kaitlin W StockhamBrazil2026-06-28Truhlar And Truhlar Attys NEW14Ivan Magalhaes
1005Greenwood H DilliardRussia2026-06-17Chanay, Jeffrey A Esq NEW95Xuxue Feng
1006Arvin Y ShinkoAustralia2026-07-02Benton, John B Jr PROPOSAL11Ioni Bowcher
1007Faith G BowleyCanada2026-06-26Feltz Printing Service UNQUALIFIED83Asiya Javayant
1008Aika X KuskoSpain2026-06-09Benton, John B Jr NEGOTIATION64Stephen Shaw
1009Costa S BriddickGermany2026-06-10Rousseaux, Michael Esq PROPOSAL77Xuxue Feng
1010Izzy Z FollerItaly2026-07-01Chapman, Ross E Esq QUALIFIED43Amy Elsner
1011Kadeem A StensethJapan2026-06-10Rangoni Of Florence UNQUALIFIED59Onyama Limba
1012Salvatore L FerenczFrance2026-06-29King, Christopher A Esq PROPOSAL92Bernardo Dominic
1013Jones F MorascaJapan2026-06-24Printing Dimensions PROPOSAL48Anna Fali
1014Aika F InouyeIndia2026-07-04Feltz Printing Service NEGOTIATION60Anna Fali
1015Darci X OldroydSpain2026-06-16Feiner Bros NEW5Elwin Sharvill
1016Wickens P CampainArgentina2026-06-10Chanay, Jeffrey A Esq NEW43Ivan Magalhaes
1017Stacey Q CampainGermany2026-07-01Benton, John B Jr NEGOTIATION84Asiya Javayant
1018Leon W OstroskyRussia2026-06-20Rousseaux, Michael Esq NEGOTIATION20Onyama Limba
1019Jones U InouyeJapan2026-07-02King, Christopher A Esq RENEWAL22Amy Elsner
1020Aditya N BologniaCanada2026-06-15Chemel, James L Cpa UNQUALIFIED17Anna Fali
1021Misaki V ShinkoItaly2026-06-15Feiner Bros PROPOSAL56Elwin Sharvill
1022Leon O WhobreyAustralia2026-06-20Chanay, Jeffrey A Esq RENEWAL37Stephen Shaw
1023Ricardo L IturbideFrance2026-06-17Printing Dimensions QUALIFIED6Stephen Shaw
1024Silvio C DarakjyCanada2026-06-15Chemel, James L Cpa QUALIFIED45Ioni Bowcher
1025Jefferson O BologniaArgentina2026-06-19Chanay, Jeffrey A Esq NEGOTIATION9Amy Elsner
1026Mayumi M FlosiFrance2026-06-14Rousseaux, Michael Esq NEW37Ivan Magalhaes
1027Mujtaba V DarakjyGermany2026-06-14Chemel, James L Cpa NEW93Ivan Magalhaes
1028Sinclair Q NestleItaly2026-06-26Chapman, Ross E Esq RENEWAL94Ioni Bowcher
1029Costa H KuskoCanada2026-07-04Printing Dimensions RENEWAL59Ioni Bowcher
1030Maria X OldroydAustralia2026-06-15Dorl, James J Esq PROPOSAL77Onyama Limba
1031Aika C ButtBrazil2026-06-10Commercial Press PROPOSAL7Stephen Shaw
1032Tony Y InouyeGermany2026-06-08Commercial Press NEGOTIATION40Amy Elsner
1033Julie V RulapaughItaly2026-06-28Truhlar And Truhlar Attys UNQUALIFIED4Stephen Shaw
1034Jeanfrancois E ShinkoAustralia2026-06-23Printing Dimensions NEGOTIATION73Onyama Limba
1035Wickens H SchemmerBrazil2026-06-24Dorl, James J Esq UNQUALIFIED45Ivan Magalhaes
1036Maisha K SchemmerFrance2026-06-26Benton, John B Jr RENEWAL87Amy Elsner
1037Nicolas D SaylorsIndia2026-06-19Feltz Printing Service NEW91Stephen Shaw
1038Arvin J WhobreyUnited Kingdom2026-06-12Buckley Miller Wright PROPOSAL52Stephen Shaw
1039Silvio L PerinIndia2026-07-01Buckley Miller Wright RENEWAL43Ioni Bowcher
1040Izzy W SergiJapan2026-07-02Chemel, James L Cpa NEGOTIATION52Onyama Limba
1041Faith J SergiRussia2026-07-03Truhlar And Truhlar Attys NEW77Elwin Sharvill
1042Aika J RoysterBrazil2026-06-25Truhlar And Truhlar Attys PROPOSAL87Stephen Shaw
1043Wickens K WieserUnited Kingdom2026-06-19Benton, John B Jr PROPOSAL93Ivan Magalhaes
1044David U CaudyUnited Kingdom2026-06-21Feltz Printing Service RENEWAL94Xuxue Feng
1045Darci W FlosiSpain2026-06-14Dorl, James J Esq RENEWAL26Asiya Javayant
1046Ivar R NestleAustralia2026-07-02Feltz Printing Service RENEWAL92Xuxue Feng
1047Murillo Q DilliardCanada2026-06-16Chapman, Ross E Esq UNQUALIFIED19Elwin Sharvill
1048Alejandro E PoquetteArgentina2026-06-16King, Christopher A Esq QUALIFIED9Elwin Sharvill
1049Munro K GarufiJapan2026-06-30Rousseaux, Michael Esq QUALIFIED40Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel T MorascaCanadaAnna Fali NEW
Smith Q WieserFranceStephen Shaw NEGOTIATION
Ricardo E ButtGermanyAnna Fali PROPOSAL
David Q MarrierGermanyOnyama Limba NEGOTIATION
Sinclair N AmigonItalyIvan Magalhaes NEGOTIATION
Aditya U VenereItalyIoni Bowcher QUALIFIED
James H RimGermanyXuxue Feng PROPOSAL
Clifford B FerenczJapanStephen Shaw PROPOSAL
Wickens K KuskoUnited KingdomIvan Magalhaes RENEWAL
Leja E ButtBrazilIvan Magalhaes UNQUALIFIED
Octavia M DilliardFranceAsiya Javayant RENEWAL
Cody H BologniaAustraliaIvan Magalhaes NEGOTIATION
Maisha F AlbaresRussiaElwin Sharvill UNQUALIFIED
Mayumi W AmigonFranceElwin Sharvill NEGOTIATION
Salvatore M WaycottGermanyOnyama Limba UNQUALIFIED
Tony U StensethArgentinaIoni Bowcher NEW
Cody W VocelkaBrazilXuxue Feng RENEWAL
Aditya N SergiAustraliaElwin Sharvill UNQUALIFIED
Morrow K SergiFranceElwin Sharvill NEW
Salvatore K OstroskyFranceElwin Sharvill UNQUALIFIED
Maria U AmigonCanadaIvan Magalhaes QUALIFIED
Clifford I CaudyAustraliaOnyama Limba QUALIFIED
James J AmigonSpainElwin Sharvill NEGOTIATION
Darci W DilliardCanadaIvan Magalhaes RENEWAL
Nicolas M MarrierArgentinaXuxue Feng PROPOSAL
Munro P NickaSpainBernardo Dominic NEW
Kadeem A MorascaCanadaIvan Magalhaes NEGOTIATION
Aditya F DarakjyUnited KingdomOnyama Limba RENEWAL
Clifford D SchemmerJapanElwin Sharvill PROPOSAL
Darci L ShinkoFranceBernardo Dominic PROPOSAL
Stacey O VenereCanadaIoni Bowcher PROPOSAL
Maisha Y GarufiIndiaBernardo Dominic RENEWAL
Stacey B WhobreySpainIvan Magalhaes NEGOTIATION
Stacey T MarrierArgentinaIvan Magalhaes PROPOSAL
Morrow B PerinArgentinaAsiya Javayant QUALIFIED
Misaki X BowleyAustraliaAsiya Javayant RENEWAL
Maria F MaletCanadaAnna Fali QUALIFIED
Alejandro L ButtSpainAnna Fali NEW
Emily K RoysterArgentinaStephen Shaw NEW
Arvin K MarrierAustraliaIoni Bowcher RENEWAL
Mayumi O FlosiItalyAsiya Javayant RENEWAL
Deepesh M RoysterSpainAnna Fali RENEWAL
Maisha L MarrierFranceBernardo Dominic QUALIFIED
Misaki B SlusarskiGermanyXuxue Feng NEW
Jeanfrancois I FollerRussiaXuxue Feng QUALIFIED
Ashley E MaletGermanyElwin Sharvill PROPOSAL
Darci C AlbaresSpainIoni Bowcher PROPOSAL
Rodrigues W AmigonAustraliaAnna Fali RENEWAL
Leon B RutaCanadaElwin Sharvill NEW
Jennifer L GauchoCanadaBernardo Dominic QUALIFIED
Frozen Columns
Name
Salvatore H Ostrosky
Jones R Bolognia
Tony E Dilliard
Leon M Caudy
Francesco Y Briddick
Isabel G Kusko
Leja U Foller
Isabel A Doe
Ivar I Ruta
Faith W Caudy
Jeanfrancois B Vocelka
Clifford V Glick
Silvio M Garufi
Kaitlin P Glick
Aditya E Wieser
Claire Q Gaucho
Greenwood A Vocelka
Smith H Butt
Jeanfrancois I Caldarera
Misaki K Iturbide
Mujtaba L Briddick
Faith L Doe
Stacey S Inouye
Smith V Perin
Arvin N Nicka
Sinclair B Albares
Chavez M Butt
Chavez B Tollner
Stacey V Vocelka
Aruna G Sergi
Mujtaba A Venere
Antonio T Foller
Kaitlin R Vocelka
Silvio L Darakjy
Octavia X Flosi
Silvio U Malet
Maisha E Oldroyd
Isabel E Schemmer
Cody D Gillian
Ricardo M Perin
Sinclair R Gillian
Salvatore P Doe
Leja B Tollner
Claire X Gaucho
Costa T Flosi
Munro U Glick
Ricardo A Royster
David L Tollner
Munro H Sergi
Johnson K Vocelka
IdCountryDate
1000Spain2026-06-25
1001Canada2026-07-04
1002Brazil2026-06-25
1003Italy2026-06-16
1004Italy2026-06-09
1005Brazil2026-07-02
1006United Kingdom2026-06-27
1007India2026-06-29
1008Spain2026-06-28
1009Australia2026-06-08
1010France2026-06-24
1011United Kingdom2026-07-01
1012United Kingdom2026-06-19
1013Spain2026-06-25
1014Argentina2026-06-07
1015France2026-06-11
1016Italy2026-06-19
1017Italy2026-06-14
1018Germany2026-06-24
1019Argentina2026-06-23
1020France2026-07-01
1021Argentina2026-06-15
1022India2026-06-28
1023Canada2026-06-11
1024Brazil2026-06-21
1025United Kingdom2026-06-11
1026Germany2026-06-20
1027Australia2026-06-25
1028Russia2026-06-22
1029Spain2026-06-16
1030Italy2026-06-25
1031Germany2026-06-12
1032Japan2026-06-20
1033Japan2026-06-27
1034Japan2026-06-27
1035France2026-06-24
1036India2026-07-04
1037Japan2026-06-14
1038France2026-06-15
1039Spain2026-06-17
1040Canada2026-06-24
1041Spain2026-06-20
1042India2026-07-03
1043India2026-06-27
1044Russia2026-06-10
1045France2026-06-09
1046Russia2026-06-10
1047Brazil2026-06-07
1048Canada2026-07-04
1049United Kingdom2026-06-30

On-Demand Data

NameIdCountryDate
Darci V Kusko1000Italy2026-06-18
Claire N Saylors1001Germany2026-06-28
Antonio O Campain1002Germany2026-06-26
Sinclair U Waycott1003France2026-06-20
Maria Z Flosi1004Argentina2026-06-08
Arvin R Stenseth1005France2026-06-15
Mujtaba Z Perin1006Argentina2026-06-12
Emily C Flosi1007France2026-06-20
Morrow L Bolognia1008Brazil2026-06-21
Cody U Kusko1009France2026-06-15
Francesco D Dilliard1010Canada2026-06-08
Jones C Royster1011Argentina2026-07-01
Alejandro J Malet1012Russia2026-06-27
Jefferson X Gaucho1013Japan2026-06-12
Antonio Y Caudy1014Spain2026-06-22
Deepesh K Waycott1015Russia2026-06-05
Johnson I Butt1016United Kingdom2026-06-24
Costa I Figeroa1017Spain2026-06-27
Faith Q Kusko1018Brazil2026-06-26
Julie I Butt1019United Kingdom2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith G NestleGermanyXuxue Feng RENEWAL
Maria P MarrierFranceStephen Shaw RENEWAL
Aditya I CampainGermanyIvan Magalhaes QUALIFIED
Jeanfrancois Z SlusarskiUnited KingdomXuxue Feng RENEWAL
Deepesh L BowleyGermanyElwin Sharvill NEGOTIATION
Salvatore U ChuiAustraliaIvan Magalhaes QUALIFIED
Maisha A OstroskyArgentinaXuxue Feng NEW
Jones O ChuiItalyXuxue Feng RENEWAL
Aruna O KuskoItalyBernardo Dominic NEW
James R SaylorsBrazilElwin Sharvill QUALIFIED
Misaki P RutaJapanIvan Magalhaes NEGOTIATION
Nicolas Q FollerArgentinaStephen Shaw NEW
Mayumi V NestleArgentinaAmy Elsner NEW
Greenwood V RulapaughBrazilXuxue Feng QUALIFIED
Darci I InouyeArgentinaBernardo Dominic PROPOSAL
Misaki Q ChuiCanadaXuxue Feng QUALIFIED
Ashley L RimArgentinaAsiya Javayant UNQUALIFIED
Leon U SergiBrazilOnyama Limba RENEWAL
Chavez P CaudyJapanIvan Magalhaes NEW
Murillo C SlusarskiIndiaAsiya Javayant UNQUALIFIED
James J CaldareraBrazilIvan Magalhaes RENEWAL
Isabel J RimBrazilStephen Shaw RENEWAL
Tony K MaletJapanElwin Sharvill UNQUALIFIED
Johnson G ButtIndiaBernardo Dominic UNQUALIFIED
Aika I SaylorsAustraliaIoni Bowcher QUALIFIED
Mujtaba P GillianIndiaElwin Sharvill NEW
Clifford J VocelkaFranceOnyama Limba NEGOTIATION
Misaki C RulapaughRussiaAsiya Javayant UNQUALIFIED
Jefferson U TollnerUnited KingdomAmy Elsner PROPOSAL
Aditya U SaylorsSpainElwin Sharvill NEW
Rodrigues Z MaletSpainIvan Magalhaes NEGOTIATION
Octavia Q DilliardArgentinaAnna Fali PROPOSAL
Stacey U TollnerGermanyIvan Magalhaes RENEWAL
Mujtaba M FerenczArgentinaIvan Magalhaes NEGOTIATION
Julie M BologniaJapanOnyama Limba QUALIFIED
Sinclair Z MorascaRussiaAnna Fali NEW
Antonio A VocelkaArgentinaIvan Magalhaes NEGOTIATION
Leja A KolmetzSpainAnna Fali RENEWAL
Aruna Y GauchoIndiaElwin Sharvill UNQUALIFIED
Darci R DilliardItalyXuxue Feng 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>