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
Faith C OstroskyGermanyOnyama Limba PROPOSAL
Deepesh E ChuiRussiaElwin Sharvill PROPOSAL
Emily U ButtItalyElwin Sharvill NEGOTIATION
Darci J NestleIndiaStephen Shaw UNQUALIFIED
Maisha G FlosiUnited KingdomStephen Shaw RENEWAL
Sinclair X WaycottGermanyXuxue Feng RENEWAL
Nicolas G GillianAustraliaAmy Elsner PROPOSAL
Maria R GillianSpainIvan Magalhaes QUALIFIED
Izzy R NestleGermanyIoni Bowcher PROPOSAL
Octavia J FlosiCanadaOnyama Limba NEGOTIATION
Aditya D WaycottGermanyBernardo Dominic NEW
Clifford S DarakjyAustraliaAsiya Javayant PROPOSAL
Salvatore G RimItalyStephen Shaw QUALIFIED
Mujtaba Y PoquetteCanadaIoni Bowcher PROPOSAL
Clifford O SaylorsRussiaAmy Elsner NEGOTIATION
David G WhobreyRussiaBernardo Dominic NEW
Silvio X NestleCanadaAnna Fali UNQUALIFIED
Claire E PaprockiRussiaOnyama Limba PROPOSAL
Adams M MarrierJapanXuxue Feng UNQUALIFIED
Silvio I NickaIndiaAmy Elsner QUALIFIED
Silvio U ChuiFranceStephen Shaw QUALIFIED
Morrow A StensethGermanyIoni Bowcher QUALIFIED
Aruna G ChuiItalyElwin Sharvill NEGOTIATION
Isabel G FigeroaIndiaAnna Fali UNQUALIFIED
Adams N VocelkaIndiaXuxue Feng PROPOSAL
Claire R FlosiIndiaAsiya Javayant UNQUALIFIED
Faith K IturbideFranceStephen Shaw UNQUALIFIED
Francesco K MaletCanadaBernardo Dominic QUALIFIED
Juan X StockhamUnited KingdomStephen Shaw QUALIFIED
Aditya B AmigonFranceAnna Fali NEGOTIATION
Misaki G FlosiSpainIvan Magalhaes NEW
Maisha R SaylorsIndiaIoni Bowcher PROPOSAL
Darci R BowleySpainIvan Magalhaes NEW
Cody Z ButtCanadaIvan Magalhaes UNQUALIFIED
Stacey R StockhamArgentinaBernardo Dominic QUALIFIED
Wickens I PaprockiCanadaAsiya Javayant NEW
Julie W SergiBrazilStephen Shaw NEGOTIATION
Chavez H SergiArgentinaElwin Sharvill NEW
Morrow E IturbideRussiaXuxue Feng QUALIFIED
Cody W StensethIndiaOnyama Limba UNQUALIFIED
Octavia M NickaItalyAnna Fali NEW
Silvio A StockhamBrazilAsiya Javayant UNQUALIFIED
James Y SaylorsSpainAsiya Javayant PROPOSAL
Johnson X RoysterItalyElwin Sharvill RENEWAL
Johnson J WaycottAustraliaElwin Sharvill NEGOTIATION
Silvio N GlickSpainStephen Shaw NEGOTIATION
Mayumi B FerenczFranceStephen Shaw QUALIFIED
Aruna V KolmetzFranceAsiya Javayant NEGOTIATION
Francesco H BriddickCanadaBernardo Dominic NEGOTIATION
Smith E RutaIndiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja M BriddickRussiaIoni Bowcher PROPOSAL
Faith C BriddickJapanBernardo Dominic RENEWAL
Mayumi H PerinGermanyOnyama Limba QUALIFIED
Claire A NickaArgentinaAnna Fali RENEWAL
Cody B AmigonFranceStephen Shaw PROPOSAL
Jones T GauchoIndiaIoni Bowcher NEW
Ivar E MaletItalyOnyama Limba RENEWAL
Greenwood E WieserItalyAmy Elsner PROPOSAL
Aruna Y PoquetteFranceStephen Shaw NEW
Johnson Y GarufiItalyAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues L ShinkoAustralia2025-05-26Chapman, Ross E Esq NEGOTIATION82Anna Fali
1001Johnson S PoquetteItaly2025-05-29Buckley Miller Wright RENEWAL97Anna Fali
1002Juan H FlosiGermany2025-06-07Feiner Bros RENEWAL88Ioni Bowcher
1003Sinclair G DilliardBrazil2025-06-09Benton, John B Jr NEGOTIATION99Ioni Bowcher
1004Clifford I WhobreyIndia2025-06-06King, Christopher A Esq RENEWAL66Onyama Limba
1005Jones B KuskoRussia2025-06-06Truhlar And Truhlar Attys NEGOTIATION27Elwin Sharvill
1006Juan N WaycottUnited Kingdom2025-05-29Morlong Associates RENEWAL28Anna Fali
1007Aditya P WhobreyCanada2025-05-28Printing Dimensions PROPOSAL27Asiya Javayant
1008Leon D CaldareraCanada2025-06-09Rangoni Of Florence NEGOTIATION60Onyama Limba
1009Juan H SlusarskiIndia2025-06-06Buckley Miller Wright NEGOTIATION2Ivan Magalhaes
1010Antonio K WaycottFrance2025-06-16Feiner Bros QUALIFIED76Amy Elsner
1011Rodrigues T StockhamItaly2025-06-08Commercial Press QUALIFIED30Ioni Bowcher
1012Nicolas Z MaletAustralia2025-06-12King, Christopher A Esq PROPOSAL82Asiya Javayant
1013Arvin M BologniaAustralia2025-05-26Printing Dimensions NEW52Anna Fali
1014Tony O IturbideBrazil2025-06-06Commercial Press RENEWAL40Ivan Magalhaes
1015Ricardo C WhobreyBrazil2025-05-20Rousseaux, Michael Esq NEW42Ioni Bowcher
1016Alejandro D RimUnited Kingdom2025-05-23Rousseaux, Michael Esq RENEWAL50Ivan Magalhaes
1017Arvin S PaprockiUnited Kingdom2025-05-31Chanay, Jeffrey A Esq NEW65Onyama Limba
1018Jeanfrancois T SchemmerAustralia2025-05-25Rousseaux, Michael Esq UNQUALIFIED41Ioni Bowcher
1019Tony H SlusarskiAustralia2025-05-26Buckley Miller Wright NEGOTIATION1Onyama Limba
1020Munro R CampainBrazil2025-06-08Feiner Bros UNQUALIFIED41Xuxue Feng
1021Aruna G SlusarskiSpain2025-06-10Buckley Miller Wright NEW2Bernardo Dominic
1022Clifford D RimCanada2025-06-04Truhlar And Truhlar Attys NEGOTIATION7Xuxue Feng
1023Isabel Y PoquetteAustralia2025-05-23Feltz Printing Service PROPOSAL98Anna Fali
1024Darci W MacleadBrazil2025-05-26Commercial Press NEGOTIATION82Amy Elsner
1025Munro W VenereArgentina2025-06-03King, Christopher A Esq RENEWAL25Asiya Javayant
1026Aika D PoquetteSpain2025-05-29Printing Dimensions RENEWAL25Ivan Magalhaes
1027Salvatore S TollnerItaly2025-05-27Chapman, Ross E Esq NEW23Ivan Magalhaes
1028Isabel S StensethUnited Kingdom2025-06-14Feiner Bros UNQUALIFIED12Onyama Limba
1029Johnson A FlosiGermany2025-06-07Printing Dimensions NEW93Ivan Magalhaes
1030Kadeem T MacleadRussia2025-06-10Commercial Press NEGOTIATION7Ioni Bowcher
1031Misaki G FollerItaly2025-05-19Truhlar And Truhlar Attys RENEWAL71Bernardo Dominic
1032Francesco G NickaJapan2025-06-16Commercial Press PROPOSAL50Ivan Magalhaes
1033Aika E SaylorsCanada2025-05-18Rousseaux, Michael Esq UNQUALIFIED49Stephen Shaw
1034Nicolas W WieserFrance2025-06-14King, Christopher A Esq RENEWAL54Ioni Bowcher
1035Ashley B CaudyUnited Kingdom2025-05-21Rangoni Of Florence NEGOTIATION29Anna Fali
1036Faith N WieserItaly2025-05-31Morlong Associates NEW93Amy Elsner
1037Alejandro K BriddickRussia2025-05-28Rangoni Of Florence UNQUALIFIED43Amy Elsner
1038Misaki O BologniaArgentina2025-06-11Chanay, Jeffrey A Esq QUALIFIED2Bernardo Dominic
1039Costa Z MaletGermany2025-06-12Rangoni Of Florence RENEWAL81Ivan Magalhaes
1040Jennifer T StensethGermany2025-06-14Feltz Printing Service PROPOSAL48Bernardo Dominic
1041Aika M MacleadIndia2025-06-06Printing Dimensions NEW63Bernardo Dominic
1042Smith P OstroskyBrazil2025-06-11Morlong Associates NEGOTIATION91Bernardo Dominic
1043Jones T AmigonArgentina2025-06-03Commercial Press RENEWAL34Asiya Javayant
1044Cody O StensethSpain2025-06-16Rousseaux, Michael Esq NEW16Anna Fali
1045Darci D RulapaughItaly2025-06-05Morlong Associates PROPOSAL23Amy Elsner
1046Salvatore M IturbideItaly2025-06-15Printing Dimensions PROPOSAL23Elwin Sharvill
1047Julie I StockhamGermany2025-05-29Benton, John B Jr UNQUALIFIED79Anna Fali
1048Mayumi Q ChuiFrance2025-06-07Printing Dimensions UNQUALIFIED42Anna Fali
1049Chavez H MaletGermany2025-05-23Rangoni Of Florence PROPOSAL99Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leja O ButtSpainStephen Shaw QUALIFIED
Alejandro B WhobreyIndiaXuxue Feng QUALIFIED
Leon D FlosiRussiaIvan Magalhaes RENEWAL
Alejandro J GillianFranceAsiya Javayant NEGOTIATION
James S OstroskyBrazilAmy Elsner NEW
Cody K CaldareraSpainStephen Shaw UNQUALIFIED
Jefferson X SchemmerRussiaXuxue Feng UNQUALIFIED
Deepesh X CampainSpainOnyama Limba NEGOTIATION
Claire G PaprockiRussiaBernardo Dominic RENEWAL
Stacey F GillianUnited KingdomIoni Bowcher NEW
Emily G AlbaresAustraliaIoni Bowcher QUALIFIED
Jefferson I KuskoArgentinaOnyama Limba NEGOTIATION
Johnson H RutaArgentinaXuxue Feng RENEWAL
Antonio V CaudyRussiaIoni Bowcher NEW
Johnson W TollnerItalyAnna Fali QUALIFIED
Jennifer U VenereBrazilStephen Shaw UNQUALIFIED
Octavia Z CaudyFranceOnyama Limba UNQUALIFIED
Kadeem I AmigonJapanIvan Magalhaes UNQUALIFIED
Octavia R CampainRussiaAnna Fali NEGOTIATION
Antonio J NestleJapanXuxue Feng UNQUALIFIED
Leon D SaylorsBrazilIoni Bowcher UNQUALIFIED
Clifford D ButtBrazilStephen Shaw NEW
Nicolas M StensethFranceElwin Sharvill RENEWAL
Isabel N FerenczIndiaIvan Magalhaes PROPOSAL
Leja T NestleCanadaAmy Elsner UNQUALIFIED
Costa T RimIndiaOnyama Limba QUALIFIED
Julie N MaletJapanBernardo Dominic NEGOTIATION
Wickens G WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Arvin X MorascaItalyStephen Shaw UNQUALIFIED
Jeanfrancois V IturbideFranceAsiya Javayant RENEWAL
Rodrigues Z CaldareraItalyIoni Bowcher QUALIFIED
Silvio M MacleadAustraliaAnna Fali RENEWAL
Alejandro I OstroskyAustraliaOnyama Limba QUALIFIED
Jefferson B WieserIndiaOnyama Limba RENEWAL
Maria G PoquetteRussiaOnyama Limba QUALIFIED
Kaitlin N FigeroaRussiaOnyama Limba QUALIFIED
Ivar F PaprockiRussiaIvan Magalhaes RENEWAL
Clifford M BriddickUnited KingdomAsiya Javayant QUALIFIED
Rodrigues K DoeCanadaStephen Shaw NEW
Aruna W DarakjyIndiaAmy Elsner QUALIFIED
Jeanfrancois T FigeroaGermanyOnyama Limba RENEWAL
Leon Q CaudyItalyIvan Magalhaes NEGOTIATION
Isabel Z BologniaCanadaElwin Sharvill NEGOTIATION
Kadeem B ShinkoItalyIoni Bowcher RENEWAL
Rodrigues P SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Wickens Y ChuiArgentinaAsiya Javayant QUALIFIED
Chavez Z RoysterAustraliaIvan Magalhaes RENEWAL
Antonio O PoquetteFranceAmy Elsner NEGOTIATION
Leja Y RulapaughGermanyIvan Magalhaes UNQUALIFIED
Rodrigues N VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Ricardo D Maclead
Wickens I Sergi
Leon M Rulapaugh
Francesco G Waycott
Greenwood R Poquette
Sinclair B Foller
David F Flosi
Kaitlin L Malet
Adams D Morasca
Francesco C Butt
Maisha B Garufi
Maisha P Paprocki
Juan S Malet
Johnson U Whobrey
Johnson V Figeroa
Wickens X Whobrey
Nicolas P Shinko
Ashley P Saylors
Stacey A Shinko
Murillo B Caudy
Isabel P Kusko
Silvio X Gaucho
Nicolas Y Darakjy
Tony H Garufi
Rodrigues S Garufi
Claire Z Saylors
Sinclair J Doe
Leon H Doe
Chavez S Albares
Johnson O Garufi
James M Nicka
Nicolas S Stenseth
David O Chui
Leon L Poquette
Adams Y Waycott
Cody O Glick
Juan K Whobrey
Jennifer L Ostrosky
Aditya A Stenseth
Greenwood S Slusarski
Murillo G Waycott
Jefferson L Paprocki
Francesco Z Stockham
Leja P Waycott
Misaki B Briddick
Octavia T Tollner
Nicolas B Butt
Aditya E Ferencz
Costa S Tollner
Claire V Caldarera
IdCountryDate
1000Argentina2025-05-23
1001Australia2025-06-07
1002France2025-06-09
1003Japan2025-05-27
1004Germany2025-05-30
1005Argentina2025-05-29
1006Italy2025-05-29
1007Spain2025-05-28
1008Canada2025-06-14
1009Brazil2025-06-13
1010Canada2025-05-23
1011Argentina2025-05-27
1012Brazil2025-06-01
1013Russia2025-06-09
1014Australia2025-06-06
1015Canada2025-06-10
1016France2025-06-06
1017Australia2025-06-16
1018Germany2025-06-15
1019Brazil2025-05-29
1020Russia2025-05-25
1021Russia2025-05-25
1022Italy2025-06-16
1023Italy2025-06-15
1024Spain2025-06-14
1025Brazil2025-05-29
1026Russia2025-06-12
1027Japan2025-06-09
1028Australia2025-06-03
1029Canada2025-05-27
1030Italy2025-06-01
1031United Kingdom2025-05-29
1032Russia2025-06-04
1033United Kingdom2025-05-27
1034Japan2025-05-26
1035Argentina2025-05-24
1036Italy2025-05-27
1037Brazil2025-05-29
1038Australia2025-05-19
1039Canada2025-06-06
1040Germany2025-05-25
1041Japan2025-06-12
1042Brazil2025-05-30
1043Canada2025-05-24
1044India2025-06-15
1045Japan2025-05-21
1046Argentina2025-05-31
1047Germany2025-06-06
1048United Kingdom2025-05-23
1049India2025-05-23

