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
Jefferson F GillianIndiaAsiya Javayant NEW
Aditya G BowleyBrazilOnyama Limba UNQUALIFIED
Sinclair K SaylorsJapanOnyama Limba UNQUALIFIED
Greenwood G WaycottGermanyOnyama Limba QUALIFIED
Francesco M SaylorsJapanIvan Magalhaes PROPOSAL
Kadeem R BologniaGermanyAnna Fali RENEWAL
Nicolas A NestleArgentinaIvan Magalhaes NEW
Maria R TollnerArgentinaElwin Sharvill NEW
Maisha Q IturbideArgentinaIoni Bowcher NEGOTIATION
Cody C RutaUnited KingdomOnyama Limba PROPOSAL
Tony X VenereRussiaAmy Elsner RENEWAL
Aditya W OldroydIndiaAnna Fali NEW
Greenwood A FerenczBrazilElwin Sharvill NEGOTIATION
Aika T SlusarskiSpainIoni Bowcher UNQUALIFIED
Sinclair U MorascaFranceIvan Magalhaes NEGOTIATION
David A StensethArgentinaStephen Shaw NEGOTIATION
Jeanfrancois W ChuiCanadaIvan Magalhaes PROPOSAL
Wickens K WaycottSpainXuxue Feng UNQUALIFIED
Mayumi S StockhamFranceIoni Bowcher RENEWAL
Costa A VenereBrazilBernardo Dominic RENEWAL
Octavia E AmigonAustraliaStephen Shaw NEGOTIATION
Francesco R VocelkaBrazilIoni Bowcher QUALIFIED
Aruna Q AmigonIndiaIvan Magalhaes NEGOTIATION
Jennifer V InouyeIndiaAsiya Javayant UNQUALIFIED
Adams I WaycottFranceElwin Sharvill UNQUALIFIED
Jones Z StensethAustraliaIoni Bowcher UNQUALIFIED
Faith V FigeroaJapanBernardo Dominic QUALIFIED
David C MorascaCanadaAnna Fali QUALIFIED
Kadeem A DilliardGermanyOnyama Limba NEW
Maria A KolmetzAustraliaXuxue Feng NEW
Misaki V RutaAustraliaIvan Magalhaes UNQUALIFIED
Tony W VenereCanadaAmy Elsner PROPOSAL
Ivar V MacleadIndiaIvan Magalhaes RENEWAL
Jefferson I TollnerItalyIvan Magalhaes RENEWAL
Chavez Z IturbideAustraliaOnyama Limba UNQUALIFIED
Ashley J CaldareraFranceAnna Fali UNQUALIFIED
Julie M RoysterAustraliaAmy Elsner NEGOTIATION
Clifford F MarrierIndiaOnyama Limba RENEWAL
Juan Y IturbideBrazilXuxue Feng PROPOSAL
Jefferson S KolmetzRussiaStephen Shaw RENEWAL
Izzy L RimAustraliaAmy Elsner UNQUALIFIED
Darci D FlosiRussiaIoni Bowcher PROPOSAL
Smith A PerinItalyAnna Fali PROPOSAL
Murillo A KolmetzFranceIoni Bowcher UNQUALIFIED
Munro B WieserUnited KingdomElwin Sharvill UNQUALIFIED
Octavia Y SchemmerSpainIvan Magalhaes NEW
Leja C DoeIndiaIvan Magalhaes NEGOTIATION
Smith R RutaJapanOnyama Limba QUALIFIED
Aditya O PaprockiGermanyAnna Fali QUALIFIED
Rodrigues A IturbideGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore R BowleySpainElwin Sharvill NEGOTIATION
Cody L MarrierJapanXuxue Feng QUALIFIED
Wickens L RutaArgentinaIvan Magalhaes QUALIFIED
Izzy N StockhamRussiaIvan Magalhaes NEGOTIATION
Octavia G DoeFranceAnna Fali PROPOSAL
Rodrigues L CampainCanadaIvan Magalhaes NEW
Mujtaba O VenereArgentinaAmy Elsner RENEWAL
Jeanfrancois O KuskoBrazilXuxue Feng QUALIFIED
Silvio Z WhobreyCanadaElwin Sharvill NEW
Arvin E StockhamArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith Y FlosiIndia2026-06-29Morlong Associates QUALIFIED91Bernardo Dominic
1001Tony U VocelkaIndia2026-07-11Truhlar And Truhlar Attys UNQUALIFIED26Asiya Javayant
1002Kadeem A SergiUnited Kingdom2026-07-24Buckley Miller Wright UNQUALIFIED50Onyama Limba
1003Juan L DoeUnited Kingdom2026-07-23Printing Dimensions NEGOTIATION4Ioni Bowcher
1004James T PaprockiIndia2026-07-12Feltz Printing Service QUALIFIED38Xuxue Feng
1005Deepesh U GarufiBrazil2026-06-26Feltz Printing Service QUALIFIED30Elwin Sharvill
1006Wickens U ShinkoBrazil2026-06-30Printing Dimensions UNQUALIFIED6Elwin Sharvill
1007Stacey E MaletGermany2026-07-08Rangoni Of Florence NEGOTIATION55Xuxue Feng
1008Ivar A NestleFrance2026-07-16King, Christopher A Esq PROPOSAL27Anna Fali
1009Aruna J MaletBrazil2026-07-11Chapman, Ross E Esq UNQUALIFIED68Xuxue Feng
1010Murillo J ButtJapan2026-07-17Rousseaux, Michael Esq NEGOTIATION47Ivan Magalhaes
1011Murillo K SergiItaly2026-06-25Chemel, James L Cpa PROPOSAL53Stephen Shaw
1012Jones K RulapaughGermany2026-06-29Chapman, Ross E Esq NEGOTIATION64Stephen Shaw
1013Rodrigues Y GlickCanada2026-06-27King, Christopher A Esq RENEWAL53Onyama Limba
1014Tony D AlbaresBrazil2026-07-22Rangoni Of Florence QUALIFIED51Onyama Limba
1015Ivar Z NestleIndia2026-07-09Commercial Press RENEWAL79Anna Fali
1016Aruna N MacleadJapan2026-07-11Benton, John B Jr RENEWAL94Anna Fali
1017Sinclair S SergiBrazil2026-07-09Chemel, James L Cpa PROPOSAL85Ioni Bowcher
1018Aika U SergiItaly2026-07-09Feltz Printing Service UNQUALIFIED25Bernardo Dominic
1019David Y FerenczIndia2026-07-10Buckley Miller Wright PROPOSAL21Onyama Limba
1020Mayumi M TollnerJapan2026-07-20Commercial Press QUALIFIED32Stephen Shaw
1021Julie X OldroydJapan2026-06-29Rousseaux, Michael Esq NEW33Asiya Javayant
1022Kaitlin M VenereFrance2026-06-25Truhlar And Truhlar Attys PROPOSAL71Ioni Bowcher
1023Leon K PerinIndia2026-07-13Dorl, James J Esq PROPOSAL48Xuxue Feng
1024Darci A PoquetteFrance2026-07-16Rousseaux, Michael Esq QUALIFIED81Ivan Magalhaes
1025Ivar Z MaletIndia2026-06-29Morlong Associates UNQUALIFIED61Ivan Magalhaes
1026Jennifer X VenereAustralia2026-07-20Chemel, James L Cpa NEGOTIATION43Ioni Bowcher
1027Ricardo F StockhamJapan2026-07-13Morlong Associates QUALIFIED75Anna Fali
1028Antonio J GlickBrazil2026-07-12Buckley Miller Wright RENEWAL74Amy Elsner
1029Adams P GlickFrance2026-07-21Benton, John B Jr PROPOSAL21Stephen Shaw
1030Chavez W NickaCanada2026-07-08Chanay, Jeffrey A Esq QUALIFIED12Asiya Javayant
1031Octavia P DoeFrance2026-07-11Printing Dimensions NEW93Amy Elsner
1032Maisha T SergiUnited Kingdom2026-07-24Chanay, Jeffrey A Esq PROPOSAL8Ivan Magalhaes
1033Mayumi P MacleadCanada2026-07-20Benton, John B Jr QUALIFIED97Bernardo Dominic
1034Adams F CampainSpain2026-07-22Rousseaux, Michael Esq UNQUALIFIED11Ioni Bowcher
1035Maisha R FlosiArgentina2026-07-10King, Christopher A Esq NEW75Amy Elsner
1036Jennifer V SergiCanada2026-07-17Chapman, Ross E Esq QUALIFIED34Anna Fali
1037Smith D PerinFrance2026-07-06Morlong Associates NEW2Bernardo Dominic
1038Kadeem B ChuiBrazil2026-07-12Feiner Bros PROPOSAL57Asiya Javayant
1039Julie C BowleyIndia2026-07-14Morlong Associates UNQUALIFIED37Amy Elsner
1040Darci L PoquetteJapan2026-07-19Commercial Press PROPOSAL33Elwin Sharvill
1041Isabel E OldroydJapan2026-07-23Benton, John B Jr NEGOTIATION39Elwin Sharvill
1042Francesco T RoysterBrazil2026-07-21Chanay, Jeffrey A Esq QUALIFIED41Anna Fali
1043Nicolas B RimFrance2026-07-15King, Christopher A Esq UNQUALIFIED30Bernardo Dominic
1044Kaitlin Z VenereUnited Kingdom2026-07-24Dorl, James J Esq PROPOSAL28Anna Fali
1045Nicolas Q RulapaughGermany2026-06-29Morlong Associates UNQUALIFIED36Elwin Sharvill
1046Maria W RoysterFrance2026-07-20Benton, John B Jr RENEWAL72Bernardo Dominic
1047Rodrigues Y MaletUnited Kingdom2026-06-29King, Christopher A Esq RENEWAL35Stephen Shaw
1048Octavia G IturbideUnited Kingdom2026-07-17Chapman, Ross E Esq UNQUALIFIED33Xuxue Feng
1049Mayumi Z GlickSpain2026-07-18Feltz Printing Service PROPOSAL53Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leon L IturbideArgentinaXuxue Feng NEGOTIATION
Aruna T VocelkaAustraliaIoni Bowcher NEW
Maria K KuskoGermanyIoni Bowcher NEW
Rodrigues H BologniaAustraliaElwin Sharvill QUALIFIED
Aruna N ChuiGermanyAnna Fali PROPOSAL
David D StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Ashley Y WaycottUnited KingdomAmy Elsner QUALIFIED
Octavia G VenereAustraliaElwin Sharvill PROPOSAL
Chavez V VenereUnited KingdomElwin Sharvill QUALIFIED
Salvatore G PerinFranceXuxue Feng UNQUALIFIED
Aruna U RulapaughAustraliaAsiya Javayant PROPOSAL
Mujtaba D RimJapanAnna Fali UNQUALIFIED
Deepesh I DarakjySpainXuxue Feng PROPOSAL
Maria Z MacleadCanadaAmy Elsner NEW
Rodrigues U WieserItalyIvan Magalhaes NEGOTIATION
Jefferson P BriddickSpainIoni Bowcher NEW
Munro V MarrierSpainElwin Sharvill UNQUALIFIED
Tony G CaudyRussiaAnna Fali QUALIFIED
Tony T SlusarskiFranceBernardo Dominic QUALIFIED
Claire E BologniaFranceStephen Shaw RENEWAL
Ivar C InouyeSpainAmy Elsner NEGOTIATION
Claire P DoeAustraliaAmy Elsner UNQUALIFIED
Aruna L PoquetteRussiaIvan Magalhaes QUALIFIED
Maisha Y GlickArgentinaStephen Shaw UNQUALIFIED
Antonio L FlosiIndiaOnyama Limba QUALIFIED
Aika I FollerSpainAmy Elsner UNQUALIFIED
Claire S DilliardIndiaIoni Bowcher NEGOTIATION
Murillo Z WieserCanadaXuxue Feng NEGOTIATION
Juan K WieserUnited KingdomAnna Fali NEW
Antonio U PaprockiFranceOnyama Limba QUALIFIED
Leja O SaylorsGermanyIvan Magalhaes RENEWAL
Kaitlin X FollerIndiaXuxue Feng PROPOSAL
Wickens J NickaItalyElwin Sharvill NEW
Stacey Y OstroskyAustraliaStephen Shaw UNQUALIFIED
Mujtaba D OldroydFranceAsiya Javayant NEGOTIATION
Tony V VenereArgentinaXuxue Feng UNQUALIFIED
Aditya Q BologniaGermanyIoni Bowcher QUALIFIED
Johnson R BologniaItalyAnna Fali UNQUALIFIED
Ricardo R StensethSpainIoni Bowcher UNQUALIFIED
Octavia H NestleIndiaAnna Fali RENEWAL
Ivar J FigeroaItalyAmy Elsner UNQUALIFIED
Costa S PaprockiAustraliaAnna Fali QUALIFIED
Smith X BologniaFranceElwin Sharvill PROPOSAL
Wickens M GillianJapanIoni Bowcher PROPOSAL
Arvin D DoeCanadaOnyama Limba NEGOTIATION
Johnson Z DarakjyFranceAsiya Javayant NEGOTIATION
Emily F SaylorsJapanIvan Magalhaes PROPOSAL
Murillo J WaycottIndiaBernardo Dominic UNQUALIFIED
Jones Y PaprockiIndiaElwin Sharvill QUALIFIED
Munro Q ButtRussiaAmy Elsner QUALIFIED
Frozen Columns
Name
Mayumi G Darakjy
Juan G Butt
Francesco C Waycott
Mujtaba B Caldarera
Leon X Marrier
Maria X Gillian
Deepesh A Bolognia
Ricardo V Shinko
Emily J Garufi
Arvin B Doe
Greenwood D Sergi
Smith F Venere
Ivar N Stenseth
Julie F Vocelka
Rodrigues S Bowley
Mayumi D Rim
Ricardo E Stenseth
Jennifer D Ruta
Stacey G Caudy
Ashley Z Caldarera
Wickens U Nestle
Emily L Garufi
Isabel Q Malet
Chavez F Perin
Izzy D Malet
Izzy P Stockham
Kadeem Y Ostrosky
Maria L Saylors
Kaitlin B Malet
Munro U Darakjy
David F Maclead
Ivar F Rulapaugh
Leon N Ferencz
Aika A Nicka
David U Gaucho
Cody I Darakjy
Arvin P Stenseth
Stacey Z Foller
Mujtaba M Nicka
Tony Q Butt
Emily M Gaucho
Aditya J Whobrey
Arvin H Glick
Silvio P Tollner
Alejandro G Oldroyd
Salvatore N Shinko
Maisha P Doe
Tony D Stockham
Greenwood U Briddick
Antonio N Morasca
IdCountryDate
1000Canada2026-07-03
1001Russia2026-07-08
1002Germany2026-07-05
1003United Kingdom2026-07-09
1004Russia2026-07-20
1005Russia2026-07-06
1006Japan2026-07-09
1007India2026-07-04
1008Spain2026-06-28
1009Spain2026-07-01
1010Brazil2026-07-10
1011Brazil2026-06-27
1012Germany2026-07-22
1013Brazil2026-07-24
1014United Kingdom2026-06-26
1015Russia2026-06-29
1016Germany2026-07-24
1017Brazil2026-07-11
1018India2026-07-08
1019France2026-07-02
1020Canada2026-06-30
1021Brazil2026-07-04
1022Japan2026-06-26
1023Germany2026-07-05
1024France2026-07-04
1025Germany2026-07-05
1026France2026-07-15
1027Italy2026-07-01
1028India2026-07-11
1029Japan2026-07-15
1030Spain2026-07-20
1031Brazil2026-07-24
1032France2026-07-19
1033United Kingdom2026-07-02
1034Russia2026-07-02
1035Germany2026-07-08
1036Brazil2026-07-17
1037Spain2026-07-07
1038Russia2026-06-27
1039United Kingdom2026-07-02
1040France2026-06-25
1041Russia2026-07-18
1042Japan2026-06-26
1043Italy2026-07-09
1044Brazil2026-07-18
1045Argentina2026-07-03
1046Argentina2026-07-05
1047France2026-07-01
1048India2026-07-09
1049France2026-07-18

