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
Deepesh W VocelkaRussiaElwin Sharvill QUALIFIED
Sinclair I NickaAustraliaBernardo Dominic UNQUALIFIED
Chavez I WhobreyBrazilElwin Sharvill QUALIFIED
Kaitlin M RutaAustraliaBernardo Dominic NEW
Chavez A ChuiCanadaAnna Fali NEGOTIATION
Cody K DilliardFranceStephen Shaw NEGOTIATION
Jeanfrancois J RimItalyOnyama Limba PROPOSAL
Ashley V MaletItalyOnyama Limba NEGOTIATION
Wickens X GillianIndiaOnyama Limba RENEWAL
Silvio I MaletItalyAnna Fali NEGOTIATION
Maisha V RulapaughItalyBernardo Dominic NEW
Salvatore G RulapaughArgentinaElwin Sharvill RENEWAL
Jeanfrancois G BowleyBrazilAnna Fali QUALIFIED
Ivar D PaprockiIndiaElwin Sharvill NEGOTIATION
Maria Y ChuiBrazilXuxue Feng UNQUALIFIED
Arvin E MaletGermanyBernardo Dominic RENEWAL
Morrow T RutaIndiaStephen Shaw UNQUALIFIED
Silvio E GillianGermanyElwin Sharvill UNQUALIFIED
Murillo I AmigonUnited KingdomAsiya Javayant QUALIFIED
Arvin N ButtItalyElwin Sharvill NEGOTIATION
Silvio J MarrierSpainStephen Shaw RENEWAL
Ashley R ShinkoItalyAnna Fali RENEWAL
James L PerinUnited KingdomStephen Shaw QUALIFIED
Alejandro K RimSpainAsiya Javayant NEGOTIATION
Antonio K ChuiItalyAmy Elsner PROPOSAL
Kaitlin M ShinkoGermanyElwin Sharvill RENEWAL
Ricardo M SergiItalyBernardo Dominic QUALIFIED
Murillo R MacleadFranceOnyama Limba NEW
Nicolas X FlosiRussiaElwin Sharvill UNQUALIFIED
Misaki T DarakjySpainIoni Bowcher PROPOSAL
Salvatore R OldroydRussiaOnyama Limba PROPOSAL
Clifford N InouyeArgentinaXuxue Feng QUALIFIED
Leon X VenereIndiaIvan Magalhaes NEGOTIATION
Mujtaba M MaletUnited KingdomXuxue Feng UNQUALIFIED
Darci U KolmetzArgentinaAmy Elsner PROPOSAL
Isabel V AmigonIndiaStephen Shaw UNQUALIFIED
Rodrigues Y RulapaughItalyXuxue Feng QUALIFIED
Chavez M GauchoIndiaOnyama Limba UNQUALIFIED
Antonio C MaletArgentinaStephen Shaw UNQUALIFIED
Leon W DoeGermanyIoni Bowcher RENEWAL
Cody Q WaycottJapanAmy Elsner NEGOTIATION
Claire I WieserUnited KingdomAmy Elsner PROPOSAL
Jefferson Z GlickIndiaXuxue Feng QUALIFIED
Jones F AlbaresCanadaAmy Elsner NEGOTIATION
Aika X FerenczArgentinaStephen Shaw QUALIFIED
Ashley E MarrierJapanElwin Sharvill PROPOSAL
Adams X VenereSpainOnyama Limba RENEWAL
Johnson F RoysterJapanIvan Magalhaes NEGOTIATION
Faith A TollnerIndiaStephen Shaw NEGOTIATION
Morrow I CaudyGermanyAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson J FlosiAustraliaBernardo Dominic QUALIFIED
Emily A WieserBrazilBernardo Dominic RENEWAL
Jeanfrancois N NestleAustraliaAmy Elsner QUALIFIED
Emily T GillianSpainBernardo Dominic PROPOSAL
Alejandro K DarakjyFranceIvan Magalhaes PROPOSAL
Greenwood Z VenereCanadaAmy Elsner QUALIFIED
Francesco T VocelkaBrazilElwin Sharvill PROPOSAL
Jeanfrancois D OldroydJapanOnyama Limba PROPOSAL
Cody C MorascaArgentinaAsiya Javayant PROPOSAL
Kaitlin H SchemmerUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones U FerenczFrance2024-06-03Buckley Miller Wright QUALIFIED53Ioni Bowcher
1001Jones D OstroskyJapan2024-06-07Rangoni Of Florence UNQUALIFIED25Ivan Magalhaes
1002Mujtaba O SchemmerUnited Kingdom2024-05-26Truhlar And Truhlar Attys NEGOTIATION14Asiya Javayant
1003Cody V SaylorsCanada2024-06-18Feltz Printing Service RENEWAL70Stephen Shaw
1004Alejandro A PaprockiSpain2024-06-07Rousseaux, Michael Esq RENEWAL79Elwin Sharvill
1005Emily V WieserRussia2024-06-18Feiner Bros PROPOSAL5Ivan Magalhaes
1006Ashley T MaletRussia2024-06-10Benton, John B Jr NEW32Ioni Bowcher
1007Octavia Q RoysterFrance2024-05-27Commercial Press RENEWAL89Ioni Bowcher
1008Darci H OldroydArgentina2024-06-12Buckley Miller Wright NEGOTIATION9Bernardo Dominic
1009Wickens F StockhamAustralia2024-06-09Chemel, James L Cpa PROPOSAL90Onyama Limba
1010Octavia X DarakjyJapan2024-06-18Feltz Printing Service PROPOSAL13Ioni Bowcher
1011Jennifer F GarufiFrance2024-05-28Benton, John B Jr PROPOSAL48Ioni Bowcher
1012Jefferson Y WhobreyBrazil2024-06-11Buckley Miller Wright NEGOTIATION95Xuxue Feng
1013Jefferson E PoquetteRussia2024-05-26Feiner Bros UNQUALIFIED41Onyama Limba
1014Silvio I SchemmerUnited Kingdom2024-06-10Feiner Bros UNQUALIFIED73Elwin Sharvill
1015Cody B MorascaItaly2024-05-28Benton, John B Jr UNQUALIFIED12Ivan Magalhaes
1016Deepesh C MaletAustralia2024-05-27Feltz Printing Service PROPOSAL52Onyama Limba
1017Sinclair Q InouyeCanada2024-06-18Morlong Associates NEGOTIATION45Anna Fali
1018Kaitlin E AlbaresBrazil2024-05-23Printing Dimensions UNQUALIFIED55Amy Elsner
1019Chavez Q MaletItaly2024-06-06Chemel, James L Cpa RENEWAL24Elwin Sharvill
1020Ivar K NickaBrazil2024-06-01Chapman, Ross E Esq RENEWAL34Onyama Limba
1021Jones N WhobreySpain2024-05-27Truhlar And Truhlar Attys RENEWAL99Ivan Magalhaes
1022Aruna S ButtArgentina2024-06-01Rangoni Of Florence PROPOSAL30Amy Elsner
1023Leja D MaletItaly2024-05-30Morlong Associates NEGOTIATION5Onyama Limba
1024Leja H MaletItaly2024-05-24Printing Dimensions PROPOSAL61Xuxue Feng
1025Julie O RoysterCanada2024-06-03Chapman, Ross E Esq UNQUALIFIED40Ioni Bowcher
1026Clifford B IturbideAustralia2024-05-31Commercial Press NEGOTIATION32Elwin Sharvill
1027Costa M OldroydArgentina2024-06-05Feltz Printing Service QUALIFIED24Stephen Shaw
1028Maisha N WieserItaly2024-06-10Truhlar And Truhlar Attys NEGOTIATION42Onyama Limba
1029Octavia A FollerUnited Kingdom2024-06-07Rangoni Of Florence NEGOTIATION39Ivan Magalhaes
1030Sinclair X KuskoFrance2024-06-07Commercial Press PROPOSAL89Ivan Magalhaes
1031Tony J SlusarskiBrazil2024-06-17Chapman, Ross E Esq NEW52Elwin Sharvill
1032Isabel J AmigonBrazil2024-05-29Feiner Bros RENEWAL52Bernardo Dominic
1033Darci H RulapaughAustralia2024-06-17Chemel, James L Cpa NEW96Anna Fali
1034Smith Q SergiUnited Kingdom2024-06-10Chemel, James L Cpa RENEWAL67Elwin Sharvill
1035Isabel G BriddickCanada2024-06-04Feiner Bros NEW38Amy Elsner
1036Maisha F GauchoItaly2024-06-21Chemel, James L Cpa UNQUALIFIED49Stephen Shaw
1037Tony A WieserItaly2024-06-14Buckley Miller Wright UNQUALIFIED54Amy Elsner
1038Jeanfrancois L CampainUnited Kingdom2024-06-07King, Christopher A Esq PROPOSAL34Elwin Sharvill
1039Nicolas Q MorascaBrazil2024-06-20Commercial Press PROPOSAL34Onyama Limba
1040Francesco Q CampainRussia2024-06-09Chemel, James L Cpa QUALIFIED97Ivan Magalhaes
1041Munro U BriddickItaly2024-05-25Dorl, James J Esq QUALIFIED42Bernardo Dominic
1042Francesco Y PaprockiUnited Kingdom2024-06-08Feiner Bros NEGOTIATION17Anna Fali
1043Arvin A AmigonIndia2024-06-18Feltz Printing Service QUALIFIED93Elwin Sharvill
1044Leja L MaletFrance2024-06-12Chanay, Jeffrey A Esq RENEWAL53Bernardo Dominic
1045Salvatore E ButtUnited Kingdom2024-05-30Dorl, James J Esq UNQUALIFIED17Ivan Magalhaes
1046Octavia E BologniaIndia2024-06-10Chanay, Jeffrey A Esq NEGOTIATION59Anna Fali
1047Aika J MacleadItaly2024-06-21Chemel, James L Cpa QUALIFIED23Bernardo Dominic
1048Misaki H PaprockiBrazil2024-05-27Rangoni Of Florence PROPOSAL83Ivan Magalhaes
1049Ricardo M MorascaFrance2024-06-08Truhlar And Truhlar Attys UNQUALIFIED78Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues X SergiCanadaElwin Sharvill NEGOTIATION
Julie D RutaUnited KingdomAsiya Javayant NEGOTIATION
Sinclair N BowleyJapanIvan Magalhaes NEGOTIATION
Aditya B OldroydJapanAmy Elsner UNQUALIFIED
Sinclair H WhobreyFranceIvan Magalhaes NEW
David T FlosiGermanyElwin Sharvill RENEWAL
Jeanfrancois I StockhamCanadaIvan Magalhaes RENEWAL
Mujtaba J PerinBrazilXuxue Feng NEW
Mayumi M CaudyFranceElwin Sharvill NEGOTIATION
Cody B PerinJapanElwin Sharvill NEGOTIATION
Murillo A FigeroaSpainXuxue Feng NEW
Morrow H MaletBrazilBernardo Dominic PROPOSAL
Misaki F RoysterBrazilAnna Fali NEW
Leon M ChuiJapanElwin Sharvill NEW
Kadeem Z DilliardJapanIoni Bowcher UNQUALIFIED
Francesco M VocelkaGermanyXuxue Feng QUALIFIED
Wickens X FigeroaBrazilIvan Magalhaes RENEWAL
Mayumi J MacleadAustraliaOnyama Limba UNQUALIFIED
Morrow N FollerIndiaIoni Bowcher RENEWAL
Deepesh A GauchoJapanElwin Sharvill NEW
Claire A GauchoBrazilElwin Sharvill NEGOTIATION
Jeanfrancois M MacleadItalyBernardo Dominic RENEWAL
Francesco I DilliardBrazilAmy Elsner NEW
Izzy Q OstroskyJapanOnyama Limba NEGOTIATION
Claire D FollerItalyOnyama Limba NEW
Isabel V PaprockiCanadaBernardo Dominic NEW
Wickens R CaldareraAustraliaXuxue Feng QUALIFIED
Rodrigues U RimJapanBernardo Dominic UNQUALIFIED
Aruna Z BowleyCanadaBernardo Dominic PROPOSAL
Claire I OldroydAustraliaBernardo Dominic RENEWAL
Aika C FlosiAustraliaXuxue Feng NEW
Maria Q RoysterJapanAsiya Javayant RENEWAL
Costa Q MorascaJapanAmy Elsner NEW
Salvatore W ChuiArgentinaAsiya Javayant QUALIFIED
Claire T GauchoGermanyBernardo Dominic RENEWAL
Arvin B MorascaUnited KingdomBernardo Dominic NEGOTIATION
Maisha E IturbideRussiaStephen Shaw QUALIFIED
Wickens E DarakjyBrazilAmy Elsner RENEWAL
Julie I MaletRussiaBernardo Dominic PROPOSAL
Cody K SaylorsRussiaAmy Elsner NEW
Kaitlin E KuskoIndiaElwin Sharvill UNQUALIFIED
Juan A StensethSpainAnna Fali NEW
Nicolas Q RutaGermanyAnna Fali QUALIFIED
Tony U CaldareraJapanStephen Shaw PROPOSAL
Alejandro U CaudyArgentinaIvan Magalhaes QUALIFIED
Ricardo S SergiAustraliaIvan Magalhaes NEW
Julie R DoeUnited KingdomOnyama Limba RENEWAL
Johnson V VenereCanadaXuxue Feng UNQUALIFIED
Chavez I WieserFranceIoni Bowcher QUALIFIED
Ricardo T DoeItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Deepesh B Poquette
Tony Y Bolognia
Rodrigues L Perin
Stacey R Shinko
Jeanfrancois K Wieser
Ashley S Nicka
Ashley U Doe
Sinclair V Doe
Kadeem Y Waycott
Nicolas F Waycott
Ricardo W Slusarski
Aditya F Figeroa
Greenwood J Butt
Morrow P Bowley
Jeanfrancois O Glick
Deepesh J Bowley
Antonio U Marrier
Juan Q Vocelka
Cody V Dilliard
Silvio R Stenseth
Greenwood V Perin
Morrow O Garufi
Silvio R Butt
Emily D Caudy
Antonio U Nestle
Salvatore Y Rulapaugh
Antonio P Tollner
Tony K Nicka
Mujtaba E Malet
Kaitlin Y Chui
James Y Marrier
Johnson C Foller
Jefferson M Caldarera
Antonio X Kusko
Jennifer A Kusko
Faith Y Ruta
Mujtaba Y Flosi
Tony M Foller
Salvatore A Venere
Mayumi Y Wieser
Jeanfrancois W Kolmetz
Faith L Flosi
Leja X Figeroa
Ashley S Vocelka
Chavez D Ferencz
Kaitlin W Amigon
Wickens Z Slusarski
Francesco U Sergi
Faith P Gaucho
Costa O Nicka
IdCountryDate
1000France2024-06-06
1001United Kingdom2024-05-31
1002United Kingdom2024-06-15
1003Japan2024-05-28
1004Japan2024-06-15
1005Germany2024-06-06
1006Italy2024-06-08
1007Argentina2024-05-31
1008Germany2024-06-08
1009Russia2024-06-21
1010France2024-05-30
1011United Kingdom2024-06-10
1012Spain2024-06-10
1013India2024-06-19
1014Russia2024-06-20
1015Spain2024-06-05
1016Argentina2024-06-09
1017Spain2024-06-19
1018Australia2024-05-31
1019India2024-06-01
1020France2024-06-07
1021Canada2024-06-07
1022Russia2024-06-17
1023Canada2024-05-26
1024Brazil2024-06-12
1025United Kingdom2024-06-01
1026Italy2024-06-01
1027Japan2024-06-06
1028United Kingdom2024-06-20
1029Russia2024-06-15
1030Germany2024-05-26
1031Spain2024-05-28
1032Japan2024-06-07
1033Germany2024-06-07
1034France2024-06-11
1035Italy2024-05-24
1036France2024-05-25
1037Germany2024-06-06
1038India2024-06-02
1039Russia2024-05-31
1040Australia2024-06-01
1041Spain2024-05-27
1042United Kingdom2024-05-30
1043Australia2024-06-15
1044Canada2024-05-27
1045Italy2024-06-03
1046France2024-06-16
1047India2024-06-05
1048Australia2024-06-12
1049United Kingdom2024-06-18

