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
Faith K TollnerRussiaXuxue Feng NEGOTIATION
Deepesh J TollnerAustraliaXuxue Feng PROPOSAL
Tony P WaycottItalyAsiya Javayant QUALIFIED
Aruna B IturbideFranceAnna Fali PROPOSAL
Juan O FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Adams B MaletBrazilAnna Fali NEW
Clifford R RimAustraliaAnna Fali PROPOSAL
Ricardo W RulapaughCanadaStephen Shaw PROPOSAL
Mujtaba K IturbideRussiaIvan Magalhaes QUALIFIED
Kadeem L RoysterIndiaIvan Magalhaes RENEWAL
Jones L FollerAustraliaStephen Shaw UNQUALIFIED
Nicolas U GarufiIndiaAsiya Javayant RENEWAL
Deepesh P StockhamSpainElwin Sharvill UNQUALIFIED
Jennifer S OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Jeanfrancois W SaylorsGermanyBernardo Dominic NEGOTIATION
Tony C SergiGermanyBernardo Dominic RENEWAL
Rodrigues A SergiGermanyIvan Magalhaes NEGOTIATION
Jennifer W RulapaughJapanAnna Fali PROPOSAL
Smith S GauchoFranceOnyama Limba QUALIFIED
Jeanfrancois A PerinJapanBernardo Dominic PROPOSAL
Cody M SchemmerAustraliaElwin Sharvill NEW
Cody V FigeroaCanadaXuxue Feng RENEWAL
Cody L FlosiIndiaAmy Elsner UNQUALIFIED
Aditya U MorascaCanadaIvan Magalhaes QUALIFIED
Ashley Q FerenczGermanyAnna Fali NEGOTIATION
Aika Y NestleGermanyElwin Sharvill UNQUALIFIED
Nicolas Y AmigonJapanAnna Fali NEW
Clifford K VenereRussiaBernardo Dominic NEW
Faith S DilliardArgentinaIoni Bowcher PROPOSAL
Morrow G SergiItalyStephen Shaw UNQUALIFIED
Claire Q BowleyCanadaIoni Bowcher PROPOSAL
Aruna X VenereIndiaStephen Shaw NEW
Kadeem K FigeroaFranceElwin Sharvill UNQUALIFIED
Octavia J OldroydRussiaAsiya Javayant NEGOTIATION
Faith H WaycottBrazilAnna Fali QUALIFIED
Darci D GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Isabel X CaldareraCanadaElwin Sharvill RENEWAL
Wickens H StockhamBrazilOnyama Limba PROPOSAL
James W MaletJapanOnyama Limba QUALIFIED
Greenwood W StockhamFranceAsiya Javayant UNQUALIFIED
Salvatore P WaycottSpainOnyama Limba UNQUALIFIED
Stacey N PerinArgentinaXuxue Feng PROPOSAL
Costa S AlbaresBrazilAnna Fali UNQUALIFIED
James M ChuiBrazilIvan Magalhaes PROPOSAL
Mayumi N OstroskyUnited KingdomStephen Shaw PROPOSAL
Deepesh Q MaletUnited KingdomOnyama Limba QUALIFIED
Isabel X PoquetteSpainIvan Magalhaes UNQUALIFIED
Antonio F PerinBrazilAnna Fali QUALIFIED
Kaitlin Y DoeCanadaElwin Sharvill UNQUALIFIED
Aika C WieserUnited KingdomIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Leja J ShinkoGermanyXuxue Feng NEGOTIATION
Francesco M FlosiUnited KingdomStephen Shaw QUALIFIED
Nicolas U MaletIndiaAsiya Javayant QUALIFIED
Adams A AmigonArgentinaStephen Shaw UNQUALIFIED
Juan V RutaItalyBernardo Dominic NEGOTIATION
Silvio I StockhamSpainXuxue Feng PROPOSAL
Aika F TollnerIndiaIoni Bowcher NEGOTIATION
Juan U BowleyBrazilAsiya Javayant NEW
Ashley P RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore N SchemmerBrazilIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones M PerinFrance2026-08-02Benton, John B Jr RENEWAL93Onyama Limba
1001Murillo N GauchoBrazil2026-08-01Rangoni Of Florence NEW88Onyama Limba
1002Juan W OstroskyGermany2026-08-15King, Christopher A Esq NEW67Asiya Javayant
1003Kadeem R ChuiArgentina2026-08-10King, Christopher A Esq NEW74Onyama Limba
1004Faith G BowleySpain2026-08-03Rangoni Of Florence NEGOTIATION51Asiya Javayant
1005Mayumi J DarakjyJapan2026-08-06Rousseaux, Michael Esq PROPOSAL21Stephen Shaw
1006Salvatore Q FerenczCanada2026-07-30Feiner Bros RENEWAL0Asiya Javayant
1007Mayumi H BologniaArgentina2026-07-22Benton, John B Jr PROPOSAL66Anna Fali
1008Silvio X MorascaSpain2026-08-08Feiner Bros UNQUALIFIED23Ioni Bowcher
1009Kaitlin T BologniaAustralia2026-08-17Chanay, Jeffrey A Esq QUALIFIED22Asiya Javayant
1010Rodrigues U GlickSpain2026-08-14Chanay, Jeffrey A Esq PROPOSAL34Asiya Javayant
1011Izzy B GarufiJapan2026-08-09Printing Dimensions UNQUALIFIED24Stephen Shaw
1012Johnson Y InouyeGermany2026-07-27Chanay, Jeffrey A Esq NEGOTIATION90Xuxue Feng
1013Johnson D NestleItaly2026-08-03Truhlar And Truhlar Attys UNQUALIFIED42Bernardo Dominic
1014Costa C CaudySpain2026-07-29Buckley Miller Wright NEGOTIATION71Anna Fali
1015Rodrigues M WaycottUnited Kingdom2026-07-24Truhlar And Truhlar Attys NEGOTIATION75Anna Fali
1016Jeanfrancois B RoysterItaly2026-08-10Morlong Associates QUALIFIED30Bernardo Dominic
1017Murillo J MaletRussia2026-08-04Printing Dimensions NEW81Onyama Limba
1018Deepesh Q AlbaresBrazil2026-07-26King, Christopher A Esq UNQUALIFIED70Ivan Magalhaes
1019Aika I OstroskyIndia2026-07-29King, Christopher A Esq UNQUALIFIED69Asiya Javayant
1020Greenwood F BriddickJapan2026-08-11Truhlar And Truhlar Attys RENEWAL77Asiya Javayant
1021Stacey P RoysterGermany2026-08-07Printing Dimensions NEGOTIATION0Anna Fali
1022Julie K RoysterArgentina2026-07-22Feiner Bros UNQUALIFIED91Anna Fali
1023Johnson A OstroskyGermany2026-08-06Commercial Press QUALIFIED22Ioni Bowcher
1024Johnson F NestleRussia2026-08-02Morlong Associates UNQUALIFIED44Bernardo Dominic
1025Arvin S RutaFrance2026-07-28Feltz Printing Service NEW95Bernardo Dominic
1026Chavez G AmigonGermany2026-08-05Buckley Miller Wright NEGOTIATION38Anna Fali
1027Costa J TollnerArgentina2026-08-19Benton, John B Jr NEGOTIATION48Anna Fali
1028Smith W GlickFrance2026-07-26King, Christopher A Esq NEGOTIATION8Ivan Magalhaes
1029James U KolmetzSpain2026-08-10Chemel, James L Cpa RENEWAL34Ivan Magalhaes
1030Isabel H DilliardArgentina2026-08-14Commercial Press RENEWAL49Xuxue Feng
1031Munro Q MorascaJapan2026-08-02Feiner Bros UNQUALIFIED46Onyama Limba
1032Maisha M MacleadBrazil2026-07-24Chapman, Ross E Esq NEW10Ivan Magalhaes
1033Kaitlin J OstroskyGermany2026-08-13Feltz Printing Service NEW44Ivan Magalhaes
1034Smith S KuskoUnited Kingdom2026-08-03Chapman, Ross E Esq NEGOTIATION37Ivan Magalhaes
1035David W SchemmerJapan2026-07-25Truhlar And Truhlar Attys NEW0Onyama Limba
1036Arvin Z TollnerCanada2026-08-07Buckley Miller Wright QUALIFIED71Xuxue Feng
1037Mujtaba Z NickaIndia2026-08-18Morlong Associates UNQUALIFIED14Ivan Magalhaes
1038Maria R NickaUnited Kingdom2026-08-12King, Christopher A Esq UNQUALIFIED70Amy Elsner
1039Greenwood U RutaArgentina2026-08-07Buckley Miller Wright UNQUALIFIED81Amy Elsner
1040Greenwood V WhobreyItaly2026-08-10Rangoni Of Florence UNQUALIFIED41Ivan Magalhaes
1041Alejandro W AmigonJapan2026-07-28Feiner Bros NEGOTIATION93Amy Elsner
1042Aika O NestleArgentina2026-08-08Feltz Printing Service UNQUALIFIED84Ioni Bowcher
1043Claire L FigeroaUnited Kingdom2026-08-20Morlong Associates NEGOTIATION53Onyama Limba
1044Deepesh U PerinSpain2026-08-18Truhlar And Truhlar Attys RENEWAL67Ivan Magalhaes
1045Maisha O VenereJapan2026-07-30Truhlar And Truhlar Attys PROPOSAL11Ioni Bowcher
1046Aditya M OstroskyIndia2026-08-01King, Christopher A Esq UNQUALIFIED47Anna Fali
1047Silvio V OldroydJapan2026-08-06Feiner Bros PROPOSAL87Xuxue Feng
1048Cody H AlbaresItaly2026-08-17Dorl, James J Esq NEGOTIATION62Xuxue Feng
1049Jennifer P AlbaresAustralia2026-08-14Morlong Associates RENEWAL11Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony A AmigonFranceStephen Shaw RENEWAL
Chavez P MaletCanadaAsiya Javayant QUALIFIED
Kadeem L MaletRussiaAnna Fali NEGOTIATION
David C ShinkoJapanIoni Bowcher NEGOTIATION
Chavez P OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Jennifer P KuskoGermanyStephen Shaw PROPOSAL
Wickens X ButtUnited KingdomAsiya Javayant QUALIFIED
Arvin N MorascaCanadaXuxue Feng UNQUALIFIED
Mayumi L BriddickRussiaOnyama Limba QUALIFIED
Ricardo R SaylorsBrazilIvan Magalhaes NEW
Darci Y GlickFranceIvan Magalhaes PROPOSAL
Adams O OldroydJapanAnna Fali QUALIFIED
Morrow T SergiSpainAsiya Javayant NEW
Stacey C OldroydItalyIoni Bowcher PROPOSAL
Aika H VenereIndiaAmy Elsner NEW
Aika E SergiCanadaIvan Magalhaes QUALIFIED
James D RutaBrazilIoni Bowcher PROPOSAL
Francesco F DoeItalyElwin Sharvill RENEWAL
Isabel W KolmetzArgentinaAnna Fali NEGOTIATION
Munro H MacleadAustraliaAmy Elsner QUALIFIED
Tony A GauchoFranceBernardo Dominic NEGOTIATION
Jennifer T WieserIndiaAmy Elsner UNQUALIFIED
Juan K PoquetteGermanyAmy Elsner UNQUALIFIED
Salvatore Z KuskoRussiaOnyama Limba NEGOTIATION
Izzy Q FlosiAustraliaIoni Bowcher NEGOTIATION
Chavez V BologniaSpainStephen Shaw NEW
Francesco X SchemmerFranceIvan Magalhaes UNQUALIFIED
Munro K IturbideUnited KingdomAnna Fali RENEWAL
Jefferson Q SchemmerItalyAsiya Javayant RENEWAL
Alejandro P MaletCanadaBernardo Dominic PROPOSAL
Kaitlin U KolmetzRussiaAnna Fali NEW
Izzy C FlosiCanadaBernardo Dominic UNQUALIFIED
Aika M DilliardJapanBernardo Dominic RENEWAL
Antonio L GarufiUnited KingdomAsiya Javayant PROPOSAL
Chavez L StockhamRussiaBernardo Dominic RENEWAL
Smith L PerinGermanyAsiya Javayant NEW
Cody K MaletBrazilAmy Elsner RENEWAL
Greenwood T PerinSpainOnyama Limba NEW
Tony C ShinkoBrazilElwin Sharvill QUALIFIED
Munro V OstroskyFranceElwin Sharvill QUALIFIED
Aruna K DarakjyFranceElwin Sharvill RENEWAL
Salvatore U OstroskyFranceStephen Shaw PROPOSAL
Octavia Y SergiAustraliaAnna Fali NEW
Kaitlin J FerenczUnited KingdomStephen Shaw QUALIFIED
Munro K VocelkaUnited KingdomIoni Bowcher NEW
David D PerinAustraliaIvan Magalhaes NEW
Maisha D GillianJapanAmy Elsner UNQUALIFIED
Kadeem M CampainBrazilAnna Fali RENEWAL
Aruna W DilliardCanadaIoni Bowcher RENEWAL
Tony S DilliardSpainElwin Sharvill NEGOTIATION
Frozen Columns
Name
Tony H Butt
Munro W Venere
Isabel H Ostrosky
Chavez Y Poquette
Izzy Y Darakjy
Juan A Stockham
Clifford R Stockham
Costa K Ferencz
Nicolas D Malet
Izzy T Stockham
Costa I Marrier
Morrow O Oldroyd
Rodrigues U Nestle
Jones U Slusarski
Leon F Shinko
David K Gillian
Maria I Rulapaugh
Isabel R Ferencz
Ivar M Rulapaugh
Jeanfrancois G Royster
Johnson H Nicka
Jennifer S Ruta
Juan I Darakjy
Jeanfrancois J Dilliard
Mayumi K Rim
David N Ferencz
Francesco Y Royster
Murillo C Vocelka
Arvin D Ostrosky
Mujtaba R Perin
Arvin X Butt
Leja I Nestle
Maisha Q Albares
Tony O Ruta
Tony T Sergi
Jefferson M Campain
Jennifer M Nestle
Wickens J Oldroyd
Juan R Albares
Izzy R Butt
Mayumi P Whobrey
James F Foller
Emily C Bolognia
Aditya Y Ferencz
Rodrigues J Stenseth
Deepesh H Briddick
Greenwood P Figeroa
Mayumi R Malet
Darci D Albares
Wickens F Butt
IdCountryDate
1000Italy2026-07-27
1001Argentina2026-08-16
1002Spain2026-08-04
1003India2026-07-30
1004Australia2026-07-28
1005Australia2026-08-19
1006Spain2026-08-11
1007France2026-08-13
1008Russia2026-07-27
1009Germany2026-07-23
1010Argentina2026-08-12
1011France2026-08-10
1012Australia2026-08-20
1013Australia2026-08-05
1014Argentina2026-08-13
1015Italy2026-08-09
1016Japan2026-08-05
1017Russia2026-08-04
1018Japan2026-07-29
1019Canada2026-07-31
1020Spain2026-08-10
1021Japan2026-08-07
1022Japan2026-08-14
1023France2026-08-20
1024India2026-08-10
1025Argentina2026-08-05
1026Argentina2026-08-09
1027France2026-08-10
1028Australia2026-07-22
1029Japan2026-08-20
1030United Kingdom2026-08-11
1031Russia2026-08-11
1032Argentina2026-08-06
1033Argentina2026-07-31
1034United Kingdom2026-08-09
1035Spain2026-08-16
1036Brazil2026-07-28
1037Australia2026-08-12
1038Italy2026-08-19
1039Brazil2026-08-05
1040Argentina2026-07-28
1041Japan2026-08-01
1042Canada2026-07-24
1043Australia2026-08-12
1044United Kingdom2026-08-20
1045Australia2026-08-11
1046Brazil2026-08-03
1047Japan2026-07-23
1048Germany2026-08-05
1049India2026-08-14

