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
Deepesh M CaldareraGermanyBernardo Dominic NEGOTIATION
Aditya W VenereAustraliaStephen Shaw RENEWAL
Mujtaba G BologniaBrazilElwin Sharvill RENEWAL
David F MarrierGermanyBernardo Dominic NEW
Izzy A AlbaresFranceElwin Sharvill PROPOSAL
Kaitlin F WhobreyRussiaStephen Shaw UNQUALIFIED
Jennifer W OldroydFranceIoni Bowcher UNQUALIFIED
Cody V KolmetzArgentinaXuxue Feng NEGOTIATION
James X AlbaresItalyStephen Shaw QUALIFIED
Isabel N WhobreyFranceIoni Bowcher PROPOSAL
Wickens U PaprockiRussiaOnyama Limba NEGOTIATION
Aditya V NestleFranceIvan Magalhaes UNQUALIFIED
Costa U WhobreyGermanyXuxue Feng NEW
Sinclair C RoysterIndiaIvan Magalhaes PROPOSAL
Aditya J AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Aruna Q KolmetzIndiaAsiya Javayant NEW
Claire U SchemmerRussiaOnyama Limba NEW
Mujtaba U RimJapanBernardo Dominic RENEWAL
Greenwood K NickaArgentinaOnyama Limba UNQUALIFIED
Sinclair J MaletItalyIoni Bowcher QUALIFIED
Nicolas L DarakjyRussiaStephen Shaw PROPOSAL
Aruna F BriddickArgentinaXuxue Feng NEGOTIATION
Chavez R OldroydJapanAmy Elsner PROPOSAL
Isabel P RimCanadaAsiya Javayant NEW
Ashley T GlickCanadaBernardo Dominic NEGOTIATION
Greenwood B BowleyGermanyAsiya Javayant QUALIFIED
Antonio B GlickGermanyOnyama Limba UNQUALIFIED
Ashley A SaylorsRussiaBernardo Dominic NEGOTIATION
Johnson X NestleSpainAnna Fali UNQUALIFIED
Rodrigues D MaletSpainOnyama Limba QUALIFIED
Smith V BologniaJapanOnyama Limba RENEWAL
Aditya J ChuiGermanyIoni Bowcher NEGOTIATION
Wickens W TollnerItalyBernardo Dominic NEGOTIATION
Mujtaba K SaylorsFranceAnna Fali RENEWAL
Stacey W MorascaFranceXuxue Feng RENEWAL
Jennifer D IturbideUnited KingdomAmy Elsner UNQUALIFIED
Sinclair U VenereIndiaStephen Shaw NEGOTIATION
Faith L RutaBrazilAnna Fali QUALIFIED
Johnson Q SergiGermanyOnyama Limba PROPOSAL
Johnson T RulapaughAustraliaAnna Fali PROPOSAL
Ricardo C InouyeCanadaAsiya Javayant UNQUALIFIED
Antonio E DilliardAustraliaBernardo Dominic PROPOSAL
Antonio R GauchoArgentinaAsiya Javayant UNQUALIFIED
Jennifer E AlbaresItalyAnna Fali NEW
Antonio T CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Misaki Z AmigonIndiaIoni Bowcher QUALIFIED
Mayumi T MacleadArgentinaXuxue Feng QUALIFIED
Munro T AlbaresJapanXuxue Feng PROPOSAL
Tony D BriddickBrazilOnyama Limba NEW
Jones P ButtGermanyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel Z RulapaughGermanyAmy Elsner UNQUALIFIED
Silvio Z MacleadSpainAmy Elsner NEGOTIATION
Rodrigues M WhobreyUnited KingdomBernardo Dominic PROPOSAL
Aika H GillianFranceXuxue Feng NEW
Faith W ButtFranceAnna Fali QUALIFIED
Darci G MorascaBrazilOnyama Limba NEW
Sinclair T SaylorsUnited KingdomAnna Fali UNQUALIFIED
Salvatore L PoquetteGermanyXuxue Feng QUALIFIED
Juan R SergiAustraliaAsiya Javayant QUALIFIED
Jefferson H ShinkoAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez S MorascaFrance2026-08-23Rousseaux, Michael Esq NEGOTIATION31Elwin Sharvill
1001Sinclair P PerinIndia2026-08-10Chemel, James L Cpa RENEWAL68Bernardo Dominic
1002Smith K RimArgentina2026-08-26Dorl, James J Esq UNQUALIFIED94Onyama Limba
1003Leja G KolmetzFrance2026-08-04Morlong Associates NEGOTIATION13Bernardo Dominic
1004Greenwood H StensethSpain2026-08-20King, Christopher A Esq NEW3Asiya Javayant
1005Izzy T FlosiBrazil2026-08-18Dorl, James J Esq QUALIFIED51Onyama Limba
1006Octavia P DilliardCanada2026-08-17Feltz Printing Service PROPOSAL41Asiya Javayant
1007Jeanfrancois W MorascaBrazil2026-08-18Morlong Associates QUALIFIED66Asiya Javayant
1008Darci Y OldroydCanada2026-08-17Benton, John B Jr NEW68Ivan Magalhaes
1009Emily J CaldareraAustralia2026-08-03Chanay, Jeffrey A Esq RENEWAL14Onyama Limba
1010Aditya Q CaudyJapan2026-08-20Benton, John B Jr UNQUALIFIED22Ivan Magalhaes
1011Clifford O NestleRussia2026-08-11Rousseaux, Michael Esq QUALIFIED10Asiya Javayant
1012Mujtaba Y FlosiArgentina2026-08-20Buckley Miller Wright QUALIFIED57Bernardo Dominic
1013Julie R CampainUnited Kingdom2026-08-09King, Christopher A Esq UNQUALIFIED62Onyama Limba
1014Ivar U BriddickGermany2026-07-31Buckley Miller Wright RENEWAL53Xuxue Feng
1015Maisha X FigeroaItaly2026-08-28King, Christopher A Esq PROPOSAL18Elwin Sharvill
1016Juan Z GillianAustralia2026-08-01Commercial Press QUALIFIED74Elwin Sharvill
1017Alejandro Z GlickAustralia2026-08-17Chanay, Jeffrey A Esq NEW28Amy Elsner
1018Wickens I MorascaJapan2026-07-31Printing Dimensions RENEWAL74Xuxue Feng
1019Jennifer N GlickItaly2026-08-26Chapman, Ross E Esq NEW83Bernardo Dominic
1020Kaitlin K FerenczGermany2026-08-05Feiner Bros QUALIFIED69Onyama Limba
1021Faith S SergiUnited Kingdom2026-07-31Truhlar And Truhlar Attys PROPOSAL79Onyama Limba
1022Smith J PoquetteJapan2026-08-27Morlong Associates QUALIFIED98Ivan Magalhaes
1023Jefferson R MarrierFrance2026-08-20Feiner Bros RENEWAL69Xuxue Feng
1024Salvatore P FollerItaly2026-08-28Feiner Bros NEGOTIATION56Ioni Bowcher
1025Darci I FerenczCanada2026-08-16Morlong Associates PROPOSAL99Xuxue Feng
1026Izzy E OldroydSpain2026-08-18Morlong Associates QUALIFIED14Stephen Shaw
1027Stacey H GarufiBrazil2026-08-14Feiner Bros NEW71Stephen Shaw
1028Clifford Y RutaItaly2026-08-09Dorl, James J Esq QUALIFIED0Elwin Sharvill
1029Claire Q NickaCanada2026-08-10King, Christopher A Esq QUALIFIED29Xuxue Feng
1030Arvin B RutaUnited Kingdom2026-08-27Printing Dimensions UNQUALIFIED98Amy Elsner
1031Aika D RulapaughGermany2026-08-16Rousseaux, Michael Esq NEW41Ioni Bowcher
1032Leja J IturbideUnited Kingdom2026-08-04King, Christopher A Esq RENEWAL66Ivan Magalhaes
1033Misaki I FollerIndia2026-08-06Benton, John B Jr NEW85Xuxue Feng
1034Faith P CampainRussia2026-08-04Dorl, James J Esq PROPOSAL96Amy Elsner
1035David K KuskoSpain2026-08-06Chapman, Ross E Esq NEGOTIATION38Amy Elsner
1036Silvio Q PerinCanada2026-08-28Truhlar And Truhlar Attys NEW98Ivan Magalhaes
1037Aditya H WieserJapan2026-08-28Chemel, James L Cpa RENEWAL13Xuxue Feng
1038Octavia O RutaUnited Kingdom2026-08-20Chanay, Jeffrey A Esq QUALIFIED58Xuxue Feng
1039Aika U DilliardUnited Kingdom2026-08-20Buckley Miller Wright NEW17Ivan Magalhaes
1040Ricardo K FollerAustralia2026-08-16Printing Dimensions NEGOTIATION22Stephen Shaw
1041Kadeem L CampainCanada2026-08-15Truhlar And Truhlar Attys NEW38Ivan Magalhaes
1042Wickens I BriddickCanada2026-08-23Rangoni Of Florence NEGOTIATION65Bernardo Dominic
1043Alejandro I GarufiIndia2026-08-14Rousseaux, Michael Esq RENEWAL82Anna Fali
1044Murillo Z MorascaSpain2026-08-01Commercial Press UNQUALIFIED15Onyama Limba
1045Maisha J NickaBrazil2026-08-02Buckley Miller Wright NEGOTIATION15Anna Fali
1046Munro B WhobreyCanada2026-08-21Commercial Press NEGOTIATION97Ivan Magalhaes
1047James Z SlusarskiSpain2026-08-11Dorl, James J Esq RENEWAL74Stephen Shaw
1048Leon N FerenczIndia2026-08-02Dorl, James J Esq QUALIFIED19Xuxue Feng
1049Cody I RulapaughIndia2026-08-10Rangoni Of Florence RENEWAL28Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Faith C MaletJapanIoni Bowcher PROPOSAL
Deepesh D OstroskyBrazilStephen Shaw QUALIFIED
Silvio Y ButtItalyIoni Bowcher UNQUALIFIED
Jefferson K PerinUnited KingdomElwin Sharvill UNQUALIFIED
Maria Q CaldareraItalyAsiya Javayant RENEWAL
Maisha P GarufiJapanBernardo Dominic QUALIFIED
Arvin R RutaAustraliaAmy Elsner QUALIFIED
Octavia F CampainFranceXuxue Feng PROPOSAL
Francesco C PoquetteArgentinaStephen Shaw NEGOTIATION
Silvio H WaycottCanadaOnyama Limba PROPOSAL
Claire S CaldareraUnited KingdomAsiya Javayant QUALIFIED
Deepesh J NestleGermanyAsiya Javayant PROPOSAL
Nicolas N MorascaUnited KingdomAmy Elsner NEGOTIATION
Maria G RimIndiaAmy Elsner UNQUALIFIED
Francesco G ButtBrazilBernardo Dominic PROPOSAL
David L SergiBrazilXuxue Feng RENEWAL
Octavia R WhobreyItalyAnna Fali NEGOTIATION
Tony Z ChuiIndiaIvan Magalhaes QUALIFIED
Arvin E RutaItalyAmy Elsner NEW
Chavez T IturbideRussiaElwin Sharvill UNQUALIFIED
James S SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Faith L CaudyAustraliaIvan Magalhaes NEW
Jefferson E OstroskyBrazilIvan Magalhaes RENEWAL
Mujtaba U FigeroaUnited KingdomAmy Elsner NEGOTIATION
Maisha O OstroskyItalyBernardo Dominic RENEWAL
Chavez U KuskoGermanyBernardo Dominic PROPOSAL
Juan N WieserBrazilBernardo Dominic PROPOSAL
James C KolmetzItalyXuxue Feng NEW
Aditya S VocelkaItalyOnyama Limba UNQUALIFIED
Alejandro K WaycottUnited KingdomIoni Bowcher NEW
Jefferson C KolmetzAustraliaXuxue Feng PROPOSAL
Leja M MaletJapanStephen Shaw UNQUALIFIED
Francesco A RulapaughCanadaBernardo Dominic PROPOSAL
Faith S RimFranceOnyama Limba PROPOSAL
Mayumi B DarakjyJapanIoni Bowcher UNQUALIFIED
Jennifer P DarakjyCanadaXuxue Feng NEGOTIATION
Tony L DarakjyArgentinaOnyama Limba RENEWAL
Mayumi Z RimBrazilAsiya Javayant NEGOTIATION
Arvin W KolmetzFranceAnna Fali UNQUALIFIED
Murillo U ButtCanadaOnyama Limba UNQUALIFIED
Mujtaba O CaldareraArgentinaIoni Bowcher NEW
Munro P StensethItalyAmy Elsner QUALIFIED
Emily G MorascaSpainBernardo Dominic UNQUALIFIED
Greenwood K PoquetteGermanyAsiya Javayant NEGOTIATION
Cody W OldroydAustraliaIvan Magalhaes NEGOTIATION
Julie R RimItalyAnna Fali PROPOSAL
Stacey H DilliardGermanyOnyama Limba NEW
James B FigeroaIndiaAnna Fali UNQUALIFIED
Izzy J DoeIndiaXuxue Feng PROPOSAL
Jeanfrancois A RimItalyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Silvio N Butt
Morrow F Rim
Aika V Rim
Morrow E Ruta
Jefferson I Glick
Francesco Y Kusko
Munro V Perin
Ashley C Briddick
Misaki Z Wieser
Leon T Campain
Antonio H Nestle
Murillo X Saylors
Wickens Y Sergi
Jefferson P Royster
Wickens V Wieser
Aruna K Foller
Smith I Malet
Jeanfrancois R Royster
Murillo O Caldarera
Alejandro F Butt
Costa L Shinko
Salvatore E Sergi
Chavez C Slusarski
Aika V Garufi
Antonio Z Inouye
Nicolas P Nestle
Nicolas W Saylors
Jennifer V Ruta
Mujtaba K Rulapaugh
Deepesh A Kolmetz
Aditya V Saylors
Izzy J Ruta
Leon S Vocelka
Clifford V Oldroyd
Maria E Bolognia
Costa R Chui
Maisha T Oldroyd
Juan Y Malet
Arvin S Paprocki
Octavia Z Caudy
Ricardo J Tollner
Costa H Ostrosky
Sinclair Z Briddick
Juan N Marrier
Ashley M Figeroa
Kadeem D Rulapaugh
Johnson H Sergi
James I Whobrey
Greenwood Y Rim
Wickens T Malet
IdCountryDate
1000Canada2026-08-26
1001Canada2026-08-12
1002Argentina2026-08-05
1003Japan2026-08-05
1004United Kingdom2026-08-27
1005Brazil2026-08-08
1006Canada2026-08-16
1007United Kingdom2026-08-18
1008Canada2026-08-02
1009France2026-08-20
1010Canada2026-08-12
1011Germany2026-08-18
1012Japan2026-08-06
1013Argentina2026-08-13
1014Russia2026-08-28
1015Italy2026-08-15
1016United Kingdom2026-08-06
1017Japan2026-07-31
1018Spain2026-08-21
1019India2026-08-03
1020Canada2026-08-05
1021India2026-08-12
1022Brazil2026-08-08
1023France2026-08-17
1024Italy2026-08-22
1025Germany2026-08-08
1026Italy2026-08-13
1027Spain2026-08-12
1028Spain2026-08-13
1029Brazil2026-08-13
1030Brazil2026-08-14
1031United Kingdom2026-08-01
1032Russia2026-08-18
1033Russia2026-08-21
1034France2026-08-22
1035United Kingdom2026-08-14
1036United Kingdom2026-08-20
1037Brazil2026-08-12
1038Argentina2026-08-08
1039Argentina2026-08-11
1040Japan2026-08-03
1041Canada2026-08-14
1042Russia2026-08-29
1043Russia2026-08-03
1044Canada2026-08-22
1045Spain2026-08-18
1046Germany2026-08-01
1047India2026-08-08
1048Australia2026-08-12
1049United Kingdom2026-08-27

