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
Ashley I RulapaughBrazilAsiya Javayant QUALIFIED
Faith U MacleadBrazilBernardo Dominic RENEWAL
Leja Y MorascaRussiaBernardo Dominic PROPOSAL
Adams M CampainUnited KingdomStephen Shaw QUALIFIED
Adams B CampainSpainElwin Sharvill NEW
Greenwood C StockhamAustraliaIvan Magalhaes QUALIFIED
Jones F StockhamBrazilBernardo Dominic UNQUALIFIED
Kaitlin P DarakjyIndiaStephen Shaw RENEWAL
Silvio E ChuiJapanAmy Elsner RENEWAL
Aditya K MaletSpainOnyama Limba NEGOTIATION
Isabel B AlbaresRussiaStephen Shaw PROPOSAL
Sinclair C VenereItalyAsiya Javayant UNQUALIFIED
Kaitlin K CampainSpainAsiya Javayant PROPOSAL
Leja W CaudyUnited KingdomOnyama Limba QUALIFIED
Ivar R MaletAustraliaIvan Magalhaes UNQUALIFIED
Jefferson W GlickItalyIvan Magalhaes QUALIFIED
Aika I WieserCanadaXuxue Feng PROPOSAL
Aruna E AmigonItalyXuxue Feng QUALIFIED
Aika U RimItalyOnyama Limba UNQUALIFIED
Aruna T PerinIndiaIoni Bowcher NEGOTIATION
Kadeem W MorascaAustraliaElwin Sharvill UNQUALIFIED
Jefferson T CaudyAustraliaAmy Elsner UNQUALIFIED
Faith V WieserGermanyElwin Sharvill QUALIFIED
Francesco V FollerIndiaXuxue Feng NEGOTIATION
Leja V KuskoBrazilElwin Sharvill UNQUALIFIED
Adams P FollerAustraliaElwin Sharvill NEW
Misaki J SaylorsAustraliaIvan Magalhaes NEW
Izzy Y SchemmerFranceAnna Fali QUALIFIED
Maria I AlbaresRussiaOnyama Limba PROPOSAL
Leon B PerinBrazilAmy Elsner NEW
Ricardo P BologniaCanadaXuxue Feng PROPOSAL
Morrow W CampainAustraliaAnna Fali PROPOSAL
Aika W CaldareraJapanAnna Fali RENEWAL
Francesco R PoquetteFranceAnna Fali NEGOTIATION
Aruna N CampainJapanOnyama Limba QUALIFIED
Mujtaba F MaletFranceElwin Sharvill NEW
Salvatore E OstroskyRussiaAnna Fali PROPOSAL
Clifford V NickaGermanyIoni Bowcher NEW
Murillo Z AlbaresFranceAnna Fali UNQUALIFIED
Costa W GauchoSpainAmy Elsner NEW
Octavia U VenereRussiaIvan Magalhaes QUALIFIED
Costa U BowleyRussiaAsiya Javayant QUALIFIED
Izzy C CaudyItalyOnyama Limba NEW
Johnson M OldroydRussiaOnyama Limba QUALIFIED
Isabel O CampainJapanAsiya Javayant UNQUALIFIED
Aika I CaldareraItalyIoni Bowcher RENEWAL
James P NickaRussiaIvan Magalhaes NEGOTIATION
David C FigeroaUnited KingdomBernardo Dominic NEW
Murillo K BowleyItalyAsiya Javayant NEGOTIATION
Darci G KolmetzItalyStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco R WieserCanadaElwin Sharvill UNQUALIFIED
Emily W CaudyArgentinaBernardo Dominic UNQUALIFIED
Rodrigues T MacleadSpainIoni Bowcher QUALIFIED
Mujtaba J RimArgentinaIvan Magalhaes PROPOSAL
Kadeem B WaycottUnited KingdomAmy Elsner RENEWAL
Jones O SaylorsCanadaAnna Fali QUALIFIED
Costa B GlickUnited KingdomOnyama Limba NEGOTIATION
Johnson R GarufiGermanyAsiya Javayant PROPOSAL
Darci W VenereGermanyXuxue Feng QUALIFIED
Jennifer U NestleGermanyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues L MaletItaly2026-08-14Truhlar And Truhlar Attys PROPOSAL30Elwin Sharvill
1001Antonio J BologniaIndia2026-08-15Printing Dimensions NEW38Onyama Limba
1002Darci J MacleadFrance2026-07-27Feiner Bros QUALIFIED82Elwin Sharvill
1003Jeanfrancois C TollnerSpain2026-08-17Printing Dimensions NEW44Xuxue Feng
1004Tony K ShinkoIndia2026-07-19Morlong Associates PROPOSAL39Amy Elsner
1005Ivar G MacleadGermany2026-07-21Chapman, Ross E Esq PROPOSAL97Ioni Bowcher
1006Sinclair K WaycottArgentina2026-08-02Chapman, Ross E Esq UNQUALIFIED14Stephen Shaw
1007Aruna C MaletBrazil2026-08-01Commercial Press RENEWAL94Ioni Bowcher
1008Salvatore F OstroskyGermany2026-07-21Chapman, Ross E Esq NEW37Elwin Sharvill
1009Izzy S ChuiGermany2026-07-28Rangoni Of Florence RENEWAL36Xuxue Feng
1010Murillo V GillianRussia2026-07-31King, Christopher A Esq RENEWAL77Amy Elsner
1011Clifford Q PerinUnited Kingdom2026-08-05Chanay, Jeffrey A Esq RENEWAL56Onyama Limba
1012Wickens F CampainFrance2026-07-20Commercial Press UNQUALIFIED24Onyama Limba
1013Costa X MarrierCanada2026-07-30Feiner Bros NEGOTIATION12Ivan Magalhaes
1014Kaitlin I InouyeRussia2026-08-11King, Christopher A Esq NEW88Elwin Sharvill
1015Maria R MaletUnited Kingdom2026-08-11Rousseaux, Michael Esq UNQUALIFIED78Onyama Limba
1016Ivar B MorascaBrazil2026-07-24Rousseaux, Michael Esq RENEWAL68Bernardo Dominic
1017Kadeem W FigeroaSpain2026-07-23Printing Dimensions NEW26Amy Elsner
1018Deepesh L InouyeArgentina2026-08-02Feiner Bros NEGOTIATION22Asiya Javayant
1019Jennifer M FerenczBrazil2026-07-27Chemel, James L Cpa UNQUALIFIED18Anna Fali
1020Tony R GauchoAustralia2026-08-11Printing Dimensions NEGOTIATION26Asiya Javayant
1021Adams D TollnerGermany2026-08-08Morlong Associates NEW98Xuxue Feng
1022Silvio Z PerinSpain2026-07-24Chapman, Ross E Esq UNQUALIFIED53Anna Fali
1023Ivar T FigeroaFrance2026-08-16Truhlar And Truhlar Attys NEGOTIATION69Amy Elsner
1024Tony B KolmetzUnited Kingdom2026-08-17Feltz Printing Service PROPOSAL61Asiya Javayant
1025Greenwood R SlusarskiIndia2026-07-25Buckley Miller Wright PROPOSAL79Asiya Javayant
1026James G FerenczRussia2026-08-16Printing Dimensions PROPOSAL84Stephen Shaw
1027Wickens R GillianGermany2026-08-02Benton, John B Jr QUALIFIED8Ivan Magalhaes
1028Maria Q RulapaughRussia2026-08-15Chapman, Ross E Esq PROPOSAL30Ivan Magalhaes
1029Francesco S BriddickJapan2026-07-28Truhlar And Truhlar Attys NEW15Amy Elsner
1030Rodrigues L DoeAustralia2026-07-28Printing Dimensions QUALIFIED79Ioni Bowcher
1031Stacey R TollnerBrazil2026-08-14Commercial Press NEW18Xuxue Feng
1032Aditya J ShinkoIndia2026-08-12Buckley Miller Wright NEW5Asiya Javayant
1033Chavez W KuskoJapan2026-07-26Dorl, James J Esq PROPOSAL68Bernardo Dominic
1034Jeanfrancois C TollnerAustralia2026-07-23Feiner Bros NEGOTIATION6Anna Fali
1035Johnson F BriddickRussia2026-08-10Commercial Press RENEWAL17Onyama Limba
1036Jennifer G OldroydUnited Kingdom2026-07-28Chemel, James L Cpa QUALIFIED43Ivan Magalhaes
1037Deepesh V VocelkaRussia2026-07-23Commercial Press QUALIFIED19Anna Fali
1038Rodrigues M FlosiSpain2026-08-12Feltz Printing Service RENEWAL37Anna Fali
1039Misaki L BologniaSpain2026-08-11Rangoni Of Florence UNQUALIFIED35Amy Elsner
1040David P VenereItaly2026-07-21Morlong Associates UNQUALIFIED42Elwin Sharvill
1041Juan W BowleyBrazil2026-08-15Morlong Associates NEGOTIATION8Onyama Limba
1042Jones T MaletItaly2026-08-05Chanay, Jeffrey A Esq PROPOSAL59Amy Elsner
1043Tony E GarufiUnited Kingdom2026-08-07Chapman, Ross E Esq RENEWAL79Xuxue Feng
1044Leon W VocelkaFrance2026-07-31Printing Dimensions QUALIFIED69Bernardo Dominic
1045Emily N AlbaresSpain2026-08-11Buckley Miller Wright UNQUALIFIED21Stephen Shaw
1046Salvatore Y ShinkoJapan2026-07-21King, Christopher A Esq NEGOTIATION16Asiya Javayant
1047Chavez T GauchoRussia2026-07-24Benton, John B Jr NEGOTIATION74Ivan Magalhaes
1048Antonio H NickaGermany2026-07-21Chapman, Ross E Esq NEW80Ioni Bowcher
1049Claire F ShinkoAustralia2026-08-06Chapman, Ross E Esq UNQUALIFIED57Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maisha O GlickFranceXuxue Feng PROPOSAL
Salvatore M KuskoArgentinaXuxue Feng NEW
Emily T OldroydAustraliaBernardo Dominic QUALIFIED
Juan F CampainCanadaStephen Shaw NEGOTIATION
Sinclair K BowleyArgentinaIvan Magalhaes QUALIFIED
Jennifer E MacleadFranceStephen Shaw PROPOSAL
Tony V AmigonFranceIvan Magalhaes NEW
Tony H PaprockiGermanyAsiya Javayant NEW
Juan P DarakjyUnited KingdomOnyama Limba RENEWAL
Jefferson C RulapaughGermanyElwin Sharvill NEW
Aika V StockhamBrazilAmy Elsner NEGOTIATION
Silvio J GarufiUnited KingdomStephen Shaw PROPOSAL
Octavia Z VocelkaBrazilElwin Sharvill NEW
Claire N ShinkoSpainIvan Magalhaes RENEWAL
Maisha P VocelkaJapanIoni Bowcher QUALIFIED
Ivar R NestleArgentinaElwin Sharvill NEW
Francesco K KolmetzJapanBernardo Dominic NEGOTIATION
Salvatore S KolmetzGermanyXuxue Feng UNQUALIFIED
Claire G FlosiArgentinaIvan Magalhaes NEW
Ashley Y PoquetteRussiaElwin Sharvill PROPOSAL
Darci L BriddickFranceIvan Magalhaes NEW
Jones B WhobreyUnited KingdomElwin Sharvill QUALIFIED
Adams S SlusarskiRussiaAmy Elsner NEGOTIATION
James V DilliardItalyXuxue Feng QUALIFIED
Kaitlin V MorascaIndiaStephen Shaw NEGOTIATION
Alejandro U WhobreyIndiaElwin Sharvill UNQUALIFIED
Maisha H GarufiRussiaIvan Magalhaes UNQUALIFIED
Deepesh U CaudyUnited KingdomAsiya Javayant RENEWAL
Nicolas E ButtUnited KingdomOnyama Limba UNQUALIFIED
Francesco G MaletJapanAnna Fali RENEWAL
Alejandro O VenereArgentinaIoni Bowcher NEW
Ivar R SchemmerFranceAnna Fali NEW
Leon E AlbaresIndiaIoni Bowcher NEGOTIATION
Octavia N SergiRussiaElwin Sharvill UNQUALIFIED
Stacey C AmigonUnited KingdomIoni Bowcher NEGOTIATION
Morrow O FlosiRussiaOnyama Limba NEW
Adams I CaldareraIndiaAmy Elsner UNQUALIFIED
Clifford S CaldareraArgentinaAnna Fali NEW
Wickens S PaprockiBrazilOnyama Limba NEGOTIATION
Misaki B ButtBrazilIoni Bowcher UNQUALIFIED
Ivar A DarakjyIndiaAmy Elsner QUALIFIED
Misaki D IturbideGermanyStephen Shaw UNQUALIFIED
Octavia Z VenereFranceAsiya Javayant UNQUALIFIED
Jennifer Z MacleadArgentinaAmy Elsner NEW
Morrow E BowleyRussiaBernardo Dominic RENEWAL
Tony D SchemmerCanadaElwin Sharvill UNQUALIFIED
Adams D ChuiSpainAsiya Javayant QUALIFIED
Sinclair S BriddickGermanyBernardo Dominic UNQUALIFIED
Misaki S ButtCanadaAsiya Javayant RENEWAL
James A FerenczBrazilAmy Elsner RENEWAL
Frozen Columns
Name
Silvio H Vocelka
Octavia R Vocelka
Darci D Flosi
Antonio Z Stenseth
Kaitlin V Ostrosky
Jeanfrancois N Dilliard
Maria F Stenseth
Murillo X Oldroyd
Stacey X Vocelka
Smith Y Marrier
Munro N Sergi
Tony R Oldroyd
Cody F Ostrosky
Silvio G Paprocki
David W Vocelka
Adams P Bowley
Cody Q Saylors
Izzy G Caudy
Maria D Stockham
Greenwood S Glick
Costa O Marrier
Murillo M Whobrey
Stacey S Malet
Sinclair X Paprocki
Juan L Chui
Greenwood V Briddick
Maria B Bowley
Johnson X Rim
Silvio N Bolognia
James G Paprocki
Nicolas A Malet
Aditya D Malet
Adams R Chui
Wickens Y Briddick
Cody L Venere
Misaki B Oldroyd
Arvin T Schemmer
Jennifer P Tollner
Murillo G Shinko
Alejandro P Nestle
Leon A Campain
Sinclair W Flosi
Faith C Amigon
Munro Z Inouye
Maisha E Perin
Jeanfrancois Z Gaucho
Jeanfrancois H Royster
Adams E Schemmer
Greenwood H Flosi
Stacey K Bowley
IdCountryDate
1000India2026-08-01
1001Argentina2026-07-31
1002Italy2026-07-28
1003Spain2026-08-15
1004Brazil2026-08-10
1005United Kingdom2026-08-04
1006Germany2026-08-01
1007India2026-08-04
1008Germany2026-08-05
1009Japan2026-07-19
1010Italy2026-07-26
1011Italy2026-08-05
1012India2026-07-20
1013India2026-07-30
1014Canada2026-08-05
1015Japan2026-07-21
1016France2026-08-12
1017United Kingdom2026-07-25
1018Russia2026-08-09
1019Spain2026-08-04
1020Russia2026-07-30
1021United Kingdom2026-07-24
1022Canada2026-07-27
1023Germany2026-08-15
1024Brazil2026-08-04
1025Brazil2026-07-23
1026Australia2026-07-26
1027France2026-07-29
1028Russia2026-08-05
1029Australia2026-08-09
1030United Kingdom2026-08-07
1031India2026-07-28
1032France2026-08-17
1033Australia2026-08-06
1034Spain2026-08-16
1035France2026-07-27
1036Brazil2026-07-29
1037Italy2026-08-15
1038United Kingdom2026-08-13
1039Italy2026-08-03
1040Italy2026-07-19
1041India2026-07-19
1042Germany2026-07-23
1043Argentina2026-08-04
1044Russia2026-08-12
1045France2026-07-19
1046Canada2026-07-24
1047Argentina2026-08-07
1048Japan2026-08-06
1049India2026-07-30

