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
Maria A SlusarskiGermanyIoni Bowcher PROPOSAL
Mujtaba S AmigonFranceBernardo Dominic PROPOSAL
Antonio T SlusarskiItalyOnyama Limba RENEWAL
Johnson F GarufiItalyIvan Magalhaes UNQUALIFIED
Smith W InouyeJapanIvan Magalhaes UNQUALIFIED
Cody V NickaGermanyElwin Sharvill UNQUALIFIED
Antonio O SlusarskiBrazilIvan Magalhaes RENEWAL
Jones N PoquetteFranceIvan Magalhaes QUALIFIED
Smith G CaldareraItalyIoni Bowcher PROPOSAL
Antonio V CampainAustraliaAmy Elsner PROPOSAL
Sinclair P DoeArgentinaAnna Fali NEW
Faith N StensethBrazilOnyama Limba PROPOSAL
Leja L AlbaresFranceBernardo Dominic PROPOSAL
Munro A SergiJapanOnyama Limba UNQUALIFIED
Rodrigues U GarufiBrazilStephen Shaw NEW
Sinclair G IturbideJapanAnna Fali QUALIFIED
Tony G CaudyCanadaIoni Bowcher RENEWAL
Nicolas B PoquetteBrazilElwin Sharvill PROPOSAL
Octavia W VenereJapanAmy Elsner NEW
Smith L RoysterRussiaIoni Bowcher NEGOTIATION
Greenwood M BriddickAustraliaIoni Bowcher RENEWAL
Leja H PoquetteArgentinaStephen Shaw NEW
Julie K DilliardBrazilAsiya Javayant UNQUALIFIED
Silvio C ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Stacey S KolmetzIndiaStephen Shaw QUALIFIED
Juan H NestleJapanIoni Bowcher QUALIFIED
Mujtaba Y KuskoIndiaOnyama Limba NEGOTIATION
Claire Q OstroskyItalyAsiya Javayant UNQUALIFIED
Cody L NestleRussiaStephen Shaw RENEWAL
Costa C GarufiIndiaAmy Elsner NEW
Chavez R FigeroaRussiaAsiya Javayant NEGOTIATION
Johnson Q NickaAustraliaBernardo Dominic NEW
Salvatore H OstroskyAustraliaIvan Magalhaes PROPOSAL
Clifford H ChuiGermanyAmy Elsner QUALIFIED
Tony O AmigonItalyAmy Elsner NEW
Mujtaba A CampainSpainBernardo Dominic UNQUALIFIED
Jones A GlickCanadaXuxue Feng UNQUALIFIED
Ricardo E BriddickRussiaStephen Shaw RENEWAL
Ashley J RutaFranceStephen Shaw QUALIFIED
Murillo J PaprockiSpainOnyama Limba NEGOTIATION
James J BowleySpainIvan Magalhaes UNQUALIFIED
Alejandro U BowleyCanadaBernardo Dominic RENEWAL
Salvatore H MorascaIndiaBernardo Dominic QUALIFIED
Greenwood E MaletCanadaIoni Bowcher NEGOTIATION
Tony I ChuiBrazilAsiya Javayant NEW
Emily K SlusarskiBrazilIoni Bowcher UNQUALIFIED
Jeanfrancois Q BologniaIndiaElwin Sharvill QUALIFIED
Claire D VenereUnited KingdomAsiya Javayant NEGOTIATION
Sinclair F GillianArgentinaIvan Magalhaes QUALIFIED
Cody L ChuiItalyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna X PerinAustraliaXuxue Feng PROPOSAL
Rodrigues D BowleyFranceElwin Sharvill NEW
Murillo P GarufiIndiaOnyama Limba NEW
Ivar R MaletIndiaIvan Magalhaes PROPOSAL
Claire S AlbaresSpainBernardo Dominic QUALIFIED
Wickens V OstroskyGermanyIoni Bowcher PROPOSAL
Morrow C SaylorsSpainAsiya Javayant NEGOTIATION
Leon P AmigonRussiaAsiya Javayant UNQUALIFIED
Wickens A AmigonGermanyAsiya Javayant NEW
Jennifer T NickaAustraliaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco S DarakjyFrance2025-09-23Benton, John B Jr PROPOSAL57Ioni Bowcher
1001James N SergiCanada2025-10-04Rousseaux, Michael Esq UNQUALIFIED35Ivan Magalhaes
1002Misaki P IturbideArgentina2025-10-04Dorl, James J Esq NEW16Amy Elsner
1003Alejandro T DarakjyGermany2025-10-06Chapman, Ross E Esq PROPOSAL88Anna Fali
1004Arvin C VenereItaly2025-09-29Dorl, James J Esq UNQUALIFIED96Ioni Bowcher
1005Mujtaba N DilliardGermany2025-09-28Morlong Associates NEW63Xuxue Feng
1006Deepesh P SchemmerUnited Kingdom2025-09-25Chanay, Jeffrey A Esq QUALIFIED24Ivan Magalhaes
1007Aika A OldroydJapan2025-10-13Dorl, James J Esq NEW91Xuxue Feng
1008Aika J AlbaresItaly2025-09-23Rousseaux, Michael Esq NEW21Xuxue Feng
1009Octavia V BologniaSpain2025-10-16Morlong Associates QUALIFIED6Anna Fali
1010James S BriddickAustralia2025-09-19Chanay, Jeffrey A Esq PROPOSAL57Anna Fali
1011Greenwood N SaylorsFrance2025-09-30Buckley Miller Wright RENEWAL0Ioni Bowcher
1012Ashley L SlusarskiIndia2025-10-17Chanay, Jeffrey A Esq NEGOTIATION16Stephen Shaw
1013Ivar F OldroydBrazil2025-09-19King, Christopher A Esq NEGOTIATION53Onyama Limba
1014Wickens V MorascaItaly2025-10-06Dorl, James J Esq NEGOTIATION17Ioni Bowcher
1015Chavez Q DoeFrance2025-10-11Rousseaux, Michael Esq NEGOTIATION73Ivan Magalhaes
1016Deepesh W BriddickSpain2025-09-24Truhlar And Truhlar Attys QUALIFIED96Ioni Bowcher
1017Munro B PoquetteSpain2025-10-03Commercial Press NEGOTIATION41Amy Elsner
1018Stacey L DilliardGermany2025-10-11Printing Dimensions NEGOTIATION34Bernardo Dominic
1019Stacey S FigeroaJapan2025-10-18Buckley Miller Wright NEW54Onyama Limba
1020Isabel C MaletItaly2025-10-02Benton, John B Jr QUALIFIED90Onyama Limba
1021Adams Q RoysterJapan2025-10-04Chemel, James L Cpa RENEWAL98Ivan Magalhaes
1022Izzy K FerenczIndia2025-09-25Chapman, Ross E Esq PROPOSAL47Elwin Sharvill
1023Mujtaba D CaldareraCanada2025-10-13Buckley Miller Wright RENEWAL68Xuxue Feng
1024Leja Z InouyeCanada2025-09-26Feiner Bros QUALIFIED61Ivan Magalhaes
1025Claire V DoeArgentina2025-09-19Dorl, James J Esq UNQUALIFIED87Elwin Sharvill
1026Faith I CampainJapan2025-10-15Chapman, Ross E Esq NEW32Elwin Sharvill
1027James O DarakjyAustralia2025-09-28King, Christopher A Esq QUALIFIED79Anna Fali
1028Claire Z DilliardAustralia2025-10-14Chapman, Ross E Esq RENEWAL82Onyama Limba
1029Antonio Z WhobreyFrance2025-10-01Benton, John B Jr RENEWAL42Elwin Sharvill
1030David Z CaldareraFrance2025-10-18Chanay, Jeffrey A Esq NEW0Bernardo Dominic
1031Kaitlin G FigeroaUnited Kingdom2025-10-02Dorl, James J Esq NEW8Stephen Shaw
1032Misaki Q GarufiItaly2025-09-28Dorl, James J Esq NEGOTIATION81Anna Fali
1033David F SchemmerUnited Kingdom2025-09-24King, Christopher A Esq NEW28Asiya Javayant
1034Cody U PoquetteItaly2025-09-19Chanay, Jeffrey A Esq PROPOSAL90Anna Fali
1035Alejandro P FigeroaSpain2025-10-05Feiner Bros QUALIFIED10Onyama Limba
1036Arvin A PoquetteAustralia2025-10-13Rousseaux, Michael Esq PROPOSAL97Ioni Bowcher
1037Ivar U KolmetzIndia2025-10-16Morlong Associates NEW98Onyama Limba
1038Isabel T WaycottBrazil2025-10-09Chanay, Jeffrey A Esq NEW80Onyama Limba
1039Arvin B RimJapan2025-10-16Commercial Press NEGOTIATION28Amy Elsner
1040Tony F FerenczArgentina2025-09-23Chanay, Jeffrey A Esq UNQUALIFIED78Xuxue Feng
1041Ivar G BologniaGermany2025-10-02King, Christopher A Esq PROPOSAL94Anna Fali
1042Wickens O PoquetteFrance2025-09-30Chanay, Jeffrey A Esq PROPOSAL69Bernardo Dominic
1043Leon W SchemmerGermany2025-09-28Buckley Miller Wright PROPOSAL25Asiya Javayant
1044Arvin S OldroydBrazil2025-09-19Chemel, James L Cpa UNQUALIFIED41Anna Fali
1045Deepesh L SchemmerBrazil2025-09-28Chemel, James L Cpa QUALIFIED19Elwin Sharvill
1046Greenwood M BriddickAustralia2025-10-01Printing Dimensions NEW27Bernardo Dominic
1047Ivar F SergiCanada2025-10-13Commercial Press QUALIFIED53Xuxue Feng
1048Sinclair T StockhamIndia2025-09-28Commercial Press PROPOSAL12Elwin Sharvill
1049Ricardo C DoeRussia2025-09-25Morlong Associates PROPOSAL25Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Antonio N GauchoSpainElwin Sharvill NEW
Jones W VenereBrazilOnyama Limba RENEWAL
Maria P BologniaUnited KingdomBernardo Dominic PROPOSAL
Jefferson E NestleIndiaIvan Magalhaes PROPOSAL
Adams X NestleGermanyStephen Shaw NEW
Misaki I MaletAustraliaElwin Sharvill PROPOSAL
Julie J BowleyUnited KingdomElwin Sharvill QUALIFIED
James C NestleGermanyIvan Magalhaes PROPOSAL
Smith P OldroydItalyAsiya Javayant NEW
Costa N GarufiBrazilAnna Fali PROPOSAL
Aditya K PerinAustraliaStephen Shaw UNQUALIFIED
Murillo A ButtIndiaOnyama Limba RENEWAL
Alejandro U WieserGermanyAsiya Javayant NEGOTIATION
Clifford F GillianBrazilIoni Bowcher QUALIFIED
Claire D MacleadAustraliaAsiya Javayant RENEWAL
Wickens D ShinkoCanadaStephen Shaw UNQUALIFIED
Alejandro A GarufiBrazilOnyama Limba RENEWAL
Leja A SaylorsRussiaBernardo Dominic PROPOSAL
Johnson F InouyeJapanOnyama Limba UNQUALIFIED
David A OstroskySpainIoni Bowcher UNQUALIFIED
Murillo O VocelkaGermanyIvan Magalhaes UNQUALIFIED
Emily A GarufiGermanyOnyama Limba UNQUALIFIED
Kaitlin O WieserItalyIoni Bowcher NEGOTIATION
Smith X TollnerJapanAnna Fali RENEWAL
Ivar P DilliardCanadaElwin Sharvill PROPOSAL
Cody K GlickIndiaAmy Elsner NEGOTIATION
Stacey B KolmetzSpainBernardo Dominic NEW
Rodrigues O WieserFranceIvan Magalhaes NEW
Ivar S GauchoSpainBernardo Dominic NEW
Darci S DoeJapanIvan Magalhaes QUALIFIED
Costa J ButtGermanyOnyama Limba QUALIFIED
Misaki I FlosiAustraliaAmy Elsner RENEWAL
James M BowleyGermanyXuxue Feng RENEWAL
James G BologniaIndiaOnyama Limba QUALIFIED
Silvio C CaldareraBrazilOnyama Limba PROPOSAL
Ricardo U DilliardIndiaElwin Sharvill NEGOTIATION
Isabel C PerinRussiaBernardo Dominic UNQUALIFIED
Ricardo D CaudyJapanStephen Shaw UNQUALIFIED
Salvatore U SergiSpainOnyama Limba QUALIFIED
Morrow D KuskoRussiaElwin Sharvill NEW
Deepesh K DoeSpainBernardo Dominic UNQUALIFIED
Salvatore I OstroskySpainAnna Fali QUALIFIED
Wickens C SaylorsCanadaOnyama Limba UNQUALIFIED
Costa U RutaItalyAnna Fali PROPOSAL
Leon B PaprockiAustraliaAnna Fali NEW
Octavia R GauchoFranceAnna Fali UNQUALIFIED
Aika Z SlusarskiCanadaAnna Fali NEW
Aditya A MarrierArgentinaOnyama Limba NEGOTIATION
Cody P IturbideAustraliaOnyama Limba PROPOSAL
David Y PaprockiBrazilIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Aika F Dilliard
Johnson Z Caudy
Murillo P Flosi
Izzy I Slusarski
Stacey N Marrier
Isabel H Poquette
Jennifer N Ruta
Rodrigues N Morasca
Kadeem P Maclead
Deepesh G Poquette
Maria O Marrier
Johnson X Nicka
Izzy Q Marrier
Mujtaba X Malet
Octavia E Foller
Clifford K Maclead
Cody U Venere
Faith A Morasca
Chavez B Bowley
Alejandro J Wieser
Aditya J Rim
David X Paprocki
James P Foller
Stacey B Caldarera
Arvin A Malet
Aruna P Ostrosky
Stacey N Glick
Rodrigues N Caudy
Nicolas V Tollner
Jeanfrancois H Caldarera
Greenwood R Stockham
Faith P Doe
Ashley S Rim
Johnson N Perin
Aika P Campain
Darci N Shinko
Cody Y Saylors
Maisha X Nicka
Antonio L Bolognia
Alejandro J Stockham
Costa R Schemmer
Faith O Morasca
Deepesh O Ferencz
Maisha P Shinko
Greenwood K Chui
Juan A Bowley
Jeanfrancois D Darakjy
Octavia D Darakjy
Isabel F Paprocki
Wickens L Marrier
IdCountryDate
1000Russia2025-10-14
1001Canada2025-09-22
1002Spain2025-10-02
1003Russia2025-09-27
1004Italy2025-10-10
1005Russia2025-10-06
1006Italy2025-10-04
1007Spain2025-09-22
1008Italy2025-10-03
1009Japan2025-10-13
1010Australia2025-09-25
1011France2025-10-09
1012Brazil2025-10-02
1013Russia2025-10-12
1014Spain2025-09-20
1015United Kingdom2025-09-30
1016Germany2025-09-29
1017Argentina2025-10-08
1018Germany2025-09-29
1019Spain2025-09-22
1020Australia2025-10-07
1021Canada2025-10-02
1022United Kingdom2025-09-26
1023Spain2025-09-21
1024Australia2025-10-15
1025Japan2025-10-03
1026Argentina2025-09-19
1027Italy2025-10-03
1028Brazil2025-10-04
1029United Kingdom2025-10-09
1030Russia2025-10-07
1031Australia2025-09-20
1032Japan2025-09-29
1033Germany2025-09-20
1034Brazil2025-09-30
1035Argentina2025-10-03
1036Italy2025-09-19
1037Germany2025-10-01
1038France2025-09-28
1039France2025-10-18
1040Australia2025-10-18
1041Italy2025-09-29
1042France2025-10-07
1043Spain2025-09-26
1044Australia2025-09-21
1045Canada2025-09-27
1046Japan2025-09-26
1047Spain2025-09-23
1048Italy2025-10-14
1049Russia2025-10-15

