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
Salvatore Y ButtCanadaStephen Shaw QUALIFIED
Ashley R PoquetteAustraliaXuxue Feng RENEWAL
Misaki U KolmetzFranceOnyama Limba NEGOTIATION
Mujtaba Q GauchoAustraliaIvan Magalhaes UNQUALIFIED
Francesco F MorascaJapanAsiya Javayant RENEWAL
Antonio Z BriddickJapanBernardo Dominic PROPOSAL
Aika I AlbaresJapanElwin Sharvill UNQUALIFIED
Deepesh B MorascaCanadaIvan Magalhaes RENEWAL
David W BologniaGermanyAnna Fali NEW
Chavez L OstroskyGermanyStephen Shaw QUALIFIED
Arvin S AlbaresGermanyAnna Fali NEW
Misaki L ChuiItalyIoni Bowcher UNQUALIFIED
Maria J ButtRussiaBernardo Dominic UNQUALIFIED
Faith U SergiAustraliaOnyama Limba PROPOSAL
Julie R DilliardGermanyAnna Fali QUALIFIED
Greenwood L WhobreyGermanyAsiya Javayant RENEWAL
Isabel A WhobreyArgentinaAsiya Javayant UNQUALIFIED
Greenwood D DilliardFranceAsiya Javayant NEW
Costa E PerinFranceIoni Bowcher NEGOTIATION
Morrow O MarrierCanadaElwin Sharvill PROPOSAL
Wickens Y RoysterIndiaXuxue Feng PROPOSAL
Misaki A FigeroaArgentinaAsiya Javayant RENEWAL
Octavia G NestleUnited KingdomAmy Elsner UNQUALIFIED
Ashley H DarakjyFranceElwin Sharvill UNQUALIFIED
Kadeem L InouyeIndiaIvan Magalhaes PROPOSAL
Leja I BowleyBrazilOnyama Limba NEGOTIATION
Rodrigues O OldroydAustraliaBernardo Dominic UNQUALIFIED
Smith D AlbaresSpainElwin Sharvill QUALIFIED
Jeanfrancois D PerinAustraliaAsiya Javayant RENEWAL
Jennifer T NickaIndiaXuxue Feng NEGOTIATION
Mujtaba Q OldroydJapanAmy Elsner PROPOSAL
Mujtaba K FlosiGermanyIvan Magalhaes UNQUALIFIED
Faith T NickaArgentinaXuxue Feng NEGOTIATION
Tony G CaldareraCanadaOnyama Limba UNQUALIFIED
Cody Y PaprockiBrazilXuxue Feng NEW
Smith B CaudyUnited KingdomStephen Shaw PROPOSAL
Emily K GauchoArgentinaStephen Shaw NEW
Ivar G ShinkoRussiaElwin Sharvill NEGOTIATION
Munro N FerenczAustraliaAsiya Javayant QUALIFIED
Rodrigues J SchemmerGermanyAmy Elsner NEW
Aditya I KuskoJapanAnna Fali NEW
Maisha M RutaIndiaIoni Bowcher QUALIFIED
David G FollerAustraliaElwin Sharvill RENEWAL
Jefferson V WaycottJapanAnna Fali NEGOTIATION
Antonio C GauchoIndiaStephen Shaw NEGOTIATION
Jennifer N SchemmerIndiaAsiya Javayant NEW
Octavia T MorascaAustraliaElwin Sharvill RENEWAL
Ivar S MorascaIndiaAnna Fali NEW
Sinclair I GarufiIndiaAsiya Javayant QUALIFIED
Claire R ShinkoAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia H FlosiGermanyAsiya Javayant UNQUALIFIED
Kadeem G MacleadUnited KingdomBernardo Dominic NEGOTIATION
Deepesh X MarrierItalyXuxue Feng NEW
Morrow C RutaGermanyAsiya Javayant RENEWAL
Nicolas M RimCanadaOnyama Limba QUALIFIED
Sinclair U RimAustraliaBernardo Dominic QUALIFIED
Silvio T InouyeFranceStephen Shaw NEGOTIATION
Aruna R ChuiFranceBernardo Dominic NEW
Mayumi U VenereIndiaStephen Shaw RENEWAL
Munro V GillianAustraliaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony A VenereFrance2026-07-22Chemel, James L Cpa PROPOSAL58Stephen Shaw
1001Misaki F MaletIndia2026-08-06King, Christopher A Esq PROPOSAL51Ioni Bowcher
1002Misaki E DilliardIndia2026-07-16Truhlar And Truhlar Attys NEW73Amy Elsner
1003Sinclair H MacleadArgentina2026-07-18Feltz Printing Service NEW2Ivan Magalhaes
1004Leon D KolmetzBrazil2026-07-13Commercial Press UNQUALIFIED95Ioni Bowcher
1005Nicolas L AmigonIndia2026-07-16Commercial Press PROPOSAL46Asiya Javayant
1006Aditya X CaldareraRussia2026-07-24Chapman, Ross E Esq NEGOTIATION67Onyama Limba
1007Claire F RoysterBrazil2026-07-16Chapman, Ross E Esq UNQUALIFIED41Ioni Bowcher
1008Nicolas Z BologniaFrance2026-07-16Printing Dimensions UNQUALIFIED8Xuxue Feng
1009Aditya S BowleyGermany2026-07-14Buckley Miller Wright NEW84Anna Fali
1010Mayumi T PerinIndia2026-08-04Benton, John B Jr NEGOTIATION44Elwin Sharvill
1011Julie G ChuiAustralia2026-07-27Chemel, James L Cpa NEW16Ioni Bowcher
1012Jennifer D OldroydArgentina2026-08-07Feltz Printing Service RENEWAL46Onyama Limba
1013Ivar L GlickArgentina2026-07-23Rousseaux, Michael Esq QUALIFIED63Elwin Sharvill
1014Smith E SlusarskiRussia2026-07-29Chemel, James L Cpa PROPOSAL72Asiya Javayant
1015Sinclair W FerenczRussia2026-08-03Feltz Printing Service PROPOSAL55Xuxue Feng
1016Rodrigues N RutaUnited Kingdom2026-07-09Dorl, James J Esq QUALIFIED81Elwin Sharvill
1017Salvatore N BowleyJapan2026-07-23Buckley Miller Wright RENEWAL19Onyama Limba
1018Aruna O GlickGermany2026-08-05Chanay, Jeffrey A Esq QUALIFIED24Asiya Javayant
1019Stacey M DilliardJapan2026-07-22Dorl, James J Esq PROPOSAL94Amy Elsner
1020Nicolas L RoysterItaly2026-07-22Commercial Press NEGOTIATION80Bernardo Dominic
1021Silvio U DilliardGermany2026-08-07Buckley Miller Wright PROPOSAL35Ioni Bowcher
1022Morrow Q OstroskyItaly2026-07-09Chemel, James L Cpa RENEWAL43Ivan Magalhaes
1023David N AmigonFrance2026-07-18Commercial Press RENEWAL24Elwin Sharvill
1024Chavez K BologniaAustralia2026-07-25King, Christopher A Esq PROPOSAL75Ioni Bowcher
1025James G RimCanada2026-08-06Chapman, Ross E Esq NEW78Ioni Bowcher
1026Ricardo C ChuiBrazil2026-07-14King, Christopher A Esq RENEWAL91Xuxue Feng
1027Salvatore F OldroydSpain2026-08-06Rousseaux, Michael Esq NEGOTIATION99Ioni Bowcher
1028Costa I NestleArgentina2026-07-29Rangoni Of Florence QUALIFIED35Onyama Limba
1029Jennifer A RimUnited Kingdom2026-08-06Benton, John B Jr QUALIFIED34Elwin Sharvill
1030Aruna E CaldareraItaly2026-07-11Benton, John B Jr NEW79Anna Fali
1031Ivar K MacleadCanada2026-07-31Truhlar And Truhlar Attys UNQUALIFIED36Bernardo Dominic
1032Greenwood Y IturbideRussia2026-08-05Rousseaux, Michael Esq PROPOSAL43Asiya Javayant
1033Claire F MarrierIndia2026-08-05Dorl, James J Esq NEW35Ivan Magalhaes
1034Julie R PaprockiIndia2026-07-27Feiner Bros NEGOTIATION33Ivan Magalhaes
1035Maria L AlbaresRussia2026-08-01Morlong Associates QUALIFIED59Ivan Magalhaes
1036Aika S ChuiAustralia2026-07-12Buckley Miller Wright UNQUALIFIED0Amy Elsner
1037Sinclair H KolmetzGermany2026-08-05Commercial Press RENEWAL52Ioni Bowcher
1038Antonio N BologniaJapan2026-08-01Dorl, James J Esq RENEWAL62Anna Fali
1039Faith J RulapaughFrance2026-07-16Feiner Bros RENEWAL0Stephen Shaw
1040Munro B RutaItaly2026-07-22Dorl, James J Esq NEGOTIATION54Ioni Bowcher
1041Emily Q PerinFrance2026-07-09King, Christopher A Esq NEGOTIATION63Stephen Shaw
1042Jefferson X FerenczBrazil2026-08-06Rousseaux, Michael Esq NEGOTIATION27Amy Elsner
1043Sinclair U DarakjyItaly2026-08-04Chanay, Jeffrey A Esq QUALIFIED32Ivan Magalhaes
1044Izzy K KolmetzIndia2026-07-14Feiner Bros PROPOSAL73Stephen Shaw
1045Stacey R PoquetteItaly2026-07-09Feltz Printing Service QUALIFIED48Amy Elsner
1046Murillo X NickaFrance2026-07-29Rousseaux, Michael Esq NEGOTIATION87Asiya Javayant
1047Cody X GauchoIndia2026-07-20Commercial Press NEW2Anna Fali
1048Costa I ButtArgentina2026-08-05Morlong Associates NEGOTIATION64Amy Elsner
1049Aruna K GarufiGermany2026-07-12Chapman, Ross E Esq PROPOSAL48Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Adams P VocelkaUnited KingdomXuxue Feng NEGOTIATION
Clifford Y SlusarskiSpainOnyama Limba QUALIFIED
Juan P ShinkoAustraliaBernardo Dominic PROPOSAL
Murillo Y VenereRussiaBernardo Dominic QUALIFIED
James H FigeroaJapanIoni Bowcher RENEWAL
Ashley H WaycottArgentinaIoni Bowcher RENEWAL
Aditya C NickaFranceElwin Sharvill UNQUALIFIED
Jeanfrancois X OldroydItalyAsiya Javayant QUALIFIED
Aditya Z AmigonSpainIvan Magalhaes RENEWAL
Antonio E KuskoIndiaAnna Fali RENEWAL
Greenwood Y VenereRussiaOnyama Limba PROPOSAL
James L GillianGermanyBernardo Dominic UNQUALIFIED
Aika E PoquetteRussiaStephen Shaw NEGOTIATION
Salvatore A TollnerCanadaXuxue Feng RENEWAL
Ricardo N OstroskyCanadaOnyama Limba NEGOTIATION
Ashley B WieserJapanIvan Magalhaes UNQUALIFIED
Silvio I RoysterAustraliaStephen Shaw RENEWAL
Jeanfrancois I SaylorsGermanyStephen Shaw NEW
Munro E RimJapanBernardo Dominic NEW
Misaki S FlosiAustraliaIoni Bowcher QUALIFIED
David L CaldareraBrazilAsiya Javayant RENEWAL
Izzy F RimIndiaIvan Magalhaes NEGOTIATION
Faith F RulapaughIndiaAmy Elsner RENEWAL
Maisha H FigeroaCanadaOnyama Limba QUALIFIED
Ivar E AmigonSpainAsiya Javayant NEW
Maria P VenereArgentinaElwin Sharvill QUALIFIED
Juan Z WieserSpainElwin Sharvill UNQUALIFIED
Sinclair P DoeAustraliaBernardo Dominic QUALIFIED
Ivar T RimJapanStephen Shaw QUALIFIED
Izzy R SchemmerBrazilAsiya Javayant NEW
Cody J MacleadFranceAsiya Javayant UNQUALIFIED
Greenwood X RulapaughCanadaXuxue Feng PROPOSAL
Wickens Q MarrierItalyOnyama Limba PROPOSAL
Smith C InouyeJapanBernardo Dominic NEW
Cody D KuskoCanadaIvan Magalhaes RENEWAL
Rodrigues L IturbideIndiaStephen Shaw UNQUALIFIED
Johnson L DarakjyJapanAsiya Javayant NEGOTIATION
Nicolas L AlbaresArgentinaIoni Bowcher RENEWAL
Costa Z ChuiFranceBernardo Dominic PROPOSAL
Deepesh O RimSpainXuxue Feng RENEWAL
Misaki H RutaUnited KingdomXuxue Feng PROPOSAL
Misaki S NestleItalyAmy Elsner QUALIFIED
Faith R FigeroaJapanBernardo Dominic RENEWAL
Aditya O GauchoUnited KingdomBernardo Dominic PROPOSAL
Johnson V VocelkaGermanyOnyama Limba NEGOTIATION
Octavia H AlbaresArgentinaXuxue Feng QUALIFIED
Munro G RutaRussiaAsiya Javayant UNQUALIFIED
Juan H OldroydAustraliaAsiya Javayant QUALIFIED
Nicolas C BologniaSpainOnyama Limba PROPOSAL
Maisha D CaldareraAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
David U Butt
Ashley S Whobrey
Smith Q Flosi
Emily Y Albares
Jones F Ferencz
Smith X Nestle
Kadeem D Morasca
Smith W Rulapaugh
Smith U Doe
Maisha V Tollner
Deepesh B Garufi
Murillo Z Gaucho
Ivar G Campain
Octavia V Oldroyd
Emily R Paprocki
Silvio P Morasca
Francesco H Malet
Julie F Albares
Costa F Poquette
Adams N Iturbide
Antonio M Wieser
James E Albares
Rodrigues A Sergi
Faith V Butt
Aika S Doe
David U Gaucho
Antonio I Caudy
Kadeem X Gaucho
Salvatore W Shinko
Kadeem N Gillian
Wickens B Kolmetz
Costa R Royster
Murillo U Darakjy
Morrow H Rim
Aika G Perin
Greenwood U Nestle
Stacey I Rulapaugh
Silvio W Malet
Arvin S Bowley
James W Caldarera
Julie O Sergi
Jeanfrancois U Malet
Faith M Perin
Cody C Foller
Juan H Gaucho
Faith H Doe
Tony U Venere
Munro I Poquette
Claire E Ferencz
Munro P Ruta
IdCountryDate
1000France2026-07-21
1001Germany2026-07-25
1002Canada2026-07-20
1003Italy2026-07-16
1004India2026-08-06
1005Australia2026-07-31
1006Russia2026-07-27
1007Japan2026-08-02
1008India2026-07-14
1009Brazil2026-07-25
1010Argentina2026-07-25
1011Spain2026-07-31
1012Canada2026-07-20
1013Brazil2026-08-01
1014Brazil2026-07-21
1015Russia2026-07-21
1016Germany2026-08-03
1017Canada2026-07-28
1018United Kingdom2026-08-07
1019United Kingdom2026-08-05
1020Spain2026-07-24
1021Italy2026-07-17
1022United Kingdom2026-07-12
1023Brazil2026-08-06
1024Germany2026-07-12
1025Japan2026-07-19
1026United Kingdom2026-07-21
1027Spain2026-07-30
1028United Kingdom2026-07-29
1029France2026-08-05
1030Brazil2026-07-26
1031United Kingdom2026-07-09
1032Canada2026-07-15
1033France2026-08-07
1034Spain2026-08-02
1035Japan2026-08-03
1036Spain2026-07-21
1037India2026-07-28
1038Australia2026-08-06
1039Russia2026-07-22
1040Japan2026-07-20
1041Italy2026-07-10
1042Germany2026-07-10
1043Japan2026-07-25
1044United Kingdom2026-07-30
1045Australia2026-07-17
1046Australia2026-07-22
1047Italy2026-07-10
1048United Kingdom2026-07-20
1049Australia2026-07-17

