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
Mujtaba I SergiIndiaIoni Bowcher QUALIFIED
Wickens A MorascaGermanyStephen Shaw NEW
Leon O WaycottAustraliaOnyama Limba UNQUALIFIED
Maisha R VocelkaCanadaIoni Bowcher RENEWAL
Mujtaba A FerenczCanadaAsiya Javayant RENEWAL
Aika U RoysterGermanyBernardo Dominic UNQUALIFIED
Izzy M OstroskyJapanAsiya Javayant NEGOTIATION
Maisha I GauchoIndiaAsiya Javayant NEW
Jefferson D PoquetteJapanXuxue Feng NEW
Deepesh F PoquetteSpainAsiya Javayant PROPOSAL
Silvio R MacleadCanadaElwin Sharvill NEW
David E BologniaIndiaXuxue Feng PROPOSAL
Aruna R CampainUnited KingdomElwin Sharvill NEW
Ricardo B FigeroaIndiaElwin Sharvill PROPOSAL
Costa B BologniaSpainAsiya Javayant QUALIFIED
Octavia L VenereRussiaXuxue Feng PROPOSAL
Cody R PerinRussiaElwin Sharvill UNQUALIFIED
Maria E MaletRussiaAnna Fali QUALIFIED
Ivar H IturbideIndiaStephen Shaw PROPOSAL
Munro C BologniaRussiaOnyama Limba QUALIFIED
Octavia L RoysterGermanyAsiya Javayant PROPOSAL
Emily X IturbideAustraliaXuxue Feng NEGOTIATION
Leja D BriddickIndiaAnna Fali UNQUALIFIED
Johnson I MorascaBrazilAnna Fali NEW
Alejandro U StensethIndiaAmy Elsner UNQUALIFIED
Aditya P RoysterRussiaAmy Elsner UNQUALIFIED
Darci O FlosiIndiaAnna Fali PROPOSAL
Leja Z ChuiSpainXuxue Feng RENEWAL
Darci O WaycottSpainElwin Sharvill NEW
Munro I PaprockiIndiaAsiya Javayant QUALIFIED
Munro S TollnerItalyIoni Bowcher RENEWAL
Izzy I MarrierRussiaElwin Sharvill QUALIFIED
Cody Q MarrierIndiaAmy Elsner UNQUALIFIED
Maisha I InouyeIndiaStephen Shaw UNQUALIFIED
Murillo Y CaldareraRussiaIoni Bowcher UNQUALIFIED
Adams O AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Octavia L SaylorsArgentinaElwin Sharvill PROPOSAL
Wickens I MaletItalyIoni Bowcher UNQUALIFIED
Munro Q MaletSpainStephen Shaw QUALIFIED
Rodrigues T WieserJapanElwin Sharvill QUALIFIED
Deepesh V ShinkoGermanyAnna Fali UNQUALIFIED
Maria D OstroskyCanadaIvan Magalhaes NEGOTIATION
Clifford N GauchoGermanyAmy Elsner NEW
Ashley F ButtGermanyAsiya Javayant RENEWAL
Isabel V KolmetzIndiaIoni Bowcher PROPOSAL
Leon Z StensethBrazilAmy Elsner NEW
Octavia U MacleadFranceIoni Bowcher RENEWAL
Mayumi F MorascaGermanyBernardo Dominic PROPOSAL
Aruna O DarakjyGermanyBernardo Dominic UNQUALIFIED
Juan L RutaArgentinaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem L SlusarskiFranceIoni Bowcher RENEWAL
Juan H AmigonArgentinaIvan Magalhaes RENEWAL
Alejandro A KolmetzIndiaStephen Shaw QUALIFIED
Juan Z BowleyUnited KingdomAmy Elsner UNQUALIFIED
Jeanfrancois B BriddickRussiaIvan Magalhaes RENEWAL
Adams J FerenczGermanyOnyama Limba RENEWAL
Jefferson N WieserFranceIoni Bowcher NEGOTIATION
Rodrigues Q CaldareraSpainAnna Fali QUALIFIED
Tony T GauchoBrazilStephen Shaw PROPOSAL
Morrow G ButtAustraliaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco M DilliardRussia2026-07-05Commercial Press NEW45Bernardo Dominic
1001Isabel B VenereBrazil2026-07-05Buckley Miller Wright NEW31Stephen Shaw
1002Ivar T KolmetzBrazil2026-06-30Chemel, James L Cpa QUALIFIED5Stephen Shaw
1003Kaitlin K OldroydGermany2026-06-20Rangoni Of Florence RENEWAL5Elwin Sharvill
1004Johnson I GlickFrance2026-07-01Chapman, Ross E Esq NEGOTIATION75Xuxue Feng
1005Aika F WhobreyBrazil2026-06-22Buckley Miller Wright PROPOSAL64Ivan Magalhaes
1006Silvio F FigeroaBrazil2026-06-21Dorl, James J Esq NEGOTIATION50Ivan Magalhaes
1007Stacey Q SchemmerCanada2026-06-20Chanay, Jeffrey A Esq PROPOSAL4Bernardo Dominic
1008Aditya B CaldareraCanada2026-07-08Chemel, James L Cpa NEGOTIATION14Onyama Limba
1009Nicolas L BologniaBrazil2026-06-15Chapman, Ross E Esq QUALIFIED13Ivan Magalhaes
1010Jeanfrancois H OldroydGermany2026-06-18Chapman, Ross E Esq QUALIFIED27Ioni Bowcher
1011Salvatore I ButtArgentina2026-06-23Chapman, Ross E Esq RENEWAL6Asiya Javayant
1012Chavez U TollnerCanada2026-06-17Feiner Bros RENEWAL69Ivan Magalhaes
1013Octavia Y PoquetteFrance2026-06-10Benton, John B Jr RENEWAL66Elwin Sharvill
1014Maisha J ChuiRussia2026-06-16Buckley Miller Wright UNQUALIFIED99Elwin Sharvill
1015Mujtaba T KuskoJapan2026-06-16Benton, John B Jr UNQUALIFIED17Elwin Sharvill
1016Leon A WhobreyIndia2026-06-12Printing Dimensions UNQUALIFIED33Ioni Bowcher
1017Stacey W FigeroaIndia2026-06-30Truhlar And Truhlar Attys QUALIFIED40Onyama Limba
1018Nicolas B RulapaughCanada2026-06-28Rangoni Of Florence NEW56Xuxue Feng
1019Leon W ShinkoArgentina2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED61Stephen Shaw
1020Leja J PaprockiIndia2026-06-23Morlong Associates QUALIFIED2Stephen Shaw
1021Aika V VenereBrazil2026-07-03Morlong Associates UNQUALIFIED77Asiya Javayant
1022Tony J InouyeJapan2026-07-07Chanay, Jeffrey A Esq NEGOTIATION58Ivan Magalhaes
1023Octavia F WieserGermany2026-07-07Printing Dimensions UNQUALIFIED1Xuxue Feng
1024David L RoysterIndia2026-07-02Morlong Associates NEW98Ioni Bowcher
1025Smith C FerenczRussia2026-06-13Dorl, James J Esq QUALIFIED75Stephen Shaw
1026Jennifer A RimGermany2026-06-29Rangoni Of Florence UNQUALIFIED20Stephen Shaw
1027Ashley H ButtSpain2026-06-17Feltz Printing Service RENEWAL98Onyama Limba
1028Arvin Y SlusarskiGermany2026-06-15Feltz Printing Service QUALIFIED56Stephen Shaw
1029Jones C SlusarskiIndia2026-07-07King, Christopher A Esq NEGOTIATION25Bernardo Dominic
1030Claire A MaletCanada2026-06-15Chanay, Jeffrey A Esq QUALIFIED70Asiya Javayant
1031Maisha D TollnerItaly2026-07-02Chapman, Ross E Esq NEW84Bernardo Dominic
1032Ivar K DilliardRussia2026-06-19Feltz Printing Service RENEWAL73Ivan Magalhaes
1033Juan S StensethJapan2026-07-06Chapman, Ross E Esq PROPOSAL18Ioni Bowcher
1034Salvatore Y DarakjyFrance2026-07-09Dorl, James J Esq PROPOSAL75Onyama Limba
1035Antonio D KuskoItaly2026-06-15King, Christopher A Esq RENEWAL99Stephen Shaw
1036Aditya C VenereRussia2026-06-12King, Christopher A Esq NEGOTIATION45Anna Fali
1037Aruna O TollnerBrazil2026-07-06Chemel, James L Cpa QUALIFIED19Onyama Limba
1038Costa A DarakjyFrance2026-06-30Chemel, James L Cpa NEGOTIATION83Stephen Shaw
1039Claire U SergiGermany2026-07-08Buckley Miller Wright UNQUALIFIED21Anna Fali
1040Ashley B WhobreyJapan2026-06-23Feiner Bros UNQUALIFIED86Elwin Sharvill
1041Claire Q AmigonRussia2026-06-10Chapman, Ross E Esq RENEWAL76Ioni Bowcher
1042Kaitlin L AlbaresBrazil2026-06-21Chanay, Jeffrey A Esq NEGOTIATION54Onyama Limba
1043Misaki Q SergiRussia2026-06-14Dorl, James J Esq NEW5Anna Fali
1044Kaitlin C AlbaresItaly2026-06-14Chanay, Jeffrey A Esq QUALIFIED80Ivan Magalhaes
1045Adams D VocelkaAustralia2026-06-30Feltz Printing Service UNQUALIFIED79Anna Fali
1046Munro P MorascaItaly2026-06-26Rangoni Of Florence NEGOTIATION57Onyama Limba
1047Johnson P MacleadFrance2026-06-26Truhlar And Truhlar Attys NEW50Onyama Limba
1048Octavia S StensethSpain2026-07-03Rangoni Of Florence PROPOSAL12Elwin Sharvill
1049James W GillianUnited Kingdom2026-06-29Chemel, James L Cpa PROPOSAL66Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Octavia U WieserRussiaAmy Elsner NEGOTIATION
Aruna C FigeroaGermanyIoni Bowcher NEW
Tony X CaldareraIndiaIoni Bowcher QUALIFIED
David D GauchoCanadaAmy Elsner RENEWAL
Octavia Y WaycottUnited KingdomElwin Sharvill PROPOSAL
Adams N PerinIndiaAmy Elsner QUALIFIED
Munro U StensethGermanyBernardo Dominic PROPOSAL
Leon H CampainFranceElwin Sharvill PROPOSAL
Isabel A FollerBrazilStephen Shaw PROPOSAL
Rodrigues B WaycottFranceBernardo Dominic RENEWAL
Jeanfrancois U CampainItalyOnyama Limba QUALIFIED
Octavia R SaylorsBrazilXuxue Feng QUALIFIED
Darci Z DilliardCanadaStephen Shaw UNQUALIFIED
Faith S MarrierItalyIvan Magalhaes NEW
Ricardo N IturbideArgentinaAsiya Javayant UNQUALIFIED
Leon R ButtArgentinaIoni Bowcher UNQUALIFIED
Antonio S FollerRussiaBernardo Dominic NEW
Jeanfrancois K DilliardFranceAmy Elsner NEGOTIATION
Mujtaba S CaldareraArgentinaBernardo Dominic UNQUALIFIED
Jones D PoquetteUnited KingdomXuxue Feng NEW
Clifford V VocelkaSpainStephen Shaw PROPOSAL
James X VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Tony K RutaAustraliaIvan Magalhaes NEGOTIATION
Adams F RoysterUnited KingdomOnyama Limba RENEWAL
Jefferson R TollnerSpainAmy Elsner UNQUALIFIED
Rodrigues R MacleadJapanElwin Sharvill NEGOTIATION
Alejandro V MaletItalyBernardo Dominic NEW
Faith K RimUnited KingdomOnyama Limba UNQUALIFIED
Arvin J FerenczFranceAsiya Javayant NEW
Leon F GauchoGermanyIoni Bowcher RENEWAL
Darci J GlickGermanyIvan Magalhaes NEW
Clifford H DilliardArgentinaAsiya Javayant RENEWAL
Jefferson P WhobreyAustraliaElwin Sharvill QUALIFIED
Ashley E RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Smith E FlosiBrazilElwin Sharvill PROPOSAL
Jeanfrancois F IturbideUnited KingdomElwin Sharvill NEW
Jennifer G BriddickItalyAnna Fali QUALIFIED
Mayumi U MorascaBrazilBernardo Dominic QUALIFIED
Rodrigues T AlbaresGermanyAsiya Javayant NEGOTIATION
Ivar P AlbaresRussiaAmy Elsner QUALIFIED
Chavez R FollerFranceAnna Fali QUALIFIED
Adams H InouyeCanadaXuxue Feng NEGOTIATION
Jones M SchemmerBrazilStephen Shaw NEW
Greenwood L ShinkoFranceAmy Elsner NEGOTIATION
Antonio T CampainArgentinaIvan Magalhaes PROPOSAL
Leon V RulapaughUnited KingdomAnna Fali NEGOTIATION
Juan P FerenczJapanOnyama Limba NEW
Aruna Z ButtIndiaIvan Magalhaes NEGOTIATION
Jones N InouyeRussiaIoni Bowcher NEW
Nicolas L CampainSpainIvan Magalhaes QUALIFIED
Frozen Columns
Name
Ricardo N Gillian
Alejandro I Morasca
David J Tollner
Deepesh U Wieser
Antonio H Malet
Aditya C Nestle
Faith B Tollner
Leja Q Oldroyd
Aditya U Albares
Faith P Sergi
Johnson N Nicka
Greenwood O Rulapaugh
Jennifer K Iturbide
Greenwood S Maclead
Emily P Rim
Izzy T Iturbide
Deepesh V Maclead
Salvatore O Foller
Mayumi P Doe
Aika D Caldarera
Jones H Gaucho
Murillo S Marrier
Salvatore S Morasca
Ashley V Paprocki
James F Bolognia
Leja Z Poquette
David A Shinko
Jeanfrancois J Marrier
Salvatore T Kusko
Jones T Ferencz
Juan X Gillian
Munro X Paprocki
Aditya S Poquette
Ashley U Malet
Arvin S Caldarera
Ricardo Y Schemmer
Kaitlin L Rulapaugh
Jefferson B Morasca
Rodrigues C Slusarski
Munro K Malet
Jeanfrancois N Schemmer
Izzy Y Kusko
Jeanfrancois L Wieser
Aika X Marrier
Ashley Y Tollner
Chavez C Campain
Maisha E Iturbide
Greenwood G Waycott
Emily Z Amigon
Leja C Rulapaugh
IdCountryDate
1000Russia2026-06-17
1001India2026-06-28
1002United Kingdom2026-07-09
1003Spain2026-07-02
1004France2026-07-05
1005Spain2026-06-21
1006Russia2026-06-12
1007India2026-06-25
1008Australia2026-06-15
1009France2026-06-30
1010Germany2026-06-20
1011France2026-06-24
1012Brazil2026-06-13
1013United Kingdom2026-06-30
1014United Kingdom2026-06-13
1015Australia2026-06-19
1016Australia2026-06-18
1017Russia2026-07-03
1018Brazil2026-06-12
1019Italy2026-06-15
1020France2026-07-03
1021Argentina2026-07-03
1022Australia2026-06-29
1023Spain2026-06-15
1024Japan2026-06-16
1025Russia2026-07-09
1026Brazil2026-07-09
1027Argentina2026-06-17
1028Russia2026-07-08
1029Spain2026-07-05
1030Japan2026-07-01
1031Spain2026-07-02
1032Argentina2026-06-26
1033India2026-06-13
1034Spain2026-06-18
1035France2026-07-04
1036Germany2026-06-13
1037Japan2026-06-25
1038Japan2026-06-10
1039Australia2026-07-02
1040Italy2026-06-12
1041United Kingdom2026-07-08
1042Spain2026-07-08
1043France2026-06-19
1044Japan2026-06-28
1045United Kingdom2026-07-06
1046Italy2026-07-04
1047Spain2026-06-14
1048Canada2026-06-10
1049United Kingdom2026-06-30

