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
Murillo A MarrierRussiaXuxue Feng NEW
Mujtaba X StensethRussiaXuxue Feng NEGOTIATION
Wickens S GlickAustraliaBernardo Dominic UNQUALIFIED
Mayumi H WieserIndiaAmy Elsner UNQUALIFIED
Tony O CaldareraGermanyAmy Elsner UNQUALIFIED
Rodrigues Q GauchoGermanyIoni Bowcher UNQUALIFIED
Silvio X RoysterIndiaBernardo Dominic RENEWAL
Salvatore G WaycottSpainAnna Fali PROPOSAL
Faith O ChuiAustraliaIoni Bowcher NEW
Murillo X RutaBrazilIoni Bowcher UNQUALIFIED
Tony F FlosiAustraliaElwin Sharvill NEW
Ashley K CampainAustraliaXuxue Feng UNQUALIFIED
Arvin C RulapaughIndiaOnyama Limba RENEWAL
Aditya A FigeroaArgentinaIoni Bowcher PROPOSAL
Mayumi Z PerinIndiaIoni Bowcher PROPOSAL
Claire H GillianItalyBernardo Dominic NEW
Aditya H KolmetzSpainBernardo Dominic QUALIFIED
Jefferson T VenereFranceOnyama Limba RENEWAL
Faith Q GauchoSpainAnna Fali RENEWAL
Morrow O PaprockiArgentinaStephen Shaw QUALIFIED
Tony K DoeUnited KingdomAsiya Javayant NEW
Smith L AmigonFranceAsiya Javayant NEW
Darci X NestleBrazilElwin Sharvill QUALIFIED
Maria U RimJapanIvan Magalhaes UNQUALIFIED
Arvin Q InouyeAustraliaIvan Magalhaes RENEWAL
Aruna Z SaylorsUnited KingdomAmy Elsner RENEWAL
Kadeem V MarrierCanadaAsiya Javayant PROPOSAL
Kaitlin M WieserFranceIoni Bowcher PROPOSAL
Jennifer E GlickJapanAsiya Javayant PROPOSAL
Deepesh N ShinkoBrazilIvan Magalhaes NEW
Izzy C FigeroaCanadaOnyama Limba NEGOTIATION
Jeanfrancois B WhobreyCanadaIoni Bowcher NEGOTIATION
Costa T SergiBrazilAmy Elsner RENEWAL
Ashley N VocelkaAustraliaElwin Sharvill PROPOSAL
Chavez O RulapaughGermanyElwin Sharvill RENEWAL
Octavia A PerinIndiaXuxue Feng UNQUALIFIED
Octavia O RoysterJapanAnna Fali NEW
Kadeem B MarrierIndiaIoni Bowcher NEW
Cody F SergiCanadaAmy Elsner UNQUALIFIED
Mayumi V DilliardAustraliaAnna Fali PROPOSAL
Cody E MorascaBrazilElwin Sharvill QUALIFIED
Salvatore Y RoysterAustraliaXuxue Feng NEW
Jennifer O WaycottFranceAmy Elsner NEGOTIATION
Leon E DilliardSpainBernardo Dominic RENEWAL
Wickens H WieserUnited KingdomIvan Magalhaes NEW
Costa A NickaIndiaAmy Elsner PROPOSAL
Mayumi O PerinAustraliaStephen Shaw QUALIFIED
Ricardo I MaletRussiaStephen Shaw UNQUALIFIED
Aruna E OstroskyItalyElwin Sharvill PROPOSAL
Faith B OldroydGermanyStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair Q VenereRussiaIoni Bowcher UNQUALIFIED
Alejandro N GauchoArgentinaIoni Bowcher QUALIFIED
Octavia K StockhamIndiaIoni Bowcher NEGOTIATION
Alejandro M CampainArgentinaAmy Elsner NEW
Costa U SchemmerAustraliaAmy Elsner RENEWAL
Munro V GarufiFranceXuxue Feng RENEWAL
Wickens Q BriddickFranceIvan Magalhaes RENEWAL
Francesco H IturbideRussiaIvan Magalhaes RENEWAL
Jeanfrancois V BologniaGermanyXuxue Feng QUALIFIED
Juan T PaprockiRussiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith C NestleJapan2026-09-05Buckley Miller Wright QUALIFIED39Anna Fali
1001Deepesh T DilliardRussia2026-08-21Morlong Associates UNQUALIFIED67Ioni Bowcher
1002Smith Q PerinCanada2026-09-14Benton, John B Jr NEW44Asiya Javayant
1003Munro Y OldroydJapan2026-09-07Commercial Press QUALIFIED34Asiya Javayant
1004Salvatore F WieserGermany2026-09-09Feltz Printing Service QUALIFIED13Ioni Bowcher
1005Aika W OstroskySpain2026-09-13Chapman, Ross E Esq RENEWAL34Ivan Magalhaes
1006Nicolas D BologniaCanada2026-09-04Buckley Miller Wright PROPOSAL89Xuxue Feng
1007Emily Z VocelkaJapan2026-09-05Benton, John B Jr UNQUALIFIED18Ioni Bowcher
1008Nicolas W MarrierItaly2026-09-18Chemel, James L Cpa NEW97Ivan Magalhaes
1009Johnson M DilliardRussia2026-09-18Morlong Associates RENEWAL4Amy Elsner
1010Francesco Q VenereCanada2026-09-03Dorl, James J Esq PROPOSAL58Stephen Shaw
1011Maisha O SaylorsArgentina2026-09-05Chemel, James L Cpa UNQUALIFIED92Xuxue Feng
1012Morrow P GlickGermany2026-08-29Buckley Miller Wright UNQUALIFIED26Stephen Shaw
1013Julie O DoeItaly2026-09-17Rousseaux, Michael Esq NEW38Asiya Javayant
1014Rodrigues J CaudyJapan2026-08-21King, Christopher A Esq RENEWAL34Onyama Limba
1015Julie B PaprockiFrance2026-08-31Buckley Miller Wright QUALIFIED62Anna Fali
1016Silvio A CaldareraJapan2026-08-31Feiner Bros NEGOTIATION95Bernardo Dominic
1017Alejandro B MacleadRussia2026-09-11Morlong Associates QUALIFIED33Xuxue Feng
1018Jones L WieserCanada2026-09-15Feltz Printing Service UNQUALIFIED70Elwin Sharvill
1019Aika I SaylorsIndia2026-08-21Feltz Printing Service UNQUALIFIED91Xuxue Feng
1020Ricardo P CaudyItaly2026-09-18King, Christopher A Esq NEW38Xuxue Feng
1021Chavez Y MarrierArgentina2026-09-14Printing Dimensions UNQUALIFIED50Ioni Bowcher
1022Salvatore C ButtSpain2026-09-13King, Christopher A Esq NEW95Ioni Bowcher
1023Jennifer V MaletCanada2026-09-01Chemel, James L Cpa PROPOSAL52Xuxue Feng
1024Francesco W WieserArgentina2026-08-27Dorl, James J Esq RENEWAL94Ivan Magalhaes
1025Jefferson X MaletBrazil2026-09-02Chemel, James L Cpa PROPOSAL97Xuxue Feng
1026Jennifer M ShinkoGermany2026-09-05Rousseaux, Michael Esq NEGOTIATION47Bernardo Dominic
1027Silvio J SaylorsItaly2026-09-06Benton, John B Jr NEW51Xuxue Feng
1028Darci U CaudyBrazil2026-09-15Rangoni Of Florence PROPOSAL77Ivan Magalhaes
1029Antonio T SergiArgentina2026-09-04Feltz Printing Service NEGOTIATION54Elwin Sharvill
1030Murillo Y PoquetteItaly2026-09-18Truhlar And Truhlar Attys NEW92Stephen Shaw
1031Jennifer W BriddickAustralia2026-08-27Commercial Press PROPOSAL42Ivan Magalhaes
1032Izzy E WhobreyArgentina2026-09-07Feltz Printing Service QUALIFIED46Elwin Sharvill
1033Ricardo O MorascaCanada2026-08-31Printing Dimensions UNQUALIFIED15Asiya Javayant
1034Greenwood V AmigonUnited Kingdom2026-09-18King, Christopher A Esq NEW83Bernardo Dominic
1035Jones X InouyeRussia2026-09-11Chapman, Ross E Esq NEGOTIATION79Stephen Shaw
1036Deepesh I CaldareraFrance2026-09-16Chapman, Ross E Esq NEGOTIATION8Amy Elsner
1037Arvin C RulapaughJapan2026-09-01Chanay, Jeffrey A Esq NEGOTIATION88Ioni Bowcher
1038Clifford H PaprockiArgentina2026-08-21Benton, John B Jr PROPOSAL45Ioni Bowcher
1039Costa R BriddickIndia2026-09-08Printing Dimensions PROPOSAL38Ivan Magalhaes
1040Chavez A RutaSpain2026-09-10Commercial Press QUALIFIED0Ivan Magalhaes
1041Kaitlin Q TollnerIndia2026-09-05Buckley Miller Wright NEGOTIATION20Elwin Sharvill
1042Aruna A WaycottItaly2026-09-12Truhlar And Truhlar Attys PROPOSAL63Ioni Bowcher
1043Mayumi K FigeroaItaly2026-08-28Chapman, Ross E Esq NEW94Bernardo Dominic
1044Arvin L VocelkaGermany2026-08-27Rangoni Of Florence QUALIFIED92Stephen Shaw
1045Greenwood D ChuiAustralia2026-09-13Benton, John B Jr QUALIFIED47Ioni Bowcher
1046Stacey Z GlickItaly2026-09-13Dorl, James J Esq PROPOSAL25Asiya Javayant
1047Murillo G FollerRussia2026-09-04Commercial Press UNQUALIFIED98Bernardo Dominic
1048Tony W OldroydUnited Kingdom2026-08-31Chemel, James L Cpa NEGOTIATION29Onyama Limba
1049Wickens U BologniaIndia2026-08-27Chapman, Ross E Esq NEGOTIATION52Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio S PoquetteArgentinaAmy Elsner PROPOSAL
Stacey F MaletItalyIvan Magalhaes NEGOTIATION
Leja O VocelkaArgentinaAmy Elsner UNQUALIFIED
Jefferson N FollerIndiaIoni Bowcher NEW
Kaitlin K SlusarskiRussiaElwin Sharvill PROPOSAL
Jennifer A SaylorsArgentinaOnyama Limba NEGOTIATION
Jeanfrancois P KolmetzRussiaIvan Magalhaes UNQUALIFIED
Misaki S MarrierItalyAsiya Javayant RENEWAL
Juan B SergiUnited KingdomAnna Fali NEW
Silvio R KolmetzItalyXuxue Feng PROPOSAL
Izzy K PerinRussiaOnyama Limba QUALIFIED
Izzy T PaprockiCanadaAsiya Javayant NEGOTIATION
Claire V AmigonCanadaAnna Fali QUALIFIED
Jones M CaldareraArgentinaAsiya Javayant NEW
Wickens D BologniaBrazilAmy Elsner QUALIFIED
Leja T NickaGermanyOnyama Limba NEW
Emily X MaletFranceAmy Elsner UNQUALIFIED
Emily Q ButtIndiaElwin Sharvill NEW
Wickens N BriddickCanadaOnyama Limba NEW
Munro C SaylorsRussiaOnyama Limba RENEWAL
Chavez D MorascaArgentinaIvan Magalhaes RENEWAL
Ivar A SlusarskiItalyBernardo Dominic PROPOSAL
Wickens L OldroydSpainOnyama Limba QUALIFIED
Alejandro D StockhamGermanyStephen Shaw UNQUALIFIED
Octavia G MorascaItalyAnna Fali QUALIFIED
Rodrigues K NestleArgentinaIvan Magalhaes RENEWAL
Jones S PerinCanadaStephen Shaw NEW
Salvatore I DoeCanadaAmy Elsner RENEWAL
Mujtaba J MaletFranceStephen Shaw RENEWAL
Octavia P StockhamSpainBernardo Dominic QUALIFIED
James S WhobreyAustraliaIoni Bowcher PROPOSAL
Jeanfrancois P KolmetzJapanAsiya Javayant NEGOTIATION
Murillo Z FollerFranceElwin Sharvill PROPOSAL
Aditya R OldroydSpainIvan Magalhaes PROPOSAL
Chavez J FerenczRussiaXuxue Feng UNQUALIFIED
Sinclair T StensethSpainIvan Magalhaes UNQUALIFIED
Cody P ChuiItalyAsiya Javayant PROPOSAL
Aruna J ChuiCanadaIoni Bowcher NEW
Nicolas X WaycottBrazilAmy Elsner RENEWAL
Cody F ShinkoAustraliaIvan Magalhaes QUALIFIED
Claire T RoysterCanadaIoni Bowcher NEGOTIATION
Izzy Z VenereItalyOnyama Limba QUALIFIED
Francesco M MacleadGermanyXuxue Feng PROPOSAL
Leon K RulapaughArgentinaAnna Fali NEW
Ashley R FigeroaCanadaAsiya Javayant NEW
Misaki D MaletItalyStephen Shaw NEW
Darci E PoquetteJapanAnna Fali PROPOSAL
Morrow L BriddickFranceStephen Shaw QUALIFIED
Claire P DarakjyJapanElwin Sharvill UNQUALIFIED
Ivar F ButtFranceStephen Shaw QUALIFIED
Frozen Columns
Name
David I Schemmer
Adams P Saylors
Costa B Ferencz
Leon M Doe
Silvio N Campain
Sinclair N Doe
Maisha F Darakjy
Ashley E Dilliard
Greenwood U Amigon
Juan M Dilliard
Julie H Malet
Leon C Stenseth
Jones W Ferencz
Clifford D Campain
Kadeem E Gillian
Jennifer X Gillian
David K Wieser
Octavia P Bowley
Costa Y Marrier
Julie F Royster
Julie R Bolognia
Aika K Figeroa
James Q Slusarski
Johnson V Venere
Greenwood V Glick
Johnson W Inouye
Antonio U Flosi
Octavia W Bolognia
Murillo S Shinko
Costa B Gillian
Jennifer L Foller
Ashley U Nicka
Adams I Ferencz
Alejandro F Kolmetz
Mujtaba D Campain
Murillo U Perin
Faith S Rulapaugh
James O Stenseth
Chavez H Dilliard
Ivar H Saylors
Costa O Butt
Maisha B Venere
Juan H Schemmer
Leon E Kusko
Sinclair A Morasca
Jefferson F Malet
Aruna D Shinko
Murillo M Royster
Munro U Ferencz
Cody O Chui
IdCountryDate
1000Germany2026-08-25
1001Russia2026-09-11
1002Australia2026-09-05
1003Argentina2026-09-12
1004Italy2026-09-17
1005Italy2026-09-11
1006Russia2026-08-27
1007Brazil2026-08-23
1008United Kingdom2026-08-28
1009France2026-09-10
1010Canada2026-08-25
1011Spain2026-09-02
1012Japan2026-08-20
1013Brazil2026-08-25
1014Argentina2026-09-13
1015France2026-08-30
1016Argentina2026-09-08
1017Brazil2026-09-05
1018Brazil2026-09-17
1019Russia2026-09-03
1020Germany2026-08-24
1021Japan2026-08-22
1022Russia2026-09-07
1023Germany2026-08-26
1024France2026-09-12
1025Argentina2026-09-05
1026Italy2026-09-13
1027Japan2026-08-30
1028Germany2026-09-06
1029Germany2026-08-25
1030Germany2026-08-24
1031Brazil2026-09-04
1032Italy2026-09-11
1033United Kingdom2026-08-29
1034Germany2026-08-25
1035Spain2026-09-03
1036Brazil2026-09-03
1037Brazil2026-09-02
1038Japan2026-09-01
1039Italy2026-09-11
1040Australia2026-09-11
1041India2026-09-05
1042Germany2026-08-27
1043Russia2026-09-15
1044Argentina2026-09-10
1045Australia2026-09-17
1046Japan2026-09-16
1047Australia2026-08-30
1048Japan2026-09-05
1049Germany2026-08-21

