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 O BriddickBrazilElwin Sharvill UNQUALIFIED
Murillo X VenereRussiaOnyama Limba PROPOSAL
Costa S DarakjyIndiaXuxue Feng RENEWAL
Faith D AlbaresItalyXuxue Feng NEW
Leon C SaylorsArgentinaIvan Magalhaes UNQUALIFIED
David D KuskoIndiaIvan Magalhaes RENEWAL
Antonio R FerenczUnited KingdomXuxue Feng NEGOTIATION
David H GlickJapanAnna Fali UNQUALIFIED
Morrow N DilliardRussiaElwin Sharvill QUALIFIED
Antonio J VenereGermanyAmy Elsner RENEWAL
Alejandro R CampainRussiaOnyama Limba QUALIFIED
Maria R StensethSpainStephen Shaw UNQUALIFIED
Octavia S CampainAustraliaAmy Elsner QUALIFIED
Ivar W MarrierFranceAmy Elsner RENEWAL
Ashley P PaprockiRussiaAsiya Javayant QUALIFIED
Jefferson C VenereFranceBernardo Dominic NEGOTIATION
Wickens S MarrierBrazilBernardo Dominic PROPOSAL
Chavez K GauchoGermanyBernardo Dominic QUALIFIED
Alejandro J ShinkoItalyOnyama Limba QUALIFIED
Greenwood Q StensethBrazilAmy Elsner RENEWAL
Maria U StockhamCanadaAsiya Javayant UNQUALIFIED
Francesco E SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Adams U OstroskyJapanAmy Elsner UNQUALIFIED
Jeanfrancois S NickaUnited KingdomElwin Sharvill NEGOTIATION
James D StensethFranceOnyama Limba NEW
Juan R FigeroaGermanyAsiya Javayant QUALIFIED
Isabel O RimGermanyOnyama Limba NEGOTIATION
Johnson X RoysterItalyAmy Elsner NEW
Smith H OldroydCanadaAmy Elsner PROPOSAL
Munro H BriddickArgentinaElwin Sharvill RENEWAL
Tony E SergiFranceBernardo Dominic QUALIFIED
Chavez X RutaCanadaIvan Magalhaes RENEWAL
Adams A BologniaGermanyIoni Bowcher PROPOSAL
Cody X GillianRussiaAmy Elsner NEGOTIATION
Ivar T NickaIndiaIoni Bowcher NEGOTIATION
Smith T OldroydFranceOnyama Limba QUALIFIED
David B MaletItalyXuxue Feng RENEWAL
Murillo I VenereBrazilOnyama Limba RENEWAL
Kaitlin H ButtIndiaBernardo Dominic PROPOSAL
Leon J SaylorsItalyAsiya Javayant NEGOTIATION
Kadeem P WaycottItalyBernardo Dominic PROPOSAL
James J StockhamUnited KingdomAmy Elsner PROPOSAL
Nicolas L AlbaresBrazilXuxue Feng RENEWAL
Stacey T IturbideIndiaAnna Fali NEW
Mujtaba B WhobreyUnited KingdomIoni Bowcher QUALIFIED
Adams I ShinkoIndiaAmy Elsner PROPOSAL
Murillo N IturbideUnited KingdomXuxue Feng NEGOTIATION
Deepesh P PaprockiJapanIoni Bowcher UNQUALIFIED
James K GlickArgentinaStephen Shaw QUALIFIED
Leon P CaldareraFranceBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones B NickaCanadaAmy Elsner NEW
Murillo C RutaIndiaStephen Shaw UNQUALIFIED
Clifford Z VocelkaArgentinaAnna Fali RENEWAL
Munro S GlickGermanyAnna Fali NEGOTIATION
Jennifer G WaycottIndiaXuxue Feng NEGOTIATION
Jones M MarrierSpainAsiya Javayant UNQUALIFIED
Jefferson U MacleadCanadaIoni Bowcher QUALIFIED
Maria O RutaFranceAmy Elsner RENEWAL
Nicolas W SaylorsGermanyIvan Magalhaes QUALIFIED
Cody S SaylorsBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James L CaudyBrazil2025-04-07King, Christopher A Esq QUALIFIED74Ivan Magalhaes
1001Leon Q PaprockiRussia2025-04-08Buckley Miller Wright NEW45Stephen Shaw
1002Costa M MorascaItaly2025-04-05Commercial Press PROPOSAL10Asiya Javayant
1003Antonio V MaletArgentina2025-04-13Chanay, Jeffrey A Esq PROPOSAL8Stephen Shaw
1004Clifford I WhobreyIndia2025-04-22Printing Dimensions NEGOTIATION18Bernardo Dominic
1005Claire F ShinkoArgentina2025-04-22Commercial Press QUALIFIED85Stephen Shaw
1006Alejandro X VenereRussia2025-04-13Rousseaux, Michael Esq QUALIFIED55Ivan Magalhaes
1007Ivar X OstroskyArgentina2025-04-28Truhlar And Truhlar Attys NEW10Onyama Limba
1008Morrow F WieserSpain2025-04-01Buckley Miller Wright RENEWAL90Anna Fali
1009Faith L ButtSpain2025-04-29King, Christopher A Esq QUALIFIED44Ioni Bowcher
1010Jennifer E AlbaresFrance2025-04-18Chemel, James L Cpa NEGOTIATION88Onyama Limba
1011Clifford F WieserUnited Kingdom2025-04-10Rangoni Of Florence QUALIFIED41Onyama Limba
1012Isabel D FigeroaJapan2025-04-12Commercial Press NEGOTIATION43Amy Elsner
1013Arvin A ShinkoItaly2025-04-28Commercial Press RENEWAL4Onyama Limba
1014Munro H StockhamBrazil2025-04-20Chanay, Jeffrey A Esq NEGOTIATION80Amy Elsner
1015Mayumi P RulapaughAustralia2025-04-14Buckley Miller Wright QUALIFIED71Asiya Javayant
1016Izzy S NickaAustralia2025-04-23Chapman, Ross E Esq PROPOSAL45Stephen Shaw
1017Misaki C GlickUnited Kingdom2025-04-19Rangoni Of Florence NEW59Xuxue Feng
1018Wickens S SaylorsFrance2025-04-03Printing Dimensions RENEWAL52Amy Elsner
1019Isabel X RimCanada2025-04-17Chanay, Jeffrey A Esq PROPOSAL59Anna Fali
1020Kadeem P BologniaJapan2025-04-18Rousseaux, Michael Esq PROPOSAL47Stephen Shaw
1021Mayumi I OstroskyAustralia2025-04-17Feiner Bros PROPOSAL0Amy Elsner
1022Jennifer I CaldareraArgentina2025-04-26Rangoni Of Florence NEW44Bernardo Dominic
1023Leon O ShinkoJapan2025-04-30Feltz Printing Service RENEWAL43Xuxue Feng
1024Ashley N SergiGermany2025-04-26Truhlar And Truhlar Attys NEGOTIATION50Anna Fali
1025Juan X RoysterRussia2025-04-15Chapman, Ross E Esq NEGOTIATION54Ivan Magalhaes
1026Jefferson N WhobreyArgentina2025-04-08Dorl, James J Esq PROPOSAL39Anna Fali
1027Salvatore Z BriddickBrazil2025-04-19Buckley Miller Wright UNQUALIFIED38Amy Elsner
1028James D KolmetzGermany2025-04-01Feltz Printing Service RENEWAL99Ioni Bowcher
1029Leja Q VenereIndia2025-04-29Feiner Bros UNQUALIFIED59Elwin Sharvill
1030Jeanfrancois U WhobreyJapan2025-04-23Rangoni Of Florence NEW29Anna Fali
1031Murillo P WieserBrazil2025-04-24Feiner Bros QUALIFIED8Ivan Magalhaes
1032Jefferson W GillianItaly2025-04-10Truhlar And Truhlar Attys QUALIFIED75Xuxue Feng
1033Cody G KolmetzJapan2025-04-09Chanay, Jeffrey A Esq PROPOSAL52Asiya Javayant
1034Leja W ShinkoIndia2025-04-30Commercial Press NEGOTIATION94Anna Fali
1035Claire F ButtRussia2025-04-20Printing Dimensions RENEWAL11Bernardo Dominic
1036Ricardo J RulapaughIndia2025-04-07King, Christopher A Esq NEW52Asiya Javayant
1037Misaki U SaylorsGermany2025-04-18Chanay, Jeffrey A Esq PROPOSAL4Stephen Shaw
1038Maisha M StensethGermany2025-04-26Truhlar And Truhlar Attys PROPOSAL46Asiya Javayant
1039Smith W BologniaCanada2025-04-01Chemel, James L Cpa NEGOTIATION42Bernardo Dominic
1040Morrow O MarrierSpain2025-04-02Morlong Associates UNQUALIFIED34Xuxue Feng
1041Arvin X GlickAustralia2025-04-24Chapman, Ross E Esq RENEWAL8Amy Elsner
1042Smith O CampainAustralia2025-04-20Buckley Miller Wright NEW65Onyama Limba
1043Jennifer Y FlosiBrazil2025-04-25Truhlar And Truhlar Attys RENEWAL60Onyama Limba
1044Maria F RimUnited Kingdom2025-04-10Buckley Miller Wright UNQUALIFIED6Ivan Magalhaes
1045Kaitlin M PerinRussia2025-04-28Chanay, Jeffrey A Esq QUALIFIED78Amy Elsner
1046Tony S PoquetteAustralia2025-04-02Morlong Associates NEGOTIATION78Amy Elsner
1047Leja Q ShinkoIndia2025-04-14Truhlar And Truhlar Attys QUALIFIED81Ioni Bowcher
1048Mujtaba K BowleyAustralia2025-04-06King, Christopher A Esq PROPOSAL62Xuxue Feng
1049Jones N StensethUnited Kingdom2025-04-03Chemel, James L Cpa PROPOSAL63Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maria G AmigonArgentinaAsiya Javayant NEGOTIATION
Jennifer L FigeroaArgentinaAnna Fali PROPOSAL
Johnson Q IturbideUnited KingdomXuxue Feng NEW
Jones L SaylorsUnited KingdomOnyama Limba NEW
Aditya Q AmigonSpainStephen Shaw PROPOSAL
Aika V StensethSpainAnna Fali NEW
Costa E MacleadBrazilAsiya Javayant NEW
Misaki K CaudyRussiaBernardo Dominic NEW
Darci X MorascaJapanIvan Magalhaes NEGOTIATION
Izzy W GillianFranceIvan Magalhaes UNQUALIFIED
Isabel X MarrierUnited KingdomIvan Magalhaes RENEWAL
Alejandro Y CaldareraRussiaAmy Elsner UNQUALIFIED
Darci Z KuskoSpainIoni Bowcher PROPOSAL
Silvio S CaldareraJapanIoni Bowcher UNQUALIFIED
Julie E SlusarskiItalyBernardo Dominic QUALIFIED
Cody I GlickFranceStephen Shaw NEW
Alejandro R WhobreyAustraliaStephen Shaw QUALIFIED
James G GillianRussiaIoni Bowcher NEW
Murillo I NickaRussiaStephen Shaw QUALIFIED
Julie C WaycottSpainBernardo Dominic QUALIFIED
Johnson P GarufiJapanXuxue Feng NEGOTIATION
Claire U FollerAustraliaAsiya Javayant UNQUALIFIED
Isabel R CampainGermanyAnna Fali NEGOTIATION
Darci G StensethArgentinaIvan Magalhaes NEW
Octavia J BologniaSpainBernardo Dominic PROPOSAL
Morrow D MarrierItalyIoni Bowcher UNQUALIFIED
Costa H MarrierCanadaAnna Fali PROPOSAL
Jeanfrancois K DarakjyRussiaAnna Fali PROPOSAL
Mayumi K SergiIndiaElwin Sharvill RENEWAL
Juan J GlickArgentinaIvan Magalhaes NEW
Leja G IturbideCanadaIvan Magalhaes QUALIFIED
Izzy M PerinCanadaElwin Sharvill PROPOSAL
Julie D GauchoAustraliaXuxue Feng NEW
Nicolas L KolmetzJapanIoni Bowcher RENEWAL
Cody X VocelkaRussiaOnyama Limba PROPOSAL
Cody X GillianSpainAsiya Javayant RENEWAL
Emily Y TollnerUnited KingdomAsiya Javayant NEW
Silvio O TollnerIndiaElwin Sharvill QUALIFIED
Jefferson J CaldareraAustraliaAsiya Javayant QUALIFIED
Aditya U SlusarskiUnited KingdomAnna Fali NEW
Silvio V GauchoBrazilOnyama Limba RENEWAL
Stacey E TollnerUnited KingdomStephen Shaw QUALIFIED
Leja Y NickaIndiaElwin Sharvill PROPOSAL
Rodrigues K RoysterJapanElwin Sharvill NEW
Sinclair Z CaudySpainOnyama Limba PROPOSAL
Johnson M TollnerItalyIvan Magalhaes RENEWAL
Izzy F PaprockiUnited KingdomAnna Fali QUALIFIED
Rodrigues W MarrierFranceIvan Magalhaes PROPOSAL
Johnson J WieserIndiaAsiya Javayant RENEWAL
Ashley L GauchoGermanyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Claire J Rulapaugh
Kaitlin E Albares
Johnson T Wieser
Claire O Morasca
Aditya W Amigon
Aruna V Gillian
Jennifer N Bolognia
Smith F Kolmetz
Johnson U Caudy
Ivar W Maclead
Ricardo T Paprocki
Julie C Vocelka
Stacey S Waycott
Kaitlin W Oldroyd
Jones U Caudy
Morrow R Rim
Tony Z Gaucho
Ricardo Y Garufi
Ashley M Maclead
Alejandro W Chui
Leon P Dilliard
Faith S Malet
Kaitlin Y Iturbide
Jones C Saylors
Stacey C Iturbide
Jefferson D Morasca
Alejandro T Garufi
Jennifer C Dilliard
Antonio H Iturbide
Silvio T Glick
Juan Y Briddick
Kadeem V Ostrosky
Chavez X Tollner
Leja W Foller
Clifford J Caudy
Ivar W Shinko
Alejandro N Venere
Emily D Tollner
Aditya D Foller
Murillo Q Kusko
Kadeem R Doe
James N Stenseth
Cody K Royster
Rodrigues K Poquette
Isabel Z Bowley
Jones J Ruta
Claire A Foller
Silvio D Ruta
Silvio J Wieser
Isabel B Ruta
IdCountryDate
1000Japan2025-04-23
1001Italy2025-04-23
1002Canada2025-04-14
1003Brazil2025-04-23
1004Spain2025-04-17
1005Japan2025-04-23
1006India2025-04-30
1007Argentina2025-04-02
1008United Kingdom2025-04-12
1009Italy2025-04-21
1010Germany2025-04-26
1011Italy2025-04-04
1012Spain2025-04-06
1013Brazil2025-04-02
1014United Kingdom2025-04-25
1015Canada2025-04-21
1016Australia2025-04-09
1017Argentina2025-04-13
1018Argentina2025-04-16
1019Italy2025-04-26
1020India2025-04-25
1021Russia2025-04-03
1022Argentina2025-04-07
1023Russia2025-04-20
1024United Kingdom2025-04-14
1025Canada2025-04-05
1026India2025-04-18
1027Brazil2025-04-16
1028France2025-04-26
1029Germany2025-04-13
1030Italy2025-04-04
1031Australia2025-04-15
1032Germany2025-04-16
1033Italy2025-04-04
1034Russia2025-04-17
1035Italy2025-04-15
1036Japan2025-04-29
1037India2025-04-01
1038Brazil2025-04-30
1039Spain2025-04-02
1040India2025-04-10
1041Japan2025-04-27
1042Italy2025-04-22
1043United Kingdom2025-04-23
1044France2025-04-15
1045France2025-04-18
1046Argentina2025-04-05
1047Japan2025-04-30
1048United Kingdom2025-04-15
1049Spain2025-04-25

