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 J FerenczFranceAmy Elsner PROPOSAL
Aditya Z MaletArgentinaXuxue Feng UNQUALIFIED
Greenwood G RimBrazilAnna Fali PROPOSAL
Faith M DilliardSpainXuxue Feng UNQUALIFIED
Izzy I PaprockiBrazilOnyama Limba PROPOSAL
Darci R BologniaBrazilAnna Fali UNQUALIFIED
Maisha Y CampainRussiaStephen Shaw PROPOSAL
Faith N SergiBrazilBernardo Dominic RENEWAL
Kadeem X IturbideAustraliaOnyama Limba PROPOSAL
Jones W RimUnited KingdomIoni Bowcher NEGOTIATION
Silvio F WhobreyUnited KingdomStephen Shaw NEW
James K AlbaresGermanyXuxue Feng QUALIFIED
David P VenereSpainElwin Sharvill RENEWAL
Cody J OldroydCanadaAmy Elsner UNQUALIFIED
David T NickaIndiaOnyama Limba UNQUALIFIED
Alejandro H OldroydFranceXuxue Feng NEGOTIATION
Ivar X KuskoIndiaOnyama Limba PROPOSAL
Kaitlin M KuskoRussiaStephen Shaw RENEWAL
Mayumi K AmigonCanadaElwin Sharvill PROPOSAL
Aika B AmigonBrazilElwin Sharvill NEW
Sinclair G IturbideCanadaAsiya Javayant UNQUALIFIED
Mujtaba L MorascaGermanyElwin Sharvill NEGOTIATION
Munro U InouyeItalyAsiya Javayant RENEWAL
Murillo D KuskoItalyAnna Fali NEGOTIATION
Jennifer R MacleadCanadaBernardo Dominic RENEWAL
Ivar I StockhamIndiaIvan Magalhaes UNQUALIFIED
Costa W SlusarskiSpainAmy Elsner PROPOSAL
Aika W MacleadFranceElwin Sharvill NEW
Antonio G WhobreyJapanIvan Magalhaes UNQUALIFIED
Maisha Q BriddickSpainAsiya Javayant UNQUALIFIED
Arvin W CampainFranceXuxue Feng NEGOTIATION
Silvio O OstroskyRussiaXuxue Feng RENEWAL
Misaki G StensethJapanIoni Bowcher RENEWAL
Emily R GillianSpainElwin Sharvill PROPOSAL
Julie J ButtItalyIvan Magalhaes NEW
Munro E VenereGermanyAsiya Javayant NEGOTIATION
Murillo K BologniaUnited KingdomXuxue Feng NEGOTIATION
Ivar I OstroskyIndiaIoni Bowcher PROPOSAL
Jennifer Y DarakjyFranceOnyama Limba NEGOTIATION
Silvio T FlosiUnited KingdomOnyama Limba NEGOTIATION
Morrow C CampainUnited KingdomAmy Elsner UNQUALIFIED
Isabel I MarrierJapanBernardo Dominic UNQUALIFIED
Alejandro U StockhamBrazilOnyama Limba QUALIFIED
Misaki K AlbaresCanadaAmy Elsner NEW
Aditya F VenereSpainStephen Shaw RENEWAL
Greenwood J ButtAustraliaAmy Elsner NEGOTIATION
Juan O SergiFranceIoni Bowcher NEGOTIATION
James C StensethRussiaAsiya Javayant PROPOSAL
Murillo N StensethUnited KingdomIoni Bowcher PROPOSAL
Murillo O RoysterUnited KingdomIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro F PoquetteBrazilBernardo Dominic NEW
Jones U NestleFranceIoni Bowcher RENEWAL
Juan G MorascaSpainElwin Sharvill PROPOSAL
Silvio V ShinkoGermanyOnyama Limba RENEWAL
Juan T StensethUnited KingdomIoni Bowcher NEW
Faith K GauchoSpainStephen Shaw NEGOTIATION
Rodrigues B PaprockiGermanyIoni Bowcher UNQUALIFIED
Munro X ButtArgentinaAmy Elsner PROPOSAL
Salvatore Q GlickRussiaAmy Elsner RENEWAL
Stacey F PerinAustraliaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki G KuskoRussia2026-07-16Chemel, James L Cpa PROPOSAL45Amy Elsner
1001Maria J RoysterAustralia2026-07-11Feiner Bros QUALIFIED0Asiya Javayant
1002Antonio L GarufiCanada2026-07-17Rangoni Of Florence RENEWAL55Elwin Sharvill
1003Salvatore F BriddickIndia2026-07-19Printing Dimensions UNQUALIFIED68Stephen Shaw
1004Leon G FlosiSpain2026-07-20Rangoni Of Florence UNQUALIFIED10Xuxue Feng
1005Aruna S MarrierItaly2026-07-13Buckley Miller Wright NEW52Anna Fali
1006Deepesh R GillianIndia2026-07-10King, Christopher A Esq NEGOTIATION63Xuxue Feng
1007Maisha A InouyeFrance2026-07-01Truhlar And Truhlar Attys UNQUALIFIED21Ivan Magalhaes
1008Claire N MorascaIndia2026-07-14Dorl, James J Esq RENEWAL84Amy Elsner
1009Cody L PerinSpain2026-07-02Chanay, Jeffrey A Esq QUALIFIED5Bernardo Dominic
1010Kaitlin N KolmetzUnited Kingdom2026-07-14Chanay, Jeffrey A Esq QUALIFIED73Ioni Bowcher
1011Jones H CaldareraIndia2026-06-27Morlong Associates RENEWAL7Onyama Limba
1012Adams B FlosiCanada2026-07-17Chemel, James L Cpa NEW52Stephen Shaw
1013Stacey I MacleadFrance2026-06-28Chemel, James L Cpa NEGOTIATION31Ioni Bowcher
1014Murillo O PoquetteBrazil2026-07-09Chemel, James L Cpa UNQUALIFIED4Xuxue Feng
1015Mujtaba O GlickIndia2026-07-01Dorl, James J Esq NEW63Ivan Magalhaes
1016Maisha F GlickFrance2026-07-16Chapman, Ross E Esq QUALIFIED65Xuxue Feng
1017Greenwood T CampainItaly2026-07-02King, Christopher A Esq NEW95Ivan Magalhaes
1018Cody I SaylorsFrance2026-07-14Rousseaux, Michael Esq UNQUALIFIED0Asiya Javayant
1019Tony Q GauchoSpain2026-06-22Commercial Press QUALIFIED24Ivan Magalhaes
1020Izzy L DilliardRussia2026-07-18Chanay, Jeffrey A Esq RENEWAL42Ioni Bowcher
1021Octavia S ChuiUnited Kingdom2026-06-26Commercial Press RENEWAL28Anna Fali
1022Misaki M RimAustralia2026-06-27Chemel, James L Cpa NEW6Anna Fali
1023Johnson K InouyeAustralia2026-07-05Truhlar And Truhlar Attys PROPOSAL90Xuxue Feng
1024Kadeem H SergiUnited Kingdom2026-06-24Morlong Associates NEGOTIATION22Onyama Limba
1025Costa A ButtItaly2026-07-07Commercial Press RENEWAL90Xuxue Feng
1026Morrow F FollerSpain2026-07-08Morlong Associates NEGOTIATION45Bernardo Dominic
1027Wickens C TollnerFrance2026-07-02Dorl, James J Esq PROPOSAL29Elwin Sharvill
1028Costa C NestleJapan2026-06-30Printing Dimensions NEW95Ioni Bowcher
1029Costa L DilliardGermany2026-06-29Chemel, James L Cpa NEGOTIATION29Ioni Bowcher
1030Silvio B RimJapan2026-07-19Morlong Associates QUALIFIED97Stephen Shaw
1031Arvin N NickaAustralia2026-07-02Rangoni Of Florence NEW9Xuxue Feng
1032Kaitlin A DoeIndia2026-07-17Feltz Printing Service NEW72Asiya Javayant
1033Kadeem C WaycottGermany2026-06-28Morlong Associates RENEWAL45Bernardo Dominic
1034Julie T FollerRussia2026-07-12Rousseaux, Michael Esq QUALIFIED96Ivan Magalhaes
1035Maria K CaudySpain2026-07-06Benton, John B Jr NEGOTIATION35Amy Elsner
1036Chavez H OstroskyIndia2026-06-21Morlong Associates NEW22Xuxue Feng
1037Octavia N BologniaBrazil2026-07-04Feltz Printing Service PROPOSAL7Xuxue Feng
1038Clifford U NestleSpain2026-06-24Truhlar And Truhlar Attys NEW70Asiya Javayant
1039Jefferson P AmigonAustralia2026-06-30Dorl, James J Esq RENEWAL66Amy Elsner
1040Silvio T InouyeJapan2026-07-10Benton, John B Jr UNQUALIFIED36Anna Fali
1041Sinclair R CaldareraItaly2026-07-07King, Christopher A Esq RENEWAL94Onyama Limba
1042Emily J DoeItaly2026-07-01Feiner Bros UNQUALIFIED5Anna Fali
1043Mujtaba N InouyeGermany2026-07-11Chemel, James L Cpa PROPOSAL21Bernardo Dominic
1044Ricardo P FerenczSpain2026-06-26Benton, John B Jr NEW9Elwin Sharvill
1045Leja F FigeroaFrance2026-06-25Dorl, James J Esq QUALIFIED66Bernardo Dominic
1046Darci Y BologniaAustralia2026-06-23Commercial Press RENEWAL37Bernardo Dominic
1047Antonio Z PerinSpain2026-07-05Benton, John B Jr RENEWAL54Stephen Shaw
1048Johnson T PerinAustralia2026-06-21Benton, John B Jr NEW62Asiya Javayant
1049Juan A InouyeCanada2026-07-04Morlong Associates NEW10Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Murillo V MaletAustraliaOnyama Limba UNQUALIFIED
Leja Y MaletItalyBernardo Dominic PROPOSAL
Darci M WhobreyUnited KingdomStephen Shaw NEW
Aruna H StockhamSpainBernardo Dominic QUALIFIED
Darci P TollnerArgentinaIvan Magalhaes NEW
Leon B GillianCanadaAnna Fali NEW
Rodrigues U IturbideAustraliaElwin Sharvill NEGOTIATION
Julie C NickaGermanyElwin Sharvill PROPOSAL
Alejandro O KuskoSpainIvan Magalhaes QUALIFIED
Aditya C BologniaJapanStephen Shaw NEW
David Z KuskoBrazilAsiya Javayant RENEWAL
Antonio M BologniaItalyIoni Bowcher RENEWAL
Octavia M BologniaJapanXuxue Feng RENEWAL
Ivar Z RutaAustraliaIoni Bowcher NEW
Antonio F FlosiGermanyAnna Fali NEW
Smith M ButtJapanAnna Fali PROPOSAL
Aika Q OstroskyFranceAsiya Javayant UNQUALIFIED
Misaki A ChuiCanadaElwin Sharvill QUALIFIED
Salvatore P SergiIndiaXuxue Feng NEGOTIATION
Antonio K SlusarskiItalyElwin Sharvill QUALIFIED
Munro R SergiBrazilAsiya Javayant UNQUALIFIED
Leja E GlickRussiaAmy Elsner UNQUALIFIED
Murillo U ButtSpainIoni Bowcher RENEWAL
Juan H CaudySpainOnyama Limba NEGOTIATION
Ricardo Z KuskoIndiaIoni Bowcher NEW
Kaitlin L TollnerFranceOnyama Limba QUALIFIED
Smith L MaletAustraliaAnna Fali UNQUALIFIED
Smith E BriddickRussiaAsiya Javayant QUALIFIED
Murillo E AlbaresUnited KingdomBernardo Dominic NEW
Francesco J CaudyJapanAsiya Javayant NEGOTIATION
Ivar I RulapaughBrazilAmy Elsner RENEWAL
Antonio F KolmetzUnited KingdomOnyama Limba NEGOTIATION
Ricardo J BriddickUnited KingdomStephen Shaw QUALIFIED
Aruna V RoysterSpainElwin Sharvill QUALIFIED
Morrow G AmigonItalyElwin Sharvill RENEWAL
Munro A IturbideSpainBernardo Dominic QUALIFIED
Ricardo E VocelkaArgentinaIoni Bowcher RENEWAL
Arvin V PoquetteIndiaAmy Elsner NEGOTIATION
Maisha X PerinSpainAsiya Javayant RENEWAL
Julie G MaletBrazilXuxue Feng UNQUALIFIED
Kaitlin L GlickIndiaBernardo Dominic PROPOSAL
Adams S CaudySpainStephen Shaw PROPOSAL
James C CaldareraGermanyBernardo Dominic UNQUALIFIED
Silvio D VenereFranceAnna Fali NEGOTIATION
Chavez N KuskoGermanyOnyama Limba NEGOTIATION
Kadeem D AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Ivar I MaletItalyIoni Bowcher PROPOSAL
Murillo Y WieserFranceXuxue Feng NEW
Cody U SlusarskiRussiaBernardo Dominic UNQUALIFIED
Antonio O RutaGermanyIoni Bowcher RENEWAL
Frozen Columns
Name
Chavez T Ferencz
Izzy T Marrier
Sinclair E Bowley
Julie D Chui
Juan Q Schemmer
Chavez J Saylors
Aruna C Ostrosky
Deepesh J Butt
Silvio Q Slusarski
Munro U Sergi
Stacey G Wieser
Claire B Perin
Maisha T Saylors
Aika S Kolmetz
Isabel U Garufi
Kaitlin X Waycott
David A Slusarski
Sinclair B Gillian
Juan Q Schemmer
Morrow R Glick
Faith K Bowley
Ivar E Stockham
Rodrigues Q Foller
Stacey N Marrier
Aditya D Gaucho
Jeanfrancois B Kusko
Ashley L Caldarera
Jefferson L Marrier
Rodrigues F Chui
Salvatore T Butt
Clifford D Malet
Silvio O Bolognia
Isabel U Kusko
Wickens B Bowley
Chavez F Figeroa
Cody B Paprocki
Leon P Amigon
Mayumi Q Campain
Jeanfrancois E Poquette
Cody T Figeroa
Juan K Glick
Aditya L Venere
Antonio J Royster
Izzy K Schemmer
Silvio O Malet
Misaki O Venere
Maria Q Morasca
Rodrigues F Darakjy
Mayumi S Malet
Nicolas T Campain
IdCountryDate
1000Italy2026-06-24
1001Canada2026-07-04
1002Japan2026-06-29
1003United Kingdom2026-07-09
1004Japan2026-07-17
1005Brazil2026-06-27
1006France2026-07-14
1007France2026-07-03
1008Japan2026-06-21
1009Brazil2026-06-29
1010Spain2026-07-15
1011Canada2026-07-08
1012Argentina2026-06-22
1013Australia2026-07-07
1014Brazil2026-07-15
1015Russia2026-06-28
1016Australia2026-07-16
1017Australia2026-07-09
1018Japan2026-07-07
1019India2026-07-05
1020Canada2026-07-09
1021India2026-07-12
1022Germany2026-07-20
1023Spain2026-07-14
1024Argentina2026-07-16
1025Japan2026-07-17
1026India2026-07-13
1027Japan2026-07-12
1028Australia2026-06-26
1029India2026-06-26
1030Germany2026-06-28
1031United Kingdom2026-07-20
1032Argentina2026-06-24
1033Australia2026-07-13
1034Japan2026-06-22
1035Argentina2026-07-18
1036Australia2026-07-12
1037Argentina2026-07-06
1038Argentina2026-07-16
1039Spain2026-07-04
1040Russia2026-06-24
1041France2026-07-05
1042Canada2026-06-28
1043Russia2026-07-06
1044Japan2026-07-10
1045Spain2026-06-22
1046United Kingdom2026-07-12
1047Argentina2026-07-18
1048Russia2026-07-17
1049Brazil2026-07-05

