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
Nicolas D VenereRussiaIvan Magalhaes NEW
James P TollnerFranceIvan Magalhaes RENEWAL
Leja N GillianIndiaElwin Sharvill PROPOSAL
Faith X CaudyGermanyBernardo Dominic QUALIFIED
Darci C SaylorsRussiaAmy Elsner NEW
Clifford O ShinkoAustraliaIvan Magalhaes QUALIFIED
Greenwood T StockhamJapanOnyama Limba PROPOSAL
Jones Y ButtRussiaAnna Fali UNQUALIFIED
Claire T StockhamCanadaAmy Elsner NEW
Munro C ShinkoBrazilOnyama Limba UNQUALIFIED
Cody S SlusarskiItalyIoni Bowcher UNQUALIFIED
James J GarufiRussiaAmy Elsner RENEWAL
Aditya E SergiIndiaStephen Shaw RENEWAL
David A TollnerUnited KingdomAnna Fali RENEWAL
Cody N DarakjyCanadaIoni Bowcher RENEWAL
Faith J WieserRussiaAnna Fali QUALIFIED
Leja J SlusarskiArgentinaIvan Magalhaes RENEWAL
Stacey M ShinkoIndiaAsiya Javayant QUALIFIED
Chavez S CaudyUnited KingdomAmy Elsner RENEWAL
Costa R PerinIndiaIoni Bowcher QUALIFIED
Alejandro R IturbideBrazilOnyama Limba PROPOSAL
David H MorascaCanadaElwin Sharvill QUALIFIED
Aruna U MaletUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues N DarakjySpainXuxue Feng QUALIFIED
Sinclair Q SchemmerRussiaXuxue Feng NEW
Darci U PoquetteUnited KingdomAnna Fali PROPOSAL
Stacey I CaldareraBrazilAsiya Javayant PROPOSAL
Adams J NestleBrazilStephen Shaw RENEWAL
Silvio I MarrierSpainElwin Sharvill NEGOTIATION
Kadeem C PoquetteUnited KingdomBernardo Dominic RENEWAL
Claire B PoquetteBrazilAnna Fali UNQUALIFIED
Maria X MorascaItalyIoni Bowcher RENEWAL
James I BriddickArgentinaAmy Elsner PROPOSAL
Smith K DilliardArgentinaOnyama Limba PROPOSAL
Aika K SergiArgentinaIvan Magalhaes NEW
Jefferson I GauchoRussiaAnna Fali PROPOSAL
Ivar J RulapaughAustraliaStephen Shaw QUALIFIED
James O StockhamSpainStephen Shaw NEGOTIATION
David C PaprockiFranceElwin Sharvill NEW
Leon Q MaletGermanyBernardo Dominic RENEWAL
Jones V MaletGermanyAnna Fali NEGOTIATION
James J FollerAustraliaBernardo Dominic RENEWAL
Adams O WhobreyBrazilIvan Magalhaes RENEWAL
Ricardo H PaprockiIndiaXuxue Feng PROPOSAL
Maisha V FlosiIndiaIoni Bowcher QUALIFIED
Rodrigues Y RoysterAustraliaIvan Magalhaes NEW
Maria Q StockhamJapanAsiya Javayant QUALIFIED
James P SaylorsCanadaOnyama Limba QUALIFIED
Arvin W FigeroaArgentinaOnyama Limba QUALIFIED
Aditya C RimGermanyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo P RulapaughCanadaElwin Sharvill RENEWAL
Aruna P SaylorsCanadaAmy Elsner NEW
Leja F OstroskyAustraliaAmy Elsner QUALIFIED
Aika S MarrierSpainElwin Sharvill RENEWAL
Morrow N DarakjyGermanyAmy Elsner RENEWAL
Francesco M WieserCanadaAmy Elsner NEGOTIATION
Alejandro E GillianItalyOnyama Limba RENEWAL
Costa Q DoeBrazilAnna Fali QUALIFIED
Darci Z PerinRussiaIoni Bowcher PROPOSAL
Jefferson B CaldareraUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams R CaldareraAustralia2026-08-02Printing Dimensions PROPOSAL69Elwin Sharvill
1001Leja M InouyeGermany2026-08-19Chapman, Ross E Esq UNQUALIFIED32Onyama Limba
1002Maisha V CaldareraUnited Kingdom2026-08-25Buckley Miller Wright PROPOSAL25Amy Elsner
1003Jennifer R StockhamFrance2026-08-19Commercial Press RENEWAL63Ivan Magalhaes
1004Jeanfrancois F RimAustralia2026-08-11Chanay, Jeffrey A Esq NEW32Asiya Javayant
1005Aika K ShinkoItaly2026-08-28Chanay, Jeffrey A Esq QUALIFIED55Elwin Sharvill
1006Alejandro A WhobreyRussia2026-08-13Chanay, Jeffrey A Esq PROPOSAL36Xuxue Feng
1007Murillo M VocelkaItaly2026-08-16Chanay, Jeffrey A Esq QUALIFIED83Ivan Magalhaes
1008Aruna L CaudyFrance2026-08-01Commercial Press QUALIFIED98Bernardo Dominic
1009Stacey J TollnerAustralia2026-08-29Dorl, James J Esq QUALIFIED24Bernardo Dominic
1010Kaitlin L WaycottBrazil2026-08-19King, Christopher A Esq NEGOTIATION99Ivan Magalhaes
1011Leon K GlickItaly2026-08-13Feltz Printing Service UNQUALIFIED13Xuxue Feng
1012Juan W DilliardFrance2026-08-18Rousseaux, Michael Esq NEGOTIATION75Amy Elsner
1013Juan K NickaArgentina2026-08-30Truhlar And Truhlar Attys PROPOSAL78Anna Fali
1014Smith K DarakjyFrance2026-08-15Truhlar And Truhlar Attys NEW92Amy Elsner
1015Morrow V CaudySpain2026-08-25Rangoni Of Florence UNQUALIFIED98Ivan Magalhaes
1016Ivar L StockhamItaly2026-08-01King, Christopher A Esq RENEWAL65Anna Fali
1017Jones A VocelkaSpain2026-08-22Rousseaux, Michael Esq NEGOTIATION93Anna Fali
1018Leon U MaletAustralia2026-08-18Printing Dimensions NEGOTIATION69Xuxue Feng
1019Mujtaba R GlickArgentina2026-08-17Printing Dimensions PROPOSAL60Stephen Shaw
1020Jeanfrancois I MarrierJapan2026-08-24Benton, John B Jr QUALIFIED73Stephen Shaw
1021Faith E CaudyRussia2026-08-20Chemel, James L Cpa QUALIFIED76Asiya Javayant
1022Arvin M BriddickAustralia2026-08-06Rousseaux, Michael Esq NEGOTIATION74Bernardo Dominic
1023Jefferson G OstroskyGermany2026-08-04Truhlar And Truhlar Attys UNQUALIFIED5Stephen Shaw
1024Faith I ChuiJapan2026-08-05Rangoni Of Florence PROPOSAL87Anna Fali
1025Mayumi F NestleAustralia2026-08-11Chemel, James L Cpa NEGOTIATION19Ioni Bowcher
1026Ashley J StockhamSpain2026-08-13Benton, John B Jr RENEWAL81Asiya Javayant
1027Greenwood R MorascaArgentina2026-08-10Benton, John B Jr UNQUALIFIED33Xuxue Feng
1028Silvio V MorascaGermany2026-08-16Buckley Miller Wright PROPOSAL28Amy Elsner
1029Mujtaba D MorascaBrazil2026-08-23Dorl, James J Esq NEGOTIATION53Bernardo Dominic
1030Chavez Z AmigonRussia2026-08-07Printing Dimensions UNQUALIFIED87Elwin Sharvill
1031Deepesh B WaycottCanada2026-08-04Rangoni Of Florence PROPOSAL70Ivan Magalhaes
1032Misaki W InouyeBrazil2026-08-14Dorl, James J Esq PROPOSAL18Amy Elsner
1033Costa C DoeRussia2026-08-12Buckley Miller Wright UNQUALIFIED51Ivan Magalhaes
1034Ivar M GarufiFrance2026-08-11Rousseaux, Michael Esq PROPOSAL12Anna Fali
1035Aditya J VocelkaUnited Kingdom2026-08-22Dorl, James J Esq QUALIFIED72Anna Fali
1036Jennifer Z GillianUnited Kingdom2026-08-24Chapman, Ross E Esq PROPOSAL91Bernardo Dominic
1037Deepesh P GlickUnited Kingdom2026-08-30Buckley Miller Wright NEGOTIATION9Asiya Javayant
1038Morrow U StockhamAustralia2026-08-12Printing Dimensions NEW91Elwin Sharvill
1039Darci J RutaFrance2026-08-10Rangoni Of Florence RENEWAL60Onyama Limba
1040Octavia M MaletCanada2026-08-25Feltz Printing Service NEW67Ivan Magalhaes
1041Julie M SlusarskiJapan2026-08-29Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1042Nicolas B ButtAustralia2026-08-06Chapman, Ross E Esq UNQUALIFIED61Asiya Javayant
1043Leja C DilliardBrazil2026-08-03Feiner Bros QUALIFIED26Bernardo Dominic
1044Misaki S MorascaCanada2026-08-12Feiner Bros NEW81Asiya Javayant
1045Costa Y PerinArgentina2026-08-01Benton, John B Jr UNQUALIFIED26Ivan Magalhaes
1046Jeanfrancois V AlbaresCanada2026-08-30Feltz Printing Service NEGOTIATION98Ioni Bowcher
1047Juan H DilliardBrazil2026-08-08Feltz Printing Service QUALIFIED87Stephen Shaw
1048Arvin F RulapaughGermany2026-08-29Commercial Press PROPOSAL78Anna Fali
1049Munro O VenereArgentina2026-08-15Rangoni Of Florence QUALIFIED38Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jennifer R CaldareraSpainAnna Fali QUALIFIED
Tony Q GarufiCanadaIvan Magalhaes QUALIFIED
Costa K OldroydGermanyElwin Sharvill NEW
Maria N BologniaGermanyAsiya Javayant PROPOSAL
Antonio M FigeroaItalyOnyama Limba QUALIFIED
Jefferson D GillianUnited KingdomIvan Magalhaes RENEWAL
Leja T VenereIndiaIoni Bowcher UNQUALIFIED
Jennifer A CaldareraJapanElwin Sharvill NEGOTIATION
Jones D RulapaughIndiaIoni Bowcher NEW
Mujtaba Y BriddickCanadaAsiya Javayant QUALIFIED
Costa Z BriddickGermanyElwin Sharvill UNQUALIFIED
Maisha N SergiFranceStephen Shaw PROPOSAL
Tony Y DilliardBrazilStephen Shaw NEGOTIATION
Jennifer M IturbideCanadaXuxue Feng UNQUALIFIED
Costa J BriddickArgentinaAsiya Javayant QUALIFIED
Octavia M IturbideRussiaStephen Shaw UNQUALIFIED
Leja V MaletFranceStephen Shaw PROPOSAL
Izzy H VenereBrazilXuxue Feng RENEWAL
Smith U MorascaCanadaAmy Elsner QUALIFIED
Kadeem F VenereFranceElwin Sharvill UNQUALIFIED
Jeanfrancois Z ChuiFranceIoni Bowcher QUALIFIED
David E DilliardSpainBernardo Dominic QUALIFIED
Leja X GillianUnited KingdomElwin Sharvill QUALIFIED
Mayumi F WaycottCanadaAmy Elsner RENEWAL
Sinclair S NickaItalyElwin Sharvill UNQUALIFIED
Maisha U VocelkaGermanyAnna Fali RENEWAL
Cody G CaldareraBrazilIvan Magalhaes RENEWAL
Darci P InouyeItalyBernardo Dominic RENEWAL
Rodrigues R ChuiFranceBernardo Dominic QUALIFIED
Maria O RimGermanyAnna Fali NEGOTIATION
Nicolas Q DilliardJapanAmy Elsner UNQUALIFIED
Mayumi B MaletUnited KingdomStephen Shaw QUALIFIED
Rodrigues H FerenczCanadaBernardo Dominic RENEWAL
Ashley B PerinBrazilAsiya Javayant NEGOTIATION
Mayumi U CampainJapanIoni Bowcher QUALIFIED
Aditya Q SlusarskiRussiaAmy Elsner PROPOSAL
Tony U PaprockiRussiaAnna Fali UNQUALIFIED
Chavez Y RulapaughIndiaStephen Shaw QUALIFIED
Jennifer V ButtJapanOnyama Limba NEGOTIATION
Silvio Q NickaBrazilXuxue Feng UNQUALIFIED
Aruna P DilliardAustraliaElwin Sharvill UNQUALIFIED
Mujtaba Q StockhamBrazilOnyama Limba QUALIFIED
Maria G WhobreyUnited KingdomOnyama Limba PROPOSAL
Emily H StensethRussiaElwin Sharvill RENEWAL
Aditya I BowleyArgentinaXuxue Feng QUALIFIED
Munro N BriddickIndiaElwin Sharvill RENEWAL
Jennifer I StockhamAustraliaBernardo Dominic RENEWAL
Cody J AmigonAustraliaAsiya Javayant UNQUALIFIED
Johnson S SchemmerAustraliaXuxue Feng UNQUALIFIED
Tony V WaycottUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Deepesh U Caldarera
Smith A Slusarski
Maria S Tollner
Jeanfrancois V Ruta
Maisha V Foller
Isabel T Kusko
Murillo B Caudy
Leon L Inouye
Aika T Marrier
Misaki H Foller
Kaitlin G Ruta
Deepesh V Stenseth
Jennifer X Caldarera
Misaki O Iturbide
Aika H Venere
Leon T Ruta
Alejandro C Foller
Isabel S Waycott
Deepesh B Schemmer
Silvio D Waycott
Murillo U Briddick
Kaitlin N Chui
Ricardo I Sergi
Adams A Malet
Octavia L Paprocki
Jefferson N Ostrosky
Johnson W Gaucho
Antonio B Tollner
Morrow C Waycott
Faith B Chui
Octavia K Glick
Chavez C Slusarski
Izzy E Rim
James U Butt
Maria T Garufi
Aika D Glick
Octavia Z Inouye
Emily O Briddick
Jefferson R Paprocki
Cody C Stockham
Rodrigues I Morasca
Salvatore C Bowley
Jones U Shinko
Sinclair F Stenseth
Salvatore S Figeroa
Ivar J Marrier
Silvio R Marrier
Murillo Z Stenseth
Tony O Amigon
Jones R Nestle
IdCountryDate
1000Brazil2026-08-17
1001Brazil2026-08-09
1002Brazil2026-08-15
1003India2026-08-10
1004United Kingdom2026-08-29
1005Russia2026-08-07
1006Italy2026-08-18
1007Russia2026-08-19
1008Brazil2026-08-02
1009Russia2026-08-07
1010Argentina2026-08-16
1011Brazil2026-08-20
1012Argentina2026-08-04
1013Canada2026-08-07
1014France2026-08-11
1015Spain2026-08-14
1016Spain2026-08-30
1017Canada2026-08-05
1018Spain2026-08-07
1019Italy2026-08-12
1020Argentina2026-08-29
1021India2026-08-25
1022Australia2026-08-10
1023Argentina2026-08-19
1024Russia2026-08-11
1025Argentina2026-08-02
1026France2026-08-19
1027India2026-08-05
1028Italy2026-08-23
1029Russia2026-08-01
1030France2026-08-25
1031France2026-08-06
1032Spain2026-08-29
1033Russia2026-08-06
1034Japan2026-08-01
1035Spain2026-08-24
1036India2026-08-08
1037Spain2026-08-22
1038France2026-08-16
1039Argentina2026-08-20
1040Australia2026-08-06
1041Spain2026-08-17
1042India2026-08-29
1043Canada2026-08-09
1044Germany2026-08-22
1045United Kingdom2026-08-15
1046Russia2026-08-28
1047United Kingdom2026-08-13
1048Canada2026-08-01
1049Argentina2026-08-24