On-Demand Data

NameIdCountryDate
Izzy D Venere1000Germany2024-06-05
Kaitlin A Whobrey1001Russia2024-06-17
Jeanfrancois S Nestle1002Germany2024-05-26
Leja V Tollner1003Argentina2024-06-20
Cody S Caudy1004Germany2024-06-18
Francesco I Figeroa1005Germany2024-06-10
David S Bowley1006India2024-06-02
Isabel X Garufi1007France2024-06-08
Ricardo M Waycott1008United Kingdom2024-05-27
Smith Y Royster1009Japan2024-06-15
Chavez W Ferencz1010Argentina2024-06-21
Mayumi A Morasca1011United Kingdom2024-06-10
Smith J Marrier1012Japan2024-06-14
James D Nicka1013United Kingdom2024-05-30
Silvio C Tollner1014Australia2024-06-05
Antonio E Bowley1015Brazil2024-05-23
Adams T Rulapaugh1016France2024-06-08
Kadeem N Shinko1017Germany2024-05-30
Silvio Q Maclead1018Italy2024-06-10
Faith R Inouye1019United Kingdom2024-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody Z BologniaBrazilStephen Shaw NEW
Isabel W MacleadSpainAsiya Javayant NEW
Aruna A MaletFranceIoni Bowcher UNQUALIFIED
Octavia R WieserFranceAmy Elsner NEGOTIATION
David M WieserAustraliaStephen Shaw UNQUALIFIED
Mayumi N AlbaresRussiaElwin Sharvill UNQUALIFIED
Kaitlin R DilliardCanadaAmy Elsner RENEWAL
Aruna J WaycottGermanyElwin Sharvill UNQUALIFIED
Misaki M SlusarskiGermanyAsiya Javayant RENEWAL
Darci U PerinGermanyAnna Fali QUALIFIED
Aruna I GarufiAustraliaBernardo Dominic QUALIFIED
James D CaudyArgentinaIvan Magalhaes NEGOTIATION
Juan R InouyeBrazilStephen Shaw NEW
Antonio R FerenczItalyAnna Fali RENEWAL
Emily H CaldareraGermanyOnyama Limba PROPOSAL
Juan C SlusarskiUnited KingdomAsiya Javayant NEW
Arvin N AmigonCanadaAsiya Javayant UNQUALIFIED
Mujtaba Y ButtGermanyAsiya Javayant NEGOTIATION
Munro T SchemmerGermanyAmy Elsner UNQUALIFIED
Ashley N FlosiSpainIvan Magalhaes NEW
Chavez E FlosiSpainIoni Bowcher UNQUALIFIED
Murillo D StockhamBrazilAnna Fali RENEWAL
Ricardo I DarakjyBrazilAnna Fali NEGOTIATION
Cody P MacleadIndiaStephen Shaw NEGOTIATION
Munro X StensethUnited KingdomAmy Elsner RENEWAL
Antonio R WieserUnited KingdomIoni Bowcher NEGOTIATION
Chavez C CaudyBrazilAnna Fali UNQUALIFIED
Jefferson V DoeAustraliaOnyama Limba UNQUALIFIED
Silvio G FlosiIndiaAsiya Javayant PROPOSAL
Maisha K DilliardUnited KingdomAnna Fali QUALIFIED
Arvin H SaylorsGermanyStephen Shaw NEW
Munro M SlusarskiCanadaIvan Magalhaes QUALIFIED
Ivar N NestleJapanAnna Fali NEGOTIATION
Mujtaba R PoquetteUnited KingdomOnyama Limba RENEWAL
Mujtaba H ChuiFranceAnna Fali QUALIFIED
Smith D PaprockiItalyOnyama Limba NEW
David R KolmetzIndiaBernardo Dominic NEGOTIATION
Julie U CaudyGermanyAsiya Javayant UNQUALIFIED
Leon Q MacleadUnited KingdomAnna Fali NEW
Morrow O ButtAustraliaStephen Shaw 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>