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
Octavia D InouyeCanadaElwin Sharvill NEW
Nicolas M RutaIndiaBernardo Dominic NEGOTIATION
Morrow S FollerBrazilXuxue Feng NEW
Clifford Y CaudySpainIvan Magalhaes NEGOTIATION
Antonio Y RimArgentinaAnna Fali QUALIFIED
Jennifer N AlbaresArgentinaAmy Elsner UNQUALIFIED
Mujtaba E MaletUnited KingdomOnyama Limba NEGOTIATION
Deepesh G AmigonBrazilElwin Sharvill QUALIFIED
Jeanfrancois C ShinkoAustraliaOnyama Limba UNQUALIFIED
Silvio I ChuiArgentinaAmy Elsner NEW
Silvio Q MaletRussiaAsiya Javayant PROPOSAL
Stacey Z SergiJapanOnyama Limba NEGOTIATION
Silvio Q NestleBrazilAmy Elsner PROPOSAL
Aika F InouyeIndiaIvan Magalhaes NEW
Adams F CaudyArgentinaIoni Bowcher UNQUALIFIED
Octavia H SlusarskiJapanIoni Bowcher UNQUALIFIED
Jennifer Z AmigonFranceStephen Shaw PROPOSAL
Misaki T GillianAustraliaAsiya Javayant QUALIFIED
David R SergiFranceAnna Fali RENEWAL
Tony F MaletJapanBernardo Dominic PROPOSAL
Smith V DoeFranceIvan Magalhaes NEW
Tony J SaylorsItalyIoni Bowcher NEW
Deepesh N CampainRussiaElwin Sharvill RENEWAL
Rodrigues A BologniaArgentinaBernardo Dominic NEW
Stacey U FigeroaGermanyElwin Sharvill QUALIFIED
Izzy S CampainItalyXuxue Feng PROPOSAL
Clifford E PaprockiItalyIoni Bowcher PROPOSAL
Aika U WhobreyUnited KingdomIoni Bowcher NEW
Costa O IturbideGermanyXuxue Feng QUALIFIED
James C WaycottItalyBernardo Dominic NEGOTIATION
Faith Y CaudyCanadaAnna Fali PROPOSAL
Chavez Y StensethArgentinaElwin Sharvill NEGOTIATION
Darci T CaldareraGermanyElwin Sharvill UNQUALIFIED
Stacey D CaudyRussiaElwin Sharvill NEGOTIATION
Sinclair D AmigonItalyXuxue Feng PROPOSAL
Mujtaba O PaprockiFranceAsiya Javayant RENEWAL
Johnson T GillianItalyIoni Bowcher RENEWAL
Rodrigues I BriddickIndiaStephen Shaw UNQUALIFIED
Ashley E SlusarskiCanadaIoni Bowcher QUALIFIED
Greenwood Z CampainItalyIvan Magalhaes NEW
Darci F MorascaArgentinaAsiya Javayant NEW
Darci Q TollnerRussiaOnyama Limba UNQUALIFIED
Leja J GlickSpainIoni Bowcher QUALIFIED
Jennifer K SchemmerArgentinaOnyama Limba NEGOTIATION
Adams Q StockhamFranceAmy Elsner NEGOTIATION
Julie J FigeroaBrazilIoni Bowcher NEW
Ivar A GlickJapanStephen Shaw PROPOSAL
Deepesh O StockhamRussiaOnyama Limba QUALIFIED
Ivar B MacleadArgentinaIvan Magalhaes PROPOSAL
Rodrigues E MorascaSpainBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James X IturbideGermanyAmy Elsner UNQUALIFIED
Smith A MaletItalyElwin Sharvill PROPOSAL
Jefferson A SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Costa P WaycottIndiaIvan Magalhaes QUALIFIED
Clifford F TollnerGermanyStephen Shaw NEW
Octavia I GarufiItalyBernardo Dominic QUALIFIED
Cody A GlickAustraliaBernardo Dominic NEW
Silvio G MaletSpainAmy Elsner QUALIFIED
Johnson H VocelkaSpainIvan Magalhaes NEGOTIATION
Mujtaba Y OstroskySpainBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba L OstroskyAustralia2026-08-14Dorl, James J Esq NEGOTIATION59Amy Elsner
1001Juan B PoquetteIndia2026-08-02Feiner Bros UNQUALIFIED51Asiya Javayant
1002Darci Z CaudyFrance2026-08-04Feltz Printing Service QUALIFIED61Asiya Javayant
1003Francesco M KolmetzCanada2026-07-19Truhlar And Truhlar Attys NEW53Ioni Bowcher
1004Wickens Z FigeroaAustralia2026-08-03Feltz Printing Service UNQUALIFIED1Elwin Sharvill
1005Deepesh E CampainIndia2026-08-17Chapman, Ross E Esq NEW70Amy Elsner
1006Arvin E ChuiJapan2026-07-29Feltz Printing Service NEGOTIATION78Asiya Javayant
1007Rodrigues A KolmetzGermany2026-08-12Chanay, Jeffrey A Esq RENEWAL80Amy Elsner
1008Mayumi I RulapaughRussia2026-07-31Chanay, Jeffrey A Esq PROPOSAL28Xuxue Feng
1009Isabel G CampainGermany2026-07-21Chapman, Ross E Esq RENEWAL8Amy Elsner
1010Juan A NestleItaly2026-07-28Rangoni Of Florence QUALIFIED87Asiya Javayant
1011Tony P SchemmerSpain2026-08-10Benton, John B Jr QUALIFIED11Bernardo Dominic
1012Octavia I DoeItaly2026-08-03Buckley Miller Wright PROPOSAL33Asiya Javayant
1013Salvatore S IturbideArgentina2026-07-29Buckley Miller Wright UNQUALIFIED46Bernardo Dominic
1014Francesco W AmigonSpain2026-08-03Feiner Bros NEGOTIATION26Onyama Limba
1015Wickens T FigeroaUnited Kingdom2026-08-01Morlong Associates QUALIFIED86Xuxue Feng
1016Jeanfrancois L MarrierFrance2026-07-30Dorl, James J Esq NEGOTIATION93Ioni Bowcher
1017Juan B DarakjyItaly2026-07-24Dorl, James J Esq UNQUALIFIED69Bernardo Dominic
1018Stacey V BriddickItaly2026-08-16Feiner Bros RENEWAL11Amy Elsner
1019Aruna V ButtUnited Kingdom2026-07-30Rangoni Of Florence PROPOSAL45Stephen Shaw
1020Octavia A BriddickRussia2026-08-11Benton, John B Jr NEGOTIATION60Bernardo Dominic
1021Greenwood Y VocelkaUnited Kingdom2026-08-15Commercial Press NEGOTIATION32Anna Fali
1022Leja J DarakjyIndia2026-07-25Rangoni Of Florence NEW35Bernardo Dominic
1023Salvatore N AmigonFrance2026-08-11Chapman, Ross E Esq NEW78Xuxue Feng
1024Alejandro Z WhobreySpain2026-08-11Feiner Bros NEGOTIATION85Anna Fali
1025James O GarufiItaly2026-08-02Morlong Associates NEW26Amy Elsner
1026Darci W NestleBrazil2026-07-24Chapman, Ross E Esq PROPOSAL53Stephen Shaw
1027James H FigeroaRussia2026-08-13Benton, John B Jr PROPOSAL37Anna Fali
1028David X IturbideJapan2026-07-31Benton, John B Jr UNQUALIFIED47Anna Fali
1029Julie Z VocelkaItaly2026-07-31Rousseaux, Michael Esq QUALIFIED33Ivan Magalhaes
1030Aika B FigeroaSpain2026-08-10Benton, John B Jr RENEWAL35Bernardo Dominic
1031Claire L GlickIndia2026-08-05Truhlar And Truhlar Attys NEW54Elwin Sharvill
1032Maria E AlbaresSpain2026-08-11Truhlar And Truhlar Attys RENEWAL19Anna Fali
1033Aika P NickaRussia2026-08-07Buckley Miller Wright NEGOTIATION30Ivan Magalhaes
1034Nicolas B DarakjyFrance2026-08-03Morlong Associates QUALIFIED12Bernardo Dominic
1035Darci B FigeroaItaly2026-07-20Chanay, Jeffrey A Esq QUALIFIED72Bernardo Dominic
1036Sinclair R MaletArgentina2026-07-22Chemel, James L Cpa NEGOTIATION14Asiya Javayant
1037Kadeem G StockhamAustralia2026-08-01Rangoni Of Florence NEGOTIATION28Elwin Sharvill
1038Maria X MaletGermany2026-08-14Buckley Miller Wright NEGOTIATION70Ioni Bowcher
1039Murillo X AmigonFrance2026-07-23Rousseaux, Michael Esq PROPOSAL28Elwin Sharvill
1040Leja D MacleadItaly2026-07-25Rangoni Of Florence PROPOSAL2Onyama Limba
1041Leon O FollerSpain2026-08-16Benton, John B Jr NEW0Amy Elsner
1042David L IturbideRussia2026-08-09Chanay, Jeffrey A Esq PROPOSAL31Stephen Shaw
1043Ivar V InouyeJapan2026-08-15Rangoni Of Florence UNQUALIFIED95Elwin Sharvill
1044Jefferson J VenereItaly2026-07-29Commercial Press QUALIFIED13Onyama Limba
1045Murillo Y KuskoBrazil2026-08-03Commercial Press UNQUALIFIED18Elwin Sharvill
1046Juan U SergiBrazil2026-07-30Chemel, James L Cpa NEGOTIATION97Bernardo Dominic
1047David D FlosiUnited Kingdom2026-08-14Printing Dimensions QUALIFIED31Ioni Bowcher
1048Deepesh T NickaFrance2026-08-15Chanay, Jeffrey A Esq RENEWAL93Elwin Sharvill
1049Francesco J OstroskyRussia2026-07-26King, Christopher A Esq PROPOSAL73Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer C WaycottCanadaElwin Sharvill NEW
Jeanfrancois K SaylorsJapanStephen Shaw UNQUALIFIED
Francesco X VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues Y DarakjyJapanXuxue Feng NEW
Salvatore G MacleadGermanyAmy Elsner QUALIFIED
Ivar T GillianJapanIoni Bowcher QUALIFIED
Rodrigues T DarakjyJapanIvan Magalhaes RENEWAL
Leja V RimItalyIvan Magalhaes NEGOTIATION
Aruna Z SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Misaki Z SchemmerRussiaAmy Elsner NEGOTIATION
Clifford W DoeIndiaAsiya Javayant PROPOSAL
Wickens H PoquetteJapanIvan Magalhaes UNQUALIFIED
Leja Q DoeGermanyAmy Elsner NEGOTIATION
Aditya O GlickAustraliaAsiya Javayant NEW
Faith L SlusarskiAustraliaIvan Magalhaes NEW
Darci N PoquetteFranceBernardo Dominic RENEWAL
Sinclair V InouyeFranceIvan Magalhaes NEW
Mujtaba M BowleyIndiaAnna Fali QUALIFIED
James U CaldareraAustraliaOnyama Limba RENEWAL
Smith S CaldareraIndiaIvan Magalhaes RENEWAL
Alejandro J VocelkaFranceAnna Fali UNQUALIFIED
Ivar Y WhobreyBrazilIoni Bowcher QUALIFIED
Chavez P MarrierRussiaAsiya Javayant NEW
Ricardo U WieserCanadaAmy Elsner UNQUALIFIED
Johnson F GillianIndiaIoni Bowcher QUALIFIED
Rodrigues P PoquetteArgentinaIvan Magalhaes RENEWAL
Ivar B MaletItalyElwin Sharvill NEW
Munro Y CaldareraSpainXuxue Feng UNQUALIFIED
Deepesh F CampainBrazilXuxue Feng UNQUALIFIED
Greenwood Y FerenczFranceStephen Shaw QUALIFIED
Sinclair F RimAustraliaIoni Bowcher PROPOSAL
Darci B DilliardAustraliaAsiya Javayant NEW
Greenwood Q SlusarskiGermanyAsiya Javayant PROPOSAL
Adams A NickaIndiaOnyama Limba UNQUALIFIED
Costa M WaycottAustraliaAnna Fali NEW
Julie E WhobreyRussiaIvan Magalhaes RENEWAL
Octavia U RulapaughCanadaXuxue Feng NEW
Stacey K FollerSpainElwin Sharvill NEGOTIATION
Darci B BriddickBrazilOnyama Limba PROPOSAL
Rodrigues G RulapaughIndiaIoni Bowcher NEGOTIATION
Maria S OstroskyJapanIvan Magalhaes PROPOSAL
Octavia J DilliardRussiaAnna Fali NEGOTIATION
Greenwood I ButtIndiaStephen Shaw PROPOSAL
Claire V ChuiAustraliaAmy Elsner PROPOSAL
Antonio L PaprockiCanadaIvan Magalhaes NEW
Leon S BowleyBrazilAsiya Javayant RENEWAL
Emily J MacleadFranceIoni Bowcher PROPOSAL
Johnson S RulapaughItalyIoni Bowcher UNQUALIFIED
Leon K DarakjyGermanyXuxue Feng RENEWAL
Maisha C TollnerFranceIoni Bowcher QUALIFIED
Frozen Columns
Name
Aika F Nestle
Francesco F Inouye
Costa O Inouye
Jeanfrancois G Caudy
Sinclair H Stenseth
Faith G Caudy
Stacey G Dilliard
Octavia T Poquette
Adams B Iturbide
Aika U Chui
Wickens R Royster
Claire J Paprocki
Smith A Rim
Darci F Marrier
Kaitlin F Butt
Greenwood M Poquette
Francesco X Sergi
Nicolas L Rim
Adams D Stockham
Adams D Ruta
Costa V Saylors
Maria M Malet
Jeanfrancois V Foller
Octavia O Stockham
Julie M Ferencz
Isabel K Poquette
Tony D Oldroyd
Ivar F Kusko
Johnson I Caldarera
Wickens R Schemmer
Sinclair C Shinko
Isabel E Vocelka
Stacey F Kusko
Cody G Briddick
Juan I Perin
Smith D Doe
Chavez X Perin
Leon T Amigon
Aditya D Perin
Nicolas E Caudy
Salvatore D Rulapaugh
Salvatore Z Saylors
Clifford G Marrier
Julie O Doe
Juan O Schemmer
Salvatore A Darakjy
Ashley C Kusko
Deepesh J Malet
Octavia M Glick
Kaitlin L Stockham
IdCountryDate
1000United Kingdom2026-07-23
1001Australia2026-08-02
1002Canada2026-08-06
1003Argentina2026-08-06
1004Australia2026-07-20
1005Germany2026-07-20
1006Spain2026-08-17
1007Canada2026-07-25
1008United Kingdom2026-08-16
1009Germany2026-07-31
1010Brazil2026-08-15
1011Germany2026-08-17
1012Canada2026-08-07
1013Germany2026-07-23
1014France2026-07-20
1015Argentina2026-08-05
1016Canada2026-08-17
1017United Kingdom2026-08-06
1018Italy2026-07-31
1019Brazil2026-08-14
1020Argentina2026-08-16
1021Argentina2026-08-03
1022Japan2026-08-07
1023Russia2026-08-11
1024Australia2026-08-12
1025France2026-08-17
1026United Kingdom2026-07-30
1027Germany2026-08-11
1028Russia2026-07-19
1029India2026-08-02
1030Australia2026-07-29
1031Italy2026-07-22
1032United Kingdom2026-08-01
1033Canada2026-08-14
1034India2026-08-04
1035Italy2026-07-24
1036France2026-08-15
1037India2026-07-21
1038United Kingdom2026-07-24
1039Argentina2026-07-26
1040Italy2026-07-28
1041Spain2026-07-27
1042Brazil2026-07-28
1043Brazil2026-07-24
1044United Kingdom2026-08-08
1045Canada2026-08-13
1046Russia2026-08-11
1047Russia2026-08-11
1048France2026-08-14
1049Germany2026-08-12

