November Deals: Limited Coupons Available! 🎁 Claim Your Coupon

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
Jeanfrancois I MacleadJapanBernardo Dominic NEW
Antonio E WieserIndiaAsiya Javayant PROPOSAL
Johnson O SaylorsJapanElwin Sharvill UNQUALIFIED
Aruna H AlbaresCanadaStephen Shaw PROPOSAL
Murillo U DarakjyJapanAsiya Javayant UNQUALIFIED
James E GlickAustraliaAmy Elsner RENEWAL
Izzy U RutaUnited KingdomIvan Magalhaes RENEWAL
Ivar P NickaItalyOnyama Limba UNQUALIFIED
Jeanfrancois P RimUnited KingdomAsiya Javayant NEGOTIATION
Aika I VocelkaAustraliaElwin Sharvill RENEWAL
Claire L GarufiFranceIvan Magalhaes NEW
Adams E VocelkaArgentinaElwin Sharvill UNQUALIFIED
Salvatore U VocelkaRussiaXuxue Feng NEW
Ivar Y StensethGermanyOnyama Limba PROPOSAL
Aditya X WaycottGermanyAsiya Javayant RENEWAL
Aika N VocelkaItalyAmy Elsner QUALIFIED
Chavez O NickaSpainAmy Elsner RENEWAL
Jones N TollnerArgentinaElwin Sharvill UNQUALIFIED
Antonio C VocelkaRussiaXuxue Feng QUALIFIED
Faith R RutaCanadaAnna Fali QUALIFIED
Isabel G BologniaFranceOnyama Limba UNQUALIFIED
Adams J DoeCanadaXuxue Feng NEW
Wickens E RoysterBrazilStephen Shaw NEW
Nicolas N AlbaresJapanXuxue Feng QUALIFIED
Ivar Z PaprockiFranceStephen Shaw QUALIFIED
Leja O BriddickFranceIoni Bowcher UNQUALIFIED
Leja Z VenereBrazilAsiya Javayant PROPOSAL
Smith Y SlusarskiUnited KingdomXuxue Feng PROPOSAL
Rodrigues Q MorascaSpainAnna Fali NEW
Deepesh Z DarakjyJapanIvan Magalhaes RENEWAL
Munro X OldroydCanadaStephen Shaw PROPOSAL
Claire U SchemmerArgentinaAsiya Javayant QUALIFIED
Ashley Q FerenczRussiaStephen Shaw PROPOSAL
Ivar T PoquetteCanadaIvan Magalhaes NEGOTIATION
Salvatore Q SchemmerFranceAsiya Javayant RENEWAL
Jennifer U AmigonJapanBernardo Dominic RENEWAL
Claire P BowleyGermanyAsiya Javayant QUALIFIED
Leon X NickaArgentinaElwin Sharvill UNQUALIFIED
Clifford Y FollerItalyXuxue Feng QUALIFIED
Smith E PoquetteCanadaAsiya Javayant NEGOTIATION
Leon G BologniaFranceElwin Sharvill QUALIFIED
Rodrigues A SchemmerArgentinaIoni Bowcher QUALIFIED
Sinclair Z WieserJapanAmy Elsner PROPOSAL
Munro H ButtArgentinaAnna Fali NEGOTIATION
Jones P VenereItalyAmy Elsner NEGOTIATION
Maria Z VenereIndiaAsiya Javayant UNQUALIFIED
Stacey P NestleUnited KingdomAnna Fali PROPOSAL
Nicolas M StensethCanadaIoni Bowcher QUALIFIED
Leja A FerenczIndiaOnyama Limba NEGOTIATION
Wickens N WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro G FlosiGermanyElwin Sharvill PROPOSAL
Johnson T TollnerBrazilOnyama Limba QUALIFIED
Adams S GauchoItalyAmy Elsner NEGOTIATION
Darci R StensethIndiaBernardo Dominic RENEWAL
Silvio J RoysterArgentinaAsiya Javayant NEW
Munro Z MaletSpainBernardo Dominic RENEWAL
Johnson A GillianCanadaBernardo Dominic QUALIFIED
James N ShinkoCanadaAmy Elsner NEW
Sinclair L ButtBrazilElwin Sharvill UNQUALIFIED
Stacey P ShinkoSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood X RulapaughSpain2026-09-28Printing Dimensions QUALIFIED98Stephen Shaw
1001Alejandro R SchemmerGermany2026-10-01Morlong Associates PROPOSAL68Bernardo Dominic
1002Maria W DilliardGermany2026-10-09Dorl, James J Esq UNQUALIFIED24Stephen Shaw
1003Jeanfrancois B VenereFrance2026-09-12Commercial Press PROPOSAL76Ioni Bowcher
1004Misaki V BriddickJapan2026-09-17Dorl, James J Esq QUALIFIED75Elwin Sharvill
1005Ashley Z VenereUnited Kingdom2026-10-01Chapman, Ross E Esq NEW19Stephen Shaw
1006Leja S PaprockiCanada2026-09-18Commercial Press NEW62Anna Fali
1007Octavia J MarrierRussia2026-09-27Dorl, James J Esq QUALIFIED3Bernardo Dominic
1008Kadeem T FlosiItaly2026-09-29Rousseaux, Michael Esq PROPOSAL27Ivan Magalhaes
1009Murillo N BriddickCanada2026-10-09Benton, John B Jr UNQUALIFIED29Xuxue Feng
1010Clifford N StensethRussia2026-09-15Commercial Press UNQUALIFIED45Amy Elsner
1011Wickens R FerenczAustralia2026-09-30Commercial Press NEGOTIATION51Anna Fali
1012Julie X PoquetteGermany2026-10-01King, Christopher A Esq QUALIFIED50Asiya Javayant
1013Jefferson Z CaudyArgentina2026-10-07Printing Dimensions PROPOSAL39Xuxue Feng
1014Jeanfrancois K MarrierRussia2026-09-13Buckley Miller Wright NEGOTIATION34Stephen Shaw
1015Leja F BologniaAustralia2026-09-28Feltz Printing Service RENEWAL1Amy Elsner
1016Costa Z SaylorsCanada2026-09-23Dorl, James J Esq PROPOSAL57Anna Fali
1017Arvin F MaletFrance2026-10-01Rousseaux, Michael Esq RENEWAL31Ivan Magalhaes
1018Ashley L IturbideItaly2026-10-03Printing Dimensions NEW64Onyama Limba
1019Adams R PerinFrance2026-09-12Benton, John B Jr UNQUALIFIED99Bernardo Dominic
1020Ivar J VenereUnited Kingdom2026-09-27Buckley Miller Wright RENEWAL34Xuxue Feng
1021Kadeem D RulapaughSpain2026-09-26Printing Dimensions RENEWAL85Bernardo Dominic
1022Smith Y CaldareraIndia2026-10-10Printing Dimensions NEW73Asiya Javayant
1023Leon Y MaletAustralia2026-09-20Rousseaux, Michael Esq QUALIFIED2Xuxue Feng
1024Smith Z MarrierGermany2026-09-21Feltz Printing Service UNQUALIFIED84Ivan Magalhaes
1025Cody S AmigonUnited Kingdom2026-10-08Feiner Bros NEGOTIATION94Elwin Sharvill
1026Faith L InouyeSpain2026-09-15King, Christopher A Esq UNQUALIFIED41Amy Elsner
1027Juan V WhobreyArgentina2026-10-03Chanay, Jeffrey A Esq NEGOTIATION33Onyama Limba
1028Kaitlin I InouyeCanada2026-09-13Rousseaux, Michael Esq UNQUALIFIED72Xuxue Feng
1029Darci C WaycottArgentina2026-09-14King, Christopher A Esq NEW21Bernardo Dominic
1030Johnson B SaylorsBrazil2026-09-29Commercial Press UNQUALIFIED48Anna Fali
1031Cody M GlickArgentina2026-10-02Rangoni Of Florence NEW10Ioni Bowcher
1032Leja Q VocelkaFrance2026-10-05Rousseaux, Michael Esq UNQUALIFIED47Anna Fali
1033Maria Y RimRussia2026-09-18Printing Dimensions RENEWAL26Stephen Shaw
1034Jeanfrancois Q SergiIndia2026-09-24Printing Dimensions QUALIFIED42Ioni Bowcher
1035Salvatore P FerenczCanada2026-10-03King, Christopher A Esq QUALIFIED4Ioni Bowcher
1036Silvio S FigeroaRussia2026-09-18Chanay, Jeffrey A Esq RENEWAL72Asiya Javayant
1037Nicolas K NestleGermany2026-10-08Dorl, James J Esq NEGOTIATION71Onyama Limba
1038Adams H DoeJapan2026-10-01King, Christopher A Esq NEGOTIATION56Asiya Javayant
1039Leon N MaletBrazil2026-09-18Benton, John B Jr RENEWAL86Asiya Javayant
1040Greenwood J FlosiBrazil2026-09-21Chapman, Ross E Esq NEW90Ioni Bowcher
1041Costa Z GillianFrance2026-09-26Benton, John B Jr QUALIFIED33Anna Fali
1042Aditya D GillianRussia2026-09-18Buckley Miller Wright NEW63Elwin Sharvill
1043Jefferson Z GauchoCanada2026-10-08Benton, John B Jr QUALIFIED83Amy Elsner
1044Stacey L FlosiCanada2026-10-11Rangoni Of Florence NEGOTIATION70Ivan Magalhaes
1045Salvatore I AlbaresFrance2026-09-26Printing Dimensions UNQUALIFIED29Amy Elsner
1046Aditya V GlickArgentina2026-09-20Dorl, James J Esq NEGOTIATION2Ioni Bowcher
1047Mayumi O KolmetzIndia2026-10-02Commercial Press RENEWAL83Ivan Magalhaes
1048Misaki C WhobreyItaly2026-10-05Chapman, Ross E Esq NEW32Onyama Limba
1049Tony F WhobreyArgentina2026-09-12Printing Dimensions PROPOSAL15Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Leon F MaletItalyIvan Magalhaes QUALIFIED
Izzy V ShinkoRussiaElwin Sharvill UNQUALIFIED
Francesco O RoysterUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues V SlusarskiSpainIvan Magalhaes QUALIFIED
Izzy G TollnerItalyOnyama Limba NEW
James D WaycottIndiaOnyama Limba NEW
Deepesh V RimJapanElwin Sharvill RENEWAL
Tony E MaletFranceIvan Magalhaes UNQUALIFIED
Claire E ButtBrazilAnna Fali RENEWAL
Costa S DoeCanadaStephen Shaw PROPOSAL
Ivar W BologniaCanadaElwin Sharvill UNQUALIFIED
Izzy H GillianRussiaIvan Magalhaes NEGOTIATION
Silvio Z RutaIndiaIoni Bowcher RENEWAL
Smith Y RutaAustraliaBernardo Dominic NEW
Johnson K MarrierArgentinaAsiya Javayant UNQUALIFIED
Tony F MarrierCanadaIoni Bowcher UNQUALIFIED
Jennifer W NickaItalyIoni Bowcher PROPOSAL
Antonio K RoysterSpainStephen Shaw NEW
Cody A SergiFranceAmy Elsner QUALIFIED
Stacey C MarrierSpainAmy Elsner NEGOTIATION
Jeanfrancois E SchemmerAustraliaXuxue Feng NEW
Salvatore S InouyeRussiaAnna Fali QUALIFIED
Emily T WaycottRussiaStephen Shaw NEGOTIATION
Nicolas W GillianRussiaStephen Shaw UNQUALIFIED
Isabel N VenereJapanBernardo Dominic UNQUALIFIED
Maria Z SchemmerArgentinaStephen Shaw NEGOTIATION
Stacey R StensethGermanyElwin Sharvill NEGOTIATION
Murillo X SchemmerRussiaAmy Elsner UNQUALIFIED
Murillo U MaletSpainOnyama Limba RENEWAL
Wickens O RutaFranceStephen Shaw PROPOSAL
Sinclair G SergiUnited KingdomOnyama Limba UNQUALIFIED
Stacey M AmigonFranceBernardo Dominic PROPOSAL
Costa S PerinSpainIoni Bowcher NEW
Chavez L StensethFranceElwin Sharvill QUALIFIED
Maisha F GillianIndiaAmy Elsner NEW
Greenwood H BologniaRussiaOnyama Limba NEW
Julie C RulapaughArgentinaAmy Elsner RENEWAL
Jones S GauchoSpainBernardo Dominic NEW
Octavia C VenereRussiaAnna Fali UNQUALIFIED
Aika F SchemmerJapanAmy Elsner NEW
Octavia U RoysterSpainStephen Shaw QUALIFIED
Adams W FlosiGermanyBernardo Dominic PROPOSAL
Tony Q GarufiFranceElwin Sharvill QUALIFIED
Jones W VenereJapanBernardo Dominic NEW
Costa Q AmigonFranceBernardo Dominic RENEWAL
Mayumi H KolmetzBrazilAmy Elsner UNQUALIFIED
Aika Q MarrierSpainStephen Shaw UNQUALIFIED
Adams L PaprockiRussiaIvan Magalhaes UNQUALIFIED
Aika M MaletAustraliaStephen Shaw PROPOSAL
Greenwood D RoysterBrazilIvan Magalhaes QUALIFIED
Frozen Columns
Name
Sinclair S Ferencz
Salvatore R Whobrey
Morrow R Paprocki
Aika T Wieser
Ricardo J Gaucho
Jeanfrancois B Glick
Greenwood C Figeroa
Salvatore Z Vocelka
Arvin R Nicka
Mujtaba A Stockham
Faith K Caldarera
Aditya C Dilliard
Maisha A Caldarera
Antonio M Iturbide
Aditya B Dilliard
Aruna O Flosi
Alejandro K Morasca
Maria U Malet
Claire R Foller
Alejandro M Whobrey
Jennifer F Ostrosky
Mujtaba W Poquette
Octavia S Oldroyd
Aditya E Ferencz
Jeanfrancois R Rim
James V Nestle
Deepesh S Venere
Johnson F Poquette
Kaitlin A Vocelka
Clifford B Caldarera
Nicolas Y Doe
Darci A Kusko
David H Bolognia
Wickens M Saylors
Ashley D Morasca
Deepesh P Waycott
Wickens X Campain
Octavia K Sergi
Aika E Rim
Murillo G Malet
Deepesh Q Ferencz
Claire B Vocelka
Francesco L Inouye
Morrow N Waycott
Aruna W Vocelka
Faith C Dilliard
Juan S Bolognia
Jennifer M Flosi
James Q Butt
Darci M Vocelka
IdCountryDate
1000Brazil2026-09-19
1001Spain2026-09-19
1002Argentina2026-10-01
1003Japan2026-09-14
1004Canada2026-10-10
1005Spain2026-10-02
1006Italy2026-09-17
1007United Kingdom2026-09-24
1008France2026-09-28
1009Germany2026-10-05
1010United Kingdom2026-09-28
1011Spain2026-09-20
1012France2026-09-18
1013Australia2026-10-04
1014Australia2026-10-06
1015Japan2026-10-03
1016Argentina2026-09-20
1017Canada2026-10-06
1018India2026-10-06
1019United Kingdom2026-10-09
1020Russia2026-09-17
1021Spain2026-09-13
1022Argentina2026-09-18
1023United Kingdom2026-10-02
1024France2026-09-30
1025France2026-10-06
1026Argentina2026-09-26
1027India2026-09-18
1028India2026-10-11
1029Australia2026-09-16
1030Russia2026-09-25
1031United Kingdom2026-10-01
1032Canada2026-10-07
1033Spain2026-09-29
1034India2026-10-06
1035Spain2026-10-06
1036Germany2026-09-22
1037Japan2026-10-06
1038France2026-09-15
1039India2026-09-24
1040United Kingdom2026-10-09
1041Canada2026-09-12
1042United Kingdom2026-09-18
1043France2026-09-18
1044Italy2026-09-13
1045Canada2026-09-15
1046Italy2026-10-09
1047Japan2026-09-29
1048Canada2026-10-08
1049India2026-09-30

