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
Antonio T BologniaRussiaAmy Elsner NEW
David L SergiRussiaElwin Sharvill QUALIFIED
Jeanfrancois R IturbideBrazilAnna Fali NEGOTIATION
James T BowleyArgentinaOnyama Limba PROPOSAL
Aruna H SchemmerBrazilXuxue Feng UNQUALIFIED
Mujtaba R ShinkoRussiaBernardo Dominic NEGOTIATION
Stacey V OldroydCanadaBernardo Dominic PROPOSAL
Munro M InouyeAustraliaElwin Sharvill PROPOSAL
Ivar I DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Claire Q GarufiFranceElwin Sharvill QUALIFIED
Johnson W CampainRussiaIoni Bowcher QUALIFIED
Smith A VocelkaGermanyIoni Bowcher PROPOSAL
Leja U ButtSpainOnyama Limba UNQUALIFIED
Ivar Z InouyeSpainIoni Bowcher NEGOTIATION
Leon B FollerIndiaAsiya Javayant NEGOTIATION
Rodrigues H StensethSpainAmy Elsner NEGOTIATION
Mujtaba Y RutaArgentinaIvan Magalhaes NEW
Emily P OstroskyUnited KingdomIvan Magalhaes PROPOSAL
Tony V MaletSpainXuxue Feng RENEWAL
Maria V VocelkaItalyOnyama Limba NEGOTIATION
Maisha S WhobreyUnited KingdomXuxue Feng PROPOSAL
Maisha B ChuiItalyXuxue Feng RENEWAL
Francesco Y BologniaSpainBernardo Dominic NEGOTIATION
Munro L DilliardBrazilOnyama Limba RENEWAL
Jeanfrancois P OstroskyBrazilIvan Magalhaes PROPOSAL
Leon W GauchoFranceBernardo Dominic RENEWAL
Isabel B DarakjyItalyBernardo Dominic PROPOSAL
Aika G DarakjyRussiaAsiya Javayant UNQUALIFIED
Antonio P PoquetteAustraliaBernardo Dominic RENEWAL
Octavia O VenereUnited KingdomXuxue Feng QUALIFIED
Salvatore X StockhamSpainAmy Elsner QUALIFIED
Ivar I FollerGermanyStephen Shaw PROPOSAL
Munro J CaudyRussiaOnyama Limba NEW
Munro T WhobreyIndiaBernardo Dominic NEGOTIATION
Misaki S GarufiCanadaStephen Shaw NEGOTIATION
Deepesh A FerenczJapanIvan Magalhaes QUALIFIED
Ricardo J SergiRussiaStephen Shaw NEGOTIATION
Alejandro L VocelkaBrazilStephen Shaw QUALIFIED
Munro C NickaBrazilIoni Bowcher UNQUALIFIED
Sinclair T KuskoUnited KingdomAsiya Javayant QUALIFIED
Tony B KolmetzCanadaElwin Sharvill RENEWAL
Mayumi T BologniaCanadaAnna Fali PROPOSAL
Murillo E RoysterIndiaOnyama Limba PROPOSAL
Jennifer G DoeAustraliaIvan Magalhaes QUALIFIED
Julie O BologniaItalyAnna Fali UNQUALIFIED
Tony T DoeAustraliaXuxue Feng PROPOSAL
Ashley O NestleRussiaIvan Magalhaes RENEWAL
Maria P VenereAustraliaIvan Magalhaes PROPOSAL
Maria W AlbaresFranceAsiya Javayant PROPOSAL
Wickens N StockhamRussiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy B PerinCanadaElwin Sharvill NEGOTIATION
David E WaycottIndiaAnna Fali QUALIFIED
Octavia O RutaBrazilXuxue Feng NEGOTIATION
Smith H SlusarskiJapanElwin Sharvill RENEWAL
Cody E SaylorsAustraliaBernardo Dominic NEW
Maisha N VenereGermanyIoni Bowcher NEGOTIATION
Francesco Y AlbaresIndiaIoni Bowcher QUALIFIED
Kaitlin M DilliardUnited KingdomIoni Bowcher PROPOSAL
Aditya Q NickaSpainIoni Bowcher UNQUALIFIED
Jefferson Z DilliardIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon U BowleyAustralia2026-07-13Rousseaux, Michael Esq NEGOTIATION21Ioni Bowcher
1001Isabel V BologniaItaly2026-06-28Morlong Associates NEGOTIATION48Ioni Bowcher
1002Stacey H SchemmerItaly2026-07-02Printing Dimensions NEW25Asiya Javayant
1003Salvatore J StensethIndia2026-06-28Feltz Printing Service NEGOTIATION98Onyama Limba
1004Izzy Q GillianGermany2026-06-30Feltz Printing Service NEW16Xuxue Feng
1005Antonio X ChuiFrance2026-07-08Morlong Associates UNQUALIFIED39Stephen Shaw
1006Silvio I DoeFrance2026-07-21Feiner Bros RENEWAL35Anna Fali
1007Tony A ChuiBrazil2026-07-07Feiner Bros PROPOSAL60Ioni Bowcher
1008Smith R CaudySpain2026-07-02Truhlar And Truhlar Attys PROPOSAL5Ivan Magalhaes
1009Stacey D SchemmerItaly2026-07-16Feiner Bros QUALIFIED7Asiya Javayant
1010Murillo F AmigonUnited Kingdom2026-07-16Benton, John B Jr UNQUALIFIED37Elwin Sharvill
1011Jefferson M ButtIndia2026-07-19Rangoni Of Florence RENEWAL18Asiya Javayant
1012David Q RimUnited Kingdom2026-07-15Commercial Press UNQUALIFIED38Ivan Magalhaes
1013Kadeem N RoysterUnited Kingdom2026-06-30Chanay, Jeffrey A Esq PROPOSAL12Ioni Bowcher
1014Aika A FlosiIndia2026-07-14King, Christopher A Esq NEW98Bernardo Dominic
1015Cody I ButtBrazil2026-07-06Rangoni Of Florence QUALIFIED78Amy Elsner
1016David B BriddickSpain2026-07-21Benton, John B Jr QUALIFIED21Bernardo Dominic
1017James C DoeUnited Kingdom2026-07-14Chapman, Ross E Esq QUALIFIED86Asiya Javayant
1018Murillo L TollnerFrance2026-07-25Feiner Bros UNQUALIFIED63Xuxue Feng
1019Greenwood H SlusarskiFrance2026-07-13Benton, John B Jr NEGOTIATION26Amy Elsner
1020Rodrigues Z CaldareraFrance2026-07-24Buckley Miller Wright QUALIFIED83Onyama Limba
1021Izzy Z MarrierItaly2026-07-06Dorl, James J Esq UNQUALIFIED55Bernardo Dominic
1022Wickens K DarakjyFrance2026-06-28Morlong Associates UNQUALIFIED76Ivan Magalhaes
1023Arvin A MaletJapan2026-07-05Feltz Printing Service RENEWAL19Onyama Limba
1024Mujtaba W StensethFrance2026-06-29Chemel, James L Cpa NEW16Elwin Sharvill
1025Jones F IturbideGermany2026-06-30Buckley Miller Wright NEGOTIATION84Elwin Sharvill
1026Salvatore Z CaldareraFrance2026-07-24Truhlar And Truhlar Attys PROPOSAL16Stephen Shaw
1027Kaitlin K AmigonCanada2026-07-09Chemel, James L Cpa QUALIFIED9Ioni Bowcher
1028Misaki S SlusarskiItaly2026-07-13Morlong Associates QUALIFIED44Anna Fali
1029Aruna B KuskoBrazil2026-07-09Rangoni Of Florence NEW85Asiya Javayant
1030Chavez U PerinFrance2026-07-17Buckley Miller Wright PROPOSAL85Bernardo Dominic
1031Clifford X SergiJapan2026-07-17Printing Dimensions PROPOSAL54Bernardo Dominic
1032Isabel R BriddickCanada2026-07-16Feltz Printing Service NEGOTIATION98Asiya Javayant
1033Costa J SlusarskiAustralia2026-07-01Feiner Bros NEGOTIATION62Ioni Bowcher
1034Ashley Y RoysterGermany2026-07-16Buckley Miller Wright QUALIFIED42Xuxue Feng
1035Faith J FollerRussia2026-07-08Benton, John B Jr RENEWAL25Stephen Shaw
1036Smith O TollnerArgentina2026-07-21Feiner Bros NEW35Amy Elsner
1037Francesco G CampainFrance2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED29Ioni Bowcher
1038David D PaprockiArgentina2026-07-21Rousseaux, Michael Esq PROPOSAL22Bernardo Dominic
1039Sinclair F SchemmerGermany2026-07-14Truhlar And Truhlar Attys PROPOSAL37Asiya Javayant
1040Jennifer G InouyeCanada2026-07-23Dorl, James J Esq PROPOSAL20Elwin Sharvill
1041Stacey L BowleyBrazil2026-07-13Feltz Printing Service NEW13Xuxue Feng
1042Clifford R BowleyGermany2026-07-17King, Christopher A Esq NEGOTIATION21Asiya Javayant
1043Wickens Y DilliardBrazil2026-07-14Chapman, Ross E Esq RENEWAL15Asiya Javayant
1044Izzy R AmigonSpain2026-07-06Truhlar And Truhlar Attys NEGOTIATION76Xuxue Feng
1045Emily M TollnerUnited Kingdom2026-07-04Feltz Printing Service RENEWAL36Bernardo Dominic
1046Ashley E RulapaughAustralia2026-07-06Feiner Bros QUALIFIED38Ioni Bowcher
1047Arvin N MarrierItaly2026-06-30Rangoni Of Florence PROPOSAL32Anna Fali
1048Antonio P ButtJapan2026-07-18King, Christopher A Esq NEGOTIATION13Ioni Bowcher
1049Maisha G AlbaresGermany2026-07-13Rousseaux, Michael Esq RENEWAL44Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois V MaletIndiaOnyama Limba NEGOTIATION
Maria W StensethIndiaElwin Sharvill QUALIFIED
Maria W VocelkaArgentinaXuxue Feng RENEWAL
Aditya M GauchoSpainElwin Sharvill PROPOSAL
Darci K MorascaRussiaAnna Fali PROPOSAL
Misaki C GarufiArgentinaStephen Shaw NEGOTIATION
Faith S AmigonAustraliaBernardo Dominic RENEWAL
Darci K PoquetteArgentinaOnyama Limba NEGOTIATION
Maria O PerinSpainStephen Shaw PROPOSAL
Kadeem A DoeJapanAsiya Javayant QUALIFIED
Stacey P FollerBrazilXuxue Feng QUALIFIED
Adams Q MarrierArgentinaIvan Magalhaes PROPOSAL
Greenwood H BologniaJapanAsiya Javayant PROPOSAL
Isabel O FigeroaJapanAmy Elsner UNQUALIFIED
Kadeem N StockhamUnited KingdomXuxue Feng UNQUALIFIED
Tony W WhobreyGermanyOnyama Limba PROPOSAL
Kaitlin L CampainCanadaBernardo Dominic UNQUALIFIED
Leja L ButtFranceOnyama Limba NEW
Emily S FigeroaJapanOnyama Limba NEW
Jones M NickaUnited KingdomIvan Magalhaes NEGOTIATION
Juan V SchemmerCanadaAnna Fali NEW
Aditya N DilliardSpainOnyama Limba PROPOSAL
Claire A TollnerItalyXuxue Feng QUALIFIED
Murillo Y BriddickAustraliaXuxue Feng NEW
Morrow X MacleadFranceIoni Bowcher QUALIFIED
Mayumi O DarakjyIndiaAmy Elsner PROPOSAL
Misaki F TollnerIndiaIvan Magalhaes QUALIFIED
Leon W CaudyJapanXuxue Feng NEGOTIATION
Clifford X ChuiAustraliaElwin Sharvill NEGOTIATION
Munro P RoysterRussiaAsiya Javayant PROPOSAL
Isabel R PaprockiSpainOnyama Limba NEGOTIATION
Sinclair F SergiSpainXuxue Feng PROPOSAL
Francesco X OstroskyItalyIoni Bowcher RENEWAL
Octavia T GarufiBrazilIoni Bowcher PROPOSAL
Deepesh V KuskoCanadaXuxue Feng NEGOTIATION
Emily W KolmetzIndiaBernardo Dominic UNQUALIFIED
Chavez G ButtUnited KingdomElwin Sharvill NEW
Silvio A CaldareraItalyOnyama Limba RENEWAL
Maria N AmigonItalyAnna Fali NEW
Alejandro U SchemmerCanadaStephen Shaw UNQUALIFIED
Francesco U DoeCanadaBernardo Dominic RENEWAL
Octavia C PerinCanadaAmy Elsner UNQUALIFIED
Claire X BowleyItalyElwin Sharvill UNQUALIFIED
Ricardo R PerinItalyIvan Magalhaes RENEWAL
Stacey J OstroskyAustraliaIoni Bowcher QUALIFIED
Darci R MaletFranceIoni Bowcher NEW
Jefferson P BologniaGermanyElwin Sharvill RENEWAL
Julie B StensethItalyXuxue Feng NEGOTIATION
Jennifer H WaycottFranceAsiya Javayant PROPOSAL
Arvin F WieserSpainStephen Shaw RENEWAL
Frozen Columns
Name
Maisha R Malet
Antonio F Iturbide
Stacey U Saylors
Ricardo Y Doe
Aditya Z Malet
James S Nestle
Greenwood B Wieser
Jeanfrancois N Maclead
Morrow B Waycott
Izzy M Ruta
Kaitlin U Morasca
Leon R Caldarera
Johnson B Flosi
Mayumi V Iturbide
Rodrigues O Gaucho
James Y Marrier
Emily N Briddick
Kadeem J Tollner
Alejandro Y Rim
Munro B Garufi
Sinclair J Tollner
Mujtaba E Nestle
Claire N Malet
Kadeem P Nicka
Jennifer L Malet
Murillo H Waycott
Izzy X Stockham
Deepesh Y Perin
Aditya M Figeroa
Adams S Stenseth
Antonio J Stockham
Faith X Royster
Kaitlin P Marrier
Julie F Vocelka
Misaki P Amigon
Tony A Caldarera
Jeanfrancois V Briddick
Jeanfrancois F Rulapaugh
Mayumi N Stockham
Aditya Q Slusarski
Darci T Schemmer
Tony R Royster
Deepesh X Poquette
Wickens C Garufi
Faith N Iturbide
Tony V Shinko
Alejandro X Poquette
Murillo N Malet
Jeanfrancois F Oldroyd
Chavez Q Gaucho
IdCountryDate
1000Canada2026-07-03
1001India2026-07-05
1002Germany2026-07-05
1003Australia2026-07-05
1004Brazil2026-07-17
1005Australia2026-07-06
1006Argentina2026-06-29
1007Canada2026-07-23
1008Japan2026-07-21
1009United Kingdom2026-07-25
1010France2026-07-12
1011France2026-07-24
1012Italy2026-06-29
1013France2026-07-11
1014Russia2026-06-28
1015Canada2026-07-19
1016Italy2026-07-06
1017Argentina2026-07-18
1018Canada2026-07-20
1019Brazil2026-07-05
1020Brazil2026-07-09
1021India2026-07-19
1022France2026-07-10
1023India2026-07-23
1024Argentina2026-07-01
1025Russia2026-07-06
1026United Kingdom2026-07-09
1027Spain2026-07-12
1028Japan2026-07-04
1029France2026-07-19
1030Argentina2026-07-07
1031Canada2026-07-10
1032Brazil2026-07-10
1033Canada2026-07-03
1034Germany2026-07-14
1035Italy2026-07-16
1036Spain2026-07-06
1037India2026-06-30
1038Brazil2026-07-10
1039United Kingdom2026-07-22
1040Australia2026-07-04
1041Brazil2026-07-22
1042Russia2026-07-06
1043Argentina2026-07-17
1044Russia2026-07-23
1045Canada2026-07-12
1046Canada2026-07-22
1047Argentina2026-06-27
1048Brazil2026-07-18
1049India2026-06-29