On-Demand Data

NameIdCountryDate
Aika U Royster1000Brazil2026-06-30
Darci Y Butt1001Japan2026-07-09
Arvin N Malet1002India2026-07-07
Mayumi A Wieser1003Italy2026-06-22
Izzy W Nicka1004Canada2026-06-28
Ricardo D Slusarski1005Italy2026-07-19
Alejandro H Nicka1006Australia2026-07-20
Cody D Morasca1007Japan2026-06-28
Wickens L Briddick1008Canada2026-07-18
Sinclair R Nestle1009Canada2026-07-17
Mujtaba C Malet1010Brazil2026-07-02
Jennifer J Kolmetz1011Germany2026-07-18
Nicolas L Shinko1012Russia2026-07-02
Costa Y Bowley1013France2026-06-29
Kaitlin I Iturbide1014Spain2026-06-24
Adams R Stenseth1015Brazil2026-06-30
Stacey A Stockham1016Spain2026-06-24
Johnson S Glick1017Canada2026-07-03
Emily E Waycott1018Argentina2026-07-04
Francesco A Garufi1019Argentina2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio I KolmetzIndiaAnna Fali PROPOSAL
Juan X StensethIndiaElwin Sharvill NEGOTIATION
Chavez F BriddickRussiaAmy Elsner UNQUALIFIED
Julie R BowleyIndiaOnyama Limba NEW
Wickens K OldroydSpainStephen Shaw QUALIFIED
David F NestleGermanyAnna Fali QUALIFIED
Faith W VocelkaUnited KingdomAsiya Javayant QUALIFIED
Jefferson L CaudyBrazilAsiya Javayant PROPOSAL
Tony G AlbaresFranceIvan Magalhaes NEGOTIATION
Alejandro Z CaldareraJapanIvan Magalhaes NEW
Claire W FlosiFranceIoni Bowcher RENEWAL
Francesco E RutaIndiaXuxue Feng QUALIFIED
Maria J StockhamItalyOnyama Limba RENEWAL
Clifford K PaprockiJapanXuxue Feng QUALIFIED
Aika H SchemmerGermanyStephen Shaw NEGOTIATION
Octavia I CaldareraCanadaAmy Elsner PROPOSAL
Salvatore I BriddickArgentinaXuxue Feng UNQUALIFIED
Nicolas O MacleadCanadaElwin Sharvill RENEWAL
Arvin T GarufiFranceStephen Shaw QUALIFIED
Mayumi T DilliardCanadaAnna Fali PROPOSAL
Kadeem M OstroskyGermanyIvan Magalhaes UNQUALIFIED
Costa Y VocelkaCanadaIoni Bowcher RENEWAL
Ashley K SaylorsJapanXuxue Feng RENEWAL
Kadeem S KolmetzBrazilAnna Fali NEGOTIATION
Adams R StockhamUnited KingdomAnna Fali RENEWAL
Chavez M InouyeIndiaElwin Sharvill NEGOTIATION
Leja V FlosiAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois H BologniaFranceStephen Shaw PROPOSAL
Jones S RimCanadaElwin Sharvill UNQUALIFIED
Adams F PerinArgentinaElwin Sharvill UNQUALIFIED
Greenwood M OstroskyBrazilIoni Bowcher QUALIFIED
Greenwood Z BowleyAustraliaIoni Bowcher NEGOTIATION
Sinclair H TollnerRussiaAmy Elsner RENEWAL
Smith I OldroydFranceAnna Fali NEGOTIATION
Stacey V WieserSpainElwin Sharvill RENEWAL
James O FlosiJapanAsiya Javayant RENEWAL
Maria W StockhamBrazilAmy Elsner NEGOTIATION
Adams Z DoeFranceAsiya Javayant NEGOTIATION
Adams J SaylorsSpainXuxue Feng NEW
Aditya U VenereGermanyAsiya Javayant 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>