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
Munro Z IturbideIndiaStephen Shaw RENEWAL
Aditya U VenereGermanyIoni Bowcher NEGOTIATION
Jennifer V MacleadBrazilIvan Magalhaes RENEWAL
Claire W IturbideRussiaAnna Fali RENEWAL
Wickens M MaletBrazilAnna Fali UNQUALIFIED
Costa Y WhobreyItalyOnyama Limba RENEWAL
Deepesh K VenereArgentinaOnyama Limba NEW
Adams U WaycottCanadaElwin Sharvill PROPOSAL
Aika R InouyeItalyElwin Sharvill RENEWAL
Aruna B ShinkoJapanOnyama Limba QUALIFIED
Wickens I BowleyCanadaIoni Bowcher RENEWAL
Sinclair N FigeroaJapanOnyama Limba QUALIFIED
Jefferson U BologniaCanadaStephen Shaw NEGOTIATION
Johnson K DarakjyJapanAnna Fali NEGOTIATION
Clifford Q VocelkaUnited KingdomAmy Elsner QUALIFIED
Darci J DarakjyArgentinaXuxue Feng RENEWAL
James S RimGermanyElwin Sharvill NEW
Morrow U VocelkaGermanyAsiya Javayant NEGOTIATION
Misaki R VenereAustraliaXuxue Feng UNQUALIFIED
Aika P GillianItalyOnyama Limba RENEWAL
Kadeem M FerenczJapanBernardo Dominic UNQUALIFIED
Julie N SlusarskiBrazilStephen Shaw RENEWAL
Leon J OldroydIndiaIvan Magalhaes QUALIFIED
Greenwood W RutaGermanyStephen Shaw QUALIFIED
Octavia P ShinkoCanadaAnna Fali UNQUALIFIED
Wickens N GarufiGermanyStephen Shaw NEGOTIATION
Faith G BologniaGermanyOnyama Limba UNQUALIFIED
Costa L PerinItalyBernardo Dominic PROPOSAL
Ivar D CampainUnited KingdomIvan Magalhaes RENEWAL
Alejandro P SergiGermanyAnna Fali UNQUALIFIED
Chavez F ShinkoGermanyStephen Shaw UNQUALIFIED
Wickens T DoeSpainXuxue Feng QUALIFIED
Jennifer U StockhamItalyAsiya Javayant QUALIFIED
Francesco U AmigonGermanyElwin Sharvill RENEWAL
Jones P MaletJapanAmy Elsner RENEWAL
David S MaletJapanOnyama Limba RENEWAL
Nicolas A OstroskyAustraliaIvan Magalhaes NEGOTIATION
Ivar E NestleGermanyBernardo Dominic QUALIFIED
Chavez O RutaAustraliaAnna Fali RENEWAL
Aditya D WieserAustraliaXuxue Feng NEGOTIATION
Francesco J InouyeBrazilOnyama Limba QUALIFIED
Francesco T SaylorsArgentinaAnna Fali NEGOTIATION
Kaitlin P WaycottItalyElwin Sharvill UNQUALIFIED
Darci O BriddickFranceAsiya Javayant QUALIFIED
Ashley N BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Aruna Y GlickBrazilIoni Bowcher PROPOSAL
Jeanfrancois A MaletSpainIvan Magalhaes RENEWAL
Aditya Z PoquetteArgentinaAnna Fali RENEWAL
Leon T DoeJapanElwin Sharvill NEW
Izzy M MacleadCanadaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily F RutaIndiaAmy Elsner UNQUALIFIED
Darci Q ShinkoArgentinaAsiya Javayant QUALIFIED
Ricardo R PerinJapanOnyama Limba PROPOSAL
Maria Z VenereSpainOnyama Limba NEGOTIATION
Misaki G KuskoUnited KingdomIvan Magalhaes QUALIFIED
Claire B FlosiJapanAnna Fali QUALIFIED
Emily J MaletGermanyElwin Sharvill UNQUALIFIED
Munro K MorascaGermanyStephen Shaw PROPOSAL
Jefferson F IturbideBrazilXuxue Feng PROPOSAL
Aruna H PoquetteItalyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia E AlbaresArgentina2026-06-11Chanay, Jeffrey A Esq QUALIFIED50Anna Fali
1001Maria S KolmetzUnited Kingdom2026-06-03Buckley Miller Wright PROPOSAL5Asiya Javayant
1002Francesco U MaletSpain2026-06-26Feiner Bros NEGOTIATION37Elwin Sharvill
1003Smith H RoysterRussia2026-06-08Buckley Miller Wright NEW73Bernardo Dominic
1004Deepesh D RutaBrazil2026-06-21Truhlar And Truhlar Attys UNQUALIFIED10Ivan Magalhaes
1005Jefferson K NestleSpain2026-06-04Rangoni Of Florence UNQUALIFIED62Anna Fali
1006Juan Y RutaArgentina2026-06-11Rousseaux, Michael Esq UNQUALIFIED57Xuxue Feng
1007Sinclair P VocelkaAustralia2026-06-19Chapman, Ross E Esq RENEWAL31Xuxue Feng
1008Maria U MaletFrance2026-06-13Truhlar And Truhlar Attys NEGOTIATION7Stephen Shaw
1009Mayumi U DarakjyJapan2026-06-03Rangoni Of Florence QUALIFIED50Ioni Bowcher
1010Arvin T WaycottSpain2026-06-07Rangoni Of Florence RENEWAL22Anna Fali
1011Emily C CampainCanada2026-06-22Rousseaux, Michael Esq PROPOSAL52Amy Elsner
1012Kadeem L RimFrance2026-06-13Chanay, Jeffrey A Esq NEW13Amy Elsner
1013Stacey U ShinkoFrance2026-06-29King, Christopher A Esq UNQUALIFIED31Elwin Sharvill
1014Julie J MorascaJapan2026-06-29Printing Dimensions RENEWAL37Asiya Javayant
1015Aika H OstroskyGermany2026-06-15Chanay, Jeffrey A Esq QUALIFIED94Elwin Sharvill
1016Aditya I StockhamCanada2026-06-04Chapman, Ross E Esq NEGOTIATION76Xuxue Feng
1017Isabel Z PaprockiUnited Kingdom2026-06-08Rangoni Of Florence NEW59Bernardo Dominic
1018Silvio Q WhobreyAustralia2026-06-17Chanay, Jeffrey A Esq PROPOSAL4Ioni Bowcher
1019Mayumi H BologniaGermany2026-06-03Morlong Associates UNQUALIFIED28Ivan Magalhaes
1020Misaki C AmigonGermany2026-06-01Feiner Bros NEGOTIATION93Xuxue Feng
1021Alejandro K RulapaughFrance2026-06-01Morlong Associates NEGOTIATION6Ioni Bowcher
1022Darci W DoeCanada2026-06-06Morlong Associates UNQUALIFIED41Elwin Sharvill
1023Mujtaba V NickaSpain2026-06-11Commercial Press PROPOSAL45Bernardo Dominic
1024Rodrigues M PoquetteBrazil2026-06-13King, Christopher A Esq NEGOTIATION33Anna Fali
1025Deepesh C SlusarskiGermany2026-06-25Rangoni Of Florence NEGOTIATION66Ioni Bowcher
1026Izzy J FlosiSpain2026-06-08Rousseaux, Michael Esq QUALIFIED90Onyama Limba
1027Munro Y OstroskyArgentina2026-06-10Rangoni Of Florence NEW66Elwin Sharvill
1028Kaitlin W MaletBrazil2026-06-20Commercial Press UNQUALIFIED99Ivan Magalhaes
1029Emily I CaldareraGermany2026-06-23Buckley Miller Wright QUALIFIED82Asiya Javayant
1030Clifford R CaudyJapan2026-06-21Rousseaux, Michael Esq NEGOTIATION30Anna Fali
1031Izzy Q IturbideRussia2026-06-15Dorl, James J Esq RENEWAL10Stephen Shaw
1032Mayumi B CaldareraGermany2026-06-17Feiner Bros PROPOSAL72Stephen Shaw
1033Deepesh J VenereArgentina2026-06-02Printing Dimensions RENEWAL1Ivan Magalhaes
1034Jefferson J MacleadBrazil2026-06-21Feltz Printing Service NEGOTIATION52Bernardo Dominic
1035Aditya D ShinkoAustralia2026-06-05King, Christopher A Esq NEW81Xuxue Feng
1036Leja J CaldareraAustralia2026-06-06Buckley Miller Wright NEW67Asiya Javayant
1037Emily F RoysterIndia2026-06-03Chemel, James L Cpa QUALIFIED68Ivan Magalhaes
1038Ricardo D WaycottSpain2026-06-03Dorl, James J Esq NEW66Elwin Sharvill
1039Juan Y GillianItaly2026-06-21Feiner Bros RENEWAL65Bernardo Dominic
1040Aditya D NickaUnited Kingdom2026-06-05Truhlar And Truhlar Attys NEW35Onyama Limba
1041Murillo I SergiRussia2026-06-22Feltz Printing Service RENEWAL60Asiya Javayant
1042Aruna O RoysterAustralia2026-06-08Feltz Printing Service RENEWAL36Elwin Sharvill
1043David M BriddickSpain2026-06-23Benton, John B Jr NEW63Onyama Limba
1044James D FollerRussia2026-06-30Benton, John B Jr NEGOTIATION38Ioni Bowcher
1045Nicolas U RutaFrance2026-06-29Buckley Miller Wright UNQUALIFIED27Anna Fali
1046Cody N MaletSpain2026-06-07Feiner Bros UNQUALIFIED93Xuxue Feng
1047Sinclair H PoquetteAustralia2026-06-10Feiner Bros NEW13Xuxue Feng
1048Leon V MaletSpain2026-06-28Chemel, James L Cpa NEGOTIATION58Amy Elsner
1049Cody P AlbaresJapan2026-06-18Chapman, Ross E Esq NEW16Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio D KolmetzAustraliaIvan Magalhaes NEW
Aditya T FigeroaItalyAnna Fali NEGOTIATION
Costa P BowleyIndiaIvan Magalhaes NEGOTIATION
Morrow V TollnerFranceIoni Bowcher QUALIFIED
Rodrigues Y GarufiSpainOnyama Limba QUALIFIED
Izzy M VocelkaRussiaStephen Shaw PROPOSAL
Alejandro I MarrierArgentinaXuxue Feng PROPOSAL
Adams F SaylorsCanadaAmy Elsner RENEWAL
Deepesh F SaylorsJapanBernardo Dominic UNQUALIFIED
Morrow O SaylorsSpainAmy Elsner QUALIFIED
Arvin U PoquetteSpainStephen Shaw QUALIFIED
Clifford Y MorascaUnited KingdomIvan Magalhaes RENEWAL
Faith W TollnerGermanyIvan Magalhaes PROPOSAL
Mayumi T ChuiSpainStephen Shaw UNQUALIFIED
Leon K FlosiArgentinaAmy Elsner RENEWAL
Leon F KolmetzSpainOnyama Limba NEW
Greenwood G NickaGermanyXuxue Feng NEGOTIATION
Greenwood C ShinkoArgentinaBernardo Dominic QUALIFIED
Kaitlin F OstroskySpainXuxue Feng NEGOTIATION
David B DilliardUnited KingdomOnyama Limba NEW
Maisha T MarrierGermanyStephen Shaw NEGOTIATION
Wickens I TollnerItalyXuxue Feng QUALIFIED
Julie O RutaBrazilAmy Elsner RENEWAL
Cody K GillianGermanyAsiya Javayant RENEWAL
Ricardo U NestleSpainElwin Sharvill QUALIFIED
Smith N WaycottArgentinaXuxue Feng QUALIFIED
Faith O BriddickRussiaIvan Magalhaes NEGOTIATION
Aruna L BowleyFranceAsiya Javayant UNQUALIFIED
Cody D GauchoCanadaXuxue Feng PROPOSAL
Deepesh I InouyeSpainAmy Elsner RENEWAL
Izzy F ChuiJapanIoni Bowcher PROPOSAL
Leja A NestleAustraliaBernardo Dominic NEW
Clifford F RoysterRussiaStephen Shaw QUALIFIED
Mujtaba A ChuiJapanStephen Shaw PROPOSAL
Faith B MaletArgentinaAmy Elsner NEW
Arvin K FlosiAustraliaStephen Shaw RENEWAL
Mujtaba T RutaRussiaAmy Elsner PROPOSAL
Claire Q InouyeBrazilAnna Fali NEGOTIATION
Jones N WaycottArgentinaBernardo Dominic QUALIFIED
Costa O BowleyItalyBernardo Dominic QUALIFIED
Misaki Z FollerCanadaAsiya Javayant NEGOTIATION
Octavia M GillianCanadaAsiya Javayant PROPOSAL
Clifford V KuskoGermanyIvan Magalhaes NEGOTIATION
Salvatore X MorascaAustraliaXuxue Feng UNQUALIFIED
Darci B NickaItalyBernardo Dominic RENEWAL
Juan E FlosiCanadaAnna Fali UNQUALIFIED
Munro X ButtBrazilElwin Sharvill UNQUALIFIED
Alejandro N DoeFranceIvan Magalhaes NEW
Kaitlin G DilliardFranceOnyama Limba UNQUALIFIED
Leon S PaprockiGermanyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Stacey R Stockham
David E Caldarera
Jones H Darakjy
Deepesh N Bowley
Maisha J Butt
Tony V Caldarera
Isabel G Albares
Juan O Doe
Smith Y Caudy
Aruna G Nestle
Antonio D Stenseth
Johnson F Butt
Julie Y Paprocki
Misaki P Tollner
Kadeem M Stenseth
Antonio R Bowley
Costa Z Shinko
Nicolas V Rim
Johnson X Paprocki
Kadeem Q Doe
Johnson G Saylors
Francesco A Doe
Ivar A Flosi
Misaki M Dilliard
Clifford Z Oldroyd
Cody B Amigon
Deepesh B Oldroyd
Leja K Amigon
Tony N Bolognia
James R Ferencz
Costa O Malet
Maria O Oldroyd
Misaki X Dilliard
Rodrigues C Stockham
Aika C Oldroyd
Aditya K Darakjy
Smith N Perin
Leja E Oldroyd
Ashley P Glick
Maria V Campain
Kadeem H Venere
Ivar D Caldarera
Murillo C Nestle
Misaki I Inouye
James A Garufi
Jennifer V Garufi
Faith A Glick
Deepesh W Chui
Clifford O Saylors
Mayumi E Ruta
IdCountryDate
1000Russia2026-06-04
1001Italy2026-06-21
1002France2026-06-18
1003India2026-06-06
1004Spain2026-06-23
1005Germany2026-06-07
1006Argentina2026-06-13
1007Russia2026-06-02
1008United Kingdom2026-06-24
1009Argentina2026-06-01
1010Brazil2026-06-18
1011Australia2026-06-14
1012Russia2026-06-25
1013Russia2026-06-14
1014Australia2026-06-11
1015Japan2026-06-26
1016Italy2026-06-07
1017Germany2026-06-20
1018Australia2026-06-05
1019Spain2026-06-18
1020Spain2026-06-30
1021Russia2026-06-29
1022France2026-06-12
1023Japan2026-06-13
1024Brazil2026-06-29
1025Spain2026-06-04
1026Canada2026-06-16
1027United Kingdom2026-06-13
1028Italy2026-06-15
1029Argentina2026-06-29
1030Italy2026-06-11
1031Spain2026-06-09
1032Argentina2026-06-14
1033Canada2026-06-20
1034United Kingdom2026-06-19
1035India2026-06-09
1036Argentina2026-06-30
1037Spain2026-06-18
1038Spain2026-06-23
1039Argentina2026-06-21
1040Italy2026-06-18
1041Italy2026-06-26
1042Italy2026-06-10
1043Australia2026-06-28
1044Spain2026-06-12
1045France2026-06-02
1046Japan2026-06-27
1047Brazil2026-06-14
1048Brazil2026-06-13
1049Argentina2026-06-02

