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
Smith M MaletItalyAsiya Javayant NEW
Arvin A WieserItalyIvan Magalhaes PROPOSAL
Cody L MarrierFranceBernardo Dominic RENEWAL
Greenwood Q KolmetzGermanyAsiya Javayant NEW
Costa Q OldroydItalyAsiya Javayant UNQUALIFIED
Munro H MacleadUnited KingdomElwin Sharvill RENEWAL
Greenwood P AmigonCanadaAsiya Javayant QUALIFIED
Nicolas A MaletAustraliaOnyama Limba NEW
Leja I PerinRussiaXuxue Feng NEGOTIATION
Kadeem Z FlosiArgentinaIvan Magalhaes QUALIFIED
Emily T DarakjyArgentinaAsiya Javayant NEGOTIATION
Mujtaba O BowleyArgentinaXuxue Feng UNQUALIFIED
Arvin J AlbaresJapanBernardo Dominic NEW
Morrow S NestleUnited KingdomBernardo Dominic RENEWAL
Deepesh H RutaArgentinaAnna Fali NEW
David Y ButtFranceBernardo Dominic UNQUALIFIED
Johnson D SaylorsArgentinaElwin Sharvill RENEWAL
Izzy B PoquetteFranceIoni Bowcher PROPOSAL
Murillo P MaletCanadaIvan Magalhaes QUALIFIED
Morrow R InouyeGermanyStephen Shaw NEW
Darci A MarrierArgentinaAnna Fali NEW
Isabel U NickaRussiaAsiya Javayant QUALIFIED
Cody A BologniaJapanAnna Fali QUALIFIED
Leon K MorascaGermanyIvan Magalhaes QUALIFIED
Munro E WhobreyBrazilBernardo Dominic QUALIFIED
Deepesh J KolmetzGermanyOnyama Limba PROPOSAL
Alejandro S BowleyItalyXuxue Feng NEGOTIATION
Murillo I TollnerArgentinaIvan Magalhaes QUALIFIED
Smith S PoquetteFranceXuxue Feng PROPOSAL
Julie G GillianFranceElwin Sharvill QUALIFIED
Misaki H BriddickJapanStephen Shaw RENEWAL
Emily O PoquetteSpainBernardo Dominic NEW
Alejandro W BowleyUnited KingdomBernardo Dominic RENEWAL
Alejandro O KolmetzBrazilXuxue Feng RENEWAL
Deepesh J AmigonItalyBernardo Dominic RENEWAL
Emily F BriddickCanadaIoni Bowcher RENEWAL
Sinclair A GillianItalyStephen Shaw RENEWAL
Cody L MorascaFranceStephen Shaw QUALIFIED
Ivar L MaletIndiaIoni Bowcher NEW
Nicolas E ChuiUnited KingdomStephen Shaw NEW
Mujtaba I SergiAustraliaIoni Bowcher UNQUALIFIED
Deepesh D OldroydBrazilIvan Magalhaes NEW
Francesco O KuskoCanadaAnna Fali NEW
Julie V BriddickRussiaBernardo Dominic RENEWAL
Smith M GlickSpainXuxue Feng QUALIFIED
James N SergiArgentinaAmy Elsner QUALIFIED
Jefferson E SchemmerUnited KingdomIoni Bowcher NEW
Stacey Y AlbaresSpainBernardo Dominic NEW
Faith L CaudyCanadaOnyama Limba RENEWAL
Ricardo H InouyeJapanOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro O WhobreyItalyIoni Bowcher UNQUALIFIED
Stacey G PerinIndiaAsiya Javayant QUALIFIED
Wickens N RoysterSpainBernardo Dominic UNQUALIFIED
Munro M GillianCanadaStephen Shaw NEGOTIATION
Kadeem Z RutaGermanyElwin Sharvill UNQUALIFIED
Maisha I MorascaArgentinaAmy Elsner QUALIFIED
Salvatore R KolmetzFranceIoni Bowcher UNQUALIFIED
Alejandro D MacleadJapanXuxue Feng RENEWAL
Isabel Y MacleadFranceIoni Bowcher UNQUALIFIED
Francesco L SlusarskiIndiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Y WieserJapan2026-07-27Chanay, Jeffrey A Esq RENEWAL65Xuxue Feng
1001Izzy Y GarufiFrance2026-07-17Truhlar And Truhlar Attys RENEWAL39Asiya Javayant
1002Clifford I GauchoCanada2026-07-23Dorl, James J Esq PROPOSAL44Ivan Magalhaes
1003Mujtaba X OstroskyBrazil2026-07-30Printing Dimensions UNQUALIFIED46Bernardo Dominic
1004Ivar T StensethRussia2026-07-11King, Christopher A Esq NEGOTIATION74Amy Elsner
1005David V KolmetzItaly2026-07-04Benton, John B Jr RENEWAL54Onyama Limba
1006Maria B ButtGermany2026-07-05Printing Dimensions QUALIFIED22Asiya Javayant
1007Jones U ShinkoFrance2026-07-15Truhlar And Truhlar Attys NEGOTIATION99Onyama Limba
1008Deepesh H WhobreyGermany2026-07-16Feltz Printing Service UNQUALIFIED70Anna Fali
1009Octavia T PerinArgentina2026-07-18Benton, John B Jr QUALIFIED30Stephen Shaw
1010Nicolas I SchemmerSpain2026-07-15Printing Dimensions NEGOTIATION13Ivan Magalhaes
1011Ashley M CaudyAustralia2026-07-15Commercial Press QUALIFIED93Ioni Bowcher
1012James L ButtUnited Kingdom2026-07-21Buckley Miller Wright PROPOSAL27Ioni Bowcher
1013Morrow K CampainCanada2026-07-23Morlong Associates UNQUALIFIED77Stephen Shaw
1014Greenwood I KolmetzRussia2026-07-24Truhlar And Truhlar Attys UNQUALIFIED73Onyama Limba
1015James C SaylorsAustralia2026-07-27Rousseaux, Michael Esq UNQUALIFIED95Xuxue Feng
1016Murillo F KuskoGermany2026-07-07Commercial Press RENEWAL35Elwin Sharvill
1017Antonio D MaletArgentina2026-07-22Chemel, James L Cpa UNQUALIFIED45Onyama Limba
1018Kaitlin L CaudyAustralia2026-07-28Chemel, James L Cpa NEW19Elwin Sharvill
1019Jefferson U PoquetteAustralia2026-07-02Rousseaux, Michael Esq NEGOTIATION46Elwin Sharvill
1020Faith S ShinkoUnited Kingdom2026-07-21Truhlar And Truhlar Attys PROPOSAL49Bernardo Dominic
1021Cody V MorascaCanada2026-07-04Dorl, James J Esq PROPOSAL7Xuxue Feng
1022Morrow W WhobreyItaly2026-07-15Dorl, James J Esq UNQUALIFIED93Onyama Limba
1023Cody R ButtGermany2026-07-20Chapman, Ross E Esq QUALIFIED38Xuxue Feng
1024Murillo T BowleyJapan2026-07-13Chemel, James L Cpa PROPOSAL51Elwin Sharvill
1025Aruna B OldroydGermany2026-07-20King, Christopher A Esq NEGOTIATION51Xuxue Feng
1026Ashley K TollnerRussia2026-07-21Benton, John B Jr NEGOTIATION75Stephen Shaw
1027Greenwood T SchemmerGermany2026-07-21King, Christopher A Esq QUALIFIED11Ivan Magalhaes
1028Alejandro T WaycottIndia2026-07-25Buckley Miller Wright QUALIFIED37Elwin Sharvill
1029Costa M StockhamAustralia2026-07-19Chanay, Jeffrey A Esq RENEWAL87Amy Elsner
1030Cody W OstroskyGermany2026-07-14Benton, John B Jr NEGOTIATION86Amy Elsner
1031Leja R VocelkaIndia2026-07-24Rangoni Of Florence NEW67Elwin Sharvill
1032Ivar S MorascaRussia2026-07-29Benton, John B Jr RENEWAL86Ioni Bowcher
1033Mujtaba X CampainJapan2026-07-04Rousseaux, Michael Esq QUALIFIED53Ioni Bowcher
1034Aditya M WaycottRussia2026-07-21Feiner Bros RENEWAL26Anna Fali
1035Clifford B ShinkoItaly2026-07-19Truhlar And Truhlar Attys RENEWAL51Asiya Javayant
1036Misaki E MacleadJapan2026-07-11Chapman, Ross E Esq NEGOTIATION52Onyama Limba
1037Leon T StockhamJapan2026-07-29Chanay, Jeffrey A Esq NEGOTIATION57Onyama Limba
1038Mujtaba Y RutaIndia2026-07-13Rangoni Of Florence NEW83Ioni Bowcher
1039Murillo A WhobreyUnited Kingdom2026-07-23Feiner Bros QUALIFIED56Asiya Javayant
1040Jeanfrancois I RutaIndia2026-07-03Printing Dimensions NEW1Xuxue Feng
1041Claire C PoquetteBrazil2026-07-23Morlong Associates RENEWAL91Elwin Sharvill
1042Smith P PaprockiArgentina2026-07-16King, Christopher A Esq UNQUALIFIED29Bernardo Dominic
1043Costa X CaudyIndia2026-07-11Truhlar And Truhlar Attys PROPOSAL7Anna Fali
1044Nicolas F GillianRussia2026-07-25Chanay, Jeffrey A Esq QUALIFIED19Onyama Limba
1045Jennifer A KolmetzUnited Kingdom2026-07-07Truhlar And Truhlar Attys NEW94Ioni Bowcher
1046Octavia N ButtBrazil2026-07-13Feiner Bros UNQUALIFIED0Anna Fali
1047Ricardo L CampainUnited Kingdom2026-07-27Feiner Bros RENEWAL54Xuxue Feng
1048Alejandro N VenereUnited Kingdom2026-07-30Commercial Press PROPOSAL6Ioni Bowcher
1049Darci R StensethCanada2026-07-31Benton, John B Jr QUALIFIED86Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily X CaudyArgentinaAmy Elsner QUALIFIED
Wickens X SlusarskiBrazilAnna Fali RENEWAL
Antonio X MorascaAustraliaAnna Fali QUALIFIED
Sinclair B WaycottFranceOnyama Limba RENEWAL
Antonio J VocelkaFranceIoni Bowcher NEGOTIATION
Faith K MacleadUnited KingdomIvan Magalhaes PROPOSAL
Aruna H StensethIndiaBernardo Dominic UNQUALIFIED
Kaitlin X RutaIndiaAnna Fali QUALIFIED
Adams T RimSpainBernardo Dominic QUALIFIED
Antonio M NickaUnited KingdomAsiya Javayant QUALIFIED
Jefferson Y FlosiCanadaStephen Shaw NEGOTIATION
Chavez D MorascaIndiaAmy Elsner RENEWAL
James X MarrierUnited KingdomAsiya Javayant NEW
Murillo W ButtArgentinaAmy Elsner QUALIFIED
David K SlusarskiItalyXuxue Feng QUALIFIED
Rodrigues O StensethFranceAsiya Javayant PROPOSAL
Tony L AmigonAustraliaXuxue Feng NEGOTIATION
Aruna U ChuiAustraliaAnna Fali NEW
Claire Z VocelkaAustraliaAsiya Javayant RENEWAL
Misaki Q MacleadItalyIoni Bowcher RENEWAL
Leja A NestleIndiaAmy Elsner NEW
Sinclair U StensethGermanyStephen Shaw RENEWAL
Emily I AmigonFranceIvan Magalhaes RENEWAL
Morrow O DarakjyGermanyIoni Bowcher RENEWAL
Johnson M RimJapanStephen Shaw RENEWAL
Faith H DoeAustraliaXuxue Feng RENEWAL
Aika K WhobreyFranceAmy Elsner RENEWAL
Izzy D GlickArgentinaOnyama Limba NEW
Maria F ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Alejandro P VenereArgentinaIoni Bowcher NEW
Arvin G SchemmerUnited KingdomStephen Shaw QUALIFIED
Rodrigues L MaletUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois I WhobreySpainAnna Fali NEGOTIATION
David S SlusarskiRussiaStephen Shaw NEW
Smith B MacleadSpainIoni Bowcher NEW
Clifford R SlusarskiGermanyOnyama Limba NEW
Aruna I TollnerJapanAmy Elsner UNQUALIFIED
Mayumi V AmigonArgentinaXuxue Feng RENEWAL
Maisha B CaldareraGermanyAmy Elsner RENEWAL
Ivar C SergiBrazilElwin Sharvill PROPOSAL
Izzy E ChuiBrazilAnna Fali UNQUALIFIED
Silvio M GillianUnited KingdomAsiya Javayant NEGOTIATION
Cody T SchemmerFranceAsiya Javayant UNQUALIFIED
Leon W StensethGermanyStephen Shaw RENEWAL
Sinclair D KuskoArgentinaXuxue Feng PROPOSAL
Jeanfrancois G OstroskyIndiaAsiya Javayant NEGOTIATION
Aditya I PerinFranceBernardo Dominic UNQUALIFIED
Isabel K RutaUnited KingdomOnyama Limba PROPOSAL
Deepesh I CampainGermanyBernardo Dominic PROPOSAL
Aditya G AlbaresFranceAnna Fali RENEWAL
Frozen Columns
Name
Izzy H Whobrey
Greenwood H Gaucho
Mayumi N Butt
Chavez D Shinko
Misaki N Gillian
Mujtaba K Oldroyd
Salvatore H Nicka
Smith U Gaucho
Antonio G Doe
Emily O Paprocki
Murillo S Tollner
Jefferson N Paprocki
Leja O Perin
Jefferson S Ostrosky
Smith J Malet
Maisha N Butt
Deepesh J Ruta
Deepesh Q Gaucho
Maria D Darakjy
Smith H Caudy
Jeanfrancois Q Bowley
David R Iturbide
Faith L Briddick
Johnson J Perin
Faith R Royster
Maisha Z Glick
Antonio N Bowley
Deepesh J Rim
Chavez Z Kolmetz
Rodrigues Y Kolmetz
Julie S Slusarski
Izzy P Rim
Antonio O Dilliard
Misaki A Maclead
Kaitlin R Stenseth
Isabel K Slusarski
Costa H Briddick
Izzy S Kusko
Aruna U Waycott
Aditya B Maclead
Wickens W Oldroyd
Juan H Whobrey
Antonio P Stenseth
Antonio Q Chui
Arvin D Garufi
Tony W Rim
Octavia L Doe
Kadeem A Bowley
Nicolas V Gaucho
Tony E Caudy
IdCountryDate
1000Russia2026-07-29
1001Argentina2026-07-02
1002Brazil2026-07-28
1003Brazil2026-07-16
1004Germany2026-07-22
1005France2026-07-08
1006Italy2026-07-08
1007Germany2026-07-23
1008United Kingdom2026-07-05
1009Australia2026-07-24
1010India2026-07-10
1011Canada2026-07-29
1012Spain2026-07-12
1013Japan2026-07-02
1014India2026-07-15
1015Japan2026-07-26
1016France2026-07-14
1017Italy2026-07-08
1018Brazil2026-07-20
1019Canada2026-07-23
1020Germany2026-07-02
1021United Kingdom2026-07-17
1022Russia2026-07-15
1023Germany2026-07-12
1024Russia2026-07-04
1025Argentina2026-07-20
1026Brazil2026-07-21
1027Australia2026-07-22
1028Australia2026-07-29
1029Germany2026-07-16
1030India2026-07-31
1031Russia2026-07-29
1032Italy2026-07-31
1033Brazil2026-07-30
1034Italy2026-07-03
1035Brazil2026-07-23
1036Canada2026-07-09
1037Australia2026-07-28
1038Canada2026-07-06
1039France2026-07-28
1040United Kingdom2026-07-31
1041Argentina2026-07-14
1042Germany2026-07-14
1043Australia2026-07-30
1044Russia2026-07-14
1045Italy2026-07-21
1046France2026-07-11
1047Russia2026-07-25
1048Argentina2026-07-07
1049Russia2026-07-30

