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
Greenwood H RutaItalyOnyama Limba UNQUALIFIED
Nicolas F CaldareraGermanyElwin Sharvill RENEWAL
Sinclair C DilliardUnited KingdomElwin Sharvill NEGOTIATION
Claire V MorascaJapanIoni Bowcher NEGOTIATION
Sinclair U KolmetzAustraliaAsiya Javayant NEGOTIATION
Arvin B MaletSpainAsiya Javayant RENEWAL
Leja R MacleadIndiaOnyama Limba QUALIFIED
Ashley B StensethJapanBernardo Dominic PROPOSAL
Izzy K MaletRussiaAsiya Javayant NEW
Izzy K AlbaresFranceBernardo Dominic PROPOSAL
Cody J PaprockiGermanyIvan Magalhaes PROPOSAL
Faith W CaldareraGermanyAnna Fali RENEWAL
Costa E ShinkoUnited KingdomAnna Fali RENEWAL
Leja S ShinkoGermanyStephen Shaw QUALIFIED
Rodrigues N StensethUnited KingdomAnna Fali PROPOSAL
Sinclair Y ChuiAustraliaBernardo Dominic QUALIFIED
Tony X ShinkoItalyIoni Bowcher QUALIFIED
David P SaylorsGermanyBernardo Dominic RENEWAL
Nicolas Q ButtAustraliaBernardo Dominic RENEWAL
Jefferson Z GauchoGermanyOnyama Limba RENEWAL
Emily U CaldareraGermanyXuxue Feng QUALIFIED
Izzy T PaprockiItalyAmy Elsner RENEWAL
Claire P KuskoJapanBernardo Dominic UNQUALIFIED
Chavez B SergiUnited KingdomBernardo Dominic QUALIFIED
Murillo W CampainBrazilBernardo Dominic PROPOSAL
Jefferson D VocelkaCanadaOnyama Limba QUALIFIED
Rodrigues B NickaJapanAnna Fali RENEWAL
Octavia R BriddickSpainIvan Magalhaes NEGOTIATION
Jeanfrancois S FigeroaCanadaAsiya Javayant QUALIFIED
Emily M CaudyIndiaElwin Sharvill UNQUALIFIED
Ivar R CaldareraIndiaBernardo Dominic NEGOTIATION
Kadeem D FollerCanadaXuxue Feng QUALIFIED
Tony X BologniaIndiaIvan Magalhaes NEGOTIATION
Leon M StockhamJapanIvan Magalhaes NEW
Mujtaba P CaldareraJapanAnna Fali NEW
Ashley X SchemmerGermanyBernardo Dominic NEGOTIATION
Greenwood J MarrierRussiaXuxue Feng PROPOSAL
Munro Q DarakjyFranceIvan Magalhaes RENEWAL
Leon H StockhamUnited KingdomIoni Bowcher PROPOSAL
Aditya O WieserFranceAsiya Javayant NEGOTIATION
Mujtaba W KuskoUnited KingdomXuxue Feng NEW
Adams H PerinItalyAnna Fali NEGOTIATION
Kaitlin Z NickaItalyBernardo Dominic UNQUALIFIED
Costa Z RimArgentinaXuxue Feng RENEWAL
Johnson A FerenczJapanIvan Magalhaes RENEWAL
Leon F WaycottRussiaXuxue Feng NEGOTIATION
Rodrigues O InouyeBrazilAnna Fali PROPOSAL
Jefferson S SchemmerRussiaOnyama Limba NEW
Mujtaba R PoquetteRussiaXuxue Feng PROPOSAL
Munro W BowleySpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha N GillianIndiaIoni Bowcher NEW
Aditya J StensethSpainStephen Shaw QUALIFIED
James I OldroydArgentinaElwin Sharvill NEW
Ivar Y BowleyFranceStephen Shaw RENEWAL
Wickens V FerenczSpainBernardo Dominic NEGOTIATION
Jeanfrancois H OldroydIndiaAmy Elsner PROPOSAL
Tony R WhobreyAustraliaAsiya Javayant UNQUALIFIED
Ivar E VocelkaSpainElwin Sharvill UNQUALIFIED
Arvin A RimFranceIvan Magalhaes NEW
Francesco U VenereJapanIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford Y WaycottCanada2026-06-28Printing Dimensions UNQUALIFIED84Amy Elsner
1001Aruna M ShinkoItaly2026-07-11Chapman, Ross E Esq NEGOTIATION38Bernardo Dominic
1002Jennifer X GillianIndia2026-07-08Morlong Associates NEGOTIATION92Ivan Magalhaes
1003Ricardo P KuskoItaly2026-07-21King, Christopher A Esq NEW3Elwin Sharvill
1004Tony A DarakjyItaly2026-07-25Rousseaux, Michael Esq QUALIFIED94Xuxue Feng
1005Aditya P MarrierUnited Kingdom2026-07-27Benton, John B Jr NEGOTIATION34Bernardo Dominic
1006Smith N FerenczUnited Kingdom2026-07-20Feltz Printing Service RENEWAL13Anna Fali
1007Faith N MorascaUnited Kingdom2026-07-09Printing Dimensions PROPOSAL54Onyama Limba
1008Jeanfrancois B MarrierJapan2026-07-26Feltz Printing Service PROPOSAL21Asiya Javayant
1009Octavia P CaudyFrance2026-07-04Buckley Miller Wright RENEWAL54Bernardo Dominic
1010Costa Q MorascaUnited Kingdom2026-07-14Morlong Associates UNQUALIFIED79Onyama Limba
1011Alejandro T StensethGermany2026-06-30Rangoni Of Florence NEW40Amy Elsner
1012Izzy L WhobreyArgentina2026-07-15Chapman, Ross E Esq NEGOTIATION86Anna Fali
1013Misaki A RulapaughArgentina2026-07-24Printing Dimensions UNQUALIFIED90Amy Elsner
1014Julie B PoquetteSpain2026-07-20Truhlar And Truhlar Attys UNQUALIFIED84Amy Elsner
1015Arvin S BriddickUnited Kingdom2026-07-25Chemel, James L Cpa NEGOTIATION50Ivan Magalhaes
1016James R KuskoBrazil2026-07-22Feltz Printing Service PROPOSAL66Onyama Limba
1017Emily A BologniaUnited Kingdom2026-07-20Benton, John B Jr UNQUALIFIED7Ioni Bowcher
1018Isabel E MacleadJapan2026-07-07Printing Dimensions NEGOTIATION26Ivan Magalhaes
1019Alejandro S FollerArgentina2026-07-13Chapman, Ross E Esq PROPOSAL16Ioni Bowcher
1020Jennifer D OldroydAustralia2026-07-05Commercial Press PROPOSAL0Onyama Limba
1021Munro O SaylorsArgentina2026-07-21Chemel, James L Cpa UNQUALIFIED35Ioni Bowcher
1022Claire Z SaylorsItaly2026-07-27Rousseaux, Michael Esq NEW27Ivan Magalhaes
1023Jefferson T StockhamGermany2026-07-18Dorl, James J Esq RENEWAL23Stephen Shaw
1024Aruna M ShinkoCanada2026-06-28Commercial Press PROPOSAL3Asiya Javayant
1025Izzy L MacleadSpain2026-07-20Rousseaux, Michael Esq PROPOSAL65Asiya Javayant
1026Isabel X GillianCanada2026-07-12Printing Dimensions PROPOSAL84Stephen Shaw
1027Deepesh Z DilliardArgentina2026-07-21Benton, John B Jr NEW40Xuxue Feng
1028Ashley M PaprockiGermany2026-07-03Commercial Press NEGOTIATION97Stephen Shaw
1029David N MorascaIndia2026-07-12Benton, John B Jr NEGOTIATION95Asiya Javayant
1030Leon Y ShinkoFrance2026-07-23Rangoni Of Florence QUALIFIED39Amy Elsner
1031Salvatore Q KuskoIndia2026-07-09Truhlar And Truhlar Attys NEW41Stephen Shaw
1032David O StockhamBrazil2026-07-27Buckley Miller Wright UNQUALIFIED57Anna Fali
1033Murillo C GarufiJapan2026-07-24Printing Dimensions NEW74Stephen Shaw
1034Aruna L CaudyItaly2026-07-03Chapman, Ross E Esq QUALIFIED37Anna Fali
1035Ivar U ButtGermany2026-07-21Rousseaux, Michael Esq NEGOTIATION60Xuxue Feng
1036Clifford J WhobreyGermany2026-07-02Morlong Associates RENEWAL20Xuxue Feng
1037Jeanfrancois N SlusarskiGermany2026-07-02Dorl, James J Esq PROPOSAL62Elwin Sharvill
1038Misaki V WhobreyAustralia2026-06-30Commercial Press QUALIFIED40Stephen Shaw
1039Tony F PaprockiItaly2026-06-28Commercial Press QUALIFIED42Ioni Bowcher
1040Izzy X GauchoArgentina2026-07-20Buckley Miller Wright RENEWAL49Bernardo Dominic
1041Mujtaba I VenereCanada2026-07-06Chanay, Jeffrey A Esq RENEWAL2Ivan Magalhaes
1042Leja Z DilliardBrazil2026-07-03King, Christopher A Esq UNQUALIFIED90Ivan Magalhaes
1043Alejandro V GarufiUnited Kingdom2026-07-11Printing Dimensions NEW81Anna Fali
1044Mayumi H PerinBrazil2026-07-18Morlong Associates QUALIFIED38Onyama Limba
1045Jeanfrancois K FlosiUnited Kingdom2026-07-07Chemel, James L Cpa RENEWAL61Amy Elsner
1046Jeanfrancois U OstroskyCanada2026-07-26Commercial Press NEW62Ivan Magalhaes
1047Stacey X VenereCanada2026-07-26King, Christopher A Esq RENEWAL11Bernardo Dominic
1048Tony L SchemmerGermany2026-07-21Commercial Press UNQUALIFIED15Asiya Javayant
1049Emily R MorascaCanada2026-07-26Dorl, James J Esq QUALIFIED50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
David X NickaCanadaIvan Magalhaes PROPOSAL
Arvin D RimJapanIvan Magalhaes UNQUALIFIED
Jennifer Z CaudyBrazilBernardo Dominic NEGOTIATION
Johnson K CaudyJapanAnna Fali RENEWAL
Aditya L GarufiItalyIoni Bowcher RENEWAL
Aruna Z KuskoJapanStephen Shaw NEGOTIATION
Chavez F VocelkaSpainIvan Magalhaes QUALIFIED
David B MaletItalyXuxue Feng QUALIFIED
Wickens E MorascaAustraliaAnna Fali UNQUALIFIED
Ricardo G SlusarskiIndiaStephen Shaw PROPOSAL
Jennifer L MarrierCanadaElwin Sharvill RENEWAL
Clifford U FlosiAustraliaAsiya Javayant PROPOSAL
Izzy Z InouyeSpainStephen Shaw QUALIFIED
Maisha P BowleyJapanIoni Bowcher NEW
Mujtaba X RimJapanIoni Bowcher UNQUALIFIED
Aruna U MaletUnited KingdomIvan Magalhaes NEGOTIATION
Leon G MaletArgentinaElwin Sharvill PROPOSAL
Arvin H FlosiIndiaStephen Shaw NEGOTIATION
Wickens A NestleArgentinaAnna Fali NEGOTIATION
Jefferson A RoysterCanadaStephen Shaw RENEWAL
Smith A BologniaGermanyAmy Elsner PROPOSAL
Aditya F GillianFranceBernardo Dominic NEW
Octavia Q InouyeUnited KingdomAmy Elsner UNQUALIFIED
Salvatore Q OldroydIndiaElwin Sharvill QUALIFIED
Alejandro S RulapaughSpainAmy Elsner NEGOTIATION
Sinclair M MacleadBrazilBernardo Dominic RENEWAL
Johnson G FerenczJapanOnyama Limba QUALIFIED
Alejandro S ButtBrazilStephen Shaw QUALIFIED
Leja K FigeroaFranceAmy Elsner NEW
Chavez K VenereItalyAnna Fali QUALIFIED
Ivar F GarufiFranceIoni Bowcher UNQUALIFIED
Alejandro D PerinItalyAsiya Javayant RENEWAL
Juan K SchemmerItalyIoni Bowcher NEGOTIATION
Misaki K MorascaUnited KingdomXuxue Feng NEW
Kaitlin H StensethIndiaStephen Shaw QUALIFIED
Arvin P GillianAustraliaAsiya Javayant UNQUALIFIED
Silvio S SaylorsAustraliaAnna Fali UNQUALIFIED
Cody Z SchemmerFranceStephen Shaw QUALIFIED
Murillo I BriddickArgentinaStephen Shaw QUALIFIED
Mujtaba I DoeArgentinaIoni Bowcher NEGOTIATION
Costa L MaletFranceStephen Shaw UNQUALIFIED
Maisha E GauchoUnited KingdomIoni Bowcher PROPOSAL
James T ChuiIndiaXuxue Feng NEW
Isabel N RulapaughAustraliaAnna Fali QUALIFIED
Ricardo B WhobreySpainBernardo Dominic UNQUALIFIED
Kadeem E SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Cody I MorascaIndiaAsiya Javayant UNQUALIFIED
Tony U StensethRussiaStephen Shaw UNQUALIFIED
Izzy N RoysterUnited KingdomAsiya Javayant QUALIFIED
Darci O RulapaughFranceAnna Fali RENEWAL
Frozen Columns
Name
Aruna Q Kolmetz
Darci F Bowley
Claire C Schemmer
Jefferson S Kusko
Maria W Gaucho
Jefferson N Wieser
Silvio C Rulapaugh
Tony L Glick
Adams F Maclead
Morrow B Briddick
Julie I Nicka
Maria W Figeroa
Darci A Kolmetz
Clifford F Iturbide
Maisha G Poquette
Jennifer J Vocelka
Emily F Venere
Ricardo Q Kusko
Alejandro Q Butt
Aika O Dilliard
Julie U Campain
Ricardo E Nestle
Claire C Nestle
Mayumi N Royster
Morrow F Darakjy
Rodrigues R Amigon
Johnson J Albares
Jeanfrancois U Tollner
James D Doe
Rodrigues E Butt
Maisha V Oldroyd
Johnson H Nicka
Jeanfrancois R Caudy
Octavia V Nicka
Salvatore E Gillian
Stacey L Chui
Maisha D Figeroa
Aruna Y Inouye
Faith D Foller
Morrow D Caudy
Stacey T Shinko
Francesco I Malet
Johnson M Flosi
Mujtaba V Sergi
Jennifer Z Inouye
Chavez P Maclead
Claire S Chui
Faith W Kusko
Ricardo V Albares
Arvin G Stenseth
IdCountryDate
1000Australia2026-07-16
1001Germany2026-07-26
1002Argentina2026-07-23
1003Brazil2026-07-19
1004Russia2026-07-25
1005Spain2026-07-08
1006Russia2026-07-25
1007Germany2026-07-26
1008Japan2026-06-29
1009Brazil2026-07-13
1010Germany2026-07-01
1011Germany2026-07-15
1012India2026-07-18
1013Russia2026-07-15
1014Russia2026-07-19
1015Argentina2026-07-15
1016Australia2026-07-23
1017Russia2026-07-08
1018France2026-07-09
1019India2026-07-07
1020Brazil2026-07-20
1021Brazil2026-07-25
1022Brazil2026-07-24
1023Italy2026-07-16
1024Australia2026-07-03
1025Italy2026-07-17
1026India2026-07-27
1027France2026-07-19
1028Canada2026-07-14
1029Brazil2026-07-04
1030Germany2026-07-17
1031Spain2026-07-15
1032Canada2026-07-09
1033Canada2026-07-10
1034Argentina2026-07-03
1035Canada2026-07-26
1036Brazil2026-07-22
1037United Kingdom2026-07-19
1038Japan2026-07-24
1039Germany2026-07-07
1040Canada2026-07-20
1041Japan2026-07-11
1042Spain2026-07-20
1043Argentina2026-07-06
1044Brazil2026-07-10
1045Russia2026-07-04
1046Australia2026-07-19
1047Russia2026-07-21
1048France2026-07-06
1049France2026-07-21