On-Demand Data

NameIdCountryDate
Leja X Ostrosky1000Australia2026-07-09
Aika R Caldarera1001Japan2026-07-21
Mayumi C Figeroa1002India2026-07-08
Aruna N Bowley1003Spain2026-07-10
Faith M Amigon1004France2026-07-01
Aditya T Slusarski1005Italy2026-06-27
Smith L Saylors1006Argentina2026-07-01
Aditya J Slusarski1007Russia2026-07-21
Arvin T Malet1008Russia2026-07-01
Juan S Waycott1009Brazil2026-07-22
Kaitlin L Maclead1010Russia2026-07-06
Alejandro R Whobrey1011Russia2026-07-13
Chavez N Butt1012Japan2026-07-12
Nicolas U Caudy1013Australia2026-06-29
Izzy C Dilliard1014Argentina2026-07-13
Aditya F Flosi1015Germany2026-07-07
Maria W Flosi1016Spain2026-07-15
Claire W Waycott1017Russia2026-07-21
Claire G Wieser1018Australia2026-07-12
Rodrigues W Iturbide1019Japan2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi Y OldroydJapanElwin Sharvill QUALIFIED
Cody O CampainItalyAmy Elsner UNQUALIFIED
Claire X GauchoIndiaXuxue Feng QUALIFIED
Emily C RoysterIndiaAmy Elsner PROPOSAL
Juan J FollerArgentinaStephen Shaw NEGOTIATION
David D OldroydFranceAmy Elsner PROPOSAL
David J IturbideCanadaStephen Shaw UNQUALIFIED
Silvio N GillianArgentinaAsiya Javayant PROPOSAL
Antonio I ButtCanadaBernardo Dominic PROPOSAL
Stacey N GlickAustraliaAsiya Javayant UNQUALIFIED
Leja G DarakjySpainStephen Shaw UNQUALIFIED
Jones C GauchoSpainAnna Fali QUALIFIED
Kaitlin V SchemmerCanadaOnyama Limba QUALIFIED
Aika A WaycottAustraliaIoni Bowcher NEGOTIATION
Silvio H DarakjyIndiaAnna Fali NEGOTIATION
Aditya E CaldareraBrazilBernardo Dominic UNQUALIFIED
Costa T BologniaUnited KingdomAmy Elsner QUALIFIED
Ivar F FerenczFranceOnyama Limba NEW
Aruna Q TollnerArgentinaIoni Bowcher NEW
Sinclair A CaldareraCanadaIoni Bowcher RENEWAL
Jeanfrancois V GillianAustraliaStephen Shaw RENEWAL
Tony M PerinUnited KingdomBernardo Dominic NEW
Leon L MaletGermanyIoni Bowcher RENEWAL
Darci Q PoquetteArgentinaElwin Sharvill UNQUALIFIED
Murillo O VocelkaFranceElwin Sharvill UNQUALIFIED
Chavez C SchemmerSpainIvan Magalhaes UNQUALIFIED
Clifford D SergiSpainAsiya Javayant UNQUALIFIED
Stacey F AmigonGermanyAnna Fali NEW
David U OldroydAustraliaAnna Fali NEGOTIATION
Leja P WieserIndiaElwin Sharvill NEW
Greenwood U MacleadRussiaElwin Sharvill NEGOTIATION
Costa C MaletGermanyIoni Bowcher NEGOTIATION
Nicolas L PerinAustraliaAnna Fali PROPOSAL
Rodrigues X OldroydFranceAsiya Javayant NEGOTIATION
Julie Q InouyeUnited KingdomOnyama Limba NEGOTIATION
Aditya R MaletItalyOnyama Limba RENEWAL
Faith X RoysterRussiaOnyama Limba QUALIFIED
Deepesh R WieserIndiaXuxue Feng UNQUALIFIED
Francesco E WieserGermanyIoni Bowcher UNQUALIFIED
Jones F AmigonFranceAnna Fali QUALIFIED

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