On-Demand Data

NameIdCountryDate
Jones R Figeroa1000Brazil2026-06-26
Kadeem H Butt1001Russia2026-06-18
Costa U Royster1002Australia2026-06-25
Isabel M Malet1003Russia2026-06-11
Morrow W Royster1004Germany2026-06-12
Nicolas K Caudy1005India2026-06-06
Cody O Nestle1006United Kingdom2026-06-27
Claire L Stockham1007Spain2026-06-14
Ivar T Oldroyd1008Germany2026-06-24
Antonio S Malet1009Argentina2026-06-18
Tony F Caudy1010Australia2026-06-10
Faith M Stockham1011Germany2026-06-26
James A Nestle1012India2026-06-29
Arvin V Ostrosky1013United Kingdom2026-06-01
Aruna O Caldarera1014Argentina2026-06-17
Isabel X Shinko1015Italy2026-06-27
Francesco H Flosi1016Argentina2026-06-07
Maisha P Bolognia1017Brazil2026-06-19
Maria A Kolmetz1018Australia2026-06-21
Greenwood T Malet1019Japan2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna U RutaJapanAmy Elsner QUALIFIED
Rodrigues P GauchoAustraliaIoni Bowcher RENEWAL
Deepesh Y DoeUnited KingdomBernardo Dominic NEGOTIATION
Mayumi Q IturbideRussiaStephen Shaw QUALIFIED
Aika Q RoysterSpainOnyama Limba UNQUALIFIED
Johnson K RoysterFranceBernardo Dominic NEGOTIATION
Kaitlin S FigeroaCanadaXuxue Feng UNQUALIFIED
Johnson S FlosiFranceOnyama Limba QUALIFIED
Adams R MacleadItalyStephen Shaw RENEWAL
Isabel L SaylorsUnited KingdomAnna Fali UNQUALIFIED
Munro H FerenczUnited KingdomBernardo Dominic QUALIFIED
Mujtaba C PerinBrazilAsiya Javayant NEW
Sinclair A PaprockiGermanyAmy Elsner RENEWAL
Ivar I BologniaBrazilOnyama Limba QUALIFIED
Ivar B OldroydGermanyAsiya Javayant QUALIFIED
Misaki T DarakjySpainIoni Bowcher PROPOSAL
Maria D WieserItalyElwin Sharvill PROPOSAL
Adams Q AmigonCanadaAmy Elsner NEW
Silvio E RulapaughJapanOnyama Limba PROPOSAL
Ashley K BologniaItalyElwin Sharvill QUALIFIED
Costa F RutaCanadaAsiya Javayant UNQUALIFIED
Isabel T BowleyIndiaStephen Shaw NEGOTIATION
Ashley E AmigonGermanyXuxue Feng UNQUALIFIED
Jefferson Q WaycottAustraliaIvan Magalhaes RENEWAL
Ashley E BologniaIndiaStephen Shaw QUALIFIED
Smith K BriddickJapanIvan Magalhaes NEW
Deepesh G BriddickBrazilXuxue Feng NEW
Jones C WieserRussiaStephen Shaw RENEWAL
Jones C OldroydArgentinaXuxue Feng UNQUALIFIED
Alejandro Q SlusarskiBrazilAsiya Javayant PROPOSAL
David S WhobreyItalyIvan Magalhaes NEW
Smith B GarufiGermanyAnna Fali NEGOTIATION
David H AlbaresJapanStephen Shaw QUALIFIED
Claire R OldroydBrazilAnna Fali UNQUALIFIED
Johnson Z SergiArgentinaAsiya Javayant NEW
Emily E AlbaresSpainAsiya Javayant PROPOSAL
Murillo S CaudyAustraliaBernardo Dominic RENEWAL
Jeanfrancois M GlickIndiaXuxue Feng NEGOTIATION
Sinclair C RutaAustraliaXuxue Feng QUALIFIED
Deepesh A MorascaItalyAsiya Javayant NEW

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