On-Demand Data

NameIdCountryDate
Wickens O Kusko1000Japan2026-07-09
Johnson T Wieser1001India2026-07-21
Johnson E Slusarski1002United Kingdom2026-07-29
Johnson G Royster1003Canada2026-07-21
Jeanfrancois R Foller1004Russia2026-07-14
Misaki X Nestle1005Brazil2026-07-26
Ashley U Malet1006Canada2026-07-20
Munro O Paprocki1007United Kingdom2026-07-16
Julie N Poquette1008Brazil2026-07-28
Isabel R Ruta1009Spain2026-07-13
Emily Y Gaucho1010Italy2026-08-06
Wickens J Whobrey1011India2026-08-07
Munro Q Perin1012Canada2026-07-18
Darci N Stenseth1013Brazil2026-08-07
Ricardo V Butt1014Italy2026-07-17
Ivar B Sergi1015Spain2026-07-26
Cody C Wieser1016Australia2026-07-28
Jones K Inouye1017Argentina2026-07-09
Costa B Poquette1018Argentina2026-08-03
Ashley X Garufi1019France2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David B SchemmerBrazilElwin Sharvill RENEWAL
Darci N MorascaAustraliaAmy Elsner PROPOSAL
Morrow F NickaGermanyBernardo Dominic QUALIFIED
Kaitlin A TollnerAustraliaBernardo Dominic NEW
Darci G FollerUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba N VenereRussiaOnyama Limba QUALIFIED
Stacey Q WieserUnited KingdomAnna Fali NEW
Octavia I MaletUnited KingdomIoni Bowcher QUALIFIED
Kadeem H GauchoJapanIoni Bowcher NEW
Jeanfrancois N SaylorsFranceBernardo Dominic UNQUALIFIED
Tony R GillianGermanyStephen Shaw QUALIFIED
Jones G MorascaSpainAnna Fali NEGOTIATION
Mujtaba U FlosiArgentinaIoni Bowcher NEGOTIATION
Darci Q InouyeIndiaAnna Fali RENEWAL
Leja X IturbideIndiaIvan Magalhaes NEW
Misaki R SergiCanadaXuxue Feng NEGOTIATION
Leon X RoysterBrazilIoni Bowcher PROPOSAL
Smith W FlosiSpainIvan Magalhaes PROPOSAL
Jefferson C RutaFranceXuxue Feng QUALIFIED
Emily D BriddickRussiaIoni Bowcher RENEWAL
Sinclair W PaprockiAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois T DarakjyCanadaBernardo Dominic NEGOTIATION
Nicolas K BriddickSpainAsiya Javayant QUALIFIED
Maisha U CaudyItalyAnna Fali UNQUALIFIED
Leon R TollnerRussiaXuxue Feng PROPOSAL
David M CaldareraArgentinaAnna Fali NEGOTIATION
Alejandro S ChuiRussiaAsiya Javayant QUALIFIED
David F GlickUnited KingdomIoni Bowcher NEW
David I SchemmerArgentinaXuxue Feng QUALIFIED
Isabel S VocelkaCanadaAmy Elsner UNQUALIFIED
Greenwood P BologniaCanadaAsiya Javayant UNQUALIFIED
Claire A GarufiBrazilBernardo Dominic RENEWAL
Maria H RutaRussiaStephen Shaw QUALIFIED
Izzy C CampainFranceBernardo Dominic RENEWAL
Nicolas N MorascaIndiaAsiya Javayant NEGOTIATION
Aditya Q KolmetzFranceAsiya Javayant UNQUALIFIED
Leja Y MorascaItalyAnna Fali PROPOSAL
Silvio X WhobreyUnited KingdomIoni Bowcher NEW
Rodrigues E NestleIndiaAnna Fali NEW
Stacey F SlusarskiFranceBernardo Dominic QUALIFIED

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