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
Francesco C NestleUnited KingdomElwin Sharvill PROPOSAL
Ricardo E OstroskyFranceXuxue Feng NEGOTIATION
Julie V DarakjyGermanyStephen Shaw QUALIFIED
Adams S NestleArgentinaIvan Magalhaes NEW
Deepesh L RimCanadaOnyama Limba QUALIFIED
Maisha P FerenczItalyBernardo Dominic PROPOSAL
Aika P MaletJapanBernardo Dominic QUALIFIED
Kadeem V ChuiItalyElwin Sharvill PROPOSAL
Chavez U VenereBrazilAsiya Javayant PROPOSAL
Johnson Y BowleySpainOnyama Limba PROPOSAL
Alejandro Z AlbaresGermanyIoni Bowcher QUALIFIED
Greenwood C DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Smith R GarufiSpainOnyama Limba NEGOTIATION
Julie G CaldareraUnited KingdomAsiya Javayant QUALIFIED
Ivar I SlusarskiFranceBernardo Dominic NEGOTIATION
Isabel T FollerBrazilAmy Elsner NEW
Mayumi A CaudyGermanyBernardo Dominic RENEWAL
Claire O AmigonFranceOnyama Limba PROPOSAL
Antonio M SlusarskiIndiaAnna Fali RENEWAL
Emily R SlusarskiAustraliaAsiya Javayant PROPOSAL
Jefferson T AmigonJapanXuxue Feng UNQUALIFIED
Nicolas O DilliardUnited KingdomIoni Bowcher QUALIFIED
Deepesh K SaylorsIndiaAsiya Javayant NEW
Munro A NestleUnited KingdomOnyama Limba UNQUALIFIED
Jennifer X MacleadRussiaBernardo Dominic QUALIFIED
Faith C StockhamArgentinaStephen Shaw NEGOTIATION
Jeanfrancois Z GauchoAustraliaOnyama Limba NEGOTIATION
Darci I WieserAustraliaOnyama Limba QUALIFIED
Chavez W BriddickUnited KingdomBernardo Dominic RENEWAL
Misaki E MaletArgentinaAnna Fali PROPOSAL
Kaitlin Y DoeArgentinaAnna Fali NEGOTIATION
Leja H PoquetteArgentinaAsiya Javayant UNQUALIFIED
Aika H VenereAustraliaOnyama Limba NEW
Mayumi O NickaGermanyElwin Sharvill PROPOSAL
Juan X MaletAustraliaIvan Magalhaes RENEWAL
Izzy W FlosiItalyAnna Fali QUALIFIED
Leja F DilliardIndiaBernardo Dominic NEGOTIATION
Murillo Q DilliardSpainAmy Elsner RENEWAL
Wickens D CaudySpainIoni Bowcher QUALIFIED
Emily T AmigonCanadaAnna Fali NEW
James U ShinkoUnited KingdomBernardo Dominic RENEWAL
Maria G NickaItalyStephen Shaw RENEWAL
Clifford B ButtArgentinaOnyama Limba UNQUALIFIED
Arvin Q MaletUnited KingdomOnyama Limba NEGOTIATION
Kaitlin B VocelkaBrazilOnyama Limba UNQUALIFIED
Salvatore K GauchoAustraliaIvan Magalhaes PROPOSAL
Morrow O FollerGermanyStephen Shaw PROPOSAL
Johnson J ShinkoRussiaOnyama Limba PROPOSAL
Izzy H MaletBrazilXuxue Feng QUALIFIED
Antonio B NickaAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Clifford Q AlbaresArgentinaElwin Sharvill RENEWAL
Johnson T DoeRussiaIoni Bowcher PROPOSAL
Murillo P PoquetteItalyXuxue Feng NEW
Claire X StockhamArgentinaStephen Shaw PROPOSAL
Munro I IturbideIndiaIoni Bowcher NEW
Claire N StockhamArgentinaBernardo Dominic RENEWAL
Deepesh P GlickCanadaXuxue Feng PROPOSAL
Arvin I MaletFranceElwin Sharvill NEW
Morrow C DarakjySpainIvan Magalhaes NEW
Mayumi F AlbaresAustraliaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin F SchemmerFrance2026-06-30Chanay, Jeffrey A Esq QUALIFIED39Bernardo Dominic
1001Sinclair L ButtGermany2026-06-25Commercial Press PROPOSAL34Anna Fali
1002Cody W RoysterIndia2026-06-29Truhlar And Truhlar Attys RENEWAL14Bernardo Dominic
1003Alejandro L InouyeIndia2026-07-01Truhlar And Truhlar Attys NEGOTIATION9Amy Elsner
1004Maisha V KolmetzCanada2026-06-17Morlong Associates NEGOTIATION37Stephen Shaw
1005Nicolas T GauchoCanada2026-06-12Morlong Associates UNQUALIFIED7Anna Fali
1006Jefferson M SchemmerGermany2026-06-16Rousseaux, Michael Esq NEW54Bernardo Dominic
1007Maria O BowleyBrazil2026-07-05Chapman, Ross E Esq PROPOSAL39Stephen Shaw
1008Aika W WaycottUnited Kingdom2026-06-19Feltz Printing Service QUALIFIED63Anna Fali
1009Darci V NestleSpain2026-06-23Rousseaux, Michael Esq NEW15Elwin Sharvill
1010Cody E FlosiRussia2026-07-05Chemel, James L Cpa NEGOTIATION51Ivan Magalhaes
1011Aditya K RulapaughJapan2026-06-25Benton, John B Jr RENEWAL59Elwin Sharvill
1012Izzy T DarakjyGermany2026-06-17Dorl, James J Esq UNQUALIFIED76Anna Fali
1013Alejandro L WhobreyFrance2026-06-11Benton, John B Jr NEW23Ivan Magalhaes
1014Costa K GlickRussia2026-06-13Rousseaux, Michael Esq RENEWAL88Anna Fali
1015Tony W PaprockiItaly2026-06-23Buckley Miller Wright NEW41Ivan Magalhaes
1016Aditya L NickaJapan2026-07-10King, Christopher A Esq RENEWAL14Onyama Limba
1017Munro A DilliardIndia2026-07-06Morlong Associates NEW41Xuxue Feng
1018Ricardo X KuskoAustralia2026-07-04Buckley Miller Wright NEGOTIATION98Elwin Sharvill
1019Costa D WieserUnited Kingdom2026-06-28Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1020Nicolas V SchemmerBrazil2026-07-03Feiner Bros QUALIFIED92Ivan Magalhaes
1021James N GlickFrance2026-06-17Truhlar And Truhlar Attys QUALIFIED75Elwin Sharvill
1022Francesco K DilliardIndia2026-07-07Commercial Press PROPOSAL49Bernardo Dominic
1023Isabel H ButtIndia2026-06-16Chanay, Jeffrey A Esq QUALIFIED90Anna Fali
1024Julie W SergiUnited Kingdom2026-06-19Chanay, Jeffrey A Esq PROPOSAL75Stephen Shaw
1025Izzy T ChuiFrance2026-06-28Chanay, Jeffrey A Esq UNQUALIFIED90Elwin Sharvill
1026Leja D NickaUnited Kingdom2026-07-01Feiner Bros QUALIFIED23Stephen Shaw
1027Emily D PoquetteArgentina2026-06-29Buckley Miller Wright NEGOTIATION47Bernardo Dominic
1028Silvio O StensethBrazil2026-07-03Commercial Press NEGOTIATION62Xuxue Feng
1029Alejandro H PaprockiSpain2026-07-04Rousseaux, Michael Esq NEW57Onyama Limba
1030Kadeem V GauchoUnited Kingdom2026-06-14Feiner Bros NEGOTIATION18Onyama Limba
1031Mayumi T WieserFrance2026-06-29King, Christopher A Esq UNQUALIFIED70Bernardo Dominic
1032Stacey U AlbaresIndia2026-06-15King, Christopher A Esq UNQUALIFIED39Anna Fali
1033Octavia Q CaudyCanada2026-06-12Rousseaux, Michael Esq UNQUALIFIED99Amy Elsner
1034Isabel F GarufiSpain2026-07-04Feltz Printing Service NEW31Bernardo Dominic
1035Jeanfrancois W DarakjyIndia2026-07-06Feiner Bros PROPOSAL49Xuxue Feng
1036Maisha G MorascaBrazil2026-06-14Truhlar And Truhlar Attys UNQUALIFIED21Ioni Bowcher
1037Claire M CaudyItaly2026-07-01Rangoni Of Florence NEGOTIATION55Onyama Limba
1038Jefferson Z FollerJapan2026-07-03Chemel, James L Cpa RENEWAL84Ivan Magalhaes
1039Izzy S DoeIndia2026-06-12Benton, John B Jr QUALIFIED17Onyama Limba
1040Wickens B FigeroaJapan2026-06-22Commercial Press RENEWAL10Bernardo Dominic
1041Tony D BowleySpain2026-07-07Chemel, James L Cpa PROPOSAL13Xuxue Feng
1042Darci Y SergiIndia2026-07-01King, Christopher A Esq PROPOSAL57Xuxue Feng
1043Salvatore V SchemmerUnited Kingdom2026-07-02Benton, John B Jr UNQUALIFIED41Elwin Sharvill
1044Arvin T TollnerCanada2026-07-03Benton, John B Jr UNQUALIFIED85Ioni Bowcher
1045Juan P SlusarskiBrazil2026-06-14Dorl, James J Esq UNQUALIFIED49Onyama Limba
1046Greenwood Q NestleFrance2026-06-17Rousseaux, Michael Esq NEW31Stephen Shaw
1047Leon O MaletSpain2026-06-12Dorl, James J Esq NEGOTIATION53Amy Elsner
1048Misaki E GauchoArgentina2026-06-17Rangoni Of Florence UNQUALIFIED74Xuxue Feng
1049Antonio E VenereAustralia2026-07-04King, Christopher A Esq PROPOSAL11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa K DilliardAustraliaAsiya Javayant NEGOTIATION
Emily P FollerSpainAmy Elsner NEGOTIATION
Aditya H VocelkaSpainOnyama Limba QUALIFIED
Tony V VenereBrazilAmy Elsner PROPOSAL
Cody L KolmetzUnited KingdomIoni Bowcher RENEWAL
Aruna E DilliardBrazilElwin Sharvill NEW
James V RoysterSpainXuxue Feng NEW
Leon O RoysterCanadaAsiya Javayant NEW
Ashley M VenereBrazilOnyama Limba PROPOSAL
James J ButtBrazilElwin Sharvill QUALIFIED
Sinclair J MaletGermanyXuxue Feng PROPOSAL
Aika O DarakjyIndiaOnyama Limba NEW
Aruna K SergiItalyStephen Shaw NEGOTIATION
Stacey Z GillianAustraliaIoni Bowcher QUALIFIED
Alejandro M RulapaughGermanyOnyama Limba NEGOTIATION
Jefferson X KolmetzGermanyIvan Magalhaes PROPOSAL
Greenwood F WieserCanadaIoni Bowcher QUALIFIED
Jones R CampainIndiaAsiya Javayant PROPOSAL
Johnson W DilliardBrazilStephen Shaw NEGOTIATION
Stacey R DarakjyIndiaIvan Magalhaes UNQUALIFIED
Misaki W RutaIndiaXuxue Feng PROPOSAL
Maisha B ButtGermanyIoni Bowcher NEW
Stacey X ButtJapanOnyama Limba UNQUALIFIED
Faith N MacleadBrazilAmy Elsner RENEWAL
Isabel W BriddickAustraliaIoni Bowcher NEW
Wickens T PaprockiArgentinaXuxue Feng NEGOTIATION
Francesco U GillianGermanyAsiya Javayant UNQUALIFIED
Tony J WieserCanadaAsiya Javayant NEW
Ivar Z PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson W VocelkaCanadaAsiya Javayant RENEWAL
Adams Q DilliardArgentinaIvan Magalhaes UNQUALIFIED
Salvatore B VenereCanadaAsiya Javayant NEW
Claire Y BowleyAustraliaElwin Sharvill NEW
James O NickaUnited KingdomAsiya Javayant QUALIFIED
Mujtaba C SlusarskiRussiaAmy Elsner PROPOSAL
Jeanfrancois U VenereJapanStephen Shaw RENEWAL
Deepesh D FigeroaAustraliaOnyama Limba PROPOSAL
Mujtaba C CaldareraRussiaAmy Elsner NEGOTIATION
Ivar A FlosiAustraliaBernardo Dominic PROPOSAL
Julie H ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Jones K OldroydArgentinaAmy Elsner PROPOSAL
Ashley H MarrierGermanyAnna Fali UNQUALIFIED
Kadeem O VenereGermanyAsiya Javayant NEGOTIATION
Ivar O SaylorsSpainXuxue Feng UNQUALIFIED
Juan F MaletJapanOnyama Limba PROPOSAL
Costa S VenereFranceAnna Fali RENEWAL
Salvatore G DilliardAustraliaAsiya Javayant NEW
Antonio Q FollerSpainStephen Shaw UNQUALIFIED
Adams E NickaRussiaAsiya Javayant QUALIFIED
Nicolas V SchemmerFranceAnna Fali RENEWAL
Frozen Columns
Name
Isabel C Ostrosky
Smith A Schemmer
David O Kusko
Leja G Inouye
Morrow J Wieser
Jones D Amigon
Antonio V Waycott
Aditya E Marrier
Clifford X Iturbide
Antonio E Waycott
Wickens N Flosi
Arvin R Ruta
Chavez D Rulapaugh
Nicolas P Royster
Jeanfrancois B Schemmer
Johnson S Campain
Mujtaba B Stockham
Ashley O Whobrey
Arvin W Kolmetz
Wickens X Schemmer
James F Slusarski
Maria G Vocelka
Juan D Caldarera
Darci D Iturbide
Wickens T Paprocki
Misaki N Inouye
Salvatore O Briddick
Claire P Saylors
Costa V Gaucho
Silvio D Oldroyd
Johnson Q Shinko
Nicolas X Albares
Faith T Kolmetz
Francesco H Maclead
Nicolas D Caudy
Misaki V Ruta
Izzy K Gaucho
Stacey S Venere
Stacey F Inouye
Adams T Glick
Greenwood R Stockham
Octavia H Oldroyd
Nicolas X Royster
Alejandro V Amigon
Julie S Nestle
Adams N Whobrey
Mujtaba A Tollner
Silvio J Morasca
Leon F Amigon
Emily D Wieser
IdCountryDate
1000Spain2026-07-06
1001Canada2026-07-01
1002France2026-07-05
1003Japan2026-06-22
1004Japan2026-07-05
1005Argentina2026-07-03
1006Argentina2026-06-24
1007Italy2026-06-20
1008India2026-06-22
1009Australia2026-06-26
1010Australia2026-06-21
1011Australia2026-06-23
1012Spain2026-06-22
1013Russia2026-07-07
1014United Kingdom2026-07-10
1015Italy2026-06-17
1016Japan2026-06-28
1017Argentina2026-06-15
1018Canada2026-07-07
1019France2026-07-09
1020Brazil2026-06-20
1021Russia2026-06-27
1022Germany2026-06-20
1023France2026-06-30
1024Germany2026-06-23
1025Australia2026-06-28
1026Spain2026-06-21
1027Spain2026-06-24
1028Germany2026-06-23
1029Japan2026-07-05
1030India2026-06-15
1031Argentina2026-06-27
1032Russia2026-06-24
1033India2026-07-06
1034Russia2026-06-23
1035Argentina2026-06-21
1036India2026-06-20
1037Russia2026-06-12
1038Brazil2026-07-03
1039Brazil2026-07-04
1040Argentina2026-06-21
1041Brazil2026-07-06
1042Germany2026-06-15
1043Japan2026-06-27
1044Argentina2026-06-29
1045Italy2026-07-09
1046Argentina2026-06-16
1047United Kingdom2026-06-18
1048Italy2026-07-10
1049Japan2026-06-23

