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 V DoeFranceXuxue Feng NEW
Francesco Q FerenczUnited KingdomStephen Shaw NEGOTIATION
Adams R PaprockiFranceStephen Shaw PROPOSAL
Greenwood E StockhamItalyAsiya Javayant RENEWAL
Rodrigues P StockhamUnited KingdomStephen Shaw NEW
Stacey J VocelkaAustraliaElwin Sharvill RENEWAL
Emily X FerenczIndiaIvan Magalhaes RENEWAL
Tony G AmigonCanadaBernardo Dominic NEGOTIATION
Isabel A OstroskyIndiaAsiya Javayant RENEWAL
Maria J ChuiRussiaAnna Fali PROPOSAL
Darci R DarakjyAustraliaStephen Shaw UNQUALIFIED
Leja P WieserFranceAsiya Javayant QUALIFIED
Wickens H MarrierArgentinaStephen Shaw NEW
Adams F RutaRussiaOnyama Limba RENEWAL
Smith T GauchoIndiaStephen Shaw UNQUALIFIED
Arvin H StensethRussiaAnna Fali PROPOSAL
Izzy C RutaIndiaIvan Magalhaes NEW
Adams S ChuiGermanyIvan Magalhaes RENEWAL
Jefferson L ButtIndiaElwin Sharvill UNQUALIFIED
Deepesh F FerenczSpainAsiya Javayant QUALIFIED
Sinclair R RimGermanyElwin Sharvill NEW
Morrow P GillianUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore E DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues F MacleadIndiaAsiya Javayant RENEWAL
Cody D NickaItalyElwin Sharvill UNQUALIFIED
Alejandro P SaylorsAustraliaXuxue Feng QUALIFIED
Mujtaba X FollerArgentinaXuxue Feng PROPOSAL
Adams D WhobreySpainAnna Fali RENEWAL
Octavia G RutaGermanyAmy Elsner UNQUALIFIED
Aika W StensethCanadaElwin Sharvill PROPOSAL
Clifford Q ChuiUnited KingdomAsiya Javayant NEGOTIATION
Munro M AmigonRussiaOnyama Limba NEGOTIATION
Darci F PoquetteIndiaElwin Sharvill NEW
Ashley E ButtUnited KingdomAnna Fali UNQUALIFIED
Kaitlin G KuskoAustraliaIvan Magalhaes NEGOTIATION
Rodrigues F ButtSpainStephen Shaw NEGOTIATION
Costa X BriddickAustraliaAmy Elsner NEW
Isabel G MorascaAustraliaElwin Sharvill QUALIFIED
Kadeem Q NickaAustraliaAnna Fali NEGOTIATION
Jennifer I NickaItalyAnna Fali PROPOSAL
Sinclair F FollerUnited KingdomAnna Fali NEW
Adams Z StensethBrazilAmy Elsner QUALIFIED
Johnson A VenereJapanIvan Magalhaes QUALIFIED
Ivar X TollnerSpainXuxue Feng QUALIFIED
Wickens O AmigonFranceIvan Magalhaes QUALIFIED
Munro Z MorascaUnited KingdomIoni Bowcher RENEWAL
Murillo E GauchoFranceOnyama Limba NEW
Jefferson M RimRussiaAmy Elsner NEW
Murillo V DilliardBrazilAsiya Javayant RENEWAL
Arvin U SergiJapanAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Isabel N BriddickFranceAnna Fali NEW
Julie W MarrierSpainXuxue Feng PROPOSAL
Leon H FigeroaFranceStephen Shaw NEW
Aika K BriddickItalyElwin Sharvill NEW
James P CaudyArgentinaAmy Elsner NEGOTIATION
Johnson L CaudyGermanyXuxue Feng UNQUALIFIED
Deepesh X ShinkoBrazilIoni Bowcher UNQUALIFIED
Smith V CampainGermanyAnna Fali NEGOTIATION
Smith R ShinkoAustraliaIvan Magalhaes NEW
Deepesh I NestleFranceXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith G BriddickIndia2026-07-19Rangoni Of Florence QUALIFIED77Ioni Bowcher
1001Mujtaba C VocelkaGermany2026-07-22Benton, John B Jr QUALIFIED81Anna Fali
1002Ricardo U MarrierItaly2026-07-17Dorl, James J Esq RENEWAL70Stephen Shaw
1003Tony W RulapaughFrance2026-07-21Chapman, Ross E Esq NEW35Amy Elsner
1004Salvatore M PoquetteGermany2026-07-15Chemel, James L Cpa PROPOSAL44Onyama Limba
1005Munro F RutaIndia2026-07-03Rousseaux, Michael Esq PROPOSAL36Ioni Bowcher
1006Claire A DoeRussia2026-07-15Rangoni Of Florence RENEWAL70Amy Elsner
1007Darci X RulapaughGermany2026-06-25Feltz Printing Service NEGOTIATION51Anna Fali
1008Misaki Q SaylorsUnited Kingdom2026-06-25King, Christopher A Esq NEGOTIATION21Asiya Javayant
1009Mujtaba V OldroydArgentina2026-06-26Chemel, James L Cpa RENEWAL26Ivan Magalhaes
1010Wickens D DarakjyCanada2026-07-03Feltz Printing Service NEGOTIATION7Ioni Bowcher
1011Deepesh X ShinkoItaly2026-06-23Dorl, James J Esq NEGOTIATION9Bernardo Dominic
1012Johnson B MorascaArgentina2026-07-03Chemel, James L Cpa NEW46Bernardo Dominic
1013Jeanfrancois I BologniaJapan2026-07-19Chemel, James L Cpa NEW86Ioni Bowcher
1014Tony I GarufiArgentina2026-06-29Rousseaux, Michael Esq UNQUALIFIED43Amy Elsner
1015Jennifer I CaudyJapan2026-07-12Rangoni Of Florence UNQUALIFIED57Onyama Limba
1016Kadeem N NickaUnited Kingdom2026-06-24Rousseaux, Michael Esq UNQUALIFIED0Onyama Limba
1017Claire L KolmetzItaly2026-07-02Buckley Miller Wright QUALIFIED62Asiya Javayant
1018Francesco R IturbideAustralia2026-07-17Commercial Press NEW62Onyama Limba
1019Leja Q ButtSpain2026-07-14Morlong Associates QUALIFIED9Anna Fali
1020Darci N SlusarskiFrance2026-07-17Feltz Printing Service RENEWAL90Stephen Shaw
1021David Z ChuiAustralia2026-07-13Morlong Associates RENEWAL4Xuxue Feng
1022Wickens U DoeUnited Kingdom2026-07-04King, Christopher A Esq RENEWAL81Ivan Magalhaes
1023Misaki S CampainUnited Kingdom2026-07-14Chapman, Ross E Esq RENEWAL6Amy Elsner
1024Arvin R SergiGermany2026-07-11Chemel, James L Cpa NEGOTIATION41Elwin Sharvill
1025Stacey Q GillianGermany2026-06-29Printing Dimensions PROPOSAL28Ivan Magalhaes
1026Johnson J WhobreyAustralia2026-07-04King, Christopher A Esq NEW3Bernardo Dominic
1027Alejandro Q WhobreyRussia2026-06-23Chapman, Ross E Esq RENEWAL53Ioni Bowcher
1028Salvatore O GlickFrance2026-07-07Truhlar And Truhlar Attys NEGOTIATION98Xuxue Feng
1029Leon W NickaIndia2026-07-08Buckley Miller Wright UNQUALIFIED81Ioni Bowcher
1030Aruna C CampainArgentina2026-07-12Benton, John B Jr NEW49Bernardo Dominic
1031Cody P WieserSpain2026-07-01Feltz Printing Service NEW5Amy Elsner
1032Leon Z OldroydIndia2026-07-16Chemel, James L Cpa NEGOTIATION8Elwin Sharvill
1033Arvin Y TollnerRussia2026-07-06Commercial Press RENEWAL54Onyama Limba
1034Nicolas V KuskoRussia2026-06-23Benton, John B Jr NEW1Asiya Javayant
1035Silvio F FlosiBrazil2026-07-03Printing Dimensions RENEWAL91Asiya Javayant
1036Jefferson Q KuskoUnited Kingdom2026-07-01Rangoni Of Florence PROPOSAL90Xuxue Feng
1037Maria P TollnerArgentina2026-07-12Buckley Miller Wright QUALIFIED92Ioni Bowcher
1038Izzy Q SlusarskiAustralia2026-07-19Benton, John B Jr NEW75Bernardo Dominic
1039Jennifer Z BowleyGermany2026-06-26Chemel, James L Cpa PROPOSAL23Ioni Bowcher
1040Octavia B BowleyUnited Kingdom2026-07-19Buckley Miller Wright NEW90Xuxue Feng
1041Leon S GauchoArgentina2026-06-27Benton, John B Jr RENEWAL40Onyama Limba
1042Clifford L GlickCanada2026-07-11Chapman, Ross E Esq NEW20Ioni Bowcher
1043Aditya H StensethJapan2026-07-21Printing Dimensions NEW69Elwin Sharvill
1044Izzy K VenereJapan2026-07-01Feltz Printing Service NEW95Stephen Shaw
1045Stacey H ChuiIndia2026-06-29Rousseaux, Michael Esq NEGOTIATION83Xuxue Feng
1046Chavez K ShinkoUnited Kingdom2026-07-22Printing Dimensions PROPOSAL40Ivan Magalhaes
1047Smith N FigeroaAustralia2026-06-23Buckley Miller Wright QUALIFIED15Ivan Magalhaes
1048Jefferson W FollerArgentina2026-07-07Printing Dimensions RENEWAL59Elwin Sharvill
1049Jefferson D DarakjyAustralia2026-07-10Benton, John B Jr PROPOSAL62Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues J FigeroaFranceAnna Fali PROPOSAL
Kaitlin Z CaudyArgentinaBernardo Dominic QUALIFIED
Mujtaba E ButtArgentinaElwin Sharvill QUALIFIED
Ricardo Z OstroskyIndiaElwin Sharvill NEW
Kadeem W KolmetzCanadaIvan Magalhaes NEW
Silvio A BologniaAustraliaAnna Fali QUALIFIED
Mujtaba A TollnerCanadaIvan Magalhaes PROPOSAL
Isabel U RoysterGermanyElwin Sharvill NEW
Jones C ChuiAustraliaXuxue Feng UNQUALIFIED
Smith L BriddickFranceOnyama Limba RENEWAL
Greenwood H FollerUnited KingdomIoni Bowcher PROPOSAL
Morrow O KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Aika A CaldareraRussiaIvan Magalhaes QUALIFIED
Aika N InouyeGermanyOnyama Limba QUALIFIED
Nicolas Q StensethBrazilAmy Elsner PROPOSAL
Jennifer T RoysterItalyAmy Elsner QUALIFIED
Chavez B PerinFranceElwin Sharvill RENEWAL
Ricardo P TollnerCanadaBernardo Dominic QUALIFIED
Juan E AmigonArgentinaBernardo Dominic UNQUALIFIED
Deepesh S GlickSpainAsiya Javayant QUALIFIED
Aruna G NestleJapanStephen Shaw QUALIFIED
Murillo I KolmetzBrazilXuxue Feng PROPOSAL
Leja S SaylorsAustraliaAnna Fali UNQUALIFIED
Mujtaba O VenereGermanyAsiya Javayant UNQUALIFIED
James O DilliardGermanyStephen Shaw UNQUALIFIED
Faith R AmigonItalyXuxue Feng NEGOTIATION
Leon I BowleyCanadaAsiya Javayant QUALIFIED
Smith N FigeroaAustraliaStephen Shaw PROPOSAL
Jones Z OstroskyFranceAnna Fali PROPOSAL
Kadeem V SchemmerFranceIvan Magalhaes QUALIFIED
Emily G CampainJapanIoni Bowcher QUALIFIED
Johnson X OldroydCanadaElwin Sharvill UNQUALIFIED
Kadeem O ChuiRussiaAnna Fali PROPOSAL
Alejandro L ChuiSpainAnna Fali UNQUALIFIED
Misaki S AmigonItalyIoni Bowcher QUALIFIED
Claire C IturbideFranceIoni Bowcher NEGOTIATION
Stacey T VenereArgentinaOnyama Limba NEW
Julie V IturbideArgentinaAnna Fali UNQUALIFIED
Leon R FollerItalyStephen Shaw NEW
Ricardo W GlickCanadaXuxue Feng NEW
Ivar N NestleFranceAsiya Javayant RENEWAL
Johnson K GlickArgentinaAnna Fali NEGOTIATION
Juan K DilliardRussiaAmy Elsner QUALIFIED
Misaki D PoquetteItalyAsiya Javayant RENEWAL
Cody K PoquetteSpainAnna Fali NEGOTIATION
Johnson L FigeroaRussiaElwin Sharvill NEGOTIATION
David X StensethFranceXuxue Feng QUALIFIED
Darci H WieserBrazilOnyama Limba QUALIFIED
Adams A DoeRussiaXuxue Feng UNQUALIFIED
Silvio T CaudyUnited KingdomOnyama Limba NEW
Frozen Columns
Name
Kaitlin S Poquette
Jennifer T Kusko
Julie T Vocelka
Johnson Z Amigon
Francesco W Saylors
Antonio G Shinko
David O Ruta
Nicolas Q Gaucho
Jennifer H Caudy
Emily A Darakjy
Chavez V Campain
Faith L Flosi
Misaki T Darakjy
Nicolas C Oldroyd
Izzy I Caudy
Isabel E Caudy
Morrow D Maclead
Octavia B Rim
Deepesh R Wieser
Maria P Inouye
Nicolas C Briddick
Greenwood C Perin
Aika R Darakjy
Aditya D Stenseth
Faith K Rim
Isabel S Butt
Greenwood J Whobrey
Leja F Caudy
David Q Malet
Wickens E Nestle
Jones E Wieser
Stacey Q Paprocki
Isabel P Marrier
Munro A Slusarski
Morrow W Royster
Munro D Doe
Mujtaba P Ruta
Salvatore P Caudy
David F Campain
Aruna Q Shinko
Adams S Schemmer
Claire Q Albares
Leon F Slusarski
Morrow I Caudy
Jennifer D Tollner
Claire F Venere
Sinclair H Perin
Adams S Poquette
Julie U Schemmer
Faith G Schemmer
IdCountryDate
1000Japan2026-07-20
1001Italy2026-06-24
1002France2026-07-18
1003Italy2026-07-21
1004France2026-07-18
1005Germany2026-07-10
1006Italy2026-07-05
1007Argentina2026-07-08
1008Germany2026-07-08
1009Australia2026-06-30
1010Italy2026-06-27
1011Italy2026-06-24
1012Argentina2026-06-27
1013Italy2026-07-08
1014United Kingdom2026-07-11
1015Russia2026-06-24
1016United Kingdom2026-07-14
1017Japan2026-07-04
1018Japan2026-07-06
1019Italy2026-06-25
1020Canada2026-07-17
1021India2026-07-04
1022Argentina2026-06-23
1023Spain2026-07-18
1024Russia2026-06-26
1025Russia2026-07-02
1026Germany2026-06-25
1027Germany2026-07-04
1028India2026-07-12
1029Germany2026-07-18
1030Australia2026-07-04
1031Germany2026-07-17
1032Japan2026-07-09
1033France2026-06-30
1034Brazil2026-06-25
1035Spain2026-07-14
1036United Kingdom2026-07-17
1037Brazil2026-07-18
1038Argentina2026-07-11
1039France2026-07-16
1040United Kingdom2026-07-12
1041Japan2026-06-27
1042United Kingdom2026-07-21
1043France2026-07-22
1044United Kingdom2026-07-09
1045Spain2026-07-01
1046Germany2026-06-28
1047Argentina2026-07-21
1048Russia2026-07-11
1049India2026-07-01