On-Demand Data

NameIdCountryDate
Arvin Q Royster1000France2025-04-18
Juan E Sergi1001Japan2025-04-03
Sinclair F Waycott1002Russia2025-04-01
Leja G Stenseth1003Spain2025-04-03
Kaitlin D Glick1004Brazil2025-04-03
Costa A Glick1005France2025-04-28
Leja K Amigon1006Australia2025-04-16
Maisha W Ostrosky1007Italy2025-04-16
Wickens X Paprocki1008India2025-04-07
James X Shinko1009Australia2025-04-17
Aditya B Bowley1010Spain2025-04-06
Munro B Rulapaugh1011Brazil2025-04-03
Kaitlin B Butt1012Argentina2025-04-12
Antonio H Paprocki1013Canada2025-04-20
Silvio W Caldarera1014Canada2025-04-09
Sinclair O Rulapaugh1015Germany2025-04-11
Mayumi X Glick1016France2025-04-24
Wickens B Malet1017Spain2025-04-01
Johnson Y Dilliard1018Canada2025-04-26
Costa I Dilliard1019Canada2025-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire P WaycottCanadaIoni Bowcher QUALIFIED
Maria B MarrierRussiaIvan Magalhaes NEGOTIATION
Jefferson F PoquetteIndiaXuxue Feng NEGOTIATION
Smith W PerinGermanyXuxue Feng RENEWAL
Clifford G MorascaJapanBernardo Dominic QUALIFIED
Maria A InouyeIndiaIoni Bowcher PROPOSAL
James T MaletSpainBernardo Dominic PROPOSAL
Johnson D WhobreyArgentinaAnna Fali NEGOTIATION
Rodrigues M RutaGermanyIvan Magalhaes NEW
Leon H ShinkoIndiaIvan Magalhaes NEGOTIATION
Aditya Y MacleadItalyBernardo Dominic PROPOSAL
Aditya X OldroydSpainXuxue Feng UNQUALIFIED
Wickens Y WieserGermanyAmy Elsner NEW
Sinclair K DarakjyArgentinaAnna Fali NEW
Jefferson T DarakjyIndiaAmy Elsner PROPOSAL
Ashley L PaprockiIndiaElwin Sharvill UNQUALIFIED
Faith C RimCanadaBernardo Dominic PROPOSAL
Francesco W SlusarskiSpainAmy Elsner NEW
Jefferson E GarufiUnited KingdomAsiya Javayant RENEWAL
Wickens Z FlosiSpainStephen Shaw PROPOSAL
Jones X WaycottUnited KingdomStephen Shaw RENEWAL
Clifford Q WieserJapanXuxue Feng RENEWAL
Octavia K GlickIndiaAnna Fali NEGOTIATION
Aruna E CaudyItalyIvan Magalhaes PROPOSAL
Ashley B BriddickSpainStephen Shaw NEGOTIATION
Antonio Q IturbideGermanyStephen Shaw NEW
Alejandro I FlosiAustraliaStephen Shaw NEW
Octavia Q WhobreyIndiaElwin Sharvill PROPOSAL
Isabel U AlbaresCanadaAnna Fali RENEWAL
Stacey S KuskoArgentinaElwin Sharvill NEGOTIATION
Alejandro V OstroskyBrazilAmy Elsner NEGOTIATION
Darci B AmigonAustraliaElwin Sharvill NEW
Claire T FollerItalyXuxue Feng QUALIFIED
Mayumi P OstroskyJapanAmy Elsner QUALIFIED
Faith Q OstroskyAustraliaBernardo Dominic PROPOSAL
Isabel A MorascaAustraliaOnyama Limba PROPOSAL
Morrow I MaletFranceBernardo Dominic PROPOSAL
Arvin E SlusarskiCanadaBernardo Dominic NEW
Smith W WaycottSpainStephen Shaw NEGOTIATION
Wickens Z BologniaGermanyIoni Bowcher 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>