Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

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 C FlosiBrazilOnyama Limba NEW
Claire K KolmetzArgentinaIvan Magalhaes RENEWAL
Adams S ButtGermanyAnna Fali NEGOTIATION
Aruna Y PerinBrazilElwin Sharvill UNQUALIFIED
Emily H FigeroaArgentinaBernardo Dominic NEW
Costa P RutaGermanyOnyama Limba NEGOTIATION
James F CampainItalyXuxue Feng PROPOSAL
Ivar G VenereUnited KingdomAnna Fali PROPOSAL
Rodrigues T MacleadGermanyIvan Magalhaes UNQUALIFIED
Sinclair C FigeroaSpainStephen Shaw RENEWAL
Maisha U GauchoGermanyStephen Shaw PROPOSAL
Maisha G FlosiFranceElwin Sharvill NEW
Tony E OldroydIndiaIoni Bowcher UNQUALIFIED
Stacey W TollnerCanadaAsiya Javayant NEW
Izzy O CaldareraGermanyIoni Bowcher RENEWAL
Maisha X SergiAustraliaAnna Fali RENEWAL
Darci Q InouyeJapanAsiya Javayant QUALIFIED
Maisha M VocelkaUnited KingdomAnna Fali NEGOTIATION
Alejandro X MaletItalyAsiya Javayant NEW
Clifford S FollerSpainIvan Magalhaes RENEWAL
Greenwood G CampainArgentinaOnyama Limba QUALIFIED
Ivar G KolmetzArgentinaElwin Sharvill NEW
James L RutaAustraliaOnyama Limba UNQUALIFIED
Misaki E InouyeFranceAsiya Javayant NEGOTIATION
Izzy W InouyeFranceXuxue Feng QUALIFIED
Adams C WaycottAustraliaElwin Sharvill RENEWAL
Kaitlin V WaycottRussiaAnna Fali NEGOTIATION
Kadeem W FerenczFranceAmy Elsner NEGOTIATION
Kadeem W TollnerIndiaAmy Elsner NEW
Isabel G WaycottIndiaAmy Elsner NEW
Juan B SergiIndiaIvan Magalhaes PROPOSAL
Deepesh D CampainCanadaBernardo Dominic NEW
Sinclair S TollnerItalyStephen Shaw UNQUALIFIED
Jeanfrancois O SaylorsItalyXuxue Feng UNQUALIFIED
Juan O FigeroaCanadaBernardo Dominic NEGOTIATION
Murillo Z WhobreyBrazilIoni Bowcher NEW
Stacey V IturbideRussiaAsiya Javayant UNQUALIFIED
Jefferson I WieserAustraliaIoni Bowcher RENEWAL
Maisha F CaudyFranceOnyama Limba NEW
Octavia Y MacleadFranceXuxue Feng NEGOTIATION
Ricardo N WaycottBrazilXuxue Feng UNQUALIFIED
Leja D FerenczAustraliaElwin Sharvill NEGOTIATION
Izzy U RoysterFranceElwin Sharvill QUALIFIED
Arvin F KuskoArgentinaOnyama Limba NEGOTIATION
Francesco F AmigonFranceBernardo Dominic RENEWAL
Leja N PerinRussiaStephen Shaw UNQUALIFIED
Maisha M PoquetteBrazilIvan Magalhaes RENEWAL
Wickens Q PoquetteJapanElwin Sharvill QUALIFIED
Morrow E GauchoUnited KingdomIvan Magalhaes QUALIFIED
Aditya O InouyeIndiaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony E DarakjyJapanElwin Sharvill PROPOSAL
Smith J DoeRussiaIvan Magalhaes PROPOSAL
Mujtaba L OldroydBrazilIoni Bowcher NEGOTIATION
Claire F VenereGermanyAmy Elsner NEGOTIATION
Adams K FlosiBrazilAsiya Javayant PROPOSAL
Greenwood C DoeItalyElwin Sharvill NEW
Misaki Y DoeIndiaXuxue Feng QUALIFIED
Nicolas F PoquetteJapanXuxue Feng RENEWAL
James J BowleyCanadaAnna Fali PROPOSAL
Emily O PaprockiAustraliaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya E AmigonFrance2025-09-23Rousseaux, Michael Esq UNQUALIFIED83Amy Elsner
1001Rodrigues R SchemmerIndia2025-10-07Printing Dimensions UNQUALIFIED48Ivan Magalhaes
1002Johnson F PoquetteBrazil2025-09-28Chapman, Ross E Esq UNQUALIFIED32Elwin Sharvill
1003Francesco S MacleadGermany2025-09-27Feltz Printing Service UNQUALIFIED24Xuxue Feng
1004Aditya L VenereIndia2025-10-03Benton, John B Jr NEGOTIATION82Anna Fali
1005Mayumi V CaudyArgentina2025-09-16Morlong Associates UNQUALIFIED42Ivan Magalhaes
1006Murillo H DilliardAustralia2025-09-29Feiner Bros UNQUALIFIED43Amy Elsner
1007Jefferson X DarakjyArgentina2025-09-13Printing Dimensions PROPOSAL5Xuxue Feng
1008Mayumi A GauchoItaly2025-10-06Morlong Associates RENEWAL91Amy Elsner
1009Faith M CampainFrance2025-09-27King, Christopher A Esq UNQUALIFIED87Onyama Limba
1010Emily I OstroskyItaly2025-09-25Commercial Press RENEWAL54Asiya Javayant
1011Clifford D IturbideJapan2025-09-25Dorl, James J Esq PROPOSAL7Amy Elsner
1012Morrow R BologniaBrazil2025-10-07Feltz Printing Service RENEWAL97Ivan Magalhaes
1013Adams X FerenczAustralia2025-10-05Rangoni Of Florence UNQUALIFIED15Asiya Javayant
1014Faith H GlickRussia2025-09-19Morlong Associates QUALIFIED33Xuxue Feng
1015Cody S GillianItaly2025-09-26Chapman, Ross E Esq NEGOTIATION45Xuxue Feng
1016Nicolas C FerenczUnited Kingdom2025-09-30Chemel, James L Cpa RENEWAL11Ivan Magalhaes
1017Clifford V FollerSpain2025-09-30Feltz Printing Service PROPOSAL80Xuxue Feng
1018Morrow C DilliardFrance2025-09-27Chemel, James L Cpa UNQUALIFIED36Ioni Bowcher
1019Aika Z WieserCanada2025-09-13Rangoni Of Florence QUALIFIED93Amy Elsner
1020Kadeem O CampainAustralia2025-09-30Dorl, James J Esq NEW60Bernardo Dominic
1021Silvio O MaletFrance2025-09-19Feltz Printing Service PROPOSAL39Asiya Javayant
1022Misaki I GlickSpain2025-09-12Feiner Bros NEW95Xuxue Feng
1023Smith F RimFrance2025-09-11Chapman, Ross E Esq NEW97Elwin Sharvill
1024Chavez L OstroskySpain2025-09-09Morlong Associates NEW87Stephen Shaw
1025Morrow S ButtUnited Kingdom2025-09-17King, Christopher A Esq UNQUALIFIED39Ioni Bowcher
1026Mujtaba T MacleadCanada2025-10-05Benton, John B Jr NEW44Elwin Sharvill
1027Antonio Z WhobreyItaly2025-09-16Commercial Press NEGOTIATION22Elwin Sharvill
1028Ivar Y FigeroaAustralia2025-09-12Dorl, James J Esq QUALIFIED68Asiya Javayant
1029Maisha C VenereUnited Kingdom2025-10-05Printing Dimensions QUALIFIED99Amy Elsner
1030Morrow V AlbaresBrazil2025-09-15Chapman, Ross E Esq PROPOSAL77Xuxue Feng
1031Juan N PerinGermany2025-09-26Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1032Maisha X OldroydJapan2025-09-15King, Christopher A Esq PROPOSAL83Ioni Bowcher
1033Faith O RutaGermany2025-09-26King, Christopher A Esq UNQUALIFIED34Amy Elsner
1034Mujtaba W StockhamGermany2025-09-22King, Christopher A Esq QUALIFIED28Amy Elsner
1035Jones J MaletItaly2025-09-17Chemel, James L Cpa RENEWAL2Bernardo Dominic
1036Smith F BologniaFrance2025-09-23Chemel, James L Cpa NEGOTIATION36Onyama Limba
1037Jennifer V SlusarskiCanada2025-10-07Rousseaux, Michael Esq NEGOTIATION42Amy Elsner
1038Francesco T CaudyItaly2025-09-21Dorl, James J Esq NEGOTIATION80Elwin Sharvill
1039Cody S DilliardUnited Kingdom2025-09-21Feltz Printing Service PROPOSAL74Stephen Shaw
1040Chavez C FollerFrance2025-09-19Chemel, James L Cpa NEGOTIATION63Xuxue Feng
1041Wickens D MacleadArgentina2025-09-20Feltz Printing Service RENEWAL50Bernardo Dominic
1042Salvatore J FigeroaBrazil2025-09-13Benton, John B Jr NEGOTIATION44Amy Elsner
1043Jones K WaycottRussia2025-09-08Benton, John B Jr PROPOSAL73Ivan Magalhaes
1044Jefferson G CaldareraJapan2025-09-22Chapman, Ross E Esq NEGOTIATION46Asiya Javayant
1045Chavez X CaudyUnited Kingdom2025-09-20Chemel, James L Cpa RENEWAL33Onyama Limba
1046Munro X MaletSpain2025-10-01Buckley Miller Wright NEW44Amy Elsner
1047Greenwood R SlusarskiArgentina2025-10-05Feiner Bros PROPOSAL92Anna Fali
1048Emily T BologniaGermany2025-09-29Commercial Press UNQUALIFIED96Asiya Javayant
1049Francesco F FollerSpain2025-09-17Dorl, James J Esq NEW47Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams Y ChuiBrazilIvan Magalhaes RENEWAL
Nicolas G RimSpainXuxue Feng NEW
Darci H BologniaBrazilBernardo Dominic QUALIFIED
Jefferson U DilliardJapanBernardo Dominic NEW
Arvin Y CaldareraSpainBernardo Dominic UNQUALIFIED
Aika D BologniaSpainAmy Elsner PROPOSAL
Mujtaba N FerenczAustraliaAsiya Javayant QUALIFIED
Maria H IturbideArgentinaBernardo Dominic NEW
Kadeem X PoquetteGermanyElwin Sharvill PROPOSAL
Izzy U StockhamRussiaElwin Sharvill RENEWAL
Costa Y GlickIndiaElwin Sharvill QUALIFIED
Izzy S TollnerCanadaAsiya Javayant QUALIFIED
Maisha T TollnerRussiaBernardo Dominic QUALIFIED
Isabel S FerenczUnited KingdomXuxue Feng NEW
Octavia G MaletRussiaIvan Magalhaes NEGOTIATION
Mujtaba X PerinAustraliaAmy Elsner UNQUALIFIED
Ricardo H ShinkoAustraliaAnna Fali UNQUALIFIED
Aika P BowleyIndiaIvan Magalhaes NEW
Antonio A SchemmerRussiaStephen Shaw NEGOTIATION
Kadeem Y SlusarskiArgentinaStephen Shaw NEGOTIATION
Emily W FerenczRussiaStephen Shaw PROPOSAL
Darci B KuskoSpainElwin Sharvill PROPOSAL
Adams F BologniaItalyElwin Sharvill RENEWAL
Jennifer M VocelkaGermanyStephen Shaw NEGOTIATION
Antonio O MaletFranceBernardo Dominic PROPOSAL
Antonio Z BriddickRussiaElwin Sharvill UNQUALIFIED
Ivar U GauchoSpainXuxue Feng QUALIFIED
Smith T DoeIndiaStephen Shaw NEGOTIATION
Tony M PoquetteBrazilAmy Elsner NEGOTIATION
Silvio Q MorascaAustraliaBernardo Dominic NEGOTIATION
Kaitlin J WhobreyBrazilXuxue Feng NEGOTIATION
Leja H BriddickCanadaBernardo Dominic PROPOSAL
Emily A SchemmerCanadaStephen Shaw NEGOTIATION
Alejandro Z VenereGermanyBernardo Dominic NEW
James D RutaGermanyOnyama Limba QUALIFIED
Misaki N AlbaresGermanyXuxue Feng NEGOTIATION
Stacey G StensethRussiaAmy Elsner QUALIFIED
Ashley F DoeCanadaIvan Magalhaes RENEWAL
Adams R IturbideArgentinaIoni Bowcher NEW
Adams X OldroydJapanOnyama Limba RENEWAL
James B NickaItalyAnna Fali NEGOTIATION
Jeanfrancois Y WieserJapanIoni Bowcher NEW
Kaitlin E RulapaughJapanAsiya Javayant RENEWAL
Juan B FlosiBrazilXuxue Feng PROPOSAL
Cody O SchemmerGermanyXuxue Feng NEGOTIATION
Leon J CaldareraUnited KingdomElwin Sharvill QUALIFIED
Nicolas Z FigeroaAustraliaAmy Elsner PROPOSAL
Mujtaba V RulapaughSpainIvan Magalhaes NEW
Chavez M VocelkaGermanyIoni Bowcher RENEWAL
Adams F NestleArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Costa J Wieser
Deepesh R Doe
Nicolas W Marrier
Alejandro R Campain
Murillo R Inouye
Ricardo C Tollner
David J Flosi
Mayumi X Bolognia
Misaki C Stockham
Ashley H Nestle
Cody X Shinko
Kadeem C Slusarski
Jefferson W Malet
Murillo P Caldarera
Emily V Stockham
Julie Y Stenseth
Misaki J Maclead
Faith Z Darakjy
Kadeem S Kolmetz
Maria Y Briddick
Jefferson A Amigon
Ivar V Caudy
Silvio I Paprocki
Francesco P Doe
Jennifer B Iturbide
Jones B Gaucho
Johnson I Kusko
Aditya P Stenseth
Faith O Rulapaugh
Leja T Royster
Arvin N Shinko
Darci K Oldroyd
Clifford N Schemmer
Stacey Q Maclead
Jones X Malet
Adams D Stockham
Stacey W Bowley
Leon A Venere
Jennifer S Morasca
David D Albares
Julie B Dilliard
Ivar U Gillian
Adams R Rim
Emily C Rulapaugh
Silvio X Marrier
Leja R Malet
Alejandro E Waycott
Francesco K Campain
Chavez C Morasca
David A Amigon
IdCountryDate
1000Russia2025-09-16
1001France2025-09-17
1002United Kingdom2025-10-05
1003Japan2025-09-15
1004Germany2025-09-08
1005India2025-09-16
1006United Kingdom2025-09-18
1007Canada2025-09-26
1008Russia2025-09-24
1009Germany2025-09-30
1010Japan2025-10-04
1011Argentina2025-09-20
1012Germany2025-09-24
1013France2025-09-21
1014France2025-09-25
1015Italy2025-09-27
1016Argentina2025-09-24
1017Brazil2025-09-28
1018India2025-10-07
1019France2025-09-30
1020Spain2025-10-06
1021United Kingdom2025-09-30
1022Argentina2025-09-13
1023France2025-09-28
1024India2025-09-10
1025India2025-09-16
1026Spain2025-10-04
1027Argentina2025-09-29
1028Italy2025-09-28
1029Russia2025-10-05
1030Russia2025-09-13
1031Canada2025-09-13
1032Russia2025-09-08
1033India2025-09-09
1034Argentina2025-09-14
1035Germany2025-09-08
1036Spain2025-10-06
1037France2025-10-07
1038India2025-09-18
1039France2025-10-01
1040Russia2025-09-19
1041France2025-09-21
1042Argentina2025-09-25
1043Germany2025-09-10
1044Spain2025-10-06
1045Japan2025-09-13
1046India2025-09-08
1047Germany2025-10-03
1048India2025-09-26
1049United Kingdom2025-10-01