On-Demand Data

NameIdCountryDate
Deepesh K Iturbide1000Germany2026-07-13
Johnson P Whobrey1001Argentina2026-07-12
Munro J Garufi1002Germany2026-07-17
Izzy Y Stenseth1003Germany2026-07-01
Jefferson W Kolmetz1004Spain2026-06-30
Kadeem Y Bowley1005India2026-06-29
Mujtaba O Glick1006Russia2026-07-11
Murillo M Nestle1007Germany2026-07-08
Clifford W Stenseth1008Germany2026-07-10
Jeanfrancois M Perin1009Brazil2026-07-22
Aika M Chui1010United Kingdom2026-07-08
Mayumi Y Ferencz1011India2026-07-05
Kaitlin M Foller1012Russia2026-07-06
Aditya K Foller1013Germany2026-07-11
Leon R Morasca1014Spain2026-06-24
Murillo G Caldarera1015Canada2026-07-10
Johnson F Figeroa1016Germany2026-07-12
Deepesh E Oldroyd1017India2026-07-06
Aika V Slusarski1018France2026-07-03
Jefferson Z Stenseth1019India2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi N MaletIndiaIoni Bowcher QUALIFIED
David J BowleyAustraliaIoni Bowcher RENEWAL
Octavia T WaycottGermanyIoni Bowcher NEGOTIATION
Adams S FigeroaAustraliaOnyama Limba UNQUALIFIED
Clifford U CampainFranceStephen Shaw NEGOTIATION
Leja C MaletFranceIvan Magalhaes NEGOTIATION
Jeanfrancois F MorascaItalyXuxue Feng NEGOTIATION
Juan Q BowleyArgentinaOnyama Limba PROPOSAL
Murillo X GlickAustraliaAsiya Javayant QUALIFIED
Ivar J RutaUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas H TollnerArgentinaXuxue Feng NEGOTIATION
Juan Z GarufiUnited KingdomXuxue Feng PROPOSAL
Johnson H MaletItalyOnyama Limba NEGOTIATION
Leon Y CaudyFranceElwin Sharvill UNQUALIFIED
Maisha E FollerItalyElwin Sharvill NEW
Izzy A CaudyCanadaAsiya Javayant RENEWAL
Maisha I DilliardCanadaAsiya Javayant UNQUALIFIED
Johnson V MarrierBrazilIoni Bowcher RENEWAL
Mayumi U FlosiSpainAmy Elsner NEW
Stacey U FollerFranceAsiya Javayant RENEWAL
Smith I GlickAustraliaAnna Fali RENEWAL
Murillo O StensethRussiaXuxue Feng QUALIFIED
Stacey R DilliardGermanyBernardo Dominic NEGOTIATION
Chavez U DilliardCanadaElwin Sharvill QUALIFIED
Tony B BowleyJapanOnyama Limba UNQUALIFIED
Silvio K GauchoUnited KingdomAsiya Javayant NEW
Darci K DilliardIndiaIvan Magalhaes UNQUALIFIED
Jennifer K NickaFranceAsiya Javayant PROPOSAL
Francesco M ShinkoCanadaXuxue Feng NEW
Salvatore H MorascaUnited KingdomIoni Bowcher RENEWAL
Rodrigues E AlbaresUnited KingdomAmy Elsner NEW
Salvatore J RoysterBrazilAsiya Javayant NEGOTIATION
Alejandro I DarakjyFranceIvan Magalhaes QUALIFIED
Smith X MorascaFranceOnyama Limba RENEWAL
Faith J VenereIndiaOnyama Limba PROPOSAL
Jeanfrancois M GlickFranceIvan Magalhaes RENEWAL
Claire Z BowleyIndiaIoni Bowcher RENEWAL
Isabel B SaylorsCanadaAmy Elsner NEGOTIATION
Rodrigues O OldroydAustraliaElwin Sharvill QUALIFIED
Francesco V IturbideAustraliaAsiya Javayant 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>