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
Greenwood T NickaIndiaIvan Magalhaes NEGOTIATION
Costa K AmigonUnited KingdomOnyama Limba QUALIFIED
Ivar R BologniaItalyElwin Sharvill NEW
Cody N SlusarskiRussiaIvan Magalhaes RENEWAL
Leon D CaudyCanadaAmy Elsner UNQUALIFIED
Ivar D CaudyArgentinaAsiya Javayant NEGOTIATION
Aruna N TollnerSpainAmy Elsner NEGOTIATION
Wickens C GarufiCanadaAsiya Javayant RENEWAL
Maisha K ShinkoJapanElwin Sharvill PROPOSAL
Ashley G RutaAustraliaXuxue Feng PROPOSAL
Julie Z CaudyIndiaAmy Elsner NEW
Murillo Q SchemmerUnited KingdomAnna Fali QUALIFIED
Claire P NickaGermanyElwin Sharvill NEGOTIATION
Ivar I RutaRussiaStephen Shaw UNQUALIFIED
Clifford H BriddickGermanyIvan Magalhaes UNQUALIFIED
Ivar B DoeGermanyXuxue Feng NEGOTIATION
Clifford X BologniaFranceIvan Magalhaes PROPOSAL
Octavia H DarakjyArgentinaIoni Bowcher NEW
Kadeem A DilliardCanadaXuxue Feng UNQUALIFIED
Jennifer I TollnerCanadaOnyama Limba NEW
Wickens D ShinkoItalyAsiya Javayant NEW
Ivar B GauchoArgentinaBernardo Dominic RENEWAL
Ashley X RutaCanadaElwin Sharvill UNQUALIFIED
Tony P CaudyCanadaAsiya Javayant NEGOTIATION
James J MaletItalyOnyama Limba QUALIFIED
Jennifer D TollnerRussiaXuxue Feng UNQUALIFIED
Costa R SergiBrazilAnna Fali NEW
Salvatore O IturbideCanadaIvan Magalhaes NEGOTIATION
Arvin D OstroskyIndiaAnna Fali NEGOTIATION
Sinclair Q RulapaughItalyIvan Magalhaes UNQUALIFIED
Clifford T SergiBrazilElwin Sharvill NEW
Tony C CampainJapanAsiya Javayant PROPOSAL
Jefferson J FigeroaCanadaXuxue Feng PROPOSAL
Tony Y DarakjyArgentinaBernardo Dominic NEGOTIATION
Darci D PaprockiUnited KingdomAnna Fali NEGOTIATION
Kadeem B ButtUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson M FerenczIndiaAnna Fali RENEWAL
Jennifer W GauchoAustraliaStephen Shaw NEW
Emily Y SaylorsCanadaIvan Magalhaes PROPOSAL
Francesco Y GauchoFranceAnna Fali PROPOSAL
Jones D FigeroaFranceStephen Shaw PROPOSAL
Jones Z BowleyArgentinaOnyama Limba PROPOSAL
Octavia S IturbideFranceIvan Magalhaes NEW
Clifford L GauchoBrazilXuxue Feng NEGOTIATION
Kadeem H InouyeFranceAnna Fali QUALIFIED
Cody W DarakjyAustraliaBernardo Dominic UNQUALIFIED
Smith K GillianArgentinaIoni Bowcher NEW
Antonio H KuskoArgentinaBernardo Dominic PROPOSAL
Aika N MacleadBrazilBernardo Dominic NEGOTIATION
Johnson T BowleyBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin F OldroydAustraliaElwin Sharvill UNQUALIFIED
Silvio C CampainItalyAnna Fali NEGOTIATION
Silvio U MarrierBrazilXuxue Feng RENEWAL
Stacey H IturbideGermanyAmy Elsner QUALIFIED
Leon K RimItalyBernardo Dominic RENEWAL
Antonio I WaycottIndiaBernardo Dominic PROPOSAL
Ivar F FerenczGermanyAnna Fali NEGOTIATION
Munro Z MaletJapanXuxue Feng QUALIFIED
Munro C KuskoRussiaAsiya Javayant NEGOTIATION
Leja B FerenczFranceAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois C KolmetzIndia2026-06-28Morlong Associates UNQUALIFIED15Stephen Shaw
1001Julie P GauchoAustralia2026-06-16Truhlar And Truhlar Attys QUALIFIED82Stephen Shaw
1002Arvin D PoquetteJapan2026-06-23Printing Dimensions QUALIFIED7Ivan Magalhaes
1003Jefferson W FerenczRussia2026-06-21Chemel, James L Cpa UNQUALIFIED57Elwin Sharvill
1004Julie E GillianAustralia2026-06-14Truhlar And Truhlar Attys PROPOSAL96Elwin Sharvill
1005Johnson P FollerArgentina2026-06-24Feltz Printing Service NEGOTIATION93Asiya Javayant
1006Octavia M InouyeFrance2026-06-21Morlong Associates NEGOTIATION10Ivan Magalhaes
1007Juan C OldroydUnited Kingdom2026-06-12Rangoni Of Florence QUALIFIED10Elwin Sharvill
1008Stacey L PaprockiArgentina2026-06-25Commercial Press NEW57Ioni Bowcher
1009Faith U PaprockiBrazil2026-06-08Commercial Press NEW23Stephen Shaw
1010James M DilliardGermany2026-06-16Chanay, Jeffrey A Esq UNQUALIFIED37Stephen Shaw
1011Ashley J IturbideRussia2026-06-08Benton, John B Jr NEW34Ioni Bowcher
1012Ivar V DarakjyGermany2026-06-19Chanay, Jeffrey A Esq QUALIFIED45Onyama Limba
1013Emily C GauchoRussia2026-06-30Chanay, Jeffrey A Esq NEW7Amy Elsner
1014Morrow R TollnerUnited Kingdom2026-06-11Dorl, James J Esq PROPOSAL88Stephen Shaw
1015Nicolas Q DoeItaly2026-06-07Commercial Press NEGOTIATION66Elwin Sharvill
1016Salvatore C MorascaJapan2026-06-27Morlong Associates NEGOTIATION31Ioni Bowcher
1017Aruna M RoysterFrance2026-07-01Dorl, James J Esq QUALIFIED71Anna Fali
1018Juan B AmigonUnited Kingdom2026-06-25Rangoni Of Florence NEGOTIATION94Ioni Bowcher
1019Juan F SlusarskiArgentina2026-06-08Feiner Bros RENEWAL46Elwin Sharvill
1020Izzy P OldroydJapan2026-06-08Feiner Bros PROPOSAL9Xuxue Feng
1021Ivar D BowleyBrazil2026-06-12Feltz Printing Service RENEWAL11Xuxue Feng
1022Octavia K PoquetteItaly2026-06-13Chanay, Jeffrey A Esq NEW71Bernardo Dominic
1023Cody J SlusarskiFrance2026-06-27Dorl, James J Esq RENEWAL64Stephen Shaw
1024Arvin I GillianUnited Kingdom2026-06-13Truhlar And Truhlar Attys NEGOTIATION42Anna Fali
1025Emily K GillianArgentina2026-06-22Buckley Miller Wright RENEWAL81Asiya Javayant
1026Kaitlin A TollnerJapan2026-06-17Chemel, James L Cpa NEGOTIATION73Anna Fali
1027Alejandro U StensethBrazil2026-06-12Morlong Associates QUALIFIED42Ioni Bowcher
1028Munro U RoysterSpain2026-06-21Chemel, James L Cpa NEW99Asiya Javayant
1029Aditya K BowleyArgentina2026-06-19Truhlar And Truhlar Attys RENEWAL83Bernardo Dominic
1030Clifford J BowleyUnited Kingdom2026-06-29Chemel, James L Cpa PROPOSAL23Onyama Limba
1031Chavez H KolmetzJapan2026-06-14Truhlar And Truhlar Attys PROPOSAL15Amy Elsner
1032Sinclair N FlosiItaly2026-07-01Morlong Associates NEGOTIATION18Bernardo Dominic
1033Kadeem D KolmetzIndia2026-06-19Benton, John B Jr RENEWAL47Bernardo Dominic
1034Misaki P VocelkaGermany2026-06-11Dorl, James J Esq PROPOSAL39Elwin Sharvill
1035Jennifer P OstroskyUnited Kingdom2026-07-02Chemel, James L Cpa UNQUALIFIED84Ioni Bowcher
1036Maisha A PoquetteGermany2026-06-16Feltz Printing Service UNQUALIFIED42Bernardo Dominic
1037Salvatore R BologniaIndia2026-06-19Chanay, Jeffrey A Esq RENEWAL83Ioni Bowcher
1038Maisha P SlusarskiJapan2026-06-14Chapman, Ross E Esq NEW66Bernardo Dominic
1039Wickens F VenereBrazil2026-06-08Chanay, Jeffrey A Esq PROPOSAL90Amy Elsner
1040Stacey I MaletArgentina2026-06-21Feiner Bros NEGOTIATION50Onyama Limba
1041Chavez U DilliardAustralia2026-06-17Chemel, James L Cpa NEW8Onyama Limba
1042Emily D GlickFrance2026-06-25Truhlar And Truhlar Attys RENEWAL52Amy Elsner
1043Costa J IturbideUnited Kingdom2026-06-08King, Christopher A Esq NEGOTIATION35Xuxue Feng
1044Clifford K SlusarskiSpain2026-06-29Feltz Printing Service UNQUALIFIED39Stephen Shaw
1045Ricardo N CaudyAustralia2026-06-29King, Christopher A Esq RENEWAL88Bernardo Dominic
1046David C TollnerFrance2026-06-09Chemel, James L Cpa RENEWAL77Asiya Javayant
1047Jefferson E BowleyFrance2026-06-18Chapman, Ross E Esq RENEWAL39Ivan Magalhaes
1048Claire P NickaBrazil2026-06-12Benton, John B Jr PROPOSAL82Anna Fali
1049Isabel T RulapaughAustralia2026-06-17Chemel, James L Cpa PROPOSAL50Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie A GlickJapanStephen Shaw UNQUALIFIED
Maria A VenereArgentinaIvan Magalhaes NEW
Jefferson C PerinCanadaIvan Magalhaes QUALIFIED
Nicolas E MacleadUnited KingdomElwin Sharvill PROPOSAL
Emily U MaletBrazilIoni Bowcher QUALIFIED
Maisha P TollnerUnited KingdomElwin Sharvill QUALIFIED
Jones P PoquetteBrazilXuxue Feng NEGOTIATION
Chavez F DilliardFranceOnyama Limba NEW
Arvin C RoysterAustraliaElwin Sharvill UNQUALIFIED
Aditya P BriddickGermanyElwin Sharvill UNQUALIFIED
Sinclair M ShinkoSpainElwin Sharvill PROPOSAL
Leja D AmigonBrazilIvan Magalhaes NEGOTIATION
Ricardo B GauchoItalyAnna Fali NEW
Costa K OstroskySpainIoni Bowcher NEW
Ricardo C IturbideJapanBernardo Dominic PROPOSAL
Darci M MaletBrazilIoni Bowcher NEW
Chavez T SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Mayumi P SlusarskiItalyAsiya Javayant NEW
Ashley T RutaJapanAsiya Javayant PROPOSAL
Costa A MarrierJapanAmy Elsner PROPOSAL
David S SaylorsItalyAsiya Javayant UNQUALIFIED
Darci W MaletBrazilAmy Elsner NEGOTIATION
Morrow I MaletGermanyBernardo Dominic PROPOSAL
Jefferson G SlusarskiIndiaIoni Bowcher UNQUALIFIED
Julie W BriddickItalyElwin Sharvill RENEWAL
Rodrigues A MaletRussiaStephen Shaw UNQUALIFIED
Octavia Z NickaBrazilIoni Bowcher QUALIFIED
Johnson L RulapaughRussiaIoni Bowcher QUALIFIED
David X VocelkaAustraliaIoni Bowcher QUALIFIED
David E SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Jefferson J MacleadJapanIoni Bowcher UNQUALIFIED
Aditya B WhobreyRussiaAsiya Javayant RENEWAL
Nicolas T WhobreyBrazilAsiya Javayant RENEWAL
Maisha W DoeJapanAnna Fali UNQUALIFIED
Salvatore L RoysterRussiaBernardo Dominic NEGOTIATION
Nicolas Y PerinSpainOnyama Limba QUALIFIED
Stacey M DilliardJapanAsiya Javayant PROPOSAL
Tony G WieserUnited KingdomIoni Bowcher NEW
Leon V KolmetzRussiaAsiya Javayant PROPOSAL
Wickens Q GarufiBrazilOnyama Limba QUALIFIED
Aruna T SaylorsJapanAsiya Javayant NEGOTIATION
Ashley X CampainIndiaIoni Bowcher PROPOSAL
Ashley P RulapaughArgentinaOnyama Limba PROPOSAL
Jefferson B BowleyItalyIvan Magalhaes QUALIFIED
Kadeem S FollerBrazilXuxue Feng QUALIFIED
Juan K BologniaIndiaXuxue Feng UNQUALIFIED
Isabel I FerenczArgentinaStephen Shaw NEGOTIATION
Kadeem F PerinFranceBernardo Dominic RENEWAL
Clifford X WaycottJapanAsiya Javayant NEW
Darci E MorascaItalyAmy Elsner QUALIFIED
Frozen Columns
Name
Costa N Malet
Wickens J Nestle
Maisha D Wieser
Cody D Tollner
Greenwood M Marrier
Jones H Butt
Nicolas Q Poquette
Leja M Tollner
Mayumi S Royster
Salvatore E Rulapaugh
Morrow I Foller
Ashley S Dilliard
Juan H Shinko
Maria J Briddick
Juan Z Bowley
Kadeem D Sergi
Izzy S Flosi
Leja H Stockham
Adams B Whobrey
Jennifer N Gillian
Silvio V Venere
Leon M Morasca
Mayumi L Bowley
Nicolas K Morasca
Murillo T Figeroa
Jefferson F Albares
Maisha X Marrier
Silvio L Amigon
Jones Y Marrier
Aika X Waycott
Julie T Maclead
Costa R Nicka
Chavez L Bolognia
Smith O Malet
Darci Q Oldroyd
Maria A Albares
Munro Q Dilliard
Ivar M Vocelka
Leon O Morasca
Izzy C Slusarski
Munro C Slusarski
Clifford Q Bowley
Leja N Kusko
Morrow Z Doe
James J Saylors
Darci B Royster
Murillo W Glick
Aika R Vocelka
Julie R Morasca
Ivar V Caldarera
IdCountryDate
1000Australia2026-07-03
1001France2026-06-12
1002France2026-06-09
1003Argentina2026-06-10
1004Japan2026-06-23
1005Argentina2026-06-16
1006India2026-06-15
1007Germany2026-06-11
1008Italy2026-06-27
1009Argentina2026-06-10
1010Germany2026-06-09
1011Italy2026-07-04
1012Australia2026-06-05
1013India2026-06-23
1014Brazil2026-06-09
1015Italy2026-06-29
1016Argentina2026-06-23
1017Australia2026-06-29
1018Brazil2026-06-14
1019Russia2026-06-05
1020Japan2026-06-17
1021France2026-06-16
1022United Kingdom2026-06-12
1023United Kingdom2026-06-16
1024Japan2026-07-01
1025Spain2026-07-04
1026Italy2026-06-23
1027Russia2026-06-20
1028Spain2026-06-17
1029France2026-06-09
1030Japan2026-06-12
1031Germany2026-06-24
1032India2026-06-23
1033Brazil2026-06-16
1034Argentina2026-06-20
1035Germany2026-06-10
1036France2026-06-14
1037Germany2026-06-10
1038India2026-06-20
1039Argentina2026-07-02
1040Russia2026-06-27
1041Russia2026-06-12
1042Brazil2026-06-23
1043India2026-06-12
1044Spain2026-06-27
1045Japan2026-06-05
1046Italy2026-07-04
1047Australia2026-06-19
1048Canada2026-06-28
1049Australia2026-06-25

