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
Clifford C StockhamBrazilAmy Elsner PROPOSAL
Arvin M BowleyCanadaIvan Magalhaes UNQUALIFIED
Aika B DilliardCanadaOnyama Limba RENEWAL
Julie M RoysterSpainAnna Fali NEW
Misaki Z RulapaughIndiaXuxue Feng UNQUALIFIED
Clifford B TollnerItalyBernardo Dominic RENEWAL
Aika Z NestleJapanAnna Fali NEW
Smith Q MorascaBrazilAmy Elsner RENEWAL
Kaitlin G PoquetteArgentinaBernardo Dominic NEGOTIATION
Leja I RulapaughUnited KingdomBernardo Dominic PROPOSAL
Izzy P FigeroaJapanAmy Elsner UNQUALIFIED
Leja N AlbaresIndiaAsiya Javayant UNQUALIFIED
Chavez Q OldroydIndiaElwin Sharvill QUALIFIED
Aditya A MacleadIndiaIoni Bowcher RENEWAL
Misaki R RutaCanadaBernardo Dominic PROPOSAL
Sinclair D ShinkoIndiaOnyama Limba UNQUALIFIED
Jones H FollerSpainXuxue Feng UNQUALIFIED
Greenwood F KolmetzGermanyIoni Bowcher RENEWAL
Murillo O StensethArgentinaStephen Shaw UNQUALIFIED
Aditya H CampainSpainStephen Shaw RENEWAL
Adams U BowleySpainBernardo Dominic NEGOTIATION
Chavez H OstroskyItalyIoni Bowcher NEGOTIATION
Salvatore R GarufiIndiaIvan Magalhaes NEW
Maisha N RoysterRussiaAmy Elsner UNQUALIFIED
Leon X RoysterCanadaBernardo Dominic QUALIFIED
Smith O FerenczArgentinaIoni Bowcher UNQUALIFIED
Rodrigues X AmigonAustraliaIoni Bowcher RENEWAL
Salvatore Q StockhamFranceAmy Elsner NEGOTIATION
Clifford H ChuiRussiaIoni Bowcher QUALIFIED
Rodrigues X ShinkoFranceXuxue Feng UNQUALIFIED
Jennifer U BologniaJapanAsiya Javayant NEW
Greenwood B WaycottSpainBernardo Dominic NEGOTIATION
Morrow G SchemmerArgentinaOnyama Limba NEGOTIATION
Adams H OldroydJapanIoni Bowcher QUALIFIED
Aditya B PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba H MaletBrazilAmy Elsner PROPOSAL
Morrow A PerinGermanyOnyama Limba NEW
Kaitlin Q FollerBrazilElwin Sharvill QUALIFIED
Aditya H WieserArgentinaBernardo Dominic NEW
Ivar A ShinkoAustraliaAmy Elsner PROPOSAL
Johnson X PoquetteBrazilBernardo Dominic UNQUALIFIED
Darci I BowleyAustraliaAmy Elsner NEGOTIATION
Alejandro M OldroydGermanyXuxue Feng QUALIFIED
Ivar W CaldareraGermanyOnyama Limba NEW
Kadeem L MaletSpainOnyama Limba UNQUALIFIED
Stacey K RoysterUnited KingdomAsiya Javayant NEW
Murillo S MaletUnited KingdomAsiya Javayant UNQUALIFIED
Cody L KuskoBrazilAnna Fali NEGOTIATION
Leon B VocelkaCanadaOnyama Limba QUALIFIED
Emily B MacleadItalyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair O MaletIndiaAnna Fali NEGOTIATION
Faith W CampainRussiaElwin Sharvill UNQUALIFIED
Jeanfrancois N RoysterCanadaStephen Shaw NEW
Stacey V CaudyArgentinaElwin Sharvill QUALIFIED
Clifford V CaldareraArgentinaAmy Elsner NEW
Jones K MacleadUnited KingdomIoni Bowcher PROPOSAL
Salvatore Z InouyeGermanyAmy Elsner NEW
Ivar K VocelkaCanadaAsiya Javayant RENEWAL
James B TollnerGermanyBernardo Dominic NEGOTIATION
Faith V GlickBrazilStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair J StensethItaly2026-06-17Feiner Bros UNQUALIFIED58Elwin Sharvill
1001Jefferson X RoysterIndia2026-06-19Rousseaux, Michael Esq QUALIFIED90Onyama Limba
1002Chavez C BriddickArgentina2026-06-26Buckley Miller Wright NEGOTIATION28Asiya Javayant
1003Leon N RulapaughSpain2026-06-19Rousseaux, Michael Esq PROPOSAL79Xuxue Feng
1004Silvio E AlbaresUnited Kingdom2026-07-07Feltz Printing Service UNQUALIFIED45Anna Fali
1005Smith G FlosiUnited Kingdom2026-06-12Chapman, Ross E Esq NEGOTIATION9Ioni Bowcher
1006Antonio C IturbideIndia2026-06-12Chanay, Jeffrey A Esq RENEWAL42Xuxue Feng
1007Costa G CampainFrance2026-06-17Truhlar And Truhlar Attys NEW99Asiya Javayant
1008Stacey H MarrierCanada2026-06-10Feiner Bros NEGOTIATION27Ivan Magalhaes
1009Izzy R AlbaresGermany2026-06-25Printing Dimensions NEGOTIATION17Stephen Shaw
1010Maria M SaylorsBrazil2026-06-20Commercial Press NEW71Bernardo Dominic
1011Emily A GlickCanada2026-06-24Truhlar And Truhlar Attys NEGOTIATION38Onyama Limba
1012Darci I GlickItaly2026-06-30Truhlar And Truhlar Attys NEGOTIATION45Stephen Shaw
1013Misaki I MarrierIndia2026-06-11King, Christopher A Esq UNQUALIFIED84Xuxue Feng
1014Izzy Q BowleyRussia2026-06-17Chanay, Jeffrey A Esq NEGOTIATION69Elwin Sharvill
1015Izzy I DoeArgentina2026-07-06Chanay, Jeffrey A Esq NEGOTIATION12Bernardo Dominic
1016Jeanfrancois D KuskoUnited Kingdom2026-06-13Printing Dimensions RENEWAL77Amy Elsner
1017Wickens W WaycottSpain2026-06-29Chapman, Ross E Esq QUALIFIED42Amy Elsner
1018Arvin Z SaylorsCanada2026-06-13Feiner Bros RENEWAL85Stephen Shaw
1019Ivar K WieserUnited Kingdom2026-06-17Chemel, James L Cpa RENEWAL25Bernardo Dominic
1020Ricardo H MacleadBrazil2026-06-22Morlong Associates PROPOSAL87Anna Fali
1021Jones O RulapaughItaly2026-06-13Rangoni Of Florence NEGOTIATION56Bernardo Dominic
1022Ivar J MacleadSpain2026-06-27Benton, John B Jr UNQUALIFIED57Ioni Bowcher
1023Aditya S NestleSpain2026-06-09Printing Dimensions QUALIFIED49Ioni Bowcher
1024Jennifer T RutaFrance2026-06-21King, Christopher A Esq NEW20Stephen Shaw
1025Leon B FerenczJapan2026-06-15Benton, John B Jr QUALIFIED6Elwin Sharvill
1026Aika T SlusarskiItaly2026-07-01Chanay, Jeffrey A Esq NEGOTIATION25Xuxue Feng
1027Ricardo R MaletArgentina2026-06-19Feiner Bros UNQUALIFIED32Amy Elsner
1028Maisha O WhobreyBrazil2026-06-21Dorl, James J Esq NEGOTIATION52Xuxue Feng
1029Adams V RutaCanada2026-06-08King, Christopher A Esq PROPOSAL79Stephen Shaw
1030Johnson F SlusarskiArgentina2026-06-22Commercial Press NEGOTIATION52Bernardo Dominic
1031Munro I BriddickCanada2026-06-08Buckley Miller Wright NEW62Amy Elsner
1032Antonio Z SergiBrazil2026-06-11Benton, John B Jr RENEWAL27Bernardo Dominic
1033Maisha O WhobreyBrazil2026-07-05Chemel, James L Cpa NEGOTIATION18Amy Elsner
1034David F MacleadAustralia2026-06-21Chapman, Ross E Esq NEGOTIATION14Bernardo Dominic
1035Morrow C GarufiIndia2026-06-08Truhlar And Truhlar Attys NEW80Amy Elsner
1036Octavia V GillianFrance2026-06-08Rousseaux, Michael Esq NEW25Ioni Bowcher
1037Kadeem A WieserGermany2026-06-09Buckley Miller Wright QUALIFIED18Anna Fali
1038Kaitlin Q SlusarskiUnited Kingdom2026-06-19Chemel, James L Cpa UNQUALIFIED83Stephen Shaw
1039Aditya G MacleadUnited Kingdom2026-06-21Morlong Associates RENEWAL26Ioni Bowcher
1040Arvin A RimSpain2026-07-07Feltz Printing Service UNQUALIFIED37Anna Fali
1041Jennifer B ChuiSpain2026-06-13Rousseaux, Michael Esq QUALIFIED83Ivan Magalhaes
1042Jones G SchemmerFrance2026-06-08Chanay, Jeffrey A Esq NEW43Ivan Magalhaes
1043Juan B GarufiItaly2026-07-06Benton, John B Jr QUALIFIED76Ioni Bowcher
1044Aruna I NickaJapan2026-06-14Benton, John B Jr UNQUALIFIED87Xuxue Feng
1045Izzy R VenereArgentina2026-06-21Chanay, Jeffrey A Esq RENEWAL87Ivan Magalhaes
1046Juan I SergiBrazil2026-06-16Morlong Associates QUALIFIED37Anna Fali
1047Antonio W RutaCanada2026-06-25Feiner Bros PROPOSAL57Stephen Shaw
1048Francesco S DoeIndia2026-06-30Dorl, James J Esq NEW88Elwin Sharvill
1049Leon R AmigonFrance2026-06-09Chanay, Jeffrey A Esq NEGOTIATION14Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois Y KolmetzItalyAsiya Javayant NEW
Johnson M CaudyRussiaIvan Magalhaes QUALIFIED
Chavez P RimUnited KingdomOnyama Limba NEW
Sinclair E BriddickJapanAnna Fali QUALIFIED
Kaitlin L VocelkaFranceAsiya Javayant NEGOTIATION
Smith G FerenczUnited KingdomAnna Fali RENEWAL
Maria U IturbideIndiaIvan Magalhaes PROPOSAL
Chavez F RoysterIndiaElwin Sharvill RENEWAL
Clifford U MaletGermanyIoni Bowcher UNQUALIFIED
Darci Y SaylorsJapanElwin Sharvill UNQUALIFIED
Jefferson Y ShinkoIndiaStephen Shaw PROPOSAL
Deepesh M GauchoItalyBernardo Dominic QUALIFIED
Darci Y GillianArgentinaBernardo Dominic QUALIFIED
Julie D WieserFranceOnyama Limba PROPOSAL
Francesco B FlosiUnited KingdomAsiya Javayant RENEWAL
Ashley L MaletSpainXuxue Feng NEW
Mujtaba U KuskoJapanIoni Bowcher QUALIFIED
Ivar G BowleyFranceIvan Magalhaes QUALIFIED
Aruna Q ButtAustraliaElwin Sharvill NEGOTIATION
Maria D ChuiIndiaBernardo Dominic QUALIFIED
Rodrigues J ChuiUnited KingdomStephen Shaw UNQUALIFIED
Maria P BriddickIndiaStephen Shaw NEGOTIATION
Darci M NestleArgentinaBernardo Dominic UNQUALIFIED
Nicolas Z OstroskySpainIoni Bowcher PROPOSAL
Kadeem I CampainSpainBernardo Dominic NEGOTIATION
Ashley O RulapaughFranceIoni Bowcher PROPOSAL
Stacey L CaudyIndiaIvan Magalhaes QUALIFIED
Faith R PerinCanadaStephen Shaw NEW
Silvio Z RulapaughCanadaStephen Shaw NEW
Sinclair A VenereFranceAsiya Javayant NEW
Arvin E PerinFranceIvan Magalhaes NEW
Jennifer C FerenczIndiaAnna Fali NEW
Munro Q DarakjyArgentinaIvan Magalhaes NEGOTIATION
Ivar I ChuiCanadaAsiya Javayant NEW
Kaitlin U SaylorsIndiaStephen Shaw QUALIFIED
Aruna G FlosiIndiaElwin Sharvill PROPOSAL
Costa H GillianFranceXuxue Feng NEW
Johnson E PoquetteIndiaStephen Shaw NEGOTIATION
Leon N FlosiIndiaAsiya Javayant UNQUALIFIED
Wickens V VocelkaCanadaOnyama Limba UNQUALIFIED
Morrow H BriddickUnited KingdomAnna Fali NEW
Stacey V SaylorsAustraliaAsiya Javayant QUALIFIED
Misaki K WaycottGermanyIoni Bowcher RENEWAL
Kadeem W IturbideBrazilBernardo Dominic RENEWAL
Leja K MarrierBrazilAnna Fali PROPOSAL
Salvatore I GlickJapanIoni Bowcher NEGOTIATION
Kadeem B MaletUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois R KolmetzSpainElwin Sharvill RENEWAL
Clifford P AmigonArgentinaXuxue Feng QUALIFIED
Rodrigues K GlickFranceElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Tony X Morasca
Ivar O Darakjy
Nicolas A Vocelka
Leon S Oldroyd
Isabel O Briddick
Aditya N Morasca
Mujtaba O Ruta
Munro H Amigon
Stacey V Malet
Greenwood A Whobrey
Ashley Q Morasca
Sinclair M Waycott
David X Dilliard
Faith M Tollner
Claire Q Gillian
Deepesh N Venere
Nicolas A Albares
Aruna J Waycott
Deepesh G Albares
Greenwood V Ferencz
Sinclair F Campain
Sinclair R Figeroa
Darci N Nestle
David Z Amigon
Munro M Garufi
Rodrigues G Saylors
Mujtaba M Tollner
Deepesh E Whobrey
Stacey Q Doe
Izzy E Nestle
Jeanfrancois I Maclead
Adams K Schemmer
Maria V Schemmer
Emily J Flosi
Francesco X Gillian
Arvin U Schemmer
Cody J Bowley
Sinclair O Slusarski
Claire R Chui
Adams X Royster
Ivar Q Poquette
Misaki S Nicka
Ivar J Gaucho
Juan D Tollner
Aruna L Whobrey
Antonio Y Doe
Nicolas U Rulapaugh
Aika A Garufi
Alejandro F Kusko
Ricardo P Malet
IdCountryDate
1000Brazil2026-06-18
1001Argentina2026-07-06
1002United Kingdom2026-06-12
1003Australia2026-06-17
1004Spain2026-06-21
1005Australia2026-06-08
1006Italy2026-06-22
1007Germany2026-06-10
1008France2026-06-26
1009Argentina2026-06-30
1010United Kingdom2026-06-19
1011Canada2026-06-26
1012Japan2026-06-28
1013India2026-06-22
1014Germany2026-06-24
1015France2026-06-16
1016Italy2026-06-17
1017Spain2026-07-01
1018United Kingdom2026-06-24
1019United Kingdom2026-06-30
1020Germany2026-06-13
1021Argentina2026-06-10
1022France2026-06-21
1023Germany2026-06-08
1024Italy2026-07-07
1025United Kingdom2026-06-30
1026Russia2026-07-04
1027Italy2026-06-23
1028Japan2026-06-16
1029France2026-06-09
1030France2026-06-13
1031Argentina2026-06-29
1032India2026-06-21
1033Brazil2026-06-11
1034Spain2026-06-30
1035Germany2026-07-06
1036United Kingdom2026-06-14
1037Australia2026-06-08
1038Argentina2026-06-08
1039Australia2026-06-17
1040Japan2026-06-15
1041India2026-06-17
1042Argentina2026-06-22
1043India2026-06-19
1044Canada2026-06-19
1045United Kingdom2026-06-17
1046Italy2026-06-12
1047Japan2026-06-24
1048Germany2026-06-16
1049Canada2026-06-17