On-Demand Data

NameIdCountryDate
Maria F Venere1000Australia2026-07-09
Julie E Butt1001Australia2026-07-13
Antonio L Bolognia1002Argentina2026-07-06
Morrow E Malet1003France2026-07-22
Johnson G Vocelka1004India2026-07-18
Mujtaba L Dilliard1005Japan2026-07-07
Octavia N Darakjy1006Brazil2026-06-28
Costa S Venere1007United Kingdom2026-07-08
Francesco F Chui1008Australia2026-07-01
Aruna E Stenseth1009United Kingdom2026-07-11
Cody Y Venere1010Argentina2026-07-06
Greenwood R Gaucho1011Australia2026-07-27
Maisha H Amigon1012Italy2026-07-23
Sinclair Y Nestle1013Japan2026-07-08
Darci X Morasca1014Australia2026-06-29
Costa R Saylors1015India2026-07-18
Greenwood Z Kusko1016Spain2026-07-26
Stacey W Glick1017Russia2026-07-27
Clifford W Whobrey1018Russia2026-07-06
Octavia B Saylors1019Brazil2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy N BowleyFranceXuxue Feng QUALIFIED
Deepesh J BriddickFranceXuxue Feng PROPOSAL
Jennifer E RutaRussiaXuxue Feng UNQUALIFIED
Claire U RoysterFranceBernardo Dominic NEW
Juan Q AlbaresGermanyStephen Shaw UNQUALIFIED
Wickens G MaletGermanyElwin Sharvill QUALIFIED
Faith F TollnerCanadaOnyama Limba NEGOTIATION
Maria C MarrierCanadaStephen Shaw QUALIFIED
Jones S MacleadArgentinaXuxue Feng PROPOSAL
Aditya H InouyeArgentinaElwin Sharvill PROPOSAL
Munro N RulapaughUnited KingdomXuxue Feng NEGOTIATION
Emily C DoeSpainIoni Bowcher PROPOSAL
Tony M VenereAustraliaElwin Sharvill PROPOSAL
Adams K RutaArgentinaAsiya Javayant QUALIFIED
Murillo K SergiBrazilAnna Fali NEW
Aditya B PerinCanadaXuxue Feng PROPOSAL
Faith D DarakjyAustraliaAmy Elsner PROPOSAL
Nicolas D SlusarskiGermanyAmy Elsner RENEWAL
Salvatore U GarufiAustraliaIvan Magalhaes UNQUALIFIED
Stacey Y CampainIndiaOnyama Limba RENEWAL
Leja J MacleadUnited KingdomAnna Fali PROPOSAL
Kadeem N AlbaresUnited KingdomElwin Sharvill NEW
Stacey I CaudyCanadaStephen Shaw NEW
Mujtaba B WieserCanadaBernardo Dominic NEW
Mayumi P RimAustraliaBernardo Dominic UNQUALIFIED
Maisha K AmigonSpainIoni Bowcher NEW
Leon C OldroydArgentinaIvan Magalhaes UNQUALIFIED
Aika D VocelkaSpainIoni Bowcher UNQUALIFIED
David M ButtArgentinaStephen Shaw PROPOSAL
Stacey Q MarrierRussiaAmy Elsner UNQUALIFIED
Mayumi L PerinGermanyElwin Sharvill QUALIFIED
Kaitlin I KolmetzGermanyStephen Shaw NEW
James F DoeArgentinaAnna Fali QUALIFIED
David U RimCanadaXuxue Feng PROPOSAL
Cody P SaylorsGermanyBernardo Dominic UNQUALIFIED
Sinclair B BologniaJapanOnyama Limba QUALIFIED
James W KolmetzArgentinaAnna Fali QUALIFIED
Misaki X OldroydFranceElwin Sharvill NEGOTIATION
Costa U ButtJapanAsiya Javayant NEW
Aika O FigeroaBrazilAsiya Javayant 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>