On-Demand Data

NameIdCountryDate
Silvio X Glick1000Italy2026-06-26
Arvin J Garufi1001Spain2026-06-12
Nicolas L Waycott1002India2026-06-14
Leon N Morasca1003Canada2026-06-17
Claire Y Rim1004Brazil2026-06-26
Arvin T Garufi1005Australia2026-07-01
Wickens E Figeroa1006United Kingdom2026-07-02
Arvin I Garufi1007Argentina2026-06-08
Arvin P Glick1008Germany2026-07-04
Emily R Amigon1009France2026-06-20
Mayumi W Bolognia1010Argentina2026-07-01
Antonio D Rulapaugh1011Spain2026-06-10
Stacey H Saylors1012Brazil2026-06-08
Misaki Q Malet1013Spain2026-06-10
David G Paprocki1014Italy2026-06-09
Ashley A Oldroyd1015Italy2026-06-23
Claire B Whobrey1016Germany2026-06-18
Faith J Malet1017United Kingdom2026-06-11
Murillo E Marrier1018Spain2026-07-03
Morrow F Dilliard1019Australia2026-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James P MaletItalyAnna Fali RENEWAL
Claire Y ButtAustraliaBernardo Dominic NEGOTIATION
Sinclair R FigeroaJapanElwin Sharvill PROPOSAL
Jennifer B SaylorsAustraliaBernardo Dominic UNQUALIFIED
Faith F RutaIndiaIvan Magalhaes RENEWAL
Misaki Q DoeItalyIvan Magalhaes UNQUALIFIED
Smith E KolmetzSpainAnna Fali NEGOTIATION
Aika L FollerItalyAsiya Javayant NEGOTIATION
Rodrigues G SaylorsSpainIoni Bowcher PROPOSAL
Jones T SlusarskiAustraliaAnna Fali RENEWAL
Arvin Z PerinCanadaIoni Bowcher NEGOTIATION
Arvin F KuskoGermanyBernardo Dominic NEW
Adams S MacleadAustraliaAnna Fali NEGOTIATION
Octavia X PoquetteItalyOnyama Limba QUALIFIED
Clifford O RulapaughFranceAmy Elsner PROPOSAL
Leon N FlosiIndiaBernardo Dominic PROPOSAL
Munro I RoysterArgentinaElwin Sharvill QUALIFIED
Stacey K KuskoJapanElwin Sharvill QUALIFIED
Munro N InouyeRussiaIvan Magalhaes NEW
Leja M GauchoAustraliaStephen Shaw RENEWAL
Maria E DoeRussiaBernardo Dominic NEGOTIATION
Maisha Y MorascaSpainElwin Sharvill NEGOTIATION
Jeanfrancois L BriddickIndiaIoni Bowcher UNQUALIFIED
Arvin M SchemmerRussiaIvan Magalhaes UNQUALIFIED
Faith C RulapaughSpainAmy Elsner NEGOTIATION
Antonio T GlickBrazilBernardo Dominic RENEWAL
Nicolas R FollerGermanyAsiya Javayant NEW
Kaitlin S ShinkoJapanIvan Magalhaes UNQUALIFIED
Jones Z KuskoUnited KingdomXuxue Feng UNQUALIFIED
Mayumi U WhobreyItalyAmy Elsner PROPOSAL
Leja B DilliardFranceIvan Magalhaes RENEWAL
Octavia A BowleyFranceAmy Elsner PROPOSAL
Silvio V NickaRussiaXuxue Feng PROPOSAL
Rodrigues X BologniaSpainAnna Fali RENEWAL
Tony D MarrierCanadaIvan Magalhaes UNQUALIFIED
Mujtaba B TollnerFranceXuxue Feng NEW
Sinclair G TollnerRussiaElwin Sharvill PROPOSAL
Deepesh Q ShinkoItalyIvan Magalhaes RENEWAL
Isabel V MaletIndiaAnna Fali QUALIFIED
Aika H GillianUnited KingdomAnna Fali 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>