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
Nicolas J AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Chavez K FerenczBrazilIvan Magalhaes UNQUALIFIED
Costa M IturbideAustraliaIoni Bowcher UNQUALIFIED
Jones B TollnerRussiaXuxue Feng UNQUALIFIED
Arvin T StockhamIndiaXuxue Feng QUALIFIED
Ivar Z MaletBrazilIvan Magalhaes UNQUALIFIED
Clifford W NickaAustraliaIoni Bowcher NEW
Maisha Z CampainIndiaOnyama Limba NEW
Misaki H SaylorsCanadaAsiya Javayant RENEWAL
Francesco C SlusarskiUnited KingdomBernardo Dominic NEW
Antonio Z MaletGermanyBernardo Dominic QUALIFIED
Cody K ChuiAustraliaAnna Fali NEGOTIATION
Francesco X DoeBrazilAnna Fali QUALIFIED
Jones L CaudyArgentinaAnna Fali PROPOSAL
Isabel P GlickIndiaBernardo Dominic UNQUALIFIED
Arvin F SergiArgentinaIoni Bowcher NEGOTIATION
Greenwood R SaylorsUnited KingdomBernardo Dominic RENEWAL
Kaitlin K BowleyRussiaElwin Sharvill NEW
Ivar R FollerBrazilBernardo Dominic QUALIFIED
Faith T KuskoUnited KingdomAnna Fali NEGOTIATION
Kadeem P FerenczCanadaXuxue Feng QUALIFIED
Antonio K VenereIndiaXuxue Feng NEW
Arvin W ShinkoRussiaStephen Shaw UNQUALIFIED
Greenwood O RutaIndiaBernardo Dominic NEW
Aditya V WieserAustraliaAsiya Javayant NEGOTIATION
Antonio T WieserItalyIoni Bowcher NEW
Kadeem W PaprockiIndiaAmy Elsner PROPOSAL
Claire E InouyeItalyXuxue Feng NEW
Kadeem R MacleadRussiaXuxue Feng QUALIFIED
Ricardo K PerinRussiaBernardo Dominic UNQUALIFIED
James T NickaUnited KingdomBernardo Dominic UNQUALIFIED
Silvio A GlickRussiaStephen Shaw NEGOTIATION
Sinclair A OldroydAustraliaXuxue Feng PROPOSAL
Costa Q MarrierBrazilIvan Magalhaes UNQUALIFIED
Julie U ShinkoAustraliaAmy Elsner RENEWAL
Nicolas H GlickIndiaXuxue Feng UNQUALIFIED
Greenwood Q FerenczAustraliaAmy Elsner RENEWAL
Alejandro W WieserAustraliaAmy Elsner NEW
Costa Q ShinkoFranceIvan Magalhaes RENEWAL
Costa M FlosiBrazilStephen Shaw UNQUALIFIED
Murillo S FlosiIndiaAmy Elsner PROPOSAL
Faith K OldroydIndiaOnyama Limba NEW
Kadeem K IturbideGermanyIvan Magalhaes NEGOTIATION
Jefferson G SaylorsGermanyAsiya Javayant NEW
Rodrigues T RulapaughIndiaXuxue Feng NEW
Jeanfrancois M StensethCanadaIoni Bowcher QUALIFIED
Adams C RutaRussiaAsiya Javayant PROPOSAL
Wickens Z IturbideSpainElwin Sharvill NEGOTIATION
Darci O SlusarskiIndiaStephen Shaw NEGOTIATION
Jefferson H MorascaRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
David O BologniaSpainIvan Magalhaes QUALIFIED
Silvio E RulapaughSpainBernardo Dominic NEGOTIATION
Kadeem H PoquetteFranceAsiya Javayant RENEWAL
Cody N KolmetzIndiaIoni Bowcher NEW
Isabel N SergiFranceAsiya Javayant RENEWAL
James S OstroskyAustraliaOnyama Limba RENEWAL
Maisha N BriddickRussiaAmy Elsner QUALIFIED
Maria V OldroydGermanyIvan Magalhaes QUALIFIED
Darci O GauchoGermanyIvan Magalhaes QUALIFIED
Alejandro T MorascaSpainBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody Q SergiFrance2025-05-09King, Christopher A Esq NEW70Onyama Limba
1001Costa X MacleadIndia2025-05-13Dorl, James J Esq PROPOSAL41Ivan Magalhaes
1002Silvio G TollnerItaly2025-05-30Dorl, James J Esq UNQUALIFIED62Ivan Magalhaes
1003Sinclair I InouyeArgentina2025-05-14Rangoni Of Florence NEGOTIATION75Xuxue Feng
1004Faith C InouyeBrazil2025-05-03Feltz Printing Service UNQUALIFIED74Onyama Limba
1005Leon K NickaArgentina2025-05-14Dorl, James J Esq NEW6Elwin Sharvill
1006Misaki I WhobreyJapan2025-05-08Rangoni Of Florence RENEWAL52Stephen Shaw
1007Maisha E CaudyGermany2025-05-07Printing Dimensions QUALIFIED81Amy Elsner
1008Tony D WaycottGermany2025-05-10Truhlar And Truhlar Attys NEGOTIATION57Anna Fali
1009Francesco Z CaudyRussia2025-05-21Benton, John B Jr UNQUALIFIED68Stephen Shaw
1010Ashley U BriddickUnited Kingdom2025-05-11Rousseaux, Michael Esq PROPOSAL33Ivan Magalhaes
1011Chavez L StockhamAustralia2025-05-23Benton, John B Jr NEGOTIATION45Anna Fali
1012Octavia Q GauchoRussia2025-05-14Feltz Printing Service UNQUALIFIED27Amy Elsner
1013Mayumi U MaletAustralia2025-05-20Chanay, Jeffrey A Esq QUALIFIED8Stephen Shaw
1014Maria S SchemmerJapan2025-05-30Rangoni Of Florence PROPOSAL62Elwin Sharvill
1015Adams J PaprockiArgentina2025-05-02Rangoni Of Florence UNQUALIFIED22Amy Elsner
1016Alejandro H SlusarskiGermany2025-05-27Printing Dimensions PROPOSAL88Anna Fali
1017Aika H DoeRussia2025-05-21Buckley Miller Wright NEGOTIATION83Ivan Magalhaes
1018Wickens S FerenczArgentina2025-05-31Chanay, Jeffrey A Esq QUALIFIED60Ivan Magalhaes
1019Kaitlin G MacleadAustralia2025-05-22Feltz Printing Service QUALIFIED60Onyama Limba
1020Maisha Q DilliardUnited Kingdom2025-05-14Rousseaux, Michael Esq UNQUALIFIED10Ivan Magalhaes
1021Clifford U WhobreyGermany2025-05-06Buckley Miller Wright NEW44Ivan Magalhaes
1022Emily W SaylorsArgentina2025-05-20Printing Dimensions UNQUALIFIED71Ioni Bowcher
1023Clifford G SlusarskiArgentina2025-05-13Feiner Bros RENEWAL61Bernardo Dominic
1024Julie D NickaItaly2025-05-26Morlong Associates NEGOTIATION73Anna Fali
1025Sinclair C NestleBrazil2025-05-02King, Christopher A Esq PROPOSAL19Ioni Bowcher
1026Emily G PoquetteGermany2025-05-12Dorl, James J Esq QUALIFIED65Onyama Limba
1027Isabel W MaletGermany2025-05-16Dorl, James J Esq NEGOTIATION12Amy Elsner
1028James G FigeroaCanada2025-05-04Chanay, Jeffrey A Esq QUALIFIED37Anna Fali
1029Isabel A ChuiGermany2025-05-25Chapman, Ross E Esq UNQUALIFIED53Onyama Limba
1030Ashley Y FollerBrazil2025-05-30Feiner Bros UNQUALIFIED33Anna Fali
1031Silvio O SlusarskiItaly2025-05-08Truhlar And Truhlar Attys NEW53Anna Fali
1032Wickens U MarrierSpain2025-05-22Feltz Printing Service QUALIFIED79Stephen Shaw
1033Jeanfrancois Q RimAustralia2025-05-27Feiner Bros PROPOSAL81Amy Elsner
1034David J DilliardSpain2025-05-26Chanay, Jeffrey A Esq RENEWAL73Anna Fali
1035Faith O WhobreyBrazil2025-05-21Benton, John B Jr QUALIFIED83Bernardo Dominic
1036Munro S KolmetzJapan2025-05-04Feltz Printing Service UNQUALIFIED59Anna Fali
1037Tony Q RoysterAustralia2025-05-29Rangoni Of Florence PROPOSAL92Stephen Shaw
1038Francesco F RutaSpain2025-05-06Rangoni Of Florence RENEWAL23Asiya Javayant
1039Ricardo N IturbideArgentina2025-05-25Rangoni Of Florence PROPOSAL70Bernardo Dominic
1040Aika I AmigonRussia2025-05-06Printing Dimensions NEGOTIATION17Stephen Shaw
1041Aditya H RimGermany2025-05-10Chemel, James L Cpa NEW1Onyama Limba
1042Silvio H FlosiArgentina2025-05-03Dorl, James J Esq UNQUALIFIED74Anna Fali
1043Munro J MarrierItaly2025-05-29Truhlar And Truhlar Attys QUALIFIED46Ivan Magalhaes
1044Kadeem Q SaylorsJapan2025-05-03Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1045Greenwood D WieserCanada2025-05-06Morlong Associates NEW19Anna Fali
1046Kadeem I WhobreyJapan2025-05-22Morlong Associates NEGOTIATION54Onyama Limba
1047Clifford S OstroskyUnited Kingdom2025-05-14Chanay, Jeffrey A Esq UNQUALIFIED87Asiya Javayant
1048Ivar U VocelkaGermany2025-05-19Morlong Associates RENEWAL63Onyama Limba
1049Emily Q BowleyFrance2025-05-22Chanay, Jeffrey A Esq PROPOSAL55Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Faith M RimItalyElwin Sharvill NEW
Mayumi S DoeBrazilIoni Bowcher RENEWAL
Rodrigues H ChuiItalyAsiya Javayant NEW
Greenwood X MacleadBrazilIoni Bowcher RENEWAL
Misaki P CaudyIndiaStephen Shaw UNQUALIFIED
Jefferson W PoquetteArgentinaAmy Elsner PROPOSAL
Arvin K GarufiJapanOnyama Limba UNQUALIFIED
Ashley X AlbaresFranceIvan Magalhaes UNQUALIFIED
Aika I SaylorsJapanAsiya Javayant NEGOTIATION
Arvin H FollerSpainXuxue Feng RENEWAL
Octavia T AmigonSpainOnyama Limba UNQUALIFIED
Jones M MaletSpainIoni Bowcher UNQUALIFIED
Darci T GlickBrazilAmy Elsner NEW
Leon D SaylorsArgentinaElwin Sharvill QUALIFIED
Maisha G WaycottIndiaIvan Magalhaes UNQUALIFIED
Faith L FigeroaUnited KingdomOnyama Limba RENEWAL
Chavez I ButtArgentinaAmy Elsner QUALIFIED
Deepesh R NestleFranceStephen Shaw QUALIFIED
Antonio S MorascaAustraliaAsiya Javayant NEW
Cody Y AlbaresIndiaOnyama Limba RENEWAL
Nicolas G MarrierAustraliaIvan Magalhaes UNQUALIFIED
Leon N OldroydRussiaOnyama Limba RENEWAL
Alejandro D MaletGermanyIoni Bowcher PROPOSAL
Jefferson O AmigonCanadaXuxue Feng NEGOTIATION
Tony Q DoeBrazilOnyama Limba NEGOTIATION
Leja B RimGermanyBernardo Dominic UNQUALIFIED
Johnson B GillianIndiaAnna Fali QUALIFIED
Octavia G CaldareraGermanyOnyama Limba UNQUALIFIED
Aika U GillianArgentinaBernardo Dominic NEGOTIATION
Salvatore C RimAustraliaIoni Bowcher PROPOSAL
Greenwood G FlosiCanadaOnyama Limba NEW
Johnson D DarakjySpainIoni Bowcher PROPOSAL
Maisha P RoysterArgentinaAnna Fali RENEWAL
Misaki Y MacleadFranceElwin Sharvill QUALIFIED
Greenwood K CampainRussiaIvan Magalhaes PROPOSAL
Jones B CampainCanadaBernardo Dominic NEGOTIATION
Misaki H StockhamIndiaStephen Shaw QUALIFIED
Juan S DilliardItalyIvan Magalhaes UNQUALIFIED
Francesco F WieserSpainBernardo Dominic NEGOTIATION
Claire W SlusarskiGermanyStephen Shaw UNQUALIFIED
Juan L VenereSpainElwin Sharvill NEW
Mayumi M TollnerRussiaStephen Shaw NEW
Leja U OstroskyUnited KingdomElwin Sharvill PROPOSAL
Claire E InouyeSpainOnyama Limba NEGOTIATION
Chavez Y KolmetzBrazilIvan Magalhaes RENEWAL
Tony E AlbaresSpainOnyama Limba NEW
Costa S GlickBrazilXuxue Feng PROPOSAL
Chavez C RulapaughJapanElwin Sharvill UNQUALIFIED
Mujtaba T GarufiSpainAmy Elsner PROPOSAL
Mayumi B MaletRussiaElwin Sharvill RENEWAL
Frozen Columns
Name
Munro J Rulapaugh
Emily C Perin
Isabel I Ruta
Misaki F Nicka
Tony T Glick
Costa K Bowley
Rodrigues A Nicka
Salvatore X Foller
Maria K Foller
Julie Y Chui
Murillo S Sergi
Adams X Stockham
Chavez U Sergi
Silvio N Iturbide
Aditya S Glick
Murillo P Amigon
Rodrigues Q Briddick
Kadeem Z Butt
David F Albares
Julie L Maclead
Arvin K Inouye
Mujtaba Y Rim
Maisha X Royster
Aditya U Inouye
Mayumi N Saylors
Rodrigues O Kusko
Alejandro W Perin
Maria L Gaucho
Leon M Glick
Francesco S Perin
Sinclair C Sergi
Adams V Malet
Silvio O Marrier
Nicolas H Gillian
Mujtaba R Rim
Ashley I Briddick
Aditya S Albares
Ashley S Oldroyd
Smith X Garufi
Faith I Gaucho
Francesco J Rulapaugh
Claire N Bolognia
Aika F Venere
Stacey X Albares
Chavez X Tollner
Maisha O Stenseth
Aditya Q Dilliard
Deepesh V Rim
Sinclair M Shinko
Wickens R Paprocki
IdCountryDate
1000Australia2025-05-06
1001Germany2025-05-13
1002Australia2025-05-22
1003Japan2025-05-30
1004United Kingdom2025-05-13
1005Italy2025-05-18
1006Australia2025-05-24
1007Germany2025-05-15
1008India2025-05-10
1009United Kingdom2025-05-20
1010Germany2025-05-12
1011Argentina2025-05-11
1012Germany2025-05-06
1013Brazil2025-05-28
1014United Kingdom2025-05-24
1015India2025-05-10
1016Spain2025-05-12
1017Brazil2025-05-04
1018Canada2025-05-11
1019Germany2025-05-13
1020Japan2025-05-24
1021Argentina2025-05-10
1022Russia2025-05-29
1023Australia2025-05-03
1024Russia2025-05-18
1025Germany2025-05-19
1026Russia2025-05-08
1027Australia2025-05-19
1028Russia2025-05-19
1029Italy2025-05-24
1030Japan2025-05-07
1031Canada2025-05-24
1032Italy2025-05-13
1033United Kingdom2025-05-19
1034Brazil2025-05-18
1035Spain2025-05-08
1036Italy2025-05-05
1037Canada2025-05-13
1038Brazil2025-05-05
1039Canada2025-05-05
1040Brazil2025-05-10
1041Canada2025-05-12
1042Japan2025-05-18
1043Brazil2025-05-30
1044Spain2025-05-28
1045France2025-05-16
1046United Kingdom2025-05-08
1047Russia2025-05-12
1048Argentina2025-05-22
1049United Kingdom2025-05-07