On-Demand Data

NameIdCountryDate
Juan M Malet1000India2025-09-12
Ricardo F Darakjy1001Russia2025-09-20
Isabel G Ruta1002France2025-09-29
Kadeem L Ruta1003Canada2025-09-11
Julie V Flosi1004Brazil2025-09-17
Murillo U Iturbide1005Argentina2025-09-11
Johnson D Venere1006India2025-09-22
Francesco E Bolognia1007Argentina2025-09-24
Jennifer D Shinko1008Spain2025-09-24
Aditya X Poquette1009Japan2025-09-26
Kadeem N Oldroyd1010United Kingdom2025-09-09
Maisha O Iturbide1011Japan2025-09-24
Leon Z Whobrey1012France2025-09-22
Jefferson D Malet1013India2025-09-22
Octavia Z Amigon1014Spain2025-10-02
Jeanfrancois T Campain1015India2025-09-22
Antonio X Vocelka1016Canada2025-09-20
Kadeem N Whobrey1017India2025-09-09
Aditya R Dilliard1018Canada2025-10-02
Leon E Waycott1019Canada2025-09-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow Q GarufiSpainAmy Elsner PROPOSAL
Faith N BowleySpainAsiya Javayant NEW
Munro N AmigonRussiaBernardo Dominic QUALIFIED
Alejandro D VenereIndiaIvan Magalhaes QUALIFIED
Misaki T OldroydBrazilBernardo Dominic PROPOSAL
Cody O PaprockiItalyStephen Shaw NEGOTIATION
Silvio T DarakjyIndiaStephen Shaw PROPOSAL
Izzy R CampainCanadaIvan Magalhaes RENEWAL
Deepesh Q WieserCanadaIvan Magalhaes UNQUALIFIED
Adams K KolmetzIndiaIvan Magalhaes PROPOSAL
Jones D CaudyArgentinaStephen Shaw NEGOTIATION
Adams F WaycottUnited KingdomElwin Sharvill NEW
Mujtaba K FigeroaIndiaElwin Sharvill QUALIFIED
Leja Z ChuiItalyAsiya Javayant RENEWAL
Alejandro M VocelkaArgentinaIoni Bowcher UNQUALIFIED
Julie N DarakjyRussiaXuxue Feng PROPOSAL
Salvatore Q AmigonItalyElwin Sharvill PROPOSAL
Silvio H MacleadSpainElwin Sharvill QUALIFIED
Rodrigues H SchemmerRussiaAsiya Javayant QUALIFIED
Wickens G GillianIndiaAmy Elsner NEW
Salvatore E FlosiBrazilStephen Shaw PROPOSAL
Clifford D NickaJapanOnyama Limba QUALIFIED
Greenwood U GarufiArgentinaElwin Sharvill PROPOSAL
Emily T DilliardGermanyElwin Sharvill NEGOTIATION
Mayumi X DoeCanadaStephen Shaw UNQUALIFIED
Mayumi Q TollnerSpainIvan Magalhaes QUALIFIED
Jones W ButtBrazilBernardo Dominic NEGOTIATION
Arvin K WaycottGermanyIvan Magalhaes QUALIFIED
Rodrigues C RutaAustraliaIvan Magalhaes NEGOTIATION
Munro U AlbaresJapanXuxue Feng NEW
Jeanfrancois U DilliardJapanIoni Bowcher NEGOTIATION
Chavez A OstroskyIndiaBernardo Dominic RENEWAL
David L GillianJapanOnyama Limba NEGOTIATION
Misaki U WhobreyFranceStephen Shaw RENEWAL
Cody N NestleArgentinaStephen Shaw NEGOTIATION
Adams A TollnerSpainElwin Sharvill QUALIFIED
Johnson H KolmetzGermanyIoni Bowcher NEW
Mujtaba F GauchoArgentinaIoni Bowcher NEW
Nicolas U GlickArgentinaElwin Sharvill UNQUALIFIED
James F MaletAustraliaElwin Sharvill 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" frozenColumnsAlignment="left">
            <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>