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
Aruna Z CampainRussiaBernardo Dominic UNQUALIFIED
Claire Z MaletSpainAnna Fali RENEWAL
Isabel S DilliardCanadaOnyama Limba UNQUALIFIED
Maria S SchemmerRussiaXuxue Feng UNQUALIFIED
Stacey N RimArgentinaElwin Sharvill NEGOTIATION
Leja Z WhobreyJapanStephen Shaw QUALIFIED
Claire J RoysterAustraliaElwin Sharvill RENEWAL
Antonio F DarakjyCanadaStephen Shaw UNQUALIFIED
Aruna K RoysterBrazilElwin Sharvill QUALIFIED
Rodrigues R InouyeIndiaXuxue Feng QUALIFIED
Leon L AmigonUnited KingdomAsiya Javayant RENEWAL
Stacey K VenereIndiaStephen Shaw NEGOTIATION
Kaitlin F VenereRussiaIoni Bowcher UNQUALIFIED
Costa X DarakjyAustraliaAnna Fali UNQUALIFIED
Jennifer X CaldareraSpainAsiya Javayant QUALIFIED
Darci S SlusarskiSpainAmy Elsner UNQUALIFIED
Kadeem O WhobreyGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois F PerinIndiaIvan Magalhaes NEGOTIATION
Arvin N GlickSpainAnna Fali RENEWAL
Deepesh A AlbaresCanadaElwin Sharvill NEW
Ashley T NickaArgentinaAnna Fali NEW
Smith L FlosiSpainIvan Magalhaes UNQUALIFIED
Deepesh K SchemmerItalyIoni Bowcher NEW
Jennifer G StensethJapanXuxue Feng PROPOSAL
Chavez U FlosiSpainIvan Magalhaes NEW
Ivar A GarufiArgentinaElwin Sharvill NEGOTIATION
Maria A MarrierIndiaAsiya Javayant NEGOTIATION
James I MorascaBrazilIvan Magalhaes QUALIFIED
Arvin T PerinAustraliaAmy Elsner RENEWAL
Maria H KolmetzAustraliaAnna Fali RENEWAL
Jennifer S ChuiFranceIvan Magalhaes NEW
Aditya A CaudyAustraliaAsiya Javayant QUALIFIED
Murillo E KuskoArgentinaBernardo Dominic UNQUALIFIED
Murillo X SergiGermanyBernardo Dominic QUALIFIED
Francesco K VocelkaArgentinaBernardo Dominic RENEWAL
Julie N FerenczArgentinaIoni Bowcher UNQUALIFIED
Sinclair B ButtAustraliaElwin Sharvill QUALIFIED
Mujtaba L SaylorsArgentinaStephen Shaw RENEWAL
Antonio J CaudyBrazilBernardo Dominic NEW
Sinclair R ChuiFranceIvan Magalhaes RENEWAL
David W KolmetzAustraliaAsiya Javayant UNQUALIFIED
Ashley S IturbideIndiaOnyama Limba PROPOSAL
Johnson S SchemmerCanadaIoni Bowcher UNQUALIFIED
Stacey E MarrierSpainIvan Magalhaes UNQUALIFIED
Adams H BriddickUnited KingdomIoni Bowcher PROPOSAL
Octavia Q RutaBrazilAmy Elsner RENEWAL
Antonio G VenereItalyElwin Sharvill NEGOTIATION
Cody S ButtJapanBernardo Dominic NEGOTIATION
Greenwood X RulapaughUnited KingdomStephen Shaw PROPOSAL
Mayumi T AmigonCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem V CampainRussiaOnyama Limba RENEWAL
Ivar C WhobreyJapanIvan Magalhaes NEGOTIATION
Kadeem J ButtFranceAmy Elsner PROPOSAL
Silvio H KuskoRussiaAnna Fali NEGOTIATION
Johnson U KuskoArgentinaXuxue Feng NEGOTIATION
Leon L OstroskyGermanyAnna Fali RENEWAL
Aruna R VenereArgentinaAnna Fali PROPOSAL
Silvio C AmigonCanadaIoni Bowcher QUALIFIED
David R KuskoFranceOnyama Limba RENEWAL
Greenwood I FollerUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow P FigeroaUnited Kingdom2026-07-03Truhlar And Truhlar Attys NEGOTIATION58Ivan Magalhaes
1001David L DilliardIndia2026-06-29Chapman, Ross E Esq UNQUALIFIED85Ivan Magalhaes
1002Nicolas L FlosiAustralia2026-06-21Rousseaux, Michael Esq RENEWAL26Xuxue Feng
1003Kadeem S SaylorsFrance2026-06-11Rangoni Of Florence NEW99Anna Fali
1004Ivar W WieserIndia2026-06-27Chemel, James L Cpa NEGOTIATION29Asiya Javayant
1005Tony V NickaItaly2026-06-09Feiner Bros NEGOTIATION23Asiya Javayant
1006Smith W StockhamIndia2026-07-02Chapman, Ross E Esq PROPOSAL70Bernardo Dominic
1007Leon R StockhamItaly2026-07-03Rousseaux, Michael Esq PROPOSAL44Amy Elsner
1008Ashley C NickaCanada2026-06-27Morlong Associates RENEWAL79Ivan Magalhaes
1009Ricardo S MorascaBrazil2026-06-30Dorl, James J Esq PROPOSAL70Stephen Shaw
1010Murillo U GillianAustralia2026-06-16Feltz Printing Service NEW85Anna Fali
1011Tony D ChuiFrance2026-07-05Morlong Associates PROPOSAL35Anna Fali
1012Stacey R BologniaSpain2026-06-12Morlong Associates PROPOSAL62Asiya Javayant
1013Misaki T AmigonJapan2026-07-01Morlong Associates QUALIFIED90Elwin Sharvill
1014Juan H IturbideUnited Kingdom2026-06-22King, Christopher A Esq QUALIFIED86Ivan Magalhaes
1015Francesco K CaldareraRussia2026-06-22Rangoni Of Florence NEGOTIATION38Anna Fali
1016Juan A TollnerUnited Kingdom2026-07-03Printing Dimensions RENEWAL20Onyama Limba
1017Jefferson Z TollnerRussia2026-06-30Rangoni Of Florence QUALIFIED43Bernardo Dominic
1018Mujtaba F RutaAustralia2026-06-21Dorl, James J Esq QUALIFIED41Ioni Bowcher
1019Silvio D MaletSpain2026-06-15Commercial Press PROPOSAL84Anna Fali
1020Arvin Z MacleadItaly2026-06-20Chapman, Ross E Esq UNQUALIFIED4Amy Elsner
1021Ricardo M VocelkaUnited Kingdom2026-06-08Rousseaux, Michael Esq PROPOSAL83Anna Fali
1022Emily N RimIndia2026-06-12Feltz Printing Service NEGOTIATION63Xuxue Feng
1023Isabel K VenereAustralia2026-07-03Chapman, Ross E Esq QUALIFIED3Amy Elsner
1024Darci F MaletGermany2026-07-01Truhlar And Truhlar Attys PROPOSAL4Amy Elsner
1025Leon F RoysterAustralia2026-06-25Printing Dimensions QUALIFIED28Asiya Javayant
1026Darci D MacleadIndia2026-06-27Morlong Associates NEGOTIATION87Ivan Magalhaes
1027Juan X FerenczFrance2026-06-22Rousseaux, Michael Esq RENEWAL92Xuxue Feng
1028Aika H ButtItaly2026-06-09King, Christopher A Esq PROPOSAL17Ioni Bowcher
1029Maria D DilliardArgentina2026-06-22Benton, John B Jr NEW95Ivan Magalhaes
1030Julie B ButtArgentina2026-06-25Morlong Associates NEGOTIATION84Asiya Javayant
1031Octavia R NickaAustralia2026-06-28Morlong Associates RENEWAL43Bernardo Dominic
1032Nicolas Z SlusarskiArgentina2026-06-25Chemel, James L Cpa NEGOTIATION3Xuxue Feng
1033Aika A CaldareraIndia2026-07-02King, Christopher A Esq RENEWAL28Onyama Limba
1034Greenwood V DilliardArgentina2026-06-29Rangoni Of Florence NEW39Onyama Limba
1035Isabel G OstroskySpain2026-07-01Truhlar And Truhlar Attys PROPOSAL66Ivan Magalhaes
1036Munro F GillianSpain2026-06-15Morlong Associates NEW47Elwin Sharvill
1037Ivar N RoysterItaly2026-07-05Chanay, Jeffrey A Esq NEW6Amy Elsner
1038Mayumi X FlosiRussia2026-06-22Benton, John B Jr NEGOTIATION84Ivan Magalhaes
1039Isabel G WieserFrance2026-06-28Feltz Printing Service PROPOSAL70Amy Elsner
1040Greenwood G AmigonFrance2026-06-29Rousseaux, Michael Esq QUALIFIED0Amy Elsner
1041Kadeem M ShinkoCanada2026-06-27Chanay, Jeffrey A Esq PROPOSAL33Elwin Sharvill
1042Jennifer N OstroskyRussia2026-06-29Chapman, Ross E Esq QUALIFIED3Stephen Shaw
1043Smith H MaletIndia2026-06-19Morlong Associates QUALIFIED68Amy Elsner
1044Stacey C SchemmerCanada2026-07-03Truhlar And Truhlar Attys RENEWAL23Anna Fali
1045Arvin I FlosiFrance2026-06-28Printing Dimensions UNQUALIFIED11Stephen Shaw
1046Julie V MacleadCanada2026-06-17Feiner Bros PROPOSAL12Ioni Bowcher
1047Cody H SlusarskiJapan2026-07-04Morlong Associates NEGOTIATION35Asiya Javayant
1048Maisha B RoysterBrazil2026-06-18Chapman, Ross E Esq NEW45Xuxue Feng
1049Greenwood O MarrierGermany2026-06-24Chanay, Jeffrey A Esq NEGOTIATION8Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Arvin L BriddickItalyAsiya Javayant NEW
David R VenereJapanIvan Magalhaes QUALIFIED
Smith D RimAustraliaAmy Elsner QUALIFIED
Sinclair Y OstroskyAustraliaAmy Elsner UNQUALIFIED
Stacey Q NestleArgentinaIoni Bowcher NEW
Ricardo K GauchoGermanyOnyama Limba UNQUALIFIED
Faith N WieserAustraliaIvan Magalhaes UNQUALIFIED
Chavez F InouyeRussiaStephen Shaw NEGOTIATION
Leon H CaudyFranceIvan Magalhaes RENEWAL
Misaki T WhobreyBrazilXuxue Feng QUALIFIED
Aditya I FlosiUnited KingdomAnna Fali NEGOTIATION
Antonio R NestleUnited KingdomAsiya Javayant QUALIFIED
Kaitlin M RimGermanyXuxue Feng RENEWAL
Leja U BologniaJapanElwin Sharvill NEGOTIATION
Julie L OldroydCanadaAnna Fali NEGOTIATION
Isabel I PerinCanadaStephen Shaw PROPOSAL
Claire O DarakjyFranceAnna Fali NEW
Morrow E MaletAustraliaIvan Magalhaes UNQUALIFIED
Costa V AmigonFranceAsiya Javayant NEGOTIATION
Ivar U AlbaresItalyStephen Shaw QUALIFIED
Emily A RoysterFranceElwin Sharvill QUALIFIED
Smith J OldroydFranceBernardo Dominic NEW
Adams V VocelkaRussiaElwin Sharvill PROPOSAL
Ivar R FollerUnited KingdomIoni Bowcher NEGOTIATION
Maisha Z PoquetteRussiaAnna Fali NEGOTIATION
Aruna H MaletAustraliaAmy Elsner UNQUALIFIED
Kaitlin F NestleRussiaOnyama Limba NEGOTIATION
Isabel Q DilliardArgentinaXuxue Feng PROPOSAL
Wickens Z SaylorsRussiaAsiya Javayant NEW
Ivar A MarrierFranceAnna Fali PROPOSAL
Jennifer G VocelkaIndiaAmy Elsner QUALIFIED
Alejandro F GarufiUnited KingdomAmy Elsner PROPOSAL
Jeanfrancois E StensethUnited KingdomAnna Fali NEGOTIATION
Jones J VocelkaGermanyAnna Fali PROPOSAL
Cody I NestleIndiaOnyama Limba RENEWAL
Morrow O DarakjyFranceAsiya Javayant NEW
Jeanfrancois R PerinFranceAsiya Javayant UNQUALIFIED
Maria V OldroydFranceElwin Sharvill NEW
Munro X WhobreyArgentinaIvan Magalhaes NEW
Ivar A AlbaresBrazilIvan Magalhaes QUALIFIED
Costa N WhobreyFranceAnna Fali UNQUALIFIED
Aruna S FollerRussiaBernardo Dominic NEW
Murillo A FlosiIndiaAsiya Javayant UNQUALIFIED
Leja H AmigonJapanXuxue Feng RENEWAL
Adams V StockhamCanadaStephen Shaw QUALIFIED
Johnson Z FerenczSpainBernardo Dominic NEW
Wickens R MaletAustraliaAnna Fali UNQUALIFIED
Kadeem S RulapaughJapanOnyama Limba RENEWAL
Munro X RimAustraliaAnna Fali QUALIFIED
Sinclair Y NestleAustraliaXuxue Feng NEW
Frozen Columns
Name
Costa B Flosi
Ricardo C Foller
Tony C Flosi
Smith Q Gaucho
Sinclair C Vocelka
Chavez W Albares
Maria R Venere
Octavia S Venere
James L Schemmer
Faith D Bolognia
Tony B Maclead
Juan L Shinko
Antonio S Royster
Ashley Z Perin
Munro W Waycott
Chavez S Poquette
Morrow B Marrier
David T Iturbide
Leon S Chui
Greenwood N Dilliard
Izzy L Flosi
Arvin W Stockham
Maria M Sergi
Kaitlin R Flosi
Antonio X Poquette
Deepesh N Rim
Greenwood W Rulapaugh
Wickens F Amigon
Johnson O Briddick
Nicolas Q Darakjy
James M Gillian
Rodrigues A Chui
Francesco K Kolmetz
Clifford S Kusko
Ricardo H Malet
Silvio X Stenseth
Smith Y Ferencz
Francesco N Caldarera
Nicolas V Doe
Mujtaba T Briddick
Isabel O Sergi
Jeanfrancois I Kolmetz
Aditya L Royster
Aditya C Perin
David Q Stenseth
Ashley Q Flosi
Ricardo C Slusarski
David S Poquette
Alejandro I Rulapaugh
Stacey A Marrier
IdCountryDate
1000Germany2026-06-18
1001Brazil2026-07-04
1002Italy2026-06-11
1003Russia2026-07-05
1004Canada2026-06-08
1005Brazil2026-07-04
1006United Kingdom2026-06-28
1007United Kingdom2026-06-11
1008Japan2026-07-03
1009Italy2026-06-07
1010Canada2026-06-27
1011Australia2026-06-15
1012Italy2026-06-18
1013Australia2026-06-14
1014Argentina2026-06-26
1015Italy2026-06-14
1016United Kingdom2026-06-17
1017Argentina2026-06-22
1018Germany2026-06-15
1019Brazil2026-06-17
1020United Kingdom2026-06-17
1021Spain2026-06-21
1022Italy2026-06-14
1023Canada2026-06-17
1024Germany2026-06-15
1025Canada2026-06-28
1026Italy2026-06-25
1027Italy2026-06-18
1028India2026-07-03
1029France2026-06-16
1030Russia2026-06-15
1031Japan2026-07-04
1032Germany2026-06-15
1033Australia2026-06-30
1034India2026-06-25
1035India2026-07-01
1036Russia2026-06-13
1037Canada2026-07-05
1038Australia2026-07-01
1039Italy2026-06-19
1040Japan2026-06-08
1041Spain2026-06-28
1042Italy2026-06-30
1043Germany2026-07-03
1044Spain2026-07-03
1045Japan2026-06-28
1046Australia2026-06-14
1047Argentina2026-06-21
1048Australia2026-06-15
1049Japan2026-06-27

