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
Julie S PerinUnited KingdomAsiya Javayant PROPOSAL
Aruna Y SergiSpainStephen Shaw NEGOTIATION
Antonio U CaldareraFranceBernardo Dominic QUALIFIED
Mujtaba Z RutaSpainBernardo Dominic NEGOTIATION
James U SergiGermanyBernardo Dominic PROPOSAL
Darci V KolmetzBrazilOnyama Limba UNQUALIFIED
Tony Y AmigonItalyElwin Sharvill PROPOSAL
Greenwood R CaudyIndiaStephen Shaw NEW
Emily B WaycottUnited KingdomOnyama Limba RENEWAL
Aditya Z PerinAustraliaAmy Elsner PROPOSAL
Stacey Z BowleyJapanAmy Elsner RENEWAL
Julie C RoysterItalyBernardo Dominic NEW
Silvio Z AmigonJapanAsiya Javayant NEGOTIATION
Tony U VocelkaUnited KingdomIoni Bowcher QUALIFIED
Jefferson F ShinkoCanadaXuxue Feng QUALIFIED
Maria K PoquetteUnited KingdomOnyama Limba RENEWAL
Francesco C GillianFranceXuxue Feng NEW
Johnson P GlickItalyAmy Elsner UNQUALIFIED
Jeanfrancois W DoeCanadaAnna Fali NEW
Nicolas M GlickAustraliaAmy Elsner UNQUALIFIED
Jefferson F StensethAustraliaElwin Sharvill NEW
Costa F GillianGermanyIoni Bowcher NEW
Misaki R AlbaresUnited KingdomAnna Fali QUALIFIED
Maria Z SergiAustraliaOnyama Limba RENEWAL
Mujtaba X CampainRussiaAsiya Javayant UNQUALIFIED
Julie T WieserCanadaXuxue Feng PROPOSAL
Smith M WaycottArgentinaAsiya Javayant RENEWAL
Jeanfrancois V WieserItalyXuxue Feng UNQUALIFIED
Jones V WhobreyCanadaAsiya Javayant PROPOSAL
Jefferson L MacleadArgentinaStephen Shaw UNQUALIFIED
Morrow I SlusarskiGermanyIvan Magalhaes PROPOSAL
Ivar U GarufiUnited KingdomIoni Bowcher QUALIFIED
Jones W GlickIndiaXuxue Feng NEW
Munro G PaprockiFranceAsiya Javayant NEW
Misaki Z ChuiSpainIoni Bowcher RENEWAL
Jennifer Q FollerBrazilOnyama Limba NEW
Chavez H GlickIndiaBernardo Dominic UNQUALIFIED
Salvatore P PoquetteUnited KingdomAsiya Javayant NEW
Rodrigues W NickaArgentinaOnyama Limba QUALIFIED
Juan H ShinkoSpainXuxue Feng UNQUALIFIED
David Y RutaItalyAsiya Javayant PROPOSAL
Nicolas J GauchoItalyAsiya Javayant UNQUALIFIED
Octavia T ButtUnited KingdomIoni Bowcher NEGOTIATION
Juan A FollerBrazilAmy Elsner UNQUALIFIED
Chavez E PaprockiUnited KingdomAmy Elsner PROPOSAL
Aika A IturbideFranceAsiya Javayant NEGOTIATION
Smith C WaycottIndiaAsiya Javayant UNQUALIFIED
Munro A MacleadRussiaXuxue Feng PROPOSAL
Ivar V WhobreyGermanyAnna Fali QUALIFIED
Mayumi U GlickBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues Q SchemmerFranceIoni Bowcher RENEWAL
Alejandro N AlbaresCanadaElwin Sharvill RENEWAL
Ricardo T BriddickFranceElwin Sharvill NEGOTIATION
Francesco D ButtFranceAnna Fali RENEWAL
Ricardo X CaudyArgentinaIvan Magalhaes UNQUALIFIED
Chavez Z IturbideAustraliaElwin Sharvill UNQUALIFIED
Kaitlin G NickaItalyAnna Fali NEW
Jennifer G StensethRussiaAsiya Javayant RENEWAL
Antonio W OstroskyRussiaBernardo Dominic UNQUALIFIED
Aditya S ShinkoAustraliaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy S PaprockiRussia2025-05-21Rangoni Of Florence QUALIFIED21Anna Fali
1001Adams S PoquetteIndia2025-05-21Printing Dimensions NEGOTIATION21Asiya Javayant
1002Kadeem U BriddickBrazil2025-05-29Morlong Associates NEW66Anna Fali
1003Jones N OstroskySpain2025-05-23Rousseaux, Michael Esq NEW82Bernardo Dominic
1004Kaitlin V AlbaresItaly2025-05-21Dorl, James J Esq QUALIFIED79Bernardo Dominic
1005Salvatore L IturbideCanada2025-05-23Chemel, James L Cpa RENEWAL75Ioni Bowcher
1006Maria L BowleyAustralia2025-06-05Chanay, Jeffrey A Esq NEW33Xuxue Feng
1007Maisha X DilliardCanada2025-05-31Dorl, James J Esq NEGOTIATION70Onyama Limba
1008Morrow P RutaArgentina2025-06-03King, Christopher A Esq UNQUALIFIED14Xuxue Feng
1009Octavia C InouyeGermany2025-06-08Rousseaux, Michael Esq RENEWAL63Bernardo Dominic
1010Cody J FollerAustralia2025-06-05Buckley Miller Wright UNQUALIFIED57Amy Elsner
1011Jeanfrancois N RimAustralia2025-06-07Chemel, James L Cpa NEW20Bernardo Dominic
1012Alejandro X ButtAustralia2025-05-30Commercial Press PROPOSAL1Anna Fali
1013Juan D MaletItaly2025-05-18Morlong Associates NEGOTIATION17Ioni Bowcher
1014Salvatore L SchemmerUnited Kingdom2025-06-10Truhlar And Truhlar Attys PROPOSAL18Ioni Bowcher
1015Leon V WaycottFrance2025-06-05Feiner Bros UNQUALIFIED98Anna Fali
1016Jones J PerinAustralia2025-06-11Dorl, James J Esq NEGOTIATION66Bernardo Dominic
1017Johnson M DarakjySpain2025-05-31Rangoni Of Florence NEW39Ivan Magalhaes
1018Mayumi T WhobreyArgentina2025-05-29Truhlar And Truhlar Attys PROPOSAL95Ivan Magalhaes
1019Julie P SlusarskiIndia2025-06-16Commercial Press NEGOTIATION58Onyama Limba
1020Darci F GauchoSpain2025-06-01Benton, John B Jr NEGOTIATION22Xuxue Feng
1021Misaki L CampainJapan2025-06-08Buckley Miller Wright UNQUALIFIED62Amy Elsner
1022Francesco C SlusarskiSpain2025-05-22Buckley Miller Wright PROPOSAL17Elwin Sharvill
1023Chavez K PaprockiGermany2025-06-02Rangoni Of Florence NEW7Asiya Javayant
1024Izzy D FerenczRussia2025-06-12Truhlar And Truhlar Attys QUALIFIED30Stephen Shaw
1025Juan U FigeroaIndia2025-06-16King, Christopher A Esq QUALIFIED25Stephen Shaw
1026Ricardo I IturbideItaly2025-06-01Buckley Miller Wright UNQUALIFIED39Bernardo Dominic
1027Johnson L BriddickFrance2025-05-22King, Christopher A Esq NEGOTIATION66Stephen Shaw
1028Izzy W GarufiCanada2025-05-18Dorl, James J Esq NEGOTIATION69Bernardo Dominic
1029Claire U FigeroaCanada2025-06-01Dorl, James J Esq NEW14Stephen Shaw
1030Darci N IturbideRussia2025-05-24Chapman, Ross E Esq NEGOTIATION44Ioni Bowcher
1031Faith K DarakjyCanada2025-06-02Morlong Associates NEW81Asiya Javayant
1032Clifford N StensethSpain2025-05-24Rousseaux, Michael Esq PROPOSAL12Elwin Sharvill
1033Francesco M OstroskyFrance2025-06-14Benton, John B Jr PROPOSAL66Asiya Javayant
1034Faith G GauchoArgentina2025-05-28Buckley Miller Wright QUALIFIED74Anna Fali
1035Morrow W IturbideJapan2025-05-24Buckley Miller Wright RENEWAL77Amy Elsner
1036Claire W FerenczArgentina2025-06-12Rousseaux, Michael Esq QUALIFIED89Ivan Magalhaes
1037Deepesh M MacleadIndia2025-06-13Feiner Bros QUALIFIED53Elwin Sharvill
1038Misaki F SaylorsItaly2025-06-04Feltz Printing Service NEGOTIATION5Elwin Sharvill
1039Jeanfrancois V GillianItaly2025-05-31Printing Dimensions UNQUALIFIED81Asiya Javayant
1040Smith U GlickGermany2025-06-01Chapman, Ross E Esq NEW39Onyama Limba
1041Murillo N RulapaughGermany2025-05-29Buckley Miller Wright NEW87Anna Fali
1042Aika F DilliardJapan2025-06-13Rangoni Of Florence QUALIFIED91Ioni Bowcher
1043Cody D GarufiBrazil2025-06-08Printing Dimensions NEGOTIATION51Onyama Limba
1044Smith J GauchoFrance2025-06-13Rangoni Of Florence QUALIFIED33Bernardo Dominic
1045Costa R WhobreySpain2025-06-04Rousseaux, Michael Esq UNQUALIFIED5Bernardo Dominic
1046Ricardo Y KuskoItaly2025-05-20Dorl, James J Esq UNQUALIFIED51Stephen Shaw
1047Aruna A WaycottSpain2025-05-19Feltz Printing Service PROPOSAL82Ivan Magalhaes
1048Aditya G MorascaCanada2025-05-23Benton, John B Jr RENEWAL47Elwin Sharvill
1049Ivar E DarakjyItaly2025-06-07Commercial Press NEW6Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Wickens R AlbaresGermanyXuxue Feng NEW
Smith P BologniaIndiaOnyama Limba RENEWAL
Greenwood M KuskoUnited KingdomStephen Shaw NEGOTIATION
Smith N GarufiGermanyOnyama Limba NEW
Sinclair U SaylorsArgentinaIvan Magalhaes QUALIFIED
Kadeem T PaprockiJapanAsiya Javayant RENEWAL
Arvin I GlickRussiaElwin Sharvill NEW
Ashley U RutaFranceIoni Bowcher NEGOTIATION
Costa U TollnerArgentinaIoni Bowcher NEGOTIATION
Silvio E RimAustraliaAsiya Javayant QUALIFIED
Murillo O WieserArgentinaAmy Elsner NEGOTIATION
Claire P GlickFranceAnna Fali UNQUALIFIED
Ivar Q FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel M BologniaUnited KingdomStephen Shaw UNQUALIFIED
David Q RoysterIndiaElwin Sharvill NEGOTIATION
Ashley I FerenczItalyIoni Bowcher PROPOSAL
Jones M BowleyItalyIoni Bowcher QUALIFIED
Izzy A FigeroaSpainIvan Magalhaes PROPOSAL
Deepesh Z ShinkoFranceAsiya Javayant RENEWAL
Juan S RimArgentinaOnyama Limba RENEWAL
Murillo Y BowleyArgentinaAmy Elsner NEGOTIATION
Arvin G DoeRussiaAsiya Javayant RENEWAL
Jones J OldroydIndiaAsiya Javayant NEW
Isabel Q GauchoBrazilElwin Sharvill NEW
Maria A GauchoRussiaStephen Shaw RENEWAL
Leja N MaletAustraliaIvan Magalhaes RENEWAL
Morrow N MaletGermanyIoni Bowcher RENEWAL
Murillo U FollerSpainBernardo Dominic NEW
Misaki V ShinkoBrazilAmy Elsner NEW
Wickens O MaletBrazilElwin Sharvill NEGOTIATION
Cody M VocelkaAustraliaAmy Elsner RENEWAL
Cody W RulapaughJapanXuxue Feng PROPOSAL
Jefferson R SaylorsArgentinaXuxue Feng PROPOSAL
Chavez B RoysterItalyXuxue Feng PROPOSAL
Mayumi Q MaletFranceAsiya Javayant UNQUALIFIED
Tony L MaletFranceAnna Fali NEW
Mujtaba J SaylorsFranceStephen Shaw NEGOTIATION
Adams B SchemmerJapanStephen Shaw QUALIFIED
Rodrigues J CaldareraAustraliaOnyama Limba NEGOTIATION
David Z WieserUnited KingdomElwin Sharvill QUALIFIED
Wickens O WieserArgentinaIvan Magalhaes NEW
Alejandro W WhobreyIndiaAnna Fali QUALIFIED
Alejandro X RoysterCanadaIoni Bowcher RENEWAL
Smith L MorascaRussiaOnyama Limba NEGOTIATION
Misaki F GlickArgentinaAnna Fali RENEWAL
Antonio U FollerGermanyAnna Fali NEGOTIATION
Ivar H WhobreyArgentinaIvan Magalhaes NEW
Cody E BologniaGermanyAnna Fali QUALIFIED
Kaitlin W MorascaRussiaAsiya Javayant QUALIFIED
Greenwood B RutaCanadaXuxue Feng NEGOTIATION
Frozen Columns
Name
Salvatore N Vocelka
Clifford A Morasca
Alejandro V Kusko
Silvio T Gaucho
Jennifer E Saylors
Antonio M Stockham
Jennifer S Malet
Alejandro O Venere
Kaitlin O Slusarski
David F Poquette
Greenwood P Bowley
Wickens W Royster
Leja N Caldarera
David R Briddick
Mujtaba O Foller
Clifford U Vocelka
Darci D Albares
Leon D Waycott
Juan K Paprocki
James M Waycott
Murillo T Amigon
Claire G Doe
Faith F Nicka
Salvatore C Whobrey
James L Shinko
Alejandro I Caudy
Clifford M Nicka
Misaki W Tollner
Aika Q Vocelka
Julie Q Malet
Darci F Flosi
Maisha W Inouye
Darci C Rim
James P Marrier
Kadeem L Inouye
Rodrigues H Royster
Arvin L Paprocki
Claire D Butt
Izzy A Saylors
Isabel Q Iturbide
Nicolas S Garufi
David B Nicka
Adams V Dilliard
Jeanfrancois T Poquette
Rodrigues I Marrier
Maisha W Nicka
Darci K Garufi
Jefferson Z Morasca
Jeanfrancois J Bolognia
Smith Q Shinko
IdCountryDate
1000Germany2025-05-21
1001India2025-06-14
1002Japan2025-06-07
1003Australia2025-06-07
1004Germany2025-06-14
1005United Kingdom2025-05-18
1006Brazil2025-06-15
1007Argentina2025-05-27
1008Brazil2025-06-07
1009Japan2025-06-11
1010Germany2025-06-16
1011Italy2025-06-13
1012Spain2025-06-05
1013France2025-06-07
1014India2025-06-15
1015United Kingdom2025-06-10
1016Germany2025-06-05
1017Australia2025-05-18
1018United Kingdom2025-06-05
1019Germany2025-05-24
1020Spain2025-06-05
1021India2025-05-18
1022Italy2025-05-31
1023Russia2025-06-01
1024Brazil2025-05-28
1025Canada2025-05-24
1026India2025-06-07
1027Spain2025-06-10
1028India2025-05-31
1029Canada2025-05-20
1030Germany2025-05-23
1031United Kingdom2025-05-24
1032Italy2025-06-12
1033United Kingdom2025-05-19
1034United Kingdom2025-05-24
1035Australia2025-06-14
1036Italy2025-06-06
1037Canada2025-06-10
1038Italy2025-05-27
1039Brazil2025-06-16
1040United Kingdom2025-05-31
1041Brazil2025-05-20
1042Japan2025-06-08
1043United Kingdom2025-05-30
1044Canada2025-05-23
1045Japan2025-06-10
1046Canada2025-05-26
1047Russia2025-05-21
1048France2025-05-28
1049Spain2025-06-14

