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
Sinclair J InouyeAustraliaStephen Shaw UNQUALIFIED
Jennifer Z ButtCanadaIvan Magalhaes QUALIFIED
Adams H DarakjyFranceIoni Bowcher NEGOTIATION
Octavia P VocelkaCanadaIoni Bowcher NEW
Ivar L RulapaughFranceAmy Elsner UNQUALIFIED
Cody E VocelkaUnited KingdomAmy Elsner NEW
Alejandro M VocelkaArgentinaAsiya Javayant UNQUALIFIED
Jennifer M NestleBrazilXuxue Feng UNQUALIFIED
Misaki R MorascaCanadaAnna Fali RENEWAL
Jennifer E BriddickBrazilStephen Shaw UNQUALIFIED
Sinclair E GauchoUnited KingdomAmy Elsner UNQUALIFIED
Rodrigues X SchemmerFranceBernardo Dominic QUALIFIED
Leon I PoquetteCanadaAmy Elsner RENEWAL
Emily R MorascaArgentinaBernardo Dominic PROPOSAL
Maria C KolmetzCanadaElwin Sharvill UNQUALIFIED
Jennifer K FigeroaIndiaAnna Fali UNQUALIFIED
Ivar O WieserUnited KingdomElwin Sharvill PROPOSAL
Morrow H RulapaughAustraliaIoni Bowcher NEGOTIATION
Chavez W MaletFranceOnyama Limba UNQUALIFIED
Izzy A OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Smith K SlusarskiBrazilElwin Sharvill PROPOSAL
Ricardo K FerenczItalyXuxue Feng PROPOSAL
Julie K MarrierFranceAmy Elsner UNQUALIFIED
Leon W CaldareraAustraliaBernardo Dominic NEW
Leon A TollnerItalyOnyama Limba NEW
Emily A WhobreyArgentinaAmy Elsner UNQUALIFIED
Maisha I DarakjyFranceBernardo Dominic RENEWAL
Costa S CampainBrazilAsiya Javayant PROPOSAL
Maisha Z DarakjySpainStephen Shaw PROPOSAL
Smith D MaletBrazilIvan Magalhaes RENEWAL
Adams W WaycottAustraliaAnna Fali UNQUALIFIED
Mujtaba N KolmetzAustraliaIvan Magalhaes RENEWAL
Izzy T FlosiAustraliaBernardo Dominic NEW
Mujtaba B TollnerBrazilStephen Shaw NEW
James Y SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Costa A ChuiAustraliaIoni Bowcher RENEWAL
Emily M GlickJapanAsiya Javayant NEGOTIATION
Darci Q RoysterArgentinaIvan Magalhaes NEGOTIATION
Johnson C DarakjyAustraliaStephen Shaw PROPOSAL
Mayumi Q StensethIndiaElwin Sharvill QUALIFIED
Ivar J IturbideItalyElwin Sharvill UNQUALIFIED
Arvin R KolmetzGermanyStephen Shaw PROPOSAL
David R WieserJapanBernardo Dominic QUALIFIED
Silvio F AmigonUnited KingdomAnna Fali RENEWAL
Emily A NestleRussiaAmy Elsner NEGOTIATION
Mayumi Z TollnerBrazilAsiya Javayant QUALIFIED
Rodrigues J BowleyBrazilStephen Shaw RENEWAL
Nicolas U BriddickAustraliaAsiya Javayant PROPOSAL
Jennifer P DoeUnited KingdomXuxue Feng UNQUALIFIED
Clifford D GlickBrazilBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones I DoeJapanAsiya Javayant UNQUALIFIED
James D InouyeBrazilStephen Shaw RENEWAL
Leon A GillianArgentinaAnna Fali NEW
Antonio X MaletRussiaAsiya Javayant NEW
Francesco Y PerinRussiaBernardo Dominic QUALIFIED
Aruna M RutaUnited KingdomIvan Magalhaes QUALIFIED
Munro R KuskoRussiaStephen Shaw NEW
Aditya M KolmetzJapanBernardo Dominic NEW
Tony A BologniaIndiaAmy Elsner NEGOTIATION
Chavez U DilliardUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues G KuskoItaly2025-05-21Printing Dimensions QUALIFIED50Amy Elsner
1001Aika F OstroskyIndia2025-05-26Feltz Printing Service UNQUALIFIED73Onyama Limba
1002Aika D MacleadBrazil2025-06-07Rangoni Of Florence UNQUALIFIED79Ioni Bowcher
1003Isabel X KolmetzUnited Kingdom2025-06-02Commercial Press PROPOSAL83Xuxue Feng
1004Nicolas B InouyeAustralia2025-06-13Benton, John B Jr RENEWAL82Xuxue Feng
1005Alejandro G RulapaughIndia2025-05-24Feiner Bros NEGOTIATION27Amy Elsner
1006Stacey A WaycottBrazil2025-05-30Dorl, James J Esq UNQUALIFIED85Bernardo Dominic
1007Silvio R FerenczRussia2025-05-29Rousseaux, Michael Esq UNQUALIFIED17Ioni Bowcher
1008Jefferson E VenereFrance2025-05-21Feiner Bros PROPOSAL26Elwin Sharvill
1009Jones V SlusarskiArgentina2025-05-19Chapman, Ross E Esq NEW11Asiya Javayant
1010Jennifer J GillianBrazil2025-05-22Dorl, James J Esq NEW87Ioni Bowcher
1011Chavez Z MaletCanada2025-05-18Chanay, Jeffrey A Esq NEW95Stephen Shaw
1012Leon Y GillianIndia2025-06-06Truhlar And Truhlar Attys UNQUALIFIED35Asiya Javayant
1013Aditya H SlusarskiGermany2025-05-22Rangoni Of Florence PROPOSAL69Onyama Limba
1014Cody W ButtFrance2025-06-10Morlong Associates UNQUALIFIED45Elwin Sharvill
1015Jefferson I MaletFrance2025-06-10Printing Dimensions UNQUALIFIED17Ivan Magalhaes
1016Francesco S BologniaAustralia2025-06-09Feltz Printing Service QUALIFIED91Xuxue Feng
1017Maisha P AlbaresRussia2025-06-01Chemel, James L Cpa UNQUALIFIED96Elwin Sharvill
1018Stacey O NickaIndia2025-06-01Chemel, James L Cpa NEW4Asiya Javayant
1019Claire X OldroydIndia2025-05-28Feltz Printing Service UNQUALIFIED79Bernardo Dominic
1020Salvatore O FerenczRussia2025-06-01Benton, John B Jr RENEWAL25Ioni Bowcher
1021Morrow B StensethAustralia2025-06-01Printing Dimensions PROPOSAL52Ioni Bowcher
1022Chavez C ButtFrance2025-06-14Commercial Press PROPOSAL9Ivan Magalhaes
1023Emily J BriddickItaly2025-05-29Buckley Miller Wright NEGOTIATION5Ivan Magalhaes
1024Ricardo Y CaldareraBrazil2025-06-14Feltz Printing Service NEW97Onyama Limba
1025Mujtaba B AmigonBrazil2025-06-02Rousseaux, Michael Esq PROPOSAL86Ioni Bowcher
1026Murillo D PaprockiArgentina2025-05-24Feltz Printing Service PROPOSAL96Xuxue Feng
1027Salvatore P MaletBrazil2025-06-04Buckley Miller Wright NEGOTIATION5Xuxue Feng
1028Rodrigues X StensethIndia2025-05-18Commercial Press UNQUALIFIED36Onyama Limba
1029Emily B WhobreyJapan2025-05-22Morlong Associates PROPOSAL47Anna Fali
1030Faith F GillianArgentina2025-06-01Printing Dimensions QUALIFIED92Stephen Shaw
1031Morrow S CaudyArgentina2025-05-31Rousseaux, Michael Esq QUALIFIED87Amy Elsner
1032Octavia C PoquetteBrazil2025-06-13Benton, John B Jr NEW80Asiya Javayant
1033Kadeem S AmigonAustralia2025-05-26Feltz Printing Service NEGOTIATION52Elwin Sharvill
1034Jones B RimBrazil2025-06-04Commercial Press RENEWAL41Anna Fali
1035Maisha A CaudyRussia2025-06-04Chemel, James L Cpa NEGOTIATION12Asiya Javayant
1036Deepesh A GarufiFrance2025-06-05Rangoni Of Florence QUALIFIED58Onyama Limba
1037Nicolas S FlosiItaly2025-05-30Feltz Printing Service RENEWAL47Anna Fali
1038Julie N GlickRussia2025-06-06Morlong Associates RENEWAL61Elwin Sharvill
1039Munro T KuskoArgentina2025-06-13Truhlar And Truhlar Attys UNQUALIFIED21Stephen Shaw
1040Munro D IturbideRussia2025-05-20Chanay, Jeffrey A Esq PROPOSAL45Ivan Magalhaes
1041Emily S SchemmerUnited Kingdom2025-06-02Morlong Associates PROPOSAL57Xuxue Feng
1042Kadeem H RulapaughJapan2025-05-23Truhlar And Truhlar Attys RENEWAL39Xuxue Feng
1043Clifford U MacleadIndia2025-06-10Benton, John B Jr NEGOTIATION34Ivan Magalhaes
1044Clifford J WhobreyAustralia2025-06-09Printing Dimensions NEGOTIATION23Onyama Limba
1045Aruna S ChuiFrance2025-06-16Printing Dimensions UNQUALIFIED68Stephen Shaw
1046Aika X PoquetteItaly2025-05-30Rousseaux, Michael Esq NEW96Ivan Magalhaes
1047David F DilliardRussia2025-06-09Chanay, Jeffrey A Esq QUALIFIED55Anna Fali
1048Stacey T WieserRussia2025-05-30King, Christopher A Esq UNQUALIFIED12Amy Elsner
1049Clifford P MarrierAustralia2025-06-14Rousseaux, Michael Esq PROPOSAL51Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Murillo W DilliardBrazilIvan Magalhaes NEW
Munro J OstroskySpainAnna Fali NEGOTIATION
Adams J SergiFranceAnna Fali PROPOSAL
Mayumi D KolmetzIndiaAsiya Javayant UNQUALIFIED
Aditya F DarakjyBrazilAsiya Javayant NEW
Jennifer N FollerGermanyAnna Fali PROPOSAL
Leja E NickaIndiaBernardo Dominic RENEWAL
Juan R GlickIndiaIoni Bowcher QUALIFIED
Leja R MacleadJapanAsiya Javayant RENEWAL
Silvio U KuskoBrazilOnyama Limba NEGOTIATION
Arvin P WieserRussiaAmy Elsner QUALIFIED
Jones Q InouyeRussiaElwin Sharvill RENEWAL
Ricardo L BologniaBrazilOnyama Limba RENEWAL
Leja O ChuiCanadaStephen Shaw QUALIFIED
Smith Q MacleadBrazilAmy Elsner QUALIFIED
Izzy X FlosiSpainAnna Fali PROPOSAL
Nicolas Y BowleyGermanyStephen Shaw RENEWAL
Stacey W IturbideAustraliaElwin Sharvill NEW
Juan H StensethGermanyAmy Elsner RENEWAL
Maria H FollerBrazilIoni Bowcher RENEWAL
Clifford C MarrierGermanyElwin Sharvill NEW
Smith S FlosiSpainXuxue Feng PROPOSAL
Aika I MacleadRussiaElwin Sharvill UNQUALIFIED
Murillo O InouyeItalyIoni Bowcher PROPOSAL
Ivar R ShinkoIndiaIvan Magalhaes QUALIFIED
Jeanfrancois I BologniaFranceXuxue Feng QUALIFIED
Rodrigues D StockhamArgentinaIvan Magalhaes NEGOTIATION
Cody H ButtFranceBernardo Dominic UNQUALIFIED
Leja F SaylorsSpainIvan Magalhaes NEGOTIATION
Juan U GlickBrazilXuxue Feng NEW
Arvin D DilliardArgentinaIoni Bowcher UNQUALIFIED
Misaki S MaletSpainElwin Sharvill QUALIFIED
Faith K GillianCanadaIoni Bowcher QUALIFIED
Juan L VenereBrazilXuxue Feng UNQUALIFIED
Ashley I BologniaJapanBernardo Dominic NEGOTIATION
Deepesh E GillianCanadaAnna Fali NEGOTIATION
Clifford D BowleyCanadaIoni Bowcher NEGOTIATION
Tony N CaudyRussiaIvan Magalhaes NEGOTIATION
Cody Z AlbaresCanadaStephen Shaw RENEWAL
Jennifer Q SergiJapanStephen Shaw UNQUALIFIED
Cody R FollerCanadaAsiya Javayant QUALIFIED
Morrow Q RoysterJapanXuxue Feng NEGOTIATION
Maisha O MorascaBrazilAnna Fali NEW
Aditya S SlusarskiCanadaXuxue Feng NEGOTIATION
Octavia Y PerinGermanyAmy Elsner UNQUALIFIED
James X SlusarskiBrazilAnna Fali UNQUALIFIED
Nicolas M DarakjyCanadaIvan Magalhaes PROPOSAL
Juan O RutaUnited KingdomIoni Bowcher QUALIFIED
Murillo H GauchoCanadaAnna Fali PROPOSAL
Misaki P DarakjySpainAmy Elsner NEW
Frozen Columns
Name
Alejandro F Oldroyd
Munro E Royster
Ashley R Tollner
Arvin O Poquette
Salvatore I Royster
Aditya J Malet
Murillo J Slusarski
Leon T Albares
Kaitlin J Marrier
Deepesh W Royster
Aditya W Darakjy
Smith T Nestle
Deepesh D Glick
Arvin G Paprocki
Murillo X Paprocki
Silvio P Bowley
Octavia L Oldroyd
David I Iturbide
Mujtaba X Morasca
Silvio Q Darakjy
Aditya N Waycott
Alejandro E Inouye
Sinclair S Oldroyd
Sinclair R Slusarski
Salvatore G Albares
Mayumi M Paprocki
Clifford A Ferencz
Clifford O Briddick
Salvatore A Wieser
Izzy I Stockham
Juan H Figeroa
Aditya B Waycott
Izzy G Poquette
David T Nicka
Wickens R Dilliard
Emily S Marrier
Isabel G Glick
Maria S Kusko
Claire R Doe
Ricardo R Doe
Ashley B Sergi
Smith M Darakjy
Nicolas H Saylors
Ricardo F Chui
Antonio J Saylors
Faith Q Ruta
Morrow V Paprocki
Smith R Malet
Deepesh P Caudy
Kaitlin B Iturbide
IdCountryDate
1000Italy2025-06-07
1001Italy2025-05-22
1002India2025-06-02
1003Canada2025-06-07
1004Japan2025-06-02
1005Italy2025-06-15
1006Australia2025-05-28
1007Italy2025-06-05
1008Spain2025-05-18
1009Spain2025-06-02
1010Australia2025-06-11
1011India2025-06-09
1012Argentina2025-05-28
1013France2025-06-10
1014Brazil2025-05-18
1015Argentina2025-05-27
1016United Kingdom2025-06-06
1017Canada2025-06-05
1018Japan2025-06-11
1019Spain2025-06-01
1020Argentina2025-06-01
1021Italy2025-05-19
1022India2025-05-24
1023Russia2025-05-30
1024Spain2025-06-16
1025Brazil2025-05-29
1026France2025-06-07
1027Russia2025-06-02
1028Spain2025-05-22
1029Italy2025-06-15
1030Russia2025-06-14
1031Japan2025-05-23
1032Italy2025-06-13
1033France2025-05-21
1034India2025-05-26
1035France2025-06-14
1036Germany2025-05-23
1037Japan2025-06-12
1038Italy2025-06-08
1039India2025-05-20
1040Italy2025-06-10
1041Italy2025-05-25
1042Canada2025-06-14
1043Argentina2025-06-02
1044Japan2025-06-05
1045Brazil2025-05-24
1046Germany2025-05-30
1047India2025-06-05
1048India2025-06-16
1049Canada2025-05-21

