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
Morrow A FigeroaGermanyElwin Sharvill RENEWAL
James D RutaItalyIoni Bowcher NEGOTIATION
Misaki T CaudyIndiaIvan Magalhaes NEW
Arvin D WieserJapanAsiya Javayant UNQUALIFIED
Ivar X BriddickUnited KingdomBernardo Dominic NEW
Ricardo E FollerSpainStephen Shaw NEW
Jones Z NickaIndiaOnyama Limba UNQUALIFIED
Adams B RimAustraliaAsiya Javayant UNQUALIFIED
Sinclair X ButtFranceXuxue Feng NEGOTIATION
Leon Z MaletIndiaBernardo Dominic NEGOTIATION
Chavez Z DilliardItalyBernardo Dominic QUALIFIED
Kaitlin U MaletCanadaAsiya Javayant UNQUALIFIED
Antonio J StensethArgentinaOnyama Limba NEGOTIATION
David L MarrierItalyElwin Sharvill UNQUALIFIED
Murillo N CaldareraFranceElwin Sharvill UNQUALIFIED
Aruna N RoysterArgentinaBernardo Dominic RENEWAL
Leon I KuskoRussiaIoni Bowcher NEW
Clifford D FerenczFranceBernardo Dominic UNQUALIFIED
Deepesh D RimGermanyStephen Shaw NEGOTIATION
Silvio N SlusarskiFranceOnyama Limba UNQUALIFIED
Clifford L NickaItalyIvan Magalhaes NEW
Salvatore X InouyeUnited KingdomStephen Shaw UNQUALIFIED
Cody Z BologniaArgentinaAsiya Javayant NEW
Octavia F NickaJapanBernardo Dominic NEGOTIATION
Johnson U WhobreyCanadaAsiya Javayant NEW
Adams Y MacleadCanadaElwin Sharvill NEW
Johnson M WhobreyUnited KingdomIvan Magalhaes RENEWAL
Jefferson A ButtUnited KingdomOnyama Limba QUALIFIED
Rodrigues A DarakjyGermanyXuxue Feng QUALIFIED
Nicolas U PoquetteFranceAmy Elsner QUALIFIED
Leon T GillianBrazilAmy Elsner NEW
Julie M WhobreyIndiaAmy Elsner NEW
Leon K RutaFranceAmy Elsner NEGOTIATION
Leon N SchemmerFranceElwin Sharvill NEGOTIATION
Leja A TollnerCanadaXuxue Feng PROPOSAL
Salvatore R CaldareraBrazilBernardo Dominic UNQUALIFIED
Antonio N MaletBrazilAsiya Javayant NEGOTIATION
Antonio H FigeroaCanadaAnna Fali UNQUALIFIED
Antonio L CaudyCanadaOnyama Limba NEW
Aditya D ShinkoItalyBernardo Dominic UNQUALIFIED
Claire I FigeroaAustraliaAsiya Javayant UNQUALIFIED
Juan I MarrierJapanStephen Shaw PROPOSAL
Ivar Q ChuiIndiaOnyama Limba NEGOTIATION
Tony J GlickJapanAmy Elsner RENEWAL
Faith X NickaIndiaIoni Bowcher NEGOTIATION
Faith K NestleGermanyAnna Fali PROPOSAL
Juan Q PerinAustraliaAnna Fali QUALIFIED
Salvatore B FigeroaRussiaElwin Sharvill PROPOSAL
Jefferson M AlbaresArgentinaAsiya Javayant PROPOSAL
Arvin L NestleRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood G BologniaGermanyXuxue Feng QUALIFIED
Jeanfrancois Y WhobreyRussiaElwin Sharvill RENEWAL
Antonio U PoquetteRussiaAsiya Javayant QUALIFIED
Aditya Y AmigonSpainIvan Magalhaes RENEWAL
Cody P AmigonIndiaIoni Bowcher NEGOTIATION
Stacey U FerenczIndiaAmy Elsner UNQUALIFIED
Maisha B KolmetzBrazilXuxue Feng RENEWAL
Claire P BriddickGermanyAnna Fali QUALIFIED
Wickens V RimAustraliaStephen Shaw RENEWAL
Francesco W WaycottAustraliaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair M WaycottItaly2025-04-14Chapman, Ross E Esq NEGOTIATION38Amy Elsner
1001Kadeem W FollerGermany2025-04-05Truhlar And Truhlar Attys NEW25Elwin Sharvill
1002Kadeem I AlbaresFrance2025-04-10Benton, John B Jr UNQUALIFIED40Xuxue Feng
1003David M DoeArgentina2025-04-17Benton, John B Jr QUALIFIED72Onyama Limba
1004Jefferson T ButtUnited Kingdom2025-04-30Chapman, Ross E Esq UNQUALIFIED63Xuxue Feng
1005Chavez G MaletItaly2025-04-05Chapman, Ross E Esq PROPOSAL99Bernardo Dominic
1006Juan D ShinkoSpain2025-04-05Rousseaux, Michael Esq NEGOTIATION74Anna Fali
1007Jones D VocelkaGermany2025-04-02Buckley Miller Wright NEW1Anna Fali
1008Nicolas N DarakjyGermany2025-04-18Printing Dimensions NEGOTIATION85Asiya Javayant
1009Jones Q FollerRussia2025-04-18Printing Dimensions NEW5Onyama Limba
1010Costa E PerinAustralia2025-04-03Buckley Miller Wright QUALIFIED41Asiya Javayant
1011Smith S BriddickGermany2025-04-26Chanay, Jeffrey A Esq NEW7Stephen Shaw
1012Kadeem M FerenczItaly2025-04-24Chemel, James L Cpa NEW83Anna Fali
1013Rodrigues P WhobreyRussia2025-04-18Rangoni Of Florence PROPOSAL93Anna Fali
1014Francesco W VenereGermany2025-04-08Chanay, Jeffrey A Esq RENEWAL44Elwin Sharvill
1015Claire I ButtArgentina2025-04-05Printing Dimensions NEW87Amy Elsner
1016Faith T NickaBrazil2025-04-04Feltz Printing Service RENEWAL3Xuxue Feng
1017Salvatore E OstroskyGermany2025-04-05Feltz Printing Service NEGOTIATION68Onyama Limba
1018Maria I ShinkoRussia2025-04-29Morlong Associates NEW43Anna Fali
1019David F SchemmerIndia2025-04-02Benton, John B Jr RENEWAL26Elwin Sharvill
1020Costa B VenereGermany2025-04-01Rangoni Of Florence RENEWAL73Ioni Bowcher
1021Wickens H TollnerRussia2025-04-01Morlong Associates NEW37Amy Elsner
1022Murillo B MaletRussia2025-04-16Printing Dimensions NEW20Anna Fali
1023Morrow V CampainRussia2025-04-23Feiner Bros NEGOTIATION20Ioni Bowcher
1024Julie H ChuiFrance2025-04-05Rangoni Of Florence UNQUALIFIED33Ioni Bowcher
1025Julie M PoquetteJapan2025-04-22Chemel, James L Cpa PROPOSAL24Ivan Magalhaes
1026Misaki Q BowleyItaly2025-04-27Commercial Press NEGOTIATION56Amy Elsner
1027Stacey R SlusarskiBrazil2025-04-23Chapman, Ross E Esq PROPOSAL41Stephen Shaw
1028Ivar X BowleyItaly2025-04-15Printing Dimensions UNQUALIFIED8Elwin Sharvill
1029Leja H PerinIndia2025-04-07Chemel, James L Cpa NEW87Xuxue Feng
1030Ricardo W InouyeFrance2025-04-28Commercial Press NEW44Elwin Sharvill
1031Izzy X DarakjyCanada2025-04-20Chapman, Ross E Esq NEGOTIATION7Anna Fali
1032Ashley A WaycottUnited Kingdom2025-04-08Truhlar And Truhlar Attys NEGOTIATION4Amy Elsner
1033Morrow V VenereItaly2025-04-19Morlong Associates NEGOTIATION33Onyama Limba
1034Morrow Z ShinkoArgentina2025-04-17Rangoni Of Florence QUALIFIED14Amy Elsner
1035Stacey Z OldroydFrance2025-04-01Morlong Associates QUALIFIED61Elwin Sharvill
1036Munro Z VocelkaGermany2025-04-21Feiner Bros UNQUALIFIED56Onyama Limba
1037Silvio S PoquetteUnited Kingdom2025-04-03King, Christopher A Esq PROPOSAL85Asiya Javayant
1038Rodrigues D BowleyBrazil2025-04-26Benton, John B Jr PROPOSAL51Xuxue Feng
1039Francesco F GlickRussia2025-04-16Feltz Printing Service QUALIFIED27Onyama Limba
1040Silvio A AlbaresSpain2025-04-22Truhlar And Truhlar Attys QUALIFIED24Onyama Limba
1041Aika A DoeCanada2025-04-12Rangoni Of Florence NEW39Onyama Limba
1042Kadeem E SlusarskiCanada2025-04-29Buckley Miller Wright NEW94Amy Elsner
1043Antonio X VocelkaRussia2025-04-19King, Christopher A Esq PROPOSAL50Bernardo Dominic
1044Maisha S BriddickGermany2025-04-24Truhlar And Truhlar Attys NEW24Ivan Magalhaes
1045Rodrigues X FlosiCanada2025-04-28Benton, John B Jr RENEWAL72Stephen Shaw
1046Alejandro Z KuskoBrazil2025-04-08Feltz Printing Service UNQUALIFIED18Bernardo Dominic
1047Octavia C RutaIndia2025-04-20Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1048Aruna M GlickArgentina2025-04-10Feiner Bros QUALIFIED37Stephen Shaw
1049Chavez T OldroydFrance2025-04-14Chapman, Ross E Esq RENEWAL32Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki V FlosiUnited KingdomAsiya Javayant NEGOTIATION
Jones X PaprockiArgentinaOnyama Limba NEW
Francesco H PaprockiSpainAmy Elsner RENEWAL
Arvin G SaylorsGermanyStephen Shaw NEGOTIATION
Jeanfrancois C GarufiUnited KingdomBernardo Dominic PROPOSAL
James H FigeroaCanadaOnyama Limba UNQUALIFIED
Emily F KolmetzUnited KingdomAnna Fali NEGOTIATION
Misaki N FollerIndiaOnyama Limba NEGOTIATION
Emily T SaylorsCanadaAnna Fali NEW
Clifford T GauchoIndiaIoni Bowcher QUALIFIED
Jennifer B WaycottJapanStephen Shaw QUALIFIED
Leja Q IturbideAustraliaIoni Bowcher NEW
Salvatore S KuskoBrazilAmy Elsner QUALIFIED
Faith M CaudyItalyStephen Shaw NEGOTIATION
Wickens U ChuiFranceAsiya Javayant UNQUALIFIED
Sinclair C GarufiBrazilBernardo Dominic UNQUALIFIED
Mayumi G SergiIndiaStephen Shaw PROPOSAL
Ricardo C SergiArgentinaAmy Elsner PROPOSAL
James O SaylorsCanadaIvan Magalhaes UNQUALIFIED
Jennifer U BowleyFranceAmy Elsner PROPOSAL
James X MarrierSpainAnna Fali NEGOTIATION
Claire Z SaylorsUnited KingdomElwin Sharvill NEW
Julie C DoeJapanIoni Bowcher NEGOTIATION
Arvin E DoeCanadaAnna Fali NEGOTIATION
Murillo E PaprockiBrazilXuxue Feng QUALIFIED
Maria B IturbideGermanyIoni Bowcher PROPOSAL
Misaki V IturbideGermanyIoni Bowcher NEW
Rodrigues Q ShinkoJapanOnyama Limba RENEWAL
Mayumi S GauchoUnited KingdomIoni Bowcher QUALIFIED
Ivar K CampainJapanStephen Shaw RENEWAL
Alejandro H MacleadJapanIoni Bowcher NEW
Rodrigues E PoquetteArgentinaAsiya Javayant RENEWAL
Chavez P FollerAustraliaAsiya Javayant NEGOTIATION
Salvatore Y RoysterJapanOnyama Limba NEGOTIATION
Claire Q WieserGermanyOnyama Limba PROPOSAL
Rodrigues F DilliardJapanBernardo Dominic UNQUALIFIED
Clifford N MarrierJapanIoni Bowcher UNQUALIFIED
Izzy K WieserCanadaAmy Elsner NEGOTIATION
Mujtaba T FollerCanadaAsiya Javayant QUALIFIED
Ashley G FigeroaJapanStephen Shaw NEGOTIATION
Faith O AmigonCanadaAmy Elsner UNQUALIFIED
Smith J OldroydGermanyElwin Sharvill QUALIFIED
Smith L CaldareraRussiaStephen Shaw PROPOSAL
Aruna S GarufiBrazilStephen Shaw PROPOSAL
Aika Y AmigonAustraliaIvan Magalhaes PROPOSAL
Salvatore A RimJapanIoni Bowcher UNQUALIFIED
Ricardo B TollnerAustraliaElwin Sharvill RENEWAL
Leon L OstroskyFranceAsiya Javayant UNQUALIFIED
Emily J MarrierFranceStephen Shaw RENEWAL
Leon V StockhamRussiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Greenwood Y Waycott
Murillo P Waycott
James U Stenseth
Misaki X Kusko
Salvatore Z Doe
Mayumi C Oldroyd
Mayumi Q Figeroa
Morrow Q Perin
Cody J Kolmetz
Leon Q Garufi
Nicolas X Venere
James L Inouye
Maisha E Foller
Salvatore Z Shinko
Ashley I Kusko
Ricardo W Shinko
Emily I Garufi
James I Saylors
Munro E Amigon
Morrow B Paprocki
Tony C Campain
Wickens P Venere
James C Bowley
Ivar J Amigon
Alejandro L Ostrosky
Mujtaba C Sergi
Kadeem K Waycott
Jefferson X Ruta
Julie V Saylors
Sinclair X Darakjy
Ricardo C Paprocki
Chavez B Tollner
Munro E Briddick
Izzy S Darakjy
Claire W Ruta
Munro H Sergi
Mayumi O Stockham
Silvio D Maclead
Ivar H Foller
Morrow H Inouye
Chavez H Slusarski
Rodrigues N Doe
Costa Z Sergi
Sinclair J Sergi
Francesco I Maclead
Smith O Chui
Kaitlin P Wieser
Silvio H Bowley
Nicolas J Bolognia
Octavia H Tollner
IdCountryDate
1000Argentina2025-04-21
1001France2025-04-06
1002Canada2025-04-23
1003United Kingdom2025-04-09
1004Brazil2025-04-02
1005Spain2025-04-14
1006Australia2025-04-06
1007Argentina2025-04-23
1008Canada2025-04-24
1009Spain2025-04-26
1010India2025-04-08
1011Spain2025-04-19
1012Argentina2025-04-19
1013India2025-04-03
1014Russia2025-04-07
1015Spain2025-04-13
1016Japan2025-04-23
1017United Kingdom2025-04-12
1018France2025-04-13
1019France2025-04-09
1020India2025-04-17
1021France2025-04-28
1022France2025-04-05
1023Australia2025-04-26
1024Australia2025-04-26
1025France2025-04-23
1026Germany2025-04-17
1027Argentina2025-04-19
1028Japan2025-04-20
1029Spain2025-04-13
1030United Kingdom2025-04-22
1031Brazil2025-04-15
1032Australia2025-04-18
1033United Kingdom2025-04-09
1034India2025-04-06
1035Australia2025-04-27
1036India2025-04-17
1037Germany2025-04-26
1038Canada2025-04-09
1039Japan2025-04-23
1040France2025-04-06
1041United Kingdom2025-04-25
1042France2025-04-05
1043India2025-04-11
1044Germany2025-04-21
1045Australia2025-04-07
1046France2025-04-10
1047Japan2025-04-22
1048Argentina2025-04-16
1049Argentina2025-04-22

