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 I MarrierIndiaIvan Magalhaes NEGOTIATION
Maria D ButtAustraliaBernardo Dominic RENEWAL
Izzy V InouyeArgentinaAsiya Javayant PROPOSAL
Juan I StockhamIndiaAmy Elsner UNQUALIFIED
Tony E DarakjyAustraliaAsiya Javayant RENEWAL
Alejandro W BowleyAustraliaAsiya Javayant UNQUALIFIED
Nicolas A StensethUnited KingdomAsiya Javayant RENEWAL
Claire G RulapaughJapanXuxue Feng NEW
Juan R NestleUnited KingdomBernardo Dominic NEW
Munro Q BowleyAustraliaAnna Fali NEW
Jeanfrancois U StensethBrazilAnna Fali QUALIFIED
Mujtaba H SchemmerAustraliaBernardo Dominic PROPOSAL
Alejandro C WieserUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore Q IturbideAustraliaElwin Sharvill QUALIFIED
Cody N ButtIndiaXuxue Feng QUALIFIED
Ashley H RimBrazilIvan Magalhaes UNQUALIFIED
Kaitlin T FollerCanadaStephen Shaw RENEWAL
Johnson V CampainRussiaXuxue Feng NEGOTIATION
Johnson H ButtAustraliaOnyama Limba UNQUALIFIED
Antonio E RoysterItalyXuxue Feng NEGOTIATION
Alejandro S KuskoAustraliaAsiya Javayant PROPOSAL
Faith W InouyeFranceAnna Fali RENEWAL
Ricardo D KolmetzAustraliaXuxue Feng NEW
Aika K WaycottIndiaXuxue Feng PROPOSAL
Munro J FlosiAustraliaIoni Bowcher PROPOSAL
Kaitlin A WhobreyRussiaBernardo Dominic RENEWAL
Ricardo K MarrierGermanyAmy Elsner NEGOTIATION
Silvio J NestleArgentinaOnyama Limba PROPOSAL
Aruna U FerenczIndiaAmy Elsner NEGOTIATION
Emily I BowleyArgentinaAsiya Javayant RENEWAL
Jones O BriddickArgentinaXuxue Feng NEGOTIATION
Clifford Y StockhamAustraliaIoni Bowcher QUALIFIED
Faith Z KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson P CaldareraAustraliaAnna Fali NEW
Maisha U KuskoGermanyIvan Magalhaes NEW
Ashley P FerenczItalyBernardo Dominic PROPOSAL
Jeanfrancois W SlusarskiAustraliaStephen Shaw RENEWAL
Tony B PaprockiFranceXuxue Feng UNQUALIFIED
Morrow Y DoeUnited KingdomIvan Magalhaes PROPOSAL
Tony W ChuiIndiaOnyama Limba PROPOSAL
Kaitlin Z GillianCanadaElwin Sharvill PROPOSAL
Smith Q FerenczAustraliaIoni Bowcher NEW
Juan K MaletSpainAmy Elsner RENEWAL
Chavez T RutaItalyStephen Shaw QUALIFIED
Adams Q RutaBrazilElwin Sharvill RENEWAL
Alejandro U MaletRussiaStephen Shaw NEW
Maria R PerinAustraliaOnyama Limba NEGOTIATION
Deepesh R VocelkaJapanAnna Fali PROPOSAL
Stacey A OstroskyCanadaIoni Bowcher UNQUALIFIED
Adams X TollnerFranceAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Julie W BologniaBrazilIvan Magalhaes QUALIFIED
Misaki R KolmetzRussiaElwin Sharvill RENEWAL
Kaitlin I SlusarskiSpainOnyama Limba NEW
Leon H VenereArgentinaAmy Elsner UNQUALIFIED
Leja U PaprockiCanadaXuxue Feng QUALIFIED
Mujtaba M OstroskyUnited KingdomStephen Shaw NEW
Francesco B DarakjyUnited KingdomIoni Bowcher RENEWAL
Misaki E CampainArgentinaBernardo Dominic PROPOSAL
Kaitlin Q SlusarskiRussiaBernardo Dominic QUALIFIED
Arvin P RutaFranceBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja J FollerAustralia2024-06-05Chapman, Ross E Esq NEGOTIATION58Onyama Limba
1001Nicolas U SchemmerBrazil2024-06-15Chanay, Jeffrey A Esq QUALIFIED32Onyama Limba
1002Deepesh J VocelkaIndia2024-05-31Feiner Bros PROPOSAL18Onyama Limba
1003Emily A MarrierItaly2024-06-17King, Christopher A Esq NEW14Asiya Javayant
1004Jefferson E MaletGermany2024-05-28Chanay, Jeffrey A Esq UNQUALIFIED57Ioni Bowcher
1005Tony T SlusarskiJapan2024-06-22Buckley Miller Wright QUALIFIED51Bernardo Dominic
1006Aditya Z SlusarskiCanada2024-06-13Feltz Printing Service RENEWAL32Elwin Sharvill
1007Ricardo C CaldareraSpain2024-06-13Commercial Press NEW28Bernardo Dominic
1008Aruna P BowleyIndia2024-05-30Rousseaux, Michael Esq RENEWAL43Stephen Shaw
1009Faith V BriddickBrazil2024-05-26Buckley Miller Wright UNQUALIFIED90Ivan Magalhaes
1010Antonio K GarufiFrance2024-05-24Chapman, Ross E Esq PROPOSAL0Elwin Sharvill
1011Deepesh B PerinCanada2024-06-02Printing Dimensions UNQUALIFIED49Bernardo Dominic
1012Arvin H RulapaughArgentina2024-05-27Benton, John B Jr NEW45Elwin Sharvill
1013Wickens B OldroydSpain2024-06-09Commercial Press UNQUALIFIED59Asiya Javayant
1014Francesco F SaylorsIndia2024-06-17Morlong Associates RENEWAL39Xuxue Feng
1015Silvio G SchemmerBrazil2024-06-12Rousseaux, Michael Esq QUALIFIED98Asiya Javayant
1016Jones I FollerRussia2024-05-28Chapman, Ross E Esq NEW81Amy Elsner
1017Kaitlin C MarrierBrazil2024-06-01Truhlar And Truhlar Attys NEW34Asiya Javayant
1018Jeanfrancois X DilliardFrance2024-06-05Printing Dimensions RENEWAL66Ivan Magalhaes
1019Costa I DarakjyUnited Kingdom2024-06-13Rangoni Of Florence RENEWAL71Bernardo Dominic
1020David Y GillianJapan2024-05-31Feiner Bros PROPOSAL70Bernardo Dominic
1021Claire K FlosiArgentina2024-06-01Chapman, Ross E Esq NEGOTIATION30Ioni Bowcher
1022Octavia D MaletArgentina2024-06-10Dorl, James J Esq RENEWAL51Xuxue Feng
1023Leon U CaldareraCanada2024-05-28Rousseaux, Michael Esq QUALIFIED70Onyama Limba
1024Tony B CaldareraCanada2024-05-25Buckley Miller Wright UNQUALIFIED82Ivan Magalhaes
1025Izzy D RoysterArgentina2024-06-05King, Christopher A Esq RENEWAL42Anna Fali
1026Darci E StockhamGermany2024-06-18Chemel, James L Cpa QUALIFIED72Asiya Javayant
1027Aruna J CaudyBrazil2024-06-11Rousseaux, Michael Esq NEGOTIATION53Ioni Bowcher
1028Kadeem W GarufiGermany2024-06-20Feltz Printing Service QUALIFIED18Anna Fali
1029Mayumi H KuskoUnited Kingdom2024-05-24Benton, John B Jr RENEWAL53Stephen Shaw
1030Silvio L CaldareraArgentina2024-06-13Truhlar And Truhlar Attys NEGOTIATION12Amy Elsner
1031Emily C GlickItaly2024-06-10Chapman, Ross E Esq UNQUALIFIED72Onyama Limba
1032Octavia W ShinkoBrazil2024-06-09Rousseaux, Michael Esq UNQUALIFIED80Onyama Limba
1033Jones T PaprockiGermany2024-06-01Commercial Press PROPOSAL43Stephen Shaw
1034Leon L CampainUnited Kingdom2024-06-17Morlong Associates UNQUALIFIED54Ioni Bowcher
1035James J PoquetteBrazil2024-06-01Feltz Printing Service NEW18Onyama Limba
1036Mayumi Y DilliardUnited Kingdom2024-06-04Chapman, Ross E Esq PROPOSAL25Ioni Bowcher
1037Chavez Y MarrierCanada2024-05-31Chapman, Ross E Esq QUALIFIED52Asiya Javayant
1038Juan J FerenczUnited Kingdom2024-06-20Printing Dimensions QUALIFIED17Elwin Sharvill
1039Deepesh F ButtArgentina2024-06-03Chemel, James L Cpa PROPOSAL10Asiya Javayant
1040Arvin A GillianAustralia2024-06-02Feiner Bros PROPOSAL40Ioni Bowcher
1041Jones P AmigonJapan2024-05-25Commercial Press UNQUALIFIED20Stephen Shaw
1042Aika F GarufiItaly2024-06-01Rousseaux, Michael Esq QUALIFIED53Anna Fali
1043Francesco S SlusarskiBrazil2024-06-03King, Christopher A Esq UNQUALIFIED80Anna Fali
1044Silvio R FigeroaRussia2024-05-28Commercial Press UNQUALIFIED62Bernardo Dominic
1045Leja F StensethFrance2024-06-01Morlong Associates UNQUALIFIED78Onyama Limba
1046Alejandro P WaycottUnited Kingdom2024-05-28Feltz Printing Service NEGOTIATION53Asiya Javayant
1047Cody X IturbideSpain2024-06-17Chanay, Jeffrey A Esq NEW75Asiya Javayant
1048Ivar K BriddickUnited Kingdom2024-06-19King, Christopher A Esq RENEWAL23Amy Elsner
1049Octavia D GlickBrazil2024-06-19Printing Dimensions PROPOSAL74Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro Q GarufiJapanAnna Fali PROPOSAL
Silvio N NestleAustraliaAsiya Javayant RENEWAL
Misaki F FollerBrazilAmy Elsner PROPOSAL
Murillo F GauchoGermanyStephen Shaw NEGOTIATION
Clifford Z IturbideItalyAnna Fali QUALIFIED
Munro R SchemmerAustraliaAnna Fali RENEWAL
Emily G NestleAustraliaAnna Fali QUALIFIED
Antonio Y NestleItalyAmy Elsner PROPOSAL
Greenwood K BriddickRussiaXuxue Feng UNQUALIFIED
Maisha G FigeroaAustraliaStephen Shaw QUALIFIED
Silvio T SlusarskiFranceAsiya Javayant PROPOSAL
Alejandro V RulapaughFranceElwin Sharvill RENEWAL
Aruna T SchemmerRussiaIoni Bowcher PROPOSAL
Aruna G SergiIndiaStephen Shaw NEW
Alejandro K MarrierAustraliaXuxue Feng NEW
Ivar L SchemmerBrazilIvan Magalhaes QUALIFIED
Leja N GlickIndiaIvan Magalhaes PROPOSAL
Munro X MaletAustraliaAsiya Javayant NEGOTIATION
Jefferson J FollerItalyIoni Bowcher RENEWAL
Mujtaba G SchemmerItalyAnna Fali NEW
Jones W MaletIndiaIvan Magalhaes RENEWAL
Octavia C InouyeAustraliaAnna Fali PROPOSAL
Cody H PoquetteSpainAsiya Javayant RENEWAL
Claire C GauchoAustraliaIvan Magalhaes NEGOTIATION
Leja G RimUnited KingdomIoni Bowcher NEW
Jeanfrancois T PerinItalyXuxue Feng QUALIFIED
Cody C RulapaughSpainStephen Shaw QUALIFIED
Aditya I SchemmerBrazilStephen Shaw PROPOSAL
Chavez W NickaGermanyIvan Magalhaes NEW
Cody Y NickaUnited KingdomAnna Fali QUALIFIED
Leja E MacleadArgentinaIvan Magalhaes NEGOTIATION
Ivar T MaletIndiaXuxue Feng NEGOTIATION
James F InouyeGermanyOnyama Limba UNQUALIFIED
Leon F FollerJapanOnyama Limba NEW
Misaki Y ButtSpainAsiya Javayant NEGOTIATION
Ashley R MarrierUnited KingdomAsiya Javayant NEGOTIATION
Emily L RulapaughBrazilBernardo Dominic NEW
Jeanfrancois H BriddickIndiaAsiya Javayant RENEWAL
Aditya E FigeroaArgentinaAmy Elsner NEW
Cody G GlickAustraliaOnyama Limba RENEWAL
Aruna Z CaudyRussiaOnyama Limba NEGOTIATION
Aika S ButtFranceIoni Bowcher UNQUALIFIED
Maisha I SaylorsGermanyOnyama Limba UNQUALIFIED
Leon R TollnerGermanyBernardo Dominic UNQUALIFIED
Kaitlin X SergiItalyElwin Sharvill UNQUALIFIED
Munro P PerinItalyIvan Magalhaes UNQUALIFIED
Sinclair Q RutaIndiaIvan Magalhaes PROPOSAL
Chavez W StensethItalyBernardo Dominic RENEWAL
Aika P GillianFranceOnyama Limba RENEWAL
Jefferson W CaldareraJapanBernardo Dominic PROPOSAL
Frozen Columns
Name
Emily K Inouye
Ashley L Ostrosky
David D Venere
Jeanfrancois O Campain
Chavez M Kolmetz
Cody B Whobrey
Maisha T Glick
Smith A Foller
Leja J Saylors
Octavia A Dilliard
Ricardo K Caudy
Isabel O Sergi
Morrow I Whobrey
Murillo D Vocelka
Ashley K Venere
Ashley Z Caldarera
Arvin M Maclead
Costa A Stockham
Misaki J Glick
Julie D Oldroyd
James N Malet
Salvatore S Iturbide
Morrow G Garufi
Tony X Foller
Ricardo O Schemmer
Antonio I Venere
Kaitlin U Perin
Arvin H Marrier
Francesco G Inouye
Johnson G Perin
Jeanfrancois R Paprocki
Johnson U Rulapaugh
Ricardo S Ruta
Alejandro U Tollner
Salvatore K Inouye
Mujtaba R Butt
Nicolas T Venere
Johnson O Gillian
Ivar N Briddick
Deepesh H Whobrey
Leja R Flosi
Aditya W Saylors
Silvio O Stenseth
Leja O Waycott
Claire W Foller
Antonio Y Bolognia
Faith J Iturbide
Misaki P Marrier
Smith H Butt
Isabel S Schemmer
IdCountryDate
1000Australia2024-06-03
1001Canada2024-06-08
1002India2024-06-14
1003Italy2024-06-11
1004India2024-06-21
1005France2024-06-22
1006France2024-06-12
1007Italy2024-06-15
1008Russia2024-05-28
1009India2024-06-22
1010Canada2024-06-08
1011United Kingdom2024-06-05
1012United Kingdom2024-06-12
1013United Kingdom2024-06-08
1014Canada2024-05-29
1015Canada2024-06-06
1016Argentina2024-05-31
1017Brazil2024-06-07
1018Japan2024-06-01
1019Brazil2024-06-04
1020Canada2024-05-27
1021Italy2024-06-21
1022Brazil2024-06-08
1023Spain2024-05-30
1024France2024-06-10
1025Brazil2024-06-10
1026Japan2024-05-29
1027United Kingdom2024-05-25
1028France2024-06-17
1029India2024-06-05
1030Australia2024-06-05
1031Australia2024-06-05
1032Germany2024-06-10
1033United Kingdom2024-06-15
1034Brazil2024-05-26
1035Australia2024-06-05
1036India2024-06-14
1037Spain2024-06-05
1038France2024-06-06
1039Argentina2024-06-22
1040Australia2024-06-09
1041Russia2024-06-19
1042Spain2024-06-01
1043Germany2024-05-30
1044Argentina2024-06-15
1045Russia2024-05-29
1046Australia2024-06-22
1047Germany2024-05-28
1048Brazil2024-06-15
1049Australia2024-06-17

