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
Adams H MarrierBrazilAsiya Javayant NEGOTIATION
Mayumi Y MaletItalyBernardo Dominic NEW
Deepesh G FlosiBrazilAsiya Javayant RENEWAL
Jennifer N AmigonArgentinaBernardo Dominic RENEWAL
Jennifer E BowleySpainIvan Magalhaes NEGOTIATION
Salvatore R SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Alejandro X AmigonGermanyStephen Shaw NEGOTIATION
Jones N PoquetteAustraliaIvan Magalhaes NEW
Adams G FerenczRussiaAmy Elsner QUALIFIED
Aika Z PerinArgentinaIvan Magalhaes PROPOSAL
David B OstroskyJapanIoni Bowcher UNQUALIFIED
Morrow M WieserItalyAsiya Javayant PROPOSAL
Ivar U GauchoArgentinaAmy Elsner NEGOTIATION
Maisha E OldroydItalyAnna Fali RENEWAL
Antonio U DilliardFranceAsiya Javayant RENEWAL
David H NestleArgentinaAsiya Javayant NEGOTIATION
Aika V CampainSpainStephen Shaw NEGOTIATION
Claire W VenereCanadaIoni Bowcher PROPOSAL
Chavez V FollerBrazilElwin Sharvill UNQUALIFIED
Aika F WieserGermanyStephen Shaw RENEWAL
Morrow N MacleadCanadaIvan Magalhaes NEW
Costa M ButtAustraliaStephen Shaw UNQUALIFIED
Salvatore J RutaBrazilOnyama Limba NEW
Adams M IturbideBrazilStephen Shaw QUALIFIED
Emily F MorascaRussiaAmy Elsner PROPOSAL
Aika E BowleyCanadaAsiya Javayant NEGOTIATION
Leja B CaldareraSpainStephen Shaw NEGOTIATION
Silvio Q SchemmerBrazilAnna Fali NEW
Stacey U WaycottItalyIoni Bowcher NEW
Jeanfrancois X InouyeArgentinaAsiya Javayant UNQUALIFIED
Clifford V GarufiAustraliaOnyama Limba QUALIFIED
Clifford N NickaBrazilIoni Bowcher PROPOSAL
Costa P ChuiUnited KingdomAmy Elsner NEGOTIATION
Nicolas Y StensethAustraliaAmy Elsner UNQUALIFIED
Julie C ShinkoJapanBernardo Dominic NEGOTIATION
David R FigeroaAustraliaAmy Elsner NEW
Aditya F NestleGermanyOnyama Limba QUALIFIED
Cody D MacleadJapanBernardo Dominic UNQUALIFIED
Rodrigues K TollnerArgentinaXuxue Feng QUALIFIED
Johnson T MaletAustraliaElwin Sharvill RENEWAL
Jones B DarakjyGermanyIoni Bowcher PROPOSAL
Jefferson C RimCanadaAmy Elsner QUALIFIED
Francesco K MorascaGermanyIoni Bowcher UNQUALIFIED
Aruna B BologniaRussiaXuxue Feng NEW
Aika A PoquetteCanadaBernardo Dominic NEGOTIATION
Tony L DarakjyGermanyElwin Sharvill RENEWAL
Deepesh C MorascaJapanAsiya Javayant QUALIFIED
Jeanfrancois J GlickCanadaXuxue Feng QUALIFIED
Maria B NestleSpainXuxue Feng PROPOSAL
Jennifer H GillianRussiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily H SaylorsUnited KingdomAmy Elsner NEGOTIATION
Silvio V OstroskyJapanElwin Sharvill NEGOTIATION
Octavia X BriddickBrazilStephen Shaw UNQUALIFIED
Stacey G SchemmerRussiaElwin Sharvill NEW
Jefferson Y StensethCanadaAnna Fali PROPOSAL
Adams T NickaGermanyBernardo Dominic PROPOSAL
Clifford P FollerBrazilOnyama Limba RENEWAL
Munro Q InouyeIndiaAsiya Javayant PROPOSAL
Jeanfrancois P ButtBrazilAsiya Javayant RENEWAL
Leja K MorascaCanadaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues M MorascaAustralia2026-08-15Printing Dimensions NEW12Amy Elsner
1001Mujtaba B CampainFrance2026-08-15Buckley Miller Wright NEW98Onyama Limba
1002David T MorascaGermany2026-08-01King, Christopher A Esq RENEWAL39Asiya Javayant
1003Costa P MorascaRussia2026-08-24Chemel, James L Cpa QUALIFIED42Amy Elsner
1004Smith E NickaAustralia2026-07-31Morlong Associates PROPOSAL15Bernardo Dominic
1005Aruna E RoysterJapan2026-08-17Commercial Press RENEWAL8Anna Fali
1006Munro L FigeroaBrazil2026-08-13Printing Dimensions NEGOTIATION90Ioni Bowcher
1007Leon P GarufiAustralia2026-08-17Benton, John B Jr QUALIFIED50Onyama Limba
1008Antonio V ChuiItaly2026-08-10Feiner Bros UNQUALIFIED63Ioni Bowcher
1009Claire X RutaCanada2026-07-31Morlong Associates NEGOTIATION75Onyama Limba
1010Faith J BologniaIndia2026-08-27King, Christopher A Esq NEW52Ivan Magalhaes
1011Faith O AmigonAustralia2026-08-22Dorl, James J Esq UNQUALIFIED57Asiya Javayant
1012Jennifer D SaylorsGermany2026-08-12Benton, John B Jr RENEWAL34Ioni Bowcher
1013Leon Y AmigonArgentina2026-07-31Feltz Printing Service UNQUALIFIED67Bernardo Dominic
1014Rodrigues X IturbideItaly2026-08-21Chanay, Jeffrey A Esq QUALIFIED5Ivan Magalhaes
1015Alejandro Y MarrierJapan2026-08-17Chemel, James L Cpa PROPOSAL16Stephen Shaw
1016Misaki T BowleyAustralia2026-08-08King, Christopher A Esq NEW75Xuxue Feng
1017Tony E RutaJapan2026-08-19Printing Dimensions RENEWAL96Onyama Limba
1018Jennifer U RutaArgentina2026-08-11Chapman, Ross E Esq PROPOSAL71Xuxue Feng
1019Leon E GauchoSpain2026-08-11Truhlar And Truhlar Attys RENEWAL58Ivan Magalhaes
1020Antonio Z GarufiItaly2026-07-31Chanay, Jeffrey A Esq NEW67Ivan Magalhaes
1021Aruna X CaudyItaly2026-08-02Truhlar And Truhlar Attys NEW39Ioni Bowcher
1022Octavia H GillianFrance2026-08-27Feltz Printing Service NEW63Anna Fali
1023Adams Y VocelkaJapan2026-07-30King, Christopher A Esq NEGOTIATION83Ioni Bowcher
1024Adams Z DarakjyJapan2026-07-30Feiner Bros UNQUALIFIED81Elwin Sharvill
1025Kaitlin R BriddickUnited Kingdom2026-08-14Buckley Miller Wright PROPOSAL39Asiya Javayant
1026Ashley G GauchoBrazil2026-08-17Chemel, James L Cpa RENEWAL27Elwin Sharvill
1027James R StensethSpain2026-08-05Benton, John B Jr RENEWAL34Ivan Magalhaes
1028Smith J MaletCanada2026-08-06Rangoni Of Florence NEW74Amy Elsner
1029Rodrigues Y ChuiJapan2026-08-16King, Christopher A Esq UNQUALIFIED66Onyama Limba
1030Leon T GauchoCanada2026-08-18Printing Dimensions NEGOTIATION56Bernardo Dominic
1031Octavia B WhobreyGermany2026-08-08Buckley Miller Wright PROPOSAL40Onyama Limba
1032Rodrigues Z DilliardIndia2026-08-07Printing Dimensions PROPOSAL94Xuxue Feng
1033Stacey I BologniaIndia2026-08-23Feiner Bros UNQUALIFIED10Ioni Bowcher
1034Stacey E NickaIndia2026-08-22Printing Dimensions NEW84Ivan Magalhaes
1035Johnson T FigeroaJapan2026-07-31Rangoni Of Florence NEGOTIATION27Ivan Magalhaes
1036Kadeem G WaycottFrance2026-08-19Printing Dimensions RENEWAL63Anna Fali
1037Nicolas Y FerenczAustralia2026-08-07Benton, John B Jr PROPOSAL96Stephen Shaw
1038Deepesh V RoysterRussia2026-08-23Rousseaux, Michael Esq PROPOSAL85Anna Fali
1039Jeanfrancois M DarakjyUnited Kingdom2026-08-16Buckley Miller Wright RENEWAL91Amy Elsner
1040Izzy M IturbideBrazil2026-08-18Chanay, Jeffrey A Esq NEGOTIATION15Anna Fali
1041Adams I RoysterCanada2026-08-08Commercial Press RENEWAL5Ioni Bowcher
1042Sinclair B MorascaArgentina2026-08-09Rousseaux, Michael Esq RENEWAL41Stephen Shaw
1043Murillo I IturbideCanada2026-08-07Chemel, James L Cpa NEW76Amy Elsner
1044Aruna E IturbideFrance2026-08-24Rousseaux, Michael Esq NEW60Anna Fali
1045Francesco U MaletFrance2026-08-19Chemel, James L Cpa UNQUALIFIED10Onyama Limba
1046Juan S AlbaresRussia2026-08-13Feltz Printing Service NEW72Xuxue Feng
1047Arvin Y CaldareraBrazil2026-08-25Morlong Associates UNQUALIFIED22Amy Elsner
1048Costa M RulapaughArgentina2026-08-23Printing Dimensions PROPOSAL6Onyama Limba
1049Francesco W FollerRussia2026-08-07King, Christopher A Esq QUALIFIED20Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jennifer X SaylorsSpainIvan Magalhaes PROPOSAL
Antonio X GlickAustraliaAsiya Javayant NEGOTIATION
Jennifer D OldroydCanadaStephen Shaw QUALIFIED
Alejandro R BologniaGermanyAsiya Javayant NEW
Juan R WhobreyJapanStephen Shaw NEGOTIATION
Chavez K ButtJapanXuxue Feng PROPOSAL
Morrow H BowleyGermanyStephen Shaw PROPOSAL
Ashley V StensethRussiaAsiya Javayant QUALIFIED
Leon F BowleyFranceAmy Elsner QUALIFIED
Antonio U VenereJapanAmy Elsner NEW
Francesco X SlusarskiFranceIoni Bowcher QUALIFIED
Morrow O TollnerAustraliaElwin Sharvill NEGOTIATION
Deepesh E DoeItalyAmy Elsner QUALIFIED
Jeanfrancois S FlosiArgentinaIvan Magalhaes QUALIFIED
Stacey S IturbideSpainBernardo Dominic NEW
Faith H InouyeSpainAmy Elsner NEGOTIATION
Maisha P SlusarskiJapanBernardo Dominic RENEWAL
Smith R FigeroaIndiaStephen Shaw RENEWAL
Maisha M RimAustraliaStephen Shaw PROPOSAL
Francesco L WaycottGermanyElwin Sharvill RENEWAL
Nicolas R ShinkoAustraliaXuxue Feng QUALIFIED
Deepesh A MaletJapanStephen Shaw NEW
David T FigeroaUnited KingdomXuxue Feng PROPOSAL
Darci G StockhamSpainAsiya Javayant QUALIFIED
Ricardo X MarrierFranceOnyama Limba NEGOTIATION
David E StockhamGermanyIvan Magalhaes RENEWAL
Silvio A DilliardIndiaIoni Bowcher RENEWAL
Julie U MaletGermanyStephen Shaw NEW
Leja F NestleUnited KingdomIoni Bowcher RENEWAL
Octavia U TollnerJapanAsiya Javayant QUALIFIED
Jefferson L RutaJapanOnyama Limba NEGOTIATION
Silvio Y WaycottCanadaAmy Elsner PROPOSAL
Arvin Z DarakjyAustraliaAnna Fali NEW
James Y PerinGermanyAnna Fali NEGOTIATION
Ricardo D SergiRussiaIoni Bowcher NEW
Kadeem J FerenczUnited KingdomAmy Elsner UNQUALIFIED
Nicolas P AmigonUnited KingdomStephen Shaw QUALIFIED
Aruna D SchemmerGermanyBernardo Dominic UNQUALIFIED
Silvio L FigeroaAustraliaStephen Shaw UNQUALIFIED
Maisha J RutaItalyXuxue Feng UNQUALIFIED
Deepesh D DoeSpainOnyama Limba NEGOTIATION
Leon L WhobreyAustraliaBernardo Dominic UNQUALIFIED
Smith C WhobreyIndiaBernardo Dominic RENEWAL
Leja C MacleadBrazilStephen Shaw NEGOTIATION
Isabel T PoquetteRussiaStephen Shaw PROPOSAL
Silvio F MorascaFranceOnyama Limba NEGOTIATION
Nicolas N SaylorsIndiaBernardo Dominic QUALIFIED
Clifford R NickaIndiaIvan Magalhaes PROPOSAL
Aruna W BowleyRussiaElwin Sharvill RENEWAL
David G ChuiFranceAmy Elsner NEGOTIATION
Frozen Columns
Name
Izzy G Dilliard
David E Royster
Claire I Kolmetz
Julie F Vocelka
Jones E Stockham
David T Ferencz
Silvio I Amigon
Chavez G Foller
Wickens V Caudy
Kadeem M Sergi
Munro W Nicka
Faith M Royster
Aditya Z Rulapaugh
Murillo A Vocelka
Leon V Saylors
Faith Q Foller
Deepesh P Rulapaugh
Aditya H Slusarski
David M Gillian
Mujtaba V Maclead
Adams G Tollner
Alejandro B Gaucho
Murillo N Marrier
Sinclair M Kusko
Morrow B Maclead
Juan Z Rim
James L Gaucho
Johnson Z Oldroyd
Claire R Briddick
Izzy K Ferencz
Emily E Butt
Francesco F Ferencz
Aika Z Dilliard
Darci G Campain
Salvatore K Saylors
Francesco H Flosi
Izzy S Schemmer
Jones P Rulapaugh
Ivar J Maclead
Sinclair D Kolmetz
Adams S Saylors
Maria K Iturbide
Mujtaba I Maclead
Wickens X Kusko
Claire X Amigon
Francesco J Figeroa
Aika O Kusko
Arvin V Iturbide
Leja B Glick
Francesco W Whobrey
IdCountryDate
1000Brazil2026-08-03
1001Brazil2026-08-08
1002Russia2026-08-26
1003India2026-08-12
1004Argentina2026-08-03
1005United Kingdom2026-08-28
1006Brazil2026-08-02
1007Russia2026-08-11
1008Canada2026-08-14
1009Brazil2026-08-07
1010Argentina2026-08-02
1011Japan2026-08-12
1012France2026-08-11
1013Australia2026-08-25
1014Spain2026-07-31
1015Japan2026-08-12
1016Italy2026-08-19
1017United Kingdom2026-08-02
1018India2026-08-21
1019Spain2026-08-12
1020United Kingdom2026-08-10
1021Australia2026-08-09
1022India2026-08-10
1023Italy2026-08-03
1024Argentina2026-08-15
1025Japan2026-08-22
1026Spain2026-08-03
1027Spain2026-08-22
1028Brazil2026-08-03
1029Spain2026-08-19
1030Argentina2026-08-21
1031Canada2026-08-18
1032Japan2026-08-16
1033Germany2026-08-01
1034United Kingdom2026-08-27
1035Italy2026-08-05
1036Argentina2026-08-22
1037Italy2026-08-20
1038France2026-08-20
1039India2026-08-12
1040United Kingdom2026-08-01
1041Japan2026-08-01
1042Russia2026-08-26
1043Brazil2026-08-11
1044Spain2026-08-08
1045Russia2026-08-16
1046United Kingdom2026-08-27
1047Italy2026-08-06
1048Germany2026-08-16
1049United Kingdom2026-08-09