On-Demand Data

NameIdCountryDate
Kaitlin M Kolmetz1000Argentina2025-06-07
Juan E Poquette1001Canada2025-05-28
Smith F Stenseth1002Canada2025-06-06
Clifford I Butt1003Canada2025-06-10
Octavia L Ostrosky1004Germany2025-05-23
Octavia X Waycott1005United Kingdom2025-06-06
Murillo S Kolmetz1006France2025-05-27
Kadeem M Figeroa1007Japan2025-05-31
Salvatore W Garufi1008United Kingdom2025-05-18
Faith P Flosi1009Australia2025-05-29
Ivar A Ruta1010Brazil2025-06-06
Chavez O Nicka1011Canada2025-06-11
Silvio O Butt1012Canada2025-05-20
Emily D Malet1013Germany2025-05-20
Jennifer S Amigon1014Japan2025-06-13
Darci J Whobrey1015Italy2025-06-05
Julie E Perin1016Spain2025-06-06
Mujtaba G Campain1017Argentina2025-05-20
Salvatore O Venere1018Argentina2025-05-23
Cody K Rulapaugh1019Argentina2025-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja W GauchoUnited KingdomStephen Shaw QUALIFIED
Octavia Z WieserFranceIoni Bowcher PROPOSAL
Claire P WhobreySpainElwin Sharvill NEW
Aika O KolmetzItalyOnyama Limba NEGOTIATION
Stacey T SlusarskiIndiaXuxue Feng RENEWAL
Murillo S RutaGermanyAsiya Javayant RENEWAL
Maisha W GauchoRussiaIvan Magalhaes PROPOSAL
Deepesh C GlickFranceAsiya Javayant UNQUALIFIED
Adams V NickaGermanyStephen Shaw PROPOSAL
Jeanfrancois N BriddickRussiaBernardo Dominic NEW
Claire H DilliardGermanyElwin Sharvill PROPOSAL
Smith W DoeSpainBernardo Dominic NEW
Jennifer Z AmigonFranceBernardo Dominic NEW
Antonio Z MaletGermanyBernardo Dominic QUALIFIED
Jones H RoysterBrazilIoni Bowcher RENEWAL
Leon A StensethGermanyAsiya Javayant RENEWAL
Leon O ButtFranceIvan Magalhaes NEGOTIATION
Aruna J MaletJapanElwin Sharvill UNQUALIFIED
Costa D FlosiArgentinaAmy Elsner NEGOTIATION
Cody P WaycottIndiaStephen Shaw RENEWAL
David I WieserGermanyBernardo Dominic UNQUALIFIED
James U WieserCanadaOnyama Limba NEW
Tony M GauchoUnited KingdomAnna Fali NEGOTIATION
Morrow G SchemmerRussiaElwin Sharvill NEGOTIATION
Mayumi H PoquetteCanadaIvan Magalhaes PROPOSAL
Maria E DoeGermanyIvan Magalhaes NEGOTIATION
Julie G KolmetzItalyBernardo Dominic RENEWAL
Adams Q RimAustraliaIoni Bowcher QUALIFIED
Maria O TollnerBrazilAnna Fali PROPOSAL
Jones Q RulapaughRussiaAnna Fali RENEWAL
Tony E DoeCanadaAnna Fali NEGOTIATION
Jefferson S PaprockiRussiaOnyama Limba NEW
Claire B DarakjyUnited KingdomStephen Shaw PROPOSAL
Juan L CaldareraAustraliaOnyama Limba NEW
Misaki S GauchoCanadaIvan Magalhaes UNQUALIFIED
Stacey S OstroskyArgentinaAsiya Javayant QUALIFIED
Chavez G RutaIndiaOnyama Limba PROPOSAL
Juan I FlosiAustraliaAmy Elsner RENEWAL
Smith K IturbideFranceStephen Shaw PROPOSAL
David E AlbaresRussiaOnyama Limba 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>