Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Maisha C OstroskyIndiaOnyama Limba NEGOTIATION
Francesco Y KolmetzItalyBernardo Dominic PROPOSAL
Ricardo F StensethFranceAnna Fali NEW
Greenwood T GillianArgentinaBernardo Dominic NEGOTIATION
Cody F MorascaSpainStephen Shaw NEGOTIATION
Smith I KuskoRussiaElwin Sharvill NEW
Ashley I AmigonGermanyOnyama Limba QUALIFIED
Arvin X FigeroaUnited KingdomAsiya Javayant RENEWAL
Ashley B MaletIndiaAnna Fali PROPOSAL
Ashley W FlosiJapanIvan Magalhaes RENEWAL
Misaki M BologniaBrazilBernardo Dominic UNQUALIFIED
Silvio Q CaudyCanadaElwin Sharvill RENEWAL
Aika O IturbideArgentinaIoni Bowcher NEW
Faith C DilliardUnited KingdomIoni Bowcher QUALIFIED
Kaitlin G TollnerFranceBernardo Dominic NEW
Ivar J OstroskyBrazilAmy Elsner RENEWAL
Leon M FlosiBrazilAnna Fali RENEWAL
Deepesh P PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Alejandro J FerenczIndiaStephen Shaw UNQUALIFIED
Leja H FerenczItalyXuxue Feng NEW
Jefferson V CaldareraSpainOnyama Limba NEW
Kadeem K BowleyIndiaStephen Shaw NEW
Kadeem R AmigonCanadaAsiya Javayant PROPOSAL
Sinclair W RimBrazilXuxue Feng NEGOTIATION
Arvin V InouyeArgentinaBernardo Dominic NEGOTIATION
Aika L SergiCanadaOnyama Limba QUALIFIED
Alejandro Q AmigonIndiaIvan Magalhaes QUALIFIED
Misaki Z NestleBrazilAnna Fali NEGOTIATION
Ivar L WhobreyArgentinaAsiya Javayant UNQUALIFIED
Salvatore P PerinJapanStephen Shaw NEW
Claire T CaudyBrazilOnyama Limba NEGOTIATION
Arvin F WaycottSpainAmy Elsner RENEWAL
Stacey W AmigonSpainXuxue Feng UNQUALIFIED
Greenwood E DoeArgentinaAsiya Javayant PROPOSAL
Julie U FlosiCanadaBernardo Dominic QUALIFIED
Ivar W SergiFranceStephen Shaw NEW
Greenwood H RulapaughJapanBernardo Dominic UNQUALIFIED
Maisha Q MarrierRussiaIoni Bowcher QUALIFIED
Wickens O OstroskyCanadaAmy Elsner NEGOTIATION
Jefferson F CaldareraBrazilAnna Fali NEGOTIATION
Mayumi N VocelkaUnited KingdomStephen Shaw NEW
Ricardo S RimBrazilElwin Sharvill RENEWAL
Aruna R MaletItalyOnyama Limba RENEWAL
Aika W NestleGermanyAsiya Javayant NEW
Jennifer K FollerArgentinaXuxue Feng RENEWAL
Francesco R MorascaCanadaStephen Shaw PROPOSAL
Alejandro C ChuiCanadaAnna Fali RENEWAL
Stacey K RulapaughArgentinaXuxue Feng QUALIFIED
Murillo P MaletItalyStephen Shaw UNQUALIFIED
Leon I MacleadUnited KingdomElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo E FlosiCanadaIvan Magalhaes UNQUALIFIED
Deepesh G FerenczCanadaAsiya Javayant RENEWAL
Isabel V NestleGermanyBernardo Dominic UNQUALIFIED
Francesco F NestleFranceIvan Magalhaes RENEWAL
Isabel Q DarakjyUnited KingdomAsiya Javayant QUALIFIED
Clifford B SaylorsAustraliaXuxue Feng NEGOTIATION
Juan F InouyeCanadaBernardo Dominic RENEWAL
Octavia C NickaCanadaXuxue Feng UNQUALIFIED
Francesco S PoquetteBrazilAsiya Javayant QUALIFIED
Murillo P WaycottGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin R MacleadArgentina2025-08-08Commercial Press RENEWAL24Bernardo Dominic
1001Adams H FerenczItaly2025-08-10Benton, John B Jr UNQUALIFIED24Stephen Shaw
1002Silvio E DoeCanada2025-08-03Dorl, James J Esq NEGOTIATION40Xuxue Feng
1003Ivar Z PaprockiIndia2025-08-10Chemel, James L Cpa QUALIFIED86Amy Elsner
1004Faith F GauchoIndia2025-08-05Rangoni Of Florence RENEWAL44Bernardo Dominic
1005Alejandro X CaldareraBrazil2025-07-19Chemel, James L Cpa PROPOSAL82Amy Elsner
1006Kadeem Z SlusarskiIndia2025-07-26Buckley Miller Wright NEGOTIATION10Amy Elsner
1007Misaki P FigeroaRussia2025-07-18Chemel, James L Cpa PROPOSAL32Ivan Magalhaes
1008Silvio P MacleadJapan2025-07-14Printing Dimensions PROPOSAL8Anna Fali
1009Nicolas L PoquetteGermany2025-07-25Commercial Press NEGOTIATION5Asiya Javayant
1010Murillo Y CaudyIndia2025-07-22Truhlar And Truhlar Attys QUALIFIED96Xuxue Feng
1011Juan W GauchoUnited Kingdom2025-08-04Commercial Press QUALIFIED82Amy Elsner
1012Octavia V NestleGermany2025-07-20Rangoni Of Florence NEGOTIATION34Stephen Shaw
1013Morrow U PaprockiItaly2025-07-19Dorl, James J Esq PROPOSAL68Anna Fali
1014Wickens R SlusarskiJapan2025-07-23Buckley Miller Wright NEW67Amy Elsner
1015Kaitlin Y PaprockiJapan2025-07-30Rangoni Of Florence NEW40Asiya Javayant
1016Julie C VenereUnited Kingdom2025-07-20Morlong Associates UNQUALIFIED71Amy Elsner
1017Mayumi Q VocelkaCanada2025-07-18Buckley Miller Wright QUALIFIED30Onyama Limba
1018Julie G DarakjyFrance2025-07-21Chemel, James L Cpa UNQUALIFIED0Asiya Javayant
1019Maria H DarakjyArgentina2025-07-22Feiner Bros NEGOTIATION32Ioni Bowcher
1020Jones Y KuskoFrance2025-08-05Feltz Printing Service RENEWAL61Stephen Shaw
1021Antonio P PoquetteFrance2025-08-11Printing Dimensions UNQUALIFIED81Stephen Shaw
1022Greenwood H WaycottUnited Kingdom2025-07-14Rousseaux, Michael Esq NEW44Asiya Javayant
1023Julie O KuskoArgentina2025-07-21Morlong Associates PROPOSAL40Elwin Sharvill
1024Leja K VocelkaItaly2025-07-25King, Christopher A Esq NEGOTIATION96Xuxue Feng
1025Adams N RoysterCanada2025-07-30King, Christopher A Esq UNQUALIFIED80Elwin Sharvill
1026Jones T ButtArgentina2025-08-05Chapman, Ross E Esq QUALIFIED53Elwin Sharvill
1027Leon L PoquetteSpain2025-07-28Commercial Press PROPOSAL54Xuxue Feng
1028Greenwood V StockhamUnited Kingdom2025-07-26Feltz Printing Service UNQUALIFIED5Amy Elsner
1029Jones G OldroydFrance2025-07-24Benton, John B Jr UNQUALIFIED99Xuxue Feng
1030Kadeem Y RulapaughIndia2025-08-06King, Christopher A Esq UNQUALIFIED28Anna Fali
1031Kadeem V RutaArgentina2025-08-01Chanay, Jeffrey A Esq UNQUALIFIED26Stephen Shaw
1032Leon P PoquetteAustralia2025-08-04Commercial Press PROPOSAL52Stephen Shaw
1033Misaki M MaletIndia2025-07-17Chanay, Jeffrey A Esq UNQUALIFIED3Ivan Magalhaes
1034Claire C AlbaresSpain2025-08-03Truhlar And Truhlar Attys QUALIFIED35Stephen Shaw
1035Leon Q GlickUnited Kingdom2025-07-16Truhlar And Truhlar Attys PROPOSAL44Onyama Limba
1036Julie J BologniaGermany2025-07-21Truhlar And Truhlar Attys UNQUALIFIED37Ioni Bowcher
1037Alejandro H CampainCanada2025-07-21Feiner Bros PROPOSAL32Asiya Javayant
1038Mujtaba E BriddickFrance2025-07-18Printing Dimensions QUALIFIED36Asiya Javayant
1039Kaitlin F WieserFrance2025-07-27Rangoni Of Florence NEW74Asiya Javayant
1040Claire P GarufiGermany2025-08-12Printing Dimensions NEGOTIATION27Asiya Javayant
1041Aditya T WieserAustralia2025-07-23Feiner Bros QUALIFIED8Anna Fali
1042Mujtaba T FlosiAustralia2025-08-06Commercial Press RENEWAL3Onyama Limba
1043Cody Z CaudyIndia2025-07-23Morlong Associates PROPOSAL70Bernardo Dominic
1044Leon A PerinSpain2025-07-29Buckley Miller Wright NEGOTIATION58Anna Fali
1045Juan Y CaudyUnited Kingdom2025-08-06Rangoni Of Florence QUALIFIED7Ioni Bowcher
1046Francesco A FerenczSpain2025-08-11King, Christopher A Esq QUALIFIED57Ioni Bowcher
1047Morrow E RutaIndia2025-07-20Rousseaux, Michael Esq RENEWAL21Stephen Shaw
1048Leja T SergiJapan2025-08-01King, Christopher A Esq NEGOTIATION17Onyama Limba
1049Greenwood O BowleyArgentina2025-07-21Truhlar And Truhlar Attys QUALIFIED74Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Smith K KuskoSpainElwin Sharvill RENEWAL
Jefferson K VenereSpainXuxue Feng NEGOTIATION
David D ChuiIndiaAsiya Javayant QUALIFIED
Rodrigues Q RulapaughCanadaAnna Fali PROPOSAL
Juan Z DilliardUnited KingdomAnna Fali PROPOSAL
Tony B InouyeJapanIvan Magalhaes NEW
Deepesh S RutaIndiaIvan Magalhaes NEW
Kadeem N MorascaIndiaOnyama Limba NEGOTIATION
Leja Y VenereFranceXuxue Feng UNQUALIFIED
Maria G PaprockiJapanIoni Bowcher QUALIFIED
Smith O GarufiJapanIvan Magalhaes PROPOSAL
Munro T DilliardItalyOnyama Limba UNQUALIFIED
Salvatore B IturbideUnited KingdomAmy Elsner RENEWAL
Costa V BowleyRussiaXuxue Feng NEGOTIATION
Jefferson J RulapaughRussiaIvan Magalhaes RENEWAL
Munro W WieserIndiaAmy Elsner QUALIFIED
Leja X VocelkaRussiaIoni Bowcher NEGOTIATION
Nicolas L VenereGermanyBernardo Dominic NEW
Arvin B PerinRussiaIvan Magalhaes NEGOTIATION
Chavez D CaldareraIndiaAmy Elsner RENEWAL
Leja V SaylorsGermanyIvan Magalhaes NEW
Jennifer Z DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Jones Z OstroskyRussiaXuxue Feng NEW
Ivar T DarakjyAustraliaIvan Magalhaes NEW
Izzy W WhobreyFranceAnna Fali QUALIFIED
Adams P SergiItalyAmy Elsner PROPOSAL
Faith Q MorascaSpainAnna Fali RENEWAL
Jeanfrancois M CampainUnited KingdomXuxue Feng PROPOSAL
Maria F CaudySpainBernardo Dominic PROPOSAL
Izzy P BriddickSpainStephen Shaw NEW
Mayumi H FollerFranceStephen Shaw PROPOSAL
Greenwood Z WieserArgentinaXuxue Feng NEGOTIATION
Aika A PoquetteCanadaXuxue Feng QUALIFIED
Misaki S CaudyJapanStephen Shaw PROPOSAL
Chavez Z BriddickUnited KingdomBernardo Dominic QUALIFIED
Salvatore Z OldroydIndiaAmy Elsner UNQUALIFIED
Octavia A WhobreyGermanyAmy Elsner QUALIFIED
Julie O RimUnited KingdomIoni Bowcher NEGOTIATION
Costa W SchemmerCanadaIoni Bowcher RENEWAL
Jones D CampainAustraliaAnna Fali QUALIFIED
Rodrigues Z FigeroaItalyAsiya Javayant PROPOSAL
Adams H MorascaItalyStephen Shaw QUALIFIED
Misaki D StensethItalyIvan Magalhaes UNQUALIFIED
Jefferson I MaletBrazilAsiya Javayant NEGOTIATION
James O MaletArgentinaAmy Elsner QUALIFIED
Wickens P DoeUnited KingdomIvan Magalhaes PROPOSAL
Darci W GarufiItalyElwin Sharvill NEW
Chavez T CaudySpainIvan Magalhaes UNQUALIFIED
Claire A InouyeUnited KingdomBernardo Dominic RENEWAL
Wickens W IturbideItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Johnson C Nicka
Darci C Whobrey
Maisha F Whobrey
James E Malet
Silvio E Saylors
David J Figeroa
Smith H Perin
Juan C Tollner
Kaitlin O Tollner
Chavez R Nicka
Costa U Tollner
Faith Z Bowley
Aika R Flosi
Darci N Poquette
Ashley Q Caldarera
Ashley M Oldroyd
Leon H Inouye
Antonio M Caudy
Adams K Shinko
Darci P Ostrosky
Cody U Bolognia
Leon D Schemmer
Izzy J Venere
James F Gaucho
Francesco U Royster
Tony E Morasca
Murillo C Caldarera
Juan C Ferencz
Maria U Sergi
Rodrigues U Poquette
Claire Y Kolmetz
Silvio U Maclead
Aruna D Dilliard
Adams R Paprocki
Emily Y Rim
Izzy G Caudy
Smith C Maclead
Mayumi Y Poquette
Kaitlin Z Foller
Misaki B Bolognia
Maria P Oldroyd
Arvin T Marrier
Arvin J Doe
Chavez X Nicka
Greenwood O Saylors
Jones X Poquette
Claire F Stockham
Wickens U Amigon
Salvatore V Malet
Greenwood F Malet
IdCountryDate
1000Brazil2025-07-31
1001Germany2025-08-12
1002Russia2025-07-19
1003Spain2025-07-24
1004Italy2025-07-26
1005Canada2025-07-24
1006Russia2025-07-19
1007France2025-07-23
1008Japan2025-08-01
1009Japan2025-08-08
1010India2025-07-15
1011France2025-08-04
1012India2025-07-29
1013Canada2025-07-20
1014Germany2025-07-19
1015Germany2025-07-22
1016United Kingdom2025-07-19
1017Australia2025-08-05
1018United Kingdom2025-07-17
1019Italy2025-07-30
1020Canada2025-07-20
1021India2025-07-17
1022India2025-08-02
1023Australia2025-07-26
1024Spain2025-07-26
1025India2025-07-31
1026India2025-07-18
1027Canada2025-07-31
1028India2025-07-26
1029Russia2025-08-01
1030India2025-07-27
1031United Kingdom2025-08-02
1032Spain2025-08-07
1033Italy2025-08-08
1034Australia2025-08-10
1035Australia2025-07-26
1036India2025-08-08
1037Germany2025-07-30
1038Germany2025-07-17
1039India2025-07-15
1040Russia2025-08-09
1041Italy2025-07-31
1042Italy2025-08-07
1043France2025-08-11
1044India2025-08-04
1045Australia2025-07-27
1046Japan2025-08-10
1047United Kingdom2025-07-26
1048Italy2025-08-12
1049Germany2025-07-22