On-Demand Data

NameIdCountryDate
Clifford Y Venere1000France2026-09-12
Maria P Iturbide1001India2026-09-18
Clifford X Rulapaugh1002India2026-09-26
Morrow D Bolognia1003Russia2026-09-26
Aruna P Schemmer1004United Kingdom2026-09-12
Greenwood Y Marrier1005United Kingdom2026-09-13
Chavez W Poquette1006Italy2026-09-29
Emily W Rim1007France2026-10-03
Antonio N Morasca1008Canada2026-09-21
Ricardo Y Foller1009Canada2026-10-03
Sinclair N Rulapaugh1010India2026-10-05
Julie Z Campain1011Argentina2026-10-01
Clifford J Albares1012Brazil2026-09-21
Nicolas M Schemmer1013United Kingdom2026-09-26
Johnson T Perin1014Germany2026-09-22
Smith G Amigon1015Brazil2026-09-13
Nicolas X Amigon1016Canada2026-09-13
Maisha Q Caudy1017Canada2026-09-19
Julie C Shinko1018Spain2026-09-15
Munro Z Briddick1019Japan2026-09-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer O FerenczSpainAsiya Javayant UNQUALIFIED
Kadeem A StensethUnited KingdomAsiya Javayant UNQUALIFIED
Leon J PaprockiAustraliaStephen Shaw NEW
Faith O MorascaUnited KingdomOnyama Limba QUALIFIED
Adams H OstroskyUnited KingdomAmy Elsner QUALIFIED
Izzy C ButtItalyIvan Magalhaes PROPOSAL
Aika C GillianIndiaOnyama Limba UNQUALIFIED
Silvio X PoquetteUnited KingdomOnyama Limba NEGOTIATION
Julie M DarakjyGermanyAmy Elsner UNQUALIFIED
Silvio Q PerinCanadaAmy Elsner NEW
Sinclair H BowleyGermanyOnyama Limba QUALIFIED
Ivar A MacleadAustraliaIoni Bowcher UNQUALIFIED
Johnson F StockhamAustraliaAmy Elsner QUALIFIED
Ivar X DilliardAustraliaElwin Sharvill NEGOTIATION
Salvatore Z VenereUnited KingdomElwin Sharvill NEW
Aruna A PerinSpainIvan Magalhaes NEW
Aruna N PoquetteGermanyBernardo Dominic RENEWAL
Jefferson E MacleadIndiaElwin Sharvill PROPOSAL
Emily L KolmetzGermanyOnyama Limba RENEWAL
David Z DilliardJapanBernardo Dominic PROPOSAL
Leon H FerenczAustraliaAnna Fali PROPOSAL
Jefferson V DarakjyItalyAsiya Javayant NEW
Rodrigues B BriddickBrazilAmy Elsner QUALIFIED
Claire M CaudyBrazilElwin Sharvill PROPOSAL
Isabel C MaletUnited KingdomAsiya Javayant PROPOSAL
Ivar E WhobreySpainOnyama Limba RENEWAL
Julie V RimJapanIvan Magalhaes PROPOSAL
Mujtaba H FerenczRussiaIoni Bowcher NEGOTIATION
Jennifer B MaletRussiaXuxue Feng RENEWAL
James N VocelkaFranceIvan Magalhaes UNQUALIFIED
Aruna U StockhamItalyIoni Bowcher PROPOSAL
Wickens N PaprockiItalyAnna Fali QUALIFIED
Isabel I StockhamItalyAnna Fali NEW
Ricardo V KolmetzFranceBernardo Dominic RENEWAL
Ivar U NestleBrazilStephen Shaw NEGOTIATION
Francesco A BologniaGermanyOnyama Limba UNQUALIFIED
Nicolas M MorascaRussiaIoni Bowcher NEGOTIATION
Silvio W DilliardFranceElwin Sharvill NEGOTIATION
Aruna P CampainCanadaStephen Shaw PROPOSAL
Munro Q BriddickBrazilAsiya Javayant 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" 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>