On-Demand Data

NameIdCountryDate
Salvatore Z Iturbide1000Brazil2026-08-31
Aruna B Perin1001Italy2026-08-25
Juan I Ostrosky1002France2026-09-14
Julie U Garufi1003United Kingdom2026-08-29
Aruna C Albares1004United Kingdom2026-08-21
Aika W Inouye1005Spain2026-09-11
Francesco W Perin1006United Kingdom2026-09-11
Juan J Tollner1007Spain2026-09-06
Smith J Glick1008Russia2026-08-22
David L Kolmetz1009Argentina2026-08-27
Johnson P Doe1010Spain2026-09-04
Rodrigues Y Albares1011Brazil2026-09-09
Morrow Z Stockham1012India2026-08-29
Leon V Campain1013Russia2026-09-03
Aika Q Poquette1014Japan2026-08-23
Ricardo Y Amigon1015Russia2026-08-28
Leon H Bowley1016Spain2026-09-09
Smith Z Venere1017Canada2026-08-29
Izzy D Schemmer1018Germany2026-09-07
Jeanfrancois Y Caldarera1019Argentina2026-09-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro A BologniaGermanyBernardo Dominic NEW
Maria E SlusarskiIndiaOnyama Limba QUALIFIED
Clifford Q NickaGermanyAsiya Javayant PROPOSAL
Aruna S IturbideArgentinaXuxue Feng QUALIFIED
Jeanfrancois I VocelkaAustraliaXuxue Feng QUALIFIED
Jennifer C FerenczCanadaIvan Magalhaes NEW
Leon J DilliardUnited KingdomStephen Shaw NEGOTIATION
Smith U AlbaresIndiaAnna Fali PROPOSAL
Emily P KolmetzAustraliaIoni Bowcher PROPOSAL
Rodrigues S BologniaRussiaAnna Fali NEW
Chavez O GlickRussiaAsiya Javayant PROPOSAL
Salvatore B AmigonRussiaElwin Sharvill RENEWAL
Aditya B BriddickFranceAnna Fali RENEWAL
Claire G ShinkoBrazilAnna Fali UNQUALIFIED
Kaitlin F WaycottFranceAmy Elsner QUALIFIED
Clifford O IturbideJapanAsiya Javayant RENEWAL
Deepesh S FerenczBrazilXuxue Feng UNQUALIFIED
Jones M GauchoIndiaOnyama Limba PROPOSAL
Francesco V DarakjyFranceBernardo Dominic QUALIFIED
Jones E AlbaresIndiaBernardo Dominic NEGOTIATION
Mayumi Q PaprockiJapanElwin Sharvill RENEWAL
Kadeem Y VocelkaAustraliaBernardo Dominic RENEWAL
Deepesh S FigeroaJapanAnna Fali QUALIFIED
Jennifer J GarufiGermanyStephen Shaw NEW
Morrow X MarrierJapanIvan Magalhaes RENEWAL
Stacey G OstroskyAustraliaElwin Sharvill QUALIFIED
Octavia D OldroydArgentinaBernardo Dominic QUALIFIED
Stacey D RulapaughJapanXuxue Feng NEGOTIATION
Ricardo X OldroydArgentinaAmy Elsner QUALIFIED
Cody P GlickGermanyBernardo Dominic RENEWAL
Sinclair S BriddickJapanXuxue Feng QUALIFIED
Johnson O MacleadJapanAsiya Javayant NEW
Adams U FigeroaItalyAnna Fali NEGOTIATION
David E OstroskyItalyIoni Bowcher NEGOTIATION
Chavez E StockhamAustraliaBernardo Dominic RENEWAL
Misaki B PoquetteBrazilStephen Shaw QUALIFIED
Ivar C FollerIndiaElwin Sharvill NEW
Aditya U NickaAustraliaStephen Shaw NEGOTIATION
Greenwood P WieserUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois J MacleadSpainXuxue Feng RENEWAL

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