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
Greenwood K SlusarskiUnited KingdomAsiya Javayant NEW
Aika E MacleadRussiaStephen Shaw QUALIFIED
Faith L FollerSpainAsiya Javayant UNQUALIFIED
Morrow G SergiBrazilStephen Shaw QUALIFIED
Cody P OldroydCanadaBernardo Dominic UNQUALIFIED
Deepesh G CaudyFranceAnna Fali RENEWAL
Adams Z GauchoRussiaBernardo Dominic QUALIFIED
Kadeem G MaletArgentinaIoni Bowcher UNQUALIFIED
Julie I NestleFranceOnyama Limba RENEWAL
Sinclair K BriddickRussiaIvan Magalhaes QUALIFIED
Johnson Z BologniaUnited KingdomOnyama Limba NEGOTIATION
Claire Z PerinArgentinaOnyama Limba NEW
Rodrigues L ChuiArgentinaStephen Shaw RENEWAL
James C RulapaughGermanyAsiya Javayant UNQUALIFIED
Silvio S OstroskyItalyXuxue Feng RENEWAL
Kaitlin J VenereUnited KingdomAmy Elsner NEGOTIATION
Juan C AmigonCanadaAmy Elsner NEGOTIATION
Ivar B MarrierFranceStephen Shaw NEGOTIATION
Francesco M DilliardCanadaOnyama Limba UNQUALIFIED
Aruna I BologniaUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro D RulapaughAustraliaAmy Elsner NEGOTIATION
Tony J GlickCanadaOnyama Limba NEGOTIATION
Costa T DilliardIndiaAmy Elsner RENEWAL
Aditya W CaudyArgentinaAsiya Javayant QUALIFIED
Aruna O VenereAustraliaXuxue Feng QUALIFIED
Costa K StockhamJapanAnna Fali RENEWAL
Maisha D AmigonRussiaAsiya Javayant QUALIFIED
Ricardo M DoeSpainIvan Magalhaes QUALIFIED
Johnson L SergiFranceElwin Sharvill NEW
Adams V GauchoBrazilStephen Shaw QUALIFIED
Ivar Z FlosiArgentinaAmy Elsner NEGOTIATION
Jeanfrancois R MaletArgentinaXuxue Feng QUALIFIED
Munro Q CampainGermanyStephen Shaw UNQUALIFIED
Jefferson A MarrierBrazilIvan Magalhaes UNQUALIFIED
James R WaycottIndiaElwin Sharvill RENEWAL
Ricardo X KuskoRussiaIvan Magalhaes UNQUALIFIED
Leja C PaprockiCanadaBernardo Dominic NEW
Aruna D KolmetzCanadaXuxue Feng PROPOSAL
Salvatore O SergiRussiaStephen Shaw RENEWAL
Leja F RimGermanyAmy Elsner PROPOSAL
Costa L GarufiJapanBernardo Dominic NEW
Jennifer A GarufiUnited KingdomIoni Bowcher QUALIFIED
Faith C WhobreySpainAmy Elsner NEGOTIATION
Ricardo V StockhamAustraliaStephen Shaw PROPOSAL
Antonio B ButtUnited KingdomAnna Fali NEGOTIATION
Claire P RulapaughSpainOnyama Limba UNQUALIFIED
Aditya H MarrierJapanIoni Bowcher PROPOSAL
Cody W MaletFranceStephen Shaw QUALIFIED
Darci F AmigonArgentinaAmy Elsner PROPOSAL
Nicolas I KuskoGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Wickens H DoeCanadaAsiya Javayant NEGOTIATION
Munro I FlosiArgentinaBernardo Dominic NEGOTIATION
Munro C FerenczFranceIoni Bowcher NEGOTIATION
Jennifer R StensethUnited KingdomAnna Fali RENEWAL
Aika R SergiArgentinaAmy Elsner NEGOTIATION
Chavez Q MaletGermanyBernardo Dominic NEGOTIATION
Nicolas B NestleCanadaXuxue Feng RENEWAL
Claire J ChuiAustraliaBernardo Dominic UNQUALIFIED
Silvio J BologniaUnited KingdomIoni Bowcher QUALIFIED
Francesco T GauchoRussiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro R NestleGermany2025-06-07Buckley Miller Wright RENEWAL33Ivan Magalhaes
1001Kaitlin F StockhamIndia2025-05-20Feltz Printing Service PROPOSAL27Ivan Magalhaes
1002Salvatore N DoeItaly2025-06-14Commercial Press UNQUALIFIED17Amy Elsner
1003Maisha R BologniaGermany2025-05-28Chapman, Ross E Esq NEW88Asiya Javayant
1004Nicolas J IturbideUnited Kingdom2025-05-25Benton, John B Jr QUALIFIED66Bernardo Dominic
1005Maisha K MorascaJapan2025-05-30Feltz Printing Service NEW59Bernardo Dominic
1006Greenwood O DilliardJapan2025-06-12Rousseaux, Michael Esq UNQUALIFIED30Ioni Bowcher
1007Faith T SlusarskiArgentina2025-05-19Feiner Bros NEW68Anna Fali
1008Leon L StockhamUnited Kingdom2025-06-10Feltz Printing Service PROPOSAL70Amy Elsner
1009Juan O AmigonSpain2025-06-10King, Christopher A Esq QUALIFIED14Bernardo Dominic
1010Wickens K RimSpain2025-06-06Rousseaux, Michael Esq PROPOSAL79Anna Fali
1011Juan Z FigeroaFrance2025-05-18Chapman, Ross E Esq QUALIFIED23Bernardo Dominic
1012Julie V CaudyAustralia2025-05-28Feltz Printing Service QUALIFIED68Stephen Shaw
1013Smith E StensethIndia2025-06-04Benton, John B Jr QUALIFIED30Anna Fali
1014Misaki H GillianRussia2025-05-28Buckley Miller Wright NEGOTIATION45Elwin Sharvill
1015Izzy D MaletArgentina2025-06-15Truhlar And Truhlar Attys PROPOSAL37Onyama Limba
1016James K RutaBrazil2025-05-31Feiner Bros NEGOTIATION94Xuxue Feng
1017Adams Q ChuiJapan2025-05-25Chemel, James L Cpa UNQUALIFIED54Asiya Javayant
1018Claire Q BriddickRussia2025-06-02King, Christopher A Esq NEGOTIATION66Elwin Sharvill
1019Mayumi W CaldareraArgentina2025-05-29Chanay, Jeffrey A Esq NEW94Bernardo Dominic
1020Mayumi B IturbideItaly2025-05-28Buckley Miller Wright RENEWAL43Ivan Magalhaes
1021Juan A ChuiFrance2025-05-29Rangoni Of Florence UNQUALIFIED47Elwin Sharvill
1022Mujtaba Y CaudyBrazil2025-05-27Truhlar And Truhlar Attys PROPOSAL16Ioni Bowcher
1023Clifford J ShinkoArgentina2025-06-08Rousseaux, Michael Esq QUALIFIED22Asiya Javayant
1024Leja S FigeroaJapan2025-05-20Benton, John B Jr NEGOTIATION14Anna Fali
1025Rodrigues O DilliardGermany2025-05-30Morlong Associates NEW89Stephen Shaw
1026Juan Y OldroydIndia2025-06-16Morlong Associates RENEWAL44Amy Elsner
1027James Z VenereBrazil2025-05-20Commercial Press QUALIFIED51Xuxue Feng
1028Costa I StensethRussia2025-05-18Rousseaux, Michael Esq NEGOTIATION33Xuxue Feng
1029Costa B SergiArgentina2025-06-02Truhlar And Truhlar Attys NEW67Stephen Shaw
1030Leon S MorascaJapan2025-06-12Printing Dimensions NEGOTIATION1Anna Fali
1031Morrow W PaprockiAustralia2025-06-14Benton, John B Jr QUALIFIED22Elwin Sharvill
1032Darci P RutaUnited Kingdom2025-06-08Morlong Associates PROPOSAL95Ioni Bowcher
1033Jennifer A MorascaIndia2025-05-23Printing Dimensions PROPOSAL36Stephen Shaw
1034Adams S PerinUnited Kingdom2025-05-30Morlong Associates UNQUALIFIED96Stephen Shaw
1035Nicolas L TollnerCanada2025-06-03Commercial Press PROPOSAL27Onyama Limba
1036Sinclair C StockhamCanada2025-06-10Chanay, Jeffrey A Esq RENEWAL18Elwin Sharvill
1037Aditya X ChuiUnited Kingdom2025-05-29Chemel, James L Cpa NEGOTIATION38Ioni Bowcher
1038Stacey L GarufiCanada2025-05-20Commercial Press QUALIFIED17Anna Fali
1039Rodrigues M WhobreyJapan2025-05-27Buckley Miller Wright RENEWAL86Ioni Bowcher
1040Greenwood S BriddickRussia2025-05-22King, Christopher A Esq QUALIFIED98Stephen Shaw
1041Faith E InouyeGermany2025-05-22Buckley Miller Wright QUALIFIED53Elwin Sharvill
1042Smith C VenereIndia2025-05-18Chanay, Jeffrey A Esq PROPOSAL51Ioni Bowcher
1043Jones G SaylorsUnited Kingdom2025-06-05Chapman, Ross E Esq QUALIFIED86Xuxue Feng
1044James B TollnerRussia2025-05-31Rousseaux, Michael Esq NEGOTIATION50Stephen Shaw
1045Francesco W DarakjyCanada2025-06-16Truhlar And Truhlar Attys UNQUALIFIED80Onyama Limba
1046Costa C BologniaJapan2025-06-04Chemel, James L Cpa RENEWAL28Bernardo Dominic
1047Silvio S InouyeFrance2025-05-28Chemel, James L Cpa QUALIFIED22Amy Elsner
1048Tony J NickaAustralia2025-06-03Chapman, Ross E Esq NEGOTIATION77Xuxue Feng
1049Isabel W MaletJapan2025-05-25Buckley Miller Wright PROPOSAL68Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy F SergiItalyIvan Magalhaes UNQUALIFIED
Jones A AmigonUnited KingdomBernardo Dominic QUALIFIED
Faith P MaletGermanyOnyama Limba UNQUALIFIED
Costa D MaletRussiaAmy Elsner QUALIFIED
Leja W GarufiGermanyAnna Fali NEGOTIATION
Tony R WhobreyItalyXuxue Feng NEGOTIATION
Wickens E DarakjyIndiaStephen Shaw PROPOSAL
Darci V PoquetteCanadaBernardo Dominic RENEWAL
Aika N AlbaresIndiaAnna Fali NEW
Francesco M CaldareraBrazilIoni Bowcher UNQUALIFIED
Tony W VenereRussiaAsiya Javayant PROPOSAL
Emily O MaletBrazilBernardo Dominic NEW
Faith N RimIndiaXuxue Feng RENEWAL
Stacey J SergiSpainAnna Fali RENEWAL
Izzy H WaycottUnited KingdomIoni Bowcher PROPOSAL
James T WhobreyJapanIoni Bowcher PROPOSAL
Mujtaba Y ButtArgentinaAsiya Javayant PROPOSAL
Leja D ButtRussiaAsiya Javayant QUALIFIED
Silvio B SaylorsGermanyElwin Sharvill NEGOTIATION
Smith E GarufiSpainOnyama Limba UNQUALIFIED
Ricardo W PaprockiAustraliaXuxue Feng UNQUALIFIED
Octavia H MacleadCanadaBernardo Dominic NEW
Johnson I KuskoJapanStephen Shaw RENEWAL
Deepesh E GarufiSpainIvan Magalhaes NEW
Antonio Y SchemmerUnited KingdomBernardo Dominic PROPOSAL
Francesco R InouyeIndiaAnna Fali NEW
Octavia D GlickUnited KingdomBernardo Dominic RENEWAL
Isabel S VocelkaAustraliaBernardo Dominic NEGOTIATION
Kaitlin G GillianCanadaIvan Magalhaes NEW
Chavez U NickaUnited KingdomAmy Elsner UNQUALIFIED
Jones C StockhamCanadaAnna Fali PROPOSAL
Aruna T MorascaItalyXuxue Feng UNQUALIFIED
Jones P CaudyAustraliaElwin Sharvill UNQUALIFIED
Kadeem W RulapaughCanadaAmy Elsner PROPOSAL
Aditya D IturbideGermanyAmy Elsner QUALIFIED
Mujtaba S OldroydSpainXuxue Feng UNQUALIFIED
Jones I RutaJapanOnyama Limba NEGOTIATION
Francesco K BriddickJapanStephen Shaw UNQUALIFIED
Mujtaba B WaycottRussiaIvan Magalhaes NEGOTIATION
Kadeem N RutaSpainStephen Shaw UNQUALIFIED
Cody H BowleyAustraliaElwin Sharvill QUALIFIED
Jones N DoeCanadaOnyama Limba PROPOSAL
Izzy G CampainGermanyIvan Magalhaes NEGOTIATION
Chavez L KolmetzGermanyIoni Bowcher PROPOSAL
Stacey F WaycottJapanAmy Elsner NEGOTIATION
Clifford M PoquetteCanadaAnna Fali NEGOTIATION
Darci I ChuiBrazilOnyama Limba QUALIFIED
Jeanfrancois G RimGermanyIvan Magalhaes PROPOSAL
Adams P DilliardArgentinaIvan Magalhaes RENEWAL
Jefferson C GauchoSpainElwin Sharvill NEGOTIATION
Frozen Columns
Name
Ricardo U Chui
Murillo F Stockham
Morrow M Poquette
Kaitlin W Schemmer
David P Poquette
Julie B Doe
Aditya J Briddick
Jefferson E Nestle
Adams B Rim
Morrow F Bowley
Clifford Y Amigon
Aruna A Morasca
Morrow T Bolognia
Aika K Venere
Aika B Doe
Misaki R Rulapaugh
Leja Y Morasca
Ashley B Bolognia
Emily H Bowley
Maria K Shinko
Julie D Marrier
Adams X Darakjy
James V Caldarera
Leon I Sergi
Antonio D Darakjy
Izzy R Nestle
Greenwood I Chui
Nicolas X Perin
Claire W Malet
Alejandro L Figeroa
Ivar R Marrier
Maisha Z Saylors
Greenwood V Perin
Tony F Kolmetz
Jones O Albares
Leja K Albares
Tony T Chui
Jefferson M Morasca
Kaitlin D Perin
Arvin O Dilliard
Smith O Doe
Sinclair F Sergi
Salvatore A Campain
Faith F Paprocki
Mayumi F Campain
James D Gillian
Sinclair N Morasca
David J Nicka
Kaitlin O Vocelka
Leon Y Kolmetz
IdCountryDate
1000Brazil2025-06-13
1001Spain2025-06-05
1002Russia2025-06-01
1003United Kingdom2025-06-12
1004Italy2025-06-14
1005France2025-05-31
1006Australia2025-05-18
1007India2025-06-16
1008Canada2025-06-12
1009Japan2025-06-12
1010United Kingdom2025-05-19
1011Canada2025-06-13
1012Germany2025-06-14
1013Germany2025-06-01
1014France2025-05-29
1015United Kingdom2025-05-30
1016Argentina2025-05-23
1017Italy2025-06-04
1018United Kingdom2025-06-04
1019Spain2025-06-01
1020Canada2025-05-18
1021Spain2025-06-07
1022Russia2025-06-13
1023Italy2025-05-23
1024Spain2025-05-18
1025Brazil2025-05-27
1026Argentina2025-05-27
1027Japan2025-06-14
1028United Kingdom2025-05-27
1029Canada2025-05-25
1030Brazil2025-06-11
1031Canada2025-06-06
1032United Kingdom2025-05-21
1033Canada2025-06-15
1034Argentina2025-05-25
1035Canada2025-06-12
1036Canada2025-05-24
1037India2025-05-30
1038Brazil2025-06-08
1039Spain2025-05-29
1040Spain2025-05-27
1041Germany2025-06-11
1042United Kingdom2025-06-15
1043Australia2025-05-21
1044Germany2025-05-19
1045Australia2025-05-24
1046Russia2025-06-11
1047Australia2025-06-07
1048Canada2025-05-21
1049Argentina2025-05-20