On-Demand Data

NameIdCountryDate
David T Albares1000Spain2026-07-03
Aditya W Darakjy1001Germany2026-07-22
Tony E Kusko1002United Kingdom2026-07-18
Antonio X Stockham1003France2026-06-27
Adams I Malet1004United Kingdom2026-06-30
Wickens Y Butt1005United Kingdom2026-07-07
Morrow W Ferencz1006Italy2026-07-04
Maria H Nicka1007India2026-07-04
Maisha J Stenseth1008Spain2026-06-26
Silvio E Bolognia1009Spain2026-07-09
Munro U Kusko1010Australia2026-07-19
Murillo E Oldroyd1011Japan2026-07-03
Darci V Paprocki1012Italy2026-07-04
Silvio N Saylors1013Australia2026-07-08
Mayumi I Rulapaugh1014Italy2026-07-15
Nicolas L Ferencz1015Canada2026-07-15
Isabel T Garufi1016Russia2026-07-02
Aruna K Tollner1017Japan2026-07-25
Mujtaba G Paprocki1018France2026-06-29
Tony H Marrier1019Canada2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon R FollerFranceIvan Magalhaes QUALIFIED
Claire V TollnerItalyStephen Shaw NEGOTIATION
Ivar Q PoquetteJapanStephen Shaw RENEWAL
Emily K DilliardAustraliaAnna Fali NEGOTIATION
Faith S GillianUnited KingdomAsiya Javayant NEW
Salvatore B WieserIndiaAnna Fali UNQUALIFIED
Munro H NestleCanadaAmy Elsner QUALIFIED
Johnson X PerinGermanyOnyama Limba UNQUALIFIED
Nicolas J CampainUnited KingdomIoni Bowcher NEW
Juan B CaldareraAustraliaAmy Elsner UNQUALIFIED
Ivar A VenereUnited KingdomAsiya Javayant QUALIFIED
Maisha B MorascaIndiaOnyama Limba NEW
Tony X CampainRussiaAmy Elsner NEW
Cody K BologniaIndiaXuxue Feng NEW
Maria H FigeroaJapanBernardo Dominic QUALIFIED
Maria W RimItalyAmy Elsner UNQUALIFIED
Clifford V PerinArgentinaElwin Sharvill PROPOSAL
Octavia L FigeroaIndiaXuxue Feng RENEWAL
Adams E OldroydCanadaAsiya Javayant UNQUALIFIED
Maria Y MacleadIndiaXuxue Feng NEGOTIATION
Mujtaba Q NickaSpainIvan Magalhaes NEW
Leon W InouyeUnited KingdomAmy Elsner NEGOTIATION
Isabel O PoquetteIndiaBernardo Dominic NEGOTIATION
Morrow D BowleyArgentinaElwin Sharvill RENEWAL
Ivar O GlickFranceXuxue Feng NEW
Nicolas F CampainArgentinaElwin Sharvill UNQUALIFIED
Jones M FigeroaGermanyAsiya Javayant RENEWAL
Greenwood R GlickJapanElwin Sharvill UNQUALIFIED
Tony T AmigonCanadaOnyama Limba UNQUALIFIED
Nicolas I RoysterUnited KingdomElwin Sharvill RENEWAL
Adams F OldroydGermanyXuxue Feng RENEWAL
Izzy V GarufiBrazilAmy Elsner NEW
Morrow J NickaRussiaIoni Bowcher NEW
Octavia G OldroydBrazilElwin Sharvill UNQUALIFIED
Costa D FigeroaFranceAsiya Javayant QUALIFIED
Octavia E SlusarskiUnited KingdomAsiya Javayant RENEWAL
Salvatore P GauchoJapanIoni Bowcher RENEWAL
Maisha S MarrierCanadaAsiya Javayant NEGOTIATION
Johnson U NestleAustraliaStephen Shaw QUALIFIED
Juan B SergiUnited KingdomAnna Fali NEW

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