On-Demand Data

NameIdCountryDate
Greenwood P Schemmer1000United Kingdom2025-10-01
Faith D Amigon1001France2025-09-20
Smith M Darakjy1002Spain2025-09-22
Wickens Y Ostrosky1003Russia2025-10-11
Claire T Paprocki1004India2025-09-20
Smith V Flosi1005Argentina2025-09-19
Sinclair D Ostrosky1006Japan2025-10-08
Ivar W Doe1007Argentina2025-09-29
Jefferson I Gaucho1008France2025-09-25
Ricardo K Doe1009Argentina2025-10-08
Ivar U Wieser1010Italy2025-09-28
Clifford A Schemmer1011Spain2025-09-27
Jeanfrancois M Vocelka1012Brazil2025-10-13
Deepesh Y Vocelka1013Australia2025-10-15
Mujtaba S Stenseth1014Spain2025-09-25
David J Morasca1015Germany2025-09-25
Adams H Figeroa1016Russia2025-09-19
Aditya X Chui1017Germany2025-10-03
Jeanfrancois C Garufi1018Russia2025-09-23
Cody B Butt1019India2025-09-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie I ButtBrazilBernardo Dominic NEGOTIATION
Aditya H BriddickItalyElwin Sharvill PROPOSAL
Jennifer W BologniaRussiaBernardo Dominic QUALIFIED
Misaki D ShinkoBrazilIvan Magalhaes NEGOTIATION
Costa E AmigonFranceAsiya Javayant NEW
Jones G MarrierBrazilBernardo Dominic UNQUALIFIED
Munro L BowleyGermanyElwin Sharvill UNQUALIFIED
Ashley B CaudyJapanAsiya Javayant PROPOSAL
Costa J IturbideArgentinaOnyama Limba NEGOTIATION
Francesco M VenereIndiaAnna Fali RENEWAL
Octavia R FerenczBrazilAnna Fali PROPOSAL
Claire N DoeGermanyOnyama Limba QUALIFIED
Kadeem B SaylorsRussiaElwin Sharvill NEW
Morrow N RoysterRussiaBernardo Dominic NEGOTIATION
Salvatore W DilliardJapanXuxue Feng UNQUALIFIED
James F MarrierItalyAnna Fali NEGOTIATION
Mujtaba M FigeroaFranceIoni Bowcher PROPOSAL
James Y RulapaughArgentinaIoni Bowcher QUALIFIED
Sinclair N MorascaFranceAmy Elsner UNQUALIFIED
Murillo F DarakjyRussiaIoni Bowcher NEW
Octavia X FigeroaItalyIoni Bowcher RENEWAL
Maisha U GauchoAustraliaElwin Sharvill UNQUALIFIED
Kaitlin K MaletRussiaOnyama Limba UNQUALIFIED
Cody H BologniaAustraliaIvan Magalhaes UNQUALIFIED
Sinclair Z RoysterBrazilIoni Bowcher NEW
Faith Q ButtSpainXuxue Feng NEW
Aika J CaldareraItalyBernardo Dominic PROPOSAL
Smith B ShinkoAustraliaXuxue Feng NEGOTIATION
Maria M RulapaughSpainBernardo Dominic UNQUALIFIED
Julie J TollnerJapanAmy Elsner NEGOTIATION
Tony W FlosiJapanStephen Shaw RENEWAL
Deepesh X MaletSpainAsiya Javayant RENEWAL
Costa V BriddickBrazilBernardo Dominic NEGOTIATION
Morrow D NestleRussiaXuxue Feng QUALIFIED
Julie A SergiIndiaBernardo Dominic UNQUALIFIED
Jones X MarrierGermanyStephen Shaw QUALIFIED
Antonio Q WaycottAustraliaAmy Elsner NEGOTIATION
Aruna V GillianBrazilStephen Shaw NEW
Ivar X FigeroaSpainAnna Fali PROPOSAL
Rodrigues Y SchemmerRussiaAmy Elsner QUALIFIED

<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>