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 E RimSpainAnna Fali RENEWAL
Izzy K MorascaBrazilBernardo Dominic PROPOSAL
Salvatore P WhobreyJapanElwin Sharvill PROPOSAL
Sinclair P RimArgentinaStephen Shaw UNQUALIFIED
Alejandro T TollnerCanadaOnyama Limba QUALIFIED
Stacey K BriddickFranceAmy Elsner RENEWAL
Darci K MaletCanadaBernardo Dominic PROPOSAL
Jones H FollerItalyXuxue Feng RENEWAL
Darci Z StockhamItalyOnyama Limba QUALIFIED
Claire Y OldroydCanadaAnna Fali QUALIFIED
Ivar C CaldareraCanadaAmy Elsner UNQUALIFIED
Morrow E AlbaresArgentinaOnyama Limba QUALIFIED
Chavez V AlbaresAustraliaIvan Magalhaes RENEWAL
Jeanfrancois V StockhamJapanStephen Shaw PROPOSAL
Claire K GarufiItalyElwin Sharvill NEW
David M CaudySpainStephen Shaw UNQUALIFIED
Ivar V CampainJapanIvan Magalhaes QUALIFIED
Murillo F MaletRussiaIvan Magalhaes NEW
Faith O VenereSpainAmy Elsner NEW
Wickens K FigeroaJapanOnyama Limba NEGOTIATION
Darci H BologniaItalyIvan Magalhaes UNQUALIFIED
Chavez O WhobreySpainAnna Fali NEW
Maria B CaudyAustraliaIoni Bowcher PROPOSAL
Maisha G OldroydGermanyIvan Magalhaes NEGOTIATION
Ricardo W GillianGermanyIvan Magalhaes RENEWAL
Johnson R WaycottItalyOnyama Limba QUALIFIED
James S WhobreySpainOnyama Limba NEGOTIATION
Julie Y StockhamCanadaOnyama Limba NEGOTIATION
Arvin H GauchoFranceStephen Shaw NEGOTIATION
Smith Z PerinGermanyOnyama Limba QUALIFIED
Ivar S SlusarskiRussiaStephen Shaw NEW
Aika M MaletGermanyStephen Shaw NEW
Claire L CaldareraUnited KingdomBernardo Dominic NEGOTIATION
James Z ChuiBrazilElwin Sharvill QUALIFIED
Clifford P PoquetteArgentinaStephen Shaw RENEWAL
Sinclair O PerinItalyAmy Elsner PROPOSAL
Kaitlin X InouyeCanadaXuxue Feng QUALIFIED
Darci L PerinSpainIvan Magalhaes PROPOSAL
Faith A GauchoRussiaIoni Bowcher NEW
Smith U WaycottRussiaStephen Shaw UNQUALIFIED
James C FlosiArgentinaBernardo Dominic QUALIFIED
Aruna Q PerinGermanyXuxue Feng NEGOTIATION
Stacey P SaylorsUnited KingdomElwin Sharvill RENEWAL
Maisha H WaycottItalyXuxue Feng NEGOTIATION
Leja K AmigonRussiaIoni Bowcher PROPOSAL
Claire C FerenczAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois P GarufiFranceAsiya Javayant RENEWAL
Alejandro K SergiCanadaStephen Shaw NEW
Jones R GillianCanadaStephen Shaw NEGOTIATION
Murillo E CampainIndiaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens G InouyeSpainOnyama Limba UNQUALIFIED
Jefferson I GlickCanadaBernardo Dominic RENEWAL
Greenwood Q FerenczRussiaIoni Bowcher RENEWAL
Nicolas F FollerFranceIvan Magalhaes QUALIFIED
Sinclair A NestleBrazilIoni Bowcher QUALIFIED
Deepesh G RutaSpainXuxue Feng QUALIFIED
Smith Y AmigonBrazilBernardo Dominic NEGOTIATION
Jennifer L CaudyGermanyXuxue Feng QUALIFIED
Silvio U CaudyAustraliaAnna Fali PROPOSAL
Izzy E RoysterArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey K PerinCanada2026-07-14Rousseaux, Michael Esq NEW33Bernardo Dominic
1001Jones Y OldroydUnited Kingdom2026-07-17Feiner Bros NEGOTIATION72Amy Elsner
1002Mayumi R BowleyGermany2026-07-13Rousseaux, Michael Esq UNQUALIFIED19Stephen Shaw
1003Stacey H MorascaUnited Kingdom2026-06-24Morlong Associates QUALIFIED97Amy Elsner
1004Kadeem X BowleyUnited Kingdom2026-07-15Feiner Bros RENEWAL60Ivan Magalhaes
1005Aruna W PerinBrazil2026-07-18King, Christopher A Esq PROPOSAL53Asiya Javayant
1006Jeanfrancois L DoeBrazil2026-07-18Chemel, James L Cpa UNQUALIFIED78Asiya Javayant
1007Smith H VocelkaItaly2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED51Bernardo Dominic
1008Aditya V BowleyFrance2026-07-11Feltz Printing Service PROPOSAL96Ivan Magalhaes
1009Greenwood P DilliardArgentina2026-07-12Chemel, James L Cpa UNQUALIFIED55Stephen Shaw
1010Ashley Z AmigonUnited Kingdom2026-07-08Commercial Press UNQUALIFIED61Xuxue Feng
1011Adams M FigeroaAustralia2026-06-30Rousseaux, Michael Esq NEGOTIATION25Anna Fali
1012Wickens E ChuiIndia2026-07-08Feiner Bros RENEWAL33Xuxue Feng
1013Alejandro H ChuiRussia2026-07-18Benton, John B Jr NEW77Xuxue Feng
1014Antonio Q PoquetteItaly2026-06-29Commercial Press PROPOSAL51Ivan Magalhaes
1015Costa I StockhamGermany2026-07-17Benton, John B Jr UNQUALIFIED38Ioni Bowcher
1016Faith U RulapaughRussia2026-07-15Chemel, James L Cpa UNQUALIFIED86Elwin Sharvill
1017James H RulapaughCanada2026-07-11Chanay, Jeffrey A Esq NEGOTIATION39Ivan Magalhaes
1018Antonio C RutaRussia2026-07-14Commercial Press RENEWAL59Amy Elsner
1019Stacey Z DarakjyGermany2026-07-07Commercial Press NEW35Ivan Magalhaes
1020Ivar N RulapaughUnited Kingdom2026-06-22Buckley Miller Wright PROPOSAL87Xuxue Feng
1021Smith G CaudyGermany2026-06-24Feltz Printing Service NEW64Asiya Javayant
1022Juan M MacleadFrance2026-06-28Rangoni Of Florence UNQUALIFIED43Ioni Bowcher
1023Aruna D PaprockiCanada2026-06-27Chanay, Jeffrey A Esq QUALIFIED38Anna Fali
1024Johnson E DoeJapan2026-06-23Truhlar And Truhlar Attys NEGOTIATION48Bernardo Dominic
1025Jeanfrancois O RulapaughCanada2026-07-19Feltz Printing Service PROPOSAL9Anna Fali
1026Rodrigues E KuskoArgentina2026-07-09Feiner Bros UNQUALIFIED37Asiya Javayant
1027Smith G OldroydJapan2026-06-26Commercial Press NEGOTIATION67Amy Elsner
1028Darci K FlosiUnited Kingdom2026-06-24Buckley Miller Wright PROPOSAL28Amy Elsner
1029Sinclair I FollerArgentina2026-07-02Feiner Bros PROPOSAL11Ivan Magalhaes
1030Munro Y DilliardSpain2026-06-22Feltz Printing Service PROPOSAL4Asiya Javayant
1031Julie K MarrierUnited Kingdom2026-07-04Chemel, James L Cpa UNQUALIFIED77Xuxue Feng
1032Octavia C VocelkaGermany2026-07-13Rousseaux, Michael Esq UNQUALIFIED64Elwin Sharvill
1033Jones S WaycottIndia2026-07-06Chapman, Ross E Esq UNQUALIFIED8Anna Fali
1034Mayumi E MaletArgentina2026-07-01Buckley Miller Wright PROPOSAL39Asiya Javayant
1035Jefferson M MaletArgentina2026-06-27Printing Dimensions RENEWAL27Ioni Bowcher
1036Octavia N RimRussia2026-07-03King, Christopher A Esq NEW86Stephen Shaw
1037Stacey G MorascaUnited Kingdom2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED12Amy Elsner
1038Silvio K GillianUnited Kingdom2026-07-11Chanay, Jeffrey A Esq PROPOSAL10Anna Fali
1039Claire X KuskoBrazil2026-06-26Commercial Press NEGOTIATION21Elwin Sharvill
1040Leja G CaldareraCanada2026-06-26Rangoni Of Florence PROPOSAL60Anna Fali
1041Wickens D GarufiRussia2026-07-15Commercial Press NEW21Stephen Shaw
1042Faith I GlickJapan2026-07-14Chapman, Ross E Esq NEW22Anna Fali
1043Juan B MorascaUnited Kingdom2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED0Ioni Bowcher
1044Jefferson J BriddickIndia2026-06-25Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1045Isabel F PaprockiSpain2026-07-06Rousseaux, Michael Esq NEW42Elwin Sharvill
1046Francesco Q FigeroaSpain2026-07-14Truhlar And Truhlar Attys PROPOSAL35Ioni Bowcher
1047David Q DilliardBrazil2026-07-17Feiner Bros QUALIFIED70Ioni Bowcher
1048Jennifer G FollerBrazil2026-07-17Dorl, James J Esq UNQUALIFIED46Bernardo Dominic
1049Izzy T GillianRussia2026-07-10Dorl, James J Esq PROPOSAL74Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Deepesh R MaletRussiaStephen Shaw PROPOSAL
Darci S WaycottSpainIoni Bowcher QUALIFIED
Aika O StockhamFranceIvan Magalhaes UNQUALIFIED
Ricardo F SchemmerRussiaAnna Fali NEGOTIATION
Stacey S PerinFranceIvan Magalhaes NEGOTIATION
Kadeem N MorascaIndiaAmy Elsner QUALIFIED
Aika X DarakjyArgentinaStephen Shaw QUALIFIED
Leon C IturbideFranceAmy Elsner NEGOTIATION
Arvin X GauchoAustraliaIvan Magalhaes UNQUALIFIED
Arvin S MarrierItalyIoni Bowcher NEGOTIATION
Kaitlin K FigeroaRussiaAnna Fali UNQUALIFIED
Aika J FigeroaCanadaBernardo Dominic QUALIFIED
Alejandro D IturbideRussiaBernardo Dominic UNQUALIFIED
Ivar Z FollerIndiaXuxue Feng NEGOTIATION
Isabel Y BowleyGermanyBernardo Dominic NEGOTIATION
Tony W GlickGermanyXuxue Feng PROPOSAL
David Z SergiUnited KingdomIvan Magalhaes PROPOSAL
Jefferson K MacleadIndiaBernardo Dominic UNQUALIFIED
Chavez B SergiSpainIoni Bowcher RENEWAL
Kadeem E MaletCanadaStephen Shaw NEW
Izzy U StockhamAustraliaElwin Sharvill NEGOTIATION
Jones G FlosiGermanyStephen Shaw QUALIFIED
Wickens G MaletBrazilAsiya Javayant PROPOSAL
Chavez D NickaAustraliaXuxue Feng QUALIFIED
Stacey C DarakjyItalyIvan Magalhaes NEW
Kadeem Z FollerGermanyAmy Elsner UNQUALIFIED
Ricardo U BologniaCanadaIoni Bowcher PROPOSAL
Adams I FerenczItalyAsiya Javayant QUALIFIED
Adams W CampainBrazilOnyama Limba NEGOTIATION
Tony B DarakjyIndiaAsiya Javayant UNQUALIFIED
Salvatore B PoquetteArgentinaIvan Magalhaes QUALIFIED
Costa F CampainAustraliaXuxue Feng UNQUALIFIED
David C WieserAustraliaAsiya Javayant PROPOSAL
Wickens S SergiAustraliaAnna Fali PROPOSAL
Jones L MaletSpainAsiya Javayant PROPOSAL
Tony R WaycottGermanyElwin Sharvill UNQUALIFIED
Octavia J ButtCanadaAnna Fali PROPOSAL
Greenwood F BriddickBrazilIvan Magalhaes NEGOTIATION
Leon T MaletItalyAnna Fali NEW
Alejandro H DilliardUnited KingdomAsiya Javayant NEW
Octavia H PoquetteItalyAsiya Javayant QUALIFIED
Octavia Q CaudyFranceAnna Fali PROPOSAL
David V RimCanadaOnyama Limba RENEWAL
Alejandro Q RutaIndiaAnna Fali NEGOTIATION
Chavez R FollerIndiaStephen Shaw NEGOTIATION
Silvio H FigeroaAustraliaIvan Magalhaes QUALIFIED
Darci B KolmetzCanadaBernardo Dominic NEGOTIATION
Faith S FlosiUnited KingdomAnna Fali PROPOSAL
Leon F MorascaRussiaIoni Bowcher NEW
Johnson L DoeGermanyAmy Elsner NEGOTIATION
Frozen Columns
Name
Juan V Dilliard
Misaki Y Kusko
Clifford E Malet
Murillo J Inouye
Ashley F Paprocki
Greenwood X Briddick
Izzy L Rim
Antonio V Bolognia
Murillo V Kolmetz
Aditya A Morasca
Aruna R Sergi
Chavez V Caldarera
Salvatore L Gillian
Darci L Slusarski
Aika F Bolognia
Kaitlin V Saylors
Greenwood F Sergi
Deepesh D Gillian
Aika M Royster
Claire H Oldroyd
Misaki L Inouye
Ashley A Shinko
Aruna B Dilliard
Rodrigues U Stockham
Izzy N Iturbide
Claire S Caudy
Clifford D Vocelka
Jennifer X Morasca
Cody I Rim
Ashley P Shinko
Arvin W Waycott
Julie X Nestle
Aditya O Campain
Munro D Malet
James F Tollner
James V Tollner
Misaki G Garufi
Deepesh X Whobrey
Maria A Oldroyd
Smith G Doe
Mujtaba E Ruta
Salvatore R Nicka
Jefferson M Wieser
Jefferson O Stockham
Smith R Ostrosky
Wickens D Venere
Mujtaba U Albares
Cody L Kusko
Cody R Royster
Aruna W Dilliard
IdCountryDate
1000Japan2026-07-21
1001Spain2026-07-20
1002Russia2026-06-28
1003Russia2026-06-25
1004France2026-06-22
1005Argentina2026-06-28
1006Japan2026-07-12
1007Germany2026-07-07
1008Germany2026-07-14
1009Brazil2026-06-23
1010Germany2026-06-28
1011Canada2026-06-23
1012Brazil2026-06-24
1013Russia2026-07-20
1014Spain2026-07-03
1015Japan2026-06-29
1016Italy2026-07-09
1017Japan2026-07-07
1018Canada2026-07-10
1019Argentina2026-07-10
1020Argentina2026-07-08
1021Argentina2026-07-09
1022Japan2026-06-26
1023India2026-06-27
1024United Kingdom2026-07-13
1025India2026-06-30
1026Canada2026-07-17
1027Japan2026-07-21
1028Italy2026-07-19
1029Australia2026-07-10
1030Japan2026-06-26
1031Canada2026-07-09
1032Spain2026-07-20
1033France2026-07-03
1034Spain2026-07-03
1035France2026-07-16
1036United Kingdom2026-07-13
1037United Kingdom2026-07-12
1038Germany2026-07-01
1039Spain2026-06-25
1040Italy2026-07-21
1041Australia2026-07-01
1042Canada2026-07-13
1043France2026-07-18
1044United Kingdom2026-07-16
1045Italy2026-07-16
1046Russia2026-07-20
1047Japan2026-07-13
1048Argentina2026-07-11
1049Germany2026-06-30

