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
Stacey V AlbaresGermanyStephen Shaw UNQUALIFIED
Ashley L InouyeCanadaAmy Elsner PROPOSAL
Murillo O KuskoFranceStephen Shaw UNQUALIFIED
Emily J MaletArgentinaXuxue Feng NEW
Leon A GauchoRussiaAsiya Javayant UNQUALIFIED
Aditya Y NestleIndiaAnna Fali NEW
Julie C ChuiSpainStephen Shaw NEGOTIATION
Aruna A TollnerJapanStephen Shaw RENEWAL
Maisha O DilliardSpainElwin Sharvill UNQUALIFIED
Silvio V MorascaSpainBernardo Dominic RENEWAL
Salvatore C MaletArgentinaElwin Sharvill PROPOSAL
Jones N CampainCanadaXuxue Feng RENEWAL
Deepesh D AmigonUnited KingdomXuxue Feng QUALIFIED
Nicolas V FollerBrazilOnyama Limba PROPOSAL
Faith G FollerArgentinaIoni Bowcher UNQUALIFIED
Jefferson G BologniaJapanBernardo Dominic PROPOSAL
Octavia L RulapaughJapanXuxue Feng QUALIFIED
Greenwood C StensethSpainIoni Bowcher NEGOTIATION
Johnson P RimSpainAmy Elsner RENEWAL
Wickens X RutaUnited KingdomXuxue Feng NEGOTIATION
Sinclair Y PaprockiIndiaAmy Elsner PROPOSAL
Alejandro X BologniaCanadaOnyama Limba NEW
Silvio O NickaGermanyIoni Bowcher NEW
Cody F NickaSpainOnyama Limba UNQUALIFIED
Silvio U BriddickItalyStephen Shaw RENEWAL
Mayumi F StockhamUnited KingdomAsiya Javayant PROPOSAL
Aditya I AlbaresArgentinaAnna Fali UNQUALIFIED
Costa C KuskoCanadaBernardo Dominic PROPOSAL
Aika U RoysterBrazilBernardo Dominic RENEWAL
Silvio E ChuiSpainAsiya Javayant NEGOTIATION
Sinclair M IturbideJapanBernardo Dominic QUALIFIED
Arvin I RutaItalyAsiya Javayant NEGOTIATION
Alejandro B BowleyJapanIoni Bowcher QUALIFIED
Francesco I KuskoCanadaAsiya Javayant NEGOTIATION
Aika U SergiIndiaIoni Bowcher NEW
Maria Y RutaIndiaStephen Shaw NEW
Jones R SlusarskiGermanyOnyama Limba NEGOTIATION
Mayumi E InouyeIndiaStephen Shaw NEGOTIATION
Misaki D KuskoAustraliaIvan Magalhaes PROPOSAL
Johnson T RoysterUnited KingdomAnna Fali PROPOSAL
Darci P AlbaresCanadaIvan Magalhaes QUALIFIED
Murillo X CampainUnited KingdomElwin Sharvill NEW
Clifford B DilliardGermanyIvan Magalhaes NEGOTIATION
Ashley Z FollerBrazilAnna Fali PROPOSAL
Ricardo H ButtArgentinaXuxue Feng RENEWAL
Tony V GillianIndiaBernardo Dominic PROPOSAL
Johnson C CaldareraJapanAmy Elsner QUALIFIED
Claire X IturbideGermanyAmy Elsner UNQUALIFIED
Faith K MarrierArgentinaAsiya Javayant QUALIFIED
Murillo B AmigonGermanyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo W WaycottAustraliaOnyama Limba UNQUALIFIED
Jennifer W OldroydSpainOnyama Limba PROPOSAL
Alejandro T WieserGermanyAsiya Javayant NEW
Isabel Y AmigonGermanyElwin Sharvill QUALIFIED
Izzy W MaletSpainOnyama Limba QUALIFIED
Silvio Z CaudyAustraliaAmy Elsner NEGOTIATION
Misaki N InouyeItalyStephen Shaw NEGOTIATION
Francesco A MaletSpainStephen Shaw NEW
Julie U ShinkoFranceIvan Magalhaes QUALIFIED
Isabel K KuskoJapanOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair D ButtAustralia2026-10-11Chemel, James L Cpa RENEWAL20Asiya Javayant
1001Claire G VocelkaGermany2026-10-21Morlong Associates QUALIFIED70Amy Elsner
1002Isabel E ButtSpain2026-10-25Feiner Bros UNQUALIFIED30Bernardo Dominic
1003Misaki O MacleadUnited Kingdom2026-10-07Rangoni Of Florence UNQUALIFIED55Ioni Bowcher
1004Kaitlin P RimFrance2026-10-12Commercial Press QUALIFIED8Ioni Bowcher
1005Greenwood F SchemmerItaly2026-10-27Printing Dimensions UNQUALIFIED61Xuxue Feng
1006James K MaletArgentina2026-10-21King, Christopher A Esq UNQUALIFIED82Ioni Bowcher
1007Stacey Q WieserBrazil2026-11-03Dorl, James J Esq RENEWAL35Anna Fali
1008Murillo R SergiJapan2026-10-07Buckley Miller Wright PROPOSAL78Onyama Limba
1009James S MaletRussia2026-10-16Dorl, James J Esq NEW27Amy Elsner
1010Rodrigues M GarufiGermany2026-10-19Commercial Press PROPOSAL15Elwin Sharvill
1011Kadeem A ButtGermany2026-10-07King, Christopher A Esq PROPOSAL63Xuxue Feng
1012Jennifer U ShinkoJapan2026-10-30Chanay, Jeffrey A Esq NEW7Stephen Shaw
1013Chavez U BriddickIndia2026-10-24Chanay, Jeffrey A Esq NEGOTIATION63Elwin Sharvill
1014Maisha J PaprockiArgentina2026-10-25Morlong Associates RENEWAL96Anna Fali
1015Mujtaba U CaldareraItaly2026-10-14Chapman, Ross E Esq QUALIFIED30Elwin Sharvill
1016Sinclair R SergiJapan2026-10-11Commercial Press PROPOSAL86Ivan Magalhaes
1017Deepesh G BologniaSpain2026-11-01Chemel, James L Cpa QUALIFIED15Asiya Javayant
1018Darci M DilliardRussia2026-10-19Buckley Miller Wright UNQUALIFIED83Bernardo Dominic
1019Antonio Q KolmetzAustralia2026-11-02Printing Dimensions PROPOSAL94Ivan Magalhaes
1020Darci M MorascaBrazil2026-10-25Chapman, Ross E Esq UNQUALIFIED95Onyama Limba
1021Aditya L RutaAustralia2026-10-07Commercial Press UNQUALIFIED26Ioni Bowcher
1022Costa L BologniaBrazil2026-10-22King, Christopher A Esq RENEWAL76Stephen Shaw
1023Maria I AmigonArgentina2026-10-16Buckley Miller Wright PROPOSAL82Elwin Sharvill
1024Maisha Q BologniaRussia2026-10-28Rangoni Of Florence PROPOSAL76Ioni Bowcher
1025Wickens F MacleadJapan2026-10-25King, Christopher A Esq PROPOSAL61Amy Elsner
1026Jeanfrancois T StockhamAustralia2026-10-20Commercial Press QUALIFIED60Asiya Javayant
1027Francesco H BowleyUnited Kingdom2026-10-15Morlong Associates PROPOSAL44Onyama Limba
1028Alejandro U RimBrazil2026-10-07Dorl, James J Esq NEGOTIATION3Anna Fali
1029Isabel N BologniaBrazil2026-10-25Morlong Associates RENEWAL97Stephen Shaw
1030Kadeem F OldroydSpain2026-10-10Truhlar And Truhlar Attys RENEWAL90Xuxue Feng
1031Claire S WieserSpain2026-10-18Benton, John B Jr QUALIFIED40Asiya Javayant
1032Leon Q ButtArgentina2026-10-21Feiner Bros NEW33Anna Fali
1033Juan H BriddickBrazil2026-10-13Dorl, James J Esq NEGOTIATION23Elwin Sharvill
1034Sinclair T PoquetteGermany2026-10-24Buckley Miller Wright UNQUALIFIED57Anna Fali
1035Smith A GarufiArgentina2026-10-14Chanay, Jeffrey A Esq UNQUALIFIED51Elwin Sharvill
1036Leja A KuskoGermany2026-10-24Buckley Miller Wright UNQUALIFIED32Xuxue Feng
1037Morrow S WaycottCanada2026-10-30King, Christopher A Esq RENEWAL2Ivan Magalhaes
1038Arvin D OldroydJapan2026-10-18Chanay, Jeffrey A Esq NEW40Stephen Shaw
1039Aika D FollerArgentina2026-10-12Feiner Bros NEGOTIATION22Ioni Bowcher
1040Maria X DoeJapan2026-10-12Chapman, Ross E Esq UNQUALIFIED83Ioni Bowcher
1041Kaitlin T InouyeFrance2026-10-21Benton, John B Jr RENEWAL91Ioni Bowcher
1042Kaitlin H NickaCanada2026-10-24Chemel, James L Cpa UNQUALIFIED64Stephen Shaw
1043Clifford S BowleyBrazil2026-10-18King, Christopher A Esq QUALIFIED12Asiya Javayant
1044Kadeem F KolmetzUnited Kingdom2026-10-20Feiner Bros PROPOSAL91Ivan Magalhaes
1045Morrow M DoeCanada2026-10-25Buckley Miller Wright RENEWAL16Stephen Shaw
1046Izzy P DilliardGermany2026-10-07Benton, John B Jr QUALIFIED42Onyama Limba
1047Izzy E AlbaresGermany2026-10-30Dorl, James J Esq NEGOTIATION29Amy Elsner
1048Francesco J CaldareraIndia2026-10-14Chapman, Ross E Esq NEGOTIATION65Ioni Bowcher
1049Salvatore U SlusarskiSpain2026-11-04Truhlar And Truhlar Attys NEW53Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Sinclair T VocelkaGermanyAnna Fali NEGOTIATION
Mayumi T GillianAustraliaBernardo Dominic PROPOSAL
Maisha S FollerSpainIvan Magalhaes PROPOSAL
Octavia M DarakjyAustraliaIoni Bowcher NEW
Octavia N AlbaresFranceAsiya Javayant UNQUALIFIED
Johnson Z ButtJapanBernardo Dominic NEGOTIATION
Ivar Q NickaFranceXuxue Feng NEGOTIATION
Maisha G SlusarskiItalyBernardo Dominic NEW
Claire A GarufiIndiaBernardo Dominic PROPOSAL
Munro V TollnerItalyBernardo Dominic PROPOSAL
Kaitlin A DoeUnited KingdomXuxue Feng QUALIFIED
Juan M OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Emily U MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore H PerinSpainOnyama Limba NEW
Chavez G RoysterSpainAmy Elsner PROPOSAL
Salvatore Z CaudyUnited KingdomOnyama Limba NEW
Aruna G CampainArgentinaBernardo Dominic RENEWAL
Morrow K StensethIndiaStephen Shaw PROPOSAL
Costa T DilliardRussiaIvan Magalhaes NEW
Jeanfrancois A MaletItalyAnna Fali NEGOTIATION
Clifford O WieserItalyElwin Sharvill RENEWAL
Munro M BologniaIndiaAnna Fali QUALIFIED
James W RimUnited KingdomBernardo Dominic NEGOTIATION
Jefferson J MacleadBrazilOnyama Limba QUALIFIED
Johnson V MaletSpainOnyama Limba QUALIFIED
Julie J CaldareraCanadaAnna Fali NEGOTIATION
Kaitlin S WaycottSpainIvan Magalhaes PROPOSAL
Alejandro V CaudyFranceIvan Magalhaes QUALIFIED
Costa Q ButtUnited KingdomOnyama Limba NEW
Isabel O GlickJapanOnyama Limba QUALIFIED
Julie F MarrierBrazilBernardo Dominic PROPOSAL
James W WhobreyBrazilOnyama Limba RENEWAL
Costa C PoquetteGermanyIvan Magalhaes NEGOTIATION
Ivar P ChuiItalyAnna Fali RENEWAL
David L ButtGermanyOnyama Limba NEW
Smith W VenereSpainAmy Elsner UNQUALIFIED
Darci E StockhamGermanyStephen Shaw PROPOSAL
Julie P RulapaughGermanyIvan Magalhaes QUALIFIED
Greenwood Y SchemmerFranceAmy Elsner NEW
Munro M BriddickUnited KingdomStephen Shaw PROPOSAL
Ivar P MacleadItalyAsiya Javayant UNQUALIFIED
Aruna M SergiGermanyStephen Shaw QUALIFIED
Jennifer T FollerSpainOnyama Limba QUALIFIED
Tony D WhobreyCanadaAsiya Javayant NEGOTIATION
Arvin H OldroydJapanBernardo Dominic PROPOSAL
Arvin V GlickItalyStephen Shaw QUALIFIED
Deepesh G FerenczSpainAmy Elsner NEGOTIATION
Stacey B DarakjyBrazilStephen Shaw NEGOTIATION
Ricardo J WieserIndiaStephen Shaw NEW
Juan H ButtAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Morrow I Tollner
Emily I Briddick
Ivar A Malet
Chavez J Darakjy
Izzy J Briddick
Salvatore H Figeroa
Maisha H Campain
Tony R Albares
Salvatore C Briddick
Salvatore X Figeroa
Ashley W Amigon
Jennifer E Saylors
Jefferson F Dilliard
Morrow B Venere
Stacey U Stockham
Aruna L Dilliard
Maisha D Ostrosky
Johnson H Garufi
Misaki L Foller
Salvatore E Caudy
Isabel D Kolmetz
Sinclair V Butt
Aika Y Maclead
Cody I Caldarera
Misaki V Caldarera
Julie S Whobrey
Aruna I Rulapaugh
Alejandro M Waycott
Jefferson E Marrier
Stacey Q Slusarski
Adams L Garufi
Isabel V Oldroyd
Ricardo L Chui
Aika W Perin
Aditya R Perin
Leon E Nestle
Kadeem O Glick
Francesco Y Oldroyd
Darci M Dilliard
Juan V Ostrosky
Izzy R Foller
Faith L Marrier
Ivar K Nicka
Murillo L Tollner
Tony E Saylors
Mayumi Z Flosi
Leja Y Poquette
Alejandro E Venere
Maisha J Rulapaugh
Aruna F Flosi
IdCountryDate
1000Australia2026-10-28
1001Japan2026-10-19
1002Spain2026-10-06
1003Canada2026-10-26
1004Spain2026-10-24
1005Russia2026-10-30
1006Japan2026-10-22
1007Italy2026-10-13
1008France2026-10-30
1009India2026-10-15
1010Italy2026-11-03
1011Spain2026-10-19
1012India2026-10-06
1013Spain2026-10-17
1014Russia2026-11-02
1015United Kingdom2026-10-23
1016Italy2026-10-09
1017Germany2026-11-03
1018United Kingdom2026-10-07
1019United Kingdom2026-10-11
1020Australia2026-10-19
1021Germany2026-11-04
1022Canada2026-10-10
1023India2026-10-20
1024Canada2026-10-20
1025Japan2026-10-06
1026Argentina2026-10-15
1027Spain2026-10-27
1028United Kingdom2026-10-25
1029Russia2026-10-26
1030Australia2026-10-17
1031Argentina2026-11-02
1032France2026-10-30
1033Argentina2026-10-23
1034Australia2026-11-01
1035Australia2026-10-24
1036France2026-10-22
1037Italy2026-10-12
1038France2026-10-06
1039Russia2026-11-03
1040France2026-10-20
1041Argentina2026-10-24
1042Canada2026-10-21
1043Italy2026-10-09
1044Russia2026-10-29
1045Australia2026-10-11
1046Brazil2026-10-10
1047Australia2026-11-01
1048France2026-10-08
1049Germany2026-10-31

