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
Jones O DarakjySpainBernardo Dominic QUALIFIED
Ricardo B ButtJapanAsiya Javayant NEGOTIATION
Jeanfrancois V DilliardArgentinaIoni Bowcher UNQUALIFIED
Smith S GillianItalyIvan Magalhaes NEGOTIATION
Rodrigues P AlbaresIndiaAsiya Javayant NEW
Maria Z FerenczRussiaOnyama Limba NEW
Aika O MaletFranceStephen Shaw QUALIFIED
Darci N FigeroaAustraliaStephen Shaw NEGOTIATION
Faith E MarrierRussiaElwin Sharvill NEGOTIATION
Ashley S MaletUnited KingdomOnyama Limba RENEWAL
Mujtaba W RimUnited KingdomAnna Fali NEW
Ashley W MorascaJapanAmy Elsner QUALIFIED
Antonio A VenereGermanyAsiya Javayant RENEWAL
Izzy K WaycottBrazilAnna Fali PROPOSAL
Adams A SchemmerItalyAsiya Javayant NEGOTIATION
Izzy J PoquetteFranceOnyama Limba RENEWAL
Ivar L ButtUnited KingdomStephen Shaw PROPOSAL
Smith S BriddickJapanOnyama Limba QUALIFIED
Stacey X OstroskyIndiaBernardo Dominic PROPOSAL
Jennifer V ChuiAustraliaIoni Bowcher NEGOTIATION
Maria E MarrierBrazilOnyama Limba UNQUALIFIED
Greenwood P GillianUnited KingdomIoni Bowcher NEW
Kadeem V MarrierGermanyBernardo Dominic NEGOTIATION
Stacey G GlickAustraliaOnyama Limba NEW
Darci L MaletFranceOnyama Limba PROPOSAL
Stacey R PerinRussiaAmy Elsner NEGOTIATION
Stacey J CaudyItalyAnna Fali PROPOSAL
Clifford Z SergiBrazilIvan Magalhaes QUALIFIED
Nicolas W RoysterBrazilAmy Elsner NEW
Francesco R AlbaresJapanAmy Elsner UNQUALIFIED
Leja Q WhobreyUnited KingdomXuxue Feng RENEWAL
David K TollnerCanadaOnyama Limba RENEWAL
Stacey Z WhobreyArgentinaIvan Magalhaes RENEWAL
Munro N ButtRussiaOnyama Limba UNQUALIFIED
Ashley Z MarrierUnited KingdomBernardo Dominic QUALIFIED
Jefferson H WieserSpainOnyama Limba NEGOTIATION
Leja W MaletArgentinaAnna Fali QUALIFIED
Kaitlin H FlosiAustraliaIvan Magalhaes QUALIFIED
Murillo U RimSpainAnna Fali NEW
Alejandro Y DarakjyJapanAmy Elsner QUALIFIED
Emily C GauchoGermanyIoni Bowcher UNQUALIFIED
Maria M KuskoItalyOnyama Limba PROPOSAL
Aditya F IturbideCanadaBernardo Dominic UNQUALIFIED
Izzy F NestleBrazilIvan Magalhaes RENEWAL
Adams S SergiFranceIvan Magalhaes NEW
Wickens E MaletRussiaIvan Magalhaes NEW
Morrow Q RutaArgentinaAsiya Javayant PROPOSAL
Octavia T SaylorsGermanyStephen Shaw RENEWAL
Emily O SaylorsArgentinaAmy Elsner UNQUALIFIED
Stacey E RoysterAustraliaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams Z OldroydBrazilStephen Shaw RENEWAL
Kaitlin C InouyeItalyIvan Magalhaes PROPOSAL
Ricardo P NickaUnited KingdomAmy Elsner PROPOSAL
David I DoeUnited KingdomIoni Bowcher QUALIFIED
Tony M GillianUnited KingdomOnyama Limba PROPOSAL
Johnson I FlosiSpainAmy Elsner RENEWAL
Costa J SergiRussiaAmy Elsner UNQUALIFIED
David K GillianUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore C RulapaughJapanStephen Shaw PROPOSAL
Juan N IturbideSpainIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan A ButtBrazil2025-05-31Printing Dimensions UNQUALIFIED25Elwin Sharvill
1001Johnson H DoeBrazil2025-05-22Benton, John B Jr QUALIFIED77Anna Fali
1002Costa X RutaSpain2025-05-18Morlong Associates NEW17Asiya Javayant
1003Alejandro U DoeJapan2025-06-05Feltz Printing Service UNQUALIFIED9Anna Fali
1004Leja C MacleadCanada2025-06-12Commercial Press NEW94Xuxue Feng
1005Cody Y BriddickItaly2025-06-05Feiner Bros UNQUALIFIED26Ioni Bowcher
1006Ashley N SlusarskiAustralia2025-05-30Chemel, James L Cpa NEW20Elwin Sharvill
1007Kaitlin O AlbaresCanada2025-05-18Morlong Associates UNQUALIFIED86Onyama Limba
1008Ivar U ButtItaly2025-06-10Printing Dimensions UNQUALIFIED96Elwin Sharvill
1009Ivar F KuskoRussia2025-05-27Chanay, Jeffrey A Esq QUALIFIED39Ivan Magalhaes
1010Clifford C WieserSpain2025-05-30Chanay, Jeffrey A Esq NEW70Onyama Limba
1011Claire Y VocelkaUnited Kingdom2025-05-19Buckley Miller Wright NEW52Stephen Shaw
1012Kadeem G MorascaItaly2025-06-04Buckley Miller Wright NEW61Onyama Limba
1013Maisha L ShinkoArgentina2025-06-03Commercial Press NEGOTIATION41Anna Fali
1014Misaki Q ChuiGermany2025-06-01Printing Dimensions UNQUALIFIED35Ivan Magalhaes
1015Chavez Q FollerUnited Kingdom2025-05-18Chemel, James L Cpa QUALIFIED56Asiya Javayant
1016Aditya C GarufiArgentina2025-06-10Truhlar And Truhlar Attys NEGOTIATION75Xuxue Feng
1017Octavia F FlosiCanada2025-05-30Feltz Printing Service UNQUALIFIED86Xuxue Feng
1018Jefferson T ButtRussia2025-05-25King, Christopher A Esq RENEWAL84Stephen Shaw
1019Silvio V BologniaCanada2025-05-26King, Christopher A Esq UNQUALIFIED85Anna Fali
1020Greenwood Z MaletRussia2025-06-06Rangoni Of Florence NEGOTIATION98Onyama Limba
1021Rodrigues M FerenczSpain2025-05-23Feltz Printing Service NEW61Ivan Magalhaes
1022Costa L GauchoAustralia2025-06-06Rousseaux, Michael Esq UNQUALIFIED93Amy Elsner
1023Silvio U FlosiAustralia2025-05-19Benton, John B Jr PROPOSAL99Elwin Sharvill
1024Adams D IturbideBrazil2025-06-12Buckley Miller Wright QUALIFIED81Amy Elsner
1025Alejandro A SergiIndia2025-06-05Chapman, Ross E Esq RENEWAL51Bernardo Dominic
1026Smith H WhobreyUnited Kingdom2025-06-15King, Christopher A Esq NEGOTIATION88Ivan Magalhaes
1027Aruna W StockhamBrazil2025-06-16Benton, John B Jr UNQUALIFIED79Asiya Javayant
1028Mayumi K MarrierJapan2025-06-14Rangoni Of Florence QUALIFIED66Amy Elsner
1029Ivar V StockhamCanada2025-06-10Rangoni Of Florence UNQUALIFIED72Amy Elsner
1030Faith D GarufiJapan2025-05-19King, Christopher A Esq NEW78Amy Elsner
1031Chavez W FollerGermany2025-06-14Commercial Press UNQUALIFIED39Elwin Sharvill
1032Munro C InouyeItaly2025-06-09King, Christopher A Esq RENEWAL60Bernardo Dominic
1033Faith Q DarakjyFrance2025-05-30Feltz Printing Service NEGOTIATION84Bernardo Dominic
1034Julie J PoquetteRussia2025-06-16Dorl, James J Esq QUALIFIED61Elwin Sharvill
1035Julie K FerenczItaly2025-06-11Rousseaux, Michael Esq PROPOSAL84Amy Elsner
1036Kadeem T WhobreyArgentina2025-06-03Truhlar And Truhlar Attys NEW33Onyama Limba
1037Chavez V SaylorsUnited Kingdom2025-05-27Commercial Press NEGOTIATION8Elwin Sharvill
1038Silvio F OldroydJapan2025-06-01Rangoni Of Florence RENEWAL27Ioni Bowcher
1039Misaki K MarrierFrance2025-06-06Rousseaux, Michael Esq NEW12Xuxue Feng
1040Faith S SergiFrance2025-06-14Buckley Miller Wright NEGOTIATION90Asiya Javayant
1041Ricardo P FerenczFrance2025-06-02Truhlar And Truhlar Attys NEW28Ivan Magalhaes
1042Silvio O AlbaresAustralia2025-05-20Chanay, Jeffrey A Esq NEGOTIATION46Anna Fali
1043Tony Y DilliardCanada2025-06-11Commercial Press NEGOTIATION8Stephen Shaw
1044Alejandro E GarufiRussia2025-05-24Feltz Printing Service UNQUALIFIED35Anna Fali
1045Claire A DarakjyGermany2025-06-07Commercial Press UNQUALIFIED25Xuxue Feng
1046Munro G SlusarskiSpain2025-05-31Chanay, Jeffrey A Esq RENEWAL36Amy Elsner
1047Jeanfrancois Y PoquetteJapan2025-06-03Benton, John B Jr RENEWAL49Asiya Javayant
1048Stacey W CaldareraRussia2025-06-13Chapman, Ross E Esq RENEWAL53Xuxue Feng
1049Faith N StensethJapan2025-06-15Printing Dimensions RENEWAL63Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leja I WieserCanadaOnyama Limba RENEWAL
Chavez J RoysterGermanyBernardo Dominic PROPOSAL
David Y FigeroaRussiaAmy Elsner UNQUALIFIED
Johnson M ButtAustraliaXuxue Feng PROPOSAL
Leja L FigeroaJapanAmy Elsner RENEWAL
Emily O FigeroaUnited KingdomAnna Fali NEW
Salvatore N PoquetteGermanyIvan Magalhaes NEGOTIATION
Rodrigues M SchemmerBrazilAnna Fali NEW
Murillo N TollnerBrazilAnna Fali UNQUALIFIED
Aruna L OldroydSpainXuxue Feng UNQUALIFIED
Ashley V BowleySpainBernardo Dominic UNQUALIFIED
Jefferson V SaylorsItalyAnna Fali QUALIFIED
Murillo Q PerinUnited KingdomIoni Bowcher UNQUALIFIED
Faith I FerenczGermanyAmy Elsner UNQUALIFIED
Octavia J SlusarskiJapanAmy Elsner NEW
Claire S OldroydRussiaIvan Magalhaes RENEWAL
Ashley N BowleyAustraliaAsiya Javayant RENEWAL
Jeanfrancois C PoquetteRussiaAnna Fali NEGOTIATION
Mayumi F IturbideArgentinaOnyama Limba PROPOSAL
Claire Y StockhamRussiaElwin Sharvill PROPOSAL
James F RutaItalyIoni Bowcher QUALIFIED
Maria U RulapaughItalyOnyama Limba NEGOTIATION
Izzy O BowleyIndiaAsiya Javayant RENEWAL
Johnson B NestleGermanyBernardo Dominic PROPOSAL
Emily W PaprockiItalyAmy Elsner NEGOTIATION
Emily T AlbaresGermanyElwin Sharvill UNQUALIFIED
Cody B OstroskySpainElwin Sharvill RENEWAL
Clifford G KolmetzArgentinaElwin Sharvill PROPOSAL
Jennifer N RutaFranceIvan Magalhaes UNQUALIFIED
Nicolas U WhobreyItalyStephen Shaw PROPOSAL
Alejandro K GarufiArgentinaBernardo Dominic NEGOTIATION
Arvin U AlbaresSpainIoni Bowcher PROPOSAL
Mujtaba T BriddickItalyOnyama Limba NEGOTIATION
Juan N SaylorsUnited KingdomAnna Fali NEW
Jennifer R RutaFranceXuxue Feng NEW
Stacey W FlosiIndiaAsiya Javayant QUALIFIED
Misaki Y MorascaArgentinaAmy Elsner QUALIFIED
Greenwood K NickaItalyAnna Fali UNQUALIFIED
Jones E DilliardJapanAsiya Javayant RENEWAL
Johnson Q BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues S DoeUnited KingdomOnyama Limba QUALIFIED
Munro R GauchoItalyOnyama Limba UNQUALIFIED
Jones L GauchoItalyIvan Magalhaes PROPOSAL
Morrow V FigeroaSpainIvan Magalhaes PROPOSAL
Juan Y GillianCanadaIoni Bowcher PROPOSAL
Aditya B CaldareraArgentinaOnyama Limba NEGOTIATION
Mujtaba T KolmetzAustraliaStephen Shaw UNQUALIFIED
Smith F FollerItalyXuxue Feng UNQUALIFIED
Izzy O MaletFranceAsiya Javayant RENEWAL
Ricardo Q CampainSpainStephen Shaw UNQUALIFIED
Frozen Columns
Name
Morrow X Iturbide
James B Perin
Alejandro L Perin
Jefferson S Slusarski
Francesco Q Gaucho
Salvatore X Morasca
Ricardo S Saylors
Chavez R Malet
Murillo Q Rim
Mujtaba A Shinko
Juan Z Saylors
Maria R Bolognia
Arvin T Darakjy
Maisha Q Caldarera
Salvatore O Venere
Munro P Inouye
Leja R Doe
Jefferson Y Gaucho
Octavia E Slusarski
Francesco K Ferencz
Leja T Albares
Misaki Y Ostrosky
Juan D Malet
Johnson Y Marrier
Jones S Gillian
Costa K Shinko
Chavez F Dilliard
Jeanfrancois Q Waycott
Misaki M Rulapaugh
Jeanfrancois X Tollner
Morrow P Tollner
Sinclair K Schemmer
Kadeem J Ferencz
Jeanfrancois A Garufi
Juan O Whobrey
Claire C Doe
Kadeem N Slusarski
Smith A Rim
Leon R Campain
James E Iturbide
Rodrigues C Saylors
Nicolas R Rim
David I Iturbide
Mayumi C Caldarera
Ivar O Foller
Octavia W Nicka
James L Rulapaugh
Isabel L Ruta
Juan U Ruta
Emily C Paprocki
IdCountryDate
1000Germany2025-06-08
1001Argentina2025-05-23
1002Germany2025-05-30
1003Russia2025-06-15
1004Argentina2025-06-03
1005India2025-06-12
1006Japan2025-05-23
1007Italy2025-06-11
1008Australia2025-06-02
1009Italy2025-06-08
1010Spain2025-06-09
1011Japan2025-06-12
1012United Kingdom2025-06-02
1013France2025-06-16
1014Canada2025-06-10
1015Italy2025-06-14
1016Spain2025-05-19
1017United Kingdom2025-06-11
1018France2025-06-11
1019Brazil2025-06-16
1020Russia2025-05-26
1021Russia2025-06-15
1022Japan2025-06-05
1023Japan2025-06-12
1024Australia2025-06-04
1025France2025-06-13
1026Australia2025-05-19
1027Australia2025-06-08
1028Australia2025-05-23
1029Spain2025-05-27
1030Spain2025-05-23
1031India2025-06-12
1032Germany2025-06-09
1033Brazil2025-05-18
1034Argentina2025-06-06
1035Italy2025-06-15
1036Russia2025-06-07
1037United Kingdom2025-06-05
1038United Kingdom2025-06-01
1039Brazil2025-05-25
1040Australia2025-06-01
1041Italy2025-05-19
1042Italy2025-05-25
1043India2025-05-24
1044Russia2025-05-24
1045United Kingdom2025-06-12
1046Argentina2025-06-16
1047Russia2025-05-24
1048Japan2025-06-06
1049United Kingdom2025-06-14

