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
Tony P PerinGermanyIoni Bowcher RENEWAL
Jones A VenereRussiaElwin Sharvill NEW
Kaitlin B CaudyRussiaAsiya Javayant NEW
Cody O OldroydCanadaElwin Sharvill RENEWAL
Jennifer L GauchoSpainAnna Fali RENEWAL
Jennifer C RutaIndiaElwin Sharvill PROPOSAL
Wickens X MacleadJapanElwin Sharvill QUALIFIED
Stacey R BologniaUnited KingdomAnna Fali NEGOTIATION
Clifford O RoysterUnited KingdomIvan Magalhaes PROPOSAL
Misaki O InouyeGermanyElwin Sharvill NEGOTIATION
Arvin A PaprockiSpainAnna Fali NEW
Arvin C PoquetteJapanXuxue Feng QUALIFIED
Maria T OstroskyItalyElwin Sharvill NEGOTIATION
Maisha H GlickRussiaIoni Bowcher UNQUALIFIED
Stacey D FigeroaFranceXuxue Feng QUALIFIED
Ricardo K DarakjyCanadaAnna Fali NEW
Aika M SergiCanadaAnna Fali NEW
Claire T WieserSpainAnna Fali QUALIFIED
Jefferson X IturbideArgentinaXuxue Feng QUALIFIED
Jeanfrancois L ShinkoIndiaXuxue Feng RENEWAL
Johnson G KolmetzJapanIoni Bowcher NEW
Kaitlin W CampainIndiaAsiya Javayant UNQUALIFIED
James M AlbaresBrazilBernardo Dominic PROPOSAL
Antonio X OstroskyFranceAnna Fali UNQUALIFIED
Chavez Z ShinkoBrazilOnyama Limba RENEWAL
Juan Z ButtBrazilOnyama Limba QUALIFIED
Jones I DarakjySpainAmy Elsner NEW
Smith I StockhamFranceStephen Shaw UNQUALIFIED
Antonio D SergiJapanBernardo Dominic NEGOTIATION
Smith J TollnerGermanyOnyama Limba NEW
Ricardo L PaprockiIndiaAmy Elsner RENEWAL
Isabel C TollnerJapanBernardo Dominic NEGOTIATION
Morrow Q BriddickGermanyStephen Shaw QUALIFIED
Mujtaba A DarakjyFranceAnna Fali NEGOTIATION
Cody G StensethBrazilOnyama Limba RENEWAL
Emily O CaudyAustraliaElwin Sharvill PROPOSAL
Costa X GarufiJapanOnyama Limba PROPOSAL
Claire F FollerCanadaBernardo Dominic NEW
Izzy Y MorascaCanadaAnna Fali RENEWAL
Smith H RoysterArgentinaXuxue Feng NEW
Rodrigues D VocelkaRussiaXuxue Feng NEGOTIATION
Kadeem B ShinkoFranceXuxue Feng UNQUALIFIED
Greenwood J CaudyGermanyAsiya Javayant RENEWAL
Isabel J MaletUnited KingdomIoni Bowcher QUALIFIED
Julie Y FerenczGermanyElwin Sharvill QUALIFIED
David T DoeAustraliaElwin Sharvill NEGOTIATION
Mayumi N GarufiSpainStephen Shaw NEW
Ricardo Z OstroskyRussiaOnyama Limba NEW
Clifford V PoquetteCanadaAmy Elsner NEW
Antonio H FollerRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mayumi E RutaFranceXuxue Feng QUALIFIED
David P GauchoIndiaAsiya Javayant PROPOSAL
Jennifer X RimBrazilXuxue Feng UNQUALIFIED
Mayumi V VenereUnited KingdomAmy Elsner QUALIFIED
Jennifer K RulapaughJapanStephen Shaw PROPOSAL
Ivar A PoquetteRussiaAnna Fali PROPOSAL
Tony L GauchoGermanyAsiya Javayant QUALIFIED
Jeanfrancois Y WaycottBrazilAsiya Javayant PROPOSAL
Adams O SergiGermanyElwin Sharvill RENEWAL
Ashley R StensethUnited KingdomAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba D GarufiJapan2026-07-30Truhlar And Truhlar Attys QUALIFIED10Onyama Limba
1001Kadeem D AlbaresAustralia2026-07-25Rangoni Of Florence PROPOSAL74Asiya Javayant
1002Darci B SaylorsUnited Kingdom2026-08-22Benton, John B Jr UNQUALIFIED5Ioni Bowcher
1003Leja V VocelkaRussia2026-08-02Chemel, James L Cpa NEW5Asiya Javayant
1004Adams E RoysterRussia2026-08-21Buckley Miller Wright PROPOSAL24Ivan Magalhaes
1005Sinclair C MaletItaly2026-08-03Dorl, James J Esq RENEWAL47Elwin Sharvill
1006Morrow S WaycottBrazil2026-08-18Rangoni Of Florence UNQUALIFIED40Bernardo Dominic
1007Sinclair B CampainArgentina2026-07-28Truhlar And Truhlar Attys QUALIFIED7Asiya Javayant
1008Chavez S AmigonArgentina2026-08-09Chemel, James L Cpa PROPOSAL51Anna Fali
1009Maria O FigeroaGermany2026-08-11Commercial Press PROPOSAL54Elwin Sharvill
1010Juan F TollnerArgentina2026-07-26Dorl, James J Esq PROPOSAL66Anna Fali
1011Ashley I MaletItaly2026-08-08Feiner Bros PROPOSAL1Ivan Magalhaes
1012Nicolas G SergiFrance2026-08-21Chapman, Ross E Esq NEGOTIATION95Amy Elsner
1013Jones M InouyeAustralia2026-08-11King, Christopher A Esq RENEWAL14Elwin Sharvill
1014Faith W MacleadRussia2026-07-27Printing Dimensions NEW11Asiya Javayant
1015Jefferson M GarufiIndia2026-08-07Buckley Miller Wright NEGOTIATION21Stephen Shaw
1016Kaitlin I TollnerSpain2026-08-07Dorl, James J Esq UNQUALIFIED21Asiya Javayant
1017Ricardo D GillianBrazil2026-07-30Feiner Bros NEGOTIATION20Bernardo Dominic
1018Sinclair Q OldroydSpain2026-08-15Commercial Press QUALIFIED63Bernardo Dominic
1019Octavia O BowleyArgentina2026-07-24Dorl, James J Esq RENEWAL33Stephen Shaw
1020Leja S MorascaAustralia2026-07-26Dorl, James J Esq UNQUALIFIED91Asiya Javayant
1021Izzy R SlusarskiJapan2026-08-04Feltz Printing Service QUALIFIED59Asiya Javayant
1022Morrow N BowleyCanada2026-07-29Rousseaux, Michael Esq NEGOTIATION64Ioni Bowcher
1023Silvio A PoquetteRussia2026-08-01Rangoni Of Florence PROPOSAL13Stephen Shaw
1024Adams T MacleadUnited Kingdom2026-08-03Buckley Miller Wright NEW33Ioni Bowcher
1025Morrow Q MacleadFrance2026-08-08Buckley Miller Wright UNQUALIFIED17Bernardo Dominic
1026Aika L PoquetteArgentina2026-08-14Benton, John B Jr QUALIFIED62Ivan Magalhaes
1027Juan U AlbaresFrance2026-08-11King, Christopher A Esq RENEWAL46Ioni Bowcher
1028Mujtaba V PoquetteSpain2026-08-04Truhlar And Truhlar Attys QUALIFIED29Bernardo Dominic
1029Leja P NickaFrance2026-08-21Feiner Bros PROPOSAL87Onyama Limba
1030Chavez T AmigonGermany2026-08-11Morlong Associates RENEWAL99Stephen Shaw
1031Claire B NestleRussia2026-07-26Chemel, James L Cpa RENEWAL8Ivan Magalhaes
1032Julie D MarrierAustralia2026-08-14Truhlar And Truhlar Attys PROPOSAL74Onyama Limba
1033Darci H SchemmerIndia2026-07-28Buckley Miller Wright UNQUALIFIED29Asiya Javayant
1034Darci F FerenczRussia2026-08-02Feiner Bros NEGOTIATION18Asiya Javayant
1035Mayumi L ChuiCanada2026-08-13Chemel, James L Cpa NEW99Xuxue Feng
1036Morrow Q FigeroaUnited Kingdom2026-08-16Benton, John B Jr NEW46Onyama Limba
1037Leja R BowleyAustralia2026-07-31Morlong Associates UNQUALIFIED66Elwin Sharvill
1038Darci M OldroydCanada2026-08-17Feltz Printing Service NEW93Xuxue Feng
1039Mayumi W SergiBrazil2026-08-11Truhlar And Truhlar Attys QUALIFIED96Ivan Magalhaes
1040Antonio S StockhamRussia2026-08-13Truhlar And Truhlar Attys QUALIFIED59Onyama Limba
1041Deepesh C ChuiCanada2026-07-30Morlong Associates PROPOSAL79Amy Elsner
1042Aika W DarakjyRussia2026-08-05King, Christopher A Esq NEGOTIATION48Ivan Magalhaes
1043Isabel M ChuiItaly2026-08-08Truhlar And Truhlar Attys UNQUALIFIED54Ioni Bowcher
1044Octavia H NickaSpain2026-08-04Rangoni Of Florence PROPOSAL70Xuxue Feng
1045Stacey E WaycottUnited Kingdom2026-07-26Chanay, Jeffrey A Esq NEGOTIATION40Elwin Sharvill
1046Maisha S RoysterIndia2026-08-09Commercial Press UNQUALIFIED43Ivan Magalhaes
1047Maisha F VenereJapan2026-08-11Chanay, Jeffrey A Esq NEW87Onyama Limba
1048Leon P RimBrazil2026-08-17Morlong Associates UNQUALIFIED18Xuxue Feng
1049Jefferson O GlickAustralia2026-07-28Rousseaux, Michael Esq PROPOSAL76Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Wickens J FollerJapanIvan Magalhaes PROPOSAL
Jennifer U FlosiIndiaAnna Fali NEGOTIATION
Costa X RimBrazilAmy Elsner UNQUALIFIED
Jeanfrancois I DilliardAustraliaAmy Elsner PROPOSAL
Leja Y AlbaresAustraliaXuxue Feng NEW
Leon Z OstroskyJapanElwin Sharvill QUALIFIED
Octavia I FlosiIndiaIoni Bowcher UNQUALIFIED
Aditya N BowleyJapanBernardo Dominic QUALIFIED
Octavia G ShinkoUnited KingdomXuxue Feng RENEWAL
Jeanfrancois V CampainAustraliaIvan Magalhaes NEW
Kaitlin Y KolmetzAustraliaAsiya Javayant NEW
Arvin H ShinkoCanadaIvan Magalhaes NEW
Claire L GillianAustraliaXuxue Feng NEW
Ivar K MaletArgentinaOnyama Limba QUALIFIED
Ashley M VocelkaFranceXuxue Feng PROPOSAL
Antonio Z DoeArgentinaIvan Magalhaes NEW
Mayumi C StockhamSpainIvan Magalhaes RENEWAL
Alejandro A MorascaFranceAsiya Javayant PROPOSAL
Smith B NickaAustraliaIoni Bowcher RENEWAL
Cody I CaldareraFranceOnyama Limba QUALIFIED
Alejandro X FollerArgentinaAmy Elsner NEGOTIATION
Arvin A SchemmerJapanIvan Magalhaes NEW
Alejandro B RutaGermanyIvan Magalhaes RENEWAL
Mayumi J MarrierFranceOnyama Limba NEW
Izzy T OstroskyFranceAnna Fali UNQUALIFIED
Smith W AlbaresAustraliaIoni Bowcher QUALIFIED
Clifford Z StockhamRussiaStephen Shaw NEW
Stacey Q RutaJapanIoni Bowcher NEGOTIATION
Nicolas O BowleyBrazilIvan Magalhaes PROPOSAL
Ricardo R ChuiArgentinaXuxue Feng PROPOSAL
Jones I WaycottItalyIvan Magalhaes RENEWAL
Aditya U PaprockiAustraliaAmy Elsner PROPOSAL
Claire U FollerIndiaAsiya Javayant PROPOSAL
Octavia D MacleadRussiaBernardo Dominic RENEWAL
Juan N OldroydRussiaElwin Sharvill RENEWAL
Aditya M NickaCanadaBernardo Dominic NEGOTIATION
Julie I KolmetzArgentinaXuxue Feng NEGOTIATION
Adams I MacleadJapanXuxue Feng UNQUALIFIED
Ashley K AlbaresRussiaXuxue Feng QUALIFIED
Smith W KuskoAustraliaStephen Shaw NEW
Julie K SergiFranceAmy Elsner UNQUALIFIED
Ashley W RimJapanStephen Shaw NEGOTIATION
Jeanfrancois S MaletIndiaIvan Magalhaes QUALIFIED
Nicolas V MarrierUnited KingdomElwin Sharvill NEGOTIATION
Octavia Y SchemmerRussiaIoni Bowcher NEGOTIATION
Jennifer Q KolmetzAustraliaAnna Fali QUALIFIED
Leon P PerinJapanIvan Magalhaes QUALIFIED
David O KolmetzArgentinaOnyama Limba UNQUALIFIED
Alejandro O CaldareraSpainIoni Bowcher UNQUALIFIED
Ashley K MorascaFranceXuxue Feng RENEWAL
Frozen Columns
Name
Mayumi K Rim
Nicolas D Ferencz
Kadeem E Bowley
Leja Q Stenseth
Munro X Kolmetz
Clifford S Dilliard
Greenwood C Rim
Costa I Tollner
Mayumi P Malet
Smith E Figeroa
Clifford D Whobrey
Clifford P Bolognia
Deepesh K Garufi
Cody B Oldroyd
Isabel V Gaucho
Alejandro D Inouye
Arvin N Schemmer
Francesco F Paprocki
Isabel E Maclead
Mayumi W Paprocki
Isabel S Slusarski
Aruna S Malet
Aditya X Caldarera
Johnson W Malet
Misaki F Flosi
Misaki X Waycott
Johnson F Whobrey
Faith P Stenseth
Jones J Glick
Kaitlin F Nicka
Greenwood S Caudy
Aika Z Slusarski
Juan K Iturbide
Cody W Paprocki
Rodrigues F Schemmer
Jennifer I Darakjy
Tony Q Malet
Adams J Iturbide
Costa H Oldroyd
Octavia X Vocelka
Greenwood X Gaucho
Leja V Marrier
Ivar N Perin
Stacey P Stockham
Chavez S Ostrosky
Faith A Doe
Maria S Gaucho
Misaki E Kusko
Wickens F Malet
Misaki U Malet
IdCountryDate
1000Spain2026-07-30
1001Argentina2026-08-21
1002Japan2026-08-15
1003Italy2026-08-13
1004Germany2026-08-08
1005India2026-08-19
1006Russia2026-08-17
1007Argentina2026-07-27
1008United Kingdom2026-08-07
1009Brazil2026-08-12
1010Canada2026-08-06
1011Germany2026-08-15
1012Japan2026-07-29
1013Germany2026-08-14
1014Brazil2026-07-24
1015United Kingdom2026-07-28
1016Brazil2026-08-01
1017Argentina2026-08-18
1018Italy2026-07-26
1019France2026-08-07
1020Canada2026-08-21
1021Brazil2026-08-03
1022Brazil2026-08-16
1023Spain2026-08-13
1024Australia2026-08-01
1025Australia2026-07-27
1026Spain2026-07-31
1027Brazil2026-08-08
1028Canada2026-08-17
1029United Kingdom2026-07-28
1030Brazil2026-08-20
1031Russia2026-08-04
1032Canada2026-08-08
1033Japan2026-08-05
1034Argentina2026-08-07
1035Russia2026-07-25
1036India2026-08-06
1037Spain2026-08-08
1038Spain2026-08-20
1039India2026-08-09
1040France2026-08-13
1041Spain2026-08-01
1042Germany2026-07-25
1043Russia2026-08-21
1044Italy2026-08-07
1045Germany2026-08-17
1046India2026-08-20
1047Russia2026-08-17
1048Italy2026-08-08
1049United Kingdom2026-08-02

