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
Arvin J GlickUnited KingdomAnna Fali NEW
Deepesh E SchemmerAustraliaElwin Sharvill NEGOTIATION
Aika X GarufiJapanAmy Elsner RENEWAL
Izzy Z ShinkoJapanAnna Fali PROPOSAL
Tony C PerinArgentinaAmy Elsner UNQUALIFIED
Wickens W MorascaIndiaAnna Fali NEGOTIATION
Stacey S RoysterJapanOnyama Limba RENEWAL
Jeanfrancois T VocelkaItalyElwin Sharvill NEW
Darci A DarakjyIndiaIoni Bowcher QUALIFIED
Isabel F VocelkaFranceBernardo Dominic NEW
Francesco E RulapaughJapanXuxue Feng QUALIFIED
James A DilliardArgentinaOnyama Limba PROPOSAL
Isabel I GauchoIndiaAmy Elsner QUALIFIED
Maisha A SlusarskiCanadaIvan Magalhaes PROPOSAL
Sinclair V MacleadSpainIoni Bowcher NEGOTIATION
Maisha Q DoeAustraliaAnna Fali NEGOTIATION
Ricardo R StensethIndiaIoni Bowcher UNQUALIFIED
Kaitlin B MorascaFranceXuxue Feng NEW
Emily H FlosiAustraliaIvan Magalhaes UNQUALIFIED
Deepesh W VocelkaFranceAnna Fali NEGOTIATION
Murillo I TollnerUnited KingdomAmy Elsner NEGOTIATION
Tony K VenereItalyAnna Fali UNQUALIFIED
Tony I ButtArgentinaAnna Fali PROPOSAL
Ivar K WhobreyArgentinaElwin Sharvill RENEWAL
Greenwood E ButtGermanyBernardo Dominic RENEWAL
Aditya W TollnerUnited KingdomAsiya Javayant UNQUALIFIED
Chavez J CampainItalyIoni Bowcher PROPOSAL
Leja J CaudyIndiaStephen Shaw UNQUALIFIED
Wickens T SchemmerGermanyOnyama Limba NEGOTIATION
Silvio C MorascaRussiaAsiya Javayant UNQUALIFIED
Deepesh X SchemmerSpainIvan Magalhaes QUALIFIED
Kaitlin P NestleFranceStephen Shaw NEW
Jeanfrancois K StensethCanadaXuxue Feng NEW
Maria Z OstroskyRussiaIvan Magalhaes UNQUALIFIED
Morrow R KuskoSpainAsiya Javayant RENEWAL
Johnson W IturbideRussiaStephen Shaw RENEWAL
Ashley Q MarrierRussiaOnyama Limba UNQUALIFIED
Jeanfrancois J AlbaresArgentinaOnyama Limba NEGOTIATION
Wickens Y PaprockiIndiaStephen Shaw RENEWAL
Mujtaba D MorascaAustraliaBernardo Dominic NEGOTIATION
Kadeem I GillianAustraliaOnyama Limba NEW
Stacey I PoquetteItalyIvan Magalhaes UNQUALIFIED
Arvin W PoquetteBrazilIoni Bowcher NEGOTIATION
Isabel J RoysterGermanyStephen Shaw UNQUALIFIED
Ricardo Q KolmetzRussiaOnyama Limba UNQUALIFIED
Jones M PerinUnited KingdomStephen Shaw QUALIFIED
Stacey X GauchoIndiaBernardo Dominic UNQUALIFIED
Adams O AlbaresAustraliaIoni Bowcher QUALIFIED
Aruna F CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Clifford Y MaletRussiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith X NestleUnited KingdomAsiya Javayant UNQUALIFIED
Leon C RimCanadaStephen Shaw QUALIFIED
Darci N KolmetzBrazilAmy Elsner PROPOSAL
Jennifer P CaldareraItalyOnyama Limba RENEWAL
Octavia O AmigonCanadaStephen Shaw RENEWAL
James W RulapaughGermanyAmy Elsner NEGOTIATION
Izzy P DilliardFranceAmy Elsner QUALIFIED
Alejandro K SchemmerFranceIoni Bowcher QUALIFIED
Nicolas F ChuiFranceXuxue Feng NEGOTIATION
Johnson W PoquetteAustraliaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David B DoeIndia2026-07-30Printing Dimensions QUALIFIED92Ioni Bowcher
1001Octavia X RutaIndia2026-08-09Chapman, Ross E Esq QUALIFIED70Xuxue Feng
1002Antonio X CaldareraIndia2026-08-02Rangoni Of Florence PROPOSAL49Asiya Javayant
1003Wickens W DoeArgentina2026-08-13King, Christopher A Esq NEGOTIATION20Ioni Bowcher
1004Octavia Z FigeroaGermany2026-08-08Feiner Bros PROPOSAL67Amy Elsner
1005Alejandro S PaprockiFrance2026-08-13Feiner Bros PROPOSAL75Ivan Magalhaes
1006Izzy G TollnerUnited Kingdom2026-08-22Printing Dimensions PROPOSAL1Amy Elsner
1007Arvin C ButtFrance2026-08-15Buckley Miller Wright RENEWAL16Asiya Javayant
1008Chavez S WieserBrazil2026-08-11Feiner Bros RENEWAL48Amy Elsner
1009Claire E DarakjyCanada2026-08-13Printing Dimensions RENEWAL91Ioni Bowcher
1010Maisha R SergiGermany2026-08-15Chanay, Jeffrey A Esq RENEWAL63Xuxue Feng
1011Kaitlin Y AlbaresUnited Kingdom2026-08-21Commercial Press QUALIFIED61Onyama Limba
1012Murillo J IturbideUnited Kingdom2026-07-25Chapman, Ross E Esq QUALIFIED20Xuxue Feng
1013Greenwood V BologniaIndia2026-08-17Truhlar And Truhlar Attys QUALIFIED42Elwin Sharvill
1014Tony J CaudyAustralia2026-08-07Rangoni Of Florence NEW72Anna Fali
1015Johnson P OldroydRussia2026-07-30Dorl, James J Esq RENEWAL19Onyama Limba
1016Costa O MaletRussia2026-08-21Benton, John B Jr NEW60Asiya Javayant
1017Isabel Z SchemmerGermany2026-08-11Rousseaux, Michael Esq UNQUALIFIED96Asiya Javayant
1018Stacey H FlosiUnited Kingdom2026-07-27Dorl, James J Esq PROPOSAL15Ivan Magalhaes
1019Octavia H KolmetzItaly2026-08-22Commercial Press NEW83Stephen Shaw
1020Izzy W DoeGermany2026-08-15Commercial Press PROPOSAL18Stephen Shaw
1021Cody Z FigeroaArgentina2026-07-31Feiner Bros QUALIFIED93Ivan Magalhaes
1022Jennifer B OstroskyAustralia2026-08-03Chapman, Ross E Esq NEGOTIATION36Anna Fali
1023Sinclair P CaudyRussia2026-08-03Benton, John B Jr NEW76Bernardo Dominic
1024Johnson V VenereAustralia2026-08-09Rousseaux, Michael Esq PROPOSAL92Bernardo Dominic
1025Francesco T PerinBrazil2026-07-30Commercial Press QUALIFIED32Amy Elsner
1026Clifford E TollnerArgentina2026-08-16Chemel, James L Cpa NEGOTIATION4Xuxue Feng
1027Octavia K VenereUnited Kingdom2026-07-27Commercial Press NEGOTIATION83Amy Elsner
1028Morrow U StensethBrazil2026-08-19Feiner Bros UNQUALIFIED88Ioni Bowcher
1029Faith G GlickRussia2026-08-20Commercial Press NEW68Xuxue Feng
1030Costa M MaletArgentina2026-08-04Chapman, Ross E Esq NEW32Asiya Javayant
1031Clifford F VocelkaUnited Kingdom2026-07-28King, Christopher A Esq QUALIFIED49Asiya Javayant
1032Misaki M CaldareraRussia2026-08-16Chemel, James L Cpa QUALIFIED81Ioni Bowcher
1033Isabel N GarufiRussia2026-08-10Chanay, Jeffrey A Esq NEW17Bernardo Dominic
1034Arvin L GauchoArgentina2026-07-25Buckley Miller Wright NEW34Stephen Shaw
1035Morrow E DarakjyItaly2026-08-09Buckley Miller Wright UNQUALIFIED20Asiya Javayant
1036Chavez F InouyeAustralia2026-08-03Commercial Press NEGOTIATION96Onyama Limba
1037David D StockhamJapan2026-08-05Rangoni Of Florence NEGOTIATION9Amy Elsner
1038Kadeem R SergiRussia2026-07-26Printing Dimensions NEW31Amy Elsner
1039Sinclair H OstroskyGermany2026-08-09Chemel, James L Cpa RENEWAL28Stephen Shaw
1040Jones J AmigonGermany2026-07-27Rangoni Of Florence QUALIFIED42Onyama Limba
1041Claire U GlickGermany2026-08-08Dorl, James J Esq NEGOTIATION98Asiya Javayant
1042Kadeem S KuskoBrazil2026-07-26Morlong Associates RENEWAL64Amy Elsner
1043Johnson Z RoysterArgentina2026-08-11Printing Dimensions RENEWAL5Xuxue Feng
1044Francesco E FlosiArgentina2026-08-03King, Christopher A Esq PROPOSAL9Ivan Magalhaes
1045Morrow S AmigonUnited Kingdom2026-08-15Feltz Printing Service UNQUALIFIED28Ioni Bowcher
1046Ashley E ShinkoRussia2026-08-08Truhlar And Truhlar Attys UNQUALIFIED72Asiya Javayant
1047David K VocelkaBrazil2026-08-15Chemel, James L Cpa UNQUALIFIED72Elwin Sharvill
1048Francesco S ChuiSpain2026-08-01Buckley Miller Wright NEW95Elwin Sharvill
1049Kadeem U KolmetzArgentina2026-08-09Truhlar And Truhlar Attys NEGOTIATION85Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aruna A StensethAustraliaAsiya Javayant NEGOTIATION
Leon W MorascaUnited KingdomIvan Magalhaes NEW
Darci L FlosiIndiaOnyama Limba PROPOSAL
Morrow I MacleadArgentinaStephen Shaw QUALIFIED
Ricardo O DarakjyBrazilIvan Magalhaes UNQUALIFIED
Arvin M SaylorsJapanBernardo Dominic PROPOSAL
Mayumi S WieserUnited KingdomOnyama Limba QUALIFIED
David T ButtSpainAsiya Javayant UNQUALIFIED
Octavia E FigeroaSpainStephen Shaw UNQUALIFIED
Tony Y InouyeIndiaIvan Magalhaes NEGOTIATION
Jones P FerenczBrazilXuxue Feng UNQUALIFIED
Faith H GlickIndiaXuxue Feng NEGOTIATION
Darci P BowleyCanadaXuxue Feng PROPOSAL
Ashley P VenereBrazilAmy Elsner RENEWAL
Claire X OldroydBrazilStephen Shaw PROPOSAL
Stacey O SaylorsIndiaStephen Shaw RENEWAL
Greenwood N PoquetteAustraliaIvan Magalhaes RENEWAL
Mujtaba K WhobreyGermanyIoni Bowcher UNQUALIFIED
Wickens G FerenczBrazilElwin Sharvill NEGOTIATION
Nicolas P RutaGermanyOnyama Limba NEGOTIATION
Tony D MaletItalyXuxue Feng UNQUALIFIED
Ivar S SaylorsJapanElwin Sharvill NEW
Mujtaba X PoquetteSpainBernardo Dominic NEGOTIATION
Chavez Y VenereArgentinaAsiya Javayant QUALIFIED
Greenwood F BriddickAustraliaAnna Fali QUALIFIED
Wickens O PerinItalyBernardo Dominic NEW
Kaitlin G MaletFranceXuxue Feng NEGOTIATION
Salvatore O MaletSpainStephen Shaw NEGOTIATION
Jeanfrancois Q WaycottJapanElwin Sharvill NEGOTIATION
Isabel K PerinBrazilXuxue Feng NEW
Ricardo F MacleadIndiaIvan Magalhaes RENEWAL
Chavez P SchemmerIndiaIoni Bowcher NEGOTIATION
Aika R MorascaUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois E BowleySpainAsiya Javayant RENEWAL
Francesco F DoeIndiaAsiya Javayant NEGOTIATION
Leja W MaletItalyIvan Magalhaes PROPOSAL
Antonio W MarrierBrazilBernardo Dominic RENEWAL
Clifford M CampainJapanOnyama Limba UNQUALIFIED
Izzy C StockhamAustraliaElwin Sharvill NEW
Deepesh S SchemmerJapanAnna Fali NEW
Jefferson C GlickFranceElwin Sharvill NEW
Tony J MorascaArgentinaBernardo Dominic NEW
Adams G PaprockiFranceStephen Shaw NEW
Arvin R RoysterGermanyElwin Sharvill NEW
Maisha P ChuiIndiaElwin Sharvill NEW
Mujtaba N CampainAustraliaOnyama Limba RENEWAL
Adams K CaudyIndiaStephen Shaw NEGOTIATION
Maria I RutaCanadaBernardo Dominic NEGOTIATION
Mujtaba H RutaFranceOnyama Limba RENEWAL
Misaki U WieserBrazilXuxue Feng NEGOTIATION
Frozen Columns
Name
Adams P Figeroa
Mayumi T Venere
Misaki N Maclead
Jeanfrancois K Maclead
Mayumi C Paprocki
Silvio M Garufi
Johnson E Rim
Juan F Poquette
Jones Z Kolmetz
Arvin X Caldarera
Stacey Z Kusko
Tony D Gillian
Aruna R Caldarera
Aika E Maclead
Sinclair A Briddick
Maisha M Ostrosky
Faith I Sergi
Misaki P Caudy
Antonio E Malet
Faith Y Saylors
Kadeem F Ostrosky
Emily B Gillian
Emily N Kusko
Mayumi I Garufi
Arvin D Nicka
Ivar U Stockham
Kaitlin C Darakjy
Johnson K Figeroa
Tony T Chui
Salvatore I Iturbide
Cody P Saylors
Maria X Nicka
Jeanfrancois N Stenseth
Maisha M Campain
Alejandro L Glick
Morrow Y Stenseth
Maisha X Ostrosky
Isabel R Paprocki
Maria C Iturbide
Sinclair B Caldarera
Johnson Y Royster
Rodrigues W Waycott
Adams J Chui
Sinclair V Oldroyd
Aruna W Amigon
Arvin C Vocelka
Jeanfrancois G Kolmetz
Izzy L Tollner
Greenwood X Doe
Tony O Iturbide
IdCountryDate
1000Japan2026-08-16
1001United Kingdom2026-07-26
1002Japan2026-08-15
1003Australia2026-08-03
1004Germany2026-07-31
1005Argentina2026-07-28
1006Russia2026-08-23
1007Australia2026-08-19
1008France2026-07-30
1009Australia2026-07-26
1010Australia2026-07-30
1011Germany2026-08-10
1012Australia2026-08-08
1013France2026-08-04
1014Italy2026-08-14
1015Japan2026-08-04
1016Argentina2026-08-20
1017Germany2026-08-21
1018Canada2026-07-27
1019Spain2026-08-16
1020Australia2026-08-08
1021India2026-08-15
1022Italy2026-08-14
1023United Kingdom2026-08-17
1024Russia2026-07-26
1025United Kingdom2026-08-21
1026Spain2026-08-19
1027Italy2026-08-07
1028Canada2026-07-31
1029United Kingdom2026-08-02
1030Australia2026-08-03
1031Italy2026-08-21
1032Spain2026-07-29
1033United Kingdom2026-08-08
1034Germany2026-08-13
1035France2026-07-28
1036India2026-08-02
1037India2026-08-04
1038Argentina2026-08-18
1039Brazil2026-08-13
1040United Kingdom2026-08-03
1041United Kingdom2026-08-23
1042Australia2026-07-31
1043Germany2026-08-01
1044Russia2026-08-07
1045United Kingdom2026-08-09
1046Spain2026-08-19
1047Germany2026-08-07
1048France2026-08-15
1049United Kingdom2026-08-14