On-Demand Data

NameIdCountryDate
Johnson U Ferencz1000Japan2026-06-27
Mayumi X Vocelka1001France2026-06-26
Deepesh M Doe1002Argentina2026-06-16
Nicolas K Inouye1003Australia2026-06-18
Arvin Y Garufi1004India2026-06-14
Faith J Nicka1005Italy2026-06-23
Adams V Doe1006Spain2026-07-01
Jefferson J Venere1007Australia2026-06-27
Adams Y Caldarera1008United Kingdom2026-06-14
Costa H Royster1009France2026-06-11
Arvin I Foller1010Argentina2026-06-15
Stacey E Glick1011France2026-07-07
Sinclair O Doe1012India2026-06-08
Julie N Gillian1013Russia2026-06-19
Darci V Nestle1014Brazil2026-06-15
Salvatore N Gillian1015Spain2026-06-10
Alejandro C Paprocki1016Japan2026-06-22
Isabel W Glick1017Japan2026-06-16
Salvatore N Figeroa1018Argentina2026-06-28
Arvin S Rim1019Australia2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith X RimCanadaBernardo Dominic PROPOSAL
Kadeem Z FollerSpainBernardo Dominic PROPOSAL
Claire B PerinJapanXuxue Feng UNQUALIFIED
Juan V CaldareraItalyIvan Magalhaes PROPOSAL
Sinclair C KolmetzAustraliaOnyama Limba NEW
Silvio B WaycottFranceIoni Bowcher NEGOTIATION
Jeanfrancois H MorascaGermanyAnna Fali PROPOSAL
Kaitlin Y DilliardAustraliaIoni Bowcher NEW
Costa X RutaJapanOnyama Limba RENEWAL
Adams P DarakjyRussiaIvan Magalhaes RENEWAL
Greenwood T SlusarskiUnited KingdomAmy Elsner PROPOSAL
Leon X StensethCanadaXuxue Feng QUALIFIED
Aditya M WhobreyRussiaBernardo Dominic UNQUALIFIED
Cody U VocelkaCanadaIoni Bowcher NEGOTIATION
Wickens X PaprockiFranceStephen Shaw QUALIFIED
Maria K RoysterIndiaIoni Bowcher NEW
Tony H RutaAustraliaAsiya Javayant RENEWAL
Aditya C ButtIndiaAsiya Javayant PROPOSAL
Greenwood M GarufiItalyStephen Shaw NEGOTIATION
Salvatore X FigeroaJapanXuxue Feng UNQUALIFIED
Silvio N InouyeGermanyIoni Bowcher NEW
Nicolas J WieserSpainAsiya Javayant UNQUALIFIED
Silvio J BologniaArgentinaIvan Magalhaes NEGOTIATION
Emily W OstroskyBrazilAnna Fali QUALIFIED
Ashley M VocelkaIndiaElwin Sharvill NEW
Nicolas E FollerSpainBernardo Dominic QUALIFIED
Darci B AlbaresAustraliaAnna Fali UNQUALIFIED
Leon L MarrierSpainAmy Elsner QUALIFIED
Misaki C CampainArgentinaIvan Magalhaes QUALIFIED
Ashley O InouyeIndiaIvan Magalhaes QUALIFIED
Nicolas A MacleadBrazilBernardo Dominic PROPOSAL
Claire L SlusarskiBrazilIvan Magalhaes RENEWAL
Jones U DilliardBrazilStephen Shaw NEW
Tony B AmigonItalyAmy Elsner UNQUALIFIED
Darci X CampainUnited KingdomAnna Fali UNQUALIFIED
Johnson P OstroskyAustraliaElwin Sharvill NEW
Kaitlin S GauchoArgentinaAmy Elsner NEGOTIATION
Tony V FollerArgentinaXuxue Feng NEGOTIATION
Wickens M FollerFranceXuxue Feng QUALIFIED
Leja A NestleItalyStephen Shaw NEW

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