On-Demand Data

NameIdCountryDate
Alejandro F Doe1000Germany2026-10-14
Isabel J Maclead1001Russia2026-10-12
Izzy N Tollner1002United Kingdom2026-10-19
Misaki G Garufi1003Canada2026-11-04
Octavia J Amigon1004Japan2026-10-12
Antonio O Malet1005Italy2026-11-04
Julie Q Bolognia1006Argentina2026-10-15
Murillo Y Stockham1007Japan2026-11-04
Leon D Stenseth1008Brazil2026-10-29
Maria K Royster1009Spain2026-10-08
Antonio K Doe1010Australia2026-10-28
Emily J Tollner1011Australia2026-10-10
Chavez B Rulapaugh1012Australia2026-10-08
Cody N Ostrosky1013Japan2026-10-22
James N Glick1014Argentina2026-10-15
Juan I Venere1015Russia2026-10-23
Ricardo Y Stenseth1016Argentina2026-10-22
Leja D Bowley1017Spain2026-10-18
Julie H Dilliard1018Argentina2026-11-04
Maria H Nestle1019Canada2026-10-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer C FlosiFranceElwin Sharvill UNQUALIFIED
Ashley H BriddickSpainAnna Fali NEGOTIATION
Darci X IturbideUnited KingdomAmy Elsner NEW
Kadeem G VocelkaBrazilAsiya Javayant RENEWAL
Jones U RoysterIndiaIoni Bowcher PROPOSAL
James J IturbideRussiaXuxue Feng UNQUALIFIED
Aditya I PoquetteGermanyAsiya Javayant RENEWAL
Ivar A RoysterItalyAmy Elsner PROPOSAL
Isabel T MaletIndiaIvan Magalhaes PROPOSAL
Mayumi R GlickCanadaAsiya Javayant RENEWAL
Rodrigues H OldroydArgentinaIvan Magalhaes QUALIFIED
Sinclair H SaylorsGermanyStephen Shaw QUALIFIED
Silvio R GarufiItalyAnna Fali QUALIFIED
James J CampainAustraliaElwin Sharvill NEW
Munro Z RimRussiaIvan Magalhaes QUALIFIED
Ashley V NestleUnited KingdomXuxue Feng RENEWAL
Faith B SergiRussiaIvan Magalhaes UNQUALIFIED
Wickens C WaycottFranceIvan Magalhaes RENEWAL
Tony Q BowleyJapanXuxue Feng UNQUALIFIED
James U SchemmerFranceStephen Shaw NEW
Emily O FigeroaSpainIoni Bowcher UNQUALIFIED
Julie A CampainArgentinaAnna Fali RENEWAL
Morrow J CaldareraJapanOnyama Limba RENEWAL
Antonio S RutaJapanAmy Elsner QUALIFIED
Silvio U BowleyRussiaAnna Fali NEGOTIATION
Jefferson M VocelkaFranceIoni Bowcher PROPOSAL
Alejandro P BologniaAustraliaIvan Magalhaes QUALIFIED
Alejandro W DarakjyArgentinaIoni Bowcher NEGOTIATION
Adams G FigeroaBrazilAmy Elsner NEGOTIATION
Isabel E RimFranceAsiya Javayant UNQUALIFIED
Aruna I GarufiItalyAmy Elsner QUALIFIED
Stacey C PaprockiIndiaOnyama Limba NEW
Deepesh C ButtAustraliaBernardo Dominic RENEWAL
Ashley O WhobreyIndiaAsiya Javayant RENEWAL
Izzy G RutaSpainStephen Shaw QUALIFIED
Johnson C OldroydJapanAsiya Javayant NEW
Greenwood A GillianArgentinaStephen Shaw RENEWAL
Smith K PaprockiItalyAmy Elsner NEGOTIATION
Cody C BologniaBrazilStephen Shaw PROPOSAL
Ashley N ButtAustraliaIoni Bowcher 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>