On-Demand Data

NameIdCountryDate
Silvio G Chui1000Canada2026-06-16
Leon P Wieser1001Japan2026-07-05
Alejandro N Campain1002Australia2026-07-01
Ashley M Sergi1003Australia2026-06-29
Costa U Garufi1004France2026-06-15
Maria N Kusko1005France2026-07-09
Murillo T Saylors1006Argentina2026-06-25
Mujtaba W Kolmetz1007Japan2026-07-04
Mujtaba T Chui1008Germany2026-06-17
Arvin M Garufi1009Argentina2026-06-30
Jefferson R Malet1010Italy2026-06-25
Faith A Kolmetz1011Japan2026-06-11
Jeanfrancois H Bolognia1012India2026-07-01
Leon N Slusarski1013Brazil2026-06-21
James X Ruta1014Japan2026-06-27
Smith B Rim1015Russia2026-06-20
Antonio A Dilliard1016France2026-06-28
Izzy Z Kusko1017United Kingdom2026-06-28
Greenwood V Shinko1018Canada2026-07-09
Silvio S Stockham1019India2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones F FerenczBrazilAsiya Javayant UNQUALIFIED
Mujtaba Y VocelkaUnited KingdomBernardo Dominic PROPOSAL
Adams Q FollerSpainAmy Elsner RENEWAL
Morrow P MaletBrazilOnyama Limba QUALIFIED
Kaitlin Z MorascaBrazilElwin Sharvill QUALIFIED
Ricardo P TollnerItalyStephen Shaw UNQUALIFIED
Munro S KolmetzFranceAmy Elsner QUALIFIED
Aruna L StensethFranceBernardo Dominic UNQUALIFIED
Leon T DilliardJapanAsiya Javayant QUALIFIED
Maria P MacleadSpainAsiya Javayant PROPOSAL
Faith W NestleGermanyAmy Elsner QUALIFIED
Aika L ButtSpainXuxue Feng PROPOSAL
Arvin X AmigonRussiaBernardo Dominic NEGOTIATION
Faith B PerinRussiaBernardo Dominic PROPOSAL
Mayumi R PoquetteFranceElwin Sharvill PROPOSAL
Greenwood W BowleyFranceElwin Sharvill UNQUALIFIED
Faith B VocelkaGermanyAnna Fali QUALIFIED
Ivar M TollnerSpainElwin Sharvill RENEWAL
Alejandro K TollnerIndiaAsiya Javayant PROPOSAL
Ricardo K SergiRussiaOnyama Limba QUALIFIED
Aruna O RimFranceAsiya Javayant UNQUALIFIED
Julie O WieserFranceOnyama Limba NEW
Kaitlin X StensethRussiaIoni Bowcher PROPOSAL
Aditya P DoeGermanyStephen Shaw QUALIFIED
Ashley U NestleIndiaElwin Sharvill RENEWAL
Emily J MacleadFranceXuxue Feng QUALIFIED
Julie G WieserItalyIvan Magalhaes PROPOSAL
Izzy U CaudyUnited KingdomBernardo Dominic RENEWAL
Clifford U SlusarskiIndiaAsiya Javayant PROPOSAL
Aruna P GlickSpainStephen Shaw UNQUALIFIED
Aika X MorascaUnited KingdomElwin Sharvill NEW
Mayumi L SchemmerGermanyXuxue Feng QUALIFIED
Adams G OldroydIndiaBernardo Dominic PROPOSAL
Wickens N RoysterSpainOnyama Limba RENEWAL
Clifford C DilliardJapanXuxue Feng RENEWAL
James I CaudyIndiaAmy Elsner NEW
Emily E BriddickRussiaIvan Magalhaes NEW
Deepesh S WhobreyArgentinaBernardo Dominic UNQUALIFIED
Sinclair B IturbideFranceAmy Elsner NEW
Jennifer Z IturbideArgentinaIvan Magalhaes PROPOSAL

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