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
Juan V WieserFranceIoni Bowcher NEW
Greenwood B ButtRussiaAnna Fali UNQUALIFIED
Kadeem N ButtCanadaAsiya Javayant PROPOSAL
Salvatore C PoquetteFranceOnyama Limba PROPOSAL
Darci E WieserCanadaAmy Elsner PROPOSAL
Francesco B RulapaughItalyOnyama Limba RENEWAL
Tony N SchemmerBrazilXuxue Feng NEGOTIATION
Mayumi L ShinkoItalyIvan Magalhaes UNQUALIFIED
Mujtaba U CaudyGermanyIoni Bowcher NEW
Wickens V RimFranceStephen Shaw RENEWAL
Clifford O RulapaughGermanyAsiya Javayant NEGOTIATION
Izzy X GauchoBrazilAmy Elsner NEW
Morrow R DarakjyUnited KingdomStephen Shaw NEGOTIATION
Francesco L GillianRussiaBernardo Dominic NEGOTIATION
Mayumi D FollerIndiaStephen Shaw RENEWAL
Jones I FlosiGermanyBernardo Dominic UNQUALIFIED
Ivar F DarakjyJapanIvan Magalhaes UNQUALIFIED
Aditya X RimItalyAsiya Javayant NEW
Adams G DilliardFranceIvan Magalhaes RENEWAL
Mayumi K FollerAustraliaOnyama Limba QUALIFIED
Munro F RutaArgentinaIvan Magalhaes NEGOTIATION
Octavia K DoeAustraliaStephen Shaw NEGOTIATION
Aika Z MorascaArgentinaXuxue Feng UNQUALIFIED
Wickens Q BologniaBrazilIoni Bowcher RENEWAL
Mujtaba M NestleSpainIvan Magalhaes NEGOTIATION
Juan A RulapaughRussiaAmy Elsner UNQUALIFIED
Kaitlin A GillianUnited KingdomXuxue Feng QUALIFIED
Alejandro S RulapaughAustraliaIoni Bowcher QUALIFIED
Jeanfrancois X FollerIndiaIoni Bowcher PROPOSAL
Jeanfrancois E SergiRussiaAnna Fali NEW
Aruna H KuskoBrazilXuxue Feng NEGOTIATION
Leon E WaycottBrazilAmy Elsner QUALIFIED
Juan P PaprockiFranceElwin Sharvill RENEWAL
Ricardo V BologniaIndiaAmy Elsner PROPOSAL
Kadeem B SaylorsArgentinaXuxue Feng NEGOTIATION
Ashley A TollnerAustraliaIvan Magalhaes UNQUALIFIED
Antonio P MorascaArgentinaAnna Fali PROPOSAL
Rodrigues D WaycottSpainAnna Fali NEGOTIATION
Darci F OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Cody E FigeroaRussiaOnyama Limba PROPOSAL
Silvio O InouyeCanadaAnna Fali RENEWAL
James W GarufiGermanyXuxue Feng UNQUALIFIED
Chavez U PaprockiArgentinaAnna Fali PROPOSAL
Antonio B StensethBrazilBernardo Dominic RENEWAL
Cody M KolmetzFranceXuxue Feng QUALIFIED
Aika K CampainArgentinaElwin Sharvill NEW
Salvatore J GlickCanadaElwin Sharvill NEGOTIATION
Murillo R WieserArgentinaAmy Elsner RENEWAL
Julie T GillianArgentinaElwin Sharvill NEGOTIATION
Leon N VocelkaGermanyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin U TollnerBrazilIvan Magalhaes QUALIFIED
Darci W RimRussiaOnyama Limba NEGOTIATION
Aditya M GauchoArgentinaIoni Bowcher NEW
Munro I ButtRussiaAsiya Javayant UNQUALIFIED
Sinclair G StensethUnited KingdomIoni Bowcher PROPOSAL
Kaitlin K NestleAustraliaAmy Elsner QUALIFIED
Julie J IturbideItalyStephen Shaw RENEWAL
Silvio T ButtBrazilAsiya Javayant NEW
Morrow L InouyeItalyAnna Fali UNQUALIFIED
Antonio W DilliardBrazilAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Q PerinIndia2026-07-16Truhlar And Truhlar Attys UNQUALIFIED75Elwin Sharvill
1001Greenwood K InouyeFrance2026-07-09Printing Dimensions UNQUALIFIED41Amy Elsner
1002Costa F DoeArgentina2026-06-25Chemel, James L Cpa NEW45Anna Fali
1003Leja V CaudyItaly2026-07-19Chapman, Ross E Esq NEGOTIATION57Amy Elsner
1004Deepesh E GlickRussia2026-07-05Commercial Press RENEWAL30Anna Fali
1005Maria U ChuiAustralia2026-07-11Chapman, Ross E Esq PROPOSAL71Ivan Magalhaes
1006Leon V StockhamBrazil2026-06-22Feiner Bros PROPOSAL4Ioni Bowcher
1007Aika H PoquetteFrance2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED69Stephen Shaw
1008Ricardo P BriddickBrazil2026-06-30Dorl, James J Esq NEGOTIATION31Stephen Shaw
1009Julie I ButtSpain2026-07-07Commercial Press RENEWAL87Asiya Javayant
1010Misaki N MaletRussia2026-07-06Printing Dimensions PROPOSAL85Anna Fali
1011Jefferson F PerinAustralia2026-06-27King, Christopher A Esq PROPOSAL1Elwin Sharvill
1012Rodrigues I RutaUnited Kingdom2026-07-11Printing Dimensions UNQUALIFIED31Xuxue Feng
1013Smith G BologniaFrance2026-07-20Commercial Press PROPOSAL87Ioni Bowcher
1014Aika N ShinkoItaly2026-07-07King, Christopher A Esq NEGOTIATION0Ioni Bowcher
1015Ivar U WieserBrazil2026-07-14Truhlar And Truhlar Attys UNQUALIFIED26Stephen Shaw
1016Silvio D VocelkaItaly2026-06-23Benton, John B Jr NEGOTIATION18Stephen Shaw
1017Darci N NickaArgentina2026-07-18Feiner Bros QUALIFIED81Elwin Sharvill
1018Ricardo E MaletAustralia2026-07-19Feiner Bros RENEWAL6Elwin Sharvill
1019Rodrigues L KolmetzSpain2026-07-10Printing Dimensions QUALIFIED96Elwin Sharvill
1020Ivar V DarakjyUnited Kingdom2026-07-05Morlong Associates NEW64Anna Fali
1021Ashley H ShinkoFrance2026-07-12Commercial Press UNQUALIFIED3Anna Fali
1022Misaki W SchemmerSpain2026-07-20Rousseaux, Michael Esq NEW44Xuxue Feng
1023Aika E CaldareraJapan2026-06-28Chapman, Ross E Esq QUALIFIED13Ioni Bowcher
1024Stacey Z WieserFrance2026-06-23Dorl, James J Esq QUALIFIED71Xuxue Feng
1025Claire M FlosiAustralia2026-07-11Rangoni Of Florence RENEWAL23Xuxue Feng
1026Greenwood A AlbaresGermany2026-06-21Rangoni Of Florence PROPOSAL58Xuxue Feng
1027Ricardo W OstroskyAustralia2026-07-01Morlong Associates QUALIFIED19Onyama Limba
1028Rodrigues D FerenczArgentina2026-07-13Buckley Miller Wright PROPOSAL29Bernardo Dominic
1029Silvio F GarufiItaly2026-07-20Chemel, James L Cpa RENEWAL0Onyama Limba
1030Kadeem Q RutaUnited Kingdom2026-06-21Chanay, Jeffrey A Esq QUALIFIED14Elwin Sharvill
1031Sinclair H SlusarskiIndia2026-07-06Commercial Press UNQUALIFIED66Elwin Sharvill
1032Greenwood N AmigonSpain2026-06-29King, Christopher A Esq RENEWAL8Amy Elsner
1033Antonio X KuskoSpain2026-06-21Truhlar And Truhlar Attys RENEWAL23Ioni Bowcher
1034Salvatore J MaletAustralia2026-07-03Rangoni Of Florence NEW28Ivan Magalhaes
1035Julie S BriddickAustralia2026-07-10Chanay, Jeffrey A Esq NEW6Ivan Magalhaes
1036Rodrigues N PerinItaly2026-06-22Truhlar And Truhlar Attys NEW59Anna Fali
1037Jones H PaprockiFrance2026-07-20Chanay, Jeffrey A Esq NEW31Asiya Javayant
1038Ashley W MacleadRussia2026-07-12Buckley Miller Wright QUALIFIED0Asiya Javayant
1039Sinclair Z MorascaGermany2026-07-05Dorl, James J Esq UNQUALIFIED22Ivan Magalhaes
1040Sinclair M FollerJapan2026-06-29Rousseaux, Michael Esq UNQUALIFIED65Onyama Limba
1041Arvin Q RutaRussia2026-06-21Truhlar And Truhlar Attys RENEWAL67Amy Elsner
1042Wickens Z WhobreyJapan2026-07-15Chanay, Jeffrey A Esq NEW91Xuxue Feng
1043Mayumi O OldroydArgentina2026-07-13Printing Dimensions UNQUALIFIED14Ivan Magalhaes
1044Jeanfrancois P PoquetteArgentina2026-06-21Chapman, Ross E Esq NEGOTIATION85Asiya Javayant
1045Morrow L MarrierBrazil2026-06-30Feltz Printing Service QUALIFIED25Asiya Javayant
1046Faith J KolmetzGermany2026-07-16King, Christopher A Esq NEW33Ivan Magalhaes
1047Smith N WieserJapan2026-07-02Chanay, Jeffrey A Esq QUALIFIED57Ioni Bowcher
1048Maria U DoeGermany2026-07-15Printing Dimensions QUALIFIED20Ioni Bowcher
1049Deepesh O GarufiAustralia2026-06-26Chapman, Ross E Esq QUALIFIED96Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith Z NestleCanadaXuxue Feng QUALIFIED
Mayumi M OstroskyIndiaIoni Bowcher RENEWAL
Julie N OldroydJapanBernardo Dominic RENEWAL
Smith J AmigonIndiaXuxue Feng PROPOSAL
Julie S PaprockiRussiaAsiya Javayant QUALIFIED
Mujtaba Z MaletIndiaStephen Shaw NEW
Adams H MorascaJapanAmy Elsner UNQUALIFIED
Nicolas F RulapaughFranceAnna Fali NEGOTIATION
Julie C SlusarskiGermanyXuxue Feng PROPOSAL
Jefferson R InouyeUnited KingdomXuxue Feng NEW
Ivar F WieserSpainAnna Fali PROPOSAL
Murillo I StensethBrazilBernardo Dominic PROPOSAL
Ivar F OldroydBrazilStephen Shaw NEW
Leja G ButtJapanAmy Elsner NEW
Julie T OstroskyAustraliaAnna Fali RENEWAL
Alejandro F GauchoItalyIvan Magalhaes NEGOTIATION
Aika K ChuiUnited KingdomAsiya Javayant NEW
Ivar E WaycottJapanElwin Sharvill PROPOSAL
Nicolas G PerinCanadaBernardo Dominic RENEWAL
Juan E GauchoBrazilAnna Fali UNQUALIFIED
Misaki M FerenczAustraliaElwin Sharvill QUALIFIED
Emily E InouyeGermanyOnyama Limba NEW
Clifford B StockhamJapanElwin Sharvill PROPOSAL
Tony S OldroydArgentinaXuxue Feng UNQUALIFIED
Francesco U FollerCanadaAmy Elsner PROPOSAL
Chavez B StensethSpainElwin Sharvill PROPOSAL
David F CaldareraCanadaStephen Shaw PROPOSAL
Greenwood N OstroskyIndiaIoni Bowcher RENEWAL
Emily K NestleArgentinaIvan Magalhaes UNQUALIFIED
David T RoysterFranceAsiya Javayant NEGOTIATION
James O FigeroaItalyBernardo Dominic UNQUALIFIED
Octavia I MaletSpainStephen Shaw QUALIFIED
Costa J VocelkaFranceBernardo Dominic UNQUALIFIED
Mujtaba E GlickArgentinaAnna Fali NEGOTIATION
Aditya L FollerAustraliaElwin Sharvill RENEWAL
Ivar J SergiItalyOnyama Limba PROPOSAL
Salvatore H AlbaresGermanyAmy Elsner PROPOSAL
Izzy N VocelkaJapanAmy Elsner NEGOTIATION
Munro P TollnerFranceXuxue Feng NEW
Jeanfrancois Z IturbideRussiaAmy Elsner PROPOSAL
Greenwood Z PoquetteJapanElwin Sharvill QUALIFIED
Jeanfrancois D CampainArgentinaBernardo Dominic NEW
Chavez D ChuiItalyStephen Shaw QUALIFIED
Cody R CampainArgentinaXuxue Feng RENEWAL
David E TollnerBrazilStephen Shaw NEGOTIATION
Leon N ShinkoCanadaElwin Sharvill NEGOTIATION
Leon L PerinAustraliaAnna Fali QUALIFIED
David H GarufiItalyAmy Elsner NEW
Mujtaba X GauchoUnited KingdomIvan Magalhaes PROPOSAL
Sinclair U GauchoSpainElwin Sharvill QUALIFIED
Frozen Columns
Name
Emily F Tollner
Nicolas P Butt
Rodrigues U Morasca
David C Darakjy
Murillo A Amigon
Greenwood E Waycott
Morrow I Stockham
Kaitlin C Maclead
Jennifer K Dilliard
Sinclair M Whobrey
Aruna T Schemmer
Mujtaba X Oldroyd
Faith C Ostrosky
Claire O Glick
Smith W Venere
Silvio U Caldarera
Sinclair K Campain
Antonio K Doe
Alejandro T Briddick
Sinclair G Caldarera
Mayumi D Vocelka
Stacey D Whobrey
Ricardo J Whobrey
Jeanfrancois J Iturbide
Darci C Morasca
James F Waycott
Wickens Q Waycott
Rodrigues R Figeroa
Stacey I Caudy
Aika P Figeroa
Silvio R Ferencz
Arvin V Vocelka
Claire M Slusarski
Johnson S Kolmetz
Juan Y Poquette
Ricardo T Nestle
Aditya X Chui
Claire O Schemmer
David W Schemmer
Leon M Doe
Ivar Z Poquette
Mujtaba F Caldarera
Johnson T Figeroa
Chavez E Saylors
Julie I Sergi
Darci V Amigon
Faith R Shinko
Aruna N Whobrey
James N Dilliard
Ivar G Stockham
IdCountryDate
1000Germany2026-07-13
1001Canada2026-07-05
1002Germany2026-07-13
1003Brazil2026-07-05
1004Australia2026-07-02
1005Canada2026-07-18
1006Spain2026-06-26
1007Russia2026-07-10
1008France2026-07-14
1009Brazil2026-07-08
1010Italy2026-06-28
1011Italy2026-06-23
1012Argentina2026-07-10
1013Brazil2026-07-08
1014Russia2026-07-16
1015Argentina2026-06-24
1016Spain2026-06-22
1017Germany2026-07-07
1018Italy2026-07-15
1019United Kingdom2026-07-06
1020Germany2026-06-21
1021France2026-07-06
1022Italy2026-07-03
1023Argentina2026-06-26
1024Russia2026-07-14
1025United Kingdom2026-07-16
1026France2026-07-11
1027Argentina2026-07-02
1028Italy2026-07-20
1029Argentina2026-06-28
1030Russia2026-06-30
1031Spain2026-06-29
1032Australia2026-07-20
1033Brazil2026-07-04
1034Germany2026-07-13
1035Australia2026-06-25
1036United Kingdom2026-07-13
1037United Kingdom2026-07-17
1038France2026-07-02
1039Japan2026-07-20
1040Brazil2026-06-21
1041France2026-06-24
1042France2026-07-13
1043Italy2026-07-19
1044Japan2026-06-29
1045Brazil2026-06-30
1046Brazil2026-06-30
1047Italy2026-07-10
1048Germany2026-07-18
1049Japan2026-07-13

