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
Jones J VocelkaFranceIoni Bowcher NEW
Mayumi C StockhamGermanyAnna Fali RENEWAL
Jennifer Z VocelkaSpainXuxue Feng PROPOSAL
Aika W VenereArgentinaOnyama Limba UNQUALIFIED
Sinclair V FigeroaGermanyAmy Elsner RENEWAL
Costa E VocelkaFranceAsiya Javayant PROPOSAL
Aruna B TollnerBrazilIoni Bowcher RENEWAL
James A RoysterUnited KingdomElwin Sharvill RENEWAL
David L GillianBrazilOnyama Limba UNQUALIFIED
Aika E SaylorsSpainOnyama Limba RENEWAL
Emily Y WaycottSpainBernardo Dominic PROPOSAL
Jones Y SaylorsSpainAmy Elsner QUALIFIED
Aruna H MarrierItalyStephen Shaw PROPOSAL
Murillo O ShinkoArgentinaElwin Sharvill UNQUALIFIED
Silvio P PoquetteSpainIvan Magalhaes PROPOSAL
Ashley M PerinAustraliaIvan Magalhaes NEGOTIATION
Johnson I GlickFranceIoni Bowcher NEW
Darci X ShinkoGermanyElwin Sharvill QUALIFIED
Maria O MaletAustraliaBernardo Dominic QUALIFIED
Nicolas B MaletRussiaElwin Sharvill QUALIFIED
Alejandro R ChuiRussiaIoni Bowcher RENEWAL
Misaki U TollnerItalyAsiya Javayant RENEWAL
Ivar T VocelkaGermanyAsiya Javayant UNQUALIFIED
Julie X AlbaresGermanyAmy Elsner UNQUALIFIED
Clifford Y InouyeFranceStephen Shaw QUALIFIED
Maisha V MaletFranceXuxue Feng QUALIFIED
Mujtaba W TollnerBrazilBernardo Dominic PROPOSAL
Jeanfrancois K RoysterAustraliaXuxue Feng QUALIFIED
Juan Z SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Deepesh U StensethFranceIoni Bowcher NEW
Stacey G SergiIndiaXuxue Feng PROPOSAL
Deepesh F DoeUnited KingdomElwin Sharvill PROPOSAL
Octavia D NestleBrazilAsiya Javayant UNQUALIFIED
Julie N CaldareraFranceAnna Fali NEW
Juan W SlusarskiFranceAnna Fali UNQUALIFIED
Sinclair W RoysterCanadaXuxue Feng NEGOTIATION
Rodrigues S FigeroaCanadaAsiya Javayant NEW
Salvatore H KolmetzCanadaIoni Bowcher QUALIFIED
Munro F MarrierArgentinaStephen Shaw NEGOTIATION
Ivar W VenereArgentinaXuxue Feng NEGOTIATION
Deepesh G MarrierArgentinaIoni Bowcher UNQUALIFIED
Claire R OldroydFranceAsiya Javayant RENEWAL
Darci M BriddickCanadaOnyama Limba RENEWAL
Clifford W MarrierRussiaIoni Bowcher UNQUALIFIED
Rodrigues L CaudyRussiaBernardo Dominic UNQUALIFIED
Mayumi A WaycottGermanyIvan Magalhaes PROPOSAL
Julie N PaprockiCanadaXuxue Feng QUALIFIED
Mayumi V MacleadJapanAsiya Javayant RENEWAL
Deepesh D CampainUnited KingdomOnyama Limba NEGOTIATION
Juan C DarakjyBrazilStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy D VenereAustraliaAsiya Javayant NEW
Sinclair B FollerIndiaBernardo Dominic RENEWAL
Costa R MacleadUnited KingdomXuxue Feng RENEWAL
Julie R GillianItalyElwin Sharvill PROPOSAL
Nicolas C TollnerAustraliaBernardo Dominic UNQUALIFIED
Francesco B InouyeCanadaStephen Shaw NEGOTIATION
Jeanfrancois N MacleadJapanAnna Fali QUALIFIED
Darci B MaletItalyOnyama Limba RENEWAL
Julie B MaletFranceAsiya Javayant NEGOTIATION
Morrow K DarakjyCanadaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones N MaletGermany2025-05-18Dorl, James J Esq PROPOSAL62Ivan Magalhaes
1001Nicolas E FigeroaGermany2025-06-03Feiner Bros QUALIFIED31Amy Elsner
1002Aditya R BowleyJapan2025-05-20Rousseaux, Michael Esq PROPOSAL30Xuxue Feng
1003Wickens A FlosiItaly2025-05-24Feltz Printing Service NEGOTIATION90Xuxue Feng
1004Octavia T SergiBrazil2025-06-04Morlong Associates QUALIFIED42Ivan Magalhaes
1005Jeanfrancois W SaylorsIndia2025-05-18Truhlar And Truhlar Attys PROPOSAL75Stephen Shaw
1006Ashley Y MorascaAustralia2025-06-02Morlong Associates UNQUALIFIED1Onyama Limba
1007Nicolas Q FigeroaCanada2025-06-10Truhlar And Truhlar Attys QUALIFIED97Amy Elsner
1008Julie H RimArgentina2025-05-28Chemel, James L Cpa PROPOSAL39Amy Elsner
1009Leja I BriddickItaly2025-06-14Dorl, James J Esq UNQUALIFIED75Ioni Bowcher
1010Isabel R MaletIndia2025-05-31Truhlar And Truhlar Attys QUALIFIED56Onyama Limba
1011Ashley G CaldareraSpain2025-05-21Dorl, James J Esq RENEWAL84Anna Fali
1012Maisha M ButtFrance2025-05-30Rousseaux, Michael Esq NEGOTIATION85Amy Elsner
1013Emily K SaylorsJapan2025-05-29Dorl, James J Esq NEGOTIATION15Bernardo Dominic
1014Aika V SchemmerJapan2025-05-23Commercial Press NEGOTIATION24Xuxue Feng
1015Izzy S WieserGermany2025-05-24Feltz Printing Service RENEWAL35Onyama Limba
1016Wickens M FlosiGermany2025-05-19Buckley Miller Wright UNQUALIFIED9Elwin Sharvill
1017Maisha M AmigonBrazil2025-06-13Morlong Associates NEGOTIATION3Bernardo Dominic
1018Rodrigues D TollnerIndia2025-06-13Benton, John B Jr RENEWAL65Xuxue Feng
1019Clifford L MarrierJapan2025-06-15Chanay, Jeffrey A Esq RENEWAL10Elwin Sharvill
1020Izzy C NestleAustralia2025-06-08Printing Dimensions UNQUALIFIED70Stephen Shaw
1021Maria D FerenczArgentina2025-06-09Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1022Cody H WieserSpain2025-06-08Chanay, Jeffrey A Esq UNQUALIFIED4Stephen Shaw
1023Munro B RimArgentina2025-05-21Chapman, Ross E Esq NEW57Xuxue Feng
1024Stacey N InouyeJapan2025-06-02Morlong Associates UNQUALIFIED86Onyama Limba
1025Francesco C DarakjyRussia2025-05-25Rousseaux, Michael Esq NEW35Anna Fali
1026Leja O SaylorsSpain2025-05-28Dorl, James J Esq NEGOTIATION20Stephen Shaw
1027Kadeem P FerenczItaly2025-05-25Benton, John B Jr PROPOSAL43Ioni Bowcher
1028Mayumi P PoquetteArgentina2025-06-14Chapman, Ross E Esq QUALIFIED37Stephen Shaw
1029Emily O DoeIndia2025-06-16Buckley Miller Wright RENEWAL97Xuxue Feng
1030Jeanfrancois Z StensethCanada2025-06-13Rousseaux, Michael Esq RENEWAL86Xuxue Feng
1031Mayumi L MaletBrazil2025-06-05Chemel, James L Cpa PROPOSAL78Stephen Shaw
1032Costa G RimAustralia2025-05-18Buckley Miller Wright PROPOSAL3Bernardo Dominic
1033Jones Q WaycottGermany2025-06-01Truhlar And Truhlar Attys QUALIFIED20Anna Fali
1034Tony A IturbideFrance2025-06-08Chanay, Jeffrey A Esq QUALIFIED40Onyama Limba
1035Jefferson T GarufiBrazil2025-05-25Chapman, Ross E Esq QUALIFIED54Amy Elsner
1036Murillo G MorascaArgentina2025-05-18Rousseaux, Michael Esq NEW89Ioni Bowcher
1037Deepesh D WaycottRussia2025-05-22Benton, John B Jr UNQUALIFIED28Amy Elsner
1038Ivar J GillianFrance2025-06-16Truhlar And Truhlar Attys QUALIFIED96Anna Fali
1039Maisha P FollerFrance2025-06-01Chemel, James L Cpa UNQUALIFIED66Asiya Javayant
1040Stacey K VocelkaArgentina2025-05-27Truhlar And Truhlar Attys NEW57Xuxue Feng
1041Claire S BowleyArgentina2025-06-02Rangoni Of Florence RENEWAL55Anna Fali
1042Claire S IturbideAustralia2025-05-21Chemel, James L Cpa NEGOTIATION45Ioni Bowcher
1043Costa N BriddickCanada2025-05-24Morlong Associates UNQUALIFIED19Bernardo Dominic
1044Jones H RulapaughSpain2025-05-22Rangoni Of Florence QUALIFIED37Xuxue Feng
1045Salvatore X SaylorsUnited Kingdom2025-05-25Chapman, Ross E Esq UNQUALIFIED33Ivan Magalhaes
1046Francesco Z BriddickGermany2025-05-20Rangoni Of Florence NEW31Xuxue Feng
1047Salvatore E KuskoItaly2025-05-25Feiner Bros QUALIFIED55Anna Fali
1048Isabel U MacleadAustralia2025-06-05Chemel, James L Cpa NEW87Ioni Bowcher
1049Ricardo O GarufiJapan2025-05-27Feiner Bros QUALIFIED44Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford P SaylorsGermanyAmy Elsner NEW
Claire D MacleadUnited KingdomOnyama Limba NEGOTIATION
Tony B PaprockiJapanElwin Sharvill QUALIFIED
Stacey N VenereGermanyAsiya Javayant NEW
Faith D SaylorsJapanAsiya Javayant QUALIFIED
Chavez T MorascaAustraliaIvan Magalhaes NEGOTIATION
Francesco H RoysterJapanAsiya Javayant NEGOTIATION
Ricardo T OldroydJapanIoni Bowcher UNQUALIFIED
Jennifer U CaudyRussiaElwin Sharvill RENEWAL
Aruna B GillianRussiaAnna Fali QUALIFIED
Claire Q DilliardItalyBernardo Dominic QUALIFIED
Costa W SchemmerJapanStephen Shaw NEGOTIATION
Emily A SergiUnited KingdomAsiya Javayant UNQUALIFIED
David L CaudyGermanyXuxue Feng NEGOTIATION
Jennifer D BowleySpainOnyama Limba NEW
Silvio D NickaGermanyOnyama Limba UNQUALIFIED
Jennifer E FlosiGermanyBernardo Dominic QUALIFIED
Ricardo R PerinJapanBernardo Dominic NEW
Silvio W MacleadUnited KingdomIvan Magalhaes PROPOSAL
Sinclair Q FerenczArgentinaAsiya Javayant NEGOTIATION
Mujtaba E VenereCanadaIoni Bowcher NEGOTIATION
Claire Z NickaAustraliaBernardo Dominic RENEWAL
Aditya Q NickaArgentinaBernardo Dominic PROPOSAL
Isabel N KolmetzIndiaBernardo Dominic UNQUALIFIED
Greenwood Y CaldareraItalyBernardo Dominic NEGOTIATION
Deepesh G CampainFranceAnna Fali NEW
Jones V WaycottCanadaXuxue Feng PROPOSAL
Octavia G NickaJapanAsiya Javayant PROPOSAL
Maria J PoquetteItalyAmy Elsner NEGOTIATION
Kaitlin H AlbaresCanadaAnna Fali PROPOSAL
Sinclair L RoysterArgentinaOnyama Limba PROPOSAL
Rodrigues Y MarrierFranceAsiya Javayant RENEWAL
Kadeem R AmigonCanadaIvan Magalhaes QUALIFIED
Smith R WieserItalyXuxue Feng QUALIFIED
Alejandro Z WhobreyJapanAmy Elsner NEGOTIATION
Leon Q NestleRussiaBernardo Dominic RENEWAL
Misaki S DilliardArgentinaAmy Elsner QUALIFIED
Ricardo B FigeroaCanadaAsiya Javayant QUALIFIED
Salvatore I VenereIndiaAnna Fali QUALIFIED
Isabel I ChuiSpainIvan Magalhaes NEGOTIATION
Munro D PoquetteGermanyOnyama Limba QUALIFIED
Ricardo Z BologniaFranceIoni Bowcher NEW
Morrow E RulapaughSpainOnyama Limba RENEWAL
Ivar C MorascaCanadaOnyama Limba NEW
Sinclair B VocelkaGermanyAmy Elsner QUALIFIED
Kadeem E KolmetzUnited KingdomAsiya Javayant RENEWAL
James Z GauchoArgentinaIvan Magalhaes QUALIFIED
Arvin A VocelkaBrazilAmy Elsner NEW
Isabel T VocelkaSpainAnna Fali NEGOTIATION
Ricardo S GauchoJapanOnyama Limba NEGOTIATION
Frozen Columns
Name
Sinclair K Slusarski
Deepesh J Wieser
Kadeem G Butt
Alejandro F Doe
Ivar G Inouye
Jeanfrancois U Malet
Darci J Garufi
Wickens E Caudy
Ricardo O Iturbide
Misaki M Paprocki
Salvatore O Darakjy
James U Wieser
Munro I Waycott
Leja X Venere
Tony R Briddick
Salvatore V Marrier
Silvio R Malet
Isabel F Wieser
Aika V Dilliard
Izzy N Schemmer
Jeanfrancois Y Stockham
Wickens R Maclead
Leja V Figeroa
Emily R Poquette
Nicolas F Malet
Francesco J Morasca
Deepesh Z Paprocki
Isabel D Glick
Arvin K Iturbide
Nicolas J Stockham
Jones U Whobrey
Wickens E Albares
Maria U Malet
Antonio N Poquette
Aditya M Nestle
Mayumi T Glick
David N Marrier
Salvatore F Inouye
Isabel G Sergi
Chavez C Flosi
Jeanfrancois J Venere
Alejandro B Malet
Maria U Paprocki
Julie B Maclead
Antonio W Figeroa
Mayumi V Inouye
Sinclair U Darakjy
Cody W Kolmetz
Rodrigues K Glick
Wickens Y Rulapaugh
IdCountryDate
1000Australia2025-05-26
1001France2025-05-24
1002United Kingdom2025-05-20
1003India2025-06-15
1004Spain2025-05-30
1005Japan2025-06-07
1006United Kingdom2025-06-02
1007Russia2025-06-06
1008Argentina2025-05-24
1009Russia2025-06-09
1010India2025-05-25
1011Australia2025-05-19
1012Russia2025-05-24
1013Germany2025-06-01
1014Canada2025-05-19
1015France2025-05-29
1016Spain2025-05-24
1017Australia2025-06-09
1018Japan2025-06-06
1019France2025-05-24
1020Brazil2025-06-06
1021India2025-06-03
1022Russia2025-05-19
1023Brazil2025-05-28
1024Australia2025-05-30
1025Argentina2025-05-25
1026Argentina2025-05-28
1027Japan2025-06-01
1028Russia2025-06-08
1029Spain2025-05-21
1030Spain2025-05-18
1031Spain2025-05-29
1032India2025-05-18
1033India2025-05-18
1034Japan2025-06-10
1035Brazil2025-05-27
1036Russia2025-05-28
1037Australia2025-06-06
1038Brazil2025-05-20
1039Japan2025-06-09
1040Australia2025-05-30
1041Russia2025-05-21
1042India2025-06-01
1043France2025-05-24
1044Australia2025-05-29
1045Japan2025-05-23
1046Russia2025-06-08
1047India2025-06-03
1048Italy2025-05-18
1049France2025-06-01