On-Demand Data

NameIdCountryDate
Murillo A Gillian1000Japan2026-07-20
Aruna Q Stockham1001India2026-07-30
Costa A Whobrey1002United Kingdom2026-07-25
Silvio I Waycott1003France2026-08-07
James Y Maclead1004Germany2026-08-15
Juan U Kolmetz1005Brazil2026-07-30
Aditya X Ostrosky1006Brazil2026-07-23
Morrow M Sergi1007United Kingdom2026-08-11
Rodrigues A Ruta1008Italy2026-07-27
Jeanfrancois J Doe1009India2026-08-06
Rodrigues D Waycott1010Brazil2026-07-21
Deepesh H Flosi1011Brazil2026-07-31
Claire Q Gaucho1012Germany2026-07-20
Morrow E Saylors1013Argentina2026-08-17
Misaki X Butt1014France2026-08-09
Julie N Bowley1015France2026-07-30
Smith O Rulapaugh1016Spain2026-08-17
Izzy S Venere1017United Kingdom2026-08-06
Mujtaba M Malet1018United Kingdom2026-07-24
Claire F Campain1019Brazil2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci Z MarrierCanadaIvan Magalhaes NEW
Maisha L ButtGermanyStephen Shaw NEW
Costa L WaycottIndiaBernardo Dominic QUALIFIED
Leon S SaylorsArgentinaIvan Magalhaes QUALIFIED
Jefferson V DilliardCanadaIoni Bowcher NEW
Octavia J RutaFranceStephen Shaw QUALIFIED
Ashley C MaletJapanIvan Magalhaes QUALIFIED
Mayumi M FollerFranceIoni Bowcher RENEWAL
Rodrigues O MaletUnited KingdomElwin Sharvill NEW
Jefferson H DoeIndiaXuxue Feng QUALIFIED
Chavez W ButtFranceElwin Sharvill RENEWAL
Munro V MacleadArgentinaOnyama Limba RENEWAL
Salvatore M GauchoIndiaIvan Magalhaes RENEWAL
Ricardo R BriddickArgentinaOnyama Limba PROPOSAL
Stacey O BologniaIndiaAmy Elsner PROPOSAL
Izzy E MaletFranceIvan Magalhaes NEW
Jennifer M FerenczFranceBernardo Dominic NEW
Deepesh Y GauchoAustraliaAmy Elsner PROPOSAL
Chavez M InouyeSpainIoni Bowcher PROPOSAL
Jennifer D BowleyIndiaIoni Bowcher NEGOTIATION
Jeanfrancois A DarakjyRussiaAnna Fali RENEWAL
Kadeem H MorascaItalyIvan Magalhaes NEGOTIATION
Alejandro T VocelkaGermanyXuxue Feng UNQUALIFIED
Munro S RutaRussiaBernardo Dominic QUALIFIED
Jeanfrancois H SergiJapanAnna Fali NEW
Aditya O CaudyCanadaXuxue Feng PROPOSAL
Faith W SchemmerUnited KingdomIoni Bowcher QUALIFIED
Jennifer F TollnerAustraliaXuxue Feng RENEWAL
Costa O WhobreyAustraliaStephen Shaw NEW
Leja I SaylorsSpainIvan Magalhaes UNQUALIFIED
Julie C StensethJapanIoni Bowcher RENEWAL
Ivar T FerenczCanadaOnyama Limba RENEWAL
Antonio N FollerGermanyAsiya Javayant QUALIFIED
Jeanfrancois W GarufiSpainElwin Sharvill NEW
Aruna C StensethUnited KingdomXuxue Feng RENEWAL
Isabel S SergiSpainXuxue Feng QUALIFIED
Morrow O StensethCanadaAmy Elsner PROPOSAL
Chavez I GillianCanadaAnna Fali NEW
Mayumi K WhobreyFranceStephen Shaw RENEWAL
Aditya I ButtSpainBernardo Dominic NEW

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