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
Munro L GillianIndiaBernardo Dominic NEW
Darci X ButtFranceOnyama Limba UNQUALIFIED
Aditya W NestleCanadaOnyama Limba UNQUALIFIED
Clifford O DilliardJapanXuxue Feng RENEWAL
Ricardo A InouyeUnited KingdomStephen Shaw NEGOTIATION
Octavia L CaudyJapanElwin Sharvill QUALIFIED
Deepesh J RutaIndiaAnna Fali NEGOTIATION
Francesco A DoeArgentinaAnna Fali RENEWAL
Arvin R WhobreyGermanyIoni Bowcher NEW
Murillo M ChuiCanadaAsiya Javayant NEGOTIATION
Maisha X CaudyCanadaIoni Bowcher NEW
Aditya Q MorascaRussiaAsiya Javayant NEGOTIATION
Jones B RimUnited KingdomIvan Magalhaes NEGOTIATION
Juan V MaletSpainAmy Elsner PROPOSAL
Clifford T ShinkoArgentinaAnna Fali RENEWAL
Antonio W PoquetteRussiaXuxue Feng RENEWAL
Murillo L CaldareraIndiaStephen Shaw PROPOSAL
David X BriddickFranceAmy Elsner PROPOSAL
Darci Q WaycottItalyBernardo Dominic UNQUALIFIED
Mayumi D WaycottAustraliaAsiya Javayant UNQUALIFIED
Morrow Q SchemmerArgentinaXuxue Feng RENEWAL
Smith C MorascaJapanOnyama Limba NEGOTIATION
Aruna L DoeIndiaAsiya Javayant NEW
Johnson O NestleCanadaAsiya Javayant NEGOTIATION
Costa K AlbaresCanadaAmy Elsner NEGOTIATION
Salvatore R StensethIndiaIoni Bowcher QUALIFIED
Smith B AmigonCanadaIvan Magalhaes NEGOTIATION
Ashley K CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba W AlbaresFranceAnna Fali PROPOSAL
Kadeem O ButtFranceAnna Fali UNQUALIFIED
Maisha O BologniaBrazilOnyama Limba NEW
Murillo B NestleCanadaOnyama Limba PROPOSAL
Mujtaba G DarakjyArgentinaBernardo Dominic NEGOTIATION
Arvin J FollerUnited KingdomXuxue Feng RENEWAL
Stacey I GillianAustraliaBernardo Dominic NEGOTIATION
Tony U DilliardGermanyElwin Sharvill UNQUALIFIED
Leja Z MorascaJapanIvan Magalhaes RENEWAL
Stacey H WaycottBrazilAmy Elsner NEGOTIATION
Rodrigues X WhobreyCanadaElwin Sharvill RENEWAL
Ashley B DoeSpainIoni Bowcher NEW
Maisha S ShinkoUnited KingdomIvan Magalhaes NEW
Johnson W CaldareraArgentinaIoni Bowcher NEW
Maria G ButtUnited KingdomIoni Bowcher RENEWAL
Misaki G SergiGermanyAmy Elsner NEGOTIATION
Murillo T BologniaJapanBernardo Dominic NEGOTIATION
Tony U MaletRussiaOnyama Limba QUALIFIED
Aika Q OldroydUnited KingdomIoni Bowcher RENEWAL
David K OldroydCanadaAmy Elsner NEGOTIATION
Maisha C WieserItalyElwin Sharvill NEGOTIATION
Leja W RoysterFranceAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba B NickaBrazilAnna Fali RENEWAL
Cody D NickaUnited KingdomAmy Elsner NEGOTIATION
Adams G PoquetteFranceIvan Magalhaes UNQUALIFIED
Leon S SchemmerBrazilAmy Elsner PROPOSAL
Aika D KolmetzAustraliaBernardo Dominic PROPOSAL
Francesco Y SaylorsAustraliaIvan Magalhaes NEGOTIATION
Aika N CampainBrazilIvan Magalhaes PROPOSAL
Aruna J RutaJapanIvan Magalhaes NEW
Sinclair L FerenczUnited KingdomOnyama Limba QUALIFIED
Smith S RimItalyAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci A DarakjyJapan2026-07-26Feltz Printing Service UNQUALIFIED72Ivan Magalhaes
1001Greenwood Y RutaJapan2026-07-22Rangoni Of Florence PROPOSAL2Onyama Limba
1002Wickens X MarrierGermany2026-07-30Printing Dimensions RENEWAL71Ivan Magalhaes
1003Leja O GillianBrazil2026-08-10Chapman, Ross E Esq RENEWAL85Onyama Limba
1004Misaki M SlusarskiBrazil2026-07-30Morlong Associates UNQUALIFIED48Asiya Javayant
1005Salvatore I MaletSpain2026-08-02Chanay, Jeffrey A Esq NEGOTIATION17Asiya Javayant
1006Aruna Q MacleadBrazil2026-08-10Commercial Press NEW79Ivan Magalhaes
1007Greenwood O PaprockiArgentina2026-08-03Chemel, James L Cpa NEW72Amy Elsner
1008Cody R NickaGermany2026-07-23Commercial Press UNQUALIFIED81Anna Fali
1009Greenwood K VocelkaItaly2026-08-07Feiner Bros UNQUALIFIED61Ioni Bowcher
1010Misaki V ButtUnited Kingdom2026-08-01Chanay, Jeffrey A Esq NEGOTIATION23Amy Elsner
1011Ivar P VocelkaUnited Kingdom2026-08-20Rousseaux, Michael Esq NEGOTIATION58Amy Elsner
1012Munro Z BriddickIndia2026-08-07Rousseaux, Michael Esq RENEWAL69Elwin Sharvill
1013Francesco D PoquetteSpain2026-08-09Dorl, James J Esq NEGOTIATION47Ivan Magalhaes
1014Isabel R AmigonIndia2026-08-15Feiner Bros PROPOSAL42Elwin Sharvill
1015David J PerinJapan2026-07-22Commercial Press UNQUALIFIED23Amy Elsner
1016Stacey K FerenczFrance2026-08-05Dorl, James J Esq RENEWAL65Onyama Limba
1017Faith H VocelkaItaly2026-08-19Chanay, Jeffrey A Esq UNQUALIFIED34Amy Elsner
1018Arvin B PoquetteGermany2026-08-20Morlong Associates NEGOTIATION12Anna Fali
1019Sinclair J RulapaughCanada2026-07-29Chapman, Ross E Esq NEW45Anna Fali
1020Kadeem D WieserIndia2026-07-25Commercial Press UNQUALIFIED59Stephen Shaw
1021Greenwood I ChuiArgentina2026-08-11King, Christopher A Esq NEW40Anna Fali
1022Aditya K OstroskyFrance2026-08-06Chanay, Jeffrey A Esq NEGOTIATION52Onyama Limba
1023Darci X FlosiRussia2026-08-18Dorl, James J Esq NEW19Stephen Shaw
1024Costa R MarrierUnited Kingdom2026-08-12Printing Dimensions QUALIFIED57Anna Fali
1025Aika U PoquetteRussia2026-07-25King, Christopher A Esq NEW27Elwin Sharvill
1026Maria G MarrierBrazil2026-08-06Rangoni Of Florence NEW12Bernardo Dominic
1027Johnson A CaldareraSpain2026-08-08Printing Dimensions QUALIFIED23Onyama Limba
1028Julie P MorascaRussia2026-07-26Rousseaux, Michael Esq RENEWAL95Elwin Sharvill
1029Leon M ButtJapan2026-07-22Buckley Miller Wright UNQUALIFIED44Amy Elsner
1030Claire S WhobreyBrazil2026-08-09Rousseaux, Michael Esq QUALIFIED51Onyama Limba
1031Costa G MorascaSpain2026-08-08Rousseaux, Michael Esq NEW4Anna Fali
1032Leja K VocelkaFrance2026-08-01Chanay, Jeffrey A Esq NEW58Anna Fali
1033Emily B FerenczAustralia2026-07-24Printing Dimensions NEGOTIATION49Ivan Magalhaes
1034Darci I NestleCanada2026-08-12Feiner Bros PROPOSAL41Xuxue Feng
1035Alejandro S SlusarskiJapan2026-07-31Rousseaux, Michael Esq NEW90Anna Fali
1036Emily U VenereBrazil2026-07-26Rangoni Of Florence NEGOTIATION40Ivan Magalhaes
1037Claire K VenereArgentina2026-08-09Feiner Bros PROPOSAL2Amy Elsner
1038Silvio I RoysterRussia2026-08-07King, Christopher A Esq UNQUALIFIED34Xuxue Feng
1039Mayumi U BowleyUnited Kingdom2026-08-20Rousseaux, Michael Esq UNQUALIFIED97Onyama Limba
1040Maria M MaletAustralia2026-08-01Rousseaux, Michael Esq RENEWAL44Stephen Shaw
1041David K DilliardGermany2026-07-28Benton, John B Jr PROPOSAL22Ioni Bowcher
1042Misaki W NestleSpain2026-08-01King, Christopher A Esq QUALIFIED33Stephen Shaw
1043Munro L RulapaughGermany2026-08-11Truhlar And Truhlar Attys PROPOSAL44Amy Elsner
1044Adams T TollnerArgentina2026-07-27Rousseaux, Michael Esq NEGOTIATION77Bernardo Dominic
1045Jones D CaudyIndia2026-08-12Rousseaux, Michael Esq NEGOTIATION33Amy Elsner
1046Aditya Y CaudyIndia2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED54Bernardo Dominic
1047Leja A CaudyUnited Kingdom2026-08-11Chemel, James L Cpa QUALIFIED20Xuxue Feng
1048Ricardo F WaycottGermany2026-08-16Buckley Miller Wright RENEWAL89Ioni Bowcher
1049Leon H DoeItaly2026-07-22Chapman, Ross E Esq PROPOSAL93Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maria W CaudyFranceBernardo Dominic NEGOTIATION
Stacey S SaylorsItalyOnyama Limba UNQUALIFIED
Murillo L IturbideRussiaStephen Shaw NEW
Antonio X AlbaresSpainAsiya Javayant RENEWAL
Smith X BriddickArgentinaOnyama Limba NEGOTIATION
Nicolas V ChuiCanadaAmy Elsner NEGOTIATION
Rodrigues O AmigonSpainIoni Bowcher NEW
Mujtaba X MacleadRussiaAmy Elsner NEW
Jeanfrancois X CaldareraGermanyXuxue Feng UNQUALIFIED
Kadeem Z BriddickFranceAsiya Javayant UNQUALIFIED
Deepesh E ButtRussiaAmy Elsner NEGOTIATION
Aditya G GauchoIndiaAsiya Javayant UNQUALIFIED
Mujtaba C GauchoUnited KingdomAmy Elsner RENEWAL
Arvin M VocelkaArgentinaIoni Bowcher UNQUALIFIED
Silvio T BriddickFranceStephen Shaw RENEWAL
Cody O FollerBrazilStephen Shaw QUALIFIED
Cody X RulapaughJapanAsiya Javayant NEW
Clifford H RulapaughBrazilIvan Magalhaes RENEWAL
Jefferson P GillianArgentinaAnna Fali NEGOTIATION
Adams Z RutaArgentinaAnna Fali UNQUALIFIED
Leja K WieserRussiaElwin Sharvill NEW
Izzy N KuskoRussiaAsiya Javayant PROPOSAL
Julie Z FigeroaRussiaAsiya Javayant QUALIFIED
Aruna X DilliardItalyIoni Bowcher QUALIFIED
Aruna U ShinkoBrazilAsiya Javayant UNQUALIFIED
Ricardo C KuskoBrazilAmy Elsner UNQUALIFIED
Arvin E MaletBrazilOnyama Limba QUALIFIED
Mayumi M ChuiBrazilOnyama Limba NEGOTIATION
Jeanfrancois R AlbaresFranceBernardo Dominic PROPOSAL
Faith H BologniaAustraliaIvan Magalhaes QUALIFIED
Ricardo E RutaBrazilIoni Bowcher UNQUALIFIED
Jones X VocelkaSpainOnyama Limba NEGOTIATION
Ricardo P CaldareraCanadaStephen Shaw NEW
Kaitlin L SchemmerCanadaElwin Sharvill NEW
Smith C BriddickArgentinaAmy Elsner UNQUALIFIED
David L FerenczFranceStephen Shaw UNQUALIFIED
Murillo V DarakjyArgentinaOnyama Limba RENEWAL
Chavez Z CaudyJapanAsiya Javayant NEW
Kaitlin I GlickJapanAmy Elsner PROPOSAL
Maisha Y KolmetzRussiaStephen Shaw NEGOTIATION
Nicolas K FerenczIndiaAmy Elsner QUALIFIED
Murillo E SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Izzy A RutaUnited KingdomElwin Sharvill RENEWAL
Maisha E ButtJapanAsiya Javayant UNQUALIFIED
Jennifer Y MaletJapanStephen Shaw PROPOSAL
Emily Q MaletItalyOnyama Limba QUALIFIED
Ricardo P InouyeCanadaAmy Elsner PROPOSAL
Izzy J MaletRussiaStephen Shaw NEGOTIATION
Mujtaba B ChuiSpainIoni Bowcher QUALIFIED
Sinclair N DilliardRussiaAmy Elsner RENEWAL
Frozen Columns
Name
Sinclair H Butt
Mayumi W Morasca
Francesco Y Briddick
James W Vocelka
Deepesh N Whobrey
Wickens N Wieser
Jennifer X Vocelka
James J Albares
Sinclair M Butt
Jones T Marrier
Sinclair V Whobrey
David W Rim
Morrow R Slusarski
Antonio A Maclead
Morrow L Venere
Maisha D Iturbide
Arvin V Caldarera
Jeanfrancois U Royster
Smith M Darakjy
Murillo P Campain
Francesco X Perin
Leja U Ostrosky
Ashley O Vocelka
David Y Caudy
Wickens M Morasca
Munro P Gaucho
Smith O Saylors
Clifford M Sergi
Emily A Figeroa
Ivar P Inouye
Misaki X Chui
Wickens F Darakjy
Faith H Caudy
Octavia I Kusko
Deepesh V Venere
Leja N Royster
Francesco D Malet
Julie R Maclead
Ashley S Rulapaugh
Francesco W Chui
Alejandro X Darakjy
Tony S Bowley
Jefferson V Stockham
Adams I Caldarera
Ashley W Campain
Julie L Glick
Jennifer R Whobrey
Ashley U Bowley
Aditya F Nestle
David F Malet
IdCountryDate
1000Australia2026-07-23
1001Canada2026-08-07
1002France2026-07-22
1003Japan2026-07-28
1004Australia2026-07-24
1005Brazil2026-08-07
1006Canada2026-07-26
1007Brazil2026-08-14
1008Italy2026-07-30
1009Canada2026-08-07
1010Russia2026-08-03
1011Russia2026-08-11
1012Argentina2026-08-16
1013Germany2026-08-18
1014France2026-07-27
1015Spain2026-08-09
1016Japan2026-08-20
1017Australia2026-08-10
1018Canada2026-07-30
1019Argentina2026-07-24
1020Australia2026-08-20
1021Brazil2026-07-27
1022Spain2026-07-25
1023United Kingdom2026-08-06
1024Brazil2026-08-09
1025Argentina2026-08-19
1026Japan2026-08-06
1027Brazil2026-08-01
1028Canada2026-08-13
1029Argentina2026-08-01
1030Argentina2026-08-14
1031Russia2026-07-30
1032Germany2026-08-04
1033Brazil2026-08-06
1034India2026-07-24
1035Brazil2026-07-25
1036Brazil2026-08-18
1037Italy2026-08-16
1038Germany2026-08-10
1039Spain2026-08-12
1040Canada2026-07-25
1041Australia2026-08-01
1042United Kingdom2026-08-02
1043Japan2026-08-19
1044Spain2026-07-28
1045Argentina2026-08-10
1046Germany2026-08-10
1047United Kingdom2026-08-16
1048Argentina2026-08-11
1049Canada2026-08-20

