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 L ButtIndiaIvan Magalhaes NEGOTIATION
Isabel Z OstroskyIndiaAsiya Javayant NEGOTIATION
Greenwood R CaldareraJapanIvan Magalhaes NEW
Alejandro G SchemmerSpainXuxue Feng PROPOSAL
Nicolas N SergiGermanyXuxue Feng RENEWAL
Kaitlin K PerinJapanAsiya Javayant QUALIFIED
Alejandro A TollnerRussiaAnna Fali UNQUALIFIED
Ivar R RulapaughAustraliaElwin Sharvill PROPOSAL
Octavia M FigeroaCanadaIoni Bowcher RENEWAL
Mujtaba P InouyeArgentinaAmy Elsner UNQUALIFIED
Silvio R IturbideFranceBernardo Dominic RENEWAL
Salvatore H MorascaItalyXuxue Feng PROPOSAL
Nicolas N MacleadUnited KingdomIoni Bowcher NEGOTIATION
Deepesh W MaletBrazilIoni Bowcher RENEWAL
Greenwood J MaletFranceOnyama Limba UNQUALIFIED
Nicolas J NestleUnited KingdomIoni Bowcher PROPOSAL
Chavez R SlusarskiBrazilBernardo Dominic PROPOSAL
Maria D VocelkaBrazilIvan Magalhaes UNQUALIFIED
Leon T PoquetteGermanyIoni Bowcher QUALIFIED
Rodrigues Z OstroskyArgentinaBernardo Dominic NEGOTIATION
Wickens N MaletSpainIoni Bowcher NEW
Aruna R SaylorsAustraliaAmy Elsner RENEWAL
Jennifer I VocelkaJapanAnna Fali QUALIFIED
Ivar Y SchemmerGermanyBernardo Dominic RENEWAL
Maria F SaylorsFranceXuxue Feng PROPOSAL
Maisha R DarakjyFranceAsiya Javayant RENEWAL
Ashley W GauchoSpainAmy Elsner RENEWAL
Cody V PoquetteAustraliaXuxue Feng QUALIFIED
Juan D TollnerAustraliaStephen Shaw PROPOSAL
David B ButtUnited KingdomIoni Bowcher PROPOSAL
Aruna T MarrierArgentinaIoni Bowcher RENEWAL
Silvio M SchemmerAustraliaAsiya Javayant NEGOTIATION
Jennifer K ButtIndiaOnyama Limba NEW
Isabel I FigeroaBrazilOnyama Limba NEGOTIATION
Claire C ButtIndiaXuxue Feng RENEWAL
Silvio P GlickBrazilOnyama Limba PROPOSAL
Faith Z GarufiGermanyStephen Shaw QUALIFIED
Mayumi P WhobreyFranceAnna Fali NEW
Cody E CaudySpainBernardo Dominic NEW
Aika W BologniaGermanyAmy Elsner UNQUALIFIED
Jones J DilliardFranceXuxue Feng QUALIFIED
Tony N FlosiUnited KingdomBernardo Dominic RENEWAL
Salvatore D RimAustraliaStephen Shaw PROPOSAL
Leja F RimRussiaOnyama Limba PROPOSAL
Isabel Z SchemmerRussiaElwin Sharvill PROPOSAL
Maria N IturbideJapanAnna Fali RENEWAL
Julie F InouyeSpainAsiya Javayant RENEWAL
Costa B CampainCanadaAsiya Javayant QUALIFIED
Salvatore C KolmetzAustraliaStephen Shaw RENEWAL
Maria D GlickArgentinaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez Z BriddickIndiaIoni Bowcher NEW
Sinclair W RulapaughAustraliaAnna Fali PROPOSAL
Ashley J StensethBrazilOnyama Limba NEGOTIATION
Julie R CaldareraFranceIvan Magalhaes NEGOTIATION
Alejandro E ShinkoRussiaBernardo Dominic RENEWAL
Darci X GillianBrazilIvan Magalhaes UNQUALIFIED
Aika I IturbideIndiaAmy Elsner NEW
Mujtaba P ChuiFranceAsiya Javayant NEGOTIATION
Chavez R AmigonCanadaAmy Elsner RENEWAL
Deepesh U GillianBrazilAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David S VenereJapan2025-05-17Benton, John B Jr PROPOSAL34Elwin Sharvill
1001Leon P WaycottAustralia2025-05-19Dorl, James J Esq RENEWAL39Asiya Javayant
1002Kaitlin O PerinArgentina2025-05-29Benton, John B Jr NEGOTIATION38Stephen Shaw
1003Salvatore Z RulapaughBrazil2025-06-02Chemel, James L Cpa NEW9Elwin Sharvill
1004Francesco T NickaGermany2025-05-23Rangoni Of Florence PROPOSAL12Asiya Javayant
1005Smith F FlosiJapan2025-06-02Rangoni Of Florence RENEWAL22Ioni Bowcher
1006David E PaprockiGermany2025-06-11Chapman, Ross E Esq PROPOSAL26Anna Fali
1007Isabel Z BologniaRussia2025-06-12Dorl, James J Esq NEW6Asiya Javayant
1008Murillo R WaycottIndia2025-06-04King, Christopher A Esq UNQUALIFIED38Xuxue Feng
1009Costa Y BriddickRussia2025-06-04Printing Dimensions NEGOTIATION68Asiya Javayant
1010Costa B PerinSpain2025-06-10Rangoni Of Florence RENEWAL76Elwin Sharvill
1011Sinclair N ShinkoIndia2025-06-01Feiner Bros QUALIFIED72Anna Fali
1012Jennifer Q PoquetteArgentina2025-06-01Morlong Associates QUALIFIED49Ivan Magalhaes
1013Johnson D VocelkaArgentina2025-05-17Feltz Printing Service QUALIFIED96Ioni Bowcher
1014Ricardo C WieserIndia2025-05-26Printing Dimensions NEGOTIATION25Stephen Shaw
1015Ivar C KolmetzCanada2025-05-24Commercial Press NEW74Ivan Magalhaes
1016Rodrigues X CaudyItaly2025-05-18Feiner Bros NEGOTIATION33Bernardo Dominic
1017Mujtaba L VocelkaUnited Kingdom2025-05-25Chapman, Ross E Esq PROPOSAL40Onyama Limba
1018Costa B KolmetzFrance2025-06-09Morlong Associates NEW49Stephen Shaw
1019Mayumi U GlickRussia2025-06-08Chemel, James L Cpa PROPOSAL55Bernardo Dominic
1020Munro O CaldareraJapan2025-05-28Feiner Bros NEW71Bernardo Dominic
1021Julie X GillianFrance2025-06-11Feiner Bros QUALIFIED23Stephen Shaw
1022Silvio K BologniaArgentina2025-06-07King, Christopher A Esq QUALIFIED24Ioni Bowcher
1023Cody U FigeroaCanada2025-05-23Morlong Associates NEW29Onyama Limba
1024David O VenereItaly2025-05-18Rangoni Of Florence PROPOSAL46Ivan Magalhaes
1025Mujtaba G BowleyUnited Kingdom2025-06-03Chapman, Ross E Esq RENEWAL12Amy Elsner
1026Adams A NickaIndia2025-05-21Benton, John B Jr NEW83Xuxue Feng
1027Johnson W PerinSpain2025-05-24Chanay, Jeffrey A Esq NEGOTIATION44Ioni Bowcher
1028Aditya K SchemmerIndia2025-05-24Dorl, James J Esq PROPOSAL3Bernardo Dominic
1029Emily B BriddickRussia2025-05-23Buckley Miller Wright RENEWAL0Ivan Magalhaes
1030Julie E NickaUnited Kingdom2025-06-02Buckley Miller Wright NEW15Elwin Sharvill
1031Ivar J MaletCanada2025-06-10Buckley Miller Wright NEW68Bernardo Dominic
1032Leja Q RimGermany2025-06-13Chemel, James L Cpa NEW37Ivan Magalhaes
1033David R BologniaBrazil2025-05-17Rousseaux, Michael Esq PROPOSAL10Ioni Bowcher
1034Francesco Q CampainFrance2025-05-23Buckley Miller Wright NEW52Xuxue Feng
1035Jefferson Z OldroydCanada2025-05-20Buckley Miller Wright PROPOSAL79Elwin Sharvill
1036Claire Q SaylorsJapan2025-06-12Feiner Bros PROPOSAL2Asiya Javayant
1037Munro N MorascaGermany2025-05-28Chapman, Ross E Esq NEW85Ioni Bowcher
1038Darci N CaldareraSpain2025-05-28Feltz Printing Service RENEWAL68Amy Elsner
1039Mayumi D GauchoItaly2025-05-27Feltz Printing Service NEW82Ivan Magalhaes
1040Wickens B BologniaArgentina2025-06-06Chemel, James L Cpa RENEWAL37Xuxue Feng
1041Maisha G ChuiRussia2025-06-13Feiner Bros QUALIFIED29Ioni Bowcher
1042Octavia A SergiUnited Kingdom2025-06-04Printing Dimensions UNQUALIFIED8Asiya Javayant
1043Tony U MaletItaly2025-05-19Rousseaux, Michael Esq NEGOTIATION48Ioni Bowcher
1044Ricardo A RimCanada2025-06-11Chapman, Ross E Esq QUALIFIED73Ioni Bowcher
1045David J WhobreyAustralia2025-06-10Printing Dimensions QUALIFIED77Ioni Bowcher
1046Izzy B KuskoFrance2025-05-23Feltz Printing Service QUALIFIED22Bernardo Dominic
1047Ricardo D VenereIndia2025-06-14Commercial Press PROPOSAL61Xuxue Feng
1048Kaitlin X BriddickAustralia2025-05-24Rousseaux, Michael Esq UNQUALIFIED7Ioni Bowcher
1049Kadeem S PaprockiSpain2025-05-26Feltz Printing Service UNQUALIFIED9Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Nicolas L DarakjyArgentinaXuxue Feng UNQUALIFIED
Jones Q FerenczItalyBernardo Dominic NEGOTIATION
Tony R FollerJapanElwin Sharvill RENEWAL
Mayumi F ShinkoAustraliaIoni Bowcher QUALIFIED
Misaki H MarrierIndiaElwin Sharvill RENEWAL
Murillo E InouyeAustraliaBernardo Dominic RENEWAL
Kaitlin A TollnerBrazilAsiya Javayant RENEWAL
Deepesh N KolmetzGermanyAsiya Javayant NEGOTIATION
Maisha P VenereGermanyOnyama Limba UNQUALIFIED
Sinclair I DilliardRussiaElwin Sharvill RENEWAL
Jones X RutaFranceIvan Magalhaes NEGOTIATION
Jeanfrancois Z GlickItalyAmy Elsner QUALIFIED
Isabel V SaylorsSpainOnyama Limba QUALIFIED
Kadeem W NickaGermanyOnyama Limba QUALIFIED
Nicolas Z MaletAustraliaOnyama Limba RENEWAL
Jennifer H DilliardAustraliaOnyama Limba NEW
Mayumi F KolmetzItalyAnna Fali NEW
Wickens V BologniaRussiaStephen Shaw UNQUALIFIED
Misaki K GlickItalyElwin Sharvill NEW
Isabel W TollnerItalyOnyama Limba RENEWAL
Smith I StockhamGermanyStephen Shaw NEW
Alejandro N NickaFranceIoni Bowcher QUALIFIED
Silvio Z GarufiItalyElwin Sharvill NEW
Francesco C FlosiSpainBernardo Dominic PROPOSAL
Isabel I VocelkaAustraliaAmy Elsner QUALIFIED
Jones N OldroydBrazilAmy Elsner UNQUALIFIED
Deepesh V CaldareraFranceAmy Elsner NEGOTIATION
Rodrigues V MarrierCanadaOnyama Limba NEGOTIATION
Jones K OstroskyIndiaAsiya Javayant NEW
Octavia C CaudyArgentinaIoni Bowcher NEW
Costa L SergiUnited KingdomIvan Magalhaes RENEWAL
James U WieserArgentinaBernardo Dominic PROPOSAL
Mujtaba L SlusarskiRussiaIvan Magalhaes NEGOTIATION
Leon S CampainCanadaAmy Elsner UNQUALIFIED
Jennifer P StockhamAustraliaAmy Elsner RENEWAL
Jennifer C NickaBrazilBernardo Dominic NEW
Smith J MaletUnited KingdomXuxue Feng NEW
Jeanfrancois I GlickSpainAsiya Javayant UNQUALIFIED
Jeanfrancois K KolmetzAustraliaAnna Fali QUALIFIED
Tony H PaprockiItalyAmy Elsner QUALIFIED
Kadeem Y GillianArgentinaXuxue Feng NEW
Julie K BowleyUnited KingdomBernardo Dominic NEGOTIATION
Johnson V VenereAustraliaAnna Fali UNQUALIFIED
Greenwood M MorascaFranceXuxue Feng NEGOTIATION
Morrow V RoysterAustraliaAmy Elsner NEGOTIATION
Jones E TollnerIndiaBernardo Dominic QUALIFIED
Cody G DoeJapanOnyama Limba QUALIFIED
Tony Y RulapaughArgentinaAsiya Javayant NEW
Wickens J NestleItalyStephen Shaw RENEWAL
Maria U AlbaresSpainXuxue Feng NEW
Frozen Columns
Name
Chavez I Shinko
Izzy M Chui
Francesco V Poquette
Cody H Nicka
Maria O Doe
Wickens E Oldroyd
Smith C Campain
Claire C Flosi
Mujtaba M Rulapaugh
Isabel I Malet
Ashley M Ostrosky
Wickens P Kusko
Leon I Saylors
Jefferson V Butt
Salvatore U Whobrey
Aditya Q Perin
Stacey K Nestle
Tony I Royster
Ricardo C Vocelka
Aditya H Maclead
Cody I Albares
Silvio J Marrier
Salvatore F Figeroa
Ashley V Perin
Darci F Albares
Morrow N Campain
Alejandro D Malet
Ricardo B Gillian
Kaitlin W Ruta
Murillo V Darakjy
Deepesh J Inouye
Munro R Waycott
Maria G Amigon
Misaki M Tollner
Isabel V Iturbide
Juan H Dilliard
Darci B Caldarera
Aruna F Slusarski
Stacey F Dilliard
Cody Y Campain
Leon M Caldarera
Maisha U Flosi
Murillo D Kolmetz
David N Morasca
Emily F Nestle
Chavez Y Briddick
Mujtaba B Nestle
Darci E Royster
Emily M Perin
Salvatore U Whobrey
IdCountryDate
1000Russia2025-06-05
1001Canada2025-05-18
1002Brazil2025-06-01
1003Australia2025-05-20
1004Japan2025-06-11
1005India2025-05-16
1006France2025-06-13
1007India2025-05-16
1008Japan2025-06-10
1009Italy2025-06-07
1010Japan2025-06-05
1011Spain2025-05-19
1012Russia2025-05-24
1013Argentina2025-05-23
1014Argentina2025-05-16
1015India2025-06-13
1016Spain2025-05-26
1017India2025-05-20
1018Brazil2025-05-21
1019Italy2025-06-14
1020India2025-05-27
1021Spain2025-06-07
1022United Kingdom2025-05-26
1023Germany2025-06-14
1024Canada2025-05-22
1025France2025-06-05
1026Australia2025-06-14
1027Germany2025-06-09
1028Australia2025-06-09
1029Germany2025-06-12
1030Italy2025-05-21
1031Canada2025-06-05
1032Italy2025-05-31
1033Germany2025-05-28
1034Germany2025-06-13
1035Argentina2025-06-14
1036Australia2025-06-04
1037India2025-05-28
1038Canada2025-05-31
1039Argentina2025-06-08
1040Brazil2025-06-07
1041France2025-05-30
1042Japan2025-05-25
1043United Kingdom2025-05-21
1044Canada2025-05-24
1045Japan2025-05-21
1046Canada2025-05-21
1047Germany2025-05-16
1048Russia2025-05-20
1049Japan2025-05-27

