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
Murillo Q MorascaBrazilIvan Magalhaes UNQUALIFIED
Kadeem I TollnerUnited KingdomBernardo Dominic RENEWAL
Maria O GauchoGermanyIoni Bowcher PROPOSAL
Sinclair O SchemmerRussiaElwin Sharvill PROPOSAL
Misaki R KuskoSpainXuxue Feng NEW
Nicolas N WhobreyRussiaIvan Magalhaes NEW
Silvio L SaylorsUnited KingdomIoni Bowcher NEW
Salvatore U RutaSpainIvan Magalhaes NEGOTIATION
Octavia C GillianGermanyIvan Magalhaes NEW
Maria L MaletArgentinaOnyama Limba QUALIFIED
Clifford P ButtCanadaIoni Bowcher QUALIFIED
Chavez L BologniaBrazilStephen Shaw RENEWAL
James S NickaSpainIoni Bowcher QUALIFIED
David F GauchoSpainStephen Shaw RENEWAL
Johnson Q WieserCanadaElwin Sharvill QUALIFIED
Smith T StensethRussiaIoni Bowcher NEGOTIATION
Jones Z BowleyJapanAnna Fali NEGOTIATION
Darci I KolmetzBrazilAmy Elsner PROPOSAL
Juan Y OstroskyUnited KingdomElwin Sharvill RENEWAL
Murillo X WaycottCanadaStephen Shaw NEW
Adams S RulapaughUnited KingdomIvan Magalhaes NEW
Jones M BologniaUnited KingdomAnna Fali UNQUALIFIED
Adams J DoeCanadaAsiya Javayant NEW
Leja Q StockhamSpainAnna Fali UNQUALIFIED
Kadeem F VenereFranceXuxue Feng RENEWAL
Smith T WaycottBrazilAsiya Javayant RENEWAL
Darci C StensethBrazilXuxue Feng PROPOSAL
Ivar V PaprockiItalyAmy Elsner RENEWAL
Jones V RoysterFranceXuxue Feng QUALIFIED
Costa Q OldroydIndiaBernardo Dominic UNQUALIFIED
Leon T NestleIndiaStephen Shaw UNQUALIFIED
Tony W WieserAustraliaOnyama Limba RENEWAL
Smith Z DoeIndiaBernardo Dominic PROPOSAL
Ricardo A PaprockiBrazilAnna Fali NEW
Francesco S ButtAustraliaBernardo Dominic UNQUALIFIED
Greenwood R CaldareraAustraliaIvan Magalhaes RENEWAL
Murillo E FlosiItalyIoni Bowcher NEW
Kaitlin G FollerFranceElwin Sharvill PROPOSAL
Isabel J FlosiFranceOnyama Limba RENEWAL
Aika Y RutaFranceBernardo Dominic QUALIFIED
Antonio X FigeroaUnited KingdomElwin Sharvill RENEWAL
Jefferson T BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Cody B SergiFranceBernardo Dominic NEW
Jefferson L KolmetzSpainBernardo Dominic RENEWAL
Morrow V VenereFranceIvan Magalhaes NEGOTIATION
Munro Y ButtIndiaAmy Elsner PROPOSAL
James Z TollnerCanadaElwin Sharvill UNQUALIFIED
Jones G KuskoIndiaIvan Magalhaes RENEWAL
Adams R VocelkaUnited KingdomAsiya Javayant RENEWAL
Jennifer V FlosiCanadaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
David G DoeIndiaAsiya Javayant QUALIFIED
Kaitlin H ShinkoFranceAmy Elsner QUALIFIED
Munro J SlusarskiItalyIoni Bowcher QUALIFIED
Morrow B TollnerItalyElwin Sharvill RENEWAL
Deepesh Z MacleadIndiaAnna Fali QUALIFIED
Ricardo N SlusarskiFranceXuxue Feng RENEWAL
Jeanfrancois S RoysterAustraliaStephen Shaw NEGOTIATION
Misaki B SchemmerUnited KingdomAmy Elsner NEW
Munro E SlusarskiIndiaBernardo Dominic PROPOSAL
Smith C KuskoBrazilOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois M DilliardGermany2025-05-29Chapman, Ross E Esq PROPOSAL76Stephen Shaw
1001Kaitlin B MorascaArgentina2025-05-21Morlong Associates QUALIFIED91Bernardo Dominic
1002Deepesh H StockhamItaly2025-05-29Buckley Miller Wright PROPOSAL32Xuxue Feng
1003Ivar U KolmetzAustralia2025-05-18Rangoni Of Florence UNQUALIFIED1Ivan Magalhaes
1004Kaitlin M InouyeBrazil2025-06-02Truhlar And Truhlar Attys QUALIFIED12Anna Fali
1005Isabel Z FollerBrazil2025-05-23Feltz Printing Service NEW70Ioni Bowcher
1006Izzy D FigeroaRussia2025-05-18Chapman, Ross E Esq NEW32Anna Fali
1007Ricardo K MarrierSpain2025-06-08Chapman, Ross E Esq UNQUALIFIED7Asiya Javayant
1008Antonio R KuskoJapan2025-06-05Dorl, James J Esq PROPOSAL10Bernardo Dominic
1009Antonio S IturbideCanada2025-06-14Commercial Press UNQUALIFIED41Ivan Magalhaes
1010Leon Y FollerAustralia2025-06-08Buckley Miller Wright NEGOTIATION13Bernardo Dominic
1011Darci C BowleyCanada2025-05-18Commercial Press NEGOTIATION31Onyama Limba
1012Octavia J NickaAustralia2025-05-26Dorl, James J Esq RENEWAL37Bernardo Dominic
1013Costa Y GarufiIndia2025-05-28Printing Dimensions PROPOSAL55Ivan Magalhaes
1014Smith E MarrierAustralia2025-05-26Chemel, James L Cpa NEW57Asiya Javayant
1015Ashley G RimItaly2025-06-04Chemel, James L Cpa RENEWAL71Onyama Limba
1016Jeanfrancois A GillianFrance2025-06-08Commercial Press PROPOSAL71Asiya Javayant
1017Kaitlin K FollerBrazil2025-05-21Chemel, James L Cpa NEW88Ioni Bowcher
1018Leon A WhobreyCanada2025-05-26Feltz Printing Service QUALIFIED40Bernardo Dominic
1019Francesco H WaycottCanada2025-05-23King, Christopher A Esq NEGOTIATION97Ioni Bowcher
1020Isabel S KuskoIndia2025-06-02Chanay, Jeffrey A Esq QUALIFIED21Onyama Limba
1021Cody G OstroskyRussia2025-05-21Buckley Miller Wright UNQUALIFIED61Ivan Magalhaes
1022Ivar I BologniaUnited Kingdom2025-06-09Chapman, Ross E Esq QUALIFIED59Bernardo Dominic
1023Mujtaba F IturbideSpain2025-06-07King, Christopher A Esq NEGOTIATION91Xuxue Feng
1024Munro I GarufiUnited Kingdom2025-05-22King, Christopher A Esq NEGOTIATION83Elwin Sharvill
1025Jones F WieserIndia2025-06-11Truhlar And Truhlar Attys PROPOSAL39Xuxue Feng
1026Ricardo U DoeIndia2025-06-08King, Christopher A Esq PROPOSAL94Stephen Shaw
1027Clifford D ShinkoArgentina2025-05-18Feltz Printing Service PROPOSAL30Onyama Limba
1028Antonio V CaldareraCanada2025-06-12Rousseaux, Michael Esq NEW1Ivan Magalhaes
1029Jennifer D FlosiRussia2025-05-30Feltz Printing Service NEW94Ivan Magalhaes
1030Sinclair F FollerAustralia2025-06-15Printing Dimensions NEGOTIATION76Elwin Sharvill
1031Murillo F FerenczIndia2025-06-14Printing Dimensions UNQUALIFIED36Asiya Javayant
1032Izzy T BowleyJapan2025-05-20Benton, John B Jr UNQUALIFIED11Asiya Javayant
1033Mayumi T GlickSpain2025-06-11King, Christopher A Esq RENEWAL12Ioni Bowcher
1034Juan V PoquetteSpain2025-05-18Rousseaux, Michael Esq NEW9Ivan Magalhaes
1035Salvatore E SchemmerCanada2025-06-11Chemel, James L Cpa UNQUALIFIED65Bernardo Dominic
1036Aruna K GlickArgentina2025-06-13Buckley Miller Wright PROPOSAL82Onyama Limba
1037Johnson L GarufiJapan2025-05-24Buckley Miller Wright RENEWAL3Stephen Shaw
1038Maisha C PaprockiAustralia2025-06-07King, Christopher A Esq UNQUALIFIED46Amy Elsner
1039Deepesh C SlusarskiRussia2025-06-09Chapman, Ross E Esq QUALIFIED58Anna Fali
1040Emily I ButtAustralia2025-05-19Chanay, Jeffrey A Esq PROPOSAL18Xuxue Feng
1041Rodrigues J BriddickSpain2025-05-22Buckley Miller Wright QUALIFIED44Ioni Bowcher
1042Wickens B OstroskySpain2025-06-16Benton, John B Jr QUALIFIED51Bernardo Dominic
1043Aditya W SergiRussia2025-05-30Buckley Miller Wright RENEWAL47Onyama Limba
1044Silvio L GillianBrazil2025-06-12Rousseaux, Michael Esq NEW15Anna Fali
1045Mujtaba M RoysterIndia2025-05-22Dorl, James J Esq QUALIFIED97Anna Fali
1046David I SergiIndia2025-05-19Buckley Miller Wright NEW5Anna Fali
1047Aika D GlickItaly2025-05-18Morlong Associates NEW65Elwin Sharvill
1048Darci A CaldareraUnited Kingdom2025-06-11Benton, John B Jr NEGOTIATION35Anna Fali
1049Greenwood H RulapaughItaly2025-06-14King, Christopher A Esq QUALIFIED2Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Johnson L AlbaresRussiaAnna Fali PROPOSAL
Aika I GauchoIndiaBernardo Dominic NEW
Cody K RutaJapanStephen Shaw PROPOSAL
Juan Z WaycottGermanyBernardo Dominic NEW
Nicolas N ButtIndiaAmy Elsner QUALIFIED
Smith S CampainSpainAmy Elsner NEW
Claire Z InouyeUnited KingdomAnna Fali PROPOSAL
Tony V ShinkoJapanXuxue Feng NEW
Maisha G MorascaRussiaAsiya Javayant QUALIFIED
Morrow B SaylorsAustraliaXuxue Feng NEW
Adams O CaldareraIndiaBernardo Dominic UNQUALIFIED
Mayumi F ButtGermanyAmy Elsner QUALIFIED
Murillo E RoysterItalyBernardo Dominic NEW
Deepesh F RoysterGermanyAmy Elsner NEGOTIATION
Johnson Q ShinkoItalyOnyama Limba QUALIFIED
Deepesh I TollnerJapanAmy Elsner NEGOTIATION
Deepesh G SaylorsSpainXuxue Feng RENEWAL
James F KuskoCanadaBernardo Dominic UNQUALIFIED
Salvatore F InouyeGermanyOnyama Limba NEGOTIATION
Jeanfrancois B MaletItalyBernardo Dominic NEW
Aika G FollerJapanOnyama Limba RENEWAL
Kadeem U ButtRussiaElwin Sharvill PROPOSAL
Antonio Q MaletSpainBernardo Dominic UNQUALIFIED
Francesco C OstroskyUnited KingdomXuxue Feng QUALIFIED
Rodrigues V SchemmerAustraliaXuxue Feng NEW
Aika S RoysterGermanyOnyama Limba PROPOSAL
Cody C KuskoIndiaStephen Shaw UNQUALIFIED
Leja G CampainGermanyBernardo Dominic UNQUALIFIED
Stacey B OldroydItalyBernardo Dominic NEW
Ivar M StensethJapanAmy Elsner NEGOTIATION
Wickens A PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
David R WhobreyAustraliaAmy Elsner PROPOSAL
Jones J StockhamGermanyIvan Magalhaes UNQUALIFIED
Aruna Y MacleadAustraliaOnyama Limba NEW
Jeanfrancois B DoeBrazilIvan Magalhaes RENEWAL
Munro S MarrierCanadaIvan Magalhaes NEW
Rodrigues Z FigeroaJapanAmy Elsner QUALIFIED
Mujtaba L PerinGermanyXuxue Feng UNQUALIFIED
Adams F StensethArgentinaXuxue Feng UNQUALIFIED
Nicolas D AmigonGermanyIvan Magalhaes NEGOTIATION
Costa N GauchoUnited KingdomXuxue Feng QUALIFIED
Munro F AmigonGermanyXuxue Feng QUALIFIED
James L SchemmerItalyAsiya Javayant NEW
Kaitlin M BriddickSpainIvan Magalhaes NEW
Cody U WhobreyCanadaOnyama Limba UNQUALIFIED
Kaitlin P CampainArgentinaAmy Elsner PROPOSAL
Mayumi X GillianUnited KingdomElwin Sharvill RENEWAL
Maisha S AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba I VocelkaJapanAmy Elsner PROPOSAL
Alejandro I CaudyBrazilIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Alejandro Q Royster
Cody O Malet
Julie G Ferencz
Alejandro Z Wieser
Mayumi D Dilliard
Misaki L Maclead
Claire Q Gillian
Kaitlin O Stockham
David T Venere
Kadeem O Kusko
Leja X Doe
Mayumi P Kolmetz
Jones S Maclead
Izzy U Foller
Ivar W Wieser
Leja P Ostrosky
James T Shinko
Emily A Ruta
Emily U Malet
Mayumi I Rulapaugh
Misaki R Kusko
Mayumi Z Poquette
Costa P Bowley
Alejandro J Gillian
Morrow I Royster
Jeanfrancois W Ostrosky
Johnson K Gillian
Sinclair O Darakjy
Cody Y Malet
Aika C Saylors
Mayumi D Kolmetz
Maisha G Ferencz
Chavez D Rim
Octavia L Briddick
Juan Z Tollner
James S Marrier
Ricardo U Slusarski
Jones Q Bolognia
Leja U Paprocki
James Q Darakjy
Darci Z Whobrey
Greenwood I Whobrey
Rodrigues W Rulapaugh
Octavia Y Chui
Leon T Flosi
Kadeem C Chui
Alejandro C Ruta
Greenwood H Malet
Arvin Y Rulapaugh
Nicolas Z Kolmetz
IdCountryDate
1000Brazil2025-06-14
1001Spain2025-06-03
1002Argentina2025-05-29
1003Argentina2025-05-28
1004Brazil2025-06-10
1005Italy2025-06-09
1006Italy2025-06-02
1007Japan2025-05-23
1008United Kingdom2025-05-29
1009Canada2025-06-09
1010Argentina2025-06-02
1011Argentina2025-06-04
1012Spain2025-05-25
1013Canada2025-06-16
1014Germany2025-06-10
1015United Kingdom2025-05-28
1016Italy2025-05-23
1017Canada2025-06-13
1018Canada2025-05-19
1019Russia2025-06-14
1020Germany2025-06-10
1021India2025-06-08
1022Australia2025-05-28
1023Russia2025-06-05
1024Argentina2025-06-05
1025Spain2025-05-28
1026Brazil2025-06-08
1027Spain2025-05-19
1028India2025-05-24
1029Australia2025-05-29
1030Brazil2025-05-25
1031Brazil2025-05-31
1032United Kingdom2025-06-15
1033Australia2025-06-05
1034Germany2025-05-18
1035Brazil2025-06-07
1036Brazil2025-06-08
1037France2025-06-02
1038Russia2025-06-06
1039Australia2025-05-18
1040Argentina2025-05-27
1041Argentina2025-06-06
1042Brazil2025-05-25
1043India2025-05-24
1044Italy2025-06-10
1045United Kingdom2025-05-25
1046Italy2025-06-03
1047Brazil2025-06-07
1048France2025-05-29
1049Russia2025-06-05

