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 A BriddickArgentinaBernardo Dominic QUALIFIED
Julie S DarakjyCanadaAnna Fali NEW
Morrow E SaylorsRussiaAmy Elsner UNQUALIFIED
Johnson S CampainIndiaIoni Bowcher PROPOSAL
Tony W CaudyBrazilAsiya Javayant NEW
Jones L RulapaughGermanyBernardo Dominic NEW
Kaitlin H RimJapanIoni Bowcher PROPOSAL
Chavez P StensethIndiaOnyama Limba NEW
Maria V NickaIndiaElwin Sharvill QUALIFIED
Julie V WaycottJapanStephen Shaw PROPOSAL
Maria Q SaylorsRussiaAmy Elsner RENEWAL
Rodrigues C CaudyAustraliaIoni Bowcher PROPOSAL
Kaitlin H OstroskyUnited KingdomXuxue Feng PROPOSAL
Smith K DoeUnited KingdomBernardo Dominic PROPOSAL
Deepesh E SergiSpainAsiya Javayant UNQUALIFIED
Alejandro E NestleRussiaAmy Elsner RENEWAL
Cody F RimSpainXuxue Feng NEGOTIATION
Faith U RutaIndiaAsiya Javayant NEGOTIATION
Murillo J GarufiIndiaStephen Shaw UNQUALIFIED
Jeanfrancois V CaldareraBrazilAmy Elsner NEGOTIATION
Juan N OstroskyItalyIvan Magalhaes NEW
Alejandro B RulapaughJapanBernardo Dominic NEW
Wickens O OstroskySpainAmy Elsner UNQUALIFIED
David S FlosiCanadaOnyama Limba RENEWAL
Antonio Z RulapaughItalyBernardo Dominic NEGOTIATION
Jennifer X VenereArgentinaElwin Sharvill QUALIFIED
Antonio R SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Wickens F GlickGermanyAmy Elsner QUALIFIED
Jeanfrancois F FigeroaGermanyAmy Elsner QUALIFIED
Jennifer X PaprockiAustraliaBernardo Dominic RENEWAL
Deepesh X DarakjyIndiaOnyama Limba PROPOSAL
David V MorascaArgentinaAsiya Javayant UNQUALIFIED
Clifford G DoeUnited KingdomAsiya Javayant RENEWAL
Juan M MacleadItalyIvan Magalhaes PROPOSAL
Faith A SergiArgentinaOnyama Limba PROPOSAL
Sinclair U DoeJapanXuxue Feng PROPOSAL
Mujtaba N BowleyCanadaStephen Shaw NEW
Clifford P KolmetzRussiaAsiya Javayant QUALIFIED
Emily E RimGermanyElwin Sharvill QUALIFIED
Costa I DilliardBrazilAnna Fali PROPOSAL
Deepesh T WaycottItalyElwin Sharvill UNQUALIFIED
Silvio V SchemmerItalyBernardo Dominic PROPOSAL
Nicolas E StensethIndiaAsiya Javayant PROPOSAL
Aditya Z IturbideBrazilIoni Bowcher NEW
Ivar N GauchoItalyXuxue Feng NEW
Nicolas Q WaycottArgentinaOnyama Limba RENEWAL
Jefferson H PerinItalyAnna Fali PROPOSAL
Murillo S SaylorsCanadaIvan Magalhaes QUALIFIED
Deepesh M NickaFranceBernardo Dominic NEW
Munro N DilliardJapanIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin U BowleyRussiaElwin Sharvill NEW
Faith T MorascaRussiaBernardo Dominic UNQUALIFIED
Johnson J AlbaresIndiaXuxue Feng UNQUALIFIED
Octavia U WieserRussiaIoni Bowcher UNQUALIFIED
Chavez R FollerSpainElwin Sharvill UNQUALIFIED
Izzy M GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Emily H CampainCanadaXuxue Feng QUALIFIED
Ashley Y KolmetzGermanyAmy Elsner UNQUALIFIED
Wickens Q KolmetzItalyElwin Sharvill UNQUALIFIED
Mayumi V InouyeRussiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy C BowleyItaly2026-06-20Benton, John B Jr RENEWAL7Ivan Magalhaes
1001Clifford J KolmetzGermany2026-06-16King, Christopher A Esq QUALIFIED98Elwin Sharvill
1002Izzy T KolmetzRussia2026-07-05Chemel, James L Cpa NEW11Anna Fali
1003Ivar F OstroskyGermany2026-07-10Chemel, James L Cpa UNQUALIFIED5Ivan Magalhaes
1004Johnson Y KolmetzAustralia2026-06-22Rousseaux, Michael Esq RENEWAL17Bernardo Dominic
1005Adams E MacleadAustralia2026-06-22Benton, John B Jr PROPOSAL80Elwin Sharvill
1006Antonio B MaletBrazil2026-07-09Rousseaux, Michael Esq UNQUALIFIED94Xuxue Feng
1007Ricardo K InouyeJapan2026-07-13Commercial Press NEGOTIATION46Bernardo Dominic
1008Jennifer P ShinkoUnited Kingdom2026-07-11Truhlar And Truhlar Attys PROPOSAL64Ioni Bowcher
1009Sinclair I BologniaGermany2026-07-03Printing Dimensions PROPOSAL56Bernardo Dominic
1010Emily D AlbaresRussia2026-07-02Printing Dimensions NEGOTIATION17Xuxue Feng
1011Octavia S TollnerAustralia2026-07-05Chanay, Jeffrey A Esq RENEWAL14Asiya Javayant
1012Rodrigues C InouyeUnited Kingdom2026-07-10Rangoni Of Florence PROPOSAL44Elwin Sharvill
1013Silvio A AlbaresSpain2026-07-01Chemel, James L Cpa QUALIFIED69Asiya Javayant
1014Julie Y WieserFrance2026-07-09Chemel, James L Cpa NEW10Xuxue Feng
1015Claire W GlickArgentina2026-07-04Chapman, Ross E Esq RENEWAL12Anna Fali
1016Chavez H NickaIndia2026-07-14Morlong Associates UNQUALIFIED54Elwin Sharvill
1017Alejandro S StockhamJapan2026-06-18Truhlar And Truhlar Attys NEW5Ioni Bowcher
1018Smith U RoysterCanada2026-07-02Chapman, Ross E Esq QUALIFIED77Bernardo Dominic
1019Mayumi A NestleArgentina2026-07-02Chemel, James L Cpa QUALIFIED9Xuxue Feng
1020Aika C BriddickUnited Kingdom2026-06-19Printing Dimensions PROPOSAL96Ivan Magalhaes
1021Kadeem Y RutaSpain2026-07-04Feiner Bros NEGOTIATION4Xuxue Feng
1022Tony E SchemmerSpain2026-07-11Benton, John B Jr UNQUALIFIED35Elwin Sharvill
1023Ashley H FigeroaSpain2026-07-04Rangoni Of Florence PROPOSAL16Stephen Shaw
1024Sinclair L DilliardGermany2026-07-04Morlong Associates UNQUALIFIED72Onyama Limba
1025Leon V CaudyGermany2026-06-20Chemel, James L Cpa RENEWAL52Onyama Limba
1026Aruna N RimCanada2026-06-21Truhlar And Truhlar Attys QUALIFIED45Bernardo Dominic
1027Morrow W GarufiUnited Kingdom2026-06-27Rangoni Of Florence NEW54Ivan Magalhaes
1028Leon P FollerUnited Kingdom2026-07-01Chemel, James L Cpa UNQUALIFIED22Ivan Magalhaes
1029Kadeem M SchemmerUnited Kingdom2026-07-05Dorl, James J Esq RENEWAL73Amy Elsner
1030Sinclair W GarufiSpain2026-06-18Feltz Printing Service NEGOTIATION19Ioni Bowcher
1031Misaki H NickaAustralia2026-06-21Morlong Associates RENEWAL46Stephen Shaw
1032Aruna P RimJapan2026-06-29Commercial Press PROPOSAL51Bernardo Dominic
1033Alejandro F MarrierFrance2026-06-23Chapman, Ross E Esq NEGOTIATION81Bernardo Dominic
1034Wickens A NickaFrance2026-06-23Chemel, James L Cpa PROPOSAL82Anna Fali
1035Izzy X StensethItaly2026-07-14Rangoni Of Florence QUALIFIED62Bernardo Dominic
1036Leja T SaylorsUnited Kingdom2026-06-30Buckley Miller Wright RENEWAL23Ivan Magalhaes
1037Ivar O OldroydArgentina2026-07-03Chemel, James L Cpa PROPOSAL82Amy Elsner
1038Jefferson I RimUnited Kingdom2026-07-10Rangoni Of Florence UNQUALIFIED28Amy Elsner
1039Stacey T MaletIndia2026-07-14Feltz Printing Service QUALIFIED40Stephen Shaw
1040Nicolas A GauchoItaly2026-07-06Benton, John B Jr NEW63Ivan Magalhaes
1041Mayumi T DarakjyFrance2026-07-07Printing Dimensions RENEWAL50Ivan Magalhaes
1042Leja K GarufiJapan2026-06-22Dorl, James J Esq PROPOSAL19Ivan Magalhaes
1043Maria E KuskoItaly2026-07-10Rousseaux, Michael Esq NEW7Xuxue Feng
1044Maria N RulapaughUnited Kingdom2026-07-14Chapman, Ross E Esq QUALIFIED17Xuxue Feng
1045David F GillianAustralia2026-06-25Chanay, Jeffrey A Esq QUALIFIED84Ioni Bowcher
1046Adams P MaletAustralia2026-06-23Rangoni Of Florence RENEWAL4Anna Fali
1047Stacey I DilliardCanada2026-06-30Morlong Associates PROPOSAL21Amy Elsner
1048Sinclair B BologniaAustralia2026-07-10Feltz Printing Service QUALIFIED22Xuxue Feng
1049Isabel K RulapaughRussia2026-07-12Commercial Press QUALIFIED11Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio A SergiCanadaStephen Shaw PROPOSAL
Arvin U ButtAustraliaAmy Elsner NEGOTIATION
Munro D SlusarskiSpainIvan Magalhaes RENEWAL
Darci F DoeGermanyAnna Fali PROPOSAL
Leon F BriddickBrazilElwin Sharvill NEGOTIATION
Aruna K SlusarskiFranceIoni Bowcher UNQUALIFIED
Ivar A InouyeGermanyXuxue Feng NEGOTIATION
Cody R KuskoAustraliaAnna Fali NEGOTIATION
Emily R AlbaresArgentinaStephen Shaw NEGOTIATION
Greenwood L WaycottItalyIvan Magalhaes QUALIFIED
Kadeem D GauchoBrazilBernardo Dominic RENEWAL
Murillo X PoquetteGermanyXuxue Feng NEW
Smith P MaletRussiaAsiya Javayant PROPOSAL
Silvio P NickaUnited KingdomAsiya Javayant RENEWAL
Emily H GillianSpainElwin Sharvill QUALIFIED
Julie H IturbideArgentinaXuxue Feng QUALIFIED
Ivar M SlusarskiRussiaElwin Sharvill NEGOTIATION
Sinclair T FerenczIndiaIoni Bowcher NEGOTIATION
Rodrigues U RulapaughAustraliaBernardo Dominic QUALIFIED
Alejandro S VocelkaJapanStephen Shaw UNQUALIFIED
Salvatore Q FigeroaRussiaBernardo Dominic NEGOTIATION
Leon H GauchoSpainElwin Sharvill UNQUALIFIED
Adams D ShinkoCanadaAnna Fali QUALIFIED
Costa D RimItalyIvan Magalhaes PROPOSAL
Cody G MacleadAustraliaAsiya Javayant NEGOTIATION
Munro G MacleadAustraliaAsiya Javayant PROPOSAL
Francesco P InouyeIndiaStephen Shaw RENEWAL
Emily Y BowleyBrazilAsiya Javayant NEGOTIATION
Maria K BowleyAustraliaAnna Fali NEW
Misaki U MaletRussiaAnna Fali QUALIFIED
Claire N RoysterGermanyElwin Sharvill RENEWAL
Smith F DarakjyItalyIoni Bowcher NEGOTIATION
Munro V RulapaughArgentinaElwin Sharvill UNQUALIFIED
Stacey T RutaBrazilElwin Sharvill NEW
Octavia M VocelkaCanadaAsiya Javayant RENEWAL
Costa H VenereJapanIoni Bowcher QUALIFIED
Ashley D AlbaresAustraliaIvan Magalhaes NEW
Octavia R NestleSpainOnyama Limba UNQUALIFIED
Aika G MacleadItalyOnyama Limba PROPOSAL
Ricardo K DarakjyUnited KingdomAnna Fali NEW
Wickens V KuskoUnited KingdomAmy Elsner NEW
Chavez S MarrierArgentinaOnyama Limba UNQUALIFIED
Salvatore B AlbaresUnited KingdomAmy Elsner NEW
Silvio E FerenczRussiaAnna Fali UNQUALIFIED
Murillo G InouyeArgentinaBernardo Dominic PROPOSAL
Jennifer P MaletSpainBernardo Dominic NEGOTIATION
Ricardo H CaudyItalyXuxue Feng UNQUALIFIED
Izzy A GlickJapanXuxue Feng QUALIFIED
Darci B MaletArgentinaAnna Fali RENEWAL
Leja N GarufiSpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Ricardo Z Poquette
Juan M Iturbide
Kadeem W Glick
Murillo N Slusarski
Arvin M Campain
Ashley X Stockham
Mayumi H Figeroa
Aditya A Malet
Ricardo E Maclead
Aika Q Sergi
Claire B Whobrey
Mayumi G Kolmetz
Wickens F Ostrosky
Arvin U Waycott
Johnson Z Poquette
Costa S Garufi
Juan L Foller
Arvin X Foller
Morrow O Shinko
Silvio G Stockham
Emily M Garufi
Leja N Chui
Mujtaba F Tollner
Julie F Flosi
Maisha B Marrier
Smith K Darakjy
Misaki B Flosi
Ashley W Glick
Izzy O Maclead
Arvin V Bowley
Nicolas Y Schemmer
Chavez U Nicka
Izzy U Whobrey
Morrow N Inouye
Claire N Nestle
Adams W Kusko
Juan N Perin
Murillo K Nestle
Munro M Marrier
Chavez T Rulapaugh
Arvin Y Iturbide
James R Venere
Claire L Ruta
Misaki O Briddick
Jennifer N Chui
Claire S Waycott
Leon N Foller
Izzy X Morasca
Kadeem K Gaucho
Smith C Royster
IdCountryDate
1000Australia2026-07-01
1001Germany2026-06-17
1002Argentina2026-06-17
1003Spain2026-07-03
1004Brazil2026-06-27
1005France2026-06-23
1006Italy2026-07-02
1007Russia2026-07-06
1008Australia2026-06-22
1009Japan2026-07-02
1010Canada2026-07-09
1011Germany2026-06-20
1012Japan2026-06-29
1013Canada2026-06-30
1014United Kingdom2026-06-16
1015Japan2026-06-28
1016Canada2026-07-12
1017Russia2026-07-15
1018India2026-06-17
1019Brazil2026-07-10
1020France2026-07-03
1021Australia2026-07-01
1022Argentina2026-07-14
1023Spain2026-06-23
1024France2026-06-20
1025Spain2026-07-15
1026United Kingdom2026-07-14
1027Russia2026-06-16
1028Argentina2026-06-23
1029Argentina2026-06-27
1030Italy2026-07-05
1031Japan2026-06-23
1032Spain2026-07-04
1033Russia2026-06-27
1034Argentina2026-07-14
1035France2026-07-04
1036Germany2026-07-04
1037Australia2026-06-29
1038Japan2026-06-18
1039Japan2026-07-07
1040Argentina2026-07-10
1041France2026-07-01
1042Italy2026-07-01
1043United Kingdom2026-06-22
1044Canada2026-06-29
1045Brazil2026-07-01
1046Japan2026-07-13
1047France2026-07-12
1048Brazil2026-06-28
1049Canada2026-07-15