On-Demand Data

NameIdCountryDate
Juan S Stenseth1000Russia2025-05-19
Claire W Oldroyd1001India2025-05-31
Claire G Sergi1002India2025-06-06
Alejandro R Gaucho1003France2025-06-13
Kadeem C Malet1004Canada2025-06-05
Misaki W Oldroyd1005Australia2025-06-05
Jefferson Q Iturbide1006Japan2025-05-30
Sinclair L Iturbide1007India2025-06-02
Murillo B Flosi1008Italy2025-06-13
Kaitlin L Glick1009France2025-06-08
Francesco A Royster1010Italy2025-05-20
Darci W Vocelka1011France2025-06-10
Aditya H Marrier1012Spain2025-06-06
Jennifer Q Whobrey1013India2025-06-06
Faith Y Bolognia1014France2025-05-26
Isabel Y Caudy1015Japan2025-05-28
Deepesh P Flosi1016Russia2025-05-29
Costa Y Nestle1017Canada2025-05-22
Alejandro Q Morasca1018France2025-05-18
Faith O Rim1019Argentina2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony D FigeroaFranceIoni Bowcher UNQUALIFIED
Nicolas Q RulapaughRussiaOnyama Limba PROPOSAL
Misaki I SergiGermanyIoni Bowcher PROPOSAL
Morrow H GlickCanadaXuxue Feng NEW
Kadeem B NickaUnited KingdomIvan Magalhaes RENEWAL
David B RutaBrazilAsiya Javayant PROPOSAL
Salvatore E ChuiItalyElwin Sharvill NEW
Silvio D SaylorsFranceBernardo Dominic NEGOTIATION
Ricardo E IturbideFranceIvan Magalhaes QUALIFIED
Greenwood X GarufiIndiaAsiya Javayant QUALIFIED
Alejandro C BologniaSpainElwin Sharvill QUALIFIED
Adams B PoquetteCanadaIoni Bowcher NEGOTIATION
Greenwood N WieserRussiaAmy Elsner NEW
Jennifer K SaylorsBrazilIvan Magalhaes NEW
Clifford H GarufiSpainXuxue Feng UNQUALIFIED
Arvin F StockhamIndiaElwin Sharvill RENEWAL
Costa P TollnerGermanyXuxue Feng QUALIFIED
Clifford R BologniaRussiaAmy Elsner NEW
Jennifer M NestleGermanyAmy Elsner QUALIFIED
Munro L KuskoSpainOnyama Limba NEGOTIATION
Kadeem V MorascaFranceAmy Elsner NEW
Alejandro A GarufiCanadaAsiya Javayant UNQUALIFIED
Salvatore S VenereIndiaOnyama Limba UNQUALIFIED
Maisha N TollnerGermanyXuxue Feng PROPOSAL
Maisha N WhobreyFranceBernardo Dominic NEGOTIATION
Mayumi U PoquetteGermanyOnyama Limba RENEWAL
Maria V RoysterGermanyBernardo Dominic PROPOSAL
Arvin Y GarufiJapanStephen Shaw UNQUALIFIED
Leja K MacleadItalyOnyama Limba NEGOTIATION
Isabel B GlickAustraliaXuxue Feng NEW
Aika P OstroskyItalyElwin Sharvill RENEWAL
Maisha M SergiCanadaElwin Sharvill QUALIFIED
Johnson L VenereAustraliaIoni Bowcher RENEWAL
Mayumi O PoquetteJapanElwin Sharvill QUALIFIED
Rodrigues N NestleArgentinaAnna Fali QUALIFIED
Tony Q FollerJapanIoni Bowcher UNQUALIFIED
Costa N IturbideItalyOnyama Limba PROPOSAL
Julie A RimRussiaAsiya Javayant UNQUALIFIED
Kadeem J OldroydGermanyXuxue Feng RENEWAL
Kaitlin I GarufiRussiaAmy Elsner 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>