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
Jeanfrancois K CaudyFranceXuxue Feng NEW
Costa Z FerenczUnited KingdomAmy Elsner QUALIFIED
Misaki X PerinAustraliaXuxue Feng PROPOSAL
Francesco Y MorascaJapanAnna Fali NEW
James L GarufiIndiaAmy Elsner NEW
Julie X ShinkoUnited KingdomAsiya Javayant QUALIFIED
Clifford F NestleJapanIvan Magalhaes NEW
Morrow F MaletIndiaAnna Fali RENEWAL
Octavia H DarakjyGermanyBernardo Dominic RENEWAL
Wickens B VenereGermanyIoni Bowcher PROPOSAL
Aika A WhobreyAustraliaIvan Magalhaes RENEWAL
Ricardo B VocelkaBrazilBernardo Dominic NEW
Octavia E BowleyAustraliaOnyama Limba NEW
James Q KuskoBrazilStephen Shaw RENEWAL
Clifford T GarufiCanadaIoni Bowcher QUALIFIED
Octavia H MaletFranceAsiya Javayant UNQUALIFIED
Claire Q StensethJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois H ChuiGermanyElwin Sharvill QUALIFIED
Wickens L IturbideSpainIoni Bowcher PROPOSAL
Morrow P AmigonAustraliaAnna Fali UNQUALIFIED
Faith C MarrierRussiaAmy Elsner UNQUALIFIED
Jeanfrancois K DoeAustraliaAsiya Javayant RENEWAL
Wickens R IturbideAustraliaBernardo Dominic NEW
Clifford P MaletItalyIoni Bowcher NEW
Alejandro W ShinkoSpainIvan Magalhaes UNQUALIFIED
Isabel S NickaUnited KingdomAmy Elsner RENEWAL
Juan D NickaUnited KingdomElwin Sharvill NEGOTIATION
Smith X GarufiJapanXuxue Feng RENEWAL
Ricardo I FlosiItalyElwin Sharvill QUALIFIED
Clifford I SchemmerUnited KingdomAmy Elsner PROPOSAL
Tony L NickaItalyElwin Sharvill RENEWAL
Alejandro I BologniaSpainAnna Fali RENEWAL
Sinclair P MorascaRussiaElwin Sharvill NEGOTIATION
Jeanfrancois C WaycottItalyXuxue Feng UNQUALIFIED
Jennifer W PaprockiAustraliaIvan Magalhaes QUALIFIED
Murillo G DilliardJapanAmy Elsner NEGOTIATION
Juan S FerenczFranceBernardo Dominic QUALIFIED
Ivar P MarrierGermanyBernardo Dominic QUALIFIED
Jennifer C BologniaItalyBernardo Dominic UNQUALIFIED
Juan W NestleFranceIoni Bowcher PROPOSAL
Wickens X BriddickIndiaAsiya Javayant UNQUALIFIED
Tony S MaletUnited KingdomElwin Sharvill UNQUALIFIED
Johnson I MorascaSpainAmy Elsner NEGOTIATION
Claire T VocelkaRussiaIvan Magalhaes PROPOSAL
Johnson T NestleAustraliaIvan Magalhaes UNQUALIFIED
Juan T MacleadJapanAsiya Javayant NEW
Stacey R OstroskyGermanyElwin Sharvill NEW
Aika E NestleFranceOnyama Limba QUALIFIED
Deepesh I KolmetzRussiaAnna Fali QUALIFIED
Jones W GillianSpainIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony F GlickItalyAmy Elsner UNQUALIFIED
Ricardo T VocelkaItalyElwin Sharvill NEW
Alejandro X StensethBrazilAmy Elsner RENEWAL
Maisha W InouyeJapanBernardo Dominic RENEWAL
Jefferson H CaudyRussiaAmy Elsner PROPOSAL
Munro E CampainGermanyIoni Bowcher QUALIFIED
Claire H RutaSpainElwin Sharvill RENEWAL
Maisha G CaudySpainAmy Elsner PROPOSAL
Maria K MarrierUnited KingdomStephen Shaw RENEWAL
Wickens B VenereArgentinaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Z CaudyBrazil2025-06-08Truhlar And Truhlar Attys NEW3Amy Elsner
1001Deepesh G CampainArgentina2025-06-13Printing Dimensions UNQUALIFIED62Ivan Magalhaes
1002Misaki B GillianUnited Kingdom2025-06-01Chanay, Jeffrey A Esq UNQUALIFIED90Ivan Magalhaes
1003Jeanfrancois P DilliardSpain2025-05-19Morlong Associates QUALIFIED97Asiya Javayant
1004Jones H StockhamFrance2025-06-03Commercial Press QUALIFIED60Anna Fali
1005Rodrigues L OldroydUnited Kingdom2025-06-10Feiner Bros QUALIFIED12Amy Elsner
1006Cody R KolmetzIndia2025-05-22Chemel, James L Cpa QUALIFIED51Asiya Javayant
1007Jennifer J RutaAustralia2025-06-02Feiner Bros PROPOSAL15Ivan Magalhaes
1008Silvio S KolmetzGermany2025-06-14Benton, John B Jr RENEWAL34Xuxue Feng
1009Antonio Y DarakjyBrazil2025-05-22Rangoni Of Florence QUALIFIED8Stephen Shaw
1010Jeanfrancois V RutaBrazil2025-06-08Feltz Printing Service RENEWAL61Ioni Bowcher
1011Arvin U SaylorsGermany2025-06-06Chemel, James L Cpa NEGOTIATION93Stephen Shaw
1012Cody O KolmetzUnited Kingdom2025-05-22Chapman, Ross E Esq QUALIFIED21Asiya Javayant
1013Munro F NickaJapan2025-06-07King, Christopher A Esq NEGOTIATION49Amy Elsner
1014Murillo I PerinItaly2025-05-27Rousseaux, Michael Esq NEGOTIATION68Amy Elsner
1015Arvin R PerinCanada2025-05-28Buckley Miller Wright NEGOTIATION94Stephen Shaw
1016Aika T CaldareraUnited Kingdom2025-06-07Chanay, Jeffrey A Esq NEGOTIATION48Xuxue Feng
1017Juan B PaprockiJapan2025-05-24Printing Dimensions NEW51Onyama Limba
1018Rodrigues N InouyeCanada2025-06-01King, Christopher A Esq NEW64Stephen Shaw
1019David C DarakjySpain2025-06-05Morlong Associates UNQUALIFIED20Asiya Javayant
1020Stacey E KolmetzGermany2025-05-27Dorl, James J Esq UNQUALIFIED5Bernardo Dominic
1021Ricardo C FlosiCanada2025-06-02Buckley Miller Wright RENEWAL16Ivan Magalhaes
1022Mujtaba H IturbideBrazil2025-05-31Morlong Associates NEGOTIATION72Elwin Sharvill
1023Ivar I MarrierIndia2025-05-29Commercial Press RENEWAL58Xuxue Feng
1024Juan L ChuiUnited Kingdom2025-06-16Buckley Miller Wright NEW16Amy Elsner
1025Emily N CaldareraCanada2025-05-26Chemel, James L Cpa UNQUALIFIED66Anna Fali
1026Alejandro Y FigeroaRussia2025-06-15Feltz Printing Service PROPOSAL48Ioni Bowcher
1027Ricardo E MorascaFrance2025-05-20Rangoni Of Florence NEW14Amy Elsner
1028Octavia U ChuiSpain2025-05-25Chanay, Jeffrey A Esq UNQUALIFIED16Onyama Limba
1029Kadeem F WaycottCanada2025-05-18Rangoni Of Florence PROPOSAL97Amy Elsner
1030Stacey R StensethUnited Kingdom2025-06-04Printing Dimensions NEGOTIATION53Ioni Bowcher
1031Julie H RutaArgentina2025-05-25Chemel, James L Cpa NEGOTIATION51Ivan Magalhaes
1032Julie R PaprockiJapan2025-06-15Rousseaux, Michael Esq PROPOSAL93Elwin Sharvill
1033Adams G SchemmerCanada2025-05-24Benton, John B Jr UNQUALIFIED27Ivan Magalhaes
1034Johnson U NestleIndia2025-06-11Rangoni Of Florence UNQUALIFIED67Ioni Bowcher
1035Darci A WhobreyBrazil2025-05-26Commercial Press NEGOTIATION26Ioni Bowcher
1036Antonio C CaldareraGermany2025-06-10Feiner Bros QUALIFIED74Amy Elsner
1037Stacey E GillianRussia2025-05-27Feiner Bros NEW79Amy Elsner
1038Munro H GlickItaly2025-06-14Printing Dimensions QUALIFIED60Onyama Limba
1039Aruna R NestleItaly2025-06-15Chapman, Ross E Esq NEW14Stephen Shaw
1040Aruna R GauchoSpain2025-05-19Chapman, Ross E Esq NEW35Elwin Sharvill
1041Jeanfrancois L DilliardAustralia2025-06-16Buckley Miller Wright NEGOTIATION47Amy Elsner
1042Aika F WhobreyIndia2025-05-20Buckley Miller Wright UNQUALIFIED33Xuxue Feng
1043Johnson W AlbaresItaly2025-06-08Buckley Miller Wright QUALIFIED60Elwin Sharvill
1044Murillo Q SaylorsGermany2025-05-30Commercial Press NEW78Bernardo Dominic
1045Julie I DilliardBrazil2025-06-08Feltz Printing Service RENEWAL13Xuxue Feng
1046Maria Q PerinRussia2025-06-11Feiner Bros NEW8Xuxue Feng
1047Mujtaba I GlickJapan2025-05-23Buckley Miller Wright RENEWAL23Anna Fali
1048Faith U SergiBrazil2025-06-09Chemel, James L Cpa NEW26Onyama Limba
1049Aika S FigeroaIndia2025-06-04Buckley Miller Wright UNQUALIFIED7Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Mayumi W RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Aika X MorascaRussiaIvan Magalhaes UNQUALIFIED
Cody E PaprockiCanadaIoni Bowcher NEW
Munro D AlbaresItalyAmy Elsner PROPOSAL
Leja M PaprockiIndiaAsiya Javayant NEGOTIATION
Sinclair P FollerIndiaIoni Bowcher UNQUALIFIED
Smith S OstroskyJapanIvan Magalhaes RENEWAL
Silvio C KuskoJapanAsiya Javayant UNQUALIFIED
Greenwood P FlosiGermanyXuxue Feng QUALIFIED
Claire X KolmetzItalyOnyama Limba NEW
Greenwood Y MarrierArgentinaIoni Bowcher UNQUALIFIED
Darci A BriddickIndiaAsiya Javayant QUALIFIED
Tony G OstroskyUnited KingdomAsiya Javayant QUALIFIED
Antonio W VenereArgentinaStephen Shaw UNQUALIFIED
Smith C GarufiJapanIoni Bowcher UNQUALIFIED
Jones H DoeCanadaElwin Sharvill UNQUALIFIED
Emily U FlosiCanadaAsiya Javayant NEW
Rodrigues O BriddickUnited KingdomAnna Fali UNQUALIFIED
Octavia V SlusarskiFranceElwin Sharvill NEW
Jones F WieserBrazilAmy Elsner NEGOTIATION
Faith M SlusarskiRussiaAsiya Javayant RENEWAL
Juan L CampainIndiaBernardo Dominic RENEWAL
Antonio Q PerinArgentinaAnna Fali NEGOTIATION
Munro Z InouyeSpainAmy Elsner QUALIFIED
Clifford L MarrierFranceStephen Shaw RENEWAL
Rodrigues D WhobreyItalyIvan Magalhaes NEGOTIATION
Kaitlin F MaletBrazilAnna Fali UNQUALIFIED
Ashley N DoeSpainXuxue Feng UNQUALIFIED
Aika M RulapaughItalyAmy Elsner PROPOSAL
Sinclair M RutaCanadaAmy Elsner QUALIFIED
Johnson F DoeSpainAnna Fali NEGOTIATION
Greenwood Z SchemmerArgentinaAsiya Javayant RENEWAL
Alejandro S OldroydRussiaXuxue Feng RENEWAL
Tony F RulapaughRussiaXuxue Feng NEGOTIATION
Greenwood W DilliardRussiaAnna Fali QUALIFIED
Kaitlin T GlickJapanElwin Sharvill UNQUALIFIED
Misaki C ButtArgentinaAsiya Javayant NEW
Rodrigues Z NestleAustraliaStephen Shaw NEW
Wickens N ButtRussiaAmy Elsner NEGOTIATION
Aditya Q OstroskySpainBernardo Dominic UNQUALIFIED
Adams K IturbideSpainAsiya Javayant PROPOSAL
Arvin R MacleadArgentinaAnna Fali NEGOTIATION
Leon P FerenczJapanStephen Shaw RENEWAL
Silvio G NickaJapanAmy Elsner RENEWAL
Darci N KuskoBrazilStephen Shaw QUALIFIED
Julie L FerenczJapanIoni Bowcher UNQUALIFIED
Stacey V NestleSpainStephen Shaw NEW
Francesco Q FollerCanadaAsiya Javayant NEGOTIATION
James X PerinUnited KingdomAnna Fali QUALIFIED
Francesco N IturbideFranceIoni Bowcher NEW
Frozen Columns
Name
Mujtaba Q Ruta
Silvio A Caldarera
Silvio N Maclead
Arvin W Marrier
David Z Venere
Ashley M Stenseth
Kaitlin L Sergi
Faith A Oldroyd
Leon I Rim
Tony M Saylors
Sinclair T Schemmer
Aika E Ferencz
Johnson I Foller
Silvio Q Slusarski
Salvatore X Bowley
Smith T Stenseth
Jefferson O Paprocki
Johnson N Schemmer
Costa F Stenseth
Tony G Campain
Rodrigues K Wieser
Maria Y Slusarski
Smith G Gaucho
Maisha V Nicka
Octavia S Saylors
Rodrigues N Caldarera
Misaki W Vocelka
Leon D Ostrosky
Ricardo P Doe
Clifford I Whobrey
Francesco X Caldarera
Adams I Sergi
Ricardo Y Figeroa
Kaitlin J Inouye
Jeanfrancois Q Foller
Misaki G Chui
Aruna U Paprocki
Aruna O Darakjy
Ricardo P Waycott
Johnson Z Shinko
Isabel U Gaucho
Kadeem K Bolognia
Jefferson X Glick
Leja Q Slusarski
Maria Q Shinko
Sinclair H Chui
Ricardo X Shinko
Juan H Foller
Jones J Nicka
Stacey Q Schemmer
IdCountryDate
1000India2025-06-01
1001United Kingdom2025-06-07
1002Spain2025-06-03
1003India2025-06-04
1004France2025-05-24
1005United Kingdom2025-05-20
1006India2025-06-14
1007Australia2025-06-10
1008France2025-05-19
1009Argentina2025-06-15
1010Germany2025-05-26
1011Australia2025-05-19
1012Australia2025-05-22
1013Russia2025-05-18
1014Germany2025-06-01
1015Japan2025-05-26
1016Germany2025-06-11
1017United Kingdom2025-06-07
1018Russia2025-05-26
1019Russia2025-06-15
1020United Kingdom2025-05-19
1021United Kingdom2025-06-01
1022Brazil2025-05-25
1023France2025-05-31
1024Italy2025-05-27
1025Germany2025-06-11
1026Argentina2025-06-12
1027Canada2025-06-16
1028France2025-06-09
1029Russia2025-06-01
1030France2025-05-24
1031Brazil2025-06-07
1032Italy2025-05-23
1033France2025-06-04
1034India2025-05-30
1035Germany2025-05-20
1036Italy2025-05-19
1037France2025-06-14
1038Japan2025-05-24
1039Australia2025-06-03
1040Italy2025-05-25
1041Australia2025-05-19
1042Canada2025-05-19
1043Spain2025-05-25
1044Germany2025-06-09
1045India2025-06-05
1046Japan2025-05-25
1047Japan2025-05-27
1048Brazil2025-05-20
1049Canada2025-06-01

