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 P RimIndiaIoni Bowcher NEW
Johnson S StockhamItalyBernardo Dominic QUALIFIED
James B CaldareraArgentinaElwin Sharvill NEGOTIATION
Maria Z BriddickArgentinaOnyama Limba QUALIFIED
Julie S RimUnited KingdomXuxue Feng QUALIFIED
David W FerenczAustraliaStephen Shaw PROPOSAL
Cody K InouyeFranceIoni Bowcher NEGOTIATION
Jennifer X SlusarskiCanadaStephen Shaw NEW
Chavez Y RulapaughIndiaAsiya Javayant NEGOTIATION
Emily B SchemmerBrazilElwin Sharvill RENEWAL
Rodrigues I MacleadRussiaAmy Elsner PROPOSAL
Sinclair I NestleItalyAsiya Javayant NEGOTIATION
Aika Z CaudyAustraliaIvan Magalhaes NEGOTIATION
Aditya T WhobreyBrazilIoni Bowcher PROPOSAL
Chavez Y GarufiItalyAmy Elsner NEW
Morrow F BowleySpainXuxue Feng QUALIFIED
Tony F GillianJapanBernardo Dominic NEGOTIATION
Aditya R RimUnited KingdomIvan Magalhaes NEGOTIATION
Izzy P KolmetzGermanyOnyama Limba NEW
Silvio B GlickUnited KingdomIvan Magalhaes PROPOSAL
Adams L ChuiArgentinaOnyama Limba NEGOTIATION
Johnson Z RulapaughUnited KingdomAnna Fali NEGOTIATION
Darci O StockhamArgentinaBernardo Dominic NEW
Smith P ButtCanadaAsiya Javayant NEW
Misaki S VenereAustraliaIoni Bowcher QUALIFIED
Johnson B MacleadUnited KingdomXuxue Feng NEGOTIATION
Antonio F TollnerIndiaOnyama Limba UNQUALIFIED
Smith I FlosiAustraliaStephen Shaw RENEWAL
Ricardo W TollnerIndiaStephen Shaw QUALIFIED
Cody R GillianItalyBernardo Dominic NEGOTIATION
Stacey L MarrierAustraliaElwin Sharvill RENEWAL
Sinclair Y DoeSpainAmy Elsner NEGOTIATION
Aika V RoysterItalyBernardo Dominic QUALIFIED
Kadeem F BriddickItalyIvan Magalhaes UNQUALIFIED
Silvio Y TollnerIndiaAnna Fali QUALIFIED
Morrow A DoeIndiaIvan Magalhaes NEW
Kadeem W InouyeIndiaXuxue Feng QUALIFIED
Chavez S OldroydJapanIoni Bowcher QUALIFIED
Silvio T FigeroaGermanyIvan Magalhaes QUALIFIED
Leja P PerinFranceBernardo Dominic QUALIFIED
Salvatore Z PerinSpainElwin Sharvill QUALIFIED
Tony A DilliardBrazilAmy Elsner QUALIFIED
Clifford P GauchoJapanBernardo Dominic UNQUALIFIED
Arvin H KuskoArgentinaElwin Sharvill UNQUALIFIED
Mayumi W FigeroaAustraliaElwin Sharvill RENEWAL
Ashley M CaldareraIndiaAnna Fali PROPOSAL
Kadeem I RimBrazilIvan Magalhaes NEGOTIATION
Ricardo G FigeroaGermanyAsiya Javayant PROPOSAL
Ivar G BologniaCanadaOnyama Limba QUALIFIED
Darci H RutaJapanOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Octavia B FlosiAustraliaAsiya Javayant PROPOSAL
Jeanfrancois G NickaGermanyXuxue Feng PROPOSAL
Jones S RutaUnited KingdomAsiya Javayant QUALIFIED
Ashley C FollerSpainBernardo Dominic RENEWAL
Juan V StensethBrazilOnyama Limba RENEWAL
Misaki U TollnerAustraliaAsiya Javayant PROPOSAL
Antonio F SaylorsIndiaAmy Elsner NEGOTIATION
James V RulapaughRussiaIvan Magalhaes NEW
Chavez V FollerCanadaIoni Bowcher NEW
Rodrigues W SergiCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire U ChuiIndia2025-06-08Feiner Bros NEGOTIATION37Ioni Bowcher
1001Tony T GarufiItaly2025-05-20Rousseaux, Michael Esq UNQUALIFIED67Xuxue Feng
1002Smith G SaylorsJapan2025-05-19Chapman, Ross E Esq NEGOTIATION82Asiya Javayant
1003Kadeem P MaletCanada2025-06-14Feltz Printing Service UNQUALIFIED15Elwin Sharvill
1004Salvatore I SergiRussia2025-06-11Dorl, James J Esq RENEWAL25Onyama Limba
1005Wickens F WhobreySpain2025-05-21Dorl, James J Esq PROPOSAL13Asiya Javayant
1006Murillo M MaletArgentina2025-06-01Feiner Bros QUALIFIED5Asiya Javayant
1007Leja V TollnerJapan2025-06-10Rousseaux, Michael Esq PROPOSAL42Ivan Magalhaes
1008Faith G RutaFrance2025-06-11Rousseaux, Michael Esq NEW56Xuxue Feng
1009Darci O ShinkoBrazil2025-05-25Truhlar And Truhlar Attys RENEWAL65Asiya Javayant
1010Morrow L IturbideAustralia2025-05-30Benton, John B Jr NEGOTIATION64Ioni Bowcher
1011Kaitlin P TollnerIndia2025-06-10Printing Dimensions PROPOSAL58Asiya Javayant
1012Cody P MacleadCanada2025-06-10Buckley Miller Wright QUALIFIED80Ivan Magalhaes
1013Julie R WhobreyAustralia2025-05-30Morlong Associates NEGOTIATION85Xuxue Feng
1014Claire M NestleAustralia2025-06-08Buckley Miller Wright QUALIFIED87Xuxue Feng
1015Sinclair Z FigeroaBrazil2025-05-20Feltz Printing Service QUALIFIED63Elwin Sharvill
1016Aruna Y GlickFrance2025-05-31Dorl, James J Esq RENEWAL10Xuxue Feng
1017Adams D SaylorsUnited Kingdom2025-06-11Chemel, James L Cpa UNQUALIFIED14Onyama Limba
1018Arvin H StensethItaly2025-06-07Dorl, James J Esq PROPOSAL69Onyama Limba
1019Leon Q KuskoIndia2025-05-20Rangoni Of Florence QUALIFIED29Anna Fali
1020Aruna F PaprockiSpain2025-05-17Rangoni Of Florence NEW50Ioni Bowcher
1021Stacey E AmigonUnited Kingdom2025-05-20Morlong Associates NEW69Xuxue Feng
1022Salvatore Z WaycottAustralia2025-06-13Feiner Bros NEW71Amy Elsner
1023Octavia L WaycottRussia2025-06-14Feiner Bros PROPOSAL86Onyama Limba
1024Ivar G GarufiBrazil2025-06-05Commercial Press UNQUALIFIED45Bernardo Dominic
1025Isabel I CampainRussia2025-05-31Morlong Associates NEW82Ioni Bowcher
1026Claire V RoysterBrazil2025-06-12Printing Dimensions QUALIFIED39Asiya Javayant
1027Munro J MorascaItaly2025-05-27Rousseaux, Michael Esq PROPOSAL96Onyama Limba
1028Wickens T NestleGermany2025-06-09Morlong Associates NEGOTIATION24Bernardo Dominic
1029Jennifer C SaylorsIndia2025-06-12Feltz Printing Service UNQUALIFIED68Amy Elsner
1030Alejandro B WieserIndia2025-06-10Truhlar And Truhlar Attys NEW86Anna Fali
1031Ashley O NestleBrazil2025-06-11Chapman, Ross E Esq PROPOSAL37Amy Elsner
1032Jeanfrancois I PaprockiSpain2025-05-20Morlong Associates PROPOSAL17Ivan Magalhaes
1033Mayumi E FlosiJapan2025-06-11Printing Dimensions UNQUALIFIED45Ivan Magalhaes
1034Claire S IturbideRussia2025-06-14Rangoni Of Florence UNQUALIFIED41Asiya Javayant
1035Rodrigues D GauchoGermany2025-05-29Truhlar And Truhlar Attys NEGOTIATION36Asiya Javayant
1036Ivar Y FigeroaArgentina2025-05-31Benton, John B Jr NEW66Elwin Sharvill
1037Costa K MacleadCanada2025-05-23Rangoni Of Florence RENEWAL27Elwin Sharvill
1038Jennifer E PaprockiGermany2025-05-19Rangoni Of Florence QUALIFIED50Onyama Limba
1039Jones G TollnerRussia2025-06-15Rangoni Of Florence PROPOSAL15Stephen Shaw
1040Arvin G BowleySpain2025-05-25Rangoni Of Florence UNQUALIFIED6Amy Elsner
1041Claire N NickaGermany2025-05-21Buckley Miller Wright NEW91Asiya Javayant
1042Maisha U ButtUnited Kingdom2025-06-15Truhlar And Truhlar Attys NEGOTIATION46Xuxue Feng
1043Morrow O AmigonSpain2025-05-24King, Christopher A Esq RENEWAL34Anna Fali
1044Sinclair S OldroydUnited Kingdom2025-06-04Rangoni Of Florence RENEWAL94Asiya Javayant
1045Claire K KuskoCanada2025-06-02Chemel, James L Cpa PROPOSAL98Anna Fali
1046Darci N ShinkoCanada2025-06-05Chapman, Ross E Esq QUALIFIED98Ioni Bowcher
1047Alejandro B PaprockiBrazil2025-06-08Chanay, Jeffrey A Esq PROPOSAL33Ioni Bowcher
1048Wickens C MacleadFrance2025-06-04King, Christopher A Esq NEW13Elwin Sharvill
1049Alejandro B KolmetzGermany2025-06-07Feltz Printing Service NEW44Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues I MaletFranceAsiya Javayant RENEWAL
Aika B FollerArgentinaXuxue Feng NEGOTIATION
Leja Z NestleIndiaXuxue Feng QUALIFIED
Antonio G AmigonFranceStephen Shaw PROPOSAL
Smith X OstroskyIndiaAnna Fali NEW
Jones D RulapaughArgentinaAnna Fali PROPOSAL
Chavez X PoquetteItalyIoni Bowcher NEW
Nicolas Q SergiArgentinaXuxue Feng RENEWAL
Jones Z SaylorsFranceElwin Sharvill NEW
Mujtaba R MaletJapanAsiya Javayant PROPOSAL
Antonio Q RutaCanadaStephen Shaw NEGOTIATION
Antonio T MorascaRussiaAnna Fali PROPOSAL
Murillo R BologniaJapanAnna Fali UNQUALIFIED
Jeanfrancois W BriddickFranceAsiya Javayant PROPOSAL
Misaki R GarufiGermanyOnyama Limba QUALIFIED
Kaitlin O VenereCanadaAsiya Javayant RENEWAL
Salvatore I DarakjyIndiaOnyama Limba NEGOTIATION
Kaitlin A OldroydCanadaBernardo Dominic RENEWAL
Izzy O ButtGermanyStephen Shaw NEW
Arvin U AmigonJapanIvan Magalhaes RENEWAL
Mujtaba L PerinCanadaIoni Bowcher PROPOSAL
Clifford D ChuiSpainIoni Bowcher RENEWAL
Stacey D BriddickBrazilIvan Magalhaes RENEWAL
Misaki N StensethRussiaAnna Fali PROPOSAL
Faith S SchemmerFranceElwin Sharvill NEGOTIATION
Jeanfrancois O SergiJapanBernardo Dominic NEGOTIATION
Jeanfrancois F NickaAustraliaOnyama Limba QUALIFIED
Johnson S ShinkoJapanElwin Sharvill NEW
Alejandro K FollerBrazilStephen Shaw NEW
Munro B CampainCanadaBernardo Dominic UNQUALIFIED
Chavez V DarakjyAustraliaAsiya Javayant PROPOSAL
Murillo A StockhamArgentinaIvan Magalhaes UNQUALIFIED
Johnson P MorascaIndiaIvan Magalhaes UNQUALIFIED
Emily X RulapaughGermanyIoni Bowcher QUALIFIED
Sinclair Y RimArgentinaBernardo Dominic NEW
Murillo Y RimFranceAsiya Javayant PROPOSAL
Silvio L WieserJapanIoni Bowcher RENEWAL
Kaitlin W WaycottAustraliaAmy Elsner PROPOSAL
Jeanfrancois Q VenereAustraliaIvan Magalhaes NEGOTIATION
Jefferson H CampainUnited KingdomAmy Elsner NEGOTIATION
Jones G KuskoFranceStephen Shaw QUALIFIED
Maisha J MarrierArgentinaBernardo Dominic PROPOSAL
Alejandro K TollnerJapanAnna Fali PROPOSAL
Ivar M IturbideArgentinaIoni Bowcher NEW
Isabel E BriddickBrazilElwin Sharvill QUALIFIED
Nicolas C BriddickIndiaXuxue Feng PROPOSAL
Isabel I NickaAustraliaXuxue Feng PROPOSAL
David X ShinkoCanadaOnyama Limba QUALIFIED
Wickens M KuskoCanadaOnyama Limba UNQUALIFIED
Maisha H WieserRussiaStephen Shaw RENEWAL
Frozen Columns
Name
David M Stockham
Jeanfrancois M Ruta
Tony L Maclead
Smith M Garufi
Francesco E Bolognia
Maisha D Gaucho
Izzy T Malet
Sinclair U Rim
Juan C Iturbide
Maisha W Maclead
Cody Z Stockham
Claire X Sergi
Salvatore A Schemmer
Aika M Gaucho
Antonio R Campain
Adams U Caldarera
Sinclair A Oldroyd
Izzy Y Figeroa
Faith T Dilliard
Jennifer L Doe
Munro P Ruta
Alejandro G Morasca
Jeanfrancois B Chui
Greenwood D Shinko
Ricardo O Malet
Leja X Paprocki
Jones B Stockham
Kaitlin I Rim
James W Royster
Julie G Butt
Cody O Marrier
Jefferson Z Vocelka
David V Stockham
Aditya B Perin
Izzy O Perin
Jennifer G Dilliard
Johnson E Wieser
Claire I Gaucho
Julie B Chui
Faith R Schemmer
Kadeem Z Marrier
Chavez L Oldroyd
Murillo Y Marrier
Maisha B Ostrosky
Faith J Rulapaugh
Rodrigues A Morasca
Jeanfrancois V Morasca
Maria K Bowley
Stacey N Ferencz
Darci P Wieser
IdCountryDate
1000Canada2025-05-20
1001Japan2025-05-27
1002Brazil2025-05-20
1003Spain2025-05-17
1004France2025-06-03
1005Argentina2025-06-08
1006Brazil2025-06-14
1007Brazil2025-06-02
1008Germany2025-06-12
1009Brazil2025-05-21
1010Argentina2025-05-31
1011United Kingdom2025-05-31
1012Germany2025-05-23
1013Italy2025-06-07
1014Brazil2025-05-20
1015Japan2025-05-21
1016Argentina2025-05-26
1017Germany2025-05-29
1018France2025-06-08
1019United Kingdom2025-05-29
1020France2025-06-09
1021India2025-06-04
1022Canada2025-05-29
1023Russia2025-05-25
1024Australia2025-06-11
1025Russia2025-05-21
1026Spain2025-05-19
1027Germany2025-05-26
1028Spain2025-05-20
1029Australia2025-06-12
1030Argentina2025-05-25
1031Germany2025-05-30
1032Russia2025-06-08
1033Spain2025-06-11
1034Canada2025-06-12
1035United Kingdom2025-05-22
1036Canada2025-06-13
1037India2025-06-06
1038Brazil2025-06-08
1039Spain2025-05-25
1040United Kingdom2025-05-23
1041Argentina2025-06-05
1042Italy2025-05-21
1043Brazil2025-06-09
1044Brazil2025-05-27
1045Japan2025-06-07
1046Japan2025-05-22
1047United Kingdom2025-05-21
1048India2025-06-14
1049Argentina2025-06-09