On-Demand Data

NameIdCountryDate
Smith C Sergi1000Spain2025-05-27
Ricardo R Chui1001Japan2025-06-06
Maisha M Schemmer1002Argentina2025-06-04
Rodrigues Q Vocelka1003Argentina2025-06-09
Antonio M Schemmer1004Russia2025-05-18
Rodrigues S Oldroyd1005France2025-06-11
Aika N Sergi1006Germany2025-06-13
Isabel N Dilliard1007Spain2025-06-02
Murillo G Nestle1008France2025-05-25
Cody P Iturbide1009Germany2025-06-02
Mujtaba O Briddick1010Brazil2025-06-06
Isabel L Maclead1011Australia2025-05-29
Costa D Vocelka1012Australia2025-05-21
Maria I Kusko1013Argentina2025-05-18
Chavez J Rim1014Canada2025-05-19
Alejandro E Venere1015Russia2025-05-22
Costa O Nestle1016Argentina2025-06-09
Arvin R Bolognia1017Spain2025-06-01
Deepesh J Venere1018Brazil2025-05-28
Isabel S Butt1019Italy2025-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P BowleyArgentinaElwin Sharvill NEGOTIATION
Arvin Z SergiItalyElwin Sharvill NEW
Jennifer E KolmetzBrazilXuxue Feng RENEWAL
Cody S ButtSpainAnna Fali NEGOTIATION
Leon T DilliardJapanElwin Sharvill RENEWAL
Juan K BriddickBrazilAnna Fali UNQUALIFIED
Jeanfrancois P SchemmerJapanAsiya Javayant UNQUALIFIED
Nicolas D CampainIndiaOnyama Limba NEGOTIATION
Emily S FigeroaGermanyElwin Sharvill PROPOSAL
Francesco B BowleyRussiaIoni Bowcher PROPOSAL
Morrow F CampainGermanyElwin Sharvill NEGOTIATION
Kaitlin Z GlickFranceAmy Elsner NEGOTIATION
Jefferson Y SaylorsRussiaIvan Magalhaes NEGOTIATION
Kaitlin O BologniaIndiaAsiya Javayant NEGOTIATION
Tony W ShinkoBrazilAmy Elsner PROPOSAL
Emily O FerenczJapanIvan Magalhaes UNQUALIFIED
Wickens H KuskoFranceIoni Bowcher UNQUALIFIED
Sinclair K AmigonArgentinaIvan Magalhaes UNQUALIFIED
Arvin N DilliardJapanStephen Shaw NEGOTIATION
Maisha R MaletIndiaElwin Sharvill NEGOTIATION
James E FollerBrazilIoni Bowcher RENEWAL
Darci J SergiGermanyBernardo Dominic QUALIFIED
Leja F FigeroaRussiaAmy Elsner RENEWAL
James K GlickIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois K StensethArgentinaIoni Bowcher NEGOTIATION
Mayumi T PaprockiIndiaIvan Magalhaes RENEWAL
Salvatore K WhobreyArgentinaElwin Sharvill PROPOSAL
Greenwood X FollerAustraliaXuxue Feng NEW
Mayumi M PaprockiJapanStephen Shaw RENEWAL
Ricardo Y WaycottItalyAsiya Javayant QUALIFIED
Aika Q FerenczAustraliaOnyama Limba NEGOTIATION
Leon W DilliardSpainAnna Fali UNQUALIFIED
Wickens N DarakjyCanadaIoni Bowcher NEW
Alejandro B StensethFranceIoni Bowcher NEW
Francesco G StockhamFranceIoni Bowcher NEGOTIATION
Stacey K VocelkaIndiaElwin Sharvill NEW
Jeanfrancois V MacleadIndiaAsiya Javayant UNQUALIFIED
Nicolas B GarufiBrazilOnyama Limba PROPOSAL
Octavia G CampainJapanAmy Elsner QUALIFIED
Aruna L BriddickSpainIvan Magalhaes UNQUALIFIED

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