On-Demand Data

NameIdCountryDate
Tony P Dilliard1000Australia2025-05-19
Kadeem Y Malet1001Brazil2025-05-15
Darci P Amigon1002Italy2025-05-11
Smith X Caldarera1003Germany2025-05-15
Aika X Saylors1004France2025-05-18
Chavez H Kolmetz1005Italy2025-05-30
Mayumi N Caudy1006Russia2025-05-13
Tony M Schemmer1007Spain2025-05-18
Smith D Oldroyd1008Canada2025-05-07
Morrow S Malet1009India2025-05-18
Cody B Kusko1010France2025-05-02
Ricardo P Dilliard1011Canada2025-05-19
Emily F Rulapaugh1012United Kingdom2025-05-16
Maria G Wieser1013France2025-05-17
Jeanfrancois P Caudy1014Japan2025-05-06
Francesco B Amigon1015Russia2025-05-04
Johnson E Maclead1016Russia2025-05-26
Misaki R Saylors1017United Kingdom2025-05-16
Leon E Royster1018Germany2025-05-22
Mujtaba T Bowley1019Italy2025-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco Q MaletIndiaXuxue Feng UNQUALIFIED
Octavia E CaudyRussiaAnna Fali QUALIFIED
Smith X AmigonItalyAsiya Javayant UNQUALIFIED
Antonio M SchemmerJapanBernardo Dominic NEW
Johnson F CaldareraBrazilAmy Elsner NEGOTIATION
Jeanfrancois L VocelkaCanadaStephen Shaw RENEWAL
Ivar Q DoeItalyXuxue Feng NEGOTIATION
Francesco T OldroydBrazilXuxue Feng QUALIFIED
Octavia H RoysterAustraliaIoni Bowcher RENEWAL
Arvin B WieserItalyXuxue Feng PROPOSAL
Chavez L InouyeFranceStephen Shaw RENEWAL
Alejandro A GillianItalyOnyama Limba QUALIFIED
Antonio A GauchoRussiaAnna Fali PROPOSAL
Antonio O MaletArgentinaAnna Fali NEGOTIATION
Chavez M KolmetzGermanyAmy Elsner UNQUALIFIED
Maria W BowleyCanadaAsiya Javayant NEW
Izzy K MorascaArgentinaIvan Magalhaes NEW
Jefferson X AlbaresItalyXuxue Feng UNQUALIFIED
Silvio G DarakjyItalyOnyama Limba NEGOTIATION
Arvin A FlosiUnited KingdomXuxue Feng NEGOTIATION
Salvatore F WaycottBrazilAnna Fali QUALIFIED
Antonio T OldroydJapanOnyama Limba RENEWAL
Jones D RimItalyBernardo Dominic NEGOTIATION
Aika L VocelkaItalyIvan Magalhaes NEW
James M ButtUnited KingdomIoni Bowcher QUALIFIED
Arvin Q SlusarskiGermanyAmy Elsner RENEWAL
Aditya Y GillianFranceXuxue Feng NEW
Mayumi A NestleSpainElwin Sharvill NEW
Faith A AmigonAustraliaAsiya Javayant UNQUALIFIED
Tony A FlosiArgentinaAsiya Javayant NEGOTIATION
Leon X NickaArgentinaAnna Fali PROPOSAL
Cody W RutaAustraliaOnyama Limba QUALIFIED
Ashley J WhobreyRussiaOnyama Limba QUALIFIED
Ricardo E FerenczFranceStephen Shaw QUALIFIED
Kaitlin T FlosiCanadaIoni Bowcher PROPOSAL
Stacey Z MaletGermanyStephen Shaw UNQUALIFIED
Deepesh F SergiBrazilBernardo Dominic PROPOSAL
Maria I FollerSpainOnyama Limba PROPOSAL
Morrow B VenereAustraliaIvan Magalhaes RENEWAL
Arvin G GlickUnited KingdomStephen Shaw 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>