On-Demand Data

NameIdCountryDate
Darci K Malet1000Argentina2026-06-25
Jennifer J Glick1001United Kingdom2026-07-14
Antonio J Albares1002Spain2026-07-06
Nicolas U Poquette1003Russia2026-06-29
Ashley U Figeroa1004Canada2026-06-25
Aruna S Campain1005Russia2026-07-06
Johnson U Campain1006Australia2026-06-25
Jefferson V Caudy1007Canada2026-07-17
Leja V Wieser1008India2026-07-17
Kadeem I Bowley1009Germany2026-07-10
James H Stockham1010Japan2026-07-11
Silvio E Figeroa1011Spain2026-07-04
Cody S Marrier1012Spain2026-06-25
Jennifer G Bowley1013Argentina2026-06-27
Alejandro V Nestle1014Canada2026-06-23
Munro P Marrier1015Brazil2026-06-26
Juan M Chui1016Germany2026-07-02
Juan Q Oldroyd1017Argentina2026-07-10
Clifford V Foller1018France2026-06-24
Octavia Z Rim1019France2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Z ShinkoCanadaBernardo Dominic PROPOSAL
Faith Z BologniaRussiaAmy Elsner RENEWAL
Leja D BologniaJapanIoni Bowcher UNQUALIFIED
Greenwood T MorascaSpainIoni Bowcher NEGOTIATION
Stacey E IturbideSpainIoni Bowcher RENEWAL
Jefferson A MorascaAustraliaAsiya Javayant RENEWAL
Ashley I RulapaughItalyAsiya Javayant PROPOSAL
Ashley O AmigonSpainBernardo Dominic QUALIFIED
Kadeem P SlusarskiCanadaElwin Sharvill QUALIFIED
Misaki J CaldareraJapanAnna Fali UNQUALIFIED
Cody B SergiBrazilAsiya Javayant NEGOTIATION
Isabel D CampainUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin J NickaAustraliaIvan Magalhaes RENEWAL
Ricardo F BriddickFranceAnna Fali NEGOTIATION
Ivar X TollnerGermanyAsiya Javayant UNQUALIFIED
Murillo X CampainJapanAsiya Javayant NEW
Jeanfrancois N FollerSpainAmy Elsner QUALIFIED
Munro V GillianUnited KingdomAnna Fali NEGOTIATION
Cody B BriddickArgentinaBernardo Dominic UNQUALIFIED
Octavia L ButtCanadaAnna Fali PROPOSAL
Adams W CampainAustraliaXuxue Feng QUALIFIED
Ashley Q AmigonSpainIvan Magalhaes RENEWAL
Kaitlin G KolmetzGermanyIoni Bowcher NEW
Jefferson Y CampainUnited KingdomElwin Sharvill NEW
Leon F TollnerGermanyBernardo Dominic QUALIFIED
Antonio N PaprockiFranceOnyama Limba NEW
Jones U MorascaArgentinaAsiya Javayant NEGOTIATION
Maisha Z MaletSpainXuxue Feng NEGOTIATION
Jefferson T FigeroaJapanElwin Sharvill QUALIFIED
Maria T StensethBrazilAsiya Javayant PROPOSAL
Deepesh E OldroydBrazilBernardo Dominic RENEWAL
Jefferson A FigeroaSpainIoni Bowcher UNQUALIFIED
Chavez Y OldroydAustraliaStephen Shaw QUALIFIED
Murillo D CaudyCanadaIoni Bowcher UNQUALIFIED
Claire I OstroskyUnited KingdomStephen Shaw QUALIFIED
Darci Q RimArgentinaAmy Elsner UNQUALIFIED
Maisha N SlusarskiItalyOnyama Limba NEW
Jennifer V BologniaItalyXuxue Feng RENEWAL
Maria G OldroydCanadaElwin Sharvill UNQUALIFIED
James X BriddickItalyIoni Bowcher 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>