On-Demand Data

NameIdCountryDate
Morrow S Oldroyd1000India2026-07-01
Jeanfrancois M Albares1001Italy2026-07-15
Costa X Bowley1002Russia2026-06-24
Cody Y Gillian1003Brazil2026-06-18
Octavia F Nicka1004Brazil2026-07-05
Mayumi A Wieser1005India2026-07-13
Aditya V Waycott1006Australia2026-07-15
Sinclair U Kolmetz1007Japan2026-06-21
Nicolas O Kolmetz1008Italy2026-06-26
Izzy X Shinko1009France2026-06-16
Murillo Z Doe1010Australia2026-07-04
Leon E Campain1011Australia2026-07-08
Clifford R Oldroyd1012Spain2026-06-26
Rodrigues U Maclead1013India2026-07-08
Jeanfrancois F Ruta1014Russia2026-06-30
Arvin Q Ferencz1015Italy2026-07-03
Izzy D Glick1016France2026-06-16
Aika T Nicka1017India2026-06-17
Smith E Kusko1018India2026-07-05
Mujtaba N Kolmetz1019Spain2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia G PoquetteFranceBernardo Dominic QUALIFIED
Misaki N CampainArgentinaStephen Shaw UNQUALIFIED
Octavia Z FollerBrazilIvan Magalhaes NEGOTIATION
Alejandro R StockhamSpainIvan Magalhaes NEGOTIATION
Emily U SaylorsItalyBernardo Dominic NEGOTIATION
Misaki B DarakjyRussiaElwin Sharvill PROPOSAL
Adams Q StockhamCanadaAmy Elsner PROPOSAL
Jones I GauchoCanadaElwin Sharvill RENEWAL
Ricardo S StensethRussiaXuxue Feng UNQUALIFIED
Ivar Y VocelkaCanadaIvan Magalhaes PROPOSAL
Costa D AmigonItalyIoni Bowcher UNQUALIFIED
Antonio A CampainSpainAsiya Javayant PROPOSAL
Morrow Y SergiBrazilAnna Fali UNQUALIFIED
Sinclair L CaldareraBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois E WieserGermanyAmy Elsner PROPOSAL
Alejandro R FollerJapanIoni Bowcher PROPOSAL
Murillo O PerinItalyAmy Elsner QUALIFIED
Arvin W KuskoCanadaAsiya Javayant QUALIFIED
Claire V BologniaUnited KingdomElwin Sharvill NEGOTIATION
David M AlbaresJapanIvan Magalhaes UNQUALIFIED
Emily B DoeBrazilStephen Shaw QUALIFIED
Antonio O OldroydFranceElwin Sharvill UNQUALIFIED
Misaki A BowleyIndiaIoni Bowcher UNQUALIFIED
Aditya U VocelkaIndiaAmy Elsner UNQUALIFIED
Munro F SergiJapanIvan Magalhaes NEGOTIATION
Deepesh L KolmetzIndiaIoni Bowcher NEW
Tony Q WaycottGermanyXuxue Feng QUALIFIED
Silvio M RutaGermanyIvan Magalhaes QUALIFIED
Darci I GillianCanadaBernardo Dominic QUALIFIED
Stacey I ShinkoJapanStephen Shaw QUALIFIED
Antonio I MarrierJapanAmy Elsner NEGOTIATION
Aika R MorascaGermanyIoni Bowcher NEGOTIATION
Leon K NestleBrazilStephen Shaw RENEWAL
Ashley X DarakjyIndiaIoni Bowcher NEGOTIATION
Isabel M TollnerGermanyIoni Bowcher NEGOTIATION
Jefferson I PoquetteCanadaAnna Fali NEW
Ricardo W SaylorsBrazilAmy Elsner UNQUALIFIED
Octavia T FlosiIndiaStephen Shaw NEGOTIATION
Stacey N SlusarskiSpainStephen Shaw RENEWAL
Jennifer J GlickUnited KingdomAmy Elsner 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>