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
Deepesh R PaprockiIndiaXuxue Feng NEGOTIATION
Arvin E FlosiAustraliaAsiya Javayant RENEWAL
Kaitlin Z StockhamBrazilIoni Bowcher QUALIFIED
Aika E ButtItalyBernardo Dominic NEW
Salvatore J SaylorsBrazilBernardo Dominic NEGOTIATION
Mujtaba B MaletBrazilAmy Elsner NEW
Arvin Z StockhamJapanIvan Magalhaes NEW
James A CampainJapanBernardo Dominic PROPOSAL
Jennifer J CaudyCanadaXuxue Feng RENEWAL
Octavia H ShinkoSpainOnyama Limba UNQUALIFIED
Juan M PoquetteCanadaBernardo Dominic NEW
Morrow E CaldareraFranceIvan Magalhaes NEW
Rodrigues T MacleadFranceOnyama Limba NEW
Costa M BriddickCanadaXuxue Feng UNQUALIFIED
Emily E DarakjyBrazilAsiya Javayant UNQUALIFIED
Deepesh R SergiArgentinaAmy Elsner NEGOTIATION
Octavia D VocelkaFranceAsiya Javayant NEW
Johnson C CampainCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois D IturbideSpainIoni Bowcher UNQUALIFIED
Leja O WaycottIndiaIvan Magalhaes RENEWAL
Leja Z ButtAustraliaAmy Elsner RENEWAL
Alejandro I RulapaughIndiaIvan Magalhaes UNQUALIFIED
Maisha A CampainCanadaStephen Shaw PROPOSAL
Aruna M DarakjyGermanyXuxue Feng RENEWAL
Rodrigues C GlickArgentinaStephen Shaw RENEWAL
Jefferson B MacleadBrazilAmy Elsner NEW
Misaki W RulapaughJapanAsiya Javayant QUALIFIED
Jeanfrancois T CaudyGermanyOnyama Limba NEGOTIATION
Greenwood T InouyeRussiaElwin Sharvill RENEWAL
Stacey Q SchemmerUnited KingdomAmy Elsner UNQUALIFIED
Jeanfrancois C OldroydFranceXuxue Feng UNQUALIFIED
Maria C StensethGermanyAsiya Javayant NEGOTIATION
Misaki J WaycottItalyIvan Magalhaes QUALIFIED
Stacey I RoysterSpainElwin Sharvill NEGOTIATION
Salvatore E GlickFranceOnyama Limba QUALIFIED
Salvatore F TollnerSpainIvan Magalhaes UNQUALIFIED
Tony O TollnerJapanOnyama Limba QUALIFIED
Costa N KuskoIndiaIvan Magalhaes UNQUALIFIED
Costa B MaletSpainStephen Shaw RENEWAL
Octavia F CampainFranceAnna Fali PROPOSAL
Aika N NickaArgentinaIvan Magalhaes NEGOTIATION
Claire Y AmigonAustraliaAmy Elsner QUALIFIED
Jones G DilliardSpainOnyama Limba NEGOTIATION
Mayumi Q KolmetzAustraliaAmy Elsner NEW
Mayumi K FerenczJapanStephen Shaw PROPOSAL
Munro X ChuiArgentinaOnyama Limba NEGOTIATION
Nicolas Z CaudySpainIoni Bowcher NEW
Mujtaba N FerenczGermanyAsiya Javayant QUALIFIED
Tony B MacleadItalyAsiya Javayant RENEWAL
Octavia U VenereItalyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Maisha Z PoquetteItalyBernardo Dominic UNQUALIFIED
Maisha I WhobreyCanadaIvan Magalhaes NEGOTIATION
Emily D RimItalyBernardo Dominic RENEWAL
Octavia X CampainJapanAmy Elsner NEW
Leja S OstroskyJapanAmy Elsner PROPOSAL
Adams P WieserSpainAsiya Javayant NEGOTIATION
Nicolas W DoeRussiaStephen Shaw NEW
Murillo L WieserAustraliaOnyama Limba RENEWAL
Jennifer G DilliardRussiaAmy Elsner QUALIFIED
Rodrigues E StockhamAustraliaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Q InouyeUnited Kingdom2026-10-25Chapman, Ross E Esq PROPOSAL7Anna Fali
1001Ashley H MaletUnited Kingdom2026-10-28King, Christopher A Esq NEW72Bernardo Dominic
1002Clifford R PerinJapan2026-10-16Printing Dimensions PROPOSAL21Anna Fali
1003Costa O PerinAustralia2026-10-28Morlong Associates PROPOSAL28Ioni Bowcher
1004Ivar M DarakjyBrazil2026-10-31Rousseaux, Michael Esq NEGOTIATION24Ioni Bowcher
1005Francesco I StockhamItaly2026-11-09Chanay, Jeffrey A Esq QUALIFIED14Amy Elsner
1006Deepesh G TollnerJapan2026-11-11Feiner Bros RENEWAL7Asiya Javayant
1007Adams Y StockhamUnited Kingdom2026-10-16Feiner Bros NEGOTIATION15Onyama Limba
1008James N MorascaJapan2026-10-30Truhlar And Truhlar Attys UNQUALIFIED4Bernardo Dominic
1009Leon K CaudyBrazil2026-10-15Printing Dimensions RENEWAL8Anna Fali
1010Leja K WaycottUnited Kingdom2026-10-15Benton, John B Jr QUALIFIED21Onyama Limba
1011Julie H PaprockiCanada2026-10-15Commercial Press PROPOSAL73Bernardo Dominic
1012Murillo F GlickArgentina2026-11-11Morlong Associates NEW78Amy Elsner
1013Leja I KolmetzArgentina2026-10-21Feltz Printing Service RENEWAL31Amy Elsner
1014Greenwood R NickaIndia2026-11-10Chemel, James L Cpa QUALIFIED85Amy Elsner
1015Jennifer F MorascaGermany2026-10-26Dorl, James J Esq UNQUALIFIED25Asiya Javayant
1016David Y BologniaArgentina2026-10-19Chemel, James L Cpa QUALIFIED84Xuxue Feng
1017Wickens R PaprockiGermany2026-11-11Truhlar And Truhlar Attys NEW1Onyama Limba
1018Leon P SaylorsGermany2026-11-04Dorl, James J Esq RENEWAL37Amy Elsner
1019Julie L MarrierBrazil2026-10-16Feltz Printing Service UNQUALIFIED84Amy Elsner
1020Sinclair M GlickRussia2026-10-18Rousseaux, Michael Esq NEGOTIATION52Elwin Sharvill
1021Jones D RoysterJapan2026-10-24Feltz Printing Service NEW41Xuxue Feng
1022Johnson G VenereIndia2026-11-11Chapman, Ross E Esq PROPOSAL85Amy Elsner
1023Smith Y VenereAustralia2026-11-02Rousseaux, Michael Esq QUALIFIED54Ivan Magalhaes
1024Costa Z WaycottRussia2026-10-16Morlong Associates NEGOTIATION90Ioni Bowcher
1025Tony M MarrierItaly2026-10-31Truhlar And Truhlar Attys RENEWAL34Amy Elsner
1026Deepesh F FigeroaFrance2026-10-29Feiner Bros UNQUALIFIED48Stephen Shaw
1027Wickens P FigeroaSpain2026-10-28King, Christopher A Esq PROPOSAL39Onyama Limba
1028Johnson E ChuiGermany2026-10-14Commercial Press NEGOTIATION82Amy Elsner
1029Salvatore Z GlickItaly2026-10-22Rangoni Of Florence RENEWAL46Elwin Sharvill
1030Julie D FigeroaGermany2026-11-12Dorl, James J Esq QUALIFIED56Ioni Bowcher
1031Smith D MaletJapan2026-10-29Chemel, James L Cpa NEGOTIATION16Onyama Limba
1032Faith I WaycottJapan2026-10-17Rangoni Of Florence NEW72Ivan Magalhaes
1033Misaki F BologniaJapan2026-10-27Buckley Miller Wright PROPOSAL40Asiya Javayant
1034Octavia I WieserJapan2026-10-19Morlong Associates NEW2Ivan Magalhaes
1035Ashley G FerenczGermany2026-10-15Commercial Press RENEWAL82Elwin Sharvill
1036Aruna V MaletRussia2026-10-25Rangoni Of Florence NEW57Asiya Javayant
1037Cody F DoeFrance2026-10-28King, Christopher A Esq NEGOTIATION25Onyama Limba
1038Aditya E PerinRussia2026-11-02Truhlar And Truhlar Attys QUALIFIED64Ioni Bowcher
1039Costa C MarrierUnited Kingdom2026-10-30Chemel, James L Cpa NEW44Ivan Magalhaes
1040Silvio D FollerAustralia2026-11-03Rangoni Of Florence QUALIFIED73Elwin Sharvill
1041Mujtaba Y MaletFrance2026-10-21Rangoni Of Florence NEW11Onyama Limba
1042Adams O OstroskyArgentina2026-11-12Dorl, James J Esq QUALIFIED95Amy Elsner
1043Greenwood W MarrierItaly2026-11-05King, Christopher A Esq UNQUALIFIED30Elwin Sharvill
1044Jefferson B KolmetzIndia2026-10-20Truhlar And Truhlar Attys NEW96Ioni Bowcher
1045Francesco Y BriddickGermany2026-11-12Chapman, Ross E Esq NEGOTIATION78Asiya Javayant
1046Faith U ChuiUnited Kingdom2026-11-06Chemel, James L Cpa PROPOSAL4Onyama Limba
1047Smith U ButtSpain2026-10-14Rangoni Of Florence RENEWAL75Bernardo Dominic
1048Aika R GarufiArgentina2026-11-05Rangoni Of Florence QUALIFIED31Bernardo Dominic
1049Antonio B FigeroaGermany2026-10-18Dorl, James J Esq NEW94Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Johnson F ShinkoUnited KingdomXuxue Feng NEGOTIATION
Darci D OstroskyCanadaAmy Elsner QUALIFIED
Aditya X AmigonCanadaBernardo Dominic NEW
Juan C WhobreyArgentinaXuxue Feng NEGOTIATION
Rodrigues V KuskoRussiaBernardo Dominic PROPOSAL
Octavia G RimJapanStephen Shaw PROPOSAL
Jeanfrancois R InouyeAustraliaAsiya Javayant UNQUALIFIED
Salvatore G MacleadBrazilOnyama Limba NEW
Jefferson B OstroskyUnited KingdomAnna Fali UNQUALIFIED
Francesco V CampainIndiaAnna Fali RENEWAL
Alejandro N GlickSpainAmy Elsner PROPOSAL
Jefferson O AlbaresUnited KingdomIoni Bowcher NEGOTIATION
Murillo F DoeRussiaIoni Bowcher NEGOTIATION
Claire V ShinkoJapanOnyama Limba NEW
David H ButtArgentinaXuxue Feng NEGOTIATION
Ivar W SlusarskiSpainAnna Fali RENEWAL
Misaki L DoeIndiaAnna Fali UNQUALIFIED
Octavia E StensethIndiaAmy Elsner PROPOSAL
Smith N BologniaGermanyAnna Fali NEW
Clifford H DilliardAustraliaIvan Magalhaes RENEWAL
Juan D RutaArgentinaElwin Sharvill QUALIFIED
Jeanfrancois Z SlusarskiItalyOnyama Limba PROPOSAL
Emily X MaletGermanyBernardo Dominic PROPOSAL
Greenwood A GauchoIndiaXuxue Feng QUALIFIED
Jefferson K CaudyGermanyIoni Bowcher NEW
Ivar P GarufiRussiaAmy Elsner NEGOTIATION
Deepesh R RulapaughFranceIoni Bowcher QUALIFIED
Francesco C KolmetzUnited KingdomXuxue Feng QUALIFIED
Leja E NestleAustraliaBernardo Dominic PROPOSAL
James C StensethUnited KingdomIoni Bowcher QUALIFIED
Aika V RulapaughRussiaOnyama Limba NEW
Juan N FlosiBrazilElwin Sharvill NEW
Smith V DilliardItalyOnyama Limba NEGOTIATION
Smith S RimUnited KingdomXuxue Feng NEGOTIATION
Misaki Y MorascaAustraliaBernardo Dominic NEGOTIATION
Kadeem E StensethItalyIvan Magalhaes PROPOSAL
Maria K RoysterItalyOnyama Limba PROPOSAL
Misaki K OstroskyRussiaIvan Magalhaes NEGOTIATION
Deepesh N TollnerItalyAsiya Javayant UNQUALIFIED
Leja K BologniaJapanIoni Bowcher NEGOTIATION
Faith F StensethRussiaIoni Bowcher UNQUALIFIED
Murillo G RoysterAustraliaXuxue Feng NEW
Julie N WaycottCanadaAsiya Javayant QUALIFIED
Chavez Z BowleyGermanyElwin Sharvill NEW
Murillo N PerinJapanOnyama Limba NEW
Rodrigues O RimGermanyIvan Magalhaes NEW
Misaki D PoquetteArgentinaElwin Sharvill RENEWAL
Antonio P FlosiJapanElwin Sharvill NEGOTIATION
Aditya C WhobreyJapanAsiya Javayant RENEWAL
Julie L TollnerAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Rodrigues T Glick
Nicolas W Gaucho
Alejandro A Campain
Misaki D Flosi
Jeanfrancois H Ruta
Octavia B Paprocki
Cody B Oldroyd
Isabel U Ostrosky
Antonio E Caudy
Misaki J Inouye
Maria I Ruta
Mayumi W Kolmetz
Jones I Briddick
Salvatore I Campain
Cody U Nestle
Costa C Sergi
Antonio H Waycott
Darci X Rim
Ricardo K Darakjy
Aika I Campain
Claire B Perin
Greenwood B Ruta
Stacey L Inouye
Morrow J Marrier
Nicolas N Campain
Sinclair U Morasca
Jeanfrancois H Darakjy
Octavia L Amigon
Chavez O Amigon
Leon G Garufi
Izzy Q Rim
Ivar N Caldarera
Juan F Saylors
Ivar X Kolmetz
Misaki Y Shinko
Rodrigues E Waycott
James S Maclead
Murillo P Schemmer
Chavez K Ostrosky
Emily Y Ruta
Salvatore W Bolognia
Chavez K Campain
Ashley O Venere
Leon N Ruta
Emily D Malet
Jefferson E Nicka
Adams F Butt
Emily N Darakjy
Misaki J Rulapaugh
Juan B Nicka
IdCountryDate
1000Japan2026-11-04
1001India2026-10-25
1002Argentina2026-10-18
1003Italy2026-10-18
1004France2026-10-18
1005Brazil2026-11-12
1006Italy2026-10-26
1007Brazil2026-10-19
1008Canada2026-10-27
1009Spain2026-10-22
1010Canada2026-10-14
1011Germany2026-10-31
1012India2026-11-12
1013Australia2026-11-03
1014Argentina2026-10-21
1015Brazil2026-11-02
1016Brazil2026-10-29
1017Brazil2026-11-02
1018Brazil2026-10-15
1019Russia2026-11-11
1020Italy2026-10-19
1021France2026-10-27
1022Russia2026-10-26
1023Spain2026-11-11
1024India2026-11-11
1025Japan2026-11-10
1026Japan2026-11-10
1027France2026-10-16
1028Brazil2026-11-01
1029Argentina2026-11-07
1030Argentina2026-11-01
1031Japan2026-10-17
1032India2026-10-23
1033Japan2026-11-03
1034United Kingdom2026-10-18
1035India2026-10-14
1036Spain2026-11-08
1037Argentina2026-11-11
1038Japan2026-11-05
1039Canada2026-11-08
1040United Kingdom2026-11-07
1041Germany2026-10-26
1042Germany2026-10-17
1043Brazil2026-11-12
1044Canada2026-10-23
1045Australia2026-10-16
1046Canada2026-10-30
1047Spain2026-11-08
1048Germany2026-11-08
1049Canada2026-11-06

