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
Juan V RutaCanadaIoni Bowcher NEW
Darci P VenereRussiaStephen Shaw QUALIFIED
Jennifer T BowleyBrazilAsiya Javayant PROPOSAL
Julie K GillianSpainOnyama Limba QUALIFIED
Francesco L BriddickBrazilBernardo Dominic QUALIFIED
Emily B MaletIndiaAsiya Javayant NEW
Faith N FlosiRussiaAnna Fali RENEWAL
Chavez X GlickGermanyElwin Sharvill RENEWAL
Adams V SchemmerAustraliaIoni Bowcher PROPOSAL
Ricardo G StensethArgentinaIoni Bowcher NEGOTIATION
Arvin W StockhamCanadaAsiya Javayant NEW
Octavia J CaldareraCanadaElwin Sharvill PROPOSAL
Aika L NestleAustraliaOnyama Limba NEGOTIATION
Emily H PoquetteCanadaOnyama Limba RENEWAL
Jeanfrancois C NickaBrazilBernardo Dominic RENEWAL
Leon T FigeroaGermanyOnyama Limba NEGOTIATION
Leja P GauchoBrazilElwin Sharvill NEGOTIATION
Emily U MaletFranceAsiya Javayant NEGOTIATION
Ivar Z CaudyBrazilIoni Bowcher QUALIFIED
Isabel C WieserAustraliaAsiya Javayant NEGOTIATION
Deepesh V FollerAustraliaIoni Bowcher RENEWAL
Isabel U InouyeFranceAnna Fali RENEWAL
Tony H BowleyGermanyOnyama Limba NEGOTIATION
Aditya Y SaylorsJapanXuxue Feng QUALIFIED
Tony H WhobreyJapanAsiya Javayant NEGOTIATION
Ivar Z BowleyGermanyIvan Magalhaes QUALIFIED
Alejandro L KolmetzItalyBernardo Dominic NEW
Antonio I DilliardJapanOnyama Limba NEGOTIATION
Leja V RoysterItalyBernardo Dominic PROPOSAL
Nicolas T PerinSpainOnyama Limba NEW
Aruna E RimItalyOnyama Limba NEW
Ashley N RimUnited KingdomElwin Sharvill RENEWAL
Clifford R SlusarskiJapanStephen Shaw QUALIFIED
Nicolas I RoysterItalyAsiya Javayant NEGOTIATION
Isabel B AlbaresBrazilIoni Bowcher NEGOTIATION
Chavez J OstroskyIndiaIoni Bowcher NEW
Leon W ShinkoAustraliaAmy Elsner RENEWAL
Octavia N FerenczBrazilOnyama Limba UNQUALIFIED
Nicolas G TollnerUnited KingdomElwin Sharvill NEGOTIATION
Misaki G InouyeArgentinaXuxue Feng UNQUALIFIED
Chavez Z NestleGermanyStephen Shaw PROPOSAL
Tony X SergiIndiaElwin Sharvill NEW
James M FerenczCanadaAmy Elsner RENEWAL
Sinclair T BowleyRussiaStephen Shaw NEW
Morrow X VenereSpainXuxue Feng NEW
Claire V SaylorsBrazilAnna Fali PROPOSAL
Ashley B MaletJapanAnna Fali PROPOSAL
Emily N FollerSpainAmy Elsner PROPOSAL
Darci O PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Clifford V OstroskyGermanyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Stacey K OstroskyGermanyBernardo Dominic PROPOSAL
Costa M FerenczRussiaBernardo Dominic PROPOSAL
Chavez Y MacleadItalyBernardo Dominic PROPOSAL
Smith B ButtFranceIvan Magalhaes NEW
Mayumi B MaletGermanyAsiya Javayant UNQUALIFIED
Nicolas N InouyeRussiaIvan Magalhaes UNQUALIFIED
Arvin W WieserFranceElwin Sharvill UNQUALIFIED
Izzy W MarrierUnited KingdomXuxue Feng QUALIFIED
Deepesh S ButtIndiaStephen Shaw QUALIFIED
Julie Y RoysterArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Z StensethRussia2026-08-23Chemel, James L Cpa PROPOSAL66Stephen Shaw
1001Antonio G MacleadArgentina2026-08-17Dorl, James J Esq UNQUALIFIED90Ioni Bowcher
1002Claire C CaudyFrance2026-08-05Chanay, Jeffrey A Esq QUALIFIED80Stephen Shaw
1003Isabel E PoquetteCanada2026-08-16Feltz Printing Service NEW89Elwin Sharvill
1004Chavez F SchemmerFrance2026-08-15Rangoni Of Florence RENEWAL91Onyama Limba
1005Jefferson D RimArgentina2026-08-13Truhlar And Truhlar Attys RENEWAL62Ioni Bowcher
1006Salvatore Z PoquetteUnited Kingdom2026-08-18Chapman, Ross E Esq UNQUALIFIED76Stephen Shaw
1007Adams D ChuiCanada2026-08-25Benton, John B Jr NEGOTIATION88Ivan Magalhaes
1008Francesco P VenereAustralia2026-08-27Chanay, Jeffrey A Esq QUALIFIED33Xuxue Feng
1009Isabel F RutaUnited Kingdom2026-08-11Rousseaux, Michael Esq NEW15Anna Fali
1010Faith Y StensethBrazil2026-08-24Buckley Miller Wright PROPOSAL32Elwin Sharvill
1011Deepesh V KuskoBrazil2026-08-21Chemel, James L Cpa NEW11Onyama Limba
1012Johnson A InouyeRussia2026-08-13Benton, John B Jr UNQUALIFIED38Asiya Javayant
1013Johnson C MaletItaly2026-08-12Truhlar And Truhlar Attys NEW19Stephen Shaw
1014Wickens R RulapaughItaly2026-08-25Morlong Associates RENEWAL3Onyama Limba
1015Kaitlin V MarrierIndia2026-08-10Truhlar And Truhlar Attys NEW10Onyama Limba
1016Chavez Z OstroskyIndia2026-08-19Chemel, James L Cpa PROPOSAL21Onyama Limba
1017Emily M MorascaBrazil2026-08-03Rousseaux, Michael Esq QUALIFIED22Ioni Bowcher
1018Juan B KolmetzArgentina2026-08-19Feiner Bros RENEWAL77Elwin Sharvill
1019Nicolas P KolmetzBrazil2026-08-05Feltz Printing Service NEGOTIATION7Asiya Javayant
1020Salvatore T VocelkaSpain2026-08-16Rangoni Of Florence NEGOTIATION48Amy Elsner
1021Murillo F ButtIndia2026-08-29Dorl, James J Esq QUALIFIED77Onyama Limba
1022Jennifer E NickaGermany2026-08-21Commercial Press NEGOTIATION46Ivan Magalhaes
1023Ashley U BriddickBrazil2026-08-23Chapman, Ross E Esq NEGOTIATION42Onyama Limba
1024Faith P MarrierArgentina2026-08-03Morlong Associates NEW91Ivan Magalhaes
1025Greenwood U KuskoArgentina2026-08-02Benton, John B Jr PROPOSAL29Amy Elsner
1026Cody S RimArgentina2026-08-18Truhlar And Truhlar Attys PROPOSAL20Stephen Shaw
1027Smith P MorascaCanada2026-08-07Chapman, Ross E Esq NEGOTIATION17Elwin Sharvill
1028Jennifer Q OstroskyJapan2026-08-14Feltz Printing Service QUALIFIED0Ivan Magalhaes
1029Jefferson S FlosiSpain2026-08-07Dorl, James J Esq RENEWAL41Anna Fali
1030Francesco A RutaIndia2026-08-01Rousseaux, Michael Esq PROPOSAL53Bernardo Dominic
1031Francesco J NickaJapan2026-08-05Benton, John B Jr NEGOTIATION51Anna Fali
1032Jones M GauchoFrance2026-08-06Truhlar And Truhlar Attys RENEWAL83Ioni Bowcher
1033Salvatore W CampainIndia2026-08-03Rousseaux, Michael Esq RENEWAL42Onyama Limba
1034Silvio A NickaFrance2026-08-23Commercial Press NEGOTIATION97Stephen Shaw
1035Mayumi L VocelkaIndia2026-08-25Chemel, James L Cpa RENEWAL61Onyama Limba
1036Ashley I BriddickCanada2026-08-22King, Christopher A Esq QUALIFIED9Xuxue Feng
1037James E DilliardBrazil2026-08-04Feltz Printing Service NEGOTIATION69Bernardo Dominic
1038Faith F WaycottBrazil2026-08-22Rousseaux, Michael Esq NEGOTIATION47Xuxue Feng
1039Izzy H OldroydJapan2026-08-15Chanay, Jeffrey A Esq PROPOSAL97Ivan Magalhaes
1040Leon W GillianIndia2026-08-05Feltz Printing Service QUALIFIED67Onyama Limba
1041Ashley D GauchoFrance2026-08-14Buckley Miller Wright QUALIFIED41Amy Elsner
1042Munro G CaldareraGermany2026-08-24Printing Dimensions PROPOSAL44Onyama Limba
1043Costa L StensethUnited Kingdom2026-08-11Feiner Bros QUALIFIED77Bernardo Dominic
1044Misaki F GillianIndia2026-08-01Chemel, James L Cpa NEGOTIATION87Asiya Javayant
1045Chavez I MorascaGermany2026-08-27Dorl, James J Esq RENEWAL92Ivan Magalhaes
1046Faith Q KolmetzJapan2026-08-30Chanay, Jeffrey A Esq RENEWAL21Xuxue Feng
1047Mujtaba V MaletBrazil2026-08-17Rousseaux, Michael Esq NEGOTIATION46Anna Fali
1048Misaki N NestleUnited Kingdom2026-08-20Rangoni Of Florence NEGOTIATION39Onyama Limba
1049Kaitlin C PoquetteArgentina2026-08-04Morlong Associates NEGOTIATION11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Faith L OldroydIndiaElwin Sharvill QUALIFIED
Ricardo C DoeJapanAmy Elsner QUALIFIED
Rodrigues L CaldareraArgentinaIvan Magalhaes QUALIFIED
Jones D AlbaresJapanAnna Fali PROPOSAL
Sinclair M GarufiJapanOnyama Limba UNQUALIFIED
Claire X BowleyJapanElwin Sharvill NEGOTIATION
Jefferson L NestleFranceXuxue Feng QUALIFIED
Jones E OldroydCanadaIvan Magalhaes PROPOSAL
Sinclair L GlickJapanAsiya Javayant NEGOTIATION
Izzy E FigeroaIndiaElwin Sharvill NEW
Arvin D RoysterItalyOnyama Limba RENEWAL
Mujtaba X MorascaAustraliaOnyama Limba UNQUALIFIED
Silvio G KuskoCanadaAsiya Javayant PROPOSAL
Costa X NickaArgentinaBernardo Dominic RENEWAL
Mayumi T InouyeAustraliaXuxue Feng NEGOTIATION
Deepesh O RulapaughRussiaAsiya Javayant PROPOSAL
Clifford F BowleyArgentinaAmy Elsner QUALIFIED
Faith T DarakjyFranceIvan Magalhaes NEW
Juan D MorascaItalyIoni Bowcher RENEWAL
Misaki Y MacleadJapanBernardo Dominic PROPOSAL
Silvio U KuskoGermanyXuxue Feng RENEWAL
Cody I MorascaItalyStephen Shaw NEGOTIATION
Octavia E PaprockiGermanyAsiya Javayant UNQUALIFIED
Ivar E VocelkaGermanyBernardo Dominic NEW
Silvio J CaudyRussiaAnna Fali NEW
Johnson J GauchoCanadaOnyama Limba NEW
Mayumi T BowleyItalyBernardo Dominic RENEWAL
David M AlbaresAustraliaAnna Fali NEGOTIATION
Morrow Q PerinCanadaBernardo Dominic NEW
Julie C FollerCanadaBernardo Dominic NEGOTIATION
Aditya C WaycottJapanAnna Fali UNQUALIFIED
Darci B FerenczItalyElwin Sharvill UNQUALIFIED
Antonio D StensethIndiaXuxue Feng QUALIFIED
Jefferson Y AlbaresSpainElwin Sharvill PROPOSAL
Antonio F OstroskyItalyAnna Fali UNQUALIFIED
Aruna W DoeGermanyBernardo Dominic UNQUALIFIED
Izzy L InouyeAustraliaElwin Sharvill PROPOSAL
Francesco X MacleadFranceXuxue Feng UNQUALIFIED
Ricardo U KolmetzGermanyIoni Bowcher NEGOTIATION
Mayumi J ShinkoJapanBernardo Dominic RENEWAL
Juan T WaycottAustraliaIvan Magalhaes QUALIFIED
Antonio T SaylorsAustraliaElwin Sharvill NEGOTIATION
Arvin Z PerinSpainStephen Shaw PROPOSAL
Faith T MaletFranceBernardo Dominic RENEWAL
Maisha V GarufiCanadaElwin Sharvill PROPOSAL
Kadeem B GauchoIndiaBernardo Dominic QUALIFIED
Darci F StockhamSpainAsiya Javayant QUALIFIED
Izzy T SlusarskiAustraliaAsiya Javayant NEGOTIATION
Isabel S RimAustraliaAsiya Javayant UNQUALIFIED
Maria B CaudyArgentinaElwin Sharvill PROPOSAL
Frozen Columns
Name
Aika I Schemmer
Rodrigues M Saylors
Munro Y Sergi
Nicolas C Inouye
Costa S Rulapaugh
Silvio I Ostrosky
Rodrigues G Malet
Claire N Albares
Salvatore P Darakjy
Isabel W Darakjy
Johnson H Dilliard
Nicolas W Malet
Juan C Campain
Izzy B Slusarski
Murillo V Paprocki
James W Iturbide
Misaki T Vocelka
Darci P Darakjy
David L Ruta
Arvin J Campain
Salvatore L Morasca
Tony W Butt
Jeanfrancois R Bolognia
Maisha C Ruta
Jeanfrancois G Ferencz
Chavez L Malet
Isabel N Gillian
Aruna Z Saylors
Cody F Amigon
Aika K Chui
Leja K Stenseth
Francesco G Kusko
James P Malet
Darci Y Ferencz
Murillo E Iturbide
Kadeem O Caldarera
Sinclair E Rulapaugh
Salvatore H Vocelka
Octavia R Kolmetz
Morrow H Chui
Adams R Glick
Cody X Royster
Deepesh M Waycott
Ivar X Inouye
Darci V Marrier
Juan W Ostrosky
Morrow U Rim
Julie E Gaucho
Clifford K Bowley
Rodrigues Q Rim
IdCountryDate
1000Russia2026-08-05
1001Canada2026-08-10
1002Japan2026-08-10
1003India2026-08-11
1004Italy2026-08-23
1005Canada2026-08-15
1006India2026-08-23
1007Japan2026-08-05
1008United Kingdom2026-08-05
1009Japan2026-08-22
1010Brazil2026-08-28
1011Russia2026-08-17
1012Canada2026-08-28
1013Spain2026-08-03
1014Spain2026-08-24
1015United Kingdom2026-08-12
1016Spain2026-08-27
1017Germany2026-08-30
1018Canada2026-08-06
1019Canada2026-08-10
1020Canada2026-08-30
1021Argentina2026-08-29
1022Italy2026-08-25
1023France2026-08-24
1024Canada2026-08-19
1025Canada2026-08-15
1026Spain2026-08-25
1027Italy2026-08-04
1028India2026-08-13
1029France2026-08-07
1030Italy2026-08-24
1031Argentina2026-08-29
1032Russia2026-08-18
1033Australia2026-08-21
1034Brazil2026-08-14
1035Spain2026-08-24
1036Spain2026-08-12
1037Australia2026-08-28
1038Russia2026-08-01
1039France2026-08-02
1040Canada2026-08-19
1041Japan2026-08-21
1042France2026-08-02
1043Italy2026-08-28
1044Italy2026-08-26
1045Argentina2026-08-12
1046Germany2026-08-05
1047France2026-08-28
1048India2026-08-23
1049Germany2026-08-09

