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
Greenwood R CaldareraCanadaBernardo Dominic PROPOSAL
Jeanfrancois D TollnerJapanXuxue Feng UNQUALIFIED
Jeanfrancois W BriddickItalyAnna Fali RENEWAL
Darci Q NestleJapanStephen Shaw QUALIFIED
Munro L CampainRussiaIvan Magalhaes UNQUALIFIED
Stacey I FerenczFranceAsiya Javayant UNQUALIFIED
Juan S MaletFranceAsiya Javayant NEGOTIATION
Tony D CampainBrazilAmy Elsner NEW
Stacey M KolmetzBrazilXuxue Feng RENEWAL
Emily L ShinkoGermanyIvan Magalhaes QUALIFIED
Greenwood J RimFranceElwin Sharvill PROPOSAL
Tony J ChuiCanadaOnyama Limba UNQUALIFIED
Antonio D PaprockiItalyXuxue Feng PROPOSAL
Claire Z RoysterRussiaElwin Sharvill RENEWAL
Arvin Z SergiIndiaElwin Sharvill NEW
Jennifer K GauchoItalyAsiya Javayant NEGOTIATION
Arvin Q InouyeItalyIoni Bowcher NEGOTIATION
Clifford C GauchoUnited KingdomElwin Sharvill RENEWAL
Maria R MaletCanadaIoni Bowcher UNQUALIFIED
Kaitlin F OldroydRussiaStephen Shaw PROPOSAL
Murillo W KuskoUnited KingdomOnyama Limba QUALIFIED
Greenwood Z MorascaGermanyIvan Magalhaes RENEWAL
Kaitlin X GarufiArgentinaOnyama Limba QUALIFIED
Aditya U AmigonAustraliaAsiya Javayant RENEWAL
Isabel V GauchoRussiaElwin Sharvill NEW
Rodrigues F MaletAustraliaIoni Bowcher NEW
Mayumi N DilliardCanadaOnyama Limba PROPOSAL
Aditya R KuskoAustraliaAmy Elsner QUALIFIED
Rodrigues Z FollerCanadaAsiya Javayant RENEWAL
Francesco H StockhamArgentinaAsiya Javayant QUALIFIED
Cody W InouyeRussiaAnna Fali UNQUALIFIED
Stacey W WhobreyJapanOnyama Limba NEGOTIATION
Greenwood V RimRussiaElwin Sharvill NEGOTIATION
Adams A GlickBrazilAsiya Javayant QUALIFIED
Jennifer F ChuiAustraliaAsiya Javayant PROPOSAL
Clifford D OstroskyIndiaOnyama Limba UNQUALIFIED
Deepesh A MarrierIndiaAnna Fali UNQUALIFIED
Stacey V StensethJapanOnyama Limba PROPOSAL
Munro N DilliardBrazilIvan Magalhaes NEW
Kaitlin W OldroydSpainBernardo Dominic QUALIFIED
Leja O WhobreyRussiaXuxue Feng UNQUALIFIED
Morrow Z DoeArgentinaAnna Fali UNQUALIFIED
Arvin Y InouyeSpainAmy Elsner NEGOTIATION
Rodrigues Z FigeroaAustraliaAmy Elsner UNQUALIFIED
Leon T BowleyItalyBernardo Dominic RENEWAL
Adams P MacleadAustraliaXuxue Feng UNQUALIFIED
Sinclair F PoquetteJapanXuxue Feng NEGOTIATION
Antonio V GauchoAustraliaXuxue Feng PROPOSAL
Antonio J BriddickItalyOnyama Limba PROPOSAL
Salvatore D AmigonFranceElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones T RutaArgentinaAnna Fali UNQUALIFIED
Leon D NestleJapanElwin Sharvill UNQUALIFIED
Kaitlin V VenereGermanyStephen Shaw QUALIFIED
Costa C RutaAustraliaElwin Sharvill QUALIFIED
Claire F GauchoIndiaAsiya Javayant PROPOSAL
Darci W ButtUnited KingdomIoni Bowcher NEW
Cody K FollerJapanOnyama Limba NEGOTIATION
Alejandro W WaycottIndiaElwin Sharvill QUALIFIED
Aika P ButtGermanyBernardo Dominic PROPOSAL
Greenwood H MorascaFranceBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson Z OldroydArgentina2026-08-21Chapman, Ross E Esq RENEWAL69Stephen Shaw
1001Isabel H BriddickSpain2026-08-07Rousseaux, Michael Esq RENEWAL49Elwin Sharvill
1002Adams C IturbideAustralia2026-08-16Commercial Press NEW88Stephen Shaw
1003Deepesh O RutaUnited Kingdom2026-08-15Commercial Press RENEWAL69Onyama Limba
1004Murillo X VenereCanada2026-07-29Chapman, Ross E Esq QUALIFIED26Ioni Bowcher
1005Tony E NickaArgentina2026-07-26Feltz Printing Service UNQUALIFIED58Ivan Magalhaes
1006Leon P StensethRussia2026-08-05Buckley Miller Wright UNQUALIFIED59Ivan Magalhaes
1007Ricardo H FollerArgentina2026-08-02Benton, John B Jr UNQUALIFIED16Ivan Magalhaes
1008Leon J WhobreyIndia2026-08-06Rousseaux, Michael Esq RENEWAL0Ioni Bowcher
1009Silvio H MacleadGermany2026-07-30Rousseaux, Michael Esq PROPOSAL63Amy Elsner
1010Francesco G ShinkoSpain2026-08-04Dorl, James J Esq NEGOTIATION61Xuxue Feng
1011Silvio R OldroydSpain2026-07-25Commercial Press NEW0Elwin Sharvill
1012Cody C ButtBrazil2026-08-03Chemel, James L Cpa NEW80Onyama Limba
1013Ashley F BowleySpain2026-08-21Feltz Printing Service UNQUALIFIED4Ioni Bowcher
1014Claire O SlusarskiJapan2026-08-01Chanay, Jeffrey A Esq PROPOSAL59Amy Elsner
1015Francesco V FollerGermany2026-08-22Feiner Bros PROPOSAL31Amy Elsner
1016Julie M StensethGermany2026-08-15Buckley Miller Wright PROPOSAL85Stephen Shaw
1017Greenwood F StockhamRussia2026-07-30Feltz Printing Service RENEWAL60Bernardo Dominic
1018Greenwood A PoquetteItaly2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED91Bernardo Dominic
1019Sinclair L OstroskyArgentina2026-08-22Chanay, Jeffrey A Esq RENEWAL58Asiya Javayant
1020Leon O VocelkaGermany2026-07-26Benton, John B Jr PROPOSAL54Anna Fali
1021Sinclair O WhobreySpain2026-08-04Rangoni Of Florence UNQUALIFIED81Bernardo Dominic
1022Wickens W MarrierGermany2026-08-02Chanay, Jeffrey A Esq QUALIFIED88Anna Fali
1023Munro E TollnerArgentina2026-08-18Feiner Bros PROPOSAL28Xuxue Feng
1024Adams Y BologniaSpain2026-08-19Feltz Printing Service RENEWAL75Amy Elsner
1025Aika N WieserGermany2026-08-01Rangoni Of Florence UNQUALIFIED80Ioni Bowcher
1026Nicolas V MaletGermany2026-08-06Chapman, Ross E Esq PROPOSAL7Ioni Bowcher
1027Sinclair N MarrierArgentina2026-08-15Buckley Miller Wright NEW89Asiya Javayant
1028Deepesh Z RulapaughArgentina2026-07-27Printing Dimensions UNQUALIFIED98Bernardo Dominic
1029Leon A GarufiGermany2026-08-21Chapman, Ross E Esq RENEWAL79Amy Elsner
1030Morrow U FerenczArgentina2026-08-17Dorl, James J Esq NEGOTIATION88Xuxue Feng
1031Aika W SaylorsUnited Kingdom2026-08-19Chemel, James L Cpa NEW19Amy Elsner
1032Jefferson K SaylorsArgentina2026-07-27Chanay, Jeffrey A Esq QUALIFIED38Elwin Sharvill
1033Ivar W CaudyJapan2026-08-19King, Christopher A Esq UNQUALIFIED97Elwin Sharvill
1034Jefferson W RoysterCanada2026-08-15King, Christopher A Esq UNQUALIFIED82Ioni Bowcher
1035Octavia F AlbaresItaly2026-08-03Commercial Press NEW83Stephen Shaw
1036Ashley I TollnerSpain2026-08-14Morlong Associates PROPOSAL26Ivan Magalhaes
1037Octavia W ShinkoBrazil2026-08-14Chapman, Ross E Esq RENEWAL23Xuxue Feng
1038James Y WaycottUnited Kingdom2026-08-19Feltz Printing Service PROPOSAL37Anna Fali
1039Leja F NestleRussia2026-08-06Feiner Bros RENEWAL73Elwin Sharvill
1040Ricardo G BriddickArgentina2026-08-01Chanay, Jeffrey A Esq NEGOTIATION6Amy Elsner
1041Mayumi S SaylorsFrance2026-07-26Chemel, James L Cpa NEGOTIATION69Elwin Sharvill
1042Mujtaba S GauchoIndia2026-07-26Printing Dimensions QUALIFIED68Bernardo Dominic
1043Munro Q KolmetzJapan2026-07-29Rousseaux, Michael Esq NEGOTIATION27Xuxue Feng
1044Nicolas X DarakjyGermany2026-08-22Commercial Press NEW14Anna Fali
1045Nicolas Y RoysterSpain2026-07-30Feiner Bros NEGOTIATION16Asiya Javayant
1046Jeanfrancois F NickaItaly2026-08-08Commercial Press NEW57Xuxue Feng
1047Julie E OstroskyIndia2026-08-14Printing Dimensions NEW35Asiya Javayant
1048Tony G VenereAustralia2026-08-22Dorl, James J Esq NEW58Xuxue Feng
1049Aika D RulapaughGermany2026-07-29Morlong Associates QUALIFIED47Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Antonio D ShinkoRussiaIvan Magalhaes PROPOSAL
Aditya J MarrierAustraliaIoni Bowcher NEW
Costa D GlickCanadaElwin Sharvill RENEWAL
Rodrigues M SlusarskiSpainBernardo Dominic NEW
Antonio Z CampainItalyStephen Shaw PROPOSAL
Faith T ChuiRussiaAmy Elsner RENEWAL
Ivar L GlickUnited KingdomElwin Sharvill PROPOSAL
Greenwood C DarakjyUnited KingdomOnyama Limba NEW
David T MacleadRussiaOnyama Limba RENEWAL
Jeanfrancois J ChuiAustraliaIvan Magalhaes QUALIFIED
Antonio G MorascaAustraliaAmy Elsner NEW
Jeanfrancois X IturbideFranceXuxue Feng NEW
Jefferson Q FollerJapanStephen Shaw NEW
Kaitlin N WhobreySpainOnyama Limba NEW
Cody P GauchoJapanXuxue Feng NEGOTIATION
Salvatore H KuskoRussiaStephen Shaw NEGOTIATION
Silvio L StockhamJapanIvan Magalhaes RENEWAL
Leja C PerinFranceAnna Fali PROPOSAL
Jennifer C ButtArgentinaOnyama Limba RENEWAL
Silvio V FerenczArgentinaIoni Bowcher QUALIFIED
Maria A BowleyFranceStephen Shaw PROPOSAL
Tony K DarakjyGermanyIvan Magalhaes NEW
Jeanfrancois I FollerArgentinaStephen Shaw NEW
Emily M InouyeItalyStephen Shaw RENEWAL
Smith D WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Adams F CaudySpainOnyama Limba PROPOSAL
Kaitlin G KuskoAustraliaElwin Sharvill PROPOSAL
Silvio G PoquetteBrazilBernardo Dominic NEGOTIATION
Chavez S DarakjyCanadaAmy Elsner UNQUALIFIED
Arvin D BriddickBrazilStephen Shaw RENEWAL
Greenwood J IturbideItalyIvan Magalhaes NEW
David Z StockhamSpainAmy Elsner NEW
Kadeem O KolmetzUnited KingdomXuxue Feng NEW
Francesco R InouyeJapanBernardo Dominic RENEWAL
Johnson H KolmetzBrazilAnna Fali NEGOTIATION
Julie J GauchoBrazilIoni Bowcher RENEWAL
Costa K OstroskyJapanOnyama Limba UNQUALIFIED
Izzy D TollnerRussiaXuxue Feng UNQUALIFIED
Rodrigues D StockhamIndiaXuxue Feng QUALIFIED
Adams X StensethSpainOnyama Limba UNQUALIFIED
Ricardo N BologniaBrazilIvan Magalhaes NEGOTIATION
Munro Z VenereJapanStephen Shaw NEGOTIATION
Mayumi M WieserItalyOnyama Limba NEGOTIATION
Leon X KuskoCanadaElwin Sharvill NEW
Johnson Z AlbaresJapanIoni Bowcher QUALIFIED
Faith O SaylorsItalyIoni Bowcher QUALIFIED
Maisha A TollnerSpainXuxue Feng NEW
Chavez W BriddickGermanyXuxue Feng NEGOTIATION
Cody D OldroydIndiaElwin Sharvill PROPOSAL
Jeanfrancois F FigeroaArgentinaAmy Elsner QUALIFIED
Frozen Columns
Name
Greenwood I Dilliard
Wickens J Rim
Alejandro F Gillian
Misaki F Darakjy
Johnson M Malet
Aika N Caldarera
James M Campain
Jefferson B Sergi
Aika Z Butt
Leon R Butt
Kadeem T Bolognia
Izzy J Ruta
Antonio V Stenseth
Rodrigues N Shinko
Mayumi I Royster
Jefferson M Royster
Salvatore M Stockham
Chavez P Stockham
Aditya R Bolognia
Jennifer K Butt
Morrow H Wieser
Adams K Perin
Greenwood M Morasca
Adams I Stenseth
Nicolas Y Figeroa
Aditya P Garufi
Silvio L Figeroa
Smith H Schemmer
Munro D Perin
Aruna M Ruta
David R Glick
Octavia O Gillian
Morrow R Bolognia
Claire K Bolognia
Aika Q Royster
Antonio E Venere
Darci B Figeroa
Morrow C Figeroa
Salvatore A Albares
Faith W Iturbide
Sinclair E Malet
Juan R Wieser
Mujtaba Z Saylors
Isabel J Malet
David H Glick
Darci W Sergi
Juan A Ruta
Greenwood A Saylors
Costa S Doe
Jefferson T Whobrey
IdCountryDate
1000Brazil2026-08-08
1001United Kingdom2026-07-27
1002Germany2026-07-26
1003Germany2026-07-25
1004Argentina2026-08-02
1005Argentina2026-08-01
1006Japan2026-08-11
1007India2026-07-28
1008Australia2026-08-07
1009Italy2026-08-08
1010France2026-08-20
1011Russia2026-07-26
1012Australia2026-08-15
1013France2026-07-28
1014Canada2026-08-14
1015France2026-07-24
1016Australia2026-08-19
1017Canada2026-07-26
1018Spain2026-08-03
1019Australia2026-07-29
1020Brazil2026-07-24
1021Argentina2026-08-12
1022Germany2026-08-22
1023Italy2026-08-17
1024Italy2026-08-06
1025Russia2026-08-22
1026United Kingdom2026-08-05
1027Spain2026-07-28
1028United Kingdom2026-07-26
1029Australia2026-07-25
1030Brazil2026-08-10
1031India2026-08-04
1032Japan2026-08-03
1033Canada2026-08-16
1034Canada2026-08-04
1035Japan2026-08-15
1036Argentina2026-07-29
1037Brazil2026-07-24
1038India2026-08-12
1039Brazil2026-08-16
1040Australia2026-07-29
1041Italy2026-07-29
1042France2026-07-27
1043France2026-08-03
1044Japan2026-08-17
1045Italy2026-08-02
1046Russia2026-08-08
1047Canada2026-08-14
1048United Kingdom2026-08-09
1049Brazil2026-08-20