On-Demand Data

NameIdCountryDate
Murillo S Poquette1000United Kingdom2025-05-26
Nicolas C Tollner1001Brazil2025-06-05
Rodrigues V Whobrey1002Spain2025-05-27
Julie G Caldarera1003Australia2025-06-09
Emily C Poquette1004Italy2025-05-19
James U Bowley1005Argentina2025-05-27
Alejandro Q Garufi1006Spain2025-06-03
Aditya C Caldarera1007Brazil2025-06-09
Jones M Bowley1008France2025-06-01
Chavez E Rim1009Japan2025-06-07
Darci U Slusarski1010India2025-06-14
Jones A Shinko1011India2025-06-15
Nicolas N Glick1012Brazil2025-05-28
James K Whobrey1013India2025-06-09
Deepesh A Waycott1014Germany2025-06-12
Aditya Z Royster1015Spain2025-06-11
Mujtaba L Stenseth1016Italy2025-05-31
Deepesh L Malet1017Japan2025-05-18
Johnson S Paprocki1018Brazil2025-06-12
Morrow A Wieser1019Japan2025-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily N RoysterIndiaAnna Fali RENEWAL
Silvio L KolmetzFranceIvan Magalhaes NEW
Nicolas Q KuskoGermanyElwin Sharvill NEGOTIATION
Johnson A GlickSpainXuxue Feng RENEWAL
Leja I DarakjyGermanyElwin Sharvill NEGOTIATION
David N WhobreyArgentinaIoni Bowcher RENEWAL
Leja Q TollnerCanadaAsiya Javayant UNQUALIFIED
Arvin A InouyeUnited KingdomIvan Magalhaes NEW
James U FollerRussiaAnna Fali NEGOTIATION
Juan A DarakjyGermanyStephen Shaw NEGOTIATION
Isabel W TollnerGermanyStephen Shaw PROPOSAL
Ricardo J FerenczFranceElwin Sharvill PROPOSAL
Leja Z CampainAustraliaIoni Bowcher QUALIFIED
Stacey A FollerBrazilIvan Magalhaes UNQUALIFIED
Rodrigues S NestleIndiaBernardo Dominic UNQUALIFIED
Rodrigues Q OstroskySpainAnna Fali PROPOSAL
James S GarufiSpainOnyama Limba NEW
Mayumi S VenereJapanAsiya Javayant RENEWAL
Nicolas X MacleadCanadaAnna Fali PROPOSAL
Greenwood S TollnerSpainIoni Bowcher QUALIFIED
Ricardo O VenereCanadaXuxue Feng PROPOSAL
Claire F PerinArgentinaBernardo Dominic PROPOSAL
Ricardo W PaprockiIndiaOnyama Limba UNQUALIFIED
Jennifer S GarufiJapanIvan Magalhaes UNQUALIFIED
Sinclair N VenereGermanyStephen Shaw NEW
Greenwood V RimSpainOnyama Limba PROPOSAL
Jennifer Y CaudyItalyStephen Shaw UNQUALIFIED
Munro I FerenczSpainOnyama Limba UNQUALIFIED
Cody M KuskoFranceOnyama Limba RENEWAL
Ashley F VocelkaFranceStephen Shaw NEW
Jeanfrancois R DarakjyAustraliaBernardo Dominic NEGOTIATION
Aika P NickaCanadaAmy Elsner QUALIFIED
Wickens Y ShinkoAustraliaBernardo Dominic QUALIFIED
Clifford F OstroskyItalyIvan Magalhaes NEW
Rodrigues H GauchoRussiaAsiya Javayant RENEWAL
Arvin W RutaItalyIvan Magalhaes RENEWAL
Nicolas A MacleadItalyAmy Elsner UNQUALIFIED
Aika B ShinkoBrazilAsiya Javayant NEW
Octavia H BowleyArgentinaAsiya Javayant NEGOTIATION
Leon Z RulapaughRussiaStephen Shaw NEW

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