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
Kadeem A DilliardJapanElwin Sharvill RENEWAL
Deepesh W ChuiRussiaAnna Fali QUALIFIED
Mayumi N KuskoRussiaAsiya Javayant UNQUALIFIED
Izzy U CaldareraItalyElwin Sharvill NEW
Octavia G PerinFranceAsiya Javayant QUALIFIED
Stacey W SergiAustraliaStephen Shaw RENEWAL
Jennifer Q MarrierSpainStephen Shaw QUALIFIED
Jennifer D MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Aika U DilliardItalyBernardo Dominic UNQUALIFIED
Kaitlin B MaletIndiaOnyama Limba PROPOSAL
Izzy N PerinUnited KingdomAmy Elsner NEW
Francesco L ChuiItalyIoni Bowcher NEW
Kadeem E StensethAustraliaStephen Shaw PROPOSAL
Aika U VenereUnited KingdomXuxue Feng QUALIFIED
Leon S CaudyBrazilElwin Sharvill NEGOTIATION
Isabel Z IturbideRussiaStephen Shaw NEGOTIATION
Isabel I WhobreyGermanyElwin Sharvill QUALIFIED
Jennifer R CaudyCanadaAmy Elsner NEGOTIATION
Rodrigues V WaycottAustraliaAmy Elsner NEGOTIATION
Leja O FigeroaAustraliaAsiya Javayant UNQUALIFIED
Adams C CaldareraRussiaBernardo Dominic QUALIFIED
Cody A NickaSpainIoni Bowcher RENEWAL
Ivar K NickaSpainStephen Shaw UNQUALIFIED
Sinclair H ButtCanadaElwin Sharvill UNQUALIFIED
Salvatore A RoysterBrazilStephen Shaw NEW
Octavia J KuskoArgentinaBernardo Dominic NEGOTIATION
Adams I WaycottIndiaBernardo Dominic NEGOTIATION
Alejandro E DilliardAustraliaBernardo Dominic PROPOSAL
Clifford O AlbaresCanadaOnyama Limba NEW
Ashley G AlbaresSpainElwin Sharvill RENEWAL
Misaki O KolmetzRussiaBernardo Dominic QUALIFIED
Claire W BowleyAustraliaAmy Elsner UNQUALIFIED
Clifford K SchemmerFranceAmy Elsner NEGOTIATION
Stacey E ChuiCanadaOnyama Limba RENEWAL
Antonio E CampainFranceXuxue Feng NEW
Morrow T MarrierCanadaAmy Elsner PROPOSAL
Claire P StockhamRussiaAsiya Javayant RENEWAL
Kaitlin A DilliardItalyIvan Magalhaes NEGOTIATION
Salvatore P MorascaAustraliaOnyama Limba NEGOTIATION
Francesco A KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Morrow R InouyeIndiaAsiya Javayant PROPOSAL
Antonio Q PerinJapanIoni Bowcher NEW
Wickens I CampainAustraliaOnyama Limba PROPOSAL
Arvin F SaylorsFranceOnyama Limba PROPOSAL
Murillo Z MaletUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin F MorascaBrazilAnna Fali PROPOSAL
Darci G FigeroaGermanyXuxue Feng NEW
Clifford B BowleyItalyOnyama Limba RENEWAL
Misaki R PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Salvatore W DoeJapanElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin P BowleyCanadaElwin Sharvill NEW
Arvin R BologniaRussiaStephen Shaw QUALIFIED
Julie L MorascaSpainAnna Fali RENEWAL
Wickens V BowleyItalyOnyama Limba NEW
Francesco J GarufiFranceAsiya Javayant NEW
Mayumi J GillianBrazilBernardo Dominic PROPOSAL
Isabel R DarakjyIndiaOnyama Limba NEW
Maria S BowleyFranceStephen Shaw PROPOSAL
Leja P FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Smith V FerenczRussiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio F FigeroaGermany2026-06-06Dorl, James J Esq NEW47Asiya Javayant
1001Rodrigues K RoysterBrazil2026-06-26Chemel, James L Cpa NEGOTIATION39Bernardo Dominic
1002Jennifer F WaycottGermany2026-06-26Benton, John B Jr QUALIFIED93Anna Fali
1003David Y FerenczIndia2026-06-26Buckley Miller Wright PROPOSAL18Onyama Limba
1004Greenwood H BriddickGermany2026-06-17Printing Dimensions NEW46Stephen Shaw
1005Darci G CaldareraBrazil2026-06-02Dorl, James J Esq QUALIFIED0Stephen Shaw
1006Tony K KolmetzGermany2026-06-17Rousseaux, Michael Esq NEW40Bernardo Dominic
1007Clifford R MarrierRussia2026-06-16Benton, John B Jr RENEWAL49Ioni Bowcher
1008Faith E RulapaughItaly2026-06-22Benton, John B Jr UNQUALIFIED17Elwin Sharvill
1009Darci X KuskoUnited Kingdom2026-06-22King, Christopher A Esq QUALIFIED84Stephen Shaw
1010Octavia F PerinUnited Kingdom2026-06-28King, Christopher A Esq UNQUALIFIED70Ivan Magalhaes
1011Jennifer M InouyeCanada2026-06-04Feltz Printing Service PROPOSAL1Xuxue Feng
1012Alejandro B VocelkaUnited Kingdom2026-06-30Feiner Bros NEGOTIATION63Elwin Sharvill
1013Octavia T SergiArgentina2026-06-29Truhlar And Truhlar Attys PROPOSAL88Amy Elsner
1014James H GlickItaly2026-06-08King, Christopher A Esq QUALIFIED85Amy Elsner
1015Jefferson H DilliardRussia2026-06-06Feiner Bros UNQUALIFIED10Ioni Bowcher
1016Claire T MacleadRussia2026-06-29Morlong Associates NEGOTIATION2Asiya Javayant
1017Leon M CaldareraArgentina2026-06-24Chemel, James L Cpa UNQUALIFIED17Xuxue Feng
1018Emily J RimIndia2026-06-14Rousseaux, Michael Esq PROPOSAL29Anna Fali
1019Arvin B MaletFrance2026-06-07Printing Dimensions RENEWAL18Asiya Javayant
1020Munro A KuskoFrance2026-06-23Feiner Bros NEGOTIATION94Asiya Javayant
1021Maisha I MacleadAustralia2026-06-26Morlong Associates RENEWAL43Onyama Limba
1022Emily Y KuskoRussia2026-06-22Printing Dimensions UNQUALIFIED54Onyama Limba
1023Jennifer Y GauchoSpain2026-06-18Rangoni Of Florence QUALIFIED85Xuxue Feng
1024Aditya N AmigonJapan2026-06-07Rousseaux, Michael Esq RENEWAL73Anna Fali
1025Rodrigues P TollnerRussia2026-06-16Commercial Press NEGOTIATION7Amy Elsner
1026Deepesh I FigeroaRussia2026-06-01Chapman, Ross E Esq NEGOTIATION23Ivan Magalhaes
1027Faith V CampainItaly2026-06-16Benton, John B Jr UNQUALIFIED72Bernardo Dominic
1028James T PoquetteBrazil2026-06-24Truhlar And Truhlar Attys NEW8Bernardo Dominic
1029Jeanfrancois D NickaFrance2026-06-06Rousseaux, Michael Esq UNQUALIFIED94Bernardo Dominic
1030Jefferson A WaycottUnited Kingdom2026-06-13Feiner Bros RENEWAL31Ivan Magalhaes
1031Deepesh M DilliardFrance2026-06-19Rousseaux, Michael Esq PROPOSAL69Amy Elsner
1032Stacey K CampainRussia2026-06-29Chanay, Jeffrey A Esq NEW20Anna Fali
1033Claire A GillianCanada2026-06-23Printing Dimensions QUALIFIED71Ioni Bowcher
1034Arvin Y SaylorsCanada2026-06-18Commercial Press QUALIFIED86Anna Fali
1035Leja F NestleBrazil2026-06-23Dorl, James J Esq QUALIFIED99Bernardo Dominic
1036Jones H AlbaresItaly2026-06-30Rousseaux, Michael Esq RENEWAL59Stephen Shaw
1037Jefferson D MarrierItaly2026-06-13Rangoni Of Florence UNQUALIFIED68Ivan Magalhaes
1038Costa B NestleGermany2026-06-16Printing Dimensions RENEWAL86Ioni Bowcher
1039Emily K FollerUnited Kingdom2026-06-19Truhlar And Truhlar Attys RENEWAL12Asiya Javayant
1040Emily V SlusarskiBrazil2026-06-09Dorl, James J Esq NEGOTIATION92Ivan Magalhaes
1041Mujtaba V TollnerUnited Kingdom2026-06-24Rousseaux, Michael Esq NEGOTIATION94Bernardo Dominic
1042Rodrigues R GauchoAustralia2026-06-29Chemel, James L Cpa UNQUALIFIED22Ivan Magalhaes
1043Jennifer Y MacleadGermany2026-06-18Feiner Bros QUALIFIED13Anna Fali
1044Jeanfrancois J PaprockiSpain2026-06-27Chanay, Jeffrey A Esq NEGOTIATION36Ioni Bowcher
1045Morrow F VocelkaItaly2026-06-06Feltz Printing Service RENEWAL87Onyama Limba
1046Aditya T SergiJapan2026-06-05Chanay, Jeffrey A Esq RENEWAL23Amy Elsner
1047Antonio O ShinkoItaly2026-06-05Dorl, James J Esq RENEWAL88Xuxue Feng
1048Jennifer R TollnerCanada2026-06-22Benton, John B Jr NEW44Ioni Bowcher
1049Sinclair A MaletSpain2026-06-01Chanay, Jeffrey A Esq NEW64Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin N KolmetzBrazilBernardo Dominic NEGOTIATION
Adams H ButtAustraliaAnna Fali NEW
Ricardo J MaletFranceIoni Bowcher NEW
Rodrigues V BologniaAustraliaElwin Sharvill NEGOTIATION
Julie A MarrierBrazilXuxue Feng PROPOSAL
Kadeem Z VenereSpainIoni Bowcher NEGOTIATION
Sinclair E InouyeItalyStephen Shaw PROPOSAL
Rodrigues K DarakjyAustraliaStephen Shaw PROPOSAL
Francesco C CaudyCanadaIvan Magalhaes RENEWAL
Salvatore O GillianUnited KingdomIoni Bowcher RENEWAL
Emily T WhobreyBrazilAnna Fali PROPOSAL
Ashley Z StockhamItalyOnyama Limba NEGOTIATION
Antonio P RimArgentinaOnyama Limba NEGOTIATION
Mayumi U MaletRussiaStephen Shaw PROPOSAL
Jennifer X MaletRussiaAnna Fali UNQUALIFIED
Maisha D StockhamCanadaAnna Fali NEGOTIATION
Mayumi Q CaldareraJapanStephen Shaw NEGOTIATION
Jones Y FigeroaItalyElwin Sharvill NEW
Deepesh N InouyeRussiaStephen Shaw NEGOTIATION
Antonio F OldroydJapanAmy Elsner RENEWAL
Kaitlin H WieserCanadaAmy Elsner RENEWAL
Leon W FollerJapanAmy Elsner PROPOSAL
Sinclair A PerinUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore Y DarakjyGermanyIoni Bowcher NEGOTIATION
Ashley D CampainUnited KingdomBernardo Dominic NEGOTIATION
Aditya Z VenereRussiaStephen Shaw RENEWAL
Mayumi B FigeroaAustraliaOnyama Limba RENEWAL
Johnson U CaudyItalyStephen Shaw NEW
David E KuskoGermanyAnna Fali NEW
Isabel X OldroydJapanIoni Bowcher RENEWAL
Morrow H PoquetteCanadaIvan Magalhaes UNQUALIFIED
Darci Z BologniaFranceOnyama Limba QUALIFIED
Claire T RutaIndiaAmy Elsner NEW
Kaitlin R WieserBrazilAmy Elsner QUALIFIED
Rodrigues X ButtGermanyStephen Shaw RENEWAL
Ricardo U KuskoJapanStephen Shaw NEW
Adams E KuskoFranceAsiya Javayant PROPOSAL
Leon S GauchoItalyAnna Fali RENEWAL
Claire I RulapaughBrazilElwin Sharvill QUALIFIED
Chavez C TollnerJapanAsiya Javayant PROPOSAL
Leja K PerinJapanIoni Bowcher PROPOSAL
Clifford K CaudyGermanyAmy Elsner UNQUALIFIED
Arvin Y MaletItalyOnyama Limba UNQUALIFIED
Ricardo G ButtFranceAnna Fali NEW
Adams Z RimSpainIvan Magalhaes NEGOTIATION
Salvatore I IturbideIndiaBernardo Dominic NEGOTIATION
Cody T SergiSpainStephen Shaw NEW
Aditya A WaycottRussiaAmy Elsner UNQUALIFIED
Mayumi D SaylorsArgentinaXuxue Feng UNQUALIFIED
Jones P StockhamAustraliaAsiya Javayant NEW
Frozen Columns
Name
Stacey U Stenseth
Leja J Tollner
Silvio W Royster
Juan E Flosi
Emily P Ruta
Alejandro I Amigon
Mujtaba U Kusko
Ricardo V Iturbide
Julie B Bowley
Isabel I Doe
Ivar C Stockham
Ashley W Marrier
Morrow I Malet
Wickens N Sergi
Francesco M Maclead
Salvatore S Garufi
Emily S Nestle
Smith G Bolognia
Nicolas X Stockham
Juan K Figeroa
Jefferson D Stenseth
Morrow T Marrier
Mujtaba P Slusarski
Emily K Kusko
David L Ferencz
Kadeem O Caudy
Chavez H Inouye
Greenwood R Malet
Deepesh H Sergi
Silvio A Garufi
Silvio U Saylors
Juan M Paprocki
Maisha E Amigon
Darci N Paprocki
Aditya R Maclead
Leon V Malet
Ricardo M Vocelka
Stacey C Malet
Deepesh W Bolognia
Costa E Bolognia
Stacey W Nestle
Stacey P Waycott
Octavia T Nestle
James Z Iturbide
Darci J Foller
Leja F Dilliard
Sinclair Q Flosi
Claire O Wieser
Ivar R Flosi
Darci R Maclead
IdCountryDate
1000Australia2026-06-27
1001Australia2026-06-10
1002Spain2026-06-27
1003Australia2026-06-11
1004Canada2026-06-14
1005Germany2026-06-22
1006India2026-06-18
1007Australia2026-06-29
1008Brazil2026-06-10
1009Germany2026-06-01
1010Germany2026-06-19
1011Australia2026-06-15
1012Canada2026-06-06
1013Russia2026-06-09
1014Japan2026-06-26
1015Brazil2026-06-14
1016India2026-06-09
1017Canada2026-06-16
1018France2026-06-25
1019Australia2026-06-13
1020Australia2026-06-28
1021Canada2026-06-28
1022Spain2026-06-11
1023Brazil2026-06-16
1024United Kingdom2026-06-25
1025Germany2026-06-16
1026Canada2026-06-09
1027Canada2026-06-06
1028United Kingdom2026-06-08
1029Spain2026-06-13
1030Russia2026-06-24
1031Spain2026-06-08
1032United Kingdom2026-06-06
1033United Kingdom2026-06-18
1034Russia2026-06-20
1035Brazil2026-06-02
1036Russia2026-06-26
1037Italy2026-06-19
1038France2026-06-05
1039Spain2026-06-23
1040Brazil2026-06-09
1041Spain2026-06-17
1042United Kingdom2026-06-21
1043Germany2026-06-12
1044Australia2026-06-03
1045Italy2026-06-10
1046Australia2026-06-08
1047Italy2026-06-23
1048Canada2026-06-30
1049Argentina2026-06-16

