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
Francesco J PoquetteCanadaOnyama Limba NEW
Ashley S OldroydItalyBernardo Dominic NEW
Darci T GillianArgentinaAsiya Javayant NEW
Emily W RimRussiaBernardo Dominic PROPOSAL
Mujtaba U FlosiAustraliaIvan Magalhaes NEGOTIATION
Izzy G BriddickArgentinaXuxue Feng RENEWAL
Silvio V GarufiItalyXuxue Feng UNQUALIFIED
Costa Z DilliardUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin A RimRussiaBernardo Dominic PROPOSAL
Mayumi V RoysterRussiaElwin Sharvill QUALIFIED
Octavia O KuskoCanadaAmy Elsner NEW
Leja A NickaSpainXuxue Feng NEGOTIATION
Wickens G GlickUnited KingdomBernardo Dominic QUALIFIED
Adams O ChuiUnited KingdomElwin Sharvill NEW
Ricardo W KuskoSpainStephen Shaw RENEWAL
Izzy B FlosiRussiaIvan Magalhaes QUALIFIED
Ivar H MorascaGermanyOnyama Limba NEW
Jefferson O ButtBrazilIoni Bowcher NEW
Wickens O FerenczJapanElwin Sharvill UNQUALIFIED
Arvin W KolmetzGermanyIvan Magalhaes RENEWAL
Nicolas Z MacleadIndiaAnna Fali NEGOTIATION
Octavia P DoeGermanyXuxue Feng UNQUALIFIED
Ricardo G PerinAustraliaAsiya Javayant NEGOTIATION
Silvio N IturbideFranceAnna Fali RENEWAL
Smith U ButtGermanyStephen Shaw NEGOTIATION
Juan K MacleadSpainStephen Shaw QUALIFIED
Misaki W StensethItalyAnna Fali UNQUALIFIED
Clifford F PaprockiSpainElwin Sharvill UNQUALIFIED
Juan A CaldareraFranceAmy Elsner PROPOSAL
Jefferson B ButtSpainIvan Magalhaes NEGOTIATION
Misaki B ShinkoArgentinaBernardo Dominic RENEWAL
Nicolas J OldroydFranceIvan Magalhaes RENEWAL
Darci W NestleCanadaBernardo Dominic UNQUALIFIED
Nicolas H VocelkaJapanElwin Sharvill UNQUALIFIED
Jeanfrancois J FlosiJapanXuxue Feng QUALIFIED
Leja Z SlusarskiUnited KingdomElwin Sharvill NEW
Alejandro T StockhamFranceAsiya Javayant QUALIFIED
Aditya Y PaprockiCanadaElwin Sharvill QUALIFIED
Arvin U MorascaAustraliaElwin Sharvill NEW
Greenwood G AlbaresFranceAnna Fali QUALIFIED
Costa X CaudyGermanyAsiya Javayant NEW
Leon I AmigonBrazilStephen Shaw QUALIFIED
Munro P GillianItalyElwin Sharvill QUALIFIED
Izzy J DarakjyAustraliaAmy Elsner UNQUALIFIED
Leon R PerinCanadaIoni Bowcher QUALIFIED
Leja S WhobreyIndiaBernardo Dominic NEGOTIATION
Juan A KolmetzJapanIvan Magalhaes NEGOTIATION
Izzy C GlickIndiaAsiya Javayant PROPOSAL
Wickens P CampainIndiaIvan Magalhaes QUALIFIED
Murillo G KolmetzFranceIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford G PaprockiUnited KingdomElwin Sharvill NEW
Nicolas Y RimBrazilStephen Shaw NEGOTIATION
Darci Q SlusarskiSpainAmy Elsner PROPOSAL
Antonio Y SaylorsGermanyAnna Fali UNQUALIFIED
James I MaletSpainBernardo Dominic PROPOSAL
Wickens V CaudyBrazilXuxue Feng PROPOSAL
Adams X MaletItalyStephen Shaw RENEWAL
Aruna Y SaylorsSpainXuxue Feng PROPOSAL
Mujtaba T BriddickGermanyAnna Fali NEW
Arvin F CaudySpainIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo G CaudyIndia2026-09-22Rangoni Of Florence PROPOSAL2Elwin Sharvill
1001Jefferson A KuskoRussia2026-09-13Rangoni Of Florence PROPOSAL28Onyama Limba
1002Claire Z MaletItaly2026-10-04Chapman, Ross E Esq QUALIFIED89Anna Fali
1003Ashley O SergiJapan2026-10-01Chapman, Ross E Esq RENEWAL62Stephen Shaw
1004Isabel S WhobreyBrazil2026-09-18Dorl, James J Esq NEW45Ioni Bowcher
1005Aditya J ShinkoCanada2026-09-13Morlong Associates RENEWAL74Xuxue Feng
1006Mayumi A BologniaBrazil2026-09-13Commercial Press NEGOTIATION60Ioni Bowcher
1007Kaitlin V SlusarskiUnited Kingdom2026-09-28Chanay, Jeffrey A Esq NEGOTIATION46Elwin Sharvill
1008Jennifer I SlusarskiSpain2026-10-05Chemel, James L Cpa RENEWAL25Xuxue Feng
1009Alejandro I OldroydArgentina2026-10-04Chanay, Jeffrey A Esq NEW88Xuxue Feng
1010Cody M BriddickGermany2026-09-15Printing Dimensions NEW36Asiya Javayant
1011Jeanfrancois J TollnerBrazil2026-09-21Truhlar And Truhlar Attys NEGOTIATION44Amy Elsner
1012Clifford U CaldareraCanada2026-09-18King, Christopher A Esq NEW1Ivan Magalhaes
1013Stacey R SchemmerCanada2026-09-14Truhlar And Truhlar Attys NEGOTIATION48Xuxue Feng
1014Ricardo N BriddickAustralia2026-09-12Chanay, Jeffrey A Esq UNQUALIFIED17Elwin Sharvill
1015Salvatore V GlickRussia2026-09-29Printing Dimensions RENEWAL37Asiya Javayant
1016James R SlusarskiIndia2026-09-23Rangoni Of Florence RENEWAL85Elwin Sharvill
1017Costa V GauchoCanada2026-09-26Commercial Press QUALIFIED61Bernardo Dominic
1018Maisha P RimAustralia2026-09-21Printing Dimensions NEGOTIATION41Xuxue Feng
1019Isabel F RutaItaly2026-09-11Truhlar And Truhlar Attys PROPOSAL53Asiya Javayant
1020Jennifer Q PoquetteAustralia2026-09-30Rousseaux, Michael Esq QUALIFIED21Ivan Magalhaes
1021Sinclair U VocelkaRussia2026-09-29Feltz Printing Service NEW4Stephen Shaw
1022Aruna W PoquetteUnited Kingdom2026-09-14Rousseaux, Michael Esq PROPOSAL91Bernardo Dominic
1023Jefferson J FlosiCanada2026-09-30Chapman, Ross E Esq PROPOSAL84Ivan Magalhaes
1024Aika Q MorascaAustralia2026-09-14Printing Dimensions UNQUALIFIED72Asiya Javayant
1025Octavia T RulapaughGermany2026-09-30Chemel, James L Cpa QUALIFIED46Xuxue Feng
1026Tony I KolmetzArgentina2026-09-07Chapman, Ross E Esq NEW71Stephen Shaw
1027Juan E VenereItaly2026-09-13Morlong Associates RENEWAL61Ivan Magalhaes
1028Ricardo W VocelkaItaly2026-09-17King, Christopher A Esq NEW54Elwin Sharvill
1029Morrow Q GauchoSpain2026-09-12Rousseaux, Michael Esq UNQUALIFIED6Amy Elsner
1030Chavez J FerenczCanada2026-09-20Buckley Miller Wright NEW3Asiya Javayant
1031Costa X BowleyAustralia2026-09-22Morlong Associates PROPOSAL71Anna Fali
1032Julie Q ButtGermany2026-09-29Morlong Associates NEW72Xuxue Feng
1033David S NickaSpain2026-09-27Chapman, Ross E Esq NEW15Bernardo Dominic
1034Jefferson S MaletFrance2026-09-27Chemel, James L Cpa QUALIFIED10Ioni Bowcher
1035Emily C StensethFrance2026-09-29Chapman, Ross E Esq NEGOTIATION20Anna Fali
1036Antonio W BologniaArgentina2026-09-17Feltz Printing Service UNQUALIFIED50Anna Fali
1037James U StensethUnited Kingdom2026-09-17Truhlar And Truhlar Attys QUALIFIED8Asiya Javayant
1038Aruna O BowleyIndia2026-09-21King, Christopher A Esq RENEWAL69Elwin Sharvill
1039Wickens H BowleyIndia2026-10-05Chanay, Jeffrey A Esq RENEWAL74Onyama Limba
1040Rodrigues S MarrierSpain2026-09-23Rangoni Of Florence NEGOTIATION31Amy Elsner
1041Misaki A AmigonSpain2026-10-02Feiner Bros QUALIFIED5Anna Fali
1042Nicolas U GauchoGermany2026-09-08Morlong Associates PROPOSAL87Elwin Sharvill
1043Munro X InouyeRussia2026-09-28King, Christopher A Esq RENEWAL60Ioni Bowcher
1044Stacey I MaletGermany2026-09-07Printing Dimensions UNQUALIFIED91Bernardo Dominic
1045Murillo G GlickArgentina2026-09-16Feiner Bros NEGOTIATION26Anna Fali
1046Kaitlin C CampainAustralia2026-09-18Buckley Miller Wright UNQUALIFIED68Asiya Javayant
1047David S StensethAustralia2026-09-15Morlong Associates NEGOTIATION0Ivan Magalhaes
1048Mujtaba G MacleadCanada2026-09-24Chanay, Jeffrey A Esq RENEWAL58Onyama Limba
1049Smith N KolmetzSpain2026-09-18Dorl, James J Esq UNQUALIFIED77Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues P GillianItalyIoni Bowcher NEGOTIATION
Murillo U StensethJapanAsiya Javayant UNQUALIFIED
Clifford F SaylorsFranceStephen Shaw RENEWAL
Kadeem S SaylorsArgentinaElwin Sharvill NEW
Darci K BriddickUnited KingdomStephen Shaw QUALIFIED
Leja H MaletSpainElwin Sharvill NEGOTIATION
Alejandro A IturbideSpainIoni Bowcher RENEWAL
Morrow B RimSpainOnyama Limba QUALIFIED
Emily U KuskoItalyOnyama Limba PROPOSAL
Francesco K GauchoGermanyXuxue Feng UNQUALIFIED
Claire A SergiCanadaAmy Elsner NEW
Arvin W FigeroaIndiaBernardo Dominic NEGOTIATION
Wickens W GillianFranceXuxue Feng NEW
Rodrigues S FigeroaFranceIoni Bowcher PROPOSAL
Antonio F ChuiCanadaElwin Sharvill QUALIFIED
Morrow L PaprockiJapanAmy Elsner NEW
Murillo R FerenczJapanIvan Magalhaes NEW
Julie F GlickSpainStephen Shaw NEGOTIATION
James N InouyeArgentinaAsiya Javayant NEW
Deepesh L RoysterBrazilAnna Fali RENEWAL
Juan L GillianCanadaIoni Bowcher NEGOTIATION
Claire J WieserGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois P WaycottIndiaAsiya Javayant QUALIFIED
Jefferson V WieserFranceOnyama Limba NEW
Maria N CaldareraJapanXuxue Feng RENEWAL
Ivar R AlbaresRussiaAsiya Javayant UNQUALIFIED
Murillo L VocelkaArgentinaXuxue Feng NEW
Jeanfrancois M MarrierUnited KingdomBernardo Dominic QUALIFIED
Aika X AlbaresAustraliaIoni Bowcher NEW
Ivar W NickaGermanyStephen Shaw QUALIFIED
Murillo N ButtFranceOnyama Limba QUALIFIED
Julie X NestleUnited KingdomAsiya Javayant PROPOSAL
Murillo E RimRussiaElwin Sharvill UNQUALIFIED
Johnson P KolmetzItalyOnyama Limba NEW
Jennifer Y KolmetzCanadaIoni Bowcher QUALIFIED
Izzy C MacleadJapanAnna Fali NEGOTIATION
James N RulapaughGermanyStephen Shaw NEGOTIATION
Alejandro F SchemmerItalyAmy Elsner NEGOTIATION
Clifford X FlosiRussiaAnna Fali UNQUALIFIED
Jennifer I GarufiFranceAmy Elsner UNQUALIFIED
Misaki K OldroydIndiaOnyama Limba QUALIFIED
Ashley V IturbideGermanyXuxue Feng QUALIFIED
Morrow N WhobreyRussiaIvan Magalhaes QUALIFIED
Faith A AmigonFranceAnna Fali UNQUALIFIED
Johnson A FollerItalyStephen Shaw RENEWAL
Faith G BologniaCanadaXuxue Feng NEGOTIATION
Costa J NestleSpainAsiya Javayant PROPOSAL
Juan R RoysterJapanAnna Fali RENEWAL
Morrow N AmigonBrazilXuxue Feng NEW
Julie A AlbaresSpainAnna Fali QUALIFIED
Frozen Columns
Name
Izzy B Flosi
Misaki M Schemmer
Ashley X Bolognia
Stacey P Kolmetz
Maria P Rim
James D Dilliard
Salvatore S Ferencz
Isabel W Ferencz
David A Albares
Cody M Marrier
David Y Dilliard
Maria Z Bowley
Mayumi K Kolmetz
Silvio Z Butt
Silvio V Dilliard
Antonio D Bolognia
Misaki Z Iturbide
Faith Y Bowley
Leja T Inouye
Silvio K Ruta
Francesco A Caudy
David B Poquette
Faith H Campain
Stacey M Wieser
Johnson E Oldroyd
Mujtaba M Butt
Julie K Maclead
Juan F Nestle
Jones C Malet
Jennifer H Malet
Darci Y Figeroa
Kaitlin X Doe
Costa R Ostrosky
Greenwood T Shinko
Silvio T Bolognia
Maria G Vocelka
Arvin L Slusarski
Aruna V Wieser
Juan R Royster
Izzy L Caldarera
Maisha D Shinko
Maisha H Kolmetz
Nicolas T Poquette
Johnson A Caldarera
Aditya R Inouye
Johnson W Dilliard
James C Sergi
Murillo U Figeroa
Antonio Q Maclead
Munro Q Garufi
IdCountryDate
1000Germany2026-10-04
1001Germany2026-09-08
1002France2026-09-28
1003Canada2026-10-03
1004Australia2026-09-10
1005Australia2026-09-28
1006United Kingdom2026-09-09
1007India2026-09-07
1008Japan2026-09-09
1009Spain2026-09-20
1010France2026-09-07
1011Russia2026-10-04
1012Italy2026-09-09
1013United Kingdom2026-09-15
1014United Kingdom2026-09-07
1015Canada2026-10-01
1016United Kingdom2026-09-11
1017Brazil2026-09-28
1018Italy2026-09-07
1019Italy2026-10-05
1020Australia2026-09-26
1021Canada2026-09-21
1022Canada2026-09-20
1023Argentina2026-10-03
1024Italy2026-09-24
1025France2026-09-12
1026Brazil2026-09-24
1027Russia2026-10-06
1028Russia2026-10-05
1029Japan2026-09-30
1030India2026-09-15
1031United Kingdom2026-09-26
1032France2026-09-29
1033Spain2026-09-21
1034India2026-10-03
1035Russia2026-10-06
1036France2026-09-20
1037Japan2026-09-20
1038Argentina2026-09-13
1039Russia2026-10-03
1040Argentina2026-09-13
1041Brazil2026-09-15
1042Italy2026-09-07
1043Germany2026-10-04
1044Brazil2026-09-11
1045United Kingdom2026-09-27
1046Japan2026-09-22
1047United Kingdom2026-09-09
1048India2026-10-06
1049Japan2026-10-02