On-Demand Data

NameIdCountryDate
Claire B Schemmer1000Italy2026-07-18
Arvin Z Morasca1001Russia2026-07-16
Faith H Vocelka1002Argentina2026-07-20
Jones B Shinko1003Italy2026-06-28
Smith F Maclead1004Russia2026-07-02
Wickens K Garufi1005Russia2026-07-15
Aditya Y Shinko1006United Kingdom2026-06-28
Jeanfrancois J Poquette1007Italy2026-06-27
David L Schemmer1008Japan2026-06-22
Claire H Bolognia1009Australia2026-06-30
Stacey N Campain1010Italy2026-07-02
Tony W Slusarski1011United Kingdom2026-06-28
Aditya J Royster1012Japan2026-07-05
Izzy A Gaucho1013Germany2026-07-09
Izzy O Gillian1014Japan2026-06-23
Ashley B Bowley1015France2026-07-13
Mayumi B Dilliard1016United Kingdom2026-06-30
Darci H Glick1017Japan2026-06-28
Claire E Garufi1018Russia2026-06-24
Claire C Amigon1019Germany2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues M AlbaresSpainIoni Bowcher NEW
Kadeem A CaldareraRussiaAnna Fali PROPOSAL
Jeanfrancois R FollerBrazilOnyama Limba UNQUALIFIED
Faith I KolmetzIndiaIvan Magalhaes QUALIFIED
Mayumi A SergiAustraliaAmy Elsner NEW
Mayumi M FerenczCanadaBernardo Dominic PROPOSAL
Cody G StockhamAustraliaAnna Fali UNQUALIFIED
Jones M FigeroaSpainOnyama Limba QUALIFIED
Jeanfrancois U GlickJapanAmy Elsner NEW
Kadeem M BologniaArgentinaAnna Fali NEW
Morrow N NestleJapanIvan Magalhaes UNQUALIFIED
Tony M StensethItalyXuxue Feng UNQUALIFIED
Jones X MaletBrazilBernardo Dominic RENEWAL
James J BologniaRussiaStephen Shaw PROPOSAL
Leja S VenereCanadaIvan Magalhaes NEGOTIATION
Leon U BologniaUnited KingdomOnyama Limba QUALIFIED
Maisha A BriddickItalyBernardo Dominic RENEWAL
Octavia U SaylorsBrazilXuxue Feng RENEWAL
Misaki Y WaycottArgentinaBernardo Dominic UNQUALIFIED
Jefferson Y CaldareraFranceBernardo Dominic PROPOSAL
Wickens D WieserArgentinaAmy Elsner NEW
David A IturbideItalyAnna Fali NEW
Julie Y BriddickItalyIoni Bowcher UNQUALIFIED
Emily G FlosiArgentinaBernardo Dominic QUALIFIED
Isabel U IturbideItalyAnna Fali PROPOSAL
Arvin T StensethItalyIvan Magalhaes RENEWAL
Mayumi H MarrierIndiaStephen Shaw QUALIFIED
Morrow I CaldareraGermanyIoni Bowcher QUALIFIED
Johnson B CaudyItalyStephen Shaw RENEWAL
Costa Q PoquetteAustraliaStephen Shaw RENEWAL
Juan T AmigonItalyStephen Shaw NEGOTIATION
Francesco B ButtUnited KingdomAnna Fali RENEWAL
Mayumi O OstroskyItalyAnna Fali UNQUALIFIED
Silvio K InouyeSpainBernardo Dominic NEGOTIATION
Faith X GarufiItalyElwin Sharvill UNQUALIFIED
Clifford R GillianGermanyStephen Shaw QUALIFIED
Claire K BologniaRussiaAmy Elsner QUALIFIED
Munro G DarakjyRussiaIvan Magalhaes UNQUALIFIED
Stacey N DarakjySpainAsiya Javayant QUALIFIED
Clifford M CampainItalyAnna Fali 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>