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
David H GarufiRussiaStephen Shaw NEW
Leja B StensethItalyIvan Magalhaes UNQUALIFIED
Mujtaba Y RoysterRussiaAmy Elsner NEW
Johnson O PoquetteItalyStephen Shaw RENEWAL
Adams L StensethRussiaAsiya Javayant RENEWAL
Leja S GauchoUnited KingdomBernardo Dominic NEW
Smith Q GlickCanadaIoni Bowcher NEGOTIATION
Emily F CampainArgentinaOnyama Limba UNQUALIFIED
Isabel E ButtGermanyAsiya Javayant PROPOSAL
Kadeem B WhobreyGermanyAmy Elsner NEGOTIATION
Deepesh D OldroydRussiaIoni Bowcher NEW
Stacey K GlickBrazilIvan Magalhaes QUALIFIED
Arvin E GarufiJapanXuxue Feng UNQUALIFIED
Antonio U GarufiAustraliaAnna Fali NEW
Sinclair K BologniaSpainIoni Bowcher UNQUALIFIED
Arvin S FigeroaBrazilStephen Shaw NEW
Jennifer D RimArgentinaElwin Sharvill RENEWAL
Cody I MaletUnited KingdomAnna Fali NEGOTIATION
Ivar M DilliardJapanStephen Shaw RENEWAL
Costa D RutaItalyAmy Elsner PROPOSAL
Johnson S WhobreyCanadaOnyama Limba NEW
Murillo L CaldareraRussiaXuxue Feng QUALIFIED
Munro W DoeAustraliaIvan Magalhaes RENEWAL
Francesco R GauchoFranceAmy Elsner NEGOTIATION
Octavia R SchemmerSpainAsiya Javayant PROPOSAL
Rodrigues Z VenereRussiaIvan Magalhaes PROPOSAL
Antonio Q IturbideGermanyAsiya Javayant NEW
Munro W PerinCanadaBernardo Dominic RENEWAL
Nicolas J SergiCanadaStephen Shaw PROPOSAL
Johnson U BowleySpainIvan Magalhaes PROPOSAL
Julie X BowleyUnited KingdomBernardo Dominic NEW
Mujtaba F PoquetteRussiaElwin Sharvill NEGOTIATION
Smith R SchemmerFranceAsiya Javayant NEW
Smith Z WaycottRussiaElwin Sharvill QUALIFIED
Silvio G GlickAustraliaElwin Sharvill UNQUALIFIED
Izzy P AmigonGermanyAsiya Javayant RENEWAL
Clifford K WaycottIndiaBernardo Dominic PROPOSAL
Ricardo E KuskoCanadaAnna Fali QUALIFIED
Octavia P VenereArgentinaStephen Shaw UNQUALIFIED
Misaki Y CampainItalyElwin Sharvill NEW
Wickens W GauchoCanadaAmy Elsner PROPOSAL
Cody A SlusarskiGermanyStephen Shaw NEW
Tony I GauchoGermanyBernardo Dominic QUALIFIED
Clifford V BriddickItalyXuxue Feng QUALIFIED
Morrow G SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Ricardo P MacleadRussiaAnna Fali NEW
Kadeem H KuskoIndiaIoni Bowcher RENEWAL
Antonio F MaletCanadaAsiya Javayant QUALIFIED
Aditya I WhobreyCanadaAmy Elsner NEGOTIATION
Misaki M RimCanadaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria Y StockhamBrazilXuxue Feng NEGOTIATION
Jeanfrancois H BriddickJapanIvan Magalhaes QUALIFIED
Julie M MacleadRussiaBernardo Dominic NEGOTIATION
Claire G FlosiGermanyIvan Magalhaes RENEWAL
Morrow E StockhamFranceAmy Elsner UNQUALIFIED
Sinclair H WieserIndiaIoni Bowcher PROPOSAL
Silvio S NickaArgentinaIvan Magalhaes UNQUALIFIED
Chavez Z KuskoJapanElwin Sharvill RENEWAL
Ashley U MacleadGermanyOnyama Limba NEGOTIATION
Kaitlin S GauchoUnited KingdomAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues E FollerItaly2025-05-27Feiner Bros NEW8Amy Elsner
1001David Q OstroskyUnited Kingdom2025-06-01Truhlar And Truhlar Attys QUALIFIED40Elwin Sharvill
1002Aruna Q VocelkaGermany2025-05-17Chanay, Jeffrey A Esq NEGOTIATION75Asiya Javayant
1003Kadeem T MaletFrance2025-05-19Morlong Associates PROPOSAL34Ioni Bowcher
1004Sinclair F DoeAustralia2025-06-06Morlong Associates QUALIFIED62Ioni Bowcher
1005Ricardo E SchemmerBrazil2025-06-04King, Christopher A Esq QUALIFIED77Onyama Limba
1006Darci C DarakjyIndia2025-05-18Commercial Press NEW6Stephen Shaw
1007Mayumi Z OstroskyAustralia2025-05-26Rangoni Of Florence UNQUALIFIED57Bernardo Dominic
1008James Z BriddickIndia2025-06-01Benton, John B Jr QUALIFIED68Bernardo Dominic
1009Jefferson D VenereIndia2025-06-01Feltz Printing Service QUALIFIED45Amy Elsner
1010David L DarakjySpain2025-05-29Rousseaux, Michael Esq QUALIFIED30Stephen Shaw
1011Isabel I VocelkaUnited Kingdom2025-06-11Truhlar And Truhlar Attys NEGOTIATION31Onyama Limba
1012Mujtaba T OstroskySpain2025-05-29Dorl, James J Esq QUALIFIED41Ivan Magalhaes
1013Sinclair T AlbaresArgentina2025-06-08Benton, John B Jr UNQUALIFIED87Ioni Bowcher
1014Juan J IturbideRussia2025-06-01Buckley Miller Wright RENEWAL54Elwin Sharvill
1015Wickens U ChuiIndia2025-06-12Dorl, James J Esq UNQUALIFIED28Bernardo Dominic
1016Maisha M GlickItaly2025-06-15Feltz Printing Service NEW96Anna Fali
1017Julie N FlosiFrance2025-05-26Feltz Printing Service NEGOTIATION49Bernardo Dominic
1018Darci V ShinkoArgentina2025-06-15Rousseaux, Michael Esq PROPOSAL45Asiya Javayant
1019Smith F TollnerCanada2025-05-26Benton, John B Jr RENEWAL46Xuxue Feng
1020Murillo F MacleadBrazil2025-05-17Chemel, James L Cpa NEW23Stephen Shaw
1021Johnson V ChuiGermany2025-06-10Chemel, James L Cpa PROPOSAL41Anna Fali
1022Francesco M MorascaFrance2025-05-21King, Christopher A Esq UNQUALIFIED4Stephen Shaw
1023Chavez S OstroskyCanada2025-06-08Rangoni Of Florence PROPOSAL13Anna Fali
1024Arvin Q SaylorsItaly2025-05-30Chanay, Jeffrey A Esq PROPOSAL74Ioni Bowcher
1025Greenwood I VocelkaJapan2025-05-24Rangoni Of Florence NEW34Xuxue Feng
1026Munro F AmigonJapan2025-06-04Morlong Associates PROPOSAL85Onyama Limba
1027James V OstroskyJapan2025-06-02Feiner Bros PROPOSAL9Asiya Javayant
1028Juan H BologniaArgentina2025-06-08Chanay, Jeffrey A Esq NEW64Asiya Javayant
1029Jones O AmigonUnited Kingdom2025-06-02Rangoni Of Florence NEGOTIATION39Asiya Javayant
1030Izzy W VocelkaGermany2025-06-03Rangoni Of Florence NEW71Bernardo Dominic
1031Adams G NickaFrance2025-05-31Feiner Bros NEW83Ivan Magalhaes
1032Smith V ChuiUnited Kingdom2025-05-22Chemel, James L Cpa RENEWAL74Stephen Shaw
1033Jones G PerinGermany2025-06-12Dorl, James J Esq NEGOTIATION2Ioni Bowcher
1034Jeanfrancois D IturbideSpain2025-05-17Chanay, Jeffrey A Esq PROPOSAL75Anna Fali
1035Mayumi N ShinkoUnited Kingdom2025-05-27Printing Dimensions NEGOTIATION52Stephen Shaw
1036Aditya E AlbaresSpain2025-05-28Feiner Bros RENEWAL82Xuxue Feng
1037Smith D VenereIndia2025-05-21Dorl, James J Esq QUALIFIED24Onyama Limba
1038Salvatore K AmigonSpain2025-06-01Chapman, Ross E Esq PROPOSAL22Xuxue Feng
1039Morrow S GauchoJapan2025-06-11Morlong Associates RENEWAL66Amy Elsner
1040Kaitlin R TollnerFrance2025-05-20Benton, John B Jr RENEWAL69Anna Fali
1041Wickens B IturbideFrance2025-05-24Printing Dimensions NEGOTIATION71Stephen Shaw
1042Johnson V DarakjyBrazil2025-05-27Rangoni Of Florence PROPOSAL81Stephen Shaw
1043Tony X FollerIndia2025-05-22Chemel, James L Cpa QUALIFIED71Amy Elsner
1044Misaki M MorascaFrance2025-05-17Dorl, James J Esq RENEWAL59Xuxue Feng
1045Munro Z PaprockiIndia2025-05-18Commercial Press QUALIFIED29Anna Fali
1046Jones T PoquetteRussia2025-06-06Printing Dimensions UNQUALIFIED47Asiya Javayant
1047Greenwood N BologniaBrazil2025-06-14Chemel, James L Cpa RENEWAL44Bernardo Dominic
1048Nicolas Q MacleadItaly2025-05-23Truhlar And Truhlar Attys UNQUALIFIED44Stephen Shaw
1049Tony P PaprockiFrance2025-05-29Feiner Bros UNQUALIFIED31Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Sinclair X SaylorsRussiaAnna Fali PROPOSAL
Arvin K WaycottArgentinaBernardo Dominic NEGOTIATION
Adams Y VocelkaArgentinaAsiya Javayant NEGOTIATION
Rodrigues D FollerRussiaElwin Sharvill QUALIFIED
Darci Y BologniaArgentinaIvan Magalhaes PROPOSAL
Leja Z FollerRussiaAmy Elsner PROPOSAL
Smith V PaprockiAustraliaAnna Fali RENEWAL
Costa P GillianCanadaAmy Elsner PROPOSAL
Silvio J DoeJapanAsiya Javayant NEGOTIATION
James B RoysterArgentinaXuxue Feng PROPOSAL
Ricardo F TollnerBrazilElwin Sharvill NEW
James Q GlickRussiaXuxue Feng PROPOSAL
Morrow S CaudyUnited KingdomAmy Elsner PROPOSAL
Greenwood X WieserRussiaBernardo Dominic NEW
Faith W DilliardUnited KingdomAsiya Javayant NEGOTIATION
Isabel J OldroydBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois J InouyeGermanyXuxue Feng NEGOTIATION
Octavia O FlosiRussiaElwin Sharvill NEGOTIATION
Silvio L SergiArgentinaAsiya Javayant RENEWAL
Juan J StockhamFranceBernardo Dominic NEW
Morrow L MorascaRussiaAsiya Javayant NEGOTIATION
Francesco B SchemmerSpainElwin Sharvill RENEWAL
Aruna E FerenczCanadaOnyama Limba UNQUALIFIED
Ashley Q FigeroaFranceElwin Sharvill NEW
Octavia C InouyeCanadaElwin Sharvill QUALIFIED
Alejandro P CaldareraCanadaAmy Elsner PROPOSAL
Sinclair T StensethGermanyElwin Sharvill NEGOTIATION
Maria Z CaldareraArgentinaIoni Bowcher RENEWAL
Munro V IturbideIndiaIvan Magalhaes UNQUALIFIED
Isabel H GlickFranceIoni Bowcher NEGOTIATION
Juan Z DoeSpainAsiya Javayant NEGOTIATION
Cody G NickaItalyOnyama Limba QUALIFIED
Nicolas D PerinUnited KingdomOnyama Limba QUALIFIED
Leon F FigeroaCanadaIvan Magalhaes RENEWAL
Costa U SergiArgentinaAsiya Javayant QUALIFIED
Cody Y IturbideItalyXuxue Feng RENEWAL
Leja T BriddickSpainElwin Sharvill UNQUALIFIED
Nicolas I FigeroaFranceIvan Magalhaes QUALIFIED
Leon A FollerUnited KingdomIvan Magalhaes QUALIFIED
Izzy N RoysterSpainOnyama Limba NEW
Adams D RoysterGermanyAsiya Javayant RENEWAL
Leja B FlosiGermanyBernardo Dominic NEW
Deepesh D DilliardGermanyStephen Shaw NEW
Mayumi D CaldareraArgentinaIvan Magalhaes NEW
James S AlbaresSpainElwin Sharvill QUALIFIED
David J GillianJapanElwin Sharvill RENEWAL
Octavia F DoeItalyOnyama Limba NEGOTIATION
Maisha E GillianJapanAmy Elsner RENEWAL
Francesco L SlusarskiBrazilAnna Fali RENEWAL
Jones J BriddickAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Jefferson Y Kolmetz
Misaki R Ostrosky
Aruna G Dilliard
Adams M Campain
Mujtaba M Darakjy
Sinclair Y Briddick
Faith H Gillian
Ivar T Schemmer
Sinclair T Kolmetz
Jeanfrancois O Kusko
Salvatore P Briddick
Antonio L Waycott
Murillo O Gillian
Mujtaba K Rim
Arvin W Inouye
Kaitlin F Glick
Nicolas S Amigon
Kaitlin I Royster
Silvio B Shinko
Aika Z Oldroyd
David H Malet
Octavia H Slusarski
Aruna Y Royster
Maisha B Rulapaugh
Faith V Butt
Cody L Butt
Morrow W Albares
Mujtaba M Kusko
Jones V Figeroa
Greenwood X Venere
Octavia X Perin
Ivar A Caudy
Jones B Dilliard
Munro A Gaucho
Izzy C Stockham
Tony N Rulapaugh
Arvin J Briddick
Juan E Campain
Murillo W Bowley
Johnson I Chui
Clifford F Gillian
Izzy O Saylors
Rodrigues R Inouye
Antonio T Nicka
Isabel W Schemmer
Mujtaba A Flosi
Antonio K Kolmetz
Claire U Shinko
Francesco I Chui
Clifford K Caudy
IdCountryDate
1000Germany2025-05-24
1001Canada2025-06-14
1002Japan2025-05-26
1003Spain2025-05-22
1004India2025-05-28
1005United Kingdom2025-05-20
1006Germany2025-05-22
1007France2025-05-24
1008Canada2025-06-03
1009Brazil2025-05-20
1010Germany2025-06-13
1011Japan2025-05-20
1012India2025-05-17
1013United Kingdom2025-05-20
1014India2025-05-31
1015Brazil2025-06-09
1016Australia2025-05-17
1017Japan2025-05-24
1018United Kingdom2025-05-26
1019Spain2025-05-26
1020Australia2025-06-09
1021Canada2025-06-08
1022Spain2025-05-21
1023Brazil2025-05-27
1024Argentina2025-05-31
1025United Kingdom2025-05-22
1026Canada2025-06-02
1027Japan2025-05-30
1028Brazil2025-06-03
1029Italy2025-06-12
1030Russia2025-06-02
1031Japan2025-06-10
1032United Kingdom2025-06-03
1033Australia2025-05-20
1034Italy2025-05-29
1035Australia2025-06-01
1036France2025-06-12
1037Italy2025-06-13
1038Australia2025-05-17
1039India2025-06-14
1040Germany2025-06-13
1041Brazil2025-05-24
1042Spain2025-05-19
1043Canada2025-05-17
1044India2025-05-29
1045United Kingdom2025-06-06
1046Russia2025-05-27
1047Italy2025-05-28
1048Argentina2025-06-12
1049United Kingdom2025-05-19