On-Demand Data

NameIdCountryDate
Munro Y Saylors1000Argentina2025-06-04
Johnson F Bolognia1001Russia2025-06-02
Octavia W Nestle1002Russia2025-06-03
Costa Q Darakjy1003Argentina2025-05-20
Aditya B Shinko1004France2025-06-03
Nicolas W Gillian1005Canada2025-06-06
Juan P Perin1006Italy2025-05-24
Maisha J Wieser1007Germany2025-06-02
David E Iturbide1008Russia2025-06-07
Cody S Bolognia1009Australia2025-06-14
Wickens N Waycott1010France2025-05-30
Jennifer H Rulapaugh1011Germany2025-05-25
Morrow S Waycott1012Argentina2025-06-03
Nicolas R Bowley1013India2025-05-19
James V Caudy1014France2025-06-08
Murillo A Nicka1015Russia2025-06-01
Chavez Q Gaucho1016Canada2025-06-05
Silvio Y Poquette1017Germany2025-06-07
Sinclair V Caudy1018Argentina2025-05-28
Aika R Ruta1019Russia2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie R AlbaresBrazilOnyama Limba RENEWAL
Clifford B GauchoCanadaOnyama Limba PROPOSAL
Leon Y MorascaGermanyAnna Fali PROPOSAL
Adams M WaycottRussiaElwin Sharvill UNQUALIFIED
Tony A MaletItalyAsiya Javayant PROPOSAL
Isabel K SergiSpainElwin Sharvill RENEWAL
Darci R MaletSpainStephen Shaw PROPOSAL
Clifford S WaycottRussiaXuxue Feng QUALIFIED
Misaki O FlosiJapanAmy Elsner QUALIFIED
Mayumi O MarrierSpainAnna Fali NEGOTIATION
Chavez T PerinRussiaElwin Sharvill RENEWAL
Maria D NestleCanadaAsiya Javayant RENEWAL
Nicolas K KuskoCanadaAmy Elsner NEW
Francesco K MaletRussiaBernardo Dominic NEW
Aruna M SaylorsIndiaStephen Shaw RENEWAL
Tony J MaletSpainXuxue Feng UNQUALIFIED
Munro B NickaIndiaAnna Fali NEW
Costa G MorascaGermanyAmy Elsner NEGOTIATION
Deepesh S FerenczSpainXuxue Feng UNQUALIFIED
Misaki P ChuiSpainAsiya Javayant QUALIFIED
Darci J DoeFranceXuxue Feng QUALIFIED
Johnson P MorascaAustraliaAsiya Javayant NEGOTIATION
Francesco G GarufiRussiaBernardo Dominic NEGOTIATION
Deepesh S RoysterSpainXuxue Feng NEW
Julie R FlosiAustraliaOnyama Limba UNQUALIFIED
Aika O MorascaAustraliaBernardo Dominic NEW
Rodrigues H NestleArgentinaAsiya Javayant UNQUALIFIED
Adams I StockhamCanadaBernardo Dominic RENEWAL
Chavez S DilliardBrazilAmy Elsner UNQUALIFIED
Jefferson C FollerFranceAsiya Javayant UNQUALIFIED
Aruna F DarakjyArgentinaAsiya Javayant NEW
Mujtaba V FollerItalyAmy Elsner NEW
Maria A BologniaItalyStephen Shaw NEGOTIATION
Antonio W PoquetteBrazilXuxue Feng QUALIFIED
Leja X MarrierRussiaAsiya Javayant UNQUALIFIED
Arvin N MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel J AlbaresGermanyOnyama Limba UNQUALIFIED
Munro H IturbideAustraliaAsiya Javayant UNQUALIFIED
Francesco X OldroydBrazilXuxue Feng NEGOTIATION
Ashley X ButtItalyStephen Shaw 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>