On-Demand Data

NameIdCountryDate
Francesco V Iturbide1000Brazil2026-10-06
Mujtaba G Amigon1001United Kingdom2026-10-01
James M Gillian1002Germany2026-09-28
Clifford M Stenseth1003India2026-09-09
Leja A Darakjy1004Argentina2026-09-10
Leja M Waycott1005Russia2026-09-27
Darci M Iturbide1006Germany2026-10-06
Smith H Inouye1007Japan2026-09-26
Darci I Flosi1008Canada2026-09-07
Silvio J Doe1009Russia2026-09-18
Francesco L Rulapaugh1010Australia2026-09-26
Jones A Paprocki1011Brazil2026-09-24
Cody G Darakjy1012Australia2026-09-10
Clifford H Bolognia1013Spain2026-09-25
Salvatore B Briddick1014Germany2026-09-24
Maria I Iturbide1015Germany2026-09-28
Jennifer B Bolognia1016France2026-09-28
Adams I Malet1017Japan2026-09-15
Isabel I Glick1018Germany2026-09-22
Antonio R Iturbide1019Canada2026-09-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith I IturbideSpainBernardo Dominic PROPOSAL
Salvatore H DilliardArgentinaXuxue Feng NEGOTIATION
Antonio E BowleyRussiaElwin Sharvill RENEWAL
Stacey A InouyeJapanIoni Bowcher NEW
Antonio P MorascaJapanAnna Fali RENEWAL
Silvio K FerenczGermanyIoni Bowcher NEW
Misaki B MaletSpainAnna Fali PROPOSAL
Adams V CampainCanadaIoni Bowcher PROPOSAL
Juan F RimFranceOnyama Limba UNQUALIFIED
Emily R DarakjyBrazilBernardo Dominic NEW
Jennifer R RulapaughBrazilIvan Magalhaes UNQUALIFIED
Arvin N MorascaSpainIvan Magalhaes PROPOSAL
Octavia U VocelkaIndiaIvan Magalhaes QUALIFIED
Misaki B VenereSpainAsiya Javayant NEGOTIATION
Munro R CampainSpainAmy Elsner NEW
Munro C TollnerFranceBernardo Dominic PROPOSAL
Cody I OldroydJapanOnyama Limba PROPOSAL
Francesco S AmigonIndiaIvan Magalhaes QUALIFIED
Ricardo V VocelkaIndiaIoni Bowcher UNQUALIFIED
Izzy F MarrierCanadaXuxue Feng QUALIFIED
Juan K RoysterAustraliaAsiya Javayant RENEWAL
Leon Z DilliardAustraliaBernardo Dominic RENEWAL
Misaki A FlosiIndiaIvan Magalhaes UNQUALIFIED
Octavia L FerenczArgentinaAsiya Javayant QUALIFIED
Leja Q WieserRussiaXuxue Feng UNQUALIFIED
Isabel D StockhamUnited KingdomAnna Fali PROPOSAL
Sinclair E BriddickFranceXuxue Feng RENEWAL
Costa I MacleadAustraliaElwin Sharvill QUALIFIED
Aruna O FigeroaFranceAmy Elsner UNQUALIFIED
Jefferson R ButtJapanOnyama Limba NEGOTIATION
Munro H MaletUnited KingdomIoni Bowcher RENEWAL
Kaitlin Z RimIndiaAsiya Javayant UNQUALIFIED
Ricardo I MaletBrazilAmy Elsner QUALIFIED
Ashley A KuskoArgentinaAnna Fali PROPOSAL
Leon O RimGermanyXuxue Feng QUALIFIED
Tony J FlosiIndiaAmy Elsner NEW
Alejandro B VocelkaIndiaIoni Bowcher PROPOSAL
Maisha V AmigonJapanIvan Magalhaes NEW
Adams S WhobreyItalyIvan Magalhaes UNQUALIFIED
Chavez B VocelkaSpainAsiya Javayant 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>