On-Demand Data

NameIdCountryDate
Greenwood J Malet1000Australia2026-08-15
Deepesh Z Glick1001Australia2026-08-07
Johnson Z Bowley1002Italy2026-07-28
Juan O Schemmer1003United Kingdom2026-08-19
Jones M Slusarski1004Spain2026-08-03
Misaki W Glick1005Argentina2026-08-16
Isabel W Butt1006Italy2026-08-09
Murillo J Ruta1007Russia2026-08-02
Alejandro C Kolmetz1008Russia2026-08-09
Emily Y Rulapaugh1009Spain2026-07-22
Jones V Ostrosky1010Spain2026-08-08
Antonio H Inouye1011United Kingdom2026-07-24
Deepesh T Tollner1012Australia2026-08-07
Ashley D Foller1013Canada2026-08-09
Jefferson N Nestle1014Brazil2026-08-05
Isabel A Garufi1015Germany2026-08-16
Ashley N Chui1016Japan2026-08-10
Tony T Nicka1017India2026-07-26
Rodrigues B Figeroa1018Australia2026-08-05
Wickens B Marrier1019Argentina2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson M FollerSpainStephen Shaw PROPOSAL
Murillo F SlusarskiIndiaElwin Sharvill UNQUALIFIED
Misaki Y MaletIndiaXuxue Feng UNQUALIFIED
Leon L BologniaBrazilAnna Fali NEGOTIATION
Chavez T VocelkaArgentinaXuxue Feng QUALIFIED
Morrow Q RutaGermanyOnyama Limba NEGOTIATION
Clifford F FigeroaItalyElwin Sharvill NEW
Aruna I OldroydGermanyElwin Sharvill RENEWAL
Emily W NestleSpainBernardo Dominic NEW
Greenwood E SergiArgentinaStephen Shaw RENEWAL
Aika U PerinAustraliaXuxue Feng PROPOSAL
Juan Z AlbaresAustraliaOnyama Limba NEW
Nicolas N ButtFranceAmy Elsner UNQUALIFIED
Maisha I MacleadIndiaIoni Bowcher UNQUALIFIED
Cody M SergiItalyIoni Bowcher NEW
Salvatore Q MaletCanadaIvan Magalhaes NEGOTIATION
Chavez W ChuiArgentinaAsiya Javayant NEGOTIATION
David Q KolmetzFranceXuxue Feng PROPOSAL
Claire A DarakjyFranceBernardo Dominic PROPOSAL
Maria T GarufiFranceAnna Fali RENEWAL
Maria L GarufiBrazilAmy Elsner RENEWAL
Ashley I MorascaArgentinaIoni Bowcher NEGOTIATION
Salvatore K DoeAustraliaXuxue Feng UNQUALIFIED
Deepesh X MarrierUnited KingdomBernardo Dominic NEW
James O MaletIndiaElwin Sharvill NEGOTIATION
James J NickaItalyOnyama Limba PROPOSAL
Leja J GauchoBrazilBernardo Dominic NEGOTIATION
Jeanfrancois K GarufiAustraliaBernardo Dominic PROPOSAL
Wickens K GauchoIndiaStephen Shaw RENEWAL
Ashley L MaletJapanXuxue Feng RENEWAL
Jones L SchemmerGermanyIvan Magalhaes PROPOSAL
Johnson N ButtFranceXuxue Feng QUALIFIED
Misaki J AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin E CampainBrazilStephen Shaw RENEWAL
Octavia C BriddickRussiaBernardo Dominic UNQUALIFIED
Jefferson R WaycottJapanOnyama Limba QUALIFIED
Juan G CaudyCanadaAsiya Javayant QUALIFIED
Wickens D MorascaGermanyXuxue Feng NEW
Silvio P OldroydRussiaBernardo Dominic RENEWAL
Costa E BowleyJapanXuxue Feng NEGOTIATION

<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>