On-Demand Data

NameIdCountryDate
Smith A Paprocki1000Italy2025-04-14
Rodrigues G Morasca1001Spain2025-04-05
Nicolas N Stenseth1002India2025-04-28
Clifford D Nicka1003Australia2025-04-04
Alejandro J Ferencz1004Brazil2025-04-19
Juan J Ruta1005Argentina2025-04-27
Mayumi T Figeroa1006India2025-04-02
Arvin X Marrier1007Italy2025-04-10
Aruna F Campain1008Brazil2025-04-08
Nicolas C Wieser1009Italy2025-04-14
Sinclair R Poquette1010Germany2025-04-03
Leon O Chui1011Australia2025-04-27
Silvio W Caldarera1012Russia2025-04-02
Mujtaba M Paprocki1013Russia2025-04-20
Alejandro Q Poquette1014Italy2025-04-14
Smith C Foller1015United Kingdom2025-04-12
Salvatore W Malet1016Brazil2025-04-12
Costa Z Stockham1017Canada2025-04-25
Maisha U Malet1018Japan2025-04-02
David F Nicka1019France2025-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois J WhobreyCanadaBernardo Dominic RENEWAL
Silvio U ChuiFranceOnyama Limba NEGOTIATION
Jones I StockhamUnited KingdomAsiya Javayant PROPOSAL
Murillo C BriddickAustraliaAsiya Javayant NEW
Juan C OldroydRussiaXuxue Feng PROPOSAL
Julie V MarrierItalyIoni Bowcher NEW
Jefferson V FerenczCanadaXuxue Feng NEW
Costa H CaldareraRussiaIvan Magalhaes QUALIFIED
Aditya M StockhamArgentinaBernardo Dominic RENEWAL
Costa P BriddickRussiaAmy Elsner UNQUALIFIED
Juan P PerinAustraliaBernardo Dominic NEW
Arvin U DarakjyFranceXuxue Feng NEGOTIATION
Deepesh E NickaAustraliaXuxue Feng NEGOTIATION
Tony K KuskoRussiaOnyama Limba PROPOSAL
Claire O SlusarskiSpainIvan Magalhaes RENEWAL
Clifford A GillianIndiaAmy Elsner UNQUALIFIED
Darci B GauchoFranceAmy Elsner QUALIFIED
Faith N OldroydFranceIvan Magalhaes NEW
Misaki J NestleRussiaOnyama Limba NEW
Emily I GauchoUnited KingdomBernardo Dominic QUALIFIED
Maisha W BowleyAustraliaAnna Fali NEGOTIATION
Leon E FollerGermanyElwin Sharvill NEW
Leja J StockhamIndiaStephen Shaw UNQUALIFIED
Smith D WieserRussiaBernardo Dominic NEW
Smith B RulapaughIndiaBernardo Dominic QUALIFIED
Claire E PoquetteBrazilOnyama Limba NEW
Isabel K MaletCanadaAnna Fali NEGOTIATION
Silvio V SlusarskiAustraliaBernardo Dominic NEW
Maisha L DoeGermanyAnna Fali NEW
Emily C NickaRussiaIoni Bowcher NEGOTIATION
Ashley N RimJapanAnna Fali UNQUALIFIED
Kaitlin A VenereBrazilIvan Magalhaes UNQUALIFIED
Nicolas E BowleyGermanyAmy Elsner PROPOSAL
Aika Y PoquetteCanadaIvan Magalhaes RENEWAL
Jennifer W RimBrazilIvan Magalhaes RENEWAL
Antonio S ChuiIndiaAmy Elsner RENEWAL
Kadeem V RutaCanadaIoni Bowcher QUALIFIED
Stacey T KuskoRussiaOnyama Limba NEW
Emily H CaldareraBrazilBernardo Dominic NEW
Ashley X BowleyJapanIoni Bowcher NEGOTIATION

<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>