On-Demand Data

NameIdCountryDate
Salvatore Z Malet1000Germany2026-06-17
Deepesh R Ferencz1001Germany2026-06-30
James X Garufi1002Canada2026-06-24
Johnson G Flosi1003France2026-06-21
Claire S Waycott1004Russia2026-06-14
Maisha T Stenseth1005India2026-06-11
Claire K Wieser1006Russia2026-06-16
Mayumi F Ruta1007India2026-07-09
Johnson T Waycott1008France2026-06-29
Smith Q Gaucho1009Argentina2026-06-30
Adams P Oldroyd1010Argentina2026-06-23
Leja I Schemmer1011India2026-06-26
Munro J Darakjy1012Australia2026-06-14
Leon V Caudy1013Italy2026-07-03
James Y Darakjy1014France2026-06-25
Ricardo Q Nicka1015Italy2026-07-06
Nicolas E Campain1016Germany2026-06-28
Jennifer V Kolmetz1017Canada2026-06-29
Izzy A Bolognia1018Argentina2026-07-05
Rodrigues V Inouye1019Italy2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika I CaldareraItalyAmy Elsner NEGOTIATION
Morrow S MarrierItalyIoni Bowcher NEW
Darci K CaldareraJapanOnyama Limba NEW
Octavia Y KuskoFranceBernardo Dominic PROPOSAL
Darci Q AmigonBrazilXuxue Feng QUALIFIED
Isabel B FigeroaIndiaXuxue Feng PROPOSAL
David C RutaBrazilXuxue Feng NEW
Izzy Z FerenczFranceElwin Sharvill UNQUALIFIED
Wickens U SergiRussiaAnna Fali RENEWAL
Costa K MarrierBrazilAmy Elsner RENEWAL
Octavia Q NestleFranceAsiya Javayant QUALIFIED
Aditya Y SlusarskiFranceElwin Sharvill QUALIFIED
Maisha D GarufiAustraliaAmy Elsner PROPOSAL
Leja M DoeIndiaAsiya Javayant QUALIFIED
David P SlusarskiUnited KingdomAsiya Javayant NEW
Antonio Z SaylorsAustraliaAnna Fali PROPOSAL
Mayumi I RulapaughJapanAmy Elsner UNQUALIFIED
Mayumi A ButtFranceAnna Fali NEGOTIATION
Greenwood P PoquetteAustraliaOnyama Limba UNQUALIFIED
Jefferson Y DoeJapanIoni Bowcher RENEWAL
Kaitlin W ChuiFranceStephen Shaw PROPOSAL
Stacey L RulapaughAustraliaAsiya Javayant NEW
Jones T WaycottBrazilBernardo Dominic RENEWAL
Faith L CampainFranceElwin Sharvill PROPOSAL
Morrow O PaprockiUnited KingdomAnna Fali UNQUALIFIED
Smith K MorascaCanadaAsiya Javayant PROPOSAL
Arvin N GarufiCanadaIoni Bowcher QUALIFIED
Ricardo X MacleadIndiaXuxue Feng NEGOTIATION
Munro J ShinkoItalyOnyama Limba RENEWAL
Izzy W KuskoFranceOnyama Limba PROPOSAL
Murillo P FigeroaArgentinaStephen Shaw NEGOTIATION
Nicolas F SergiJapanXuxue Feng NEGOTIATION
Leon X DoeRussiaElwin Sharvill RENEWAL
Jones B KuskoJapanIvan Magalhaes NEW
Murillo D MacleadUnited KingdomAmy Elsner NEGOTIATION
Aruna R TollnerAustraliaOnyama Limba RENEWAL
Chavez C MaletBrazilStephen Shaw NEGOTIATION
Cody G InouyeAustraliaXuxue Feng UNQUALIFIED
Deepesh T FlosiCanadaAsiya Javayant UNQUALIFIED
Kaitlin E OstroskyItalyOnyama Limba 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>