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
Adams B CaldareraItalyIvan Magalhaes QUALIFIED
Aika K StensethUnited KingdomElwin Sharvill QUALIFIED
Adams R AmigonUnited KingdomBernardo Dominic PROPOSAL
Izzy G PoquetteAustraliaAmy Elsner PROPOSAL
Misaki J DarakjyBrazilOnyama Limba NEW
James O WhobreyRussiaXuxue Feng RENEWAL
Greenwood Z BologniaItalyStephen Shaw PROPOSAL
Ricardo G RulapaughCanadaElwin Sharvill QUALIFIED
Munro H ChuiItalyStephen Shaw UNQUALIFIED
Wickens R AmigonSpainStephen Shaw NEW
Rodrigues J FollerCanadaElwin Sharvill PROPOSAL
Juan N AmigonIndiaStephen Shaw PROPOSAL
Stacey G ButtJapanAnna Fali PROPOSAL
Chavez B MaletRussiaXuxue Feng NEGOTIATION
Chavez R CampainIndiaAmy Elsner PROPOSAL
Maria N BologniaGermanyAsiya Javayant PROPOSAL
Maisha Z NickaJapanIvan Magalhaes UNQUALIFIED
Isabel V MacleadItalyStephen Shaw RENEWAL
Ashley S OldroydAustraliaStephen Shaw QUALIFIED
Jeanfrancois U BowleyGermanyElwin Sharvill UNQUALIFIED
Sinclair R PoquetteItalyAnna Fali NEGOTIATION
Claire I WaycottUnited KingdomElwin Sharvill NEW
Adams P MacleadIndiaIvan Magalhaes PROPOSAL
Ivar X KolmetzBrazilOnyama Limba QUALIFIED
Maria U RimBrazilAsiya Javayant PROPOSAL
Jennifer G GillianAustraliaAnna Fali NEGOTIATION
Wickens U FerenczCanadaIoni Bowcher NEGOTIATION
Octavia Q RulapaughSpainOnyama Limba QUALIFIED
Darci V AmigonRussiaAsiya Javayant NEGOTIATION
Aditya L CampainSpainStephen Shaw UNQUALIFIED
Izzy N MaletIndiaAsiya Javayant PROPOSAL
Octavia R StensethAustraliaAsiya Javayant PROPOSAL
Johnson D DilliardSpainIvan Magalhaes PROPOSAL
Claire F IturbideArgentinaIoni Bowcher RENEWAL
Octavia I BologniaJapanElwin Sharvill NEW
Aditya G SaylorsSpainOnyama Limba NEW
Ashley N KuskoAustraliaOnyama Limba NEGOTIATION
Chavez X RimJapanOnyama Limba NEW
Leon M VocelkaAustraliaXuxue Feng PROPOSAL
Kaitlin H MaletJapanStephen Shaw QUALIFIED
Darci L SergiSpainStephen Shaw UNQUALIFIED
Aika E RutaArgentinaIvan Magalhaes QUALIFIED
Antonio S BriddickArgentinaIvan Magalhaes NEGOTIATION
Francesco I SergiCanadaElwin Sharvill UNQUALIFIED
Nicolas G SlusarskiFranceXuxue Feng PROPOSAL
Arvin Y SergiIndiaAsiya Javayant RENEWAL
Juan D BologniaBrazilAsiya Javayant PROPOSAL
David H ButtRussiaAsiya Javayant RENEWAL
Jefferson E RulapaughRussiaIvan Magalhaes NEW
Morrow X SaylorsSpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues D AmigonCanadaAmy Elsner PROPOSAL
Ricardo W StensethAustraliaStephen Shaw QUALIFIED
Deepesh T StensethRussiaIoni Bowcher PROPOSAL
Jefferson E RimSpainBernardo Dominic NEW
Ashley T VocelkaCanadaXuxue Feng NEGOTIATION
Ashley T WhobreyJapanElwin Sharvill NEW
Costa P VenereRussiaAnna Fali UNQUALIFIED
Maria Y VenereBrazilIoni Bowcher NEW
James C FollerArgentinaIoni Bowcher RENEWAL
Misaki T MacleadBrazilAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony G ShinkoJapan2026-08-09Feiner Bros PROPOSAL2Onyama Limba
1001Alejandro G PoquetteSpain2026-08-05Truhlar And Truhlar Attys NEGOTIATION2Onyama Limba
1002Sinclair N FigeroaSpain2026-08-17Chemel, James L Cpa QUALIFIED15Asiya Javayant
1003Leon N FollerArgentina2026-08-17Morlong Associates UNQUALIFIED7Xuxue Feng
1004Chavez X MaletItaly2026-08-14Commercial Press QUALIFIED76Onyama Limba
1005Cody V PoquetteCanada2026-08-03King, Christopher A Esq NEGOTIATION71Stephen Shaw
1006Emily D FlosiCanada2026-08-14Commercial Press PROPOSAL99Ioni Bowcher
1007David J DarakjyFrance2026-08-09Feiner Bros RENEWAL95Elwin Sharvill
1008Izzy O NickaRussia2026-08-06Benton, John B Jr QUALIFIED11Asiya Javayant
1009Juan Y WhobreyCanada2026-07-27Chemel, James L Cpa QUALIFIED19Ivan Magalhaes
1010Silvio D FerenczGermany2026-07-25Rangoni Of Florence NEW86Onyama Limba
1011Clifford V RimCanada2026-08-12King, Christopher A Esq NEGOTIATION15Bernardo Dominic
1012Nicolas T WhobreySpain2026-07-19Commercial Press NEGOTIATION53Stephen Shaw
1013Nicolas H CaldareraJapan2026-08-07Benton, John B Jr UNQUALIFIED31Ioni Bowcher
1014Clifford O MorascaGermany2026-08-14Rousseaux, Michael Esq NEGOTIATION58Ivan Magalhaes
1015Murillo B AlbaresArgentina2026-08-10Rangoni Of Florence RENEWAL85Elwin Sharvill
1016Maisha Q MaletAustralia2026-08-10Truhlar And Truhlar Attys NEW1Anna Fali
1017David T SchemmerGermany2026-07-26Chapman, Ross E Esq NEGOTIATION57Elwin Sharvill
1018Costa Z AmigonIndia2026-08-12Benton, John B Jr PROPOSAL82Ioni Bowcher
1019Sinclair Q NestleRussia2026-07-19Feltz Printing Service UNQUALIFIED90Elwin Sharvill
1020Antonio I RutaGermany2026-07-25Rousseaux, Michael Esq NEGOTIATION14Anna Fali
1021Greenwood F ButtCanada2026-07-23Feiner Bros PROPOSAL80Elwin Sharvill
1022Munro J OldroydAustralia2026-08-11Commercial Press NEW20Asiya Javayant
1023Nicolas J RoysterAustralia2026-08-06Chanay, Jeffrey A Esq UNQUALIFIED92Elwin Sharvill
1024Greenwood A DarakjyItaly2026-07-22King, Christopher A Esq RENEWAL27Ioni Bowcher
1025Cody E CampainRussia2026-07-21Chapman, Ross E Esq UNQUALIFIED82Bernardo Dominic
1026Jones E IturbideJapan2026-08-15Chanay, Jeffrey A Esq NEW15Ioni Bowcher
1027Rodrigues E AlbaresArgentina2026-07-30Chemel, James L Cpa UNQUALIFIED56Amy Elsner
1028Tony Z MacleadRussia2026-08-16Feiner Bros NEW81Asiya Javayant
1029Jeanfrancois B TollnerFrance2026-07-29Chapman, Ross E Esq NEW86Ivan Magalhaes
1030Deepesh O VenereJapan2026-07-29Chemel, James L Cpa UNQUALIFIED60Elwin Sharvill
1031Leon Q WieserItaly2026-08-04Commercial Press PROPOSAL71Onyama Limba
1032Arvin R CaldareraSpain2026-08-14Morlong Associates NEW60Bernardo Dominic
1033Misaki M DoeBrazil2026-08-07Benton, John B Jr RENEWAL28Stephen Shaw
1034Izzy U FigeroaIndia2026-07-29Feiner Bros RENEWAL48Stephen Shaw
1035Ashley R SergiItaly2026-07-19Chapman, Ross E Esq QUALIFIED57Anna Fali
1036Aika O OldroydArgentina2026-08-12Rangoni Of Florence UNQUALIFIED71Asiya Javayant
1037Costa W AmigonGermany2026-08-12King, Christopher A Esq NEW2Onyama Limba
1038Wickens W MorascaCanada2026-08-09Benton, John B Jr NEGOTIATION16Onyama Limba
1039Emily R ButtUnited Kingdom2026-08-13Chapman, Ross E Esq NEW66Xuxue Feng
1040Mujtaba H ButtArgentina2026-07-26Buckley Miller Wright PROPOSAL60Elwin Sharvill
1041Aditya H MorascaItaly2026-07-22Rousseaux, Michael Esq NEGOTIATION55Elwin Sharvill
1042Kadeem V KuskoJapan2026-07-27Dorl, James J Esq QUALIFIED39Asiya Javayant
1043Wickens V NickaBrazil2026-07-28Feiner Bros RENEWAL13Anna Fali
1044Juan P GarufiCanada2026-07-22Rousseaux, Michael Esq NEW55Asiya Javayant
1045Mujtaba D BriddickFrance2026-07-20Chapman, Ross E Esq NEGOTIATION95Onyama Limba
1046Antonio E RutaAustralia2026-07-31Chemel, James L Cpa PROPOSAL39Ioni Bowcher
1047Rodrigues K GlickRussia2026-08-04Rousseaux, Michael Esq NEW61Amy Elsner
1048Mayumi Y IturbideUnited Kingdom2026-08-02Rousseaux, Michael Esq RENEWAL78Xuxue Feng
1049Adams N VocelkaFrance2026-08-02Chanay, Jeffrey A Esq NEW22Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie T NestleCanadaAnna Fali NEW
Tony U MaletIndiaOnyama Limba UNQUALIFIED
Clifford V ShinkoAustraliaBernardo Dominic NEW
Smith L RoysterRussiaBernardo Dominic PROPOSAL
Octavia J BriddickSpainBernardo Dominic NEW
Kaitlin Q DilliardArgentinaAnna Fali UNQUALIFIED
Clifford M WaycottJapanOnyama Limba NEGOTIATION
Adams Y SchemmerBrazilStephen Shaw UNQUALIFIED
Smith O DoeArgentinaBernardo Dominic QUALIFIED
Clifford H GlickIndiaIvan Magalhaes RENEWAL
Darci V FerenczCanadaStephen Shaw UNQUALIFIED
Jennifer W MorascaArgentinaIoni Bowcher NEW
Murillo Z MorascaCanadaAsiya Javayant NEGOTIATION
Jeanfrancois B ButtItalyStephen Shaw UNQUALIFIED
Faith H FlosiRussiaStephen Shaw NEGOTIATION
Darci S MacleadArgentinaIoni Bowcher UNQUALIFIED
Smith S MaletGermanyIvan Magalhaes NEW
Nicolas B FollerBrazilBernardo Dominic UNQUALIFIED
Deepesh D DilliardGermanyAsiya Javayant NEGOTIATION
James S TollnerJapanStephen Shaw UNQUALIFIED
Jennifer G AlbaresArgentinaIvan Magalhaes QUALIFIED
Munro B FollerFranceIvan Magalhaes NEGOTIATION
Jefferson A CaudyFranceIvan Magalhaes NEGOTIATION
Ivar F RulapaughBrazilXuxue Feng PROPOSAL
Isabel I SergiUnited KingdomXuxue Feng NEW
Sinclair T AlbaresFranceAnna Fali RENEWAL
Misaki L StensethIndiaElwin Sharvill NEGOTIATION
Emily H SchemmerItalyAnna Fali QUALIFIED
Alejandro L KuskoCanadaOnyama Limba RENEWAL
Ashley J FlosiBrazilXuxue Feng PROPOSAL
Ashley F BologniaAustraliaOnyama Limba UNQUALIFIED
Kaitlin U DarakjySpainIoni Bowcher NEGOTIATION
Alejandro E RulapaughSpainAmy Elsner NEGOTIATION
Morrow C InouyeArgentinaIoni Bowcher QUALIFIED
Cody Q CampainFranceIoni Bowcher NEGOTIATION
Emily N StockhamJapanIoni Bowcher PROPOSAL
Jeanfrancois Z FollerItalyAmy Elsner RENEWAL
Octavia F BriddickCanadaOnyama Limba QUALIFIED
Misaki W ShinkoBrazilAnna Fali NEGOTIATION
Deepesh L MaletJapanAsiya Javayant UNQUALIFIED
Jones G VenereAustraliaAnna Fali QUALIFIED
Arvin N SergiArgentinaIoni Bowcher QUALIFIED
Alejandro R GarufiArgentinaAmy Elsner QUALIFIED
Jeanfrancois D PerinJapanIvan Magalhaes UNQUALIFIED
Greenwood K KuskoRussiaIvan Magalhaes UNQUALIFIED
Adams B GillianRussiaIvan Magalhaes NEW
Johnson H VenereSpainElwin Sharvill UNQUALIFIED
Julie F RulapaughRussiaBernardo Dominic NEW
Misaki C CaldareraAustraliaElwin Sharvill NEGOTIATION
Ivar L PerinItalyIvan Magalhaes QUALIFIED
Frozen Columns
Name
Morrow X Ferencz
Misaki J Chui
Aruna F Amigon
Ashley P Whobrey
Octavia P Ruta
Julie G Glick
Ricardo P Wieser
Clifford J Venere
Mujtaba D Kolmetz
Chavez P Rim
Sinclair E Slusarski
Wickens A Slusarski
Darci V Inouye
Deepesh Y Waycott
Costa E Nicka
Kaitlin R Royster
Cody E Vocelka
Chavez K Chui
Jeanfrancois S Poquette
Nicolas I Chui
Izzy R Waycott
Leon W Vocelka
Costa A Tollner
Stacey N Albares
David Z Waycott
Johnson R Poquette
Clifford K Butt
Costa Y Ostrosky
Kadeem J Paprocki
Claire U Marrier
Chavez K Butt
Leja N Waycott
Jefferson G Dilliard
Alejandro O Bowley
Ricardo F Perin
Johnson C Marrier
Aruna S Caudy
Murillo Y Shinko
Jefferson J Malet
Kaitlin X Morasca
Ivar Y Iturbide
Octavia T Kusko
Izzy R Doe
Mayumi I Oldroyd
Costa E Caudy
Claire W Gaucho
Rodrigues P Foller
Ivar B Ostrosky
Clifford J Glick
Aika L Gaucho
IdCountryDate
1000Russia2026-08-10
1001Australia2026-07-23
1002Italy2026-08-01
1003Germany2026-08-13
1004Australia2026-07-30
1005United Kingdom2026-08-01
1006India2026-07-29
1007Japan2026-08-07
1008Germany2026-08-08
1009France2026-07-22
1010Japan2026-07-23
1011Canada2026-08-03
1012Argentina2026-08-09
1013India2026-08-09
1014Germany2026-08-09
1015India2026-08-01
1016India2026-07-31
1017United Kingdom2026-07-23
1018Italy2026-07-19
1019Germany2026-08-16
1020Germany2026-07-23
1021Germany2026-07-25
1022Italy2026-07-29
1023Canada2026-08-01
1024Germany2026-07-21
1025Spain2026-08-04
1026United Kingdom2026-07-20
1027Italy2026-08-05
1028Canada2026-08-01
1029United Kingdom2026-07-23
1030United Kingdom2026-08-02
1031Argentina2026-08-08
1032Italy2026-08-13
1033India2026-08-05
1034Canada2026-07-20
1035United Kingdom2026-07-21
1036Australia2026-08-14
1037Brazil2026-08-10
1038Canada2026-07-22
1039United Kingdom2026-07-22
1040India2026-08-14
1041France2026-07-22
1042Brazil2026-08-01
1043India2026-08-15
1044Argentina2026-08-08
1045United Kingdom2026-07-31
1046Italy2026-08-11
1047Argentina2026-08-10
1048Japan2026-08-11
1049Spain2026-07-22

