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
Jennifer N NickaBrazilXuxue Feng QUALIFIED
Murillo R IturbideArgentinaStephen Shaw UNQUALIFIED
Leja O BowleyFranceAmy Elsner NEGOTIATION
Juan Y OldroydUnited KingdomIoni Bowcher NEW
Ivar G GarufiSpainAsiya Javayant RENEWAL
Jeanfrancois R PaprockiAustraliaAsiya Javayant NEGOTIATION
Arvin K BowleyRussiaIvan Magalhaes RENEWAL
Kadeem M BowleyFranceXuxue Feng RENEWAL
Chavez E ShinkoArgentinaStephen Shaw NEGOTIATION
Costa K MacleadFranceStephen Shaw RENEWAL
Jennifer S GillianGermanyBernardo Dominic QUALIFIED
Aika Y VenereBrazilAmy Elsner RENEWAL
Morrow V WhobreyArgentinaAsiya Javayant RENEWAL
Arvin Q SchemmerSpainXuxue Feng NEGOTIATION
James L DarakjyArgentinaBernardo Dominic UNQUALIFIED
Aditya K FerenczIndiaXuxue Feng NEGOTIATION
Aditya R OstroskyFranceAmy Elsner RENEWAL
Aika C GillianGermanyIvan Magalhaes NEGOTIATION
Aika J VocelkaSpainAsiya Javayant NEW
Francesco Y DarakjySpainStephen Shaw QUALIFIED
Isabel Q CampainAustraliaBernardo Dominic UNQUALIFIED
Izzy X DoeItalyXuxue Feng NEGOTIATION
David D AmigonUnited KingdomIvan Magalhaes NEW
Johnson N MarrierIndiaAsiya Javayant NEGOTIATION
Faith E PoquetteIndiaXuxue Feng UNQUALIFIED
Aditya C FigeroaGermanyBernardo Dominic NEGOTIATION
Costa S RutaJapanIoni Bowcher NEGOTIATION
Isabel H RulapaughRussiaOnyama Limba PROPOSAL
Jeanfrancois D StensethItalyIoni Bowcher RENEWAL
Leja Y DoeCanadaAnna Fali RENEWAL
Octavia W MarrierArgentinaAmy Elsner PROPOSAL
Aika N GillianBrazilBernardo Dominic QUALIFIED
Tony J GauchoFranceXuxue Feng UNQUALIFIED
Munro Z OstroskyArgentinaIoni Bowcher NEW
Adams D ShinkoAustraliaAsiya Javayant PROPOSAL
Cody I VocelkaSpainAmy Elsner UNQUALIFIED
Kadeem Z GauchoFranceAsiya Javayant PROPOSAL
Murillo E FlosiFranceIvan Magalhaes NEW
Faith S GarufiGermanyXuxue Feng QUALIFIED
Tony H ShinkoJapanAsiya Javayant UNQUALIFIED
Morrow R NickaAustraliaAsiya Javayant PROPOSAL
Faith D DoeItalyElwin Sharvill RENEWAL
Clifford J ShinkoUnited KingdomStephen Shaw NEGOTIATION
Arvin T PerinGermanyStephen Shaw NEW
David Z MorascaFranceIvan Magalhaes NEW
Aika L MarrierItalyXuxue Feng UNQUALIFIED
Ivar M MaletBrazilXuxue Feng UNQUALIFIED
Sinclair H SchemmerUnited KingdomBernardo Dominic NEW
Maisha N CampainAustraliaAnna Fali UNQUALIFIED
Maisha E PerinSpainIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo P PaprockiUnited KingdomElwin Sharvill NEW
Ashley C FollerRussiaElwin Sharvill QUALIFIED
Emily I ChuiAustraliaIoni Bowcher RENEWAL
Tony C NickaBrazilStephen Shaw NEW
Tony D AmigonJapanIvan Magalhaes PROPOSAL
Smith Q TollnerSpainAsiya Javayant PROPOSAL
Deepesh F StensethIndiaAnna Fali NEGOTIATION
Costa H MacleadUnited KingdomBernardo Dominic RENEWAL
Chavez I DarakjySpainAnna Fali NEGOTIATION
Jefferson J CaudyFranceAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood P IturbideItaly2026-07-16Morlong Associates NEGOTIATION72Ivan Magalhaes
1001Murillo L StensethUnited Kingdom2026-07-11Rousseaux, Michael Esq UNQUALIFIED21Ioni Bowcher
1002Ivar I FigeroaItaly2026-07-21Chanay, Jeffrey A Esq NEW53Ivan Magalhaes
1003Ivar R RulapaughAustralia2026-08-04Chemel, James L Cpa NEGOTIATION61Ivan Magalhaes
1004Emily B SchemmerFrance2026-07-15Chapman, Ross E Esq RENEWAL49Elwin Sharvill
1005Claire D ButtArgentina2026-07-11Chapman, Ross E Esq PROPOSAL14Ivan Magalhaes
1006Claire F GlickUnited Kingdom2026-07-20Feiner Bros NEW67Ioni Bowcher
1007Aditya H PerinAustralia2026-07-17Commercial Press QUALIFIED85Amy Elsner
1008Sinclair V SaylorsUnited Kingdom2026-08-06Rangoni Of Florence UNQUALIFIED17Stephen Shaw
1009Aika J OldroydAustralia2026-07-27Rousseaux, Michael Esq NEGOTIATION73Asiya Javayant
1010Ivar K KolmetzCanada2026-07-12Morlong Associates NEW4Asiya Javayant
1011Juan B PerinFrance2026-07-10Morlong Associates QUALIFIED29Onyama Limba
1012Chavez I DilliardJapan2026-07-17Buckley Miller Wright PROPOSAL19Asiya Javayant
1013Jennifer Q VenereRussia2026-07-10King, Christopher A Esq QUALIFIED12Asiya Javayant
1014Jefferson W MacleadIndia2026-07-29Buckley Miller Wright QUALIFIED0Ivan Magalhaes
1015Isabel K PoquetteRussia2026-07-16Printing Dimensions UNQUALIFIED12Xuxue Feng
1016Greenwood O OstroskyIndia2026-07-15Chanay, Jeffrey A Esq QUALIFIED71Anna Fali
1017Faith A TollnerGermany2026-07-13Feltz Printing Service RENEWAL7Xuxue Feng
1018Costa H SchemmerJapan2026-07-12Rangoni Of Florence NEGOTIATION63Xuxue Feng
1019Misaki Y OldroydSpain2026-08-01Morlong Associates QUALIFIED20Bernardo Dominic
1020Salvatore Q PoquetteFrance2026-07-27Rousseaux, Michael Esq UNQUALIFIED21Onyama Limba
1021Clifford B CampainFrance2026-07-29Commercial Press UNQUALIFIED10Amy Elsner
1022Munro Y PerinSpain2026-07-13Rangoni Of Florence RENEWAL61Elwin Sharvill
1023Leon N AlbaresUnited Kingdom2026-07-18Commercial Press QUALIFIED88Ioni Bowcher
1024Aruna S MarrierIndia2026-07-29Benton, John B Jr NEGOTIATION70Elwin Sharvill
1025Juan Z StensethUnited Kingdom2026-07-20Chanay, Jeffrey A Esq NEW79Ioni Bowcher
1026Smith D RutaGermany2026-07-15Dorl, James J Esq QUALIFIED90Elwin Sharvill
1027Johnson H PerinAustralia2026-08-02King, Christopher A Esq NEW17Stephen Shaw
1028Misaki V FigeroaBrazil2026-07-14Feltz Printing Service NEGOTIATION22Anna Fali
1029Mujtaba O PerinRussia2026-08-07Morlong Associates UNQUALIFIED45Xuxue Feng
1030Murillo B GillianIndia2026-08-05Rangoni Of Florence QUALIFIED69Amy Elsner
1031Ivar O MarrierUnited Kingdom2026-07-25Feiner Bros QUALIFIED14Xuxue Feng
1032Stacey N GillianArgentina2026-08-06Chapman, Ross E Esq NEW67Amy Elsner
1033Ivar U VocelkaFrance2026-07-10Morlong Associates NEW72Amy Elsner
1034James O FlosiUnited Kingdom2026-07-20Truhlar And Truhlar Attys NEGOTIATION61Elwin Sharvill
1035Clifford H FerenczIndia2026-07-12Chemel, James L Cpa NEGOTIATION68Amy Elsner
1036Morrow P AlbaresGermany2026-07-14Chemel, James L Cpa NEGOTIATION15Bernardo Dominic
1037Julie P RoysterGermany2026-08-06Dorl, James J Esq NEGOTIATION28Onyama Limba
1038Aika K SlusarskiJapan2026-07-26Truhlar And Truhlar Attys NEW60Stephen Shaw
1039Clifford W VenereJapan2026-07-26Chanay, Jeffrey A Esq NEW29Asiya Javayant
1040Silvio R DarakjyItaly2026-08-05Printing Dimensions PROPOSAL83Ioni Bowcher
1041Izzy S SchemmerBrazil2026-07-21Dorl, James J Esq NEW45Anna Fali
1042Morrow K RutaAustralia2026-07-24Feltz Printing Service NEGOTIATION96Xuxue Feng
1043Octavia N DilliardFrance2026-07-25Rousseaux, Michael Esq QUALIFIED71Bernardo Dominic
1044Faith O GillianBrazil2026-08-01Chapman, Ross E Esq RENEWAL39Xuxue Feng
1045Mayumi O RimUnited Kingdom2026-08-02Buckley Miller Wright RENEWAL71Ivan Magalhaes
1046Jones J KuskoItaly2026-08-03Chanay, Jeffrey A Esq QUALIFIED50Asiya Javayant
1047James W IturbideFrance2026-07-23Rousseaux, Michael Esq RENEWAL48Anna Fali
1048Mayumi Q ChuiFrance2026-07-16Benton, John B Jr NEGOTIATION79Elwin Sharvill
1049Ivar J PaprockiArgentina2026-07-19Buckley Miller Wright NEW0Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow U DarakjyIndiaAmy Elsner UNQUALIFIED
Juan M GarufiFranceAmy Elsner PROPOSAL
Kadeem B WieserBrazilBernardo Dominic QUALIFIED
Johnson R CampainJapanAsiya Javayant RENEWAL
Mayumi A DarakjyAustraliaStephen Shaw QUALIFIED
Darci K BriddickGermanyOnyama Limba NEW
Alejandro O NickaItalyIvan Magalhaes NEGOTIATION
Wickens Z PoquetteJapanXuxue Feng QUALIFIED
Antonio N CampainItalyIvan Magalhaes NEGOTIATION
Ashley T DoeUnited KingdomOnyama Limba UNQUALIFIED
Murillo Q SergiSpainAmy Elsner NEGOTIATION
Darci V KuskoFranceXuxue Feng QUALIFIED
Adams L MacleadCanadaBernardo Dominic NEW
Jennifer D MorascaSpainElwin Sharvill RENEWAL
Julie N BowleyBrazilElwin Sharvill QUALIFIED
Emily S MacleadJapanBernardo Dominic QUALIFIED
Leon Z BologniaGermanyElwin Sharvill UNQUALIFIED
Darci T FlosiBrazilStephen Shaw UNQUALIFIED
Jefferson X BowleyIndiaIoni Bowcher PROPOSAL
Jennifer X VenereGermanyStephen Shaw RENEWAL
Isabel N InouyeSpainElwin Sharvill QUALIFIED
Munro F BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Juan R InouyeCanadaOnyama Limba NEW
Jefferson T WaycottFranceElwin Sharvill UNQUALIFIED
Juan I ChuiRussiaXuxue Feng RENEWAL
Ashley N RoysterAustraliaAnna Fali UNQUALIFIED
Mujtaba I KolmetzIndiaOnyama Limba UNQUALIFIED
Costa D CampainAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois G KolmetzRussiaIoni Bowcher NEGOTIATION
Ashley U GarufiGermanyIvan Magalhaes RENEWAL
Antonio Z VenereBrazilIoni Bowcher NEW
Deepesh S CaudyCanadaElwin Sharvill RENEWAL
Cody Y SergiJapanAnna Fali NEGOTIATION
Murillo M ChuiItalyStephen Shaw RENEWAL
Mayumi Y AlbaresAustraliaAsiya Javayant NEGOTIATION
Faith I KuskoSpainIoni Bowcher QUALIFIED
Rodrigues A FerenczArgentinaIoni Bowcher QUALIFIED
Jefferson F WaycottAustraliaBernardo Dominic NEGOTIATION
Maria P PoquetteSpainAsiya Javayant NEGOTIATION
Tony D GillianBrazilElwin Sharvill UNQUALIFIED
Kadeem X OldroydItalyAmy Elsner RENEWAL
Costa M StensethItalyIoni Bowcher QUALIFIED
Jennifer F BologniaBrazilXuxue Feng QUALIFIED
Emily A KolmetzJapanIvan Magalhaes UNQUALIFIED
Leon H OstroskyItalyIvan Magalhaes UNQUALIFIED
Aditya L MacleadJapanElwin Sharvill UNQUALIFIED
Aruna V KuskoJapanIoni Bowcher UNQUALIFIED
Adams Y RimCanadaElwin Sharvill UNQUALIFIED
Greenwood W MarrierGermanyStephen Shaw RENEWAL
Juan R CampainIndiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Stacey B Waycott
Claire N Campain
Jones A Doe
Adams T Bolognia
Adams G Poquette
Claire B Gillian
Chavez S Iturbide
Adams N Morasca
Maria M Paprocki
Faith Q Tollner
Murillo P Stockham
Sinclair U Foller
Misaki D Rim
Deepesh A Sergi
James Z Poquette
Costa F Garufi
Aditya I Nicka
Octavia U Shinko
Chavez R Flosi
Octavia M Ruta
Izzy A Wieser
Leon K Paprocki
Jeanfrancois S Kolmetz
James V Perin
Morrow E Bowley
Smith Q Gillian
Rodrigues E Paprocki
Mayumi N Rulapaugh
Munro Z Foller
Maria A Morasca
Ashley C Waycott
Munro E Iturbide
Isabel S Maclead
Darci X Nicka
Murillo H Ostrosky
Misaki E Darakjy
David R Albares
James W Bowley
Silvio L Foller
Nicolas X Doe
Costa G Butt
Ivar S Vocelka
David L Paprocki
Clifford U Caldarera
Costa A Tollner
Silvio R Rulapaugh
Deepesh G Briddick
Isabel L Tollner
Maria B Slusarski
Octavia A Nestle
IdCountryDate
1000Japan2026-07-13
1001Brazil2026-07-11
1002Italy2026-07-23
1003Canada2026-07-10
1004Japan2026-07-18
1005Canada2026-08-01
1006Japan2026-07-29
1007Spain2026-07-27
1008Spain2026-07-29
1009Argentina2026-08-02
1010Australia2026-07-26
1011Germany2026-07-13
1012Australia2026-07-20
1013Canada2026-07-19
1014Australia2026-07-29
1015Canada2026-08-05
1016India2026-07-24
1017Germany2026-07-19
1018Argentina2026-07-12
1019Germany2026-07-11
1020Spain2026-07-11
1021Italy2026-07-11
1022Spain2026-07-28
1023Russia2026-07-24
1024Germany2026-07-29
1025Canada2026-07-15
1026France2026-08-01
1027Italy2026-07-18
1028Brazil2026-07-17
1029Japan2026-07-23
1030France2026-07-20
1031United Kingdom2026-07-25
1032Spain2026-07-16
1033Spain2026-07-25
1034Germany2026-07-14
1035Germany2026-07-16
1036Japan2026-07-23
1037Japan2026-08-02
1038France2026-07-21
1039Canada2026-07-10
1040India2026-07-17
1041Australia2026-07-17
1042Canada2026-07-10
1043Australia2026-07-30
1044Japan2026-07-15
1045Russia2026-07-17
1046Japan2026-07-10
1047Germany2026-07-22
1048Argentina2026-07-20
1049Italy2026-07-25

