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
Johnson H VenereIndiaXuxue Feng NEW
Arvin A StensethJapanXuxue Feng NEGOTIATION
Kadeem I AlbaresAustraliaIoni Bowcher NEGOTIATION
Wickens T SaylorsBrazilOnyama Limba PROPOSAL
Rodrigues S SchemmerGermanyOnyama Limba UNQUALIFIED
Octavia Q TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Misaki Y SaylorsAustraliaAsiya Javayant NEGOTIATION
Alejandro H ShinkoFranceBernardo Dominic PROPOSAL
Jones X VocelkaCanadaIvan Magalhaes NEGOTIATION
Antonio N ButtJapanAnna Fali UNQUALIFIED
Greenwood K CaldareraSpainAsiya Javayant RENEWAL
James V RutaJapanAnna Fali NEW
Arvin J OstroskySpainAmy Elsner RENEWAL
Tony C RoysterBrazilAsiya Javayant UNQUALIFIED
Julie B KuskoBrazilXuxue Feng NEW
Silvio S MaletIndiaElwin Sharvill UNQUALIFIED
Johnson Z SergiBrazilStephen Shaw PROPOSAL
Izzy S StockhamUnited KingdomAnna Fali RENEWAL
David Z SaylorsUnited KingdomAnna Fali PROPOSAL
Leon T WhobreyArgentinaOnyama Limba PROPOSAL
Nicolas C CaldareraFranceIvan Magalhaes QUALIFIED
Aruna H FlosiUnited KingdomIvan Magalhaes PROPOSAL
Antonio V KuskoArgentinaXuxue Feng UNQUALIFIED
Tony F MaletJapanOnyama Limba NEW
Cody M NestleIndiaAsiya Javayant QUALIFIED
Smith F DarakjyItalyXuxue Feng NEGOTIATION
Greenwood D FerenczCanadaIvan Magalhaes NEW
Tony L BriddickSpainIoni Bowcher UNQUALIFIED
Wickens D KolmetzIndiaAnna Fali PROPOSAL
Julie L VocelkaIndiaIvan Magalhaes RENEWAL
Claire B KolmetzJapanAsiya Javayant PROPOSAL
Silvio A KolmetzArgentinaAsiya Javayant RENEWAL
Alejandro A RimIndiaIvan Magalhaes NEW
Leja Z StockhamBrazilElwin Sharvill QUALIFIED
Jennifer W OstroskyIndiaIoni Bowcher QUALIFIED
Darci O NickaArgentinaIvan Magalhaes RENEWAL
Costa W PerinCanadaStephen Shaw UNQUALIFIED
Isabel E SchemmerJapanAsiya Javayant PROPOSAL
Isabel O AmigonJapanIvan Magalhaes NEGOTIATION
Arvin I MarrierFranceAnna Fali RENEWAL
Ashley Q DarakjyIndiaIoni Bowcher RENEWAL
Aika I FerenczSpainElwin Sharvill NEGOTIATION
Johnson W ChuiItalyXuxue Feng QUALIFIED
Deepesh O RoysterGermanyStephen Shaw UNQUALIFIED
Aditya U SlusarskiFranceBernardo Dominic NEW
Ricardo V FollerUnited KingdomOnyama Limba RENEWAL
Mujtaba O StensethGermanyStephen Shaw PROPOSAL
Antonio Q BowleyBrazilElwin Sharvill QUALIFIED
Julie O SlusarskiAustraliaStephen Shaw PROPOSAL
Murillo Y StensethFranceBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore Y RimIndiaIvan Magalhaes QUALIFIED
James X MaletSpainOnyama Limba UNQUALIFIED
Adams H BriddickCanadaElwin Sharvill PROPOSAL
Kaitlin H BologniaCanadaAmy Elsner QUALIFIED
Izzy N BriddickFranceXuxue Feng QUALIFIED
Francesco Y GlickSpainAsiya Javayant PROPOSAL
Ivar C InouyeSpainAmy Elsner RENEWAL
Costa N VocelkaGermanyIoni Bowcher NEW
Kaitlin J AlbaresIndiaXuxue Feng NEGOTIATION
Sinclair W RimBrazilBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey A MorascaArgentina2026-07-15Truhlar And Truhlar Attys QUALIFIED75Elwin Sharvill
1001Claire H ChuiFrance2026-08-06Chapman, Ross E Esq UNQUALIFIED68Anna Fali
1002Ivar V BowleyItaly2026-07-18Truhlar And Truhlar Attys UNQUALIFIED50Xuxue Feng
1003Johnson S CampainAustralia2026-07-15Printing Dimensions QUALIFIED25Xuxue Feng
1004Morrow C AmigonGermany2026-08-04Morlong Associates PROPOSAL23Stephen Shaw
1005Johnson X GillianItaly2026-07-22Printing Dimensions QUALIFIED80Bernardo Dominic
1006Smith P BologniaRussia2026-07-16Rangoni Of Florence QUALIFIED44Xuxue Feng
1007James Y VenereItaly2026-07-13Truhlar And Truhlar Attys PROPOSAL93Ioni Bowcher
1008Maisha T SlusarskiBrazil2026-08-03Commercial Press UNQUALIFIED99Amy Elsner
1009Greenwood W BologniaFrance2026-08-03Chemel, James L Cpa RENEWAL72Ioni Bowcher
1010Kadeem L VenereIndia2026-07-22Feiner Bros RENEWAL56Xuxue Feng
1011Silvio S ChuiArgentina2026-07-13Printing Dimensions QUALIFIED82Elwin Sharvill
1012Ricardo R WhobreyBrazil2026-07-16Feiner Bros NEGOTIATION12Xuxue Feng
1013Ashley W AmigonFrance2026-07-28Benton, John B Jr QUALIFIED57Onyama Limba
1014Jones T GauchoItaly2026-08-04King, Christopher A Esq NEGOTIATION91Amy Elsner
1015Salvatore E MorascaArgentina2026-08-04Feiner Bros UNQUALIFIED44Stephen Shaw
1016Tony G OldroydGermany2026-07-25Benton, John B Jr RENEWAL94Asiya Javayant
1017Ashley L CaudyCanada2026-07-21Chanay, Jeffrey A Esq PROPOSAL50Xuxue Feng
1018Leja D MorascaBrazil2026-07-08Printing Dimensions QUALIFIED69Xuxue Feng
1019Adams X RulapaughAustralia2026-08-01Truhlar And Truhlar Attys NEW56Bernardo Dominic
1020Misaki R OldroydArgentina2026-08-05Dorl, James J Esq RENEWAL41Amy Elsner
1021Maria F ChuiCanada2026-08-04Morlong Associates QUALIFIED89Onyama Limba
1022David Z AmigonSpain2026-08-04Rangoni Of Florence QUALIFIED0Elwin Sharvill
1023Faith Y FlosiIndia2026-07-28Printing Dimensions NEW67Stephen Shaw
1024Arvin R MarrierIndia2026-07-11King, Christopher A Esq UNQUALIFIED47Asiya Javayant
1025Deepesh B OstroskyJapan2026-07-22Truhlar And Truhlar Attys NEW50Asiya Javayant
1026Clifford E AlbaresJapan2026-08-05Printing Dimensions UNQUALIFIED44Onyama Limba
1027Jones A MacleadJapan2026-07-12Rangoni Of Florence RENEWAL64Xuxue Feng
1028Stacey B NickaGermany2026-07-25Truhlar And Truhlar Attys UNQUALIFIED73Stephen Shaw
1029Antonio G WieserUnited Kingdom2026-07-17Feltz Printing Service NEGOTIATION88Xuxue Feng
1030Maria R GillianAustralia2026-07-10Feltz Printing Service QUALIFIED53Amy Elsner
1031Ashley S RimArgentina2026-08-01Rangoni Of Florence NEW8Onyama Limba
1032Salvatore U FigeroaArgentina2026-07-10Rangoni Of Florence PROPOSAL10Asiya Javayant
1033Jefferson F DarakjyItaly2026-08-01Commercial Press NEGOTIATION4Anna Fali
1034Kaitlin H GillianItaly2026-07-13Chemel, James L Cpa NEW33Ioni Bowcher
1035Misaki E CaldareraArgentina2026-08-01Feiner Bros QUALIFIED77Asiya Javayant
1036Mayumi C GauchoUnited Kingdom2026-07-08Morlong Associates NEW42Xuxue Feng
1037Antonio O FlosiGermany2026-07-12Morlong Associates QUALIFIED17Elwin Sharvill
1038Clifford H CampainJapan2026-07-13Chapman, Ross E Esq PROPOSAL44Ivan Magalhaes
1039Costa I MorascaAustralia2026-07-19Buckley Miller Wright QUALIFIED22Amy Elsner
1040Murillo S IturbideFrance2026-08-06Dorl, James J Esq UNQUALIFIED70Ioni Bowcher
1041David X VenereCanada2026-07-11Rangoni Of Florence PROPOSAL35Elwin Sharvill
1042Stacey W GarufiJapan2026-07-14Buckley Miller Wright NEGOTIATION67Anna Fali
1043Aika Q GauchoAustralia2026-07-23Feltz Printing Service UNQUALIFIED37Anna Fali
1044Maisha A DoeSpain2026-07-26Dorl, James J Esq RENEWAL39Ivan Magalhaes
1045Jeanfrancois T InouyeCanada2026-07-25Dorl, James J Esq RENEWAL42Ioni Bowcher
1046Misaki Z AlbaresBrazil2026-07-08Feiner Bros RENEWAL39Anna Fali
1047Aika N StockhamItaly2026-07-30Morlong Associates NEGOTIATION40Elwin Sharvill
1048Ivar V AmigonCanada2026-08-03Benton, John B Jr PROPOSAL75Ivan Magalhaes
1049Aruna A CampainCanada2026-07-31Feiner Bros QUALIFIED24Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
David R TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Misaki D ButtFranceElwin Sharvill UNQUALIFIED
David S BriddickBrazilOnyama Limba NEGOTIATION
Chavez R NickaIndiaAnna Fali RENEWAL
Julie U RimBrazilAmy Elsner PROPOSAL
Claire L ShinkoAustraliaElwin Sharvill UNQUALIFIED
Maria R KolmetzRussiaAnna Fali UNQUALIFIED
Greenwood W WieserSpainXuxue Feng RENEWAL
Arvin M BowleyRussiaOnyama Limba NEW
Smith F PaprockiArgentinaIoni Bowcher UNQUALIFIED
Tony K OstroskyBrazilIoni Bowcher NEW
Nicolas A SaylorsArgentinaXuxue Feng QUALIFIED
Munro X PoquetteIndiaOnyama Limba NEGOTIATION
Chavez G DarakjyRussiaAnna Fali QUALIFIED
Isabel Q VenereCanadaXuxue Feng QUALIFIED
Costa Y DilliardGermanyElwin Sharvill NEW
Kaitlin Y OldroydFranceXuxue Feng RENEWAL
Stacey Y RimBrazilIoni Bowcher QUALIFIED
Alejandro B MaletJapanIvan Magalhaes RENEWAL
Adams C MaletCanadaIoni Bowcher NEGOTIATION
Jones N MorascaFranceOnyama Limba NEGOTIATION
Deepesh R KolmetzUnited KingdomAnna Fali UNQUALIFIED
Nicolas U DilliardAustraliaOnyama Limba NEGOTIATION
Jones Q AlbaresJapanAsiya Javayant RENEWAL
Leja M FigeroaRussiaStephen Shaw RENEWAL
Arvin Y IturbideItalyOnyama Limba NEW
Deepesh E CaldareraBrazilAmy Elsner PROPOSAL
Alejandro P StensethCanadaAnna Fali RENEWAL
Kaitlin Y IturbideBrazilAnna Fali UNQUALIFIED
Leon E BowleyIndiaAmy Elsner PROPOSAL
Costa A StockhamSpainXuxue Feng UNQUALIFIED
Maria V BowleyItalyAnna Fali NEW
Juan C DarakjyIndiaElwin Sharvill NEW
Leja I CaudyFranceOnyama Limba RENEWAL
Adams Q SergiGermanyAsiya Javayant UNQUALIFIED
Arvin K KolmetzJapanOnyama Limba QUALIFIED
David W SchemmerIndiaStephen Shaw UNQUALIFIED
Munro E CaudyCanadaAsiya Javayant UNQUALIFIED
Octavia Q BriddickItalyAnna Fali PROPOSAL
Sinclair O GauchoJapanOnyama Limba QUALIFIED
Silvio C DoeAustraliaXuxue Feng QUALIFIED
Emily A MarrierGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois R GarufiAustraliaBernardo Dominic QUALIFIED
Misaki X GlickArgentinaXuxue Feng QUALIFIED
Jennifer K MaletJapanAmy Elsner RENEWAL
Jennifer W BowleyIndiaAsiya Javayant NEGOTIATION
Alejandro E FerenczAustraliaIoni Bowcher UNQUALIFIED
Chavez I StockhamBrazilBernardo Dominic RENEWAL
Francesco N DoeCanadaBernardo Dominic PROPOSAL
Jeanfrancois W BowleyUnited KingdomOnyama Limba PROPOSAL
Frozen Columns
Name
Izzy Y Gillian
Tony V Vocelka
Sinclair G Shinko
Greenwood A Chui
Julie Z Vocelka
Silvio B Paprocki
Darci G Wieser
Arvin C Caudy
Arvin O Schemmer
Wickens A Venere
Julie Y Ferencz
Kaitlin B Gillian
Francesco U Stockham
Jennifer L Nestle
Isabel J Inouye
Adams O Glick
Darci M Chui
Rodrigues B Rim
Francesco V Sergi
Kadeem Z Stockham
Silvio U Morasca
Salvatore U Marrier
Morrow H Campain
Sinclair P Ruta
Maisha T Doe
Chavez H Royster
Kadeem V Whobrey
Emily R Chui
Munro L Foller
Aditya C Marrier
Kaitlin F Amigon
Aruna L Marrier
Cody Q Venere
Murillo S Waycott
Deepesh B Gillian
Aruna O Darakjy
Maisha J Oldroyd
Costa W Caudy
Jones P Shinko
Sinclair N Vocelka
Jennifer D Paprocki
Mujtaba W Rulapaugh
Antonio J Stockham
Aruna E Amigon
Jennifer D Sergi
Greenwood R Kolmetz
Morrow I Oldroyd
Rodrigues G Foller
Francesco Q Campain
Julie W Saylors
IdCountryDate
1000Germany2026-08-05
1001Brazil2026-07-31
1002Italy2026-07-31
1003Australia2026-07-27
1004Russia2026-07-20
1005Spain2026-08-04
1006United Kingdom2026-08-05
1007Italy2026-07-12
1008Italy2026-07-24
1009Argentina2026-08-06
1010United Kingdom2026-07-28
1011France2026-07-11
1012India2026-07-31
1013Italy2026-08-06
1014Spain2026-07-18
1015Argentina2026-08-02
1016Canada2026-08-03
1017Canada2026-07-23
1018Australia2026-08-02
1019Russia2026-07-18
1020Canada2026-08-04
1021Spain2026-08-04
1022Canada2026-07-13
1023Germany2026-08-05
1024Argentina2026-07-17
1025Japan2026-07-30
1026Argentina2026-07-19
1027Brazil2026-07-23
1028Japan2026-07-31
1029Brazil2026-07-12
1030Germany2026-07-12
1031Italy2026-07-27
1032Spain2026-07-15
1033Germany2026-07-19
1034Brazil2026-07-25
1035Russia2026-07-27
1036Spain2026-07-18
1037France2026-08-05
1038India2026-08-04
1039Argentina2026-07-29
1040Germany2026-07-08
1041France2026-07-21
1042Argentina2026-07-14
1043United Kingdom2026-07-11
1044India2026-07-09
1045Canada2026-07-23
1046Brazil2026-08-01
1047United Kingdom2026-07-11
1048France2026-07-16
1049India2026-07-15