On-Demand Data

NameIdCountryDate
Mayumi W Tollner1000France2025-05-26
Greenwood G Slusarski1001France2025-06-04
Faith Z Doe1002France2025-05-26
Chavez H Venere1003Russia2025-05-30
Jennifer M Figeroa1004Russia2025-06-15
Alejandro Y Rim1005Italy2025-05-24
Claire T Darakjy1006Brazil2025-06-12
Kadeem V Maclead1007Russia2025-05-27
Chavez W Kolmetz1008France2025-05-19
Octavia E Amigon1009India2025-05-26
Smith V Rim1010Brazil2025-06-08
Munro S Inouye1011India2025-06-16
Sinclair V Darakjy1012Australia2025-06-01
Stacey P Schemmer1013Spain2025-06-02
Leja O Amigon1014United Kingdom2025-05-22
Adams G Slusarski1015Japan2025-06-13
Arvin M Venere1016India2025-06-16
Misaki K Whobrey1017Spain2025-05-26
Maria N Caldarera1018Canada2025-06-04
Emily T Royster1019Russia2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem W StockhamAustraliaAnna Fali UNQUALIFIED
Ashley B DarakjyBrazilOnyama Limba QUALIFIED
Julie S VenereAustraliaIvan Magalhaes UNQUALIFIED
Deepesh E SaylorsUnited KingdomAsiya Javayant RENEWAL
Misaki Z MaletFranceElwin Sharvill PROPOSAL
Mayumi L RoysterAustraliaStephen Shaw QUALIFIED
James R ChuiAustraliaAsiya Javayant QUALIFIED
Juan X IturbideArgentinaAsiya Javayant NEGOTIATION
Costa Q IturbideBrazilOnyama Limba RENEWAL
Salvatore O CaldareraArgentinaXuxue Feng NEGOTIATION
Arvin J GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Wickens N VocelkaJapanElwin Sharvill QUALIFIED
Rodrigues J AlbaresAustraliaElwin Sharvill NEW
Salvatore A CampainGermanyStephen Shaw QUALIFIED
Ivar N DoeItalyOnyama Limba NEGOTIATION
Darci U TollnerFranceAnna Fali NEGOTIATION
Izzy Q BriddickGermanyIoni Bowcher PROPOSAL
Faith Z ShinkoAustraliaIoni Bowcher NEW
David I FerenczCanadaAmy Elsner PROPOSAL
Izzy G ChuiAustraliaStephen Shaw NEW
Julie P DilliardSpainBernardo Dominic NEGOTIATION
Stacey D RulapaughBrazilAmy Elsner RENEWAL
Wickens O ButtBrazilXuxue Feng PROPOSAL
Stacey L TollnerCanadaAsiya Javayant QUALIFIED
Izzy Y VenereRussiaIoni Bowcher NEW
Isabel S MaletJapanElwin Sharvill NEGOTIATION
Claire L PerinItalyIvan Magalhaes PROPOSAL
Aika Y DoeJapanStephen Shaw RENEWAL
Misaki O ShinkoJapanXuxue Feng NEW
Misaki E BriddickIndiaBernardo Dominic NEW
Chavez S VenereBrazilAmy Elsner UNQUALIFIED
Misaki O AlbaresSpainElwin Sharvill QUALIFIED
Jones B StockhamCanadaElwin Sharvill UNQUALIFIED
Morrow O SergiAustraliaStephen Shaw NEW
Salvatore S RutaGermanyAmy Elsner PROPOSAL
Aika P ChuiFranceOnyama Limba NEGOTIATION
Jeanfrancois X FigeroaSpainAnna Fali PROPOSAL
Misaki U MaletFranceBernardo Dominic UNQUALIFIED
Ashley O PerinItalyIoni Bowcher UNQUALIFIED
Aika S FerenczAustraliaBernardo Dominic 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>