On-Demand Data

NameIdCountryDate
Jones Y Gillian1000France2026-08-08
Arvin G Kusko1001United Kingdom2026-08-28
Chavez X Flosi1002Argentina2026-08-21
Octavia A Rulapaugh1003India2026-08-29
Jennifer C Marrier1004Canada2026-08-29
Morrow N Oldroyd1005United Kingdom2026-08-16
Jefferson N Ruta1006Argentina2026-08-15
Morrow O Wieser1007Russia2026-08-05
Adams P Iturbide1008Spain2026-08-03
Isabel F Vocelka1009India2026-08-11
Maria P Royster1010Russia2026-08-13
Mujtaba E Bowley1011Russia2026-08-27
Murillo G Paprocki1012Japan2026-08-24
James A Marrier1013Japan2026-07-31
James T Waycott1014Canada2026-08-07
Maria S Gillian1015Brazil2026-08-12
Stacey D Foller1016Germany2026-08-09
Maisha D Caldarera1017Argentina2026-08-14
Johnson X Whobrey1018India2026-08-18
Leon T Ostrosky1019Argentina2026-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon U FerenczAustraliaAsiya Javayant NEGOTIATION
Sinclair H FlosiUnited KingdomAsiya Javayant NEGOTIATION
Isabel S TollnerAustraliaAsiya Javayant UNQUALIFIED
Costa M MaletFranceOnyama Limba QUALIFIED
Ivar R KolmetzIndiaBernardo Dominic PROPOSAL
Jefferson N FerenczRussiaBernardo Dominic NEW
Chavez P AlbaresJapanStephen Shaw NEW
Arvin H PoquetteIndiaAmy Elsner QUALIFIED
Johnson A FlosiJapanAsiya Javayant PROPOSAL
Jeanfrancois E AlbaresCanadaStephen Shaw NEGOTIATION
Wickens E RimGermanyIoni Bowcher PROPOSAL
Maria J PerinFranceAsiya Javayant NEGOTIATION
Mayumi C RutaItalyIvan Magalhaes QUALIFIED
Arvin V MarrierArgentinaBernardo Dominic RENEWAL
Aruna L RulapaughAustraliaIoni Bowcher QUALIFIED
Aditya B FlosiItalyAnna Fali NEW
Faith T WhobreyBrazilIoni Bowcher RENEWAL
Rodrigues B PaprockiJapanIvan Magalhaes NEGOTIATION
Cody W WaycottGermanyAmy Elsner NEW
Juan C KolmetzRussiaAsiya Javayant QUALIFIED
David E SaylorsJapanElwin Sharvill RENEWAL
Izzy B GarufiFranceOnyama Limba PROPOSAL
Juan I BologniaAustraliaAmy Elsner UNQUALIFIED
Alejandro W FlosiGermanyXuxue Feng PROPOSAL
Stacey Z BologniaAustraliaXuxue Feng PROPOSAL
Johnson Z TollnerRussiaElwin Sharvill PROPOSAL
Jeanfrancois C KuskoBrazilIvan Magalhaes QUALIFIED
Arvin M GillianItalyAmy Elsner PROPOSAL
James T TollnerItalyIoni Bowcher QUALIFIED
Darci E DilliardRussiaAnna Fali NEGOTIATION
Alejandro N CampainArgentinaAsiya Javayant RENEWAL
Greenwood U VenereIndiaOnyama Limba QUALIFIED
Sinclair I GlickArgentinaXuxue Feng QUALIFIED
Izzy E FollerCanadaIoni Bowcher NEGOTIATION
Ivar L MarrierItalyOnyama Limba NEW
Jones G MacleadRussiaStephen Shaw PROPOSAL
Maisha Z FigeroaGermanyAsiya Javayant NEW
Nicolas V GillianJapanElwin Sharvill NEW
Aika W DarakjyIndiaAsiya Javayant NEW
Julie D PaprockiUnited KingdomBernardo Dominic UNQUALIFIED

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