On-Demand Data

NameIdCountryDate
Salvatore Q Stockham1000Australia2026-08-07
Deepesh L Ruta1001Argentina2026-07-31
Sinclair C Foller1002Germany2026-07-29
Maisha U Paprocki1003Australia2026-07-18
Darci A Gaucho1004Australia2026-07-31
Izzy G Ostrosky1005Russia2026-07-30
Chavez A Albares1006India2026-07-30
Juan D Kusko1007Germany2026-07-25
Clifford T Campain1008Brazil2026-07-22
Misaki B Kusko1009Spain2026-07-28
Morrow I Kolmetz1010Japan2026-07-21
Claire T Ruta1011Canada2026-07-22
Leon G Inouye1012United Kingdom2026-08-02
Ivar P Shinko1013Italy2026-07-26
Sinclair S Ostrosky1014Brazil2026-07-15
Claire J Whobrey1015Canada2026-07-18
Juan P Perin1016Brazil2026-07-11
Deepesh M Caudy1017Italy2026-07-18
Costa J Vocelka1018United Kingdom2026-07-17
Sinclair S Kolmetz1019Spain2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James F DarakjyUnited KingdomBernardo Dominic RENEWAL
Cody X DarakjyCanadaOnyama Limba NEGOTIATION
Jeanfrancois X AlbaresArgentinaIoni Bowcher PROPOSAL
Greenwood V NickaAustraliaIoni Bowcher PROPOSAL
Mujtaba G AlbaresJapanAsiya Javayant UNQUALIFIED
Ivar B MaletFranceIoni Bowcher UNQUALIFIED
Cody L WieserJapanBernardo Dominic NEGOTIATION
James N AlbaresIndiaIoni Bowcher RENEWAL
Julie U FlosiUnited KingdomAnna Fali PROPOSAL
James T FerenczIndiaAsiya Javayant NEW
Julie K FollerRussiaBernardo Dominic NEW
Deepesh Y BowleyAustraliaElwin Sharvill PROPOSAL
Costa N GauchoJapanOnyama Limba QUALIFIED
Wickens S BriddickBrazilXuxue Feng NEW
Izzy S VocelkaSpainAsiya Javayant NEW
Jefferson P AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba J NestleUnited KingdomAsiya Javayant UNQUALIFIED
Johnson B RimFranceIoni Bowcher QUALIFIED
Nicolas F ShinkoRussiaIoni Bowcher UNQUALIFIED
Arvin T MacleadIndiaOnyama Limba RENEWAL
Mayumi G OldroydJapanStephen Shaw UNQUALIFIED
Darci E DilliardUnited KingdomAsiya Javayant NEW
Sinclair T PaprockiJapanAsiya Javayant PROPOSAL
Murillo V VenereSpainElwin Sharvill PROPOSAL
Aika O NickaBrazilBernardo Dominic PROPOSAL
Emily E VocelkaCanadaStephen Shaw RENEWAL
Mayumi Z BowleyBrazilAsiya Javayant NEGOTIATION
Chavez F GlickJapanStephen Shaw QUALIFIED
Stacey U StockhamItalyOnyama Limba NEW
Ashley A StockhamGermanyStephen Shaw RENEWAL
Ivar L InouyeRussiaAsiya Javayant PROPOSAL
Antonio W CaudyIndiaAmy Elsner UNQUALIFIED
Stacey X VenereRussiaAsiya Javayant UNQUALIFIED
Kadeem C FollerArgentinaBernardo Dominic QUALIFIED
Jennifer S BowleyFranceAnna Fali QUALIFIED
Faith K FollerRussiaIoni Bowcher NEW
Maisha S PaprockiSpainAsiya Javayant NEGOTIATION
Francesco L DilliardCanadaAnna Fali QUALIFIED
Costa V GlickIndiaAsiya Javayant NEGOTIATION
Salvatore V SaylorsArgentinaIvan Magalhaes 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>