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
Leja E DarakjyRussiaAnna Fali NEW
David T NestleArgentinaElwin Sharvill RENEWAL
Claire W NestleIndiaElwin Sharvill RENEWAL
Arvin Y FollerSpainOnyama Limba QUALIFIED
Greenwood L KolmetzAustraliaXuxue Feng RENEWAL
Aruna Z VocelkaGermanyOnyama Limba NEW
Salvatore H BologniaArgentinaElwin Sharvill NEGOTIATION
Leon F GlickCanadaElwin Sharvill PROPOSAL
Clifford V SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Alejandro W PerinBrazilAmy Elsner PROPOSAL
Silvio Y GarufiGermanyXuxue Feng NEW
Rodrigues P WaycottRussiaXuxue Feng UNQUALIFIED
Munro V IturbideIndiaAmy Elsner NEGOTIATION
Jones N PaprockiRussiaAnna Fali NEW
Cody Q DoeSpainStephen Shaw NEGOTIATION
Cody J ShinkoIndiaElwin Sharvill NEW
Greenwood R DilliardCanadaStephen Shaw QUALIFIED
Greenwood E MorascaGermanyAmy Elsner UNQUALIFIED
Octavia P CaudyCanadaAnna Fali RENEWAL
Salvatore T BriddickBrazilOnyama Limba NEW
James M DilliardArgentinaAsiya Javayant NEGOTIATION
Rodrigues N CampainAustraliaIoni Bowcher NEW
Darci D GauchoUnited KingdomBernardo Dominic NEGOTIATION
Murillo I CampainFranceOnyama Limba RENEWAL
Maria H NestleItalyBernardo Dominic PROPOSAL
Octavia R InouyeItalyOnyama Limba RENEWAL
Juan L RimRussiaAmy Elsner RENEWAL
Kadeem R ButtCanadaXuxue Feng NEGOTIATION
Claire J BriddickFranceIvan Magalhaes QUALIFIED
Johnson W GlickSpainXuxue Feng PROPOSAL
Rodrigues B CaudyArgentinaOnyama Limba NEGOTIATION
Octavia C GillianFranceOnyama Limba UNQUALIFIED
Mayumi G AmigonItalyIoni Bowcher UNQUALIFIED
Leon W GlickAustraliaBernardo Dominic NEGOTIATION
Ivar F OstroskyGermanyIvan Magalhaes RENEWAL
Jones Y AlbaresJapanElwin Sharvill RENEWAL
Darci A WieserArgentinaAmy Elsner QUALIFIED
Jefferson L MarrierArgentinaStephen Shaw QUALIFIED
Salvatore N ButtFranceIoni Bowcher QUALIFIED
Kadeem Y ChuiJapanXuxue Feng PROPOSAL
Alejandro D PoquetteFranceElwin Sharvill UNQUALIFIED
Octavia P RulapaughIndiaIoni Bowcher NEW
James T BowleyUnited KingdomAnna Fali UNQUALIFIED
Claire G MarrierRussiaElwin Sharvill UNQUALIFIED
Izzy M OstroskyGermanyAmy Elsner NEGOTIATION
Aditya W AlbaresGermanyAnna Fali QUALIFIED
Octavia I SlusarskiBrazilAnna Fali UNQUALIFIED
Isabel U ChuiAustraliaOnyama Limba NEW
Costa A StockhamCanadaStephen Shaw UNQUALIFIED
Francesco S OldroydAustraliaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie Z MorascaBrazilIoni Bowcher UNQUALIFIED
Darci G SergiFranceAmy Elsner QUALIFIED
Chavez E OstroskyRussiaBernardo Dominic NEW
Aruna Q WieserIndiaIvan Magalhaes UNQUALIFIED
Morrow T DoeAustraliaAnna Fali NEW
Silvio O SchemmerAustraliaOnyama Limba RENEWAL
Claire U ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Ivar F SchemmerCanadaIoni Bowcher PROPOSAL
Rodrigues W StockhamFranceStephen Shaw NEGOTIATION
Aditya K OldroydUnited KingdomStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco J CaudySpain2026-07-15Rangoni Of Florence UNQUALIFIED19Xuxue Feng
1001Aika M FlosiFrance2026-07-25Buckley Miller Wright NEW55Amy Elsner
1002Misaki Y FollerBrazil2026-08-01Rangoni Of Florence PROPOSAL31Stephen Shaw
1003Ricardo C RoysterUnited Kingdom2026-07-27Rousseaux, Michael Esq PROPOSAL3Ioni Bowcher
1004Ivar U VenereUnited Kingdom2026-07-24Benton, John B Jr RENEWAL10Bernardo Dominic
1005Octavia V IturbideRussia2026-07-28Morlong Associates UNQUALIFIED92Bernardo Dominic
1006Jefferson T MarrierCanada2026-07-17King, Christopher A Esq PROPOSAL15Stephen Shaw
1007Jeanfrancois G StensethBrazil2026-07-17Feiner Bros NEW44Asiya Javayant
1008Leja L MaletIndia2026-08-08Chanay, Jeffrey A Esq PROPOSAL30Ioni Bowcher
1009Wickens N GillianIndia2026-07-18King, Christopher A Esq RENEWAL10Onyama Limba
1010Alejandro D GlickGermany2026-08-02Morlong Associates NEGOTIATION95Asiya Javayant
1011Kadeem E BologniaAustralia2026-07-23Feltz Printing Service UNQUALIFIED44Stephen Shaw
1012Jones Y StensethJapan2026-07-13Buckley Miller Wright RENEWAL4Xuxue Feng
1013Emily R SlusarskiUnited Kingdom2026-07-18King, Christopher A Esq QUALIFIED83Elwin Sharvill
1014Claire J AlbaresFrance2026-07-16Chapman, Ross E Esq NEW64Amy Elsner
1015Chavez U KuskoBrazil2026-07-23Printing Dimensions QUALIFIED46Ivan Magalhaes
1016Aika I BowleyRussia2026-08-02King, Christopher A Esq NEGOTIATION16Asiya Javayant
1017Maria M RulapaughBrazil2026-07-28Buckley Miller Wright NEGOTIATION95Stephen Shaw
1018Mayumi C SchemmerItaly2026-07-16Rangoni Of Florence UNQUALIFIED4Ivan Magalhaes
1019Antonio M RoysterJapan2026-07-15Benton, John B Jr PROPOSAL70Onyama Limba
1020Nicolas G WieserFrance2026-08-10Dorl, James J Esq RENEWAL47Amy Elsner
1021Antonio J WhobreySpain2026-07-26Buckley Miller Wright RENEWAL14Bernardo Dominic
1022Tony S GillianIndia2026-08-10Dorl, James J Esq UNQUALIFIED81Stephen Shaw
1023Deepesh D WhobreyUnited Kingdom2026-07-17Commercial Press UNQUALIFIED1Amy Elsner
1024Maria J WaycottArgentina2026-07-24Printing Dimensions UNQUALIFIED96Bernardo Dominic
1025Costa R GarufiArgentina2026-08-06Benton, John B Jr RENEWAL57Amy Elsner
1026Chavez M RutaAustralia2026-08-01Truhlar And Truhlar Attys QUALIFIED46Onyama Limba
1027Chavez T WaycottArgentina2026-07-18King, Christopher A Esq PROPOSAL20Anna Fali
1028Leja C RutaBrazil2026-07-12Buckley Miller Wright NEW64Amy Elsner
1029Faith O FigeroaGermany2026-07-29Morlong Associates PROPOSAL35Amy Elsner
1030Julie P ButtItaly2026-08-04Rangoni Of Florence NEGOTIATION4Elwin Sharvill
1031Adams U CaudyGermany2026-07-23Chapman, Ross E Esq RENEWAL52Amy Elsner
1032Leja K WieserGermany2026-07-22Feltz Printing Service PROPOSAL86Stephen Shaw
1033Johnson P SlusarskiIndia2026-08-06Truhlar And Truhlar Attys NEGOTIATION12Ioni Bowcher
1034Nicolas O StensethAustralia2026-07-20Feiner Bros UNQUALIFIED38Amy Elsner
1035Mayumi C ButtGermany2026-07-16Rousseaux, Michael Esq PROPOSAL78Anna Fali
1036Misaki S IturbideJapan2026-07-20Printing Dimensions NEW38Stephen Shaw
1037Arvin Y DoeFrance2026-07-29Rangoni Of Florence PROPOSAL55Asiya Javayant
1038Ashley D CampainBrazil2026-07-20King, Christopher A Esq RENEWAL44Anna Fali
1039Leja G BriddickCanada2026-08-05Chapman, Ross E Esq QUALIFIED75Onyama Limba
1040Silvio P KolmetzArgentina2026-07-12Feiner Bros NEW62Amy Elsner
1041Johnson C CaudyIndia2026-08-01Buckley Miller Wright NEGOTIATION47Asiya Javayant
1042David O WaycottBrazil2026-07-30Chanay, Jeffrey A Esq NEW70Elwin Sharvill
1043Leja J ButtAustralia2026-07-16Benton, John B Jr NEW65Ioni Bowcher
1044Rodrigues V GauchoArgentina2026-07-19Feiner Bros QUALIFIED10Asiya Javayant
1045Leja P RoysterUnited Kingdom2026-07-29Chemel, James L Cpa NEW55Onyama Limba
1046Morrow Y MarrierFrance2026-07-18Morlong Associates QUALIFIED49Onyama Limba
1047Kaitlin B IturbideUnited Kingdom2026-07-31Printing Dimensions UNQUALIFIED25Bernardo Dominic
1048Wickens A GlickBrazil2026-07-25Rangoni Of Florence UNQUALIFIED27Stephen Shaw
1049Morrow D DilliardAustralia2026-07-21Morlong Associates UNQUALIFIED94Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues R PerinGermanyXuxue Feng NEGOTIATION
Alejandro O BriddickRussiaElwin Sharvill RENEWAL
Clifford D NestleUnited KingdomAnna Fali UNQUALIFIED
Cody K MaletBrazilAsiya Javayant NEGOTIATION
Wickens Q MorascaUnited KingdomAnna Fali QUALIFIED
Munro G SaylorsFranceBernardo Dominic NEW
Salvatore X NestleJapanStephen Shaw NEGOTIATION
James P PerinSpainAmy Elsner UNQUALIFIED
Jeanfrancois W FlosiIndiaXuxue Feng RENEWAL
Mujtaba P RoysterArgentinaOnyama Limba UNQUALIFIED
Jones Z CaldareraRussiaStephen Shaw NEGOTIATION
Cody S PoquetteSpainOnyama Limba RENEWAL
Juan J WieserArgentinaOnyama Limba NEGOTIATION
Faith J StensethArgentinaIoni Bowcher UNQUALIFIED
Arvin Y AlbaresIndiaOnyama Limba NEGOTIATION
Morrow B AmigonAustraliaAmy Elsner QUALIFIED
Ashley D RimJapanIvan Magalhaes UNQUALIFIED
Kaitlin W SchemmerSpainAnna Fali RENEWAL
Tony S BowleyJapanStephen Shaw QUALIFIED
Julie L PoquetteJapanStephen Shaw NEW
Sinclair Y SaylorsAustraliaElwin Sharvill QUALIFIED
Juan N InouyeBrazilOnyama Limba NEW
Claire O InouyeGermanyIoni Bowcher RENEWAL
Aditya Q FollerIndiaIoni Bowcher QUALIFIED
Mayumi E SlusarskiItalyIoni Bowcher NEW
Jones I TollnerRussiaStephen Shaw RENEWAL
David V CaldareraGermanyIoni Bowcher RENEWAL
Johnson X MaletItalyBernardo Dominic RENEWAL
James U ShinkoBrazilIvan Magalhaes PROPOSAL
Johnson W FlosiUnited KingdomElwin Sharvill NEW
Maria Q ShinkoArgentinaIoni Bowcher RENEWAL
Tony G BologniaRussiaIoni Bowcher RENEWAL
Aditya S CaudySpainIoni Bowcher RENEWAL
Jones B RimBrazilAnna Fali UNQUALIFIED
Murillo X ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro E OldroydSpainIvan Magalhaes RENEWAL
Kaitlin R FollerRussiaXuxue Feng UNQUALIFIED
James K IturbideSpainElwin Sharvill NEW
Tony K BologniaUnited KingdomAnna Fali NEW
Isabel K MarrierIndiaElwin Sharvill QUALIFIED
Mayumi A AlbaresIndiaXuxue Feng PROPOSAL
Kadeem A OstroskyBrazilAnna Fali PROPOSAL
Kadeem D ChuiAustraliaOnyama Limba UNQUALIFIED
Munro X IturbideGermanyIoni Bowcher QUALIFIED
Isabel T AlbaresCanadaElwin Sharvill UNQUALIFIED
Faith E TollnerCanadaIoni Bowcher UNQUALIFIED
Clifford L SergiFranceAsiya Javayant PROPOSAL
Mayumi F RulapaughUnited KingdomAsiya Javayant NEW
Maria S SlusarskiGermanyAmy Elsner RENEWAL
Maria A NickaCanadaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Aruna V Gaucho
Nicolas C Kolmetz
Maisha S Marrier
Darci V Ferencz
Leon U Kolmetz
Murillo H Nestle
Julie J Stenseth
Juan V Stockham
Maisha O Albares
Leja C Briddick
Maria W Amigon
Sinclair G Stenseth
Wickens Z Poquette
Isabel F Bowley
Francesco G Rim
Silvio F Waycott
Francesco N Ferencz
Kaitlin L Chui
Darci G Royster
Mayumi B Nestle
Aditya Y Sergi
Wickens M Ostrosky
Aditya F Vocelka
Morrow Y Kolmetz
Clifford M Vocelka
Cody D Foller
Juan T Garufi
Salvatore E Ferencz
Morrow Y Rulapaugh
Leon I Glick
Faith U Gillian
Juan J Kusko
Ricardo T Poquette
Munro M Butt
James Z Venere
Mujtaba E Morasca
Alejandro T Ostrosky
Antonio N Amigon
Clifford K Slusarski
Mujtaba R Maclead
Faith W Bolognia
Alejandro J Stenseth
Smith H Marrier
James L Kusko
Tony K Saylors
Morrow H Gillian
Jefferson F Ostrosky
Cody V Ruta
Morrow T Kolmetz
Emily I Gillian
IdCountryDate
1000Italy2026-08-02
1001India2026-08-07
1002Russia2026-08-02
1003India2026-08-09
1004Italy2026-08-10
1005Brazil2026-07-30
1006India2026-07-21
1007Russia2026-07-20
1008India2026-08-04
1009Russia2026-08-06
1010Russia2026-07-24
1011Japan2026-07-20
1012Italy2026-08-03
1013Italy2026-07-28
1014Spain2026-07-21
1015Australia2026-08-09
1016France2026-08-04
1017Italy2026-08-01
1018Japan2026-08-01
1019United Kingdom2026-07-19
1020Italy2026-07-24
1021India2026-07-18
1022Italy2026-08-02
1023Japan2026-08-07
1024France2026-07-20
1025United Kingdom2026-07-21
1026France2026-08-06
1027Germany2026-07-30
1028Spain2026-07-26
1029Australia2026-07-20
1030Italy2026-07-26
1031Australia2026-07-13
1032India2026-07-12
1033Argentina2026-07-20
1034Argentina2026-07-30
1035Spain2026-07-19
1036Germany2026-07-28
1037India2026-08-02
1038Germany2026-07-23
1039Brazil2026-07-18
1040India2026-08-09
1041France2026-08-06
1042France2026-07-20
1043Japan2026-07-20
1044Argentina2026-07-29
1045United Kingdom2026-08-10
1046Italy2026-07-20
1047India2026-07-18
1048United Kingdom2026-08-01
1049Brazil2026-07-19

