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
Aika F ChuiJapanAnna Fali NEGOTIATION
Jennifer H IturbideRussiaXuxue Feng QUALIFIED
Ricardo U OldroydFranceStephen Shaw RENEWAL
Mujtaba T CaldareraIndiaOnyama Limba PROPOSAL
Francesco C VenereAustraliaIvan Magalhaes UNQUALIFIED
Salvatore N SergiGermanyXuxue Feng UNQUALIFIED
Kadeem Y ChuiJapanXuxue Feng NEW
Juan X KolmetzRussiaStephen Shaw NEW
David H DoeCanadaAsiya Javayant UNQUALIFIED
Nicolas U RutaCanadaAsiya Javayant PROPOSAL
Maria L WaycottAustraliaOnyama Limba RENEWAL
Faith A VocelkaFranceAnna Fali QUALIFIED
Murillo D SergiBrazilIvan Magalhaes PROPOSAL
Sinclair P OldroydBrazilIvan Magalhaes RENEWAL
Aditya Z GillianJapanAsiya Javayant NEW
Jeanfrancois V DoeJapanBernardo Dominic PROPOSAL
Salvatore F TollnerArgentinaAsiya Javayant UNQUALIFIED
Costa J MaletRussiaElwin Sharvill NEW
Murillo O DarakjyIndiaXuxue Feng RENEWAL
Aika P RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens G MacleadBrazilXuxue Feng PROPOSAL
Johnson Q RutaAustraliaElwin Sharvill NEW
Stacey F MacleadGermanyAsiya Javayant RENEWAL
David J VocelkaAustraliaElwin Sharvill PROPOSAL
Isabel Y RoysterUnited KingdomAsiya Javayant QUALIFIED
Sinclair F SergiBrazilElwin Sharvill RENEWAL
Leon V SaylorsCanadaAsiya Javayant RENEWAL
Leja B BologniaJapanIvan Magalhaes UNQUALIFIED
Silvio W FollerAustraliaIvan Magalhaes QUALIFIED
James Y ShinkoBrazilIoni Bowcher QUALIFIED
Octavia M SlusarskiSpainStephen Shaw NEW
Rodrigues C StensethRussiaElwin Sharvill RENEWAL
Cody G WieserAustraliaStephen Shaw NEW
Leja V AlbaresArgentinaStephen Shaw UNQUALIFIED
Emily U CaudyAustraliaElwin Sharvill UNQUALIFIED
Claire F SlusarskiJapanOnyama Limba RENEWAL
Mujtaba K StensethFranceAsiya Javayant NEW
Stacey W NickaIndiaBernardo Dominic RENEWAL
Greenwood B GarufiAustraliaOnyama Limba RENEWAL
Ricardo K SaylorsRussiaBernardo Dominic NEGOTIATION
Ricardo D StensethArgentinaAmy Elsner UNQUALIFIED
Maisha J RutaJapanIoni Bowcher NEW
Arvin J StensethBrazilIvan Magalhaes PROPOSAL
Aruna O NickaFranceElwin Sharvill RENEWAL
Johnson W StockhamIndiaStephen Shaw QUALIFIED
Kadeem T IturbideRussiaIvan Magalhaes RENEWAL
Octavia J FlosiSpainAsiya Javayant QUALIFIED
Maria T NickaIndiaOnyama Limba RENEWAL
Jefferson Q KolmetzFranceStephen Shaw UNQUALIFIED
Sinclair T MorascaCanadaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy V GillianUnited KingdomAnna Fali RENEWAL
Julie S NickaArgentinaStephen Shaw NEW
Isabel A StockhamRussiaElwin Sharvill NEGOTIATION
Sinclair C MaletIndiaXuxue Feng UNQUALIFIED
Nicolas Y GarufiIndiaIoni Bowcher RENEWAL
Octavia A SlusarskiUnited KingdomAmy Elsner NEW
Tony I CampainUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues D RutaGermanyStephen Shaw PROPOSAL
Juan F DoeUnited KingdomOnyama Limba PROPOSAL
Clifford A ShinkoSpainXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson E BriddickRussia2025-06-11King, Christopher A Esq NEGOTIATION72Asiya Javayant
1001Maisha O FlosiItaly2025-06-03Commercial Press UNQUALIFIED1Anna Fali
1002Deepesh P SaylorsFrance2025-06-15Dorl, James J Esq NEW74Bernardo Dominic
1003Murillo I ShinkoAustralia2025-06-16Chemel, James L Cpa NEW92Onyama Limba
1004Jones U WaycottRussia2025-06-01Chapman, Ross E Esq QUALIFIED7Bernardo Dominic
1005Mujtaba J MaletBrazil2025-06-07Rangoni Of Florence RENEWAL18Xuxue Feng
1006Antonio C MorascaRussia2025-05-28Rousseaux, Michael Esq NEW5Ivan Magalhaes
1007Antonio G IturbideRussia2025-05-18Truhlar And Truhlar Attys NEGOTIATION55Bernardo Dominic
1008Claire Y SlusarskiSpain2025-06-15Truhlar And Truhlar Attys NEW76Ioni Bowcher
1009Izzy Z StockhamIndia2025-06-12Benton, John B Jr NEW30Elwin Sharvill
1010Claire X KuskoGermany2025-05-21Feiner Bros QUALIFIED33Asiya Javayant
1011Cody D AmigonIndia2025-05-21Rousseaux, Michael Esq QUALIFIED5Amy Elsner
1012Jones B CaudyArgentina2025-05-29Benton, John B Jr NEGOTIATION91Asiya Javayant
1013Cody V WieserBrazil2025-05-19Morlong Associates QUALIFIED91Xuxue Feng
1014James T DilliardJapan2025-06-07Benton, John B Jr QUALIFIED56Elwin Sharvill
1015Leja V FlosiIndia2025-06-05Rousseaux, Michael Esq PROPOSAL54Ioni Bowcher
1016David I WieserItaly2025-06-02Rangoni Of Florence RENEWAL48Xuxue Feng
1017Ashley N CampainBrazil2025-06-09Chapman, Ross E Esq RENEWAL43Ioni Bowcher
1018Leja A FerenczCanada2025-05-30Morlong Associates NEGOTIATION52Amy Elsner
1019Emily Y NickaItaly2025-06-12King, Christopher A Esq QUALIFIED91Xuxue Feng
1020Jefferson M InouyeItaly2025-05-20Rousseaux, Michael Esq NEW78Amy Elsner
1021Jennifer Z NestleSpain2025-06-11Chapman, Ross E Esq NEGOTIATION13Stephen Shaw
1022Ivar U RoysterItaly2025-06-05Chapman, Ross E Esq NEGOTIATION10Stephen Shaw
1023Leon P ChuiGermany2025-05-24Printing Dimensions UNQUALIFIED92Stephen Shaw
1024Claire S OldroydIndia2025-05-26Chanay, Jeffrey A Esq UNQUALIFIED93Xuxue Feng
1025Murillo W PaprockiJapan2025-06-05Benton, John B Jr UNQUALIFIED26Stephen Shaw
1026Alejandro V MaletSpain2025-05-26King, Christopher A Esq UNQUALIFIED2Stephen Shaw
1027Clifford M PaprockiFrance2025-05-23King, Christopher A Esq NEGOTIATION15Amy Elsner
1028Kadeem T MarrierItaly2025-06-10Chapman, Ross E Esq PROPOSAL15Anna Fali
1029Adams B KolmetzArgentina2025-05-23Dorl, James J Esq QUALIFIED38Ivan Magalhaes
1030Antonio T RoysterUnited Kingdom2025-06-14Chemel, James L Cpa RENEWAL42Anna Fali
1031Jennifer W VocelkaBrazil2025-05-29Buckley Miller Wright RENEWAL27Xuxue Feng
1032Costa G ShinkoJapan2025-06-16Chapman, Ross E Esq RENEWAL1Ivan Magalhaes
1033James P MarrierCanada2025-06-15Dorl, James J Esq NEW78Elwin Sharvill
1034Leon N DarakjySpain2025-06-13Chanay, Jeffrey A Esq PROPOSAL49Onyama Limba
1035Maisha O MaletJapan2025-06-03Buckley Miller Wright QUALIFIED53Elwin Sharvill
1036Morrow F TollnerJapan2025-05-20Rangoni Of Florence PROPOSAL86Ioni Bowcher
1037Francesco D OstroskyJapan2025-06-15Rousseaux, Michael Esq PROPOSAL3Ioni Bowcher
1038Mujtaba M SchemmerGermany2025-06-15King, Christopher A Esq PROPOSAL82Bernardo Dominic
1039Mujtaba N GlickCanada2025-05-28Printing Dimensions UNQUALIFIED38Onyama Limba
1040Cody E CaudyJapan2025-06-15Chemel, James L Cpa NEW45Amy Elsner
1041Ivar H AmigonFrance2025-05-18Rangoni Of Florence UNQUALIFIED95Ioni Bowcher
1042James A OldroydArgentina2025-06-02Rangoni Of Florence NEW93Stephen Shaw
1043David U IturbideAustralia2025-05-23Morlong Associates RENEWAL37Anna Fali
1044Leja U PoquetteAustralia2025-06-03Feltz Printing Service QUALIFIED76Asiya Javayant
1045Jeanfrancois Q KuskoArgentina2025-06-11Benton, John B Jr QUALIFIED64Onyama Limba
1046Octavia Y MaletJapan2025-05-22Printing Dimensions NEW22Asiya Javayant
1047Rodrigues L ShinkoArgentina2025-06-03Printing Dimensions NEW73Amy Elsner
1048Tony N KuskoBrazil2025-05-24King, Christopher A Esq RENEWAL97Xuxue Feng
1049Murillo G GauchoItaly2025-05-19Buckley Miller Wright NEGOTIATION39Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin O GlickCanadaXuxue Feng QUALIFIED
Maria Y PoquetteIndiaStephen Shaw UNQUALIFIED
Alejandro X FerenczBrazilBernardo Dominic UNQUALIFIED
Sinclair S PoquetteSpainStephen Shaw QUALIFIED
Chavez A TollnerCanadaElwin Sharvill UNQUALIFIED
Chavez W RutaUnited KingdomAsiya Javayant NEW
Smith V CaldareraFranceIoni Bowcher NEW
Kadeem V CaldareraBrazilXuxue Feng UNQUALIFIED
Arvin U OldroydArgentinaAnna Fali NEGOTIATION
Misaki G OldroydJapanAnna Fali NEGOTIATION
Mayumi N CaudyIndiaStephen Shaw NEGOTIATION
Sinclair Q TollnerArgentinaAnna Fali QUALIFIED
Claire Q RulapaughFranceAmy Elsner NEW
Nicolas T GarufiFranceElwin Sharvill NEGOTIATION
Salvatore F ShinkoArgentinaBernardo Dominic UNQUALIFIED
Aika I WhobreyBrazilAnna Fali NEW
Stacey H AlbaresFranceAsiya Javayant QUALIFIED
Octavia I StockhamCanadaAnna Fali QUALIFIED
Darci Q CaudyIndiaStephen Shaw QUALIFIED
Chavez I ChuiCanadaIoni Bowcher UNQUALIFIED
James C FigeroaAustraliaAnna Fali NEGOTIATION
Ivar N OldroydRussiaElwin Sharvill NEW
Ivar H FigeroaSpainAmy Elsner PROPOSAL
Clifford B ButtGermanyElwin Sharvill NEW
Mayumi V MacleadIndiaIoni Bowcher QUALIFIED
Ashley N SchemmerJapanElwin Sharvill PROPOSAL
Tony O PoquetteItalyOnyama Limba UNQUALIFIED
Ashley Q CaudyBrazilOnyama Limba QUALIFIED
Ricardo G VocelkaItalyAnna Fali UNQUALIFIED
Izzy X InouyeIndiaXuxue Feng NEW
Clifford C FollerIndiaAsiya Javayant NEGOTIATION
Aruna W FollerCanadaBernardo Dominic NEW
Mujtaba M GillianRussiaBernardo Dominic PROPOSAL
Emily V SergiUnited KingdomAnna Fali NEW
Julie R ShinkoArgentinaAnna Fali NEGOTIATION
Emily A WhobreyGermanyIoni Bowcher NEGOTIATION
Greenwood M PoquetteAustraliaIoni Bowcher RENEWAL
Silvio P BologniaGermanyIvan Magalhaes UNQUALIFIED
Mayumi B RulapaughRussiaIvan Magalhaes UNQUALIFIED
Jones R RutaBrazilStephen Shaw RENEWAL
Nicolas E PoquetteItalyBernardo Dominic RENEWAL
Jeanfrancois T WaycottJapanIoni Bowcher NEGOTIATION
Munro P GillianArgentinaAmy Elsner UNQUALIFIED
Silvio T WieserRussiaXuxue Feng UNQUALIFIED
Julie C OstroskyItalyAmy Elsner PROPOSAL
Aditya A RoysterItalyElwin Sharvill UNQUALIFIED
Kaitlin R NestleGermanyAnna Fali NEW
Antonio Z VenereCanadaAmy Elsner QUALIFIED
Izzy D VenereBrazilOnyama Limba NEW
Stacey D WhobreyUnited KingdomAnna Fali RENEWAL
Frozen Columns
Name
Leja P Schemmer
Rodrigues Z Caudy
Salvatore U Figeroa
Darci Z Butt
David G Ferencz
Jefferson D Nestle
Salvatore X Venere
Jeanfrancois C Ruta
Rodrigues H Stenseth
Jones X Inouye
Aika F Ruta
Ricardo D Glick
Tony Z Poquette
Maisha E Kolmetz
Maria K Butt
Sinclair S Gillian
Jennifer L Marrier
Ricardo K Caldarera
Silvio X Marrier
Ivar I Caldarera
Leon T Darakjy
David R Venere
Francesco W Kolmetz
Alejandro D Campain
Jeanfrancois J Bowley
Jefferson K Foller
Mujtaba M Garufi
Jennifer O Saylors
Costa S Venere
Rodrigues A Ferencz
Clifford N Briddick
Claire F Ferencz
Ivar Q Tollner
Kaitlin V Foller
Ashley N Campain
Misaki L Slusarski
Murillo P Malet
Aruna P Garufi
Julie T Butt
Mayumi I Gillian
Isabel B Whobrey
Silvio P Paprocki
Misaki W Nicka
Salvatore R Sergi
Cody Q Royster
James V Inouye
Faith O Shinko
Mujtaba F Oldroyd
Kadeem Q Sergi
Isabel N Stockham
IdCountryDate
1000Spain2025-06-05
1001India2025-06-16
1002India2025-05-18
1003United Kingdom2025-06-05
1004India2025-05-26
1005United Kingdom2025-06-12
1006India2025-06-11
1007Italy2025-05-23
1008Australia2025-05-21
1009United Kingdom2025-06-01
1010Germany2025-06-06
1011Russia2025-06-05
1012Australia2025-06-06
1013Canada2025-06-14
1014Germany2025-06-07
1015India2025-05-27
1016Japan2025-06-04
1017Spain2025-06-06
1018Argentina2025-06-14
1019Japan2025-06-07
1020Brazil2025-05-31
1021Brazil2025-06-11
1022Germany2025-05-26
1023Japan2025-05-30
1024Australia2025-05-22
1025Argentina2025-05-30
1026Germany2025-06-12
1027Australia2025-06-10
1028India2025-05-21
1029Russia2025-06-03
1030Russia2025-06-12
1031Argentina2025-06-16
1032Australia2025-06-05
1033Canada2025-06-08
1034Argentina2025-05-18
1035India2025-06-13
1036India2025-05-23
1037India2025-05-30
1038Brazil2025-05-19
1039Argentina2025-05-26
1040Argentina2025-05-22
1041Italy2025-05-27
1042United Kingdom2025-05-30
1043Canada2025-06-14
1044Italy2025-05-25
1045Spain2025-05-25
1046Argentina2025-05-26
1047Brazil2025-05-26
1048Argentina2025-05-25
1049Japan2025-06-10