On-Demand Data

NameIdCountryDate
Izzy X Garufi1000France2026-06-09
Johnson J Bolognia1001United Kingdom2026-06-27
Murillo U Nicka1002Argentina2026-06-30
Kadeem H Schemmer1003United Kingdom2026-06-17
Maria G Royster1004India2026-06-24
Silvio U Ruta1005Argentina2026-06-16
Alejandro W Darakjy1006Australia2026-06-10
Jones M Figeroa1007Germany2026-06-24
Morrow N Waycott1008Canada2026-06-14
Julie K Paprocki1009Russia2026-07-02
Jefferson U Albares1010Canada2026-06-16
Johnson R Ferencz1011Japan2026-06-14
Ricardo U Kolmetz1012Germany2026-06-11
Darci R Schemmer1013Canada2026-06-19
Misaki U Gillian1014Argentina2026-06-25
Isabel U Stockham1015Spain2026-06-21
Kaitlin O Kusko1016Germany2026-07-05
Faith X Marrier1017India2026-06-30
Arvin K Saylors1018Canada2026-06-08
Kadeem W Perin1019Australia2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois Z RoysterAustraliaElwin Sharvill QUALIFIED
Julie W DilliardFranceIvan Magalhaes NEW
Silvio R WaycottBrazilAmy Elsner PROPOSAL
Claire D KolmetzJapanBernardo Dominic QUALIFIED
Cody R PoquetteCanadaAmy Elsner PROPOSAL
Leja G AmigonRussiaIvan Magalhaes QUALIFIED
Aruna A StensethUnited KingdomAsiya Javayant NEGOTIATION
Ricardo I KuskoUnited KingdomStephen Shaw QUALIFIED
Jefferson O WieserFranceIoni Bowcher NEGOTIATION
Tony H ShinkoItalyBernardo Dominic NEGOTIATION
Deepesh H CaudyItalyAsiya Javayant NEW
Jones F KuskoUnited KingdomAmy Elsner RENEWAL
Clifford J RulapaughIndiaAsiya Javayant QUALIFIED
Stacey K DarakjyUnited KingdomAsiya Javayant QUALIFIED
Mayumi L ShinkoBrazilIoni Bowcher RENEWAL
Stacey T GauchoCanadaElwin Sharvill NEW
Juan Z ShinkoCanadaElwin Sharvill NEW
Faith T BowleyAustraliaIoni Bowcher UNQUALIFIED
Stacey R BriddickGermanyOnyama Limba NEGOTIATION
Jones Z PaprockiJapanStephen Shaw PROPOSAL
Smith O DarakjyGermanyOnyama Limba RENEWAL
Izzy I BriddickFranceBernardo Dominic UNQUALIFIED
Claire X SchemmerBrazilStephen Shaw UNQUALIFIED
Leon E IturbideCanadaAmy Elsner NEGOTIATION
Antonio Q CaudyGermanyIvan Magalhaes NEGOTIATION
Deepesh I PerinBrazilIoni Bowcher PROPOSAL
Antonio J MorascaGermanyBernardo Dominic NEGOTIATION
Octavia C OldroydFranceElwin Sharvill PROPOSAL
Mayumi N DarakjyIndiaXuxue Feng PROPOSAL
Johnson P RulapaughFranceIvan Magalhaes NEGOTIATION
Smith D ShinkoUnited KingdomElwin Sharvill PROPOSAL
Ashley Y RulapaughGermanyElwin Sharvill NEGOTIATION
Claire M VenereJapanXuxue Feng QUALIFIED
Francesco A OldroydIndiaBernardo Dominic QUALIFIED
Sinclair E RulapaughCanadaOnyama Limba NEGOTIATION
Rodrigues N MacleadUnited KingdomAmy Elsner NEGOTIATION
Rodrigues V AlbaresFranceXuxue Feng PROPOSAL
Misaki V AmigonJapanAmy Elsner QUALIFIED
Leon A FerenczRussiaAmy Elsner PROPOSAL
Leon H StockhamJapanBernardo Dominic 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>