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
Nicolas T PoquetteCanadaIvan Magalhaes QUALIFIED
Murillo W SaylorsRussiaStephen Shaw NEW
Ashley Z StensethItalyIvan Magalhaes QUALIFIED
Aditya A OstroskyRussiaAnna Fali NEGOTIATION
Juan K ShinkoArgentinaAmy Elsner RENEWAL
Aruna J GauchoGermanyXuxue Feng NEGOTIATION
Julie C ShinkoFranceOnyama Limba RENEWAL
David R TollnerFranceAsiya Javayant QUALIFIED
Francesco Y SergiBrazilOnyama Limba PROPOSAL
James D MaletRussiaAsiya Javayant QUALIFIED
Nicolas M NickaItalyOnyama Limba UNQUALIFIED
Izzy D DilliardFranceAmy Elsner NEW
Mujtaba D FlosiSpainBernardo Dominic UNQUALIFIED
Alejandro M FerenczJapanOnyama Limba NEGOTIATION
Leja G DarakjyRussiaAnna Fali NEW
Ashley H DilliardJapanStephen Shaw UNQUALIFIED
Greenwood C MacleadRussiaStephen Shaw NEW
Arvin I RulapaughUnited KingdomIvan Magalhaes NEW
Jones G DarakjyRussiaStephen Shaw NEW
Morrow Y BriddickIndiaAnna Fali NEGOTIATION
Maria O RoysterSpainOnyama Limba PROPOSAL
Maria V SlusarskiCanadaAmy Elsner PROPOSAL
Wickens K GarufiBrazilStephen Shaw QUALIFIED
Adams E StensethUnited KingdomElwin Sharvill NEW
Emily M BowleyArgentinaAmy Elsner RENEWAL
Jeanfrancois A KuskoUnited KingdomAmy Elsner NEGOTIATION
Antonio Z SaylorsAustraliaOnyama Limba NEGOTIATION
Antonio K PoquetteArgentinaStephen Shaw PROPOSAL
Claire A PaprockiItalyAnna Fali UNQUALIFIED
Costa L BologniaItalyOnyama Limba NEW
Darci Z BriddickSpainIoni Bowcher NEGOTIATION
Misaki Y RutaSpainOnyama Limba NEGOTIATION
Kaitlin U GlickSpainOnyama Limba QUALIFIED
Salvatore Q WieserRussiaAmy Elsner NEW
Aika H BriddickUnited KingdomElwin Sharvill NEW
Clifford Y DarakjyCanadaIvan Magalhaes NEW
Sinclair R DoeCanadaElwin Sharvill QUALIFIED
Antonio M CampainFranceStephen Shaw PROPOSAL
Izzy B MaletFranceAsiya Javayant NEGOTIATION
Wickens N NickaCanadaXuxue Feng UNQUALIFIED
Nicolas K CaudyFranceIvan Magalhaes RENEWAL
Isabel E SaylorsSpainIoni Bowcher UNQUALIFIED
Stacey B CampainGermanyBernardo Dominic NEW
Jeanfrancois H WhobreyGermanyIvan Magalhaes PROPOSAL
Juan H IturbideBrazilAmy Elsner UNQUALIFIED
Claire M PoquetteItalyXuxue Feng QUALIFIED
Maisha F VocelkaBrazilOnyama Limba NEGOTIATION
Leon Y OstroskyIndiaAmy Elsner PROPOSAL
Kadeem D PoquetteSpainIvan Magalhaes NEW
Rodrigues U DarakjyBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Isabel G InouyeGermanyOnyama Limba NEGOTIATION
Aruna X KolmetzFranceStephen Shaw NEW
Ivar H DilliardBrazilStephen Shaw UNQUALIFIED
Aruna A CampainUnited KingdomAsiya Javayant QUALIFIED
Ricardo G MacleadJapanAmy Elsner NEGOTIATION
Smith O WhobreyJapanIvan Magalhaes RENEWAL
Jones B OstroskyJapanIvan Magalhaes NEW
Ricardo N SaylorsBrazilAsiya Javayant NEW
Kaitlin W CaudyIndiaAmy Elsner QUALIFIED
Cody X DilliardBrazilAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson Y StockhamRussia2025-09-10Buckley Miller Wright RENEWAL27Stephen Shaw
1001Silvio N GlickIndia2025-09-21Benton, John B Jr NEGOTIATION33Asiya Javayant
1002Aruna Z RimGermany2025-09-25Feltz Printing Service QUALIFIED21Elwin Sharvill
1003Munro J FlosiAustralia2025-09-20Feiner Bros NEGOTIATION59Ivan Magalhaes
1004Faith J InouyeGermany2025-09-09King, Christopher A Esq UNQUALIFIED74Amy Elsner
1005Smith M CaudyFrance2025-09-08Commercial Press QUALIFIED44Xuxue Feng
1006Clifford P GarufiGermany2025-09-07Chapman, Ross E Esq NEGOTIATION40Xuxue Feng
1007Nicolas Q StockhamItaly2025-08-31Benton, John B Jr RENEWAL5Bernardo Dominic
1008Morrow C FlosiItaly2025-09-23Morlong Associates NEW50Ivan Magalhaes
1009Aruna X RimBrazil2025-09-10Chapman, Ross E Esq PROPOSAL51Ivan Magalhaes
1010James Q KolmetzItaly2025-09-14Benton, John B Jr UNQUALIFIED84Amy Elsner
1011Alejandro A CaldareraUnited Kingdom2025-09-24Chemel, James L Cpa UNQUALIFIED43Elwin Sharvill
1012Jefferson I OldroydFrance2025-09-05Buckley Miller Wright NEW50Amy Elsner
1013Murillo H ChuiJapan2025-09-04King, Christopher A Esq NEGOTIATION20Ioni Bowcher
1014Ivar P ButtUnited Kingdom2025-09-11Chanay, Jeffrey A Esq NEW7Ivan Magalhaes
1015Julie D FollerIndia2025-09-01Chemel, James L Cpa PROPOSAL25Xuxue Feng
1016Antonio A MaletIndia2025-08-30Chapman, Ross E Esq PROPOSAL85Anna Fali
1017Chavez Y WieserItaly2025-09-09Feltz Printing Service UNQUALIFIED63Onyama Limba
1018Murillo V BologniaGermany2025-09-08King, Christopher A Esq PROPOSAL65Asiya Javayant
1019Jennifer Y OstroskyUnited Kingdom2025-09-24Chemel, James L Cpa UNQUALIFIED0Onyama Limba
1020Ivar X VocelkaUnited Kingdom2025-08-30Feiner Bros NEW17Ioni Bowcher
1021Costa L GauchoAustralia2025-09-21Benton, John B Jr QUALIFIED12Xuxue Feng
1022Costa V ShinkoBrazil2025-09-22Printing Dimensions QUALIFIED5Ivan Magalhaes
1023Johnson L StockhamArgentina2025-09-10King, Christopher A Esq NEGOTIATION94Stephen Shaw
1024Kadeem Z GauchoRussia2025-09-20Printing Dimensions NEW10Ivan Magalhaes
1025Jennifer Y OldroydSpain2025-09-21Printing Dimensions RENEWAL96Ioni Bowcher
1026Ivar E FerenczGermany2025-08-30King, Christopher A Esq QUALIFIED4Asiya Javayant
1027Kadeem Z NestleRussia2025-09-21Chemel, James L Cpa QUALIFIED9Bernardo Dominic
1028Mayumi Y OldroydRussia2025-09-19Morlong Associates NEW55Xuxue Feng
1029Leja C SchemmerFrance2025-09-17Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1030Wickens K VocelkaSpain2025-09-23King, Christopher A Esq NEGOTIATION47Bernardo Dominic
1031Leja F GillianJapan2025-09-13Morlong Associates RENEWAL68Stephen Shaw
1032Ricardo L FollerGermany2025-09-05Printing Dimensions QUALIFIED33Ivan Magalhaes
1033Kaitlin J CampainItaly2025-09-12Dorl, James J Esq RENEWAL56Onyama Limba
1034Octavia S FollerArgentina2025-09-11Benton, John B Jr RENEWAL49Onyama Limba
1035Munro E RimArgentina2025-09-23Feltz Printing Service RENEWAL26Elwin Sharvill
1036Salvatore A AmigonUnited Kingdom2025-09-10Buckley Miller Wright UNQUALIFIED96Asiya Javayant
1037Salvatore K TollnerBrazil2025-09-09Feltz Printing Service NEW96Asiya Javayant
1038David Z MacleadFrance2025-09-14Printing Dimensions NEGOTIATION34Bernardo Dominic
1039Aruna Z StockhamJapan2025-09-05King, Christopher A Esq RENEWAL63Asiya Javayant
1040Rodrigues B RulapaughItaly2025-09-04Feltz Printing Service NEGOTIATION84Amy Elsner
1041Deepesh V DarakjyGermany2025-09-02Dorl, James J Esq NEGOTIATION59Stephen Shaw
1042James A PaprockiIndia2025-09-07Rangoni Of Florence QUALIFIED92Bernardo Dominic
1043Wickens X RutaUnited Kingdom2025-09-03Chemel, James L Cpa NEGOTIATION99Stephen Shaw
1044Faith R AlbaresGermany2025-09-13Feiner Bros NEW60Xuxue Feng
1045Jefferson E SaylorsIndia2025-09-15Chapman, Ross E Esq UNQUALIFIED96Amy Elsner
1046Ivar R PoquetteItaly2025-09-24Morlong Associates NEGOTIATION65Ivan Magalhaes
1047Maria O FerenczBrazil2025-09-01King, Christopher A Esq UNQUALIFIED59Ioni Bowcher
1048Ivar Q ButtCanada2025-09-16Chanay, Jeffrey A Esq QUALIFIED68Stephen Shaw
1049Ivar X GillianIndia2025-09-05Dorl, James J Esq UNQUALIFIED99Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Adams Z OldroydAustraliaBernardo Dominic NEGOTIATION
Leon A WieserBrazilBernardo Dominic UNQUALIFIED
Isabel N ButtSpainAmy Elsner NEGOTIATION
Maria I GarufiUnited KingdomAnna Fali NEW
Murillo H AmigonRussiaElwin Sharvill NEGOTIATION
Jefferson U ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Kaitlin T PoquetteRussiaAnna Fali NEW
Chavez V CaudyIndiaIoni Bowcher PROPOSAL
Adams G RulapaughArgentinaXuxue Feng UNQUALIFIED
Julie G BowleyFranceIvan Magalhaes UNQUALIFIED
Aruna Q BologniaFranceAnna Fali PROPOSAL
Wickens X CampainGermanyAmy Elsner PROPOSAL
Munro U CaldareraBrazilIoni Bowcher PROPOSAL
Sinclair Z ChuiIndiaAsiya Javayant NEGOTIATION
Clifford I MarrierUnited KingdomIoni Bowcher UNQUALIFIED
Antonio R GarufiFranceOnyama Limba NEW
Maria J BriddickArgentinaStephen Shaw UNQUALIFIED
Ivar L DarakjyBrazilAsiya Javayant NEGOTIATION
Izzy M BologniaFranceIoni Bowcher RENEWAL
Arvin D WieserIndiaStephen Shaw RENEWAL
James U CaldareraAustraliaBernardo Dominic NEW
Francesco F KuskoCanadaXuxue Feng RENEWAL
Antonio A GarufiArgentinaElwin Sharvill PROPOSAL
Ashley M StockhamSpainAnna Fali QUALIFIED
Maria A VenereRussiaAmy Elsner QUALIFIED
Greenwood U RutaJapanAnna Fali UNQUALIFIED
Darci Y MacleadFranceBernardo Dominic RENEWAL
Kadeem W OldroydUnited KingdomElwin Sharvill NEGOTIATION
Arvin X FollerBrazilXuxue Feng PROPOSAL
Isabel H MarrierRussiaAsiya Javayant NEW
Arvin V PoquetteCanadaAsiya Javayant NEGOTIATION
Deepesh R MarrierArgentinaAmy Elsner RENEWAL
Arvin P ButtSpainAnna Fali QUALIFIED
Clifford L ButtAustraliaElwin Sharvill NEW
Kadeem V TollnerCanadaXuxue Feng NEW
Greenwood D CaldareraSpainAsiya Javayant PROPOSAL
Mayumi Z WieserFranceAmy Elsner NEGOTIATION
Cody X MorascaIndiaAsiya Javayant NEGOTIATION
Maisha C ChuiSpainIvan Magalhaes UNQUALIFIED
Claire S VocelkaGermanyAnna Fali RENEWAL
James Q FerenczItalyStephen Shaw NEGOTIATION
Claire Z SergiArgentinaIoni Bowcher PROPOSAL
Ashley K SchemmerBrazilIoni Bowcher UNQUALIFIED
Isabel U TollnerJapanOnyama Limba NEGOTIATION
Jennifer H SchemmerUnited KingdomAsiya Javayant QUALIFIED
Costa G RulapaughCanadaStephen Shaw NEGOTIATION
Darci S OstroskyCanadaAmy Elsner NEW
Deepesh W PerinItalyIoni Bowcher NEW
Leja J MacleadRussiaAmy Elsner RENEWAL
Jennifer D DarakjyArgentinaElwin Sharvill QUALIFIED
Frozen Columns
Name
Nicolas E Paprocki
Munro T Nestle
Greenwood C Garufi
Tony O Bowley
James I Royster
Kaitlin Y Tollner
Izzy I Slusarski
Octavia X Nestle
Rodrigues V Poquette
Arvin L Garufi
Clifford I Gaucho
Clifford T Marrier
Faith J Chui
Maisha L Ostrosky
Leja J Schemmer
Aika J Morasca
Munro S Waycott
Mujtaba L Rim
Sinclair K Dilliard
Chavez T Ruta
Ivar T Butt
Mayumi B Iturbide
Maisha C Malet
Darci M Caldarera
Faith Z Wieser
Ricardo L Bolognia
Maria D Doe
Izzy N Kolmetz
Clifford U Sergi
David P Nicka
Claire T Maclead
Antonio A Dilliard
Ivar F Caudy
Kadeem X Kusko
Julie I Nestle
Maria J Caldarera
Deepesh E Butt
Ivar S Ferencz
Faith M Perin
Ivar Q Slusarski
Juan R Amigon
Murillo E Albares
Juan C Waycott
Murillo T Kolmetz
Jones L Maclead
Smith I Poquette
James I Maclead
Silvio Y Figeroa
Jennifer B Amigon
Munro R Ruta
IdCountryDate
1000France2025-08-31
1001Italy2025-09-16
1002India2025-09-14
1003Japan2025-08-29
1004Canada2025-09-19
1005Spain2025-09-16
1006India2025-09-14
1007Australia2025-09-09
1008Canada2025-09-13
1009Canada2025-09-25
1010Brazil2025-09-18
1011Italy2025-09-05
1012Brazil2025-09-23
1013Japan2025-09-27
1014Canada2025-09-19
1015Spain2025-09-11
1016Japan2025-09-26
1017France2025-09-25
1018India2025-09-11
1019United Kingdom2025-09-01
1020India2025-09-11
1021United Kingdom2025-09-27
1022Australia2025-09-17
1023France2025-09-23
1024India2025-09-23
1025Canada2025-09-17
1026Canada2025-09-02
1027Russia2025-09-09
1028Germany2025-09-12
1029France2025-09-27
1030Australia2025-09-03
1031Spain2025-09-04
1032United Kingdom2025-09-09
1033Brazil2025-08-30
1034Russia2025-09-12
1035Brazil2025-09-24
1036India2025-09-17
1037Italy2025-09-05
1038Canada2025-09-22
1039Italy2025-09-15
1040Germany2025-09-18
1041Russia2025-09-14
1042Canada2025-09-04
1043Spain2025-09-17
1044India2025-09-07
1045France2025-09-27
1046Spain2025-09-22
1047Russia2025-09-05
1048Italy2025-08-30
1049United Kingdom2025-09-27

