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
Emily S VocelkaGermanyElwin Sharvill PROPOSAL
Arvin J CaudyFranceStephen Shaw PROPOSAL
Francesco P RutaSpainStephen Shaw RENEWAL
Salvatore Q BriddickIndiaAnna Fali NEW
Antonio L PoquetteFranceXuxue Feng PROPOSAL
Mujtaba A MorascaBrazilBernardo Dominic PROPOSAL
Octavia C IturbideIndiaXuxue Feng NEGOTIATION
Ricardo N SchemmerRussiaIoni Bowcher QUALIFIED
Aditya J WaycottFranceXuxue Feng NEGOTIATION
Jennifer V PoquetteItalyStephen Shaw PROPOSAL
David A OldroydJapanElwin Sharvill NEGOTIATION
Jeanfrancois Q CampainCanadaStephen Shaw RENEWAL
Smith O StensethJapanOnyama Limba RENEWAL
Sinclair T MorascaJapanElwin Sharvill RENEWAL
David Q ShinkoUnited KingdomAmy Elsner NEGOTIATION
Tony E VocelkaAustraliaBernardo Dominic QUALIFIED
Aditya M KolmetzArgentinaAnna Fali QUALIFIED
Stacey U KuskoUnited KingdomAmy Elsner NEGOTIATION
Claire C MaletSpainBernardo Dominic PROPOSAL
Rodrigues A ChuiArgentinaBernardo Dominic PROPOSAL
Murillo E SchemmerSpainAsiya Javayant QUALIFIED
Munro J StensethBrazilElwin Sharvill NEW
Alejandro N GarufiRussiaIoni Bowcher QUALIFIED
Jennifer R BriddickCanadaIvan Magalhaes NEGOTIATION
Darci F ChuiUnited KingdomIvan Magalhaes PROPOSAL
Salvatore U CaldareraSpainIvan Magalhaes PROPOSAL
Rodrigues G FerenczGermanyIvan Magalhaes NEW
Clifford C GarufiJapanOnyama Limba QUALIFIED
Rodrigues D CaldareraArgentinaOnyama Limba UNQUALIFIED
Jennifer F ButtCanadaIoni Bowcher PROPOSAL
Kadeem N AlbaresJapanXuxue Feng PROPOSAL
Greenwood T MacleadRussiaOnyama Limba NEGOTIATION
Mayumi O ChuiUnited KingdomStephen Shaw RENEWAL
Smith H MorascaCanadaIoni Bowcher NEGOTIATION
Aika B OldroydArgentinaXuxue Feng PROPOSAL
Murillo O CaldareraFranceXuxue Feng UNQUALIFIED
Emily V NickaCanadaIvan Magalhaes RENEWAL
Chavez G SaylorsFranceBernardo Dominic NEW
Ivar L ButtUnited KingdomIvan Magalhaes PROPOSAL
Silvio U StockhamArgentinaOnyama Limba NEW
Jennifer W WhobreyItalyElwin Sharvill RENEWAL
Ricardo Z RulapaughArgentinaAsiya Javayant QUALIFIED
Arvin V PerinAustraliaStephen Shaw NEW
Leon F SchemmerIndiaAmy Elsner NEGOTIATION
Chavez T ShinkoAustraliaAsiya Javayant PROPOSAL
Silvio Q OstroskyIndiaOnyama Limba RENEWAL
Tony Y SchemmerRussiaAnna Fali RENEWAL
Aruna Q GillianCanadaBernardo Dominic QUALIFIED
Clifford L MorascaJapanStephen Shaw NEW
Alejandro D MacleadItalyBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Silvio P MaletArgentinaIoni Bowcher QUALIFIED
Alejandro C IturbideItalyAmy Elsner UNQUALIFIED
Maria O ShinkoItalyBernardo Dominic NEW
Francesco J CaudyIndiaAmy Elsner NEGOTIATION
Maisha X BriddickItalyOnyama Limba UNQUALIFIED
Izzy J VocelkaFranceStephen Shaw RENEWAL
Jones U AlbaresUnited KingdomAnna Fali UNQUALIFIED
Leon W WaycottCanadaBernardo Dominic PROPOSAL
Leja K OldroydGermanyElwin Sharvill NEW
Silvio S VenereAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore A FerenczArgentina2025-08-04Feiner Bros QUALIFIED84Bernardo Dominic
1001David I RimGermany2025-07-31Truhlar And Truhlar Attys RENEWAL30Asiya Javayant
1002Darci C PoquetteIndia2025-07-13Chanay, Jeffrey A Esq UNQUALIFIED58Bernardo Dominic
1003Wickens O OstroskyGermany2025-07-13Morlong Associates QUALIFIED22Xuxue Feng
1004Mujtaba T AlbaresArgentina2025-07-24Truhlar And Truhlar Attys PROPOSAL99Stephen Shaw
1005Alejandro O AlbaresRussia2025-07-17Buckley Miller Wright QUALIFIED12Bernardo Dominic
1006Izzy T SlusarskiBrazil2025-07-13Printing Dimensions RENEWAL18Amy Elsner
1007Octavia R BowleyGermany2025-07-13Commercial Press RENEWAL62Elwin Sharvill
1008Claire M BowleyItaly2025-07-18Printing Dimensions PROPOSAL0Ivan Magalhaes
1009Claire O SlusarskiItaly2025-07-19Buckley Miller Wright NEW13Elwin Sharvill
1010Aruna B VocelkaFrance2025-08-04Dorl, James J Esq UNQUALIFIED30Xuxue Feng
1011Adams E InouyeIndia2025-07-17Printing Dimensions QUALIFIED25Ioni Bowcher
1012Jones X SergiItaly2025-07-06King, Christopher A Esq QUALIFIED74Xuxue Feng
1013Tony T OldroydItaly2025-07-28Morlong Associates QUALIFIED36Amy Elsner
1014Johnson M WhobreyFrance2025-07-17Truhlar And Truhlar Attys UNQUALIFIED78Xuxue Feng
1015Alejandro R KuskoUnited Kingdom2025-07-22Feltz Printing Service UNQUALIFIED59Bernardo Dominic
1016Aditya M DoeRussia2025-07-24Rousseaux, Michael Esq NEW56Stephen Shaw
1017Deepesh R PaprockiSpain2025-07-30Feiner Bros PROPOSAL92Bernardo Dominic
1018David T FollerJapan2025-07-07Buckley Miller Wright QUALIFIED38Xuxue Feng
1019Salvatore I BowleyItaly2025-07-11Truhlar And Truhlar Attys NEGOTIATION81Xuxue Feng
1020Morrow S GillianArgentina2025-07-24Benton, John B Jr NEW8Xuxue Feng
1021Salvatore V StensethUnited Kingdom2025-07-10Feiner Bros UNQUALIFIED62Anna Fali
1022Adams D RulapaughBrazil2025-08-03Chanay, Jeffrey A Esq NEGOTIATION43Ioni Bowcher
1023Ashley G NestleBrazil2025-07-06Chapman, Ross E Esq UNQUALIFIED50Stephen Shaw
1024Deepesh Q StockhamArgentina2025-07-11Rousseaux, Michael Esq UNQUALIFIED43Ivan Magalhaes
1025Emily X AmigonItaly2025-07-24Printing Dimensions NEW12Asiya Javayant
1026Isabel F ChuiArgentina2025-07-20Rangoni Of Florence PROPOSAL53Xuxue Feng
1027Adams A NickaFrance2025-07-09Dorl, James J Esq NEW61Xuxue Feng
1028Francesco O FerenczIndia2025-08-03Benton, John B Jr QUALIFIED25Stephen Shaw
1029Ashley C RimCanada2025-07-19Dorl, James J Esq RENEWAL84Stephen Shaw
1030Claire J SaylorsCanada2025-07-25Dorl, James J Esq NEW2Stephen Shaw
1031Mujtaba Q InouyeAustralia2025-07-09Chapman, Ross E Esq NEGOTIATION65Ivan Magalhaes
1032Stacey F RulapaughUnited Kingdom2025-07-27Feltz Printing Service NEW57Xuxue Feng
1033Stacey E DoeArgentina2025-07-11Chemel, James L Cpa NEW26Elwin Sharvill
1034Kadeem J StensethBrazil2025-07-27Feiner Bros NEGOTIATION23Anna Fali
1035Sinclair R BologniaBrazil2025-07-12Rousseaux, Michael Esq PROPOSAL46Amy Elsner
1036Jones H FigeroaJapan2025-07-21Benton, John B Jr NEW15Onyama Limba
1037Kadeem E MarrierBrazil2025-07-06Rangoni Of Florence NEGOTIATION49Asiya Javayant
1038James U SchemmerAustralia2025-07-31Printing Dimensions PROPOSAL87Asiya Javayant
1039Johnson B CampainAustralia2025-07-29Chapman, Ross E Esq NEGOTIATION13Onyama Limba
1040Izzy V TollnerFrance2025-07-20Rangoni Of Florence NEGOTIATION75Stephen Shaw
1041Antonio W SlusarskiRussia2025-07-30Feltz Printing Service QUALIFIED87Asiya Javayant
1042Faith B AlbaresJapan2025-08-03Truhlar And Truhlar Attys NEW74Bernardo Dominic
1043Arvin Y FigeroaItaly2025-07-07Printing Dimensions UNQUALIFIED99Amy Elsner
1044Stacey K KolmetzBrazil2025-07-08Morlong Associates RENEWAL61Ivan Magalhaes
1045Alejandro J NestleArgentina2025-07-08Rousseaux, Michael Esq UNQUALIFIED47Amy Elsner
1046Jeanfrancois X VocelkaAustralia2025-07-25Chapman, Ross E Esq NEGOTIATION93Elwin Sharvill
1047Aruna G ShinkoGermany2025-07-12Dorl, James J Esq NEW15Stephen Shaw
1048Nicolas H BriddickGermany2025-07-28Truhlar And Truhlar Attys UNQUALIFIED88Stephen Shaw
1049Mujtaba O DoeFrance2025-07-19Truhlar And Truhlar Attys QUALIFIED44Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin V MaletCanadaXuxue Feng NEW
Deepesh T MacleadJapanStephen Shaw QUALIFIED
Arvin X PaprockiFranceAsiya Javayant QUALIFIED
Jones W VocelkaJapanStephen Shaw QUALIFIED
Aditya X RoysterCanadaOnyama Limba QUALIFIED
Ivar M GauchoSpainAmy Elsner QUALIFIED
Claire M InouyeJapanIoni Bowcher PROPOSAL
Aditya B PaprockiSpainStephen Shaw RENEWAL
Sinclair E FlosiFranceAsiya Javayant UNQUALIFIED
Misaki M RoysterSpainIoni Bowcher NEGOTIATION
Deepesh U KuskoAustraliaElwin Sharvill QUALIFIED
Jeanfrancois H KolmetzGermanyElwin Sharvill PROPOSAL
Jennifer D NickaJapanStephen Shaw NEW
Francesco V SergiJapanIoni Bowcher QUALIFIED
Silvio P PaprockiGermanyAsiya Javayant NEW
Wickens V MorascaArgentinaAmy Elsner NEW
Nicolas L WieserUnited KingdomXuxue Feng NEW
Faith C ChuiItalyIvan Magalhaes UNQUALIFIED
Mujtaba T NickaIndiaIoni Bowcher NEW
Emily S BologniaCanadaElwin Sharvill PROPOSAL
Munro O CaudyArgentinaAmy Elsner NEW
David U KuskoFranceAsiya Javayant PROPOSAL
Costa Z RoysterUnited KingdomOnyama Limba RENEWAL
Clifford B DarakjyFranceIvan Magalhaes PROPOSAL
Maisha G KolmetzBrazilXuxue Feng QUALIFIED
Smith I StockhamAustraliaAsiya Javayant QUALIFIED
Nicolas H PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer I WieserSpainStephen Shaw RENEWAL
Clifford X DoeIndiaIvan Magalhaes RENEWAL
Alejandro I MarrierCanadaAmy Elsner UNQUALIFIED
Johnson P RoysterRussiaBernardo Dominic RENEWAL
Jefferson W SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Darci Z IturbideRussiaIoni Bowcher RENEWAL
Aruna Z DilliardUnited KingdomElwin Sharvill NEGOTIATION
Silvio N WaycottArgentinaAsiya Javayant QUALIFIED
Greenwood U FigeroaFranceAsiya Javayant RENEWAL
Wickens F FlosiBrazilAsiya Javayant RENEWAL
Leon B DoeUnited KingdomIoni Bowcher PROPOSAL
Nicolas W SchemmerBrazilXuxue Feng UNQUALIFIED
Johnson K RutaItalyElwin Sharvill UNQUALIFIED
Chavez M NestleGermanyBernardo Dominic NEW
Francesco F MorascaItalyElwin Sharvill RENEWAL
James K TollnerArgentinaIoni Bowcher NEW
Ivar G TollnerArgentinaOnyama Limba UNQUALIFIED
Faith H SchemmerUnited KingdomAmy Elsner PROPOSAL
Jefferson T MarrierSpainStephen Shaw PROPOSAL
Rodrigues Y PerinArgentinaAsiya Javayant UNQUALIFIED
Rodrigues L FerenczRussiaAnna Fali RENEWAL
Kadeem F FlosiRussiaBernardo Dominic UNQUALIFIED
Greenwood E CampainFranceXuxue Feng NEW
Frozen Columns
Name
Juan T Campain
Rodrigues S Maclead
Mujtaba B Inouye
Jones J Campain
David G Perin
Morrow N Tollner
Stacey B Campain
Leon G Kusko
Rodrigues G Chui
Adams Y Glick
Nicolas U Doe
Juan P Bolognia
Jeanfrancois N Kolmetz
Maisha N Tollner
Sinclair B Bowley
Mujtaba H Foller
Murillo F Dilliard
Silvio U Bowley
Faith B Maclead
Silvio S Vocelka
Kaitlin I Paprocki
Ashley C Vocelka
Julie N Perin
Leon N Flosi
Smith W Royster
Silvio S Morasca
Jennifer F Chui
Aika C Slusarski
Ashley N Butt
Kadeem X Garufi
Maria K Sergi
Antonio R Saylors
Chavez A Albares
Juan G Dilliard
Adams M Morasca
Juan Y Gillian
Jeanfrancois U Caudy
Isabel W Venere
Octavia K Darakjy
Emily U Rulapaugh
Faith Y Paprocki
Aika I Wieser
Ashley Y Sergi
Isabel G Glick
Leon E Caldarera
Adams J Saylors
Cody V Tollner
Julie B Ruta
Jones A Vocelka
Izzy X Campain
IdCountryDate
1000Russia2025-08-03
1001Canada2025-07-17
1002United Kingdom2025-07-29
1003India2025-07-09
1004Russia2025-07-23
1005Italy2025-07-14
1006Japan2025-07-24
1007Spain2025-07-17
1008United Kingdom2025-07-30
1009Japan2025-07-10
1010India2025-07-10
1011Spain2025-07-24
1012Italy2025-07-18
1013Canada2025-08-04
1014Brazil2025-07-17
1015Argentina2025-07-15
1016Japan2025-07-18
1017India2025-07-25
1018Spain2025-07-14
1019India2025-07-29
1020Canada2025-07-29
1021Italy2025-07-23
1022Brazil2025-07-21
1023Canada2025-07-13
1024Germany2025-07-22
1025Brazil2025-08-02
1026United Kingdom2025-07-31
1027France2025-07-06
1028United Kingdom2025-08-03
1029Russia2025-07-10
1030Canada2025-07-16
1031France2025-07-19
1032Spain2025-07-12
1033Brazil2025-07-16
1034Australia2025-07-31
1035Italy2025-08-02
1036Italy2025-07-21
1037Japan2025-08-01
1038Japan2025-07-30
1039Canada2025-07-23
1040Germany2025-07-25
1041Brazil2025-07-14
1042Argentina2025-07-17
1043Japan2025-07-21
1044Argentina2025-07-29
1045Germany2025-07-13
1046Brazil2025-07-24
1047Russia2025-07-18
1048United Kingdom2025-07-23
1049Japan2025-07-13