On-Demand Data

NameIdCountryDate
Nicolas P Figeroa1000Australia2025-06-03
Octavia L Paprocki1001Russia2025-06-15
Salvatore H Malet1002Germany2025-06-01
Nicolas R Malet1003Brazil2025-06-11
Wickens G Paprocki1004Australia2025-06-06
Kaitlin J Saylors1005Argentina2025-06-11
Tony T Gaucho1006Russia2025-05-28
Murillo F Doe1007Japan2025-06-10
Leon J Ruta1008Brazil2025-06-02
Munro T Shinko1009Brazil2025-06-02
Kaitlin F Whobrey1010Australia2025-06-12
Claire N Saylors1011France2025-05-30
Ashley V Royster1012India2025-05-31
Faith B Perin1013Brazil2025-06-06
Clifford I Vocelka1014France2025-05-29
Stacey D Waycott1015Australia2025-05-31
Mujtaba A Malet1016France2025-05-29
Octavia S Stockham1017Germany2025-06-07
James M Iturbide1018India2025-05-29
Faith M Campain1019Argentina2025-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily K FerenczBrazilStephen Shaw NEGOTIATION
Aruna W BowleyGermanyAnna Fali NEW
James Q FerenczRussiaIoni Bowcher UNQUALIFIED
Aika P WieserBrazilAmy Elsner PROPOSAL
Ashley F GillianItalyXuxue Feng RENEWAL
Cody Z SergiBrazilOnyama Limba PROPOSAL
Kadeem P FollerGermanyStephen Shaw QUALIFIED
Wickens Y WieserRussiaIoni Bowcher NEGOTIATION
Costa Z AmigonItalyXuxue Feng NEW
Claire M ButtUnited KingdomElwin Sharvill NEW
Claire E BowleyGermanyStephen Shaw NEW
Julie L KolmetzBrazilXuxue Feng UNQUALIFIED
Alejandro Z KuskoArgentinaIoni Bowcher RENEWAL
Maria K WaycottUnited KingdomIoni Bowcher RENEWAL
Cody I RimCanadaAnna Fali UNQUALIFIED
Nicolas U WieserBrazilXuxue Feng NEW
Maisha O FerenczCanadaXuxue Feng UNQUALIFIED
Johnson N RoysterArgentinaIoni Bowcher NEW
Greenwood T GlickFranceXuxue Feng QUALIFIED
James J VenereItalyBernardo Dominic UNQUALIFIED
Silvio G ChuiSpainStephen Shaw NEGOTIATION
Jefferson F GarufiBrazilElwin Sharvill RENEWAL
Mujtaba F MarrierJapanAnna Fali NEW
Tony B BowleyAustraliaStephen Shaw UNQUALIFIED
David N FollerUnited KingdomIoni Bowcher PROPOSAL
Adams I GillianIndiaBernardo Dominic NEGOTIATION
Aditya L FollerUnited KingdomStephen Shaw PROPOSAL
Morrow Q GarufiAustraliaElwin Sharvill QUALIFIED
Aditya P FlosiUnited KingdomOnyama Limba NEGOTIATION
Aditya B StensethUnited KingdomAsiya Javayant NEW
Faith W VenereAustraliaAsiya Javayant PROPOSAL
Jefferson P MarrierJapanIvan Magalhaes QUALIFIED
Leja Z MaletSpainAnna Fali UNQUALIFIED
Clifford Y MacleadSpainXuxue Feng UNQUALIFIED
Alejandro I SlusarskiGermanyXuxue Feng NEGOTIATION
Antonio O FlosiIndiaBernardo Dominic NEW
Wickens K PaprockiUnited KingdomStephen Shaw NEW
Greenwood S CaldareraBrazilAsiya Javayant PROPOSAL
Nicolas S MacleadGermanyBernardo Dominic UNQUALIFIED
Kaitlin M ShinkoGermanyAsiya Javayant 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>