On-Demand Data

NameIdCountryDate
Octavia Z Shinko1000Russia2025-06-09
Octavia A Garufi1001Germany2025-06-13
Maria D Ruta1002India2025-05-31
Kadeem R Dilliard1003Brazil2025-06-04
Julie Y Ferencz1004Spain2025-06-13
Aika O Caudy1005Australia2025-06-02
Kadeem X Bowley1006Russia2025-06-01
Isabel Q Dilliard1007Argentina2025-05-23
Maisha G Bowley1008Russia2025-06-09
Adams B Albares1009India2025-05-30
Kadeem H Royster1010Germany2025-06-02
Alejandro S Rulapaugh1011United Kingdom2025-06-05
Johnson X Oldroyd1012Italy2025-06-05
Aditya P Gillian1013India2025-05-24
Silvio C Albares1014Brazil2025-05-19
Ashley V Doe1015Germany2025-05-27
Octavia T Stockham1016Canada2025-06-14
Jennifer S Kolmetz1017Russia2025-05-23
Ashley U Darakjy1018Brazil2025-06-03
Chavez T Iturbide1019Russia2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony O WhobreyItalyElwin Sharvill NEW
Maria G MaletSpainXuxue Feng NEW
Silvio Q ShinkoFranceAmy Elsner RENEWAL
Aika X WieserIndiaStephen Shaw RENEWAL
Julie U RimBrazilBernardo Dominic QUALIFIED
Jeanfrancois E KolmetzRussiaIoni Bowcher UNQUALIFIED
Mujtaba H InouyeCanadaXuxue Feng QUALIFIED
Costa F VenereSpainOnyama Limba UNQUALIFIED
Ivar V AmigonArgentinaOnyama Limba NEW
Julie S BriddickSpainStephen Shaw UNQUALIFIED
Arvin G VocelkaRussiaAnna Fali RENEWAL
Costa U BologniaArgentinaAmy Elsner NEGOTIATION
Isabel W NestleUnited KingdomIoni Bowcher QUALIFIED
Mayumi B SergiRussiaElwin Sharvill NEGOTIATION
Ivar R SlusarskiAustraliaAnna Fali QUALIFIED
Costa Z PerinGermanyElwin Sharvill NEGOTIATION
Jefferson X AlbaresItalyIvan Magalhaes NEW
David J OldroydCanadaIvan Magalhaes UNQUALIFIED
Aditya P GarufiItalyAsiya Javayant PROPOSAL
Nicolas S StensethJapanStephen Shaw UNQUALIFIED
Aruna K MorascaBrazilAnna Fali NEGOTIATION
Julie U CaldareraIndiaAsiya Javayant NEW
Aika O VenereFranceOnyama Limba NEW
Jennifer O RimArgentinaAnna Fali NEW
Leon Q WaycottUnited KingdomElwin Sharvill NEGOTIATION
James F WaycottBrazilXuxue Feng NEGOTIATION
Ivar A SergiSpainOnyama Limba NEW
Rodrigues U CaudyJapanStephen Shaw PROPOSAL
Emily L AmigonJapanAsiya Javayant NEGOTIATION
Kaitlin Z SaylorsBrazilElwin Sharvill NEW
Costa I StockhamGermanyStephen Shaw PROPOSAL
Isabel S WaycottAustraliaAsiya Javayant UNQUALIFIED
Maisha E RutaItalyElwin Sharvill RENEWAL
Jefferson J KolmetzSpainOnyama Limba UNQUALIFIED
Tony U ChuiCanadaAmy Elsner QUALIFIED
Adams N InouyeSpainBernardo Dominic QUALIFIED
Izzy R BologniaGermanyAmy Elsner PROPOSAL
Cody N FerenczFranceElwin Sharvill RENEWAL
Ivar D ChuiBrazilXuxue Feng NEGOTIATION
Cody X TollnerFranceBernardo Dominic PROPOSAL

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