On-Demand Data

NameIdCountryDate
Nicolas B Nestle1000Brazil2026-08-09
Aditya C Gillian1001Argentina2026-08-03
Aditya F Amigon1002Germany2026-07-24
Arvin K Campain1003France2026-08-12
Greenwood Z Doe1004Italy2026-07-28
Darci G Perin1005Germany2026-08-16
Izzy R Iturbide1006Brazil2026-08-03
Misaki X Sergi1007Canada2026-08-04
Juan M Saylors1008France2026-08-17
Misaki X Sergi1009Russia2026-08-17
David O Ruta1010Brazil2026-08-01
Sinclair W Oldroyd1011Russia2026-08-05
Aika I Paprocki1012India2026-07-26
James Z Maclead1013Germany2026-08-10
Stacey I Figeroa1014Canada2026-08-11
Kadeem Z Albares1015United Kingdom2026-07-28
Mujtaba V Stenseth1016Italy2026-08-03
Ashley J Kusko1017Brazil2026-08-21
Silvio X Bolognia1018Germany2026-07-24
Murillo T Kolmetz1019Japan2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna T KolmetzJapanIvan Magalhaes NEGOTIATION
Tony L SaylorsBrazilElwin Sharvill QUALIFIED
Juan N SlusarskiUnited KingdomXuxue Feng PROPOSAL
Maria V TollnerGermanyIvan Magalhaes PROPOSAL
Ashley Z AlbaresAustraliaXuxue Feng PROPOSAL
Mujtaba I RimItalyIvan Magalhaes QUALIFIED
Aditya S ShinkoBrazilStephen Shaw NEW
Rodrigues E RoysterJapanStephen Shaw NEW
Maria T CaldareraCanadaOnyama Limba RENEWAL
Sinclair G SlusarskiIndiaAsiya Javayant UNQUALIFIED
Aika S GarufiFranceElwin Sharvill UNQUALIFIED
Smith A OstroskyAustraliaAnna Fali UNQUALIFIED
Ricardo N BologniaJapanAnna Fali NEW
Ashley M AmigonIndiaAnna Fali NEGOTIATION
Octavia X NestleBrazilAmy Elsner RENEWAL
Ricardo I FigeroaCanadaStephen Shaw NEGOTIATION
Ashley U PerinGermanyIoni Bowcher PROPOSAL
Smith J GillianJapanAmy Elsner UNQUALIFIED
David F StensethBrazilBernardo Dominic NEGOTIATION
Jennifer D RutaAustraliaIvan Magalhaes UNQUALIFIED
Darci F WieserCanadaAmy Elsner QUALIFIED
Wickens G WhobreyUnited KingdomStephen Shaw RENEWAL
Chavez U MaletJapanBernardo Dominic UNQUALIFIED
Ashley K WaycottItalyElwin Sharvill PROPOSAL
Jennifer P GillianFranceStephen Shaw NEW
Costa A SaylorsArgentinaBernardo Dominic RENEWAL
Aditya Y VenereGermanyIvan Magalhaes PROPOSAL
Mayumi D FollerCanadaOnyama Limba UNQUALIFIED
Jeanfrancois P OstroskyAustraliaStephen Shaw NEGOTIATION
James M KolmetzCanadaAnna Fali NEGOTIATION
Darci L GauchoSpainStephen Shaw PROPOSAL
Arvin U CaudyJapanIvan Magalhaes NEW
Kaitlin C RimRussiaStephen Shaw UNQUALIFIED
Wickens C FollerSpainBernardo Dominic RENEWAL
Nicolas Y FlosiIndiaXuxue Feng NEW
Jefferson M DarakjyGermanyAsiya Javayant UNQUALIFIED
Jefferson W OstroskyCanadaStephen Shaw NEGOTIATION
Costa W MarrierSpainAsiya Javayant PROPOSAL
Izzy R WhobreyArgentinaAmy Elsner QUALIFIED
Costa T TollnerCanadaAmy Elsner 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>