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
Smith O CampainGermanyAnna Fali NEW
Greenwood D MacleadJapanAsiya Javayant NEW
Kaitlin I NestleArgentinaStephen Shaw PROPOSAL
Alejandro T PoquetteGermanyBernardo Dominic QUALIFIED
Faith K DarakjyArgentinaXuxue Feng PROPOSAL
Tony A MaletCanadaOnyama Limba UNQUALIFIED
Antonio D CaldareraCanadaIoni Bowcher RENEWAL
Aditya L InouyeSpainBernardo Dominic PROPOSAL
Clifford F OstroskyArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois T RimArgentinaXuxue Feng PROPOSAL
Cody J PaprockiArgentinaIoni Bowcher QUALIFIED
Francesco K VenereSpainXuxue Feng NEGOTIATION
Aika B SergiBrazilAmy Elsner UNQUALIFIED
Ivar E NickaAustraliaOnyama Limba RENEWAL
Leja K DilliardSpainXuxue Feng PROPOSAL
James P AmigonAustraliaBernardo Dominic PROPOSAL
Julie B OstroskyArgentinaStephen Shaw NEGOTIATION
Maisha K BowleyCanadaAsiya Javayant NEGOTIATION
Ivar S SaylorsIndiaOnyama Limba RENEWAL
Johnson M WhobreyBrazilBernardo Dominic NEW
Silvio A BowleyFranceAsiya Javayant PROPOSAL
Cody H PoquetteItalyElwin Sharvill QUALIFIED
Deepesh G GarufiItalyStephen Shaw PROPOSAL
Aika I BologniaGermanyElwin Sharvill NEGOTIATION
Sinclair Q FigeroaRussiaElwin Sharvill QUALIFIED
Smith R MaletItalyElwin Sharvill NEGOTIATION
Maria L OstroskyRussiaAsiya Javayant PROPOSAL
Ashley V SergiItalyAsiya Javayant RENEWAL
David X WaycottJapanIvan Magalhaes PROPOSAL
Ricardo L WaycottCanadaStephen Shaw NEGOTIATION
Maisha H BriddickSpainXuxue Feng NEGOTIATION
Ashley T StockhamSpainIoni Bowcher UNQUALIFIED
Munro E DoeBrazilXuxue Feng UNQUALIFIED
Julie I PaprockiIndiaAmy Elsner UNQUALIFIED
Juan C GarufiJapanAmy Elsner NEW
Misaki A IturbideRussiaIoni Bowcher NEW
Costa R CaldareraCanadaAsiya Javayant NEW
Octavia D AlbaresSpainOnyama Limba RENEWAL
Aditya B SchemmerCanadaXuxue Feng NEW
Misaki R FollerGermanyElwin Sharvill PROPOSAL
Jeanfrancois X OstroskyItalyAmy Elsner NEW
Izzy A KolmetzCanadaAsiya Javayant RENEWAL
Juan O ButtItalyOnyama Limba RENEWAL
Salvatore D MaletBrazilStephen Shaw NEW
Faith I RulapaughFranceAsiya Javayant UNQUALIFIED
Clifford Z VenereBrazilAsiya Javayant UNQUALIFIED
Aruna M WaycottUnited KingdomAnna Fali QUALIFIED
Ashley Y CampainCanadaOnyama Limba NEGOTIATION
Isabel E GarufiSpainOnyama Limba PROPOSAL
Sinclair Q IturbideCanadaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
James P VocelkaAustraliaOnyama Limba QUALIFIED
David J FigeroaItalyIvan Magalhaes NEW
Silvio H SergiIndiaOnyama Limba PROPOSAL
Johnson C FlosiRussiaIoni Bowcher QUALIFIED
Aditya M WieserSpainAnna Fali PROPOSAL
Morrow H FigeroaSpainXuxue Feng RENEWAL
Stacey D OstroskyCanadaAnna Fali RENEWAL
Silvio B PoquetteGermanyIvan Magalhaes NEW
Tony R SergiSpainIvan Magalhaes NEW
Murillo C GillianCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody G RoysterAustralia2026-08-15Dorl, James J Esq PROPOSAL80Asiya Javayant
1001Leja T RoysterIndia2026-08-27Rousseaux, Michael Esq UNQUALIFIED43Onyama Limba
1002Greenwood U MarrierUnited Kingdom2026-08-15Chemel, James L Cpa RENEWAL71Ioni Bowcher
1003Juan U VocelkaBrazil2026-08-14Chapman, Ross E Esq NEGOTIATION61Xuxue Feng
1004James J FigeroaSpain2026-08-22Rangoni Of Florence QUALIFIED67Onyama Limba
1005Mayumi Z OstroskyItaly2026-08-25Rangoni Of Florence NEW6Anna Fali
1006Aruna U FigeroaFrance2026-08-31Truhlar And Truhlar Attys UNQUALIFIED78Asiya Javayant
1007Deepesh X VenereSpain2026-08-17Commercial Press NEW65Onyama Limba
1008Maisha G FlosiArgentina2026-08-20King, Christopher A Esq NEGOTIATION32Stephen Shaw
1009Misaki Q IturbideFrance2026-08-24Morlong Associates PROPOSAL63Asiya Javayant
1010Costa B FigeroaJapan2026-08-29Dorl, James J Esq NEW71Ivan Magalhaes
1011Sinclair I DilliardUnited Kingdom2026-08-15Benton, John B Jr NEGOTIATION94Xuxue Feng
1012Aruna V ShinkoRussia2026-08-17Chemel, James L Cpa QUALIFIED8Asiya Javayant
1013Misaki Y GlickJapan2026-08-07Buckley Miller Wright NEW17Ioni Bowcher
1014Greenwood G ButtSpain2026-08-27Commercial Press UNQUALIFIED92Ioni Bowcher
1015Kaitlin N IturbideArgentina2026-08-12King, Christopher A Esq QUALIFIED93Ivan Magalhaes
1016Costa I RimCanada2026-08-24Feiner Bros UNQUALIFIED44Anna Fali
1017Jones F StockhamAustralia2026-08-25Morlong Associates PROPOSAL83Elwin Sharvill
1018Murillo H SlusarskiRussia2026-08-20Feiner Bros QUALIFIED76Stephen Shaw
1019Izzy N ChuiRussia2026-08-09Buckley Miller Wright QUALIFIED17Anna Fali
1020Nicolas F WhobreyItaly2026-08-24Chanay, Jeffrey A Esq UNQUALIFIED98Ivan Magalhaes
1021Misaki M SaylorsUnited Kingdom2026-08-29Feiner Bros UNQUALIFIED55Xuxue Feng
1022Isabel M StockhamUnited Kingdom2026-08-13Chapman, Ross E Esq NEGOTIATION53Amy Elsner
1023Jones B CaudyGermany2026-08-17Benton, John B Jr NEGOTIATION75Anna Fali
1024Morrow H GarufiBrazil2026-08-28Chanay, Jeffrey A Esq NEW14Asiya Javayant
1025Darci M GlickBrazil2026-08-16Benton, John B Jr NEGOTIATION56Stephen Shaw
1026Emily U BowleyFrance2026-08-07Buckley Miller Wright QUALIFIED94Bernardo Dominic
1027Jefferson A DoeFrance2026-08-09Commercial Press NEW46Ioni Bowcher
1028Isabel M FerenczArgentina2026-08-08Feltz Printing Service NEGOTIATION40Xuxue Feng
1029Sinclair P GlickFrance2026-08-29Rousseaux, Michael Esq NEGOTIATION36Asiya Javayant
1030Kadeem Q FerenczGermany2026-08-04Benton, John B Jr NEW39Ioni Bowcher
1031Maria U MarrierGermany2026-08-31Feiner Bros NEGOTIATION20Amy Elsner
1032Munro E GillianJapan2026-09-01Chemel, James L Cpa RENEWAL55Ioni Bowcher
1033Juan X ShinkoCanada2026-08-06Chanay, Jeffrey A Esq QUALIFIED16Stephen Shaw
1034Claire C OldroydGermany2026-08-29Chemel, James L Cpa PROPOSAL39Ioni Bowcher
1035Greenwood M FollerBrazil2026-09-01Chemel, James L Cpa NEW64Bernardo Dominic
1036Salvatore Z VocelkaIndia2026-08-06Commercial Press UNQUALIFIED44Stephen Shaw
1037Jefferson C GauchoAustralia2026-08-09Feiner Bros RENEWAL89Elwin Sharvill
1038Greenwood M ButtSpain2026-08-08Printing Dimensions UNQUALIFIED3Xuxue Feng
1039Deepesh C FerenczBrazil2026-08-19Commercial Press PROPOSAL28Amy Elsner
1040Claire P MorascaUnited Kingdom2026-08-23Buckley Miller Wright NEW70Bernardo Dominic
1041Murillo I SlusarskiSpain2026-09-01Feiner Bros QUALIFIED71Bernardo Dominic
1042Misaki J VenereBrazil2026-08-05Rousseaux, Michael Esq NEGOTIATION83Stephen Shaw
1043Morrow B GarufiItaly2026-08-13Rousseaux, Michael Esq QUALIFIED76Elwin Sharvill
1044Deepesh K TollnerSpain2026-08-20Printing Dimensions UNQUALIFIED97Ioni Bowcher
1045Silvio J ButtRussia2026-08-30Printing Dimensions RENEWAL64Anna Fali
1046Munro S OldroydIndia2026-08-05Chapman, Ross E Esq RENEWAL37Onyama Limba
1047Ivar S InouyeBrazil2026-08-31Morlong Associates NEGOTIATION51Anna Fali
1048Isabel O FlosiCanada2026-08-10Dorl, James J Esq UNQUALIFIED95Bernardo Dominic
1049Mujtaba K RutaRussia2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Octavia H FerenczFranceXuxue Feng UNQUALIFIED
Jones H OstroskyUnited KingdomIvan Magalhaes NEW
Costa C SergiIndiaElwin Sharvill NEW
David Q GauchoGermanyStephen Shaw UNQUALIFIED
Deepesh T FigeroaCanadaStephen Shaw UNQUALIFIED
David U AlbaresUnited KingdomIvan Magalhaes RENEWAL
Costa W RutaArgentinaAmy Elsner RENEWAL
Tony H NickaItalyStephen Shaw RENEWAL
Clifford K BriddickIndiaIoni Bowcher QUALIFIED
Maisha B AmigonArgentinaElwin Sharvill PROPOSAL
Arvin T CaldareraIndiaIvan Magalhaes QUALIFIED
David O WaycottGermanyIvan Magalhaes QUALIFIED
Francesco K StensethUnited KingdomStephen Shaw QUALIFIED
Aruna M CaudyJapanBernardo Dominic UNQUALIFIED
Smith X RutaItalyBernardo Dominic NEW
Tony W BologniaFranceIvan Magalhaes UNQUALIFIED
Adams C PoquetteJapanStephen Shaw QUALIFIED
Darci W FigeroaAustraliaAsiya Javayant NEW
Aruna K WaycottCanadaOnyama Limba NEW
Misaki W OldroydJapanXuxue Feng RENEWAL
Emily O PerinRussiaElwin Sharvill RENEWAL
Ashley M IturbideCanadaStephen Shaw RENEWAL
Adams Z MaletItalyIoni Bowcher UNQUALIFIED
Emily O ChuiRussiaIoni Bowcher PROPOSAL
Deepesh H RoysterGermanyIvan Magalhaes PROPOSAL
Chavez S MaletJapanXuxue Feng RENEWAL
Johnson O DilliardBrazilAnna Fali RENEWAL
James U NickaFranceXuxue Feng QUALIFIED
Faith M FlosiIndiaXuxue Feng NEW
Francesco Z PerinJapanAmy Elsner UNQUALIFIED
James W WieserBrazilElwin Sharvill QUALIFIED
Emily P IturbideAustraliaOnyama Limba NEW
Wickens M GarufiJapanElwin Sharvill PROPOSAL
Aika L RutaGermanyAmy Elsner NEW
Sinclair F WhobreySpainOnyama Limba UNQUALIFIED
Murillo Q OldroydUnited KingdomOnyama Limba PROPOSAL
Tony D InouyeIndiaIvan Magalhaes QUALIFIED
Jennifer U PaprockiCanadaAmy Elsner RENEWAL
Mujtaba W SlusarskiFranceAnna Fali NEW
Faith A DilliardAustraliaElwin Sharvill QUALIFIED
Jefferson S FollerAustraliaIoni Bowcher UNQUALIFIED
James H ButtRussiaAnna Fali NEW
Claire K MorascaGermanyAmy Elsner QUALIFIED
Darci K CampainFranceAmy Elsner UNQUALIFIED
Salvatore O DoeBrazilElwin Sharvill NEGOTIATION
Jefferson R OldroydGermanyAnna Fali UNQUALIFIED
Francesco I WieserArgentinaAsiya Javayant NEGOTIATION
Silvio J FigeroaItalyIvan Magalhaes QUALIFIED
Jennifer O SchemmerRussiaOnyama Limba QUALIFIED
Chavez S OldroydItalyElwin Sharvill QUALIFIED
Frozen Columns
Name
Ashley Y Vocelka
Izzy S Briddick
Salvatore X Gillian
Sinclair Y Chui
Smith U Caldarera
Aditya M Venere
Silvio E Caldarera
Aruna A Flosi
Rodrigues J Tollner
Alejandro T Iturbide
Clifford W Waycott
Chavez S Ferencz
Aika V Caldarera
Maria M Paprocki
Misaki N Gaucho
Izzy E Maclead
Salvatore S Schemmer
Aruna I Ruta
Tony J Chui
Misaki E Morasca
Kaitlin L Maclead
Alejandro W Perin
Cody W Ruta
Antonio O Foller
Mujtaba W Kolmetz
Mayumi E Inouye
Faith A Schemmer
Sinclair W Iturbide
Francesco Z Vocelka
Kadeem H Chui
Octavia W Maclead
Maria I Stockham
Nicolas J Bowley
Emily Q Rim
Cody W Iturbide
Silvio E Tollner
Adams W Nestle
Izzy F Malet
Octavia S Schemmer
Cody W Malet
Emily N Stockham
Wickens W Bowley
Emily E Poquette
Salvatore O Slusarski
Rodrigues Z Darakjy
Emily C Briddick
Claire O Iturbide
Emily T Slusarski
Smith O Paprocki
David D Perin
IdCountryDate
1000Australia2026-08-17
1001Australia2026-08-20
1002Australia2026-08-30
1003Italy2026-08-24
1004India2026-08-28
1005Brazil2026-08-13
1006Italy2026-08-12
1007Australia2026-08-25
1008Germany2026-08-05
1009United Kingdom2026-08-29
1010Argentina2026-08-19
1011France2026-08-10
1012Spain2026-08-05
1013France2026-08-18
1014Japan2026-08-04
1015Spain2026-08-11
1016Canada2026-08-08
1017Spain2026-08-30
1018Brazil2026-08-04
1019Italy2026-08-13
1020India2026-08-28
1021France2026-08-26
1022Argentina2026-08-27
1023Italy2026-08-20
1024Spain2026-08-08
1025Russia2026-08-09
1026Brazil2026-08-17
1027Canada2026-08-23
1028Argentina2026-08-05
1029United Kingdom2026-08-23
1030Germany2026-08-20
1031United Kingdom2026-08-11
1032France2026-08-15
1033Canada2026-08-24
1034India2026-08-17
1035Russia2026-08-07
1036Canada2026-08-03
1037Argentina2026-08-23
1038Brazil2026-08-08
1039Australia2026-08-15
1040Germany2026-08-12
1041Russia2026-08-03
1042India2026-08-06
1043Canada2026-08-23
1044Argentina2026-08-06
1045Australia2026-08-08
1046Brazil2026-08-25
1047Russia2026-08-09
1048Germany2026-08-05
1049Brazil2026-08-24