On-Demand Data

NameIdCountryDate
Maisha F Dilliard1000India2026-06-26
Adams I Vocelka1001Japan2026-06-12
Izzy T Paprocki1002Japan2026-06-14
Nicolas A Glick1003Argentina2026-06-01
Julie T Tollner1004Spain2026-06-15
Maria O Caldarera1005United Kingdom2026-06-22
Octavia J Morasca1006Brazil2026-06-16
Munro N Doe1007Russia2026-06-07
Silvio S Butt1008Australia2026-06-14
Leon K Venere1009Japan2026-06-23
Leja G Sergi1010United Kingdom2026-06-17
Mujtaba R Stockham1011Canada2026-06-14
Claire E Rim1012Japan2026-06-02
Kaitlin I Wieser1013Germany2026-06-19
Ivar R Rim1014Australia2026-06-23
Claire C Rulapaugh1015Canada2026-06-24
Isabel S Shinko1016Italy2026-06-12
Morrow D Morasca1017Japan2026-06-05
James G Bolognia1018Germany2026-06-20
Ashley M Tollner1019Brazil2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones K BologniaSpainBernardo Dominic PROPOSAL
Ricardo Y PoquetteFranceIoni Bowcher PROPOSAL
Claire O MarrierJapanAsiya Javayant NEGOTIATION
Francesco S NickaCanadaElwin Sharvill UNQUALIFIED
Leon Y AlbaresAustraliaIvan Magalhaes NEGOTIATION
Misaki Q WieserAustraliaAsiya Javayant RENEWAL
Wickens U PerinFranceAsiya Javayant NEGOTIATION
Antonio Z RoysterAustraliaXuxue Feng NEW
Smith Q RulapaughJapanAnna Fali NEW
Darci U GlickJapanIvan Magalhaes NEW
Rodrigues S BologniaSpainXuxue Feng NEW
Jennifer O InouyeGermanyAmy Elsner NEGOTIATION
Greenwood U ButtRussiaAsiya Javayant NEW
Ashley F CampainIndiaBernardo Dominic QUALIFIED
Faith I SchemmerSpainIvan Magalhaes QUALIFIED
Stacey P WaycottAustraliaAnna Fali PROPOSAL
Salvatore V WieserSpainElwin Sharvill PROPOSAL
Jennifer R OldroydBrazilBernardo Dominic NEGOTIATION
Aruna K BowleyArgentinaIoni Bowcher PROPOSAL
Greenwood U DilliardFranceAsiya Javayant NEW
Jennifer I BriddickGermanyIoni Bowcher PROPOSAL
Julie B VenereBrazilXuxue Feng QUALIFIED
Ricardo X BriddickFranceStephen Shaw RENEWAL
Jones C IturbideItalyElwin Sharvill NEW
Ashley E InouyeCanadaBernardo Dominic UNQUALIFIED
Octavia C MarrierCanadaAnna Fali NEGOTIATION
Jefferson C MarrierBrazilAnna Fali RENEWAL
Mayumi Y RutaRussiaAsiya Javayant RENEWAL
Morrow V VenereUnited KingdomAsiya Javayant RENEWAL
Murillo U CampainSpainXuxue Feng NEW
Salvatore V CaldareraGermanyAsiya Javayant RENEWAL
Antonio O ButtItalyAsiya Javayant UNQUALIFIED
Morrow K SlusarskiAustraliaAsiya Javayant PROPOSAL
James N MorascaJapanIoni Bowcher RENEWAL
Jones Y MarrierJapanBernardo Dominic NEW
James B RutaArgentinaAmy Elsner QUALIFIED
Jeanfrancois W MaletGermanyStephen Shaw NEGOTIATION
Adams P MorascaFranceBernardo Dominic NEW
Jeanfrancois Z FigeroaArgentinaAnna Fali PROPOSAL
Ashley A FigeroaBrazilIoni 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>