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
Silvio M GauchoGermanyIoni Bowcher PROPOSAL
Kadeem A ButtUnited KingdomAmy Elsner NEW
Murillo M AlbaresGermanyAsiya Javayant QUALIFIED
Leon Z StockhamGermanyIvan Magalhaes RENEWAL
Greenwood Q BriddickGermanyElwin Sharvill RENEWAL
Nicolas Y SlusarskiCanadaXuxue Feng UNQUALIFIED
Isabel I BriddickAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois Q KuskoCanadaAsiya Javayant NEGOTIATION
Octavia M IturbideJapanOnyama Limba PROPOSAL
David S FollerAustraliaStephen Shaw UNQUALIFIED
Nicolas E GarufiBrazilIoni Bowcher QUALIFIED
Francesco R MaletArgentinaElwin Sharvill UNQUALIFIED
Adams U StockhamSpainBernardo Dominic NEW
Munro Y VocelkaUnited KingdomOnyama Limba NEGOTIATION
Deepesh L PaprockiAustraliaXuxue Feng UNQUALIFIED
Chavez A MorascaBrazilAmy Elsner RENEWAL
Ashley A BologniaFranceElwin Sharvill UNQUALIFIED
Octavia N CampainArgentinaAmy Elsner QUALIFIED
Mayumi I CampainItalyXuxue Feng RENEWAL
Costa X StensethRussiaXuxue Feng RENEWAL
Leon D MaletFranceStephen Shaw RENEWAL
Mujtaba D NestleCanadaAnna Fali QUALIFIED
Jeanfrancois S FigeroaIndiaBernardo Dominic QUALIFIED
Julie R TollnerItalyStephen Shaw PROPOSAL
Munro J IturbideCanadaIoni Bowcher RENEWAL
Aditya T TollnerIndiaBernardo Dominic RENEWAL
Greenwood Y SchemmerArgentinaIvan Magalhaes QUALIFIED
Maria I GauchoRussiaElwin Sharvill NEGOTIATION
Nicolas U FollerIndiaOnyama Limba NEGOTIATION
Tony W PerinJapanAnna Fali PROPOSAL
Jones E DoeCanadaIoni Bowcher NEGOTIATION
Claire F ButtRussiaIvan Magalhaes RENEWAL
Arvin J NestleBrazilOnyama Limba PROPOSAL
Leon M MacleadFranceElwin Sharvill NEGOTIATION
Aruna T WieserSpainXuxue Feng NEW
Wickens L TollnerFranceOnyama Limba NEGOTIATION
Ivar F ButtRussiaIvan Magalhaes QUALIFIED
James N MacleadSpainAsiya Javayant RENEWAL
Mayumi P BologniaSpainAnna Fali NEGOTIATION
Juan X WaycottAustraliaIoni Bowcher RENEWAL
Aika H VocelkaFranceXuxue Feng QUALIFIED
Isabel B ChuiJapanOnyama Limba NEW
Maria S GillianJapanIvan Magalhaes PROPOSAL
Maisha P OldroydFranceAnna Fali QUALIFIED
Ricardo Q DarakjyCanadaElwin Sharvill NEGOTIATION
Octavia C NickaCanadaBernardo Dominic NEGOTIATION
Kaitlin Q SergiAustraliaBernardo Dominic NEW
Jefferson G FlosiAustraliaXuxue Feng NEW
Jeanfrancois P VocelkaGermanyAsiya Javayant NEGOTIATION
Juan L RoysterJapanIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Tony Q AlbaresItalyAmy Elsner NEW
Adams Z ChuiUnited KingdomXuxue Feng QUALIFIED
Ivar C RulapaughRussiaXuxue Feng QUALIFIED
Salvatore I AmigonAustraliaStephen Shaw NEW
Costa B IturbideUnited KingdomBernardo Dominic UNQUALIFIED
Arvin M WieserRussiaBernardo Dominic QUALIFIED
Leon N StensethAustraliaXuxue Feng PROPOSAL
Octavia P InouyeArgentinaAmy Elsner UNQUALIFIED
Leja H FollerIndiaAmy Elsner RENEWAL
Costa A PerinGermanyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio N DarakjyRussia2026-08-16Chemel, James L Cpa PROPOSAL97Bernardo Dominic
1001Nicolas D CaldareraUnited Kingdom2026-07-18Morlong Associates NEW8Xuxue Feng
1002Salvatore N FerenczGermany2026-08-16Buckley Miller Wright UNQUALIFIED67Amy Elsner
1003Faith Q FlosiIndia2026-07-31King, Christopher A Esq PROPOSAL39Ioni Bowcher
1004Maisha I FigeroaFrance2026-08-07Chemel, James L Cpa UNQUALIFIED69Bernardo Dominic
1005Emily Z MarrierCanada2026-08-09Dorl, James J Esq UNQUALIFIED71Ivan Magalhaes
1006Isabel F GauchoRussia2026-07-24Rousseaux, Michael Esq NEW32Stephen Shaw
1007Mujtaba M PoquetteItaly2026-07-29Dorl, James J Esq PROPOSAL30Ivan Magalhaes
1008Murillo M NickaSpain2026-08-01Morlong Associates QUALIFIED26Onyama Limba
1009Leon U OldroydArgentina2026-08-10Chanay, Jeffrey A Esq RENEWAL47Ioni Bowcher
1010Ricardo L CaldareraUnited Kingdom2026-08-03Buckley Miller Wright NEGOTIATION93Onyama Limba
1011Leja R IturbideFrance2026-07-20Truhlar And Truhlar Attys NEW11Xuxue Feng
1012Kaitlin J NestleArgentina2026-08-03Morlong Associates PROPOSAL4Onyama Limba
1013Emily I TollnerBrazil2026-07-26Truhlar And Truhlar Attys RENEWAL93Xuxue Feng
1014Adams H SaylorsArgentina2026-08-02Feiner Bros RENEWAL85Ivan Magalhaes
1015Misaki X SaylorsGermany2026-08-16King, Christopher A Esq UNQUALIFIED49Stephen Shaw
1016Munro O BowleyUnited Kingdom2026-07-19Truhlar And Truhlar Attys NEW78Ioni Bowcher
1017Aditya G StockhamJapan2026-08-16Benton, John B Jr RENEWAL72Stephen Shaw
1018Adams X BriddickArgentina2026-08-16Chanay, Jeffrey A Esq NEGOTIATION56Anna Fali
1019Maisha N PerinItaly2026-07-29Truhlar And Truhlar Attys NEGOTIATION53Ioni Bowcher
1020Mayumi J CaudyUnited Kingdom2026-07-29Morlong Associates NEGOTIATION44Asiya Javayant
1021Leja I GarufiRussia2026-08-03Buckley Miller Wright PROPOSAL37Amy Elsner
1022Clifford E MacleadBrazil2026-07-25Morlong Associates PROPOSAL74Ioni Bowcher
1023Munro J StockhamUnited Kingdom2026-07-24Feltz Printing Service NEGOTIATION44Asiya Javayant
1024Julie R VenereFrance2026-08-03King, Christopher A Esq QUALIFIED72Amy Elsner
1025Leja D BriddickFrance2026-07-30Rangoni Of Florence QUALIFIED52Elwin Sharvill
1026Aditya S SaylorsAustralia2026-08-12Buckley Miller Wright QUALIFIED46Elwin Sharvill
1027Tony W SergiIndia2026-08-12Printing Dimensions PROPOSAL73Onyama Limba
1028Julie Y DarakjyRussia2026-08-11Chanay, Jeffrey A Esq UNQUALIFIED53Anna Fali
1029Munro N CaldareraBrazil2026-08-13Chemel, James L Cpa NEGOTIATION34Ivan Magalhaes
1030Wickens M SergiIndia2026-08-11Buckley Miller Wright QUALIFIED56Elwin Sharvill
1031Claire Q StensethArgentina2026-08-04Chapman, Ross E Esq RENEWAL98Stephen Shaw
1032David Q KolmetzAustralia2026-08-13King, Christopher A Esq NEW89Asiya Javayant
1033Silvio C PerinBrazil2026-07-25Feiner Bros NEW6Ivan Magalhaes
1034David I OldroydFrance2026-08-12Commercial Press QUALIFIED33Ioni Bowcher
1035Jeanfrancois U StensethItaly2026-08-04Printing Dimensions NEGOTIATION30Stephen Shaw
1036Greenwood Z CaudyAustralia2026-08-07Printing Dimensions RENEWAL66Stephen Shaw
1037Alejandro X StockhamUnited Kingdom2026-07-18Printing Dimensions QUALIFIED13Stephen Shaw
1038Octavia L GarufiItaly2026-07-23Rangoni Of Florence PROPOSAL86Ioni Bowcher
1039Sinclair S WaycottIndia2026-08-13Feiner Bros NEW31Xuxue Feng
1040Jones U TollnerRussia2026-07-27Printing Dimensions NEGOTIATION99Asiya Javayant
1041Smith N ButtSpain2026-07-25Chemel, James L Cpa PROPOSAL82Asiya Javayant
1042Ashley M FerenczArgentina2026-07-26Chapman, Ross E Esq UNQUALIFIED4Onyama Limba
1043Izzy V AmigonGermany2026-08-07Rousseaux, Michael Esq NEGOTIATION32Stephen Shaw
1044Sinclair N PoquetteGermany2026-07-27Benton, John B Jr NEW44Stephen Shaw
1045David P PoquetteIndia2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED23Amy Elsner
1046Costa X WhobreyGermany2026-08-08Buckley Miller Wright NEW5Elwin Sharvill
1047Morrow S DoeAustralia2026-08-01Morlong Associates RENEWAL53Onyama Limba
1048Leja V PaprockiUnited Kingdom2026-08-16Buckley Miller Wright RENEWAL29Bernardo Dominic
1049Morrow F BriddickArgentina2026-07-18King, Christopher A Esq NEGOTIATION27Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Costa M RulapaughUnited KingdomElwin Sharvill QUALIFIED
Munro P NestleAustraliaBernardo Dominic NEW
Tony T SlusarskiArgentinaAsiya Javayant RENEWAL
Aruna K MarrierArgentinaOnyama Limba NEW
Alejandro V DarakjyIndiaXuxue Feng NEW
Murillo S AlbaresGermanyElwin Sharvill RENEWAL
Emily A WaycottCanadaOnyama Limba PROPOSAL
Kaitlin A DoeGermanyElwin Sharvill UNQUALIFIED
Kadeem V TollnerGermanyAsiya Javayant RENEWAL
Jennifer Q FigeroaIndiaAmy Elsner NEW
Deepesh P DarakjyCanadaAnna Fali NEGOTIATION
Greenwood R FlosiIndiaXuxue Feng UNQUALIFIED
Rodrigues X PaprockiFranceAsiya Javayant NEW
Octavia K RoysterBrazilAmy Elsner NEW
Rodrigues F TollnerRussiaStephen Shaw NEGOTIATION
Adams D MaletUnited KingdomXuxue Feng UNQUALIFIED
Deepesh U BowleySpainIoni Bowcher NEW
Jefferson N NickaUnited KingdomIoni Bowcher PROPOSAL
Claire G VocelkaBrazilIoni Bowcher QUALIFIED
Aditya I PoquetteBrazilBernardo Dominic NEGOTIATION
Costa T WaycottJapanStephen Shaw PROPOSAL
Ashley R StensethFranceXuxue Feng UNQUALIFIED
Costa M RimIndiaBernardo Dominic QUALIFIED
Stacey D BriddickBrazilAsiya Javayant UNQUALIFIED
Munro E TollnerItalyAnna Fali PROPOSAL
Munro Z GlickCanadaStephen Shaw QUALIFIED
Tony V FollerJapanAsiya Javayant NEW
Morrow T MaletArgentinaOnyama Limba NEGOTIATION
Ivar E PaprockiItalyIvan Magalhaes QUALIFIED
Octavia N ChuiUnited KingdomIvan Magalhaes RENEWAL
Kadeem A SlusarskiGermanyElwin Sharvill UNQUALIFIED
Aika G FigeroaGermanyIvan Magalhaes PROPOSAL
Aditya V CaudyGermanyElwin Sharvill PROPOSAL
Emily L StensethBrazilAnna Fali NEGOTIATION
Kadeem Y ShinkoRussiaIvan Magalhaes QUALIFIED
Morrow M CaudyRussiaIoni Bowcher NEGOTIATION
Smith X RoysterJapanIvan Magalhaes PROPOSAL
Francesco D RoysterArgentinaElwin Sharvill RENEWAL
Maisha M OldroydCanadaOnyama Limba RENEWAL
Isabel S DarakjyIndiaIvan Magalhaes NEW
Jennifer Z GillianArgentinaXuxue Feng PROPOSAL
Mayumi Y FigeroaCanadaBernardo Dominic UNQUALIFIED
Francesco C RimFranceAnna Fali QUALIFIED
Kaitlin G FerenczAustraliaAmy Elsner RENEWAL
Mayumi H IturbideBrazilAmy Elsner NEGOTIATION
Aditya E BriddickRussiaAnna Fali QUALIFIED
James C AlbaresSpainElwin Sharvill QUALIFIED
Jones M PaprockiFranceBernardo Dominic RENEWAL
Kaitlin Z DarakjySpainOnyama Limba QUALIFIED
Jefferson T PaprockiSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
Sinclair J Rim
Isabel R Rulapaugh
Faith I Stockham
James U Campain
Jones F Doe
Misaki T Kolmetz
Stacey O Caldarera
Rodrigues Z Paprocki
Claire G Ferencz
Johnson N Nestle
Greenwood A Doe
Aika Y Darakjy
Julie T Sergi
Isabel R Briddick
Darci U Paprocki
Rodrigues Y Malet
Nicolas R Marrier
Darci U Glick
Mujtaba M Ostrosky
Sinclair P Whobrey
Juan H Darakjy
Smith V Bolognia
Silvio W Sergi
Juan C Flosi
Darci T Bowley
Smith W Amigon
Mayumi L Saylors
Kaitlin T Sergi
Faith T Ostrosky
Morrow H Campain
Darci D Bowley
Deepesh R Albares
Misaki M Briddick
Ricardo L Nestle
Isabel K Whobrey
Wickens Z Glick
Francesco K Nicka
Jones A Poquette
Leja F Glick
Ashley U Tollner
Antonio X Kusko
Silvio B Slusarski
Smith N Figeroa
Johnson V Bolognia
Deepesh M Waycott
Leon R Caldarera
Munro M Garufi
Kaitlin J Iturbide
Chavez I Malet
Morrow R Inouye
IdCountryDate
1000Italy2026-08-12
1001Italy2026-07-23
1002Brazil2026-07-23
1003Italy2026-07-24
1004France2026-07-27
1005Japan2026-07-31
1006Italy2026-07-26
1007Japan2026-07-21
1008United Kingdom2026-08-13
1009France2026-08-09
1010India2026-07-19
1011United Kingdom2026-08-12
1012United Kingdom2026-08-03
1013Russia2026-08-14
1014Italy2026-08-07
1015India2026-07-22
1016Australia2026-07-24
1017Russia2026-08-13
1018Germany2026-08-03
1019Spain2026-07-22
1020Australia2026-07-21
1021Canada2026-07-25
1022Italy2026-08-13
1023Italy2026-08-05
1024France2026-07-28
1025Australia2026-07-22
1026Spain2026-08-13
1027United Kingdom2026-08-14
1028Spain2026-07-27
1029Argentina2026-07-27
1030Canada2026-07-18
1031Argentina2026-07-25
1032Canada2026-08-15
1033Italy2026-07-25
1034Russia2026-07-20
1035India2026-07-24
1036France2026-08-08
1037France2026-07-18
1038Canada2026-08-12
1039India2026-07-27
1040Argentina2026-07-20
1041France2026-08-09
1042Italy2026-07-20
1043India2026-08-01
1044Canada2026-08-04
1045Italy2026-08-13
1046Russia2026-08-13
1047Canada2026-08-09
1048India2026-08-04
1049Australia2026-07-26