On-Demand Data

NameIdCountryDate
Adams P Waycott1000United Kingdom2025-05-31
Silvio G Wieser1001Canada2025-06-03
Mayumi N Oldroyd1002Spain2025-05-22
Jeanfrancois I Paprocki1003Australia2025-06-13
Jones B Bolognia1004France2025-06-05
Jefferson S Ruta1005France2025-06-01
Izzy G Rulapaugh1006Argentina2025-06-06
Costa R Doe1007Russia2025-05-25
Salvatore N Rim1008Australia2025-06-02
Cody S Gillian1009Germany2025-05-27
Juan T Paprocki1010Spain2025-06-13
Francesco G Campain1011Russia2025-05-20
Leon F Gillian1012Germany2025-05-28
David L Campain1013Japan2025-06-14
Faith G Inouye1014Canada2025-05-18
Leon W Inouye1015Canada2025-06-04
Adams C Stockham1016United Kingdom2025-05-22
Costa H Campain1017Japan2025-06-13
Jennifer G Schemmer1018India2025-06-01
Tony H Malet1019Brazil2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio H ChuiUnited KingdomBernardo Dominic NEW
Juan L GlickSpainAmy Elsner NEW
Leon O GauchoArgentinaOnyama Limba NEGOTIATION
Jefferson K FerenczIndiaAmy Elsner RENEWAL
Morrow J BowleyCanadaOnyama Limba UNQUALIFIED
Faith Y PaprockiSpainElwin Sharvill UNQUALIFIED
Ricardo P CampainArgentinaOnyama Limba NEGOTIATION
Ashley V RoysterItalyIvan Magalhaes NEGOTIATION
Octavia U VocelkaRussiaOnyama Limba NEGOTIATION
Maisha Z FerenczGermanyIoni Bowcher NEGOTIATION
Ivar H AmigonFranceElwin Sharvill QUALIFIED
Francesco I AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Faith F GlickGermanyOnyama Limba NEGOTIATION
Stacey M MaletRussiaStephen Shaw RENEWAL
Ivar R CaudyCanadaIvan Magalhaes RENEWAL
Ivar W KolmetzArgentinaIoni Bowcher NEGOTIATION
Adams E ShinkoBrazilIoni Bowcher UNQUALIFIED
Johnson D RutaCanadaBernardo Dominic UNQUALIFIED
Kadeem B GarufiIndiaAsiya Javayant NEGOTIATION
Maria D GauchoItalyStephen Shaw PROPOSAL
Johnson Q TollnerCanadaStephen Shaw QUALIFIED
Octavia S BologniaJapanAnna Fali RENEWAL
Adams K SchemmerIndiaElwin Sharvill NEW
Isabel T MacleadIndiaAsiya Javayant NEW
Darci Z GauchoRussiaElwin Sharvill RENEWAL
Nicolas Q WaycottArgentinaOnyama Limba NEW
Silvio V StensethBrazilXuxue Feng RENEWAL
Cody Q KolmetzArgentinaAsiya Javayant PROPOSAL
Smith F MaletCanadaIvan Magalhaes QUALIFIED
Sinclair K WaycottGermanyAmy Elsner NEW
Francesco J InouyeFranceElwin Sharvill NEGOTIATION
Costa J WaycottCanadaAnna Fali NEGOTIATION
Isabel M NestleUnited KingdomStephen Shaw RENEWAL
James C SchemmerUnited KingdomAnna Fali NEW
Murillo L SergiItalyIoni Bowcher NEGOTIATION
Octavia I ShinkoFranceIoni Bowcher NEGOTIATION
Costa L VocelkaGermanyBernardo Dominic QUALIFIED
Emily S RimGermanyElwin Sharvill NEW
David S BowleyIndiaIoni Bowcher QUALIFIED
Ashley S ChuiGermanyAmy Elsner NEW

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