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
Johnson G BologniaJapanAsiya Javayant NEGOTIATION
Julie K GlickBrazilIvan Magalhaes RENEWAL
Cody S IturbideGermanyAmy Elsner QUALIFIED
Maisha G DoeFranceAnna Fali NEGOTIATION
Jennifer Y MaletIndiaAmy Elsner NEW
Deepesh D StensethArgentinaBernardo Dominic NEGOTIATION
Ashley Q FollerArgentinaAsiya Javayant NEGOTIATION
Ricardo Y WieserArgentinaBernardo Dominic UNQUALIFIED
Ivar D PerinArgentinaOnyama Limba NEGOTIATION
Clifford A GauchoRussiaElwin Sharvill RENEWAL
Jones S StensethFranceOnyama Limba PROPOSAL
Kadeem Q VenereJapanXuxue Feng NEGOTIATION
Silvio W MarrierSpainXuxue Feng NEW
Cody B MaletGermanyXuxue Feng UNQUALIFIED
Faith J WhobreyArgentinaElwin Sharvill QUALIFIED
Leja S KolmetzIndiaOnyama Limba NEW
Deepesh A IturbideRussiaIoni Bowcher UNQUALIFIED
Isabel A StockhamBrazilAmy Elsner QUALIFIED
Alejandro S MacleadBrazilXuxue Feng RENEWAL
Jennifer Y MarrierRussiaIvan Magalhaes NEW
Jennifer R PoquetteAustraliaStephen Shaw RENEWAL
Deepesh F ButtIndiaAsiya Javayant NEGOTIATION
Octavia Y CampainBrazilXuxue Feng UNQUALIFIED
James E RutaSpainOnyama Limba QUALIFIED
Ivar M IturbideRussiaIoni Bowcher RENEWAL
Sinclair Q PaprockiArgentinaAnna Fali QUALIFIED
Wickens H DilliardCanadaStephen Shaw RENEWAL
Arvin D NestleCanadaStephen Shaw NEGOTIATION
Aditya M ChuiBrazilBernardo Dominic QUALIFIED
Claire E FigeroaBrazilAsiya Javayant UNQUALIFIED
Chavez S MaletSpainAmy Elsner RENEWAL
Silvio W FlosiAustraliaStephen Shaw NEW
Jefferson E MacleadGermanyXuxue Feng QUALIFIED
Munro J OstroskyAustraliaAmy Elsner PROPOSAL
Octavia X SchemmerUnited KingdomOnyama Limba NEW
Stacey W InouyeItalyAnna Fali UNQUALIFIED
Francesco S RoysterJapanElwin Sharvill QUALIFIED
James X GarufiIndiaIoni Bowcher UNQUALIFIED
Jennifer O GlickAustraliaIvan Magalhaes NEGOTIATION
Rodrigues V GarufiArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois S OstroskyItalyAmy Elsner RENEWAL
Jeanfrancois M MarrierIndiaIvan Magalhaes RENEWAL
Aika Q VocelkaItalyOnyama Limba NEGOTIATION
Clifford W GlickJapanAsiya Javayant NEW
Jennifer F SergiItalyIvan Magalhaes UNQUALIFIED
Munro K DarakjyBrazilXuxue Feng NEGOTIATION
Mujtaba F AmigonItalyIvan Magalhaes PROPOSAL
Nicolas P AmigonArgentinaElwin Sharvill RENEWAL
Nicolas I KolmetzRussiaElwin Sharvill NEW
Stacey K AlbaresCanadaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez U SergiUnited KingdomOnyama Limba RENEWAL
Deepesh R TollnerRussiaIoni Bowcher PROPOSAL
Smith A FollerArgentinaAsiya Javayant QUALIFIED
Smith Z ChuiJapanIoni Bowcher PROPOSAL
Murillo Q VocelkaUnited KingdomIoni Bowcher RENEWAL
Misaki V PaprockiArgentinaIvan Magalhaes RENEWAL
Munro Y FigeroaBrazilOnyama Limba PROPOSAL
Juan S MaletArgentinaAsiya Javayant NEGOTIATION
Izzy A NickaBrazilXuxue Feng NEW
Emily K StockhamArgentinaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi Z CaudyArgentina2026-08-20Rangoni Of Florence PROPOSAL88Ivan Magalhaes
1001Faith X CaudyUnited Kingdom2026-08-31Rousseaux, Michael Esq NEGOTIATION31Amy Elsner
1002Mayumi G FollerIndia2026-08-12Truhlar And Truhlar Attys NEGOTIATION77Ivan Magalhaes
1003Morrow J SchemmerCanada2026-08-23Truhlar And Truhlar Attys RENEWAL10Asiya Javayant
1004Leja F StockhamGermany2026-08-30Chemel, James L Cpa QUALIFIED21Elwin Sharvill
1005Munro K StockhamJapan2026-08-11Rousseaux, Michael Esq NEW79Ioni Bowcher
1006Jennifer H MaletJapan2026-08-17Printing Dimensions NEW81Ivan Magalhaes
1007Ashley L CaudySpain2026-08-17Rousseaux, Michael Esq NEW83Amy Elsner
1008Isabel B ShinkoBrazil2026-08-23Rangoni Of Florence PROPOSAL84Anna Fali
1009Silvio L NestleUnited Kingdom2026-08-04Rousseaux, Michael Esq QUALIFIED21Anna Fali
1010Wickens Z OstroskyRussia2026-08-06Chapman, Ross E Esq NEW88Anna Fali
1011Leon N KolmetzRussia2026-08-11Dorl, James J Esq RENEWAL19Stephen Shaw
1012Arvin T WhobreyIndia2026-08-27Feltz Printing Service QUALIFIED28Ioni Bowcher
1013Chavez G MaletUnited Kingdom2026-08-18Buckley Miller Wright UNQUALIFIED82Amy Elsner
1014Maria U MorascaArgentina2026-08-18Chemel, James L Cpa QUALIFIED27Ivan Magalhaes
1015Ashley F FollerJapan2026-08-04Rousseaux, Michael Esq PROPOSAL40Stephen Shaw
1016Cody S KuskoRussia2026-08-11Chanay, Jeffrey A Esq QUALIFIED71Xuxue Feng
1017Faith V VenereJapan2026-08-11Chemel, James L Cpa UNQUALIFIED20Stephen Shaw
1018Ivar H RulapaughCanada2026-08-08King, Christopher A Esq NEGOTIATION61Anna Fali
1019Arvin I BologniaUnited Kingdom2026-08-26Buckley Miller Wright NEW24Ivan Magalhaes
1020Rodrigues T RulapaughSpain2026-08-31Chemel, James L Cpa NEW12Anna Fali
1021Morrow Q CaldareraCanada2026-08-20Truhlar And Truhlar Attys QUALIFIED50Xuxue Feng
1022Misaki X DarakjyItaly2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED60Ioni Bowcher
1023Leja W MaletJapan2026-08-12Feiner Bros RENEWAL2Asiya Javayant
1024Darci T WaycottJapan2026-08-17Dorl, James J Esq NEW80Ivan Magalhaes
1025Johnson P MarrierIndia2026-08-09Dorl, James J Esq PROPOSAL49Onyama Limba
1026Francesco K PoquetteBrazil2026-08-02Printing Dimensions PROPOSAL69Asiya Javayant
1027Murillo B BowleyUnited Kingdom2026-08-11Printing Dimensions NEW85Elwin Sharvill
1028Chavez I GlickFrance2026-08-12Buckley Miller Wright NEGOTIATION61Elwin Sharvill
1029Munro Z RulapaughJapan2026-08-12Commercial Press QUALIFIED19Elwin Sharvill
1030Wickens X WaycottArgentina2026-08-11Chemel, James L Cpa NEGOTIATION56Onyama Limba
1031Cody W StensethRussia2026-08-23Buckley Miller Wright NEW70Elwin Sharvill
1032Jeanfrancois I FerenczJapan2026-08-31Feltz Printing Service NEGOTIATION66Bernardo Dominic
1033Adams B AlbaresUnited Kingdom2026-08-25Feiner Bros PROPOSAL66Asiya Javayant
1034Darci M WhobreyCanada2026-08-25Buckley Miller Wright NEGOTIATION74Ioni Bowcher
1035Clifford Z TollnerFrance2026-08-12Chanay, Jeffrey A Esq RENEWAL61Stephen Shaw
1036Jones K WaycottFrance2026-08-10Buckley Miller Wright PROPOSAL58Ivan Magalhaes
1037Leja H RutaItaly2026-08-10Feltz Printing Service QUALIFIED98Onyama Limba
1038Munro C VenereAustralia2026-08-06Buckley Miller Wright UNQUALIFIED75Bernardo Dominic
1039Kaitlin H CaldareraIndia2026-08-04Rousseaux, Michael Esq NEGOTIATION69Stephen Shaw
1040Stacey U GarufiSpain2026-08-18Printing Dimensions NEGOTIATION86Bernardo Dominic
1041Murillo M KuskoCanada2026-08-26King, Christopher A Esq NEGOTIATION71Ioni Bowcher
1042Emily J KuskoRussia2026-08-21King, Christopher A Esq PROPOSAL33Onyama Limba
1043Aruna Y PerinCanada2026-08-28Morlong Associates NEW59Anna Fali
1044Misaki Z ShinkoRussia2026-08-03Morlong Associates UNQUALIFIED16Onyama Limba
1045Kadeem C OstroskyBrazil2026-08-11Feltz Printing Service UNQUALIFIED34Onyama Limba
1046Aruna V BowleyGermany2026-08-10Chanay, Jeffrey A Esq NEGOTIATION24Stephen Shaw
1047Stacey K SchemmerArgentina2026-08-05King, Christopher A Esq NEW36Asiya Javayant
1048Cody F DarakjyFrance2026-08-03Buckley Miller Wright NEW77Bernardo Dominic
1049Aika F DilliardAustralia2026-08-17Rousseaux, Michael Esq PROPOSAL81Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
James C ChuiItalyIoni Bowcher RENEWAL
Nicolas S DarakjyArgentinaAsiya Javayant NEGOTIATION
Stacey Q VenereSpainXuxue Feng NEW
Cody T WieserRussiaAnna Fali QUALIFIED
Antonio L ShinkoItalyAmy Elsner RENEWAL
Wickens P BriddickRussiaIvan Magalhaes PROPOSAL
Sinclair P MaletCanadaStephen Shaw RENEWAL
Francesco G NestleGermanyElwin Sharvill QUALIFIED
Aditya M MacleadArgentinaIvan Magalhaes NEGOTIATION
Ashley V WhobreyAustraliaStephen Shaw NEW
Adams F StockhamIndiaAmy Elsner QUALIFIED
Greenwood Q InouyeJapanOnyama Limba RENEWAL
Kaitlin X StockhamJapanAmy Elsner UNQUALIFIED
Juan H RutaItalyXuxue Feng RENEWAL
Juan D ShinkoArgentinaIvan Magalhaes NEGOTIATION
Kaitlin C OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Francesco T NickaArgentinaAsiya Javayant RENEWAL
Emily T MarrierCanadaOnyama Limba QUALIFIED
Arvin A SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Chavez G BriddickFranceAsiya Javayant RENEWAL
Tony L WaycottItalyXuxue Feng QUALIFIED
Arvin S VenereBrazilElwin Sharvill UNQUALIFIED
Maisha J FollerAustraliaIoni Bowcher QUALIFIED
Claire J IturbideCanadaIoni Bowcher UNQUALIFIED
Murillo F DoeCanadaIvan Magalhaes NEGOTIATION
Julie C MorascaRussiaAnna Fali QUALIFIED
Murillo O NestleItalyBernardo Dominic PROPOSAL
Kaitlin G IturbideFranceElwin Sharvill NEGOTIATION
Stacey Q OldroydAustraliaAmy Elsner NEW
Silvio F InouyeItalyIoni Bowcher UNQUALIFIED
Stacey F TollnerJapanStephen Shaw RENEWAL
Ivar M SaylorsSpainAmy Elsner PROPOSAL
Maisha L CaudyJapanAmy Elsner UNQUALIFIED
Costa W BriddickRussiaIoni Bowcher NEGOTIATION
James V GlickArgentinaXuxue Feng NEW
Jeanfrancois Z NestleIndiaXuxue Feng NEGOTIATION
Ivar B BowleyCanadaStephen Shaw QUALIFIED
Salvatore N StockhamIndiaXuxue Feng PROPOSAL
Emily J CaldareraJapanAsiya Javayant RENEWAL
Antonio E GarufiIndiaIvan Magalhaes QUALIFIED
David Y SchemmerRussiaIoni Bowcher NEGOTIATION
Jones X SaylorsAustraliaIoni Bowcher NEW
Claire H SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Kadeem T DarakjyUnited KingdomOnyama Limba RENEWAL
Wickens Z CaudySpainBernardo Dominic NEW
Octavia V WieserRussiaAmy Elsner QUALIFIED
Leja G KolmetzIndiaBernardo Dominic NEW
Isabel Y SergiAustraliaAsiya Javayant NEGOTIATION
Johnson S RimIndiaAmy Elsner QUALIFIED
Maisha M GarufiIndiaOnyama Limba NEW
Frozen Columns
Name
Aika S Venere
Isabel W Amigon
Julie B Maclead
Murillo S Gaucho
Deepesh H Stenseth
Izzy J Rim
Aditya B Oldroyd
Ricardo T Waycott
Aika M Venere
Ivar F Campain
Deepesh S Bowley
Rodrigues B Chui
James C Chui
Rodrigues A Albares
Kadeem I Schemmer
Francesco R Slusarski
Isabel X Malet
Emily C Caudy
Leon Q Flosi
Silvio G Stenseth
Chavez S Malet
Ivar U Stockham
Francesco P Kolmetz
Julie N Paprocki
Smith I Bolognia
Isabel A Amigon
Ivar E Vocelka
Alejandro C Inouye
Murillo Z Iturbide
Chavez N Campain
Aruna R Morasca
Jennifer O Butt
Emily B Stockham
Aruna D Flosi
Mayumi K Bolognia
Munro V Inouye
Jeanfrancois Q Briddick
Murillo O Caldarera
Jones L Nicka
Greenwood D Schemmer
Mayumi E Garufi
Ivar R Shinko
Rodrigues N Ferencz
Cody T Inouye
Ricardo Q Venere
Isabel Y Gillian
Kaitlin W Morasca
Jennifer X Gaucho
Juan J Marrier
Nicolas I Flosi
IdCountryDate
1000Argentina2026-08-09
1001India2026-08-07
1002Russia2026-08-29
1003Germany2026-08-22
1004India2026-08-13
1005Canada2026-08-12
1006Germany2026-08-02
1007Japan2026-08-08
1008India2026-08-18
1009Japan2026-08-29
1010Spain2026-08-18
1011Japan2026-08-31
1012Russia2026-08-04
1013Canada2026-08-09
1014Russia2026-08-29
1015Brazil2026-08-03
1016France2026-08-28
1017Spain2026-08-04
1018Russia2026-08-15
1019Canada2026-08-20
1020Japan2026-08-03
1021France2026-08-13
1022Brazil2026-08-26
1023India2026-08-28
1024Russia2026-08-10
1025France2026-08-25
1026Brazil2026-08-09
1027Argentina2026-08-29
1028Germany2026-08-26
1029Canada2026-08-08
1030Japan2026-08-22
1031Brazil2026-08-07
1032Japan2026-08-14
1033Italy2026-08-31
1034Spain2026-08-07
1035United Kingdom2026-08-12
1036Germany2026-08-15
1037Australia2026-08-17
1038Spain2026-08-08
1039Canada2026-08-13
1040Germany2026-08-20
1041France2026-08-30
1042Canada2026-08-31
1043Australia2026-08-26
1044India2026-08-20
1045United Kingdom2026-08-17
1046Spain2026-08-19
1047Japan2026-08-31
1048Japan2026-08-02
1049Canada2026-08-06