On-Demand Data

NameIdCountryDate
Mujtaba M Dilliard1000Japan2025-07-26
Ivar Y Stenseth1001Canada2025-07-23
Johnson J Morasca1002India2025-07-29
Jeanfrancois K Doe1003Australia2025-07-25
Francesco A Albares1004India2025-08-01
Cody W Gaucho1005Spain2025-07-22
Octavia B Wieser1006Russia2025-07-30
Julie S Ruta1007United Kingdom2025-08-01
Sinclair X Rulapaugh1008Australia2025-07-28
Sinclair M Briddick1009Italy2025-07-08
Salvatore B Oldroyd1010Russia2025-08-01
Leja M Marrier1011Russia2025-07-21
Aika Y Stenseth1012Japan2025-07-20
Ivar O Rulapaugh1013Argentina2025-07-25
Kaitlin X Nicka1014India2025-07-27
Isabel Y Saylors1015Brazil2025-07-09
Aditya J Oldroyd1016Argentina2025-07-09
Ricardo S Glick1017Canada2025-07-14
Antonio O Malet1018Canada2025-07-18
Juan P Inouye1019United Kingdom2025-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan W RutaGermanyIvan Magalhaes QUALIFIED
Kaitlin M FigeroaRussiaOnyama Limba NEW
Salvatore V CaudyIndiaXuxue Feng UNQUALIFIED
Alejandro Y IturbideGermanyOnyama Limba NEGOTIATION
Antonio K PerinGermanyAsiya Javayant NEW
Arvin F FollerAustraliaAsiya Javayant UNQUALIFIED
Emily C GlickRussiaAsiya Javayant RENEWAL
Isabel V GauchoRussiaXuxue Feng NEW
Morrow M ShinkoItalyIvan Magalhaes NEGOTIATION
Aruna W TollnerRussiaOnyama Limba QUALIFIED
Mayumi K ChuiJapanElwin Sharvill NEGOTIATION
Leon R TollnerRussiaXuxue Feng UNQUALIFIED
Mayumi N MaletJapanAnna Fali NEGOTIATION
Morrow Y ChuiCanadaXuxue Feng QUALIFIED
Mayumi E OldroydRussiaStephen Shaw PROPOSAL
Cody V FollerRussiaIvan Magalhaes QUALIFIED
Silvio D MaletSpainXuxue Feng RENEWAL
Claire W MacleadArgentinaIvan Magalhaes QUALIFIED
Ricardo I PerinArgentinaAmy Elsner PROPOSAL
Aditya M DilliardRussiaElwin Sharvill UNQUALIFIED
Julie G CaudyBrazilOnyama Limba PROPOSAL
Aika W ChuiAustraliaXuxue Feng NEW
Murillo D BologniaJapanIoni Bowcher QUALIFIED
Murillo I VenereIndiaAnna Fali NEW
Mujtaba V GauchoJapanIvan Magalhaes NEW
Maisha F GlickJapanXuxue Feng NEGOTIATION
Johnson U MorascaItalyXuxue Feng UNQUALIFIED
Tony J PerinCanadaBernardo Dominic PROPOSAL
Misaki A RoysterArgentinaXuxue Feng PROPOSAL
Wickens W IturbideRussiaOnyama Limba PROPOSAL
Darci K SergiGermanyAsiya Javayant UNQUALIFIED
Sinclair W StockhamBrazilBernardo Dominic NEGOTIATION
Tony I GillianArgentinaStephen Shaw NEGOTIATION
Claire Z MacleadAustraliaOnyama Limba QUALIFIED
Ivar Y MaletArgentinaIvan Magalhaes QUALIFIED
Adams U GarufiFranceOnyama Limba NEW
Johnson R AmigonFranceIoni Bowcher NEW
Leon E MaletItalyStephen Shaw QUALIFIED
David T VocelkaFranceElwin Sharvill NEGOTIATION
Smith V StockhamItalyAmy Elsner PROPOSAL

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