On-Demand Data

NameIdCountryDate
Isabel P Marrier1000Argentina2026-08-01
Maria M Dilliard1001Japan2026-08-04
Ashley M Inouye1002Brazil2026-07-24
Jeanfrancois S Whobrey1003Spain2026-08-06
Jones Q Kusko1004India2026-07-14
Rodrigues O Poquette1005Russia2026-07-08
Jefferson E Poquette1006Brazil2026-07-24
Alejandro K Amigon1007Argentina2026-07-24
Izzy V Malet1008Japan2026-07-30
Aika T Doe1009Spain2026-07-13
Jeanfrancois A Poquette1010Argentina2026-07-09
Aditya Q Dilliard1011Canada2026-07-23
Murillo W Paprocki1012India2026-07-10
Juan P Caudy1013Australia2026-08-06
Juan P Caudy1014Spain2026-07-19
Kaitlin L Caudy1015Italy2026-07-16
Alejandro E Schemmer1016Russia2026-07-13
Juan K Rulapaugh1017Brazil2026-07-28
Francesco H Chui1018Japan2026-07-19
Greenwood M Sergi1019Germany2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David M WhobreyAustraliaXuxue Feng QUALIFIED
Greenwood M BriddickRussiaStephen Shaw UNQUALIFIED
Murillo A WaycottRussiaElwin Sharvill PROPOSAL
Murillo M VocelkaFranceAsiya Javayant NEGOTIATION
Rodrigues J BriddickArgentinaIvan Magalhaes RENEWAL
James T InouyeUnited KingdomIvan Magalhaes NEW
Aruna H RutaGermanyAsiya Javayant RENEWAL
Smith Q MorascaArgentinaIoni Bowcher QUALIFIED
Kadeem R FlosiCanadaAnna Fali NEW
Murillo H PerinIndiaIoni Bowcher NEW
Darci R CaldareraJapanXuxue Feng RENEWAL
Ivar Q IturbideSpainOnyama Limba RENEWAL
Octavia A StensethGermanyAnna Fali PROPOSAL
Aika W GillianBrazilBernardo Dominic PROPOSAL
David Q PoquetteSpainAmy Elsner QUALIFIED
Greenwood C PaprockiSpainOnyama Limba UNQUALIFIED
Morrow S WhobreyArgentinaAsiya Javayant UNQUALIFIED
Izzy J NickaFranceAsiya Javayant QUALIFIED
Antonio B SaylorsItalyAsiya Javayant NEW
Kadeem C StensethCanadaBernardo Dominic PROPOSAL
Francesco A OstroskySpainOnyama Limba QUALIFIED
Jennifer M RoysterArgentinaIoni Bowcher QUALIFIED
Octavia K MaletUnited KingdomStephen Shaw QUALIFIED
Smith K KolmetzJapanIoni Bowcher NEGOTIATION
Clifford D CampainAustraliaOnyama Limba PROPOSAL
Greenwood M FollerIndiaElwin Sharvill NEW
Chavez I VenereJapanAnna Fali PROPOSAL
David B AmigonBrazilAnna Fali QUALIFIED
Octavia G CaudyCanadaXuxue Feng NEGOTIATION
Nicolas T NestleUnited KingdomAsiya Javayant NEW
Deepesh R ShinkoItalyIvan Magalhaes NEGOTIATION
Leja P PerinGermanyIoni Bowcher RENEWAL
Faith J AlbaresJapanIoni Bowcher NEW
Greenwood H WaycottAustraliaIoni Bowcher NEW
Misaki N RimAustraliaBernardo Dominic NEGOTIATION
Chavez U CaudySpainBernardo Dominic RENEWAL
Nicolas T IturbideJapanAnna Fali RENEWAL
Morrow J DarakjyFranceIoni Bowcher RENEWAL
Jefferson T OstroskyIndiaAnna Fali NEGOTIATION
Misaki T OstroskyIndiaAnna Fali NEGOTIATION

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