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
Nicolas K WieserItalyStephen Shaw NEW
Alejandro R RutaItalyStephen Shaw QUALIFIED
Chavez Q PaprockiSpainXuxue Feng PROPOSAL
Alejandro R MarrierSpainIoni Bowcher RENEWAL
Julie G VocelkaFranceIvan Magalhaes PROPOSAL
Leon V GarufiRussiaIoni Bowcher NEGOTIATION
Kadeem Z SchemmerFranceAnna Fali QUALIFIED
Mujtaba L WieserCanadaIoni Bowcher RENEWAL
Isabel I GillianIndiaBernardo Dominic NEGOTIATION
Kadeem I RutaGermanyAnna Fali NEGOTIATION
Emily F RutaRussiaAmy Elsner NEGOTIATION
Smith Q PerinJapanAmy Elsner UNQUALIFIED
Stacey F GlickItalyStephen Shaw NEGOTIATION
Johnson E CaldareraFranceBernardo Dominic NEGOTIATION
Kadeem V AlbaresGermanyAnna Fali NEW
Francesco U FlosiBrazilIoni Bowcher QUALIFIED
Arvin J PaprockiUnited KingdomIvan Magalhaes NEW
Adams F TollnerGermanyOnyama Limba RENEWAL
Salvatore Y TollnerUnited KingdomXuxue Feng RENEWAL
Misaki C NickaArgentinaBernardo Dominic UNQUALIFIED
Darci O ButtArgentinaOnyama Limba RENEWAL
Costa R FerenczArgentinaAsiya Javayant RENEWAL
Ashley F StensethRussiaIoni Bowcher PROPOSAL
Alejandro E GarufiSpainStephen Shaw PROPOSAL
Stacey S PoquetteFranceXuxue Feng QUALIFIED
Octavia H DarakjyItalyXuxue Feng UNQUALIFIED
Costa W MorascaUnited KingdomBernardo Dominic QUALIFIED
Silvio O SergiArgentinaStephen Shaw UNQUALIFIED
Costa W NestleBrazilOnyama Limba RENEWAL
Maria W NestleFranceBernardo Dominic NEGOTIATION
Jeanfrancois I WaycottUnited KingdomStephen Shaw PROPOSAL
Arvin M ShinkoJapanAmy Elsner NEGOTIATION
Mujtaba W GarufiIndiaElwin Sharvill QUALIFIED
Jefferson S StockhamFranceAmy Elsner NEGOTIATION
Arvin G OldroydAustraliaBernardo Dominic RENEWAL
Rodrigues I GillianBrazilAmy Elsner PROPOSAL
Octavia T MorascaJapanIoni Bowcher PROPOSAL
Francesco Z FigeroaUnited KingdomBernardo Dominic PROPOSAL
Leja U OstroskyRussiaOnyama Limba NEW
Jones F StensethJapanOnyama Limba PROPOSAL
Claire C GauchoBrazilAnna Fali UNQUALIFIED
Ashley M PaprockiUnited KingdomAsiya Javayant QUALIFIED
Claire E SergiItalyIoni Bowcher PROPOSAL
Darci Y AlbaresRussiaIvan Magalhaes NEW
Mayumi M SaylorsSpainXuxue Feng QUALIFIED
Sinclair K StockhamArgentinaStephen Shaw RENEWAL
Sinclair B BriddickUnited KingdomXuxue Feng RENEWAL
Aditya P AlbaresArgentinaAnna Fali UNQUALIFIED
Jennifer K TollnerFranceAsiya Javayant NEGOTIATION
Johnson K FollerJapanXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin Z SaylorsFranceXuxue Feng NEW
Stacey T MarrierGermanyIoni Bowcher UNQUALIFIED
Leon D RulapaughBrazilIvan Magalhaes UNQUALIFIED
Adams J FollerAustraliaAnna Fali NEGOTIATION
Costa U FerenczRussiaAnna Fali PROPOSAL
Leja F CaudyRussiaElwin Sharvill PROPOSAL
Ricardo Y RulapaughSpainAnna Fali RENEWAL
Stacey E BriddickGermanyOnyama Limba QUALIFIED
Isabel F MorascaCanadaBernardo Dominic NEW
Salvatore S RimFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro D DoeJapan2026-06-19Truhlar And Truhlar Attys NEGOTIATION32Onyama Limba
1001Darci U PaprockiAustralia2026-06-17Chapman, Ross E Esq UNQUALIFIED23Xuxue Feng
1002Ricardo P CampainRussia2026-06-30Printing Dimensions NEGOTIATION94Amy Elsner
1003Clifford F GarufiSpain2026-06-18Dorl, James J Esq NEGOTIATION75Stephen Shaw
1004Rodrigues E BologniaBrazil2026-07-07Truhlar And Truhlar Attys UNQUALIFIED77Asiya Javayant
1005Costa V KolmetzArgentina2026-06-24King, Christopher A Esq UNQUALIFIED76Bernardo Dominic
1006Juan V MorascaGermany2026-06-19Morlong Associates PROPOSAL48Stephen Shaw
1007Emily X CaldareraIndia2026-06-21Feiner Bros NEGOTIATION56Asiya Javayant
1008Juan W KuskoItaly2026-06-30Feltz Printing Service NEW64Bernardo Dominic
1009Jones H TollnerRussia2026-07-02Feiner Bros PROPOSAL84Ivan Magalhaes
1010Kaitlin F MarrierGermany2026-06-19Truhlar And Truhlar Attys NEGOTIATION95Bernardo Dominic
1011Maria A MaletJapan2026-07-01Chapman, Ross E Esq QUALIFIED74Elwin Sharvill
1012Chavez G DarakjyItaly2026-06-29Feltz Printing Service PROPOSAL25Ioni Bowcher
1013Ashley Y RulapaughArgentina2026-06-10Rousseaux, Michael Esq PROPOSAL46Onyama Limba
1014Aika X OstroskyAustralia2026-07-04Feiner Bros RENEWAL16Ioni Bowcher
1015Chavez W ButtJapan2026-06-21Commercial Press RENEWAL26Amy Elsner
1016Isabel V VenereGermany2026-07-05Commercial Press RENEWAL29Amy Elsner
1017Deepesh B PaprockiItaly2026-06-20Chemel, James L Cpa RENEWAL69Ivan Magalhaes
1018Costa B NickaFrance2026-06-12Printing Dimensions NEGOTIATION47Onyama Limba
1019Claire N FigeroaSpain2026-06-23Morlong Associates UNQUALIFIED7Anna Fali
1020Johnson V PerinGermany2026-07-02Dorl, James J Esq NEGOTIATION72Stephen Shaw
1021Munro D PaprockiIndia2026-06-24Chanay, Jeffrey A Esq NEGOTIATION56Ioni Bowcher
1022Murillo W StensethItaly2026-06-25Rousseaux, Michael Esq NEW15Ioni Bowcher
1023Morrow M MacleadJapan2026-06-16Chanay, Jeffrey A Esq PROPOSAL69Ivan Magalhaes
1024Aditya I KuskoJapan2026-06-20Commercial Press PROPOSAL10Onyama Limba
1025Silvio V InouyeSpain2026-06-27Chemel, James L Cpa RENEWAL7Amy Elsner
1026Sinclair Z GauchoSpain2026-06-10Feltz Printing Service NEW57Stephen Shaw
1027Clifford R SaylorsRussia2026-06-25Feiner Bros UNQUALIFIED17Stephen Shaw
1028Misaki U KolmetzArgentina2026-06-30Buckley Miller Wright UNQUALIFIED8Elwin Sharvill
1029Leja W MaletUnited Kingdom2026-07-03Morlong Associates NEGOTIATION57Onyama Limba
1030Munro J PoquetteAustralia2026-06-12Dorl, James J Esq PROPOSAL63Elwin Sharvill
1031Smith N WhobreyJapan2026-06-17Chanay, Jeffrey A Esq RENEWAL28Xuxue Feng
1032Wickens N TollnerBrazil2026-06-21Morlong Associates NEGOTIATION34Onyama Limba
1033Aika S ShinkoBrazil2026-07-04Chapman, Ross E Esq UNQUALIFIED84Asiya Javayant
1034Morrow X MaletBrazil2026-06-26Printing Dimensions RENEWAL96Amy Elsner
1035Alejandro N CampainUnited Kingdom2026-06-21Rangoni Of Florence QUALIFIED91Xuxue Feng
1036Costa D FollerUnited Kingdom2026-07-05King, Christopher A Esq RENEWAL7Asiya Javayant
1037Ashley R PerinArgentina2026-06-08Feiner Bros UNQUALIFIED66Elwin Sharvill
1038Murillo P FigeroaIndia2026-06-22Feiner Bros PROPOSAL87Amy Elsner
1039Ricardo B ButtFrance2026-07-04Printing Dimensions NEW55Elwin Sharvill
1040Morrow E MarrierArgentina2026-06-08Chanay, Jeffrey A Esq PROPOSAL86Elwin Sharvill
1041Morrow V IturbideAustralia2026-06-14Chapman, Ross E Esq NEW20Elwin Sharvill
1042Kadeem E FollerCanada2026-06-28Chemel, James L Cpa NEW17Stephen Shaw
1043Francesco E AlbaresJapan2026-06-25Buckley Miller Wright PROPOSAL21Bernardo Dominic
1044Faith U IturbideGermany2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED34Onyama Limba
1045Ivar R OldroydIndia2026-06-21King, Christopher A Esq QUALIFIED37Bernardo Dominic
1046Mayumi Y IturbideJapan2026-06-12Truhlar And Truhlar Attys UNQUALIFIED77Amy Elsner
1047Stacey K OldroydArgentina2026-06-11King, Christopher A Esq NEW37Ivan Magalhaes
1048Stacey Q CampainBrazil2026-06-11Feiner Bros UNQUALIFIED45Bernardo Dominic
1049Salvatore F MaletIndia2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED5Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody C CaldareraFranceElwin Sharvill NEW
Jeanfrancois U SergiUnited KingdomAnna Fali PROPOSAL
Juan E FollerGermanyOnyama Limba NEW
Kaitlin W DoeIndiaOnyama Limba QUALIFIED
Julie W NickaAustraliaAnna Fali RENEWAL
Wickens V OldroydJapanBernardo Dominic RENEWAL
Darci L DilliardGermanyAmy Elsner NEGOTIATION
James X ChuiGermanyAnna Fali NEW
Cody G AmigonBrazilIvan Magalhaes PROPOSAL
Tony C StockhamFranceIvan Magalhaes RENEWAL
Aruna P StensethJapanXuxue Feng QUALIFIED
Jones Z BologniaGermanyOnyama Limba NEGOTIATION
Deepesh A BologniaJapanOnyama Limba PROPOSAL
Leja A GauchoFranceStephen Shaw RENEWAL
Maria G MacleadSpainAnna Fali PROPOSAL
Cody X MorascaAustraliaAnna Fali QUALIFIED
Leja M FlosiJapanAmy Elsner QUALIFIED
Aika N RutaBrazilStephen Shaw PROPOSAL
Murillo L DilliardArgentinaOnyama Limba PROPOSAL
Leja Y MaletBrazilBernardo Dominic NEW
Isabel W RulapaughBrazilOnyama Limba RENEWAL
Maria M CampainUnited KingdomBernardo Dominic UNQUALIFIED
Tony B RimSpainElwin Sharvill NEGOTIATION
Ricardo E TollnerBrazilAmy Elsner UNQUALIFIED
Costa F SchemmerJapanAsiya Javayant NEW
Arvin K SchemmerIndiaXuxue Feng UNQUALIFIED
Isabel W DilliardCanadaAnna Fali PROPOSAL
Deepesh D SergiIndiaElwin Sharvill PROPOSAL
Juan D StensethFranceAnna Fali RENEWAL
Johnson S WhobreyIndiaAnna Fali RENEWAL
Mayumi O VocelkaAustraliaAsiya Javayant NEGOTIATION
Adams Y StockhamAustraliaBernardo Dominic NEW
Costa X DarakjyBrazilBernardo Dominic RENEWAL
Morrow L VocelkaBrazilAmy Elsner PROPOSAL
Aditya M OstroskyJapanIvan Magalhaes RENEWAL
Wickens H IturbideItalyAmy Elsner NEW
Ashley J WhobreySpainIvan Magalhaes NEW
Ashley O PaprockiFranceStephen Shaw PROPOSAL
Jefferson S GarufiIndiaElwin Sharvill NEGOTIATION
Aruna Q MorascaGermanyOnyama Limba NEGOTIATION
Francesco S CaudyCanadaStephen Shaw UNQUALIFIED
Salvatore B RimIndiaXuxue Feng PROPOSAL
Smith W StensethIndiaIvan Magalhaes UNQUALIFIED
Chavez Q AlbaresItalyAnna Fali NEW
James R GarufiFranceOnyama Limba PROPOSAL
Aditya J InouyeSpainStephen Shaw NEW
Aditya E MarrierJapanIoni Bowcher PROPOSAL
Deepesh I MorascaBrazilOnyama Limba NEGOTIATION
Jones S GarufiRussiaAsiya Javayant RENEWAL
Silvio T InouyeUnited KingdomBernardo Dominic RENEWAL
Frozen Columns
Name
Izzy G Ruta
Tony V Stockham
Maisha Q Rulapaugh
Greenwood T Ruta
Octavia R Doe
Greenwood R Morasca
Munro S Morasca
Misaki N Perin
Juan Y Waycott
Adams O Dilliard
Stacey B Briddick
Maisha H Ruta
Kaitlin P Briddick
Sinclair R Chui
Murillo H Caudy
Nicolas U Glick
Adams B Campain
David I Campain
Greenwood T Nestle
Johnson F Waycott
Cody U Flosi
Cody W Chui
Costa H Wieser
Ivar A Whobrey
Ivar M Stockham
Misaki A Malet
Faith M Darakjy
Jefferson M Darakjy
Nicolas R Inouye
Ashley W Rulapaugh
David L Kusko
Isabel J Briddick
Ricardo S Nicka
Johnson L Briddick
Jones I Amigon
Jones N Briddick
Aditya N Gaucho
Claire C Ostrosky
Jennifer T Albares
Adams C Slusarski
Jennifer Y Wieser
Misaki N Darakjy
Juan L Briddick
Kadeem V Darakjy
Tony Q Nicka
Isabel F Poquette
Murillo Y Kolmetz
Arvin X Amigon
Johnson S Venere
Murillo F Stenseth
IdCountryDate
1000Australia2026-06-11
1001Spain2026-06-22
1002United Kingdom2026-06-28
1003United Kingdom2026-07-02
1004United Kingdom2026-06-25
1005India2026-06-19
1006Canada2026-07-04
1007Italy2026-06-26
1008France2026-06-29
1009Italy2026-07-06
1010France2026-07-04
1011Canada2026-06-09
1012Italy2026-07-06
1013Russia2026-06-28
1014Germany2026-07-07
1015Australia2026-06-09
1016Japan2026-06-15
1017Italy2026-07-07
1018Argentina2026-06-15
1019Argentina2026-06-11
1020United Kingdom2026-06-19
1021Argentina2026-06-30
1022Spain2026-07-04
1023Italy2026-06-29
1024Russia2026-06-13
1025Canada2026-07-03
1026Germany2026-06-13
1027India2026-07-06
1028Germany2026-06-26
1029Germany2026-06-16
1030Australia2026-06-28
1031Spain2026-07-02
1032Australia2026-06-13
1033France2026-06-13
1034Japan2026-06-19
1035Australia2026-06-13
1036Australia2026-06-14
1037United Kingdom2026-07-06
1038Australia2026-06-13
1039Canada2026-06-18
1040Canada2026-06-25
1041Argentina2026-06-15
1042Italy2026-06-15
1043Japan2026-06-13
1044France2026-06-18
1045Argentina2026-06-24
1046United Kingdom2026-06-21
1047Japan2026-06-11
1048United Kingdom2026-06-09
1049Italy2026-06-28