On-Demand Data

NameIdCountryDate
Jennifer Z Maclead1000Russia2025-05-24
Faith F Paprocki1001Japan2025-06-15
Kaitlin G Dilliard1002Argentina2025-05-29
Stacey C Royster1003Italy2025-06-12
Ivar L Stenseth1004Australia2025-06-16
Cody P Venere1005Canada2025-05-22
Clifford O Poquette1006Italy2025-05-19
Johnson F Marrier1007Japan2025-05-19
Deepesh T Vocelka1008France2025-06-09
Smith W Wieser1009Brazil2025-06-08
Claire G Dilliard1010Spain2025-06-11
Juan A Stenseth1011Japan2025-06-13
Silvio U Marrier1012Japan2025-05-25
Morrow Y Inouye1013Brazil2025-05-23
Jefferson W Sergi1014Australia2025-06-06
Claire Q Campain1015Japan2025-06-01
Juan K Briddick1016United Kingdom2025-06-14
Cody K Slusarski1017France2025-05-31
Jefferson G Wieser1018Australia2025-05-25
Aika S Poquette1019Canada2025-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki Z SaylorsBrazilXuxue Feng RENEWAL
Arvin D RimRussiaAsiya Javayant NEW
Clifford L KolmetzJapanAmy Elsner PROPOSAL
Rodrigues N DarakjyCanadaIoni Bowcher RENEWAL
Isabel K BologniaArgentinaAmy Elsner UNQUALIFIED
Adams B BowleyRussiaStephen Shaw QUALIFIED
Maisha R WaycottUnited KingdomElwin Sharvill RENEWAL
Aruna C WhobreyAustraliaStephen Shaw PROPOSAL
Jennifer R ButtFranceXuxue Feng UNQUALIFIED
Munro P IturbideCanadaAsiya Javayant RENEWAL
Tony I RoysterJapanIvan Magalhaes PROPOSAL
Octavia Z RimJapanXuxue Feng NEW
Francesco K SergiAustraliaAsiya Javayant UNQUALIFIED
Darci R PoquetteGermanyAnna Fali PROPOSAL
Ashley R NickaGermanyAmy Elsner NEGOTIATION
Silvio K WieserBrazilXuxue Feng NEGOTIATION
Isabel J GarufiSpainIoni Bowcher UNQUALIFIED
Ricardo P SaylorsIndiaAnna Fali PROPOSAL
Aruna Q ButtItalyOnyama Limba NEW
Nicolas N IturbideGermanyIvan Magalhaes RENEWAL
Murillo Z VocelkaBrazilAmy Elsner QUALIFIED
Stacey J DilliardJapanStephen Shaw UNQUALIFIED
Salvatore L OstroskySpainElwin Sharvill NEW
Murillo N AlbaresAustraliaIvan Magalhaes PROPOSAL
Maria L InouyeItalyElwin Sharvill NEGOTIATION
Chavez P NickaGermanyAnna Fali UNQUALIFIED
Aruna L CaldareraIndiaOnyama Limba QUALIFIED
Cody A WieserAustraliaAnna Fali UNQUALIFIED
Maisha B TollnerBrazilOnyama Limba UNQUALIFIED
Jones U MarrierJapanIvan Magalhaes NEW
James Z CaudyItalyIoni Bowcher RENEWAL
Johnson D AmigonAustraliaIoni Bowcher UNQUALIFIED
Kadeem O FollerArgentinaXuxue Feng NEGOTIATION
Kaitlin G KuskoAustraliaOnyama Limba RENEWAL
Aika L RutaGermanyAnna Fali NEGOTIATION
Cody M StockhamFranceIoni Bowcher NEGOTIATION
Ricardo G AlbaresCanadaOnyama Limba QUALIFIED
Maria W RimArgentinaElwin Sharvill PROPOSAL
Greenwood A RulapaughGermanyBernardo Dominic NEGOTIATION
Maria K RulapaughCanadaIoni Bowcher 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>