On-Demand Data

NameIdCountryDate
Antonio S Venere1000Italy2026-11-11
Faith P Ruta1001Japan2026-11-06
Octavia W Chui1002Japan2026-11-01
Mujtaba Z Slusarski1003Australia2026-11-11
Murillo J Whobrey1004Spain2026-10-29
Julie S Paprocki1005Italy2026-10-15
Aditya N Caudy1006Brazil2026-11-01
Jeanfrancois Y Stockham1007Australia2026-10-25
Sinclair A Maclead1008Canada2026-11-10
Adams Y Tollner1009United Kingdom2026-10-22
Ricardo H Perin1010France2026-11-04
Stacey C Malet1011Canada2026-10-20
Jeanfrancois Y Tollner1012Canada2026-11-10
Costa J Oldroyd1013United Kingdom2026-10-23
David G Caudy1014Germany2026-10-15
Jefferson B Ostrosky1015Canada2026-10-21
Jennifer V Tollner1016Brazil2026-11-01
Cody T Nestle1017India2026-10-27
Izzy S Poquette1018Japan2026-10-24
Mujtaba E Malet1019Japan2026-10-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire F ChuiGermanyAnna Fali NEW
Izzy Q VenereBrazilAmy Elsner RENEWAL
Chavez V OstroskyItalyIvan Magalhaes UNQUALIFIED
Mayumi H ShinkoSpainAsiya Javayant UNQUALIFIED
Maisha M SchemmerSpainIvan Magalhaes RENEWAL
Jennifer V PoquetteBrazilStephen Shaw QUALIFIED
Izzy A IturbideRussiaAnna Fali RENEWAL
Maisha F GauchoUnited KingdomIvan Magalhaes PROPOSAL
Salvatore S TollnerIndiaIvan Magalhaes QUALIFIED
David Y BologniaRussiaXuxue Feng QUALIFIED
Misaki T OstroskyArgentinaAnna Fali RENEWAL
Smith E BriddickBrazilBernardo Dominic NEGOTIATION
Clifford M OldroydGermanyIvan Magalhaes NEGOTIATION
Murillo C MaletGermanyAmy Elsner NEGOTIATION
Aruna V BriddickAustraliaAnna Fali QUALIFIED
Clifford V DilliardIndiaIvan Magalhaes RENEWAL
Antonio O BriddickFranceElwin Sharvill NEGOTIATION
Stacey B MorascaArgentinaElwin Sharvill QUALIFIED
Salvatore S KolmetzCanadaBernardo Dominic NEW
Wickens I TollnerFranceBernardo Dominic UNQUALIFIED
Kadeem R CaldareraJapanAnna Fali NEGOTIATION
Sinclair M GauchoIndiaIvan Magalhaes PROPOSAL
Stacey H RutaSpainAnna Fali PROPOSAL
Murillo J SchemmerUnited KingdomAnna Fali QUALIFIED
Julie I MaletArgentinaBernardo Dominic UNQUALIFIED
James Q GlickCanadaIvan Magalhaes PROPOSAL
Salvatore K ButtCanadaAsiya Javayant NEW
Murillo I GillianJapanIoni Bowcher PROPOSAL
Izzy Z CampainJapanAsiya Javayant QUALIFIED
Mayumi P SergiJapanIvan Magalhaes PROPOSAL
Juan I FerenczBrazilOnyama Limba PROPOSAL
Murillo W DilliardBrazilAmy Elsner QUALIFIED
Murillo E FerenczJapanAsiya Javayant RENEWAL
Johnson B FlosiIndiaAnna Fali RENEWAL
Smith H RimFranceIvan Magalhaes RENEWAL
Ashley E OldroydIndiaOnyama Limba NEGOTIATION
Juan O GauchoIndiaElwin Sharvill NEW
Faith S StockhamCanadaBernardo Dominic NEW
Francesco Y PoquetteJapanIoni Bowcher PROPOSAL
James D GarufiAustraliaAnna Fali 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>