On-Demand Data

NameIdCountryDate
Aika Z Butt1000Germany2026-08-06
Jones P Caudy1001Italy2026-08-04
Chavez I Oldroyd1002United Kingdom2026-08-18
Ashley M Caudy1003Canada2026-08-17
Aruna U Saylors1004Australia2026-08-03
Greenwood T Bolognia1005Argentina2026-07-31
Izzy Y Bowley1006India2026-07-26
Clifford V Maclead1007India2026-08-04
Antonio S Vocelka1008Canada2026-08-15
Faith S Briddick1009India2026-08-05
Maisha O Waycott1010India2026-07-28
Juan N Kusko1011Brazil2026-08-02
Smith H Paprocki1012Australia2026-08-13
Nicolas A Darakjy1013France2026-08-09
Aditya M Briddick1014Germany2026-08-20
Deepesh G Gaucho1015Germany2026-08-09
Mujtaba C Albares1016United Kingdom2026-08-22
Kaitlin C Nestle1017France2026-08-20
Morrow R Darakjy1018Italy2026-08-22
Darci X Foller1019India2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja V VenereCanadaStephen Shaw QUALIFIED
Isabel L RulapaughArgentinaAnna Fali NEW
Jones X GillianIndiaStephen Shaw RENEWAL
Leja X WhobreyGermanyIoni Bowcher NEGOTIATION
Sinclair X OstroskyIndiaAnna Fali QUALIFIED
Smith W MaletArgentinaIoni Bowcher RENEWAL
Maria N FollerSpainBernardo Dominic NEW
Ivar L CaudyFranceBernardo Dominic NEW
Emily L WieserRussiaXuxue Feng NEGOTIATION
Kadeem D WhobreyJapanStephen Shaw RENEWAL
Jones L GauchoJapanElwin Sharvill UNQUALIFIED
Stacey C NickaAustraliaIoni Bowcher NEGOTIATION
Francesco W AmigonAustraliaBernardo Dominic UNQUALIFIED
Faith Q KolmetzIndiaXuxue Feng RENEWAL
Deepesh Z VenereJapanBernardo Dominic RENEWAL
Cody E MaletGermanyIoni Bowcher PROPOSAL
Jeanfrancois B CaudyArgentinaAmy Elsner QUALIFIED
James G WaycottGermanyOnyama Limba NEW
Silvio D SaylorsGermanyIoni Bowcher QUALIFIED
Rodrigues Q MarrierIndiaAnna Fali RENEWAL
Octavia W BriddickSpainAnna Fali NEW
Mujtaba R MaletAustraliaAnna Fali RENEWAL
Emily D CaldareraBrazilStephen Shaw NEW
Ashley W MarrierAustraliaAsiya Javayant RENEWAL
Ricardo F TollnerSpainIoni Bowcher UNQUALIFIED
Faith U PerinAustraliaAsiya Javayant RENEWAL
Darci B ShinkoSpainIvan Magalhaes RENEWAL
Costa U ButtFranceXuxue Feng NEW
Ricardo Y VocelkaItalyAsiya Javayant RENEWAL
James I GlickBrazilAmy Elsner PROPOSAL
Octavia C GarufiBrazilXuxue Feng PROPOSAL
Arvin R SchemmerFranceXuxue Feng NEW
Leja A RimRussiaXuxue Feng UNQUALIFIED
Greenwood O StensethItalyElwin Sharvill NEW
Octavia B SergiBrazilBernardo Dominic RENEWAL
Leja V RulapaughFranceXuxue Feng PROPOSAL
Morrow B GlickArgentinaIoni Bowcher UNQUALIFIED
Isabel M PoquetteBrazilStephen Shaw PROPOSAL
Sinclair U BriddickArgentinaAnna Fali RENEWAL
Izzy K MorascaSpainOnyama Limba 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>