On-Demand Data

NameIdCountryDate
Leon N Wieser1000Germany2026-08-01
Sinclair F Nestle1001Canada2026-07-20
Tony E Campain1002United Kingdom2026-08-05
Cody Y Maclead1003France2026-08-02
Julie S Caudy1004India2026-08-15
Juan V Gaucho1005United Kingdom2026-07-22
Aditya I Tollner1006Australia2026-07-24
Leon B Rulapaugh1007Argentina2026-08-09
Chavez G Paprocki1008Russia2026-07-25
David M Tollner1009India2026-08-12
Jones Q Doe1010Germany2026-07-23
Cody G Schemmer1011France2026-07-23
Maria A Butt1012India2026-07-25
Jones O Stenseth1013Brazil2026-08-16
Jefferson R Malet1014Argentina2026-07-19
Mayumi D Rulapaugh1015Germany2026-08-08
Mayumi D Ruta1016Spain2026-07-30
Salvatore A Bowley1017Canada2026-08-12
Morrow I Stockham1018France2026-07-19
Ricardo F Albares1019Italy2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco Y InouyeGermanyAsiya Javayant UNQUALIFIED
Kaitlin X ShinkoCanadaElwin Sharvill NEGOTIATION
Greenwood W FigeroaIndiaAnna Fali UNQUALIFIED
Ashley P GauchoAustraliaAmy Elsner NEGOTIATION
Nicolas A MarrierBrazilIvan Magalhaes QUALIFIED
Claire F GauchoItalyOnyama Limba NEGOTIATION
Mujtaba T GauchoArgentinaAmy Elsner RENEWAL
Juan O RulapaughIndiaBernardo Dominic RENEWAL
Sinclair U MaletIndiaStephen Shaw NEGOTIATION
Arvin H DarakjyArgentinaIvan Magalhaes NEGOTIATION
Octavia S SchemmerAustraliaOnyama Limba NEW
Silvio C OstroskySpainAnna Fali RENEWAL
Isabel Y MarrierIndiaOnyama Limba RENEWAL
Antonio W WieserItalyAnna Fali NEGOTIATION
Kadeem W PoquetteBrazilIvan Magalhaes NEGOTIATION
Silvio A VocelkaArgentinaXuxue Feng RENEWAL
Julie R VocelkaGermanyIvan Magalhaes RENEWAL
Maisha P OldroydCanadaOnyama Limba PROPOSAL
Silvio B BowleyIndiaXuxue Feng NEGOTIATION
Maisha I BriddickBrazilElwin Sharvill UNQUALIFIED
Juan G StockhamSpainAsiya Javayant QUALIFIED
Leon N WaycottAustraliaXuxue Feng UNQUALIFIED
Silvio B MaletUnited KingdomXuxue Feng RENEWAL
Juan Q RutaUnited KingdomAsiya Javayant NEGOTIATION
Wickens S AlbaresIndiaAsiya Javayant RENEWAL
Antonio R OstroskyItalyOnyama Limba QUALIFIED
Nicolas E SaylorsSpainAmy Elsner QUALIFIED
Jeanfrancois F WhobreySpainOnyama Limba PROPOSAL
Jennifer R RoysterSpainStephen Shaw PROPOSAL
Jefferson N ShinkoBrazilStephen Shaw RENEWAL
Ashley P TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Johnson C InouyeAustraliaElwin Sharvill RENEWAL
Sinclair M FollerFranceOnyama Limba PROPOSAL
Salvatore Z NickaIndiaXuxue Feng NEGOTIATION
Leja D FlosiFranceBernardo Dominic PROPOSAL
Emily G WaycottFranceBernardo Dominic RENEWAL
Morrow B GarufiFranceOnyama Limba UNQUALIFIED
Aika C StensethUnited KingdomAnna Fali NEW
Costa X CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Alejandro T StockhamJapanElwin Sharvill 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>