On-Demand Data

NameIdCountryDate
Murillo K Waycott1000United Kingdom2026-08-25
Jennifer O Inouye1001India2026-08-28
Morrow Y Rim1002Canada2026-08-08
Mayumi E Bolognia1003France2026-08-12
Murillo Z Amigon1004Japan2026-08-18
Octavia W Butt1005Germany2026-08-02
James M Figeroa1006Brazil2026-08-13
Ivar O Butt1007Canada2026-08-04
Maisha W Sergi1008Argentina2026-08-05
Smith B Stockham1009Spain2026-08-27
Adams K Briddick1010Japan2026-08-04
Adams F Maclead1011Brazil2026-08-25
Jeanfrancois U Oldroyd1012Canada2026-08-20
Smith B Perin1013Australia2026-08-31
Claire H Malet1014India2026-08-10
Deepesh N Ruta1015Japan2026-08-30
Darci O Darakjy1016Australia2026-08-16
Antonio G Chui1017Japan2026-08-27
Izzy S Venere1018Germany2026-08-24
Izzy Z Bowley1019Germany2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey X FigeroaBrazilAnna Fali NEW
Rodrigues H StensethAustraliaStephen Shaw PROPOSAL
Clifford G StockhamItalyStephen Shaw PROPOSAL
Deepesh L FerenczBrazilAsiya Javayant QUALIFIED
Ashley H BologniaCanadaXuxue Feng NEGOTIATION
Leon P OstroskyIndiaAsiya Javayant UNQUALIFIED
Isabel A SchemmerSpainIoni Bowcher NEW
Isabel V BologniaRussiaStephen Shaw UNQUALIFIED
Darci G RutaGermanyStephen Shaw QUALIFIED
Mayumi K CaudyCanadaAmy Elsner NEGOTIATION
Nicolas Y AlbaresItalyOnyama Limba NEW
Leja C BologniaItalyIoni Bowcher PROPOSAL
Johnson S AmigonIndiaStephen Shaw RENEWAL
Alejandro C RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Stacey A AmigonSpainOnyama Limba NEGOTIATION
Costa S SergiIndiaAsiya Javayant QUALIFIED
Cody Z SchemmerBrazilOnyama Limba NEGOTIATION
Munro I WaycottUnited KingdomBernardo Dominic NEGOTIATION
Mayumi C SlusarskiJapanElwin Sharvill NEGOTIATION
Claire J MaletGermanyOnyama Limba NEW
Antonio H NestleUnited KingdomStephen Shaw QUALIFIED
Maisha O WieserAustraliaElwin Sharvill NEGOTIATION
Aika A FerenczCanadaBernardo Dominic RENEWAL
David N NickaGermanyIoni Bowcher QUALIFIED
Johnson C AmigonUnited KingdomIoni Bowcher NEGOTIATION
Alejandro D MorascaRussiaAmy Elsner QUALIFIED
Costa M SaylorsRussiaBernardo Dominic NEGOTIATION
Murillo D PoquetteIndiaIvan Magalhaes RENEWAL
Kaitlin O CaudyCanadaStephen Shaw NEW
Aika Z SlusarskiSpainElwin Sharvill NEW
Julie T GarufiSpainXuxue Feng UNQUALIFIED
Munro P GlickArgentinaStephen Shaw UNQUALIFIED
Leja P DilliardIndiaXuxue Feng NEW
Jefferson E OldroydArgentinaElwin Sharvill RENEWAL
Stacey B DarakjySpainOnyama Limba RENEWAL
Tony A MacleadRussiaStephen Shaw PROPOSAL
Ivar B SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy K StensethJapanAsiya Javayant QUALIFIED
James B SaylorsItalyAmy Elsner QUALIFIED
Misaki U CampainJapanAnna Fali 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>