On-Demand Data

NameIdCountryDate
Darci X Poquette1000India2025-09-11
Jefferson Z Nestle1001Canada2025-09-20
Jones C Rulapaugh1002Brazil2025-09-07
Morrow L Caldarera1003France2025-09-05
Costa S Albares1004France2025-09-08
Aika S Waycott1005Spain2025-09-07
Sinclair M Nicka1006United Kingdom2025-09-23
Johnson S Oldroyd1007Japan2025-09-14
Salvatore B Albares1008Italy2025-09-13
Isabel M Ostrosky1009Russia2025-09-13
Ashley D Campain1010Canada2025-09-20
Silvio U Shinko1011Brazil2025-09-14
Maria V Oldroyd1012France2025-09-18
Maria E Gaucho1013United Kingdom2025-09-22
Faith C Butt1014Argentina2025-09-14
Leja Q Whobrey1015Russia2025-09-26
Deepesh O Malet1016France2025-09-19
Kadeem E Nicka1017Brazil2025-09-25
Smith A Darakjy1018Japan2025-09-10
Mayumi W Stockham1019Canada2025-09-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith H GarufiJapanXuxue Feng UNQUALIFIED
Aika N ButtFranceIvan Magalhaes RENEWAL
Octavia K AlbaresItalyStephen Shaw UNQUALIFIED
Faith E GarufiCanadaBernardo Dominic NEW
Ashley W MaletSpainOnyama Limba RENEWAL
Nicolas W SchemmerRussiaIoni Bowcher QUALIFIED
Claire U ButtBrazilXuxue Feng NEGOTIATION
Juan V DilliardBrazilIvan Magalhaes NEGOTIATION
David M PoquetteSpainBernardo Dominic PROPOSAL
Costa B ChuiAustraliaOnyama Limba RENEWAL
Sinclair A KuskoIndiaXuxue Feng NEGOTIATION
Salvatore C KuskoUnited KingdomAnna Fali NEGOTIATION
Rodrigues Y InouyeBrazilIoni Bowcher NEW
Jefferson E TollnerIndiaIvan Magalhaes PROPOSAL
David O StockhamGermanyBernardo Dominic NEGOTIATION
Maria Z ShinkoItalyAmy Elsner NEW
Alejandro T StensethBrazilIoni Bowcher NEGOTIATION
Stacey E OstroskyGermanyAmy Elsner QUALIFIED
Deepesh G FollerCanadaAsiya Javayant QUALIFIED
Arvin Y AmigonUnited KingdomStephen Shaw NEW
Ricardo O AmigonBrazilIoni Bowcher PROPOSAL
Leja R GauchoCanadaBernardo Dominic PROPOSAL
Salvatore Q TollnerIndiaStephen Shaw NEW
Maisha O KuskoFranceOnyama Limba NEW
Leja W RulapaughJapanStephen Shaw QUALIFIED
Nicolas U GauchoFranceIvan Magalhaes NEW
Isabel S VenereItalyAmy Elsner NEW
Francesco Q OldroydIndiaIoni Bowcher RENEWAL
Silvio T IturbideJapanBernardo Dominic UNQUALIFIED
Kaitlin M ButtCanadaBernardo Dominic RENEWAL
Misaki Z BowleyBrazilAsiya Javayant NEW
Wickens Q DarakjyIndiaXuxue Feng UNQUALIFIED
Tony Y StockhamGermanyAsiya Javayant QUALIFIED
Jeanfrancois M KuskoFranceIvan Magalhaes PROPOSAL
Sinclair P RutaUnited KingdomIvan Magalhaes NEGOTIATION
Tony V ShinkoIndiaIoni Bowcher NEGOTIATION
Emily H GlickCanadaAmy Elsner QUALIFIED
Silvio D KuskoSpainIoni Bowcher NEW
Jennifer J FerenczUnited KingdomAnna Fali RENEWAL
Alejandro K ButtGermanyAmy Elsner NEGOTIATION

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