On-Demand Data

NameIdCountryDate
Faith Q Foller1000Australia2026-08-09
Sinclair L Bolognia1001Japan2026-07-20
Isabel E Nicka1002Argentina2026-07-19
Julie Y Doe1003Italy2026-08-08
Misaki F Shinko1004France2026-08-10
Adams U Garufi1005United Kingdom2026-07-12
Stacey J Caldarera1006Australia2026-07-21
Faith X Figeroa1007Brazil2026-07-21
Ivar E Perin1008Argentina2026-07-31
Johnson F Nicka1009Russia2026-07-23
Ricardo Q Perin1010Spain2026-07-24
Greenwood O Albares1011Spain2026-08-02
Francesco V Schemmer1012United Kingdom2026-07-30
Jefferson N Slusarski1013Argentina2026-07-26
Aditya G Poquette1014Germany2026-08-08
Kaitlin J Ruta1015Canada2026-07-24
Silvio Q Paprocki1016Spain2026-08-06
Ricardo D Doe1017Germany2026-07-17
Clifford K Marrier1018Japan2026-08-06
Nicolas L Vocelka1019Brazil2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin H IturbideItalyAnna Fali UNQUALIFIED
Ivar E PaprockiIndiaBernardo Dominic UNQUALIFIED
Isabel M GlickGermanyOnyama Limba QUALIFIED
Darci W DarakjyAustraliaAnna Fali UNQUALIFIED
Jones F ShinkoUnited KingdomIoni Bowcher PROPOSAL
Darci Z MacleadBrazilIvan Magalhaes RENEWAL
Adams E SchemmerCanadaIoni Bowcher UNQUALIFIED
Jennifer Q FlosiArgentinaBernardo Dominic NEGOTIATION
Murillo W BriddickSpainOnyama Limba UNQUALIFIED
Kadeem M WaycottIndiaAnna Fali RENEWAL
Johnson G OldroydUnited KingdomAnna Fali QUALIFIED
Octavia J BologniaUnited KingdomStephen Shaw RENEWAL
Deepesh S RimBrazilOnyama Limba NEGOTIATION
Misaki K SaylorsSpainXuxue Feng RENEWAL
Aditya R OldroydSpainIvan Magalhaes UNQUALIFIED
Munro S MaletJapanIvan Magalhaes NEGOTIATION
Darci Y GauchoItalyIoni Bowcher QUALIFIED
Mayumi L RimArgentinaAmy Elsner NEW
Morrow C StensethGermanyAsiya Javayant PROPOSAL
Izzy K VocelkaGermanyIoni Bowcher RENEWAL
Alejandro C SaylorsIndiaIoni Bowcher UNQUALIFIED
Arvin O MacleadGermanyAsiya Javayant NEW
Aditya X PaprockiArgentinaAsiya Javayant QUALIFIED
Clifford Y GarufiGermanyElwin Sharvill UNQUALIFIED
Isabel G GillianCanadaIoni Bowcher PROPOSAL
Ivar X AlbaresCanadaAnna Fali RENEWAL
Stacey U FlosiJapanAsiya Javayant RENEWAL
Stacey I ButtArgentinaOnyama Limba NEGOTIATION
Jeanfrancois D GlickFranceOnyama Limba RENEWAL
Octavia F SchemmerFranceAsiya Javayant RENEWAL
Nicolas C MaletIndiaXuxue Feng NEW
Faith T OstroskyBrazilStephen Shaw UNQUALIFIED
Isabel Y StensethUnited KingdomXuxue Feng QUALIFIED
Claire A ShinkoJapanAnna Fali UNQUALIFIED
Sinclair D WhobreyRussiaIoni Bowcher NEW
Costa G GauchoIndiaOnyama Limba NEW
James J RulapaughUnited KingdomOnyama Limba RENEWAL
Arvin O GillianIndiaStephen Shaw NEW
Mayumi E SlusarskiItalyXuxue Feng NEW
Costa W KuskoBrazilOnyama Limba 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>