On-Demand Data

NameIdCountryDate
Greenwood N Malet1000Russia2026-08-27
Jeanfrancois U Darakjy1001United Kingdom2026-08-16
Adams I Waycott1002Canada2026-08-15
Clifford Y Campain1003United Kingdom2026-08-22
Adams B Figeroa1004Germany2026-08-24
Ashley J Figeroa1005Canada2026-08-10
Maria N Gaucho1006Australia2026-08-20
Leja N Inouye1007Italy2026-08-29
Mujtaba O Perin1008Spain2026-08-31
Julie Z Caldarera1009France2026-08-18
James R Albares1010Canada2026-09-01
Kadeem J Kusko1011United Kingdom2026-08-27
James P Butt1012Russia2026-08-07
Clifford A Glick1013Italy2026-08-31
Antonio B Perin1014India2026-08-14
Wickens N Schemmer1015Canada2026-08-14
Jennifer R Amigon1016United Kingdom2026-08-27
Alejandro P Poquette1017Russia2026-08-25
Kaitlin U Kolmetz1018Australia2026-08-08
Kadeem C Kolmetz1019United Kingdom2026-08-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David Q IturbideIndiaBernardo Dominic RENEWAL
Aditya T SlusarskiBrazilIoni Bowcher PROPOSAL
Cody A AmigonArgentinaStephen Shaw RENEWAL
Smith X WhobreyItalyOnyama Limba NEGOTIATION
Francesco J SchemmerAustraliaElwin Sharvill NEW
Jefferson B AlbaresRussiaIvan Magalhaes PROPOSAL
Clifford M ShinkoGermanyAnna Fali QUALIFIED
Johnson W CampainUnited KingdomXuxue Feng NEGOTIATION
Arvin P StensethArgentinaBernardo Dominic RENEWAL
Deepesh S GlickJapanStephen Shaw QUALIFIED
Sinclair X PerinItalyIoni Bowcher RENEWAL
Aika L BriddickArgentinaIvan Magalhaes NEGOTIATION
Leja R RulapaughSpainOnyama Limba NEGOTIATION
Wickens O AlbaresJapanStephen Shaw RENEWAL
Ivar L KolmetzGermanyStephen Shaw NEW
Smith V MaletRussiaElwin Sharvill QUALIFIED
Julie A NestleAustraliaBernardo Dominic UNQUALIFIED
Stacey V KuskoRussiaIvan Magalhaes NEW
Greenwood G DoeFranceStephen Shaw QUALIFIED
Stacey R BowleyGermanyElwin Sharvill RENEWAL
Leja Q SlusarskiArgentinaStephen Shaw UNQUALIFIED
Faith M StockhamFranceAmy Elsner PROPOSAL
Leon G MaletCanadaOnyama Limba NEGOTIATION
Jeanfrancois T AlbaresAustraliaOnyama Limba UNQUALIFIED
Faith R MarrierIndiaAsiya Javayant NEW
Smith Q GauchoRussiaElwin Sharvill QUALIFIED
Murillo H MaletGermanyAnna Fali QUALIFIED
Aditya M RutaFranceOnyama Limba NEW
Antonio Y MaletUnited KingdomAsiya Javayant NEGOTIATION
Alejandro J PoquetteGermanyAmy Elsner PROPOSAL
Chavez H SchemmerArgentinaAmy Elsner QUALIFIED
Mujtaba V SaylorsItalyStephen Shaw RENEWAL
Ivar L ButtArgentinaIoni Bowcher NEW
Rodrigues U FigeroaRussiaOnyama Limba NEW
Isabel H DilliardFranceXuxue Feng QUALIFIED
Francesco B BologniaAustraliaIoni Bowcher NEGOTIATION
James J SlusarskiRussiaOnyama Limba RENEWAL
Rodrigues V VocelkaBrazilAnna Fali RENEWAL
Salvatore L NickaCanadaStephen Shaw PROPOSAL
Leon V DarakjyUnited KingdomAmy Elsner 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>