On-Demand Data

NameIdCountryDate
Deepesh P Flosi1000Japan2026-08-17
Kadeem A Oldroyd1001United Kingdom2026-08-10
Kadeem H Iturbide1002Germany2026-08-11
Tony Y Saylors1003Argentina2026-08-01
Costa N Nicka1004Australia2026-07-25
Greenwood U Kolmetz1005Japan2026-08-10
Jennifer N Venere1006Australia2026-08-14
Octavia T Glick1007Germany2026-08-11
Salvatore G Rim1008Brazil2026-07-30
Jeanfrancois H Chui1009Argentina2026-08-13
Greenwood T Figeroa1010Spain2026-08-07
Arvin Q Butt1011Germany2026-07-27
David Y Wieser1012Australia2026-08-10
Emily F Rulapaugh1013Canada2026-07-29
Munro L Paprocki1014Argentina2026-08-01
Darci W Nestle1015Russia2026-07-19
Juan V Briddick1016India2026-08-01
Isabel F Iturbide1017Argentina2026-08-05
Darci N Malet1018Russia2026-07-21
Tony X Briddick1019Canada2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci H DilliardBrazilXuxue Feng QUALIFIED
Mayumi M GlickSpainIvan Magalhaes RENEWAL
Murillo P AlbaresArgentinaStephen Shaw UNQUALIFIED
Juan G FerenczSpainIvan Magalhaes PROPOSAL
Tony G GarufiAustraliaIvan Magalhaes NEW
Clifford J RoysterArgentinaAnna Fali NEW
Aditya N NestleItalyOnyama Limba NEW
Murillo E MacleadIndiaIvan Magalhaes PROPOSAL
Octavia S ShinkoBrazilIoni Bowcher UNQUALIFIED
Leon V SlusarskiCanadaIoni Bowcher NEW
Jeanfrancois L KuskoArgentinaStephen Shaw NEGOTIATION
Tony D PerinItalyStephen Shaw RENEWAL
Jennifer P BologniaUnited KingdomAmy Elsner PROPOSAL
David Z RulapaughJapanXuxue Feng PROPOSAL
Johnson O CaldareraJapanOnyama Limba NEW
Darci I StockhamBrazilAnna Fali PROPOSAL
Jefferson X RulapaughSpainBernardo Dominic NEGOTIATION
Aruna W NestleUnited KingdomAnna Fali NEW
Chavez Y FollerSpainOnyama Limba UNQUALIFIED
Leon P InouyeSpainStephen Shaw QUALIFIED
Nicolas N BowleyItalyBernardo Dominic NEW
Mayumi Y PoquetteAustraliaStephen Shaw NEGOTIATION
Morrow Z GarufiFranceElwin Sharvill NEGOTIATION
Ashley J StockhamIndiaAsiya Javayant UNQUALIFIED
Isabel K BowleyBrazilIvan Magalhaes QUALIFIED
Arvin B DoeGermanyAmy Elsner NEGOTIATION
Faith I GlickIndiaBernardo Dominic PROPOSAL
Octavia S BologniaSpainAsiya Javayant PROPOSAL
Juan T PaprockiJapanAnna Fali PROPOSAL
Misaki K VocelkaRussiaAnna Fali UNQUALIFIED
Ivar Q RimUnited KingdomElwin Sharvill RENEWAL
Ashley R WhobreyIndiaXuxue Feng NEW
James K DoeCanadaOnyama Limba UNQUALIFIED
Tony M StockhamJapanOnyama Limba NEW
Jones R WhobreySpainOnyama Limba RENEWAL
Morrow I BologniaUnited KingdomOnyama Limba PROPOSAL
Alejandro S KolmetzBrazilStephen Shaw NEGOTIATION
Greenwood R RoysterItalyAmy Elsner NEGOTIATION
Wickens Y OldroydJapanXuxue Feng RENEWAL
Arvin W InouyeCanadaElwin Sharvill RENEWAL

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