On-Demand Data

NameIdCountryDate
Jones A Ruta1000Russia2026-07-21
Aika W Ostrosky1001Russia2026-07-19
Claire R Briddick1002Australia2026-08-02
Johnson Y Nestle1003United Kingdom2026-07-27
Clifford W Nestle1004Canada2026-07-25
Arvin J Vocelka1005Japan2026-07-30
Rodrigues K Inouye1006Italy2026-07-29
Octavia U Glick1007Canada2026-08-07
Adams V Rulapaugh1008Brazil2026-08-07
Maisha P Malet1009Spain2026-08-05
Kaitlin U Poquette1010Russia2026-07-22
Claire H Paprocki1011Spain2026-08-09
Costa S Figeroa1012Germany2026-07-26
Sinclair U Venere1013India2026-08-17
Munro B Ostrosky1014Australia2026-07-26
Arvin M Schemmer1015Canada2026-07-22
Chavez E Ruta1016Italy2026-07-19
Tony T Paprocki1017India2026-07-22
Julie T Morasca1018Japan2026-07-27
Munro Z Shinko1019India2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya S FollerBrazilIvan Magalhaes QUALIFIED
Johnson A TollnerBrazilAmy Elsner QUALIFIED
Stacey Z VenereItalyBernardo Dominic PROPOSAL
Leon Q CaldareraAustraliaOnyama Limba QUALIFIED
Misaki F RimIndiaIvan Magalhaes RENEWAL
Leon P OldroydCanadaAsiya Javayant UNQUALIFIED
Adams F RoysterCanadaXuxue Feng NEGOTIATION
Costa L AlbaresGermanyIvan Magalhaes PROPOSAL
Misaki P RimJapanXuxue Feng UNQUALIFIED
Adams O MorascaBrazilOnyama Limba NEW
Leja S SergiFranceStephen Shaw RENEWAL
Alejandro C ChuiCanadaOnyama Limba UNQUALIFIED
Munro L MorascaBrazilAnna Fali RENEWAL
Stacey C GlickFranceXuxue Feng UNQUALIFIED
Alejandro M NickaAustraliaIoni Bowcher NEGOTIATION
Murillo Q SchemmerArgentinaAsiya Javayant UNQUALIFIED
Jennifer A SergiBrazilAmy Elsner QUALIFIED
Rodrigues R AlbaresIndiaXuxue Feng NEGOTIATION
Mayumi A ShinkoUnited KingdomAmy Elsner RENEWAL
Jeanfrancois Y CampainBrazilStephen Shaw NEW
Nicolas C NickaFranceOnyama Limba NEW
Sinclair L PoquetteJapanAmy Elsner UNQUALIFIED
Silvio R SaylorsUnited KingdomAnna Fali NEGOTIATION
Stacey U ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo M PoquetteItalyIvan Magalhaes RENEWAL
Jones N PerinJapanBernardo Dominic RENEWAL
Darci G DilliardAustraliaBernardo Dominic PROPOSAL
Misaki H AmigonSpainElwin Sharvill RENEWAL
Leja Y PoquetteArgentinaIvan Magalhaes NEW
Leja J RimFranceOnyama Limba QUALIFIED
Clifford U BologniaArgentinaIvan Magalhaes QUALIFIED
Aika A RoysterAustraliaIoni Bowcher QUALIFIED
Salvatore D StensethIndiaElwin Sharvill QUALIFIED
Smith G GarufiCanadaXuxue Feng UNQUALIFIED
Wickens Z FollerSpainBernardo Dominic RENEWAL
Ashley C InouyeIndiaAmy Elsner NEW
Stacey R VocelkaJapanAmy Elsner UNQUALIFIED
Emily S BowleyGermanyAsiya Javayant NEW
Salvatore Z SchemmerIndiaOnyama Limba NEGOTIATION
Jones Q ChuiUnited KingdomAmy Elsner 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>