On-Demand Data

NameIdCountryDate
Emily Q Waycott1000Brazil2026-07-23
Jefferson J Venere1001Russia2026-08-13
Ashley E Tollner1002Canada2026-08-09
Jennifer Y Marrier1003Russia2026-07-31
Aditya U Sergi1004Argentina2026-08-05
Kadeem D Ruta1005Russia2026-08-11
Ricardo F Rulapaugh1006Japan2026-08-12
Maria D Royster1007Spain2026-07-25
Arvin A Briddick1008Italy2026-08-08
Costa O Campain1009Germany2026-08-15
Ricardo I Albares1010Australia2026-08-13
Jennifer G Saylors1011France2026-08-06
Smith B Slusarski1012United Kingdom2026-08-02
Nicolas B Foller1013Japan2026-08-05
Costa W Gillian1014Spain2026-08-19
Costa P Bowley1015Argentina2026-08-03
Tony L Doe1016Brazil2026-07-30
Tony Q Rim1017Germany2026-08-18
Nicolas W Gillian1018Brazil2026-07-24
Misaki Q Oldroyd1019Argentina2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco U ShinkoJapanIoni Bowcher NEW
Faith J ButtItalyBernardo Dominic NEGOTIATION
Aruna O GlickAustraliaXuxue Feng RENEWAL
Aditya C SchemmerCanadaOnyama Limba QUALIFIED
Darci J DoeFranceIvan Magalhaes NEGOTIATION
Silvio Q MarrierSpainIvan Magalhaes RENEWAL
Ashley O BowleyBrazilAsiya Javayant UNQUALIFIED
Aditya R FigeroaGermanyAmy Elsner QUALIFIED
Chavez J BriddickItalyAnna Fali NEW
Julie B PoquetteBrazilElwin Sharvill UNQUALIFIED
Ricardo A RoysterAustraliaIvan Magalhaes PROPOSAL
Aika P PaprockiJapanAsiya Javayant PROPOSAL
Maria U GauchoBrazilAsiya Javayant UNQUALIFIED
Leja X AmigonArgentinaIvan Magalhaes UNQUALIFIED
Izzy U CaldareraItalyAmy Elsner UNQUALIFIED
Ivar V BowleyGermanyBernardo Dominic NEW
Octavia I DarakjyRussiaAnna Fali NEW
Ivar M MorascaUnited KingdomStephen Shaw UNQUALIFIED
Ashley V ChuiRussiaIvan Magalhaes PROPOSAL
Wickens N RulapaughGermanyStephen Shaw NEW
Leja P KuskoRussiaOnyama Limba QUALIFIED
Faith N GauchoUnited KingdomStephen Shaw UNQUALIFIED
Salvatore Z DarakjyIndiaBernardo Dominic PROPOSAL
Mayumi N BologniaBrazilXuxue Feng NEW
Leon B CampainBrazilAmy Elsner UNQUALIFIED
Kadeem U MacleadJapanIvan Magalhaes QUALIFIED
Aditya R GillianItalyAsiya Javayant QUALIFIED
Smith J ButtCanadaOnyama Limba UNQUALIFIED
Octavia I FerenczGermanyStephen Shaw NEW
Adams V FlosiItalyOnyama Limba QUALIFIED
Adams T CaldareraArgentinaAsiya Javayant NEGOTIATION
Claire D NestleJapanOnyama Limba QUALIFIED
Misaki J DoeSpainAnna Fali RENEWAL
David I GauchoUnited KingdomOnyama Limba NEGOTIATION
Misaki B StockhamRussiaOnyama Limba NEGOTIATION
Deepesh E VocelkaItalyElwin Sharvill PROPOSAL
Arvin Q PaprockiFranceAmy Elsner NEGOTIATION
Aika X RutaArgentinaBernardo Dominic NEGOTIATION
David B BriddickBrazilBernardo Dominic RENEWAL
Wickens D MaletUnited KingdomIvan Magalhaes 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>