On-Demand Data

NameIdCountryDate
Arvin G Perin1000Canada2024-05-27
Leja D Rulapaugh1001Australia2024-06-06
Morrow H Tollner1002United Kingdom2024-06-02
Aika B Tollner1003Australia2024-06-07
David H Maclead1004India2024-06-10
Jennifer K Iturbide1005Italy2024-06-18
David L Wieser1006India2024-05-26
Maria A Oldroyd1007Spain2024-06-20
Rodrigues R Ferencz1008Canada2024-06-07
Silvio U Campain1009India2024-06-07
Aika C Kolmetz1010Australia2024-06-12
Alejandro R Stockham1011Canada2024-06-18
Chavez E Butt1012France2024-06-20
Deepesh S Wieser1013Spain2024-06-15
Tony I Ostrosky1014India2024-06-07
Deepesh U Dilliard1015Canada2024-06-18
Leon I Vocelka1016Italy2024-05-24
Cody V Gaucho1017Germany2024-06-18
Adams X Butt1018Italy2024-06-16
Jefferson N Royster1019Russia2024-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer T OldroydJapanBernardo Dominic NEGOTIATION
Adams X SaylorsItalyAnna Fali NEGOTIATION
Chavez D WieserItalyXuxue Feng NEGOTIATION
Julie K OstroskyCanadaStephen Shaw QUALIFIED
Salvatore Y FigeroaUnited KingdomAnna Fali NEW
Julie G MaletSpainAsiya Javayant RENEWAL
Kadeem I StockhamBrazilAsiya Javayant PROPOSAL
Claire U MaletAustraliaStephen Shaw PROPOSAL
Chavez L SchemmerItalyAmy Elsner NEGOTIATION
Munro I BologniaGermanyBernardo Dominic UNQUALIFIED
Salvatore H RoysterAustraliaElwin Sharvill QUALIFIED
Izzy A StensethJapanIoni Bowcher NEW
Jennifer V BologniaArgentinaAnna Fali QUALIFIED
Smith K IturbideIndiaXuxue Feng UNQUALIFIED
Kadeem R IturbideIndiaAnna Fali UNQUALIFIED
Octavia L GauchoJapanAnna Fali NEGOTIATION
Maria B SlusarskiAustraliaAnna Fali RENEWAL
Smith W VenereAustraliaAnna Fali QUALIFIED
James R FigeroaArgentinaElwin Sharvill PROPOSAL
Francesco E PaprockiSpainXuxue Feng NEW
Jennifer K IturbideUnited KingdomOnyama Limba RENEWAL
Stacey Y RulapaughGermanyIoni Bowcher RENEWAL
Aika F WaycottRussiaAsiya Javayant QUALIFIED
Sinclair V BowleySpainAsiya Javayant NEW
Maria X BriddickArgentinaAmy Elsner QUALIFIED
Jones W ShinkoSpainIoni Bowcher UNQUALIFIED
David Y OstroskyGermanyIvan Magalhaes NEW
Morrow O AmigonUnited KingdomAnna Fali RENEWAL
David K MorascaBrazilXuxue Feng NEGOTIATION
Ashley K VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Julie R DilliardBrazilOnyama Limba UNQUALIFIED
Izzy O FollerSpainAmy Elsner QUALIFIED
Munro I SlusarskiItalyStephen Shaw NEGOTIATION
Adams G KolmetzUnited KingdomStephen Shaw PROPOSAL
Jones O MorascaRussiaOnyama Limba PROPOSAL
Nicolas Q MarrierArgentinaElwin Sharvill RENEWAL
Misaki B ButtGermanyAmy Elsner NEW
Octavia D RutaIndiaIvan Magalhaes QUALIFIED
Maria D DarakjyArgentinaStephen Shaw NEGOTIATION
Julie S CaudyArgentinaOnyama 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>