On-Demand Data

NameIdCountryDate
Morrow Y Sergi1000Brazil2025-07-26
Faith H Foller1001Russia2025-07-27
Maria W Nestle1002Argentina2025-08-09
Aika A Rulapaugh1003Russia2025-07-18
Murillo M Briddick1004India2025-07-31
Aditya H Oldroyd1005Germany2025-08-06
Jefferson D Tollner1006Australia2025-07-16
Izzy U Iturbide1007Canada2025-07-17
Misaki E Oldroyd1008Italy2025-08-12
Rodrigues C Ruta1009Argentina2025-07-14
Costa Q Amigon1010India2025-07-25
Clifford M Glick1011Japan2025-08-07
Jeanfrancois P Amigon1012Italy2025-07-17
Murillo C Garufi1013India2025-07-30
Ricardo W Kusko1014Argentina2025-07-24
Aditya P Malet1015Russia2025-08-01
Greenwood H Caldarera1016Brazil2025-08-09
Aditya K Shinko1017India2025-07-19
Salvatore X Nestle1018Russia2025-08-07
Jennifer X Waycott1019India2025-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo D GarufiAustraliaOnyama Limba PROPOSAL
James W SergiItalyStephen Shaw NEGOTIATION
Octavia Q ChuiRussiaIvan Magalhaes NEGOTIATION
Aditya I WaycottCanadaOnyama Limba RENEWAL
Jennifer L InouyeItalyAmy Elsner PROPOSAL
Kaitlin J RutaSpainAnna Fali PROPOSAL
Mujtaba U OldroydGermanyXuxue Feng UNQUALIFIED
Mayumi J SaylorsJapanAmy Elsner QUALIFIED
Clifford Y ShinkoBrazilAsiya Javayant NEGOTIATION
Cody G MaletSpainAsiya Javayant NEGOTIATION
Munro L MorascaCanadaIoni Bowcher QUALIFIED
Aditya X SlusarskiCanadaAnna Fali NEW
Francesco K FlosiFranceOnyama Limba NEW
Jennifer C DoeGermanyElwin Sharvill NEGOTIATION
Clifford S MacleadGermanyBernardo Dominic QUALIFIED
Silvio S OldroydArgentinaAmy Elsner PROPOSAL
Sinclair W OldroydBrazilIvan Magalhaes QUALIFIED
Ricardo Q DilliardGermanyIvan Magalhaes QUALIFIED
Antonio P PoquetteRussiaBernardo Dominic NEGOTIATION
Alejandro P AmigonIndiaElwin Sharvill NEGOTIATION
Aditya U WieserItalyAnna Fali UNQUALIFIED
Morrow O SergiAustraliaIvan Magalhaes RENEWAL
Arvin R PoquetteGermanyAmy Elsner RENEWAL
Maisha H MorascaCanadaStephen Shaw RENEWAL
Claire F SchemmerCanadaAmy Elsner NEGOTIATION
Ricardo U BologniaGermanyAmy Elsner UNQUALIFIED
Octavia X ButtIndiaAsiya Javayant RENEWAL
Maisha T PerinUnited KingdomOnyama Limba QUALIFIED
Arvin Y PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Aditya E FigeroaGermanyBernardo Dominic PROPOSAL
Antonio X SlusarskiFranceOnyama Limba NEW
Smith L RulapaughCanadaXuxue Feng PROPOSAL
Nicolas G CaldareraFranceAnna Fali UNQUALIFIED
Aditya S FlosiCanadaAsiya Javayant RENEWAL
Jeanfrancois L GauchoGermanyXuxue Feng RENEWAL
Jennifer V SchemmerGermanyXuxue Feng UNQUALIFIED
Adams S BowleyArgentinaIoni Bowcher UNQUALIFIED
Antonio U ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Maria L GauchoFranceIvan Magalhaes PROPOSAL
Greenwood R ButtItalyXuxue Feng UNQUALIFIED

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