On-Demand Data

NameIdCountryDate
Rodrigues Y Paprocki1000Japan2026-08-03
Izzy F Perin1001Brazil2026-08-16
Izzy V Royster1002Argentina2026-08-14
Jennifer P Glick1003United Kingdom2026-07-30
Alejandro G Inouye1004Germany2026-08-04
Arvin O Poquette1005Japan2026-08-19
Darci C Briddick1006Argentina2026-07-30
Sinclair L Inouye1007Germany2026-08-19
Kadeem V Nestle1008Russia2026-08-28
Aditya N Ferencz1009Japan2026-08-14
Clifford U Foller1010France2026-08-17
Leon Y Gaucho1011Canada2026-07-30
Ricardo U Schemmer1012France2026-08-18
Aditya P Royster1013Australia2026-08-10
Aruna H Sergi1014India2026-08-23
Deepesh D Stockham1015Canada2026-08-04
Salvatore S Maclead1016Argentina2026-08-01
Aditya X Butt1017France2026-08-26
Ricardo B Maclead1018Canada2026-08-13
Smith R Amigon1019Australia2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan L MaletRussiaIoni Bowcher NEGOTIATION
Arvin X MacleadSpainAnna Fali RENEWAL
Darci Y BowleyIndiaXuxue Feng UNQUALIFIED
Antonio I InouyeJapanBernardo Dominic QUALIFIED
Salvatore A PoquetteFranceIoni Bowcher QUALIFIED
Jeanfrancois W RoysterGermanyXuxue Feng PROPOSAL
Ashley B PoquetteJapanAnna Fali NEGOTIATION
Mayumi Y SchemmerFranceIoni Bowcher PROPOSAL
Kadeem B BologniaIndiaXuxue Feng NEW
Arvin E BriddickBrazilIoni Bowcher PROPOSAL
Adams M DilliardGermanyIvan Magalhaes QUALIFIED
Claire V BologniaFranceOnyama Limba NEW
Jones L RoysterRussiaElwin Sharvill UNQUALIFIED
James H GlickCanadaAsiya Javayant PROPOSAL
Darci P OstroskyIndiaOnyama Limba UNQUALIFIED
Cody W DilliardIndiaXuxue Feng PROPOSAL
Arvin L DarakjyIndiaIoni Bowcher NEW
Johnson T MaletRussiaAmy Elsner NEGOTIATION
Ashley Y RoysterCanadaIoni Bowcher RENEWAL
Sinclair J BologniaItalyBernardo Dominic NEW
Juan S StensethUnited KingdomAsiya Javayant QUALIFIED
Stacey A FigeroaItalyElwin Sharvill NEGOTIATION
Leja K SchemmerIndiaXuxue Feng RENEWAL
Francesco H InouyeItalyStephen Shaw PROPOSAL
Aika T GarufiSpainOnyama Limba RENEWAL
Leon T VocelkaArgentinaStephen Shaw RENEWAL
Maria U InouyeGermanyStephen Shaw QUALIFIED
Leon S GarufiUnited KingdomStephen Shaw QUALIFIED
Emily V StensethFranceStephen Shaw NEGOTIATION
Arvin D RimRussiaStephen Shaw QUALIFIED
Isabel F ChuiItalyXuxue Feng PROPOSAL
Munro J GillianIndiaAnna Fali NEGOTIATION
James M FlosiCanadaIvan Magalhaes UNQUALIFIED
Faith M AlbaresAustraliaBernardo Dominic NEGOTIATION
Salvatore U FerenczRussiaOnyama Limba NEW
Leon U WhobreyJapanOnyama Limba UNQUALIFIED
Aika P SchemmerFranceStephen Shaw PROPOSAL
Francesco I SaylorsFranceElwin Sharvill RENEWAL
Maria A ButtArgentinaAsiya Javayant UNQUALIFIED
Greenwood A RimAustraliaOnyama Limba 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>