On-Demand Data

NameIdCountryDate
Sinclair K Ferencz1000Canada2025-06-16
Antonio O Oldroyd1001France2025-05-28
Smith O Ruta1002France2025-06-01
Leon F Nicka1003Canada2025-06-11
Alejandro W Briddick1004France2025-06-07
Smith E Flosi1005Russia2025-06-05
Juan P Poquette1006United Kingdom2025-06-09
Cody H Poquette1007Russia2025-06-03
Aruna A Amigon1008United Kingdom2025-06-13
Ashley V Saylors1009Russia2025-05-25
Chavez G Ruta1010Spain2025-05-23
Izzy H Tollner1011Canada2025-05-28
Leja X Glick1012Germany2025-05-25
Munro C Butt1013Italy2025-05-26
Maisha S Albares1014Italy2025-06-03
Isabel B Whobrey1015Russia2025-05-19
Chavez M Darakjy1016Brazil2025-05-18
Francesco X Campain1017India2025-06-14
Juan X Dilliard1018Italy2025-05-20
Nicolas G Stenseth1019Canada2025-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson J WhobreyRussiaBernardo Dominic NEW
Kadeem M ShinkoArgentinaStephen Shaw NEW
Sinclair Q AmigonCanadaAmy Elsner NEGOTIATION
Claire T SaylorsSpainBernardo Dominic QUALIFIED
Smith O RoysterRussiaOnyama Limba QUALIFIED
Tony H FigeroaBrazilAnna Fali PROPOSAL
Maria O IturbideFranceIoni Bowcher NEGOTIATION
Costa C MorascaArgentinaBernardo Dominic UNQUALIFIED
Salvatore Y SchemmerItalyXuxue Feng QUALIFIED
Costa Q FollerAustraliaIvan Magalhaes UNQUALIFIED
Costa Y GillianJapanAsiya Javayant QUALIFIED
Misaki D DoeGermanyIoni Bowcher UNQUALIFIED
Chavez X TollnerItalyXuxue Feng UNQUALIFIED
Alejandro Q InouyeSpainOnyama Limba NEGOTIATION
Ivar R SaylorsAustraliaOnyama Limba UNQUALIFIED
Leon Q CaldareraUnited KingdomIvan Magalhaes NEW
Arvin K ShinkoArgentinaBernardo Dominic NEW
Chavez L CaudyArgentinaBernardo Dominic RENEWAL
Nicolas B SlusarskiAustraliaAmy Elsner RENEWAL
Wickens F MaletUnited KingdomXuxue Feng UNQUALIFIED
Greenwood A VocelkaItalyOnyama Limba NEGOTIATION
Murillo O GauchoAustraliaXuxue Feng NEGOTIATION
Chavez B MaletCanadaBernardo Dominic PROPOSAL
Jefferson F FerenczAustraliaElwin Sharvill UNQUALIFIED
Greenwood J RulapaughFranceElwin Sharvill PROPOSAL
Nicolas I KuskoRussiaOnyama Limba RENEWAL
Julie K MacleadJapanStephen Shaw UNQUALIFIED
Adams L RutaRussiaAnna Fali QUALIFIED
Jeanfrancois S DilliardItalyStephen Shaw NEW
Silvio K PerinBrazilIvan Magalhaes NEGOTIATION
Rodrigues C BologniaBrazilBernardo Dominic NEGOTIATION
Aika D VocelkaRussiaIvan Magalhaes PROPOSAL
Misaki J BowleyCanadaAsiya Javayant NEW
Antonio Z GarufiSpainElwin Sharvill NEW
Arvin K GillianArgentinaBernardo Dominic RENEWAL
Smith D RutaFranceOnyama Limba NEW
Izzy N MorascaBrazilOnyama Limba UNQUALIFIED
Octavia N WieserSpainStephen Shaw QUALIFIED
Rodrigues P NestleCanadaStephen Shaw UNQUALIFIED
Arvin F WieserGermanyBernardo Dominic 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>