On-Demand Data

NameIdCountryDate
Clifford R Albares1000Spain2025-05-31
Morrow B Nicka1001Germany2025-06-06
Isabel H Iturbide1002United Kingdom2025-05-28
Octavia C Nestle1003Spain2025-05-23
Nicolas R Gillian1004Japan2025-06-04
Mujtaba V Dilliard1005United Kingdom2025-05-16
Ricardo Y Flosi1006India2025-06-14
Tony T Caldarera1007Italy2025-06-11
Maria K Flosi1008Australia2025-06-14
Cody L Dilliard1009Australia2025-05-22
Maisha C Bolognia1010Japan2025-06-08
David Y Caudy1011Argentina2025-05-26
Jennifer S Stockham1012Brazil2025-05-20
Alejandro R Malet1013India2025-06-12
Adams U Slusarski1014India2025-05-29
Rodrigues O Paprocki1015Brazil2025-05-23
Misaki B Royster1016Argentina2025-06-04
Maria V Saylors1017Spain2025-05-30
Maria S Chui1018Spain2025-06-08
Aditya S Butt1019France2025-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey Q KuskoJapanOnyama Limba UNQUALIFIED
David P BologniaAustraliaOnyama Limba PROPOSAL
Greenwood H GlickFranceStephen Shaw QUALIFIED
Nicolas F BowleyBrazilAnna Fali RENEWAL
Sinclair C PaprockiIndiaBernardo Dominic PROPOSAL
Ashley B CampainGermanyOnyama Limba UNQUALIFIED
Ricardo M ButtAustraliaBernardo Dominic NEGOTIATION
Alejandro V ChuiItalyIvan Magalhaes QUALIFIED
Morrow B ChuiUnited KingdomAsiya Javayant RENEWAL
Francesco N CaudyUnited KingdomAsiya Javayant PROPOSAL
Francesco A FollerBrazilElwin Sharvill NEGOTIATION
Aditya R WhobreyIndiaElwin Sharvill RENEWAL
Ricardo Q MaletIndiaIoni Bowcher NEW
Adams W TollnerSpainIvan Magalhaes NEGOTIATION
Greenwood O MaletItalyOnyama Limba NEGOTIATION
Isabel D FigeroaCanadaAnna Fali UNQUALIFIED
Silvio T DarakjySpainAnna Fali UNQUALIFIED
Rodrigues U BriddickItalyElwin Sharvill QUALIFIED
Octavia I StensethGermanyAmy Elsner QUALIFIED
Munro O BowleyGermanyAmy Elsner NEGOTIATION
Claire Y WhobreyIndiaBernardo Dominic PROPOSAL
Chavez C OldroydRussiaElwin Sharvill NEW
Jeanfrancois C DoeUnited KingdomAsiya Javayant NEW
Ivar P OstroskyAustraliaElwin Sharvill RENEWAL
Antonio X StensethCanadaIoni Bowcher NEGOTIATION
Morrow Z StockhamArgentinaOnyama Limba RENEWAL
Leja T WieserSpainStephen Shaw NEW
Jones O BowleyJapanStephen Shaw NEW
Aruna Y CampainRussiaXuxue Feng NEW
Mayumi L PerinIndiaIvan Magalhaes QUALIFIED
Octavia Q PaprockiFranceXuxue Feng NEW
Aruna K GarufiIndiaBernardo Dominic NEW
Chavez D StockhamBrazilAsiya Javayant NEW
Stacey M RoysterAustraliaAsiya Javayant NEGOTIATION
Jones W StensethRussiaStephen Shaw PROPOSAL
Jones W SergiCanadaIvan Magalhaes RENEWAL
Smith T MarrierIndiaAsiya Javayant UNQUALIFIED
Sinclair R SlusarskiArgentinaElwin Sharvill PROPOSAL
Octavia K CampainIndiaAmy Elsner QUALIFIED
Faith G RulapaughFranceBernardo Dominic 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>