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
Isabel Y CaudyArgentinaIoni Bowcher QUALIFIED
Alejandro J FigeroaCanadaStephen Shaw QUALIFIED
Juan J WaycottAustraliaStephen Shaw NEGOTIATION
Francesco D MorascaJapanElwin Sharvill UNQUALIFIED
David I PaprockiJapanBernardo Dominic QUALIFIED
Maisha V DilliardItalyXuxue Feng NEGOTIATION
James U DarakjyGermanyBernardo Dominic NEGOTIATION
Jones J RoysterBrazilXuxue Feng UNQUALIFIED
Jeanfrancois U BowleyArgentinaElwin Sharvill QUALIFIED
Leja J GlickItalyBernardo Dominic QUALIFIED
Tony B RutaSpainXuxue Feng RENEWAL
Mujtaba X FollerIndiaAsiya Javayant NEW
Alejandro L AmigonGermanyIoni Bowcher QUALIFIED
Leja F MarrierItalyXuxue Feng UNQUALIFIED
Ashley H DilliardAustraliaIoni Bowcher NEGOTIATION
Arvin X MaletJapanOnyama Limba RENEWAL
Rodrigues O AlbaresIndiaIoni Bowcher QUALIFIED
Ivar K PaprockiFranceXuxue Feng QUALIFIED
Aruna F MaletSpainXuxue Feng NEGOTIATION
Rodrigues W AmigonCanadaIoni Bowcher RENEWAL
Sinclair Z WieserCanadaAsiya Javayant RENEWAL
Clifford Q AlbaresArgentinaStephen Shaw PROPOSAL
Ashley S IturbideCanadaXuxue Feng NEW
James H StensethRussiaStephen Shaw QUALIFIED
Salvatore Q CaudyItalyBernardo Dominic UNQUALIFIED
Ashley F MaletJapanIoni Bowcher RENEWAL
Leon X WieserGermanyAsiya Javayant PROPOSAL
Ashley I WaycottBrazilStephen Shaw NEGOTIATION
Juan N FollerFranceElwin Sharvill QUALIFIED
Mujtaba M RutaBrazilAnna Fali NEW
Arvin V StockhamSpainXuxue Feng QUALIFIED
Isabel R DilliardBrazilAmy Elsner RENEWAL
Darci B MaletSpainElwin Sharvill NEGOTIATION
Ivar W RimSpainIoni Bowcher UNQUALIFIED
Maria F RoysterJapanAnna Fali PROPOSAL
Isabel L SlusarskiIndiaXuxue Feng QUALIFIED
Ivar I CampainSpainIvan Magalhaes RENEWAL
Morrow H GillianGermanyOnyama Limba QUALIFIED
Adams I MacleadAustraliaIvan Magalhaes QUALIFIED
Ivar B VocelkaGermanyAsiya Javayant RENEWAL
Murillo W RulapaughRussiaAmy Elsner UNQUALIFIED
Costa E MarrierJapanElwin Sharvill UNQUALIFIED
Clifford O OldroydArgentinaIoni Bowcher NEW
Deepesh C KolmetzRussiaStephen Shaw QUALIFIED
Sinclair H AmigonIndiaAsiya Javayant UNQUALIFIED
Mayumi Q StockhamUnited KingdomStephen Shaw NEGOTIATION
Maria B InouyeBrazilBernardo Dominic PROPOSAL
Smith A InouyeAustraliaElwin Sharvill UNQUALIFIED
David F CaudyArgentinaOnyama Limba UNQUALIFIED
Jones I OldroydJapanElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha P OldroydJapanIoni Bowcher NEGOTIATION
Aditya Z WaycottIndiaIvan Magalhaes RENEWAL
Misaki Y CaudyAustraliaAnna Fali QUALIFIED
Sinclair F GlickJapanAnna Fali NEW
Alejandro N SlusarskiAustraliaAmy Elsner PROPOSAL
Deepesh L FollerFranceIvan Magalhaes RENEWAL
Claire C BriddickSpainStephen Shaw RENEWAL
Clifford B RulapaughJapanOnyama Limba UNQUALIFIED
Isabel A KuskoSpainElwin Sharvill UNQUALIFIED
Arvin J ChuiFranceIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo V InouyeBrazil2026-07-26Commercial Press UNQUALIFIED43Amy Elsner
1001Aditya Y SlusarskiGermany2026-08-03Commercial Press NEGOTIATION65Onyama Limba
1002Maisha P InouyeSpain2026-08-11Chanay, Jeffrey A Esq PROPOSAL78Asiya Javayant
1003Johnson Y CaldareraItaly2026-08-05Dorl, James J Esq QUALIFIED50Elwin Sharvill
1004Alejandro M RimUnited Kingdom2026-07-29Truhlar And Truhlar Attys PROPOSAL99Ioni Bowcher
1005Deepesh N OstroskyUnited Kingdom2026-08-07Chemel, James L Cpa QUALIFIED0Bernardo Dominic
1006Juan A GarufiBrazil2026-07-22King, Christopher A Esq RENEWAL7Bernardo Dominic
1007Misaki K CaldareraUnited Kingdom2026-07-23Chemel, James L Cpa NEW64Amy Elsner
1008Alejandro H MorascaUnited Kingdom2026-08-15Chemel, James L Cpa PROPOSAL5Anna Fali
1009Alejandro Y DarakjyUnited Kingdom2026-08-02Rangoni Of Florence PROPOSAL62Xuxue Feng
1010David A KuskoFrance2026-08-12Feiner Bros RENEWAL89Asiya Javayant
1011Greenwood J CampainAustralia2026-07-21Dorl, James J Esq QUALIFIED89Anna Fali
1012Jones U IturbideUnited Kingdom2026-08-04Rangoni Of Florence QUALIFIED62Xuxue Feng
1013Leon M CampainCanada2026-07-24Buckley Miller Wright PROPOSAL79Bernardo Dominic
1014Costa O SlusarskiJapan2026-08-06Chapman, Ross E Esq UNQUALIFIED50Anna Fali
1015Mayumi L AmigonItaly2026-07-24Dorl, James J Esq PROPOSAL31Onyama Limba
1016Morrow V KolmetzBrazil2026-08-06Rousseaux, Michael Esq UNQUALIFIED43Stephen Shaw
1017Aika T SlusarskiGermany2026-08-09Buckley Miller Wright QUALIFIED85Elwin Sharvill
1018Mujtaba H TollnerAustralia2026-07-24Commercial Press NEGOTIATION15Amy Elsner
1019Nicolas J WieserItaly2026-08-02Truhlar And Truhlar Attys QUALIFIED46Xuxue Feng
1020Jones G MaletFrance2026-07-20Chapman, Ross E Esq RENEWAL27Onyama Limba
1021Aditya I PaprockiIndia2026-08-13Buckley Miller Wright NEW13Ioni Bowcher
1022Tony P AmigonIndia2026-07-31Chapman, Ross E Esq NEW44Asiya Javayant
1023Johnson W CampainFrance2026-08-05Benton, John B Jr NEGOTIATION7Asiya Javayant
1024Octavia N DarakjySpain2026-07-19Dorl, James J Esq UNQUALIFIED18Ioni Bowcher
1025Wickens L MaletBrazil2026-08-11Chapman, Ross E Esq NEW10Onyama Limba
1026Jefferson T PoquetteCanada2026-08-03Commercial Press QUALIFIED28Asiya Javayant
1027Aika Z AmigonArgentina2026-08-01Feiner Bros UNQUALIFIED30Stephen Shaw
1028Antonio Q MarrierSpain2026-07-22Rousseaux, Michael Esq NEW69Asiya Javayant
1029Tony N FerenczIndia2026-08-13Chapman, Ross E Esq PROPOSAL14Bernardo Dominic
1030Isabel H OstroskyJapan2026-07-22Chapman, Ross E Esq RENEWAL93Amy Elsner
1031Leja Y SlusarskiJapan2026-08-14Feltz Printing Service NEGOTIATION4Stephen Shaw
1032Tony I VocelkaUnited Kingdom2026-08-06Feltz Printing Service PROPOSAL89Asiya Javayant
1033Jefferson I AlbaresRussia2026-08-01Chapman, Ross E Esq NEGOTIATION11Asiya Javayant
1034Cody C RulapaughArgentina2026-07-23Feiner Bros QUALIFIED57Ivan Magalhaes
1035Aruna G PoquetteItaly2026-07-31Rangoni Of Florence PROPOSAL37Asiya Javayant
1036Jefferson H ChuiGermany2026-07-31Rousseaux, Michael Esq QUALIFIED20Elwin Sharvill
1037Juan P RulapaughGermany2026-08-15Benton, John B Jr RENEWAL51Asiya Javayant
1038Arvin P BologniaGermany2026-07-19Dorl, James J Esq QUALIFIED67Ioni Bowcher
1039Kaitlin J SchemmerCanada2026-07-30Benton, John B Jr RENEWAL41Asiya Javayant
1040Misaki X OldroydRussia2026-07-18King, Christopher A Esq UNQUALIFIED5Asiya Javayant
1041Juan N CaudyFrance2026-07-31Buckley Miller Wright UNQUALIFIED69Asiya Javayant
1042Morrow S StensethUnited Kingdom2026-07-25Dorl, James J Esq RENEWAL12Ivan Magalhaes
1043Mujtaba G MaletGermany2026-08-13Rousseaux, Michael Esq NEGOTIATION70Stephen Shaw
1044Silvio L SergiBrazil2026-07-29Chapman, Ross E Esq NEW75Stephen Shaw
1045Sinclair R SaylorsRussia2026-07-21Rangoni Of Florence PROPOSAL16Elwin Sharvill
1046Juan W ChuiCanada2026-07-22Rangoni Of Florence NEGOTIATION62Elwin Sharvill
1047Munro N PaprockiAustralia2026-08-10Morlong Associates NEGOTIATION40Asiya Javayant
1048Clifford Y BologniaIndia2026-08-13Feiner Bros UNQUALIFIED13Amy Elsner
1049Juan O VocelkaArgentina2026-08-14Feiner Bros PROPOSAL50Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Francesco I SaylorsBrazilElwin Sharvill NEW
Jeanfrancois I DoeItalyAmy Elsner NEW
Julie O VenereCanadaOnyama Limba NEGOTIATION
Aika W FlosiGermanyAnna Fali PROPOSAL
Juan W CampainIndiaAnna Fali PROPOSAL
Tony Y RutaFranceXuxue Feng QUALIFIED
Antonio G InouyeGermanyXuxue Feng QUALIFIED
Clifford O FlosiGermanyIvan Magalhaes UNQUALIFIED
Antonio L CaudyGermanyAnna Fali NEW
Greenwood A BowleyAustraliaIvan Magalhaes QUALIFIED
Johnson E MaletGermanyAnna Fali RENEWAL
Jefferson V GarufiIndiaBernardo Dominic QUALIFIED
Kaitlin D IturbideCanadaAsiya Javayant QUALIFIED
Nicolas B KuskoRussiaAsiya Javayant QUALIFIED
Ashley D StensethArgentinaStephen Shaw QUALIFIED
Emily V GauchoSpainElwin Sharvill RENEWAL
Jones F DilliardSpainIvan Magalhaes QUALIFIED
Kaitlin M FlosiSpainAnna Fali NEGOTIATION
James G MaletItalyStephen Shaw PROPOSAL
Izzy W PoquetteJapanAsiya Javayant NEGOTIATION
Kaitlin H NestleFranceIvan Magalhaes QUALIFIED
Jefferson S CampainFranceAsiya Javayant UNQUALIFIED
Morrow L RoysterItalyIoni Bowcher QUALIFIED
Clifford P WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Adams S FollerFranceIoni Bowcher NEGOTIATION
Mujtaba G PaprockiArgentinaXuxue Feng NEW
Stacey V RoysterArgentinaBernardo Dominic RENEWAL
Rodrigues K PaprockiJapanIvan Magalhaes QUALIFIED
Sinclair T ShinkoRussiaBernardo Dominic NEW
Ricardo B InouyeJapanAsiya Javayant QUALIFIED
Stacey Z DarakjyArgentinaAsiya Javayant UNQUALIFIED
Claire Z PaprockiUnited KingdomElwin Sharvill RENEWAL
Wickens K ButtFranceAmy Elsner NEGOTIATION
Emily J ButtFranceAsiya Javayant NEGOTIATION
Izzy O GillianJapanAsiya Javayant QUALIFIED
Darci R PerinArgentinaBernardo Dominic QUALIFIED
Clifford Z SaylorsArgentinaXuxue Feng QUALIFIED
Emily U RimCanadaStephen Shaw NEW
Juan M GillianAustraliaAsiya Javayant NEW
Adams J ChuiGermanyBernardo Dominic RENEWAL
Cody D SaylorsRussiaAnna Fali PROPOSAL
Jennifer D AmigonCanadaAmy Elsner PROPOSAL
Maria X OstroskyJapanAnna Fali NEGOTIATION
Arvin S GarufiRussiaBernardo Dominic PROPOSAL
Aditya S OstroskyCanadaAmy Elsner RENEWAL
Sinclair N PaprockiItalyBernardo Dominic UNQUALIFIED
Alejandro C RutaIndiaBernardo Dominic UNQUALIFIED
Izzy Q MacleadFranceIvan Magalhaes NEW
James X OstroskyArgentinaStephen Shaw RENEWAL
Aditya C CaldareraItalyAsiya Javayant NEW
Frozen Columns
Name
Darci C Wieser
Emily F Ruta
Salvatore D Whobrey
Darci I Bolognia
Aditya Z Ostrosky
Jennifer T Nestle
Leon O Ostrosky
Juan C Dilliard
Jennifer C Iturbide
Mayumi K Whobrey
Izzy K Wieser
Silvio V Flosi
Ivar R Nicka
Antonio F Malet
David Q Rim
Ricardo S Butt
Jeanfrancois J Morasca
Clifford X Malet
David W Campain
Munro G Bowley
Emily F Tollner
Ashley Z Morasca
Claire U Tollner
Ashley R Poquette
Wickens F Bolognia
Emily I Poquette
Maisha S Malet
Cody Q Poquette
Deepesh P Maclead
Arvin M Nestle
Faith D Vocelka
Jones Q Whobrey
Antonio Z Gillian
Jones H Schemmer
Faith D Maclead
Darci X Nestle
Emily R Shinko
Mujtaba O Ferencz
Francesco I Venere
Jones D Waycott
Jones W Wieser
Mayumi G Oldroyd
Morrow H Wieser
Morrow Q Campain
Aditya E Gillian
Jefferson F Stenseth
Faith P Whobrey
Murillo O Amigon
Smith O Shinko
Tony R Darakjy
IdCountryDate
1000Spain2026-08-06
1001Russia2026-07-24
1002Germany2026-07-20
1003India2026-08-06
1004Canada2026-08-08
1005France2026-08-14
1006Italy2026-07-22
1007Australia2026-07-28
1008Germany2026-07-27
1009Brazil2026-07-20
1010France2026-08-12
1011Italy2026-07-23
1012Spain2026-07-25
1013India2026-07-20
1014France2026-07-30
1015France2026-07-24
1016Australia2026-07-24
1017Italy2026-07-28
1018Russia2026-07-31
1019Spain2026-07-31
1020Argentina2026-07-18
1021Brazil2026-08-12
1022Italy2026-08-02
1023Spain2026-07-31
1024Brazil2026-08-11
1025Japan2026-08-04
1026Japan2026-08-07
1027Russia2026-07-29
1028France2026-07-20
1029Argentina2026-07-21
1030Germany2026-08-13
1031Brazil2026-07-23
1032Canada2026-08-01
1033Argentina2026-07-23
1034India2026-08-07
1035India2026-07-24
1036Russia2026-08-14
1037Germany2026-07-25
1038Japan2026-07-23
1039India2026-08-06
1040Argentina2026-08-01
1041United Kingdom2026-07-19
1042United Kingdom2026-07-28
1043Australia2026-07-21
1044Japan2026-08-08
1045Italy2026-08-12
1046Spain2026-08-02
1047Canada2026-07-17
1048Italy2026-08-08
1049Japan2026-07-24