On-Demand Data

NameIdCountryDate
Chavez F Whobrey1000Argentina2026-06-22
David G Campain1001Japan2026-07-04
Isabel H Bolognia1002Russia2026-06-10
Aditya B Caldarera1003France2026-06-27
Ricardo P Stockham1004United Kingdom2026-07-02
Sinclair W Caldarera1005Russia2026-07-06
Isabel F Whobrey1006Russia2026-06-18
Aruna G Butt1007Japan2026-06-12
Clifford P Rim1008India2026-07-07
Stacey F Poquette1009Brazil2026-06-17
Stacey P Nicka1010Canada2026-06-24
Greenwood E Inouye1011Australia2026-06-23
Tony R Figeroa1012Spain2026-07-02
Cody S Perin1013France2026-06-25
Salvatore F Bolognia1014Brazil2026-06-24
Arvin W Albares1015Brazil2026-07-03
Munro E Ferencz1016Brazil2026-06-08
Aika A Slusarski1017Spain2026-06-28
Nicolas Z Doe1018Australia2026-06-13
Sinclair R Gaucho1019Italy2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas S SlusarskiArgentinaElwin Sharvill RENEWAL
Silvio W DilliardFranceElwin Sharvill PROPOSAL
Greenwood B NickaSpainIoni Bowcher NEW
Costa R InouyeIndiaAsiya Javayant PROPOSAL
Morrow E SchemmerArgentinaAnna Fali RENEWAL
Ivar Y GarufiCanadaIvan Magalhaes RENEWAL
Misaki N DarakjyGermanyIvan Magalhaes QUALIFIED
Mujtaba M DoeIndiaStephen Shaw RENEWAL
Tony G RulapaughGermanyOnyama Limba QUALIFIED
Faith J PaprockiSpainElwin Sharvill PROPOSAL
Adams W OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Maisha Q RoysterSpainAsiya Javayant RENEWAL
Deepesh F FlosiUnited KingdomStephen Shaw RENEWAL
Jefferson I CampainBrazilAnna Fali UNQUALIFIED
Jones C WieserAustraliaAnna Fali PROPOSAL
Adams G FerenczRussiaOnyama Limba RENEWAL
Francesco N OstroskyRussiaAnna Fali UNQUALIFIED
Mayumi F SlusarskiRussiaAmy Elsner UNQUALIFIED
Jefferson T RutaIndiaAnna Fali RENEWAL
Greenwood V MaletArgentinaAmy Elsner NEGOTIATION
Leon D CaudyAustraliaOnyama Limba NEW
Aditya R ButtIndiaStephen Shaw QUALIFIED
Ricardo M BowleyFranceAmy Elsner UNQUALIFIED
Aika G WieserSpainElwin Sharvill NEW
Darci D KolmetzRussiaAmy Elsner UNQUALIFIED
Maria J WaycottGermanyElwin Sharvill NEW
Salvatore H FerenczFranceBernardo Dominic NEW
Arvin W FigeroaUnited KingdomBernardo Dominic QUALIFIED
Ashley L CaldareraGermanyOnyama Limba PROPOSAL
Tony V MaletUnited KingdomAmy Elsner PROPOSAL
Octavia V GlickItalyElwin Sharvill UNQUALIFIED
Greenwood Q KolmetzRussiaStephen Shaw RENEWAL
Francesco G WaycottRussiaElwin Sharvill QUALIFIED
Aditya M AlbaresAustraliaAmy Elsner NEW
Nicolas N PaprockiItalyElwin Sharvill RENEWAL
Kadeem S SergiJapanXuxue Feng PROPOSAL
Clifford K KuskoCanadaStephen Shaw QUALIFIED
Aruna E SaylorsUnited KingdomOnyama Limba QUALIFIED
Chavez Q TollnerCanadaOnyama Limba RENEWAL
Adams F PaprockiSpainAmy Elsner UNQUALIFIED

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