On-Demand Data

NameIdCountryDate
Darci K Saylors1000Argentina2026-08-14
Kaitlin Y Poquette1001Japan2026-08-16
Cody R Amigon1002Japan2026-08-14
Jones F Oldroyd1003Germany2026-08-08
Juan G Iturbide1004Italy2026-08-06
Cody X Gillian1005Brazil2026-08-22
Greenwood D Albares1006Germany2026-08-02
Ivar M Darakjy1007India2026-08-02
Aika N Tollner1008Germany2026-07-24
Leja A Inouye1009Brazil2026-08-21
Salvatore H Amigon1010Brazil2026-08-02
Arvin R Gaucho1011Germany2026-08-18
Faith U Wieser1012Germany2026-07-25
Maria F Nicka1013Argentina2026-08-17
Salvatore V Schemmer1014France2026-08-21
Greenwood M Figeroa1015Russia2026-07-27
Cody S Campain1016Australia2026-08-15
Juan V Figeroa1017Japan2026-08-19
Antonio B Stenseth1018Australia2026-08-20
Tony B Flosi1019Brazil2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas G ShinkoArgentinaStephen Shaw RENEWAL
Deepesh W GauchoUnited KingdomStephen Shaw RENEWAL
Nicolas C NestleCanadaIoni Bowcher RENEWAL
Nicolas L StensethSpainAnna Fali NEGOTIATION
Darci V DarakjyIndiaIoni Bowcher QUALIFIED
Darci M KolmetzAustraliaBernardo Dominic PROPOSAL
Juan B CampainAustraliaOnyama Limba RENEWAL
Aruna N AmigonAustraliaIoni Bowcher UNQUALIFIED
James L GillianJapanXuxue Feng UNQUALIFIED
Faith U BriddickAustraliaElwin Sharvill UNQUALIFIED
Jefferson K FlosiIndiaAsiya Javayant NEGOTIATION
Rodrigues V FigeroaRussiaOnyama Limba RENEWAL
Nicolas F GillianAustraliaBernardo Dominic RENEWAL
Rodrigues H TollnerBrazilAnna Fali NEW
Ashley P GlickArgentinaIoni Bowcher NEW
Salvatore V MacleadBrazilAmy Elsner NEGOTIATION
Rodrigues U GlickGermanyAmy Elsner PROPOSAL
Alejandro R RoysterJapanElwin Sharvill QUALIFIED
Salvatore S PaprockiBrazilElwin Sharvill UNQUALIFIED
Murillo E FerenczJapanXuxue Feng QUALIFIED
Murillo R GlickFranceOnyama Limba NEW
Clifford H DilliardItalyAsiya Javayant QUALIFIED
Jefferson G WhobreyAustraliaAmy Elsner RENEWAL
Antonio P KuskoRussiaOnyama Limba UNQUALIFIED
Maria M OstroskyCanadaIoni Bowcher UNQUALIFIED
Murillo W StockhamFranceBernardo Dominic NEW
Ricardo C VenereAustraliaIoni Bowcher PROPOSAL
Silvio H GarufiUnited KingdomAsiya Javayant PROPOSAL
Stacey H MaletArgentinaOnyama Limba RENEWAL
Maisha K StockhamBrazilOnyama Limba UNQUALIFIED
Costa R BriddickRussiaIoni Bowcher PROPOSAL
Nicolas N BologniaCanadaStephen Shaw PROPOSAL
Misaki O PaprockiBrazilAnna Fali UNQUALIFIED
Emily S ShinkoIndiaIoni Bowcher RENEWAL
Clifford C FollerJapanAmy Elsner RENEWAL
Jeanfrancois N ChuiCanadaAnna Fali QUALIFIED
Clifford U PoquetteCanadaAnna Fali RENEWAL
Aditya T SlusarskiFranceIvan Magalhaes RENEWAL
Arvin N SlusarskiGermanyElwin Sharvill RENEWAL
Leon Y GauchoFranceIvan Magalhaes 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>