On-Demand Data

NameIdCountryDate
Jennifer N Briddick1000Italy2026-08-02
David T Venere1001Argentina2026-08-16
Murillo K Schemmer1002Australia2026-08-20
Misaki S Paprocki1003Australia2026-08-28
Costa G Nestle1004Japan2026-08-15
Mujtaba Y Flosi1005Australia2026-08-26
Antonio X Glick1006Argentina2026-08-09
Smith Q Stockham1007France2026-08-29
Darci F Rulapaugh1008Italy2026-08-09
Sinclair L Campain1009Australia2026-08-15
Jeanfrancois M Waycott1010Japan2026-08-27
Alejandro S Morasca1011India2026-08-14
Aditya Q Glick1012Argentina2026-08-27
Salvatore Q Caudy1013Australia2026-08-16
Alejandro I Marrier1014Germany2026-08-01
Octavia J Ostrosky1015Italy2026-08-15
Kaitlin K Royster1016Argentina2026-08-04
Murillo J Inouye1017Argentina2026-08-30
Murillo Z Briddick1018Argentina2026-08-14
Nicolas H Gaucho1019United Kingdom2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel S CampainJapanIoni Bowcher NEW
Rodrigues K CaldareraIndiaIvan Magalhaes RENEWAL
Chavez D GlickSpainAsiya Javayant NEW
Tony S ButtIndiaStephen Shaw PROPOSAL
Mayumi J MaletBrazilIvan Magalhaes NEW
Faith D PerinArgentinaOnyama Limba PROPOSAL
Chavez F SaylorsAustraliaAnna Fali PROPOSAL
Jennifer Z GillianIndiaBernardo Dominic UNQUALIFIED
Stacey A GarufiJapanAmy Elsner UNQUALIFIED
Leja U StockhamArgentinaIvan Magalhaes RENEWAL
Darci O WieserJapanXuxue Feng UNQUALIFIED
Jones U RulapaughRussiaStephen Shaw UNQUALIFIED
Juan R RoysterIndiaElwin Sharvill NEW
Julie P BowleyIndiaAsiya Javayant PROPOSAL
Jeanfrancois R DilliardItalyAmy Elsner QUALIFIED
Wickens H SaylorsRussiaAnna Fali UNQUALIFIED
Tony F MaletRussiaIvan Magalhaes NEW
Izzy R PaprockiIndiaAmy Elsner NEGOTIATION
Silvio U DilliardUnited KingdomOnyama Limba PROPOSAL
Morrow A GillianGermanyIoni Bowcher NEW
Jefferson A AmigonCanadaStephen Shaw NEGOTIATION
Aditya R SaylorsIndiaAsiya Javayant RENEWAL
Silvio G VenereItalyOnyama Limba PROPOSAL
Ashley E PoquetteBrazilStephen Shaw PROPOSAL
Francesco O MaletBrazilAsiya Javayant NEW
Leja T CaudyGermanyBernardo Dominic RENEWAL
Munro H RimAustraliaBernardo Dominic PROPOSAL
Jones Q AmigonSpainIoni Bowcher NEGOTIATION
Cody C OldroydBrazilIvan Magalhaes NEGOTIATION
Maria E MarrierAustraliaOnyama Limba PROPOSAL
Ricardo R AlbaresIndiaXuxue Feng QUALIFIED
Alejandro Y SchemmerBrazilBernardo Dominic QUALIFIED
Maisha E ButtFranceIoni Bowcher PROPOSAL
Kaitlin Y AmigonGermanyIvan Magalhaes QUALIFIED
Octavia U ButtJapanStephen Shaw RENEWAL
Antonio S DilliardAustraliaElwin Sharvill NEW
Deepesh G GarufiUnited KingdomXuxue Feng RENEWAL
Smith P StockhamUnited KingdomXuxue Feng RENEWAL
Izzy A WieserCanadaOnyama Limba QUALIFIED
Claire M CaudyUnited KingdomElwin Sharvill UNQUALIFIED

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