On-Demand Data

NameIdCountryDate
Maisha P Garufi1000India2026-07-30
Octavia X Oldroyd1001Argentina2026-07-17
Darci T Kusko1002Australia2026-07-08
Kadeem D Paprocki1003India2026-07-23
Mujtaba Y Perin1004Russia2026-07-26
Aruna Y Vocelka1005Brazil2026-07-31
Kaitlin I Schemmer1006Canada2026-07-05
Deepesh C Nestle1007Australia2026-07-30
Isabel Z Stockham1008France2026-07-26
Juan S Ferencz1009Japan2026-07-24
Nicolas M Kusko1010Spain2026-07-29
Ricardo P Rulapaugh1011United Kingdom2026-07-25
Emily X Butt1012Italy2026-07-02
Misaki C Nicka1013Australia2026-07-24
Darci C Kolmetz1014Japan2026-07-21
Johnson B Rulapaugh1015Argentina2026-07-28
Faith C Ferencz1016Italy2026-07-17
Ashley P Foller1017Canada2026-07-12
Johnson Q Nestle1018Russia2026-07-28
Octavia I Bolognia1019Russia2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo A CaldareraItalyElwin Sharvill NEW
Juan F RutaSpainOnyama Limba NEGOTIATION
Johnson J BriddickFranceXuxue Feng QUALIFIED
Chavez M BowleyRussiaIvan Magalhaes NEGOTIATION
Arvin I OstroskyFranceAmy Elsner NEGOTIATION
Maria F FollerUnited KingdomAnna Fali PROPOSAL
Cody W DarakjyRussiaXuxue Feng NEGOTIATION
Emily U WieserJapanAsiya Javayant NEW
Mayumi S GauchoItalyBernardo Dominic QUALIFIED
James Z VocelkaBrazilBernardo Dominic NEGOTIATION
Sinclair L OldroydItalyXuxue Feng RENEWAL
Izzy X FigeroaFranceStephen Shaw UNQUALIFIED
Morrow L MaletJapanElwin Sharvill RENEWAL
Johnson U MarrierRussiaBernardo Dominic QUALIFIED
Octavia B DilliardIndiaXuxue Feng NEGOTIATION
Ricardo O RulapaughSpainIoni Bowcher RENEWAL
Leon W BowleyRussiaIvan Magalhaes NEW
Jeanfrancois O MarrierUnited KingdomStephen Shaw PROPOSAL
Kadeem H StensethCanadaXuxue Feng NEGOTIATION
Jones U DarakjyJapanAnna Fali UNQUALIFIED
Chavez L ChuiUnited KingdomAmy Elsner RENEWAL
Darci G ChuiBrazilIoni Bowcher QUALIFIED
Deepesh J RutaArgentinaAsiya Javayant NEW
Isabel P PoquetteArgentinaIoni Bowcher QUALIFIED
Clifford L StockhamIndiaBernardo Dominic UNQUALIFIED
Greenwood S MaletAustraliaAmy Elsner QUALIFIED
Ricardo E GlickCanadaStephen Shaw NEW
Julie S DilliardJapanOnyama Limba RENEWAL
Salvatore O AlbaresCanadaIoni Bowcher NEW
Leja T MorascaRussiaOnyama Limba UNQUALIFIED
Sinclair Q BologniaIndiaAmy Elsner UNQUALIFIED
Juan S PoquetteArgentinaXuxue Feng NEGOTIATION
Kaitlin F GarufiAustraliaStephen Shaw RENEWAL
Mujtaba F DarakjyGermanyStephen Shaw QUALIFIED
Silvio N GlickRussiaIvan Magalhaes RENEWAL
Antonio H SchemmerRussiaAmy Elsner UNQUALIFIED
Jefferson F DarakjyFranceAsiya Javayant PROPOSAL
Alejandro X StockhamItalyBernardo Dominic QUALIFIED
Mujtaba D BriddickCanadaAnna Fali PROPOSAL
Izzy T PerinCanadaAnna Fali 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>