On-Demand Data

NameIdCountryDate
Arvin G Gillian1000France2026-08-02
Misaki I Darakjy1001France2026-08-17
Costa L Stenseth1002Italy2026-08-04
Morrow Z Poquette1003Italy2026-08-28
Cody S Briddick1004United Kingdom2026-08-05
Wickens C Stockham1005United Kingdom2026-08-21
Ivar H Rulapaugh1006United Kingdom2026-08-29
Isabel G Caldarera1007Italy2026-08-28
Smith D Morasca1008Canada2026-08-13
David N Vocelka1009Japan2026-08-22
Silvio N Malet1010Argentina2026-08-02
Mujtaba P Amigon1011Spain2026-08-18
Sinclair N Glick1012Italy2026-08-07
Francesco K Whobrey1013Brazil2026-08-15
Aditya E Rulapaugh1014Australia2026-08-04
Izzy Q Iturbide1015Spain2026-08-07
Mujtaba J Oldroyd1016Russia2026-08-06
Alejandro H Shinko1017Germany2026-08-26
Juan D Maclead1018United Kingdom2026-08-16
Clifford B Iturbide1019India2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson U InouyeCanadaAsiya Javayant RENEWAL
Clifford I PerinUnited KingdomIoni Bowcher PROPOSAL
Wickens D StensethGermanyXuxue Feng NEW
Aruna Z DoeSpainStephen Shaw NEW
Rodrigues W MaletCanadaOnyama Limba RENEWAL
Ivar Z ButtIndiaAmy Elsner NEGOTIATION
Emily P RoysterItalyOnyama Limba PROPOSAL
Ricardo A MaletGermanyOnyama Limba QUALIFIED
Morrow J IturbideJapanIoni Bowcher PROPOSAL
Jennifer B KuskoSpainBernardo Dominic NEW
Morrow W InouyeAustraliaStephen Shaw QUALIFIED
Leon X WieserUnited KingdomIoni Bowcher NEW
Tony W KuskoAustraliaStephen Shaw RENEWAL
Tony U GillianBrazilBernardo Dominic NEGOTIATION
Jones S RimRussiaBernardo Dominic NEW
Francesco W FigeroaFranceIoni Bowcher QUALIFIED
Leon L StockhamGermanyStephen Shaw PROPOSAL
Morrow Y DilliardRussiaBernardo Dominic RENEWAL
Sinclair T FigeroaArgentinaXuxue Feng NEW
Aruna Z FigeroaJapanBernardo Dominic UNQUALIFIED
Antonio N ChuiRussiaAsiya Javayant NEW
Johnson S WieserBrazilAnna Fali NEGOTIATION
Arvin U MorascaJapanElwin Sharvill RENEWAL
Johnson L DarakjyRussiaBernardo Dominic PROPOSAL
Cody R GauchoBrazilXuxue Feng PROPOSAL
Julie B MacleadCanadaOnyama Limba RENEWAL
Aruna Q CaldareraCanadaStephen Shaw NEW
Ricardo X DoeGermanyAmy Elsner PROPOSAL
Clifford Z NickaRussiaAmy Elsner NEW
Faith N FigeroaGermanyAmy Elsner RENEWAL
Mujtaba Z BowleyBrazilIoni Bowcher QUALIFIED
Faith Y BologniaUnited KingdomStephen Shaw UNQUALIFIED
Darci U ShinkoRussiaAnna Fali UNQUALIFIED
James N AmigonArgentinaIvan Magalhaes UNQUALIFIED
Jennifer D GillianJapanStephen Shaw RENEWAL
Morrow Z SergiItalyOnyama Limba NEW
Wickens Y ShinkoFranceAsiya Javayant NEGOTIATION
Ricardo N NestleArgentinaAnna Fali QUALIFIED
Darci O RoysterItalyAnna Fali PROPOSAL
Clifford J FerenczJapanElwin Sharvill NEGOTIATION

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