On-Demand Data

NameIdCountryDate
Isabel T Foller1000Japan2026-07-19
Isabel S Inouye1001Italy2026-07-31
Leja E Perin1002Spain2026-08-14
Stacey C Iturbide1003Russia2026-07-28
Faith N Vocelka1004Japan2026-08-01
Darci B Wieser1005Russia2026-08-11
Faith J Campain1006Spain2026-08-03
Morrow E Albares1007Germany2026-07-29
Ricardo W Albares1008Spain2026-08-08
Misaki Q Foller1009Argentina2026-07-17
Kadeem B Waycott1010Brazil2026-07-18
Aruna Q Gillian1011Canada2026-07-20
Rodrigues Z Royster1012Germany2026-08-09
Maisha Q Poquette1013United Kingdom2026-07-25
Adams O Darakjy1014Italy2026-07-26
Clifford H Figeroa1015France2026-08-10
Leja T Vocelka1016Russia2026-08-04
James W Dilliard1017United Kingdom2026-07-24
Ivar W Gaucho1018Russia2026-07-17
Ashley L Campain1019Australia2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha U ChuiAustraliaOnyama Limba RENEWAL
Wickens N CaldareraBrazilElwin Sharvill RENEWAL
Sinclair M MorascaUnited KingdomBernardo Dominic QUALIFIED
Arvin H AlbaresGermanyStephen Shaw NEW
Misaki R CampainArgentinaIoni Bowcher NEGOTIATION
Jennifer M GillianItalyElwin Sharvill PROPOSAL
Aditya L OstroskySpainStephen Shaw UNQUALIFIED
Juan C BologniaItalyAsiya Javayant UNQUALIFIED
Jennifer E GillianFranceIoni Bowcher UNQUALIFIED
Munro N AmigonIndiaAsiya Javayant PROPOSAL
Silvio F DilliardUnited KingdomAsiya Javayant RENEWAL
Deepesh Z DoeRussiaAsiya Javayant NEW
Costa D GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Johnson G ChuiSpainXuxue Feng NEW
Ivar H MacleadRussiaXuxue Feng QUALIFIED
Cody A SaylorsAustraliaAsiya Javayant PROPOSAL
Murillo E RutaGermanyAmy Elsner RENEWAL
Silvio G RulapaughFranceElwin Sharvill RENEWAL
Salvatore E AmigonArgentinaXuxue Feng UNQUALIFIED
David T MaletRussiaBernardo Dominic PROPOSAL
Greenwood N PerinBrazilAmy Elsner PROPOSAL
Francesco W VocelkaRussiaIoni Bowcher UNQUALIFIED
Isabel M CaudyUnited KingdomAmy Elsner UNQUALIFIED
Faith F IturbideUnited KingdomAsiya Javayant NEGOTIATION
Kadeem F VocelkaAustraliaOnyama Limba NEGOTIATION
Ivar U CampainFranceElwin Sharvill NEW
Wickens E KolmetzSpainBernardo Dominic NEGOTIATION
Aruna W GauchoCanadaIvan Magalhaes NEGOTIATION
Silvio Z InouyeUnited KingdomBernardo Dominic QUALIFIED
Leja P StensethGermanyXuxue Feng NEGOTIATION
Johnson B DilliardSpainIoni Bowcher PROPOSAL
Mayumi J TollnerIndiaStephen Shaw QUALIFIED
Francesco N AmigonJapanXuxue Feng RENEWAL
Stacey Z VenereItalyAnna Fali QUALIFIED
Jones Y KuskoGermanyElwin Sharvill RENEWAL
Antonio E MaletCanadaElwin Sharvill RENEWAL
Chavez T StockhamFranceOnyama Limba UNQUALIFIED
Leon K MaletCanadaOnyama Limba UNQUALIFIED
Costa V BowleyGermanyAnna Fali UNQUALIFIED
Alejandro M IturbideGermanyIoni Bowcher RENEWAL

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