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
Jefferson D RoysterAustraliaIoni Bowcher QUALIFIED
Aditya U BowleyGermanyStephen Shaw QUALIFIED
Sinclair G InouyeSpainAmy Elsner UNQUALIFIED
Adams M DilliardBrazilXuxue Feng NEGOTIATION
Francesco M ButtFranceElwin Sharvill UNQUALIFIED
Misaki J SlusarskiIndiaStephen Shaw NEW
Adams S ShinkoSpainIoni Bowcher QUALIFIED
Aditya J BologniaUnited KingdomIvan Magalhaes NEW
Munro I PoquetteArgentinaAsiya Javayant UNQUALIFIED
Octavia U SergiArgentinaElwin Sharvill PROPOSAL
Jones H DarakjyIndiaIvan Magalhaes RENEWAL
Darci S WhobreyCanadaOnyama Limba UNQUALIFIED
Costa T OldroydFranceXuxue Feng QUALIFIED
Wickens I NestleRussiaXuxue Feng UNQUALIFIED
Isabel L MarrierGermanyBernardo Dominic NEW
Leon W KuskoCanadaAnna Fali PROPOSAL
Wickens E RutaAustraliaIvan Magalhaes PROPOSAL
Ivar W FerenczArgentinaXuxue Feng NEW
Ivar C SergiUnited KingdomXuxue Feng RENEWAL
Francesco I KolmetzIndiaIoni Bowcher QUALIFIED
Jones T AlbaresIndiaAsiya Javayant NEW
Francesco X ChuiItalyOnyama Limba PROPOSAL
David O AmigonAustraliaAmy Elsner PROPOSAL
Wickens T MorascaGermanyStephen Shaw UNQUALIFIED
Chavez H BriddickSpainIvan Magalhaes PROPOSAL
Aruna K RoysterJapanStephen Shaw NEW
Jones B CaldareraSpainIvan Magalhaes NEW
Ivar Z BologniaFranceBernardo Dominic RENEWAL
Rodrigues T DarakjyArgentinaAsiya Javayant NEGOTIATION
Ricardo F InouyeIndiaBernardo Dominic RENEWAL
Aika B KolmetzFranceElwin Sharvill NEW
David V VocelkaFranceXuxue Feng UNQUALIFIED
Wickens Z DilliardUnited KingdomAmy Elsner NEGOTIATION
James Q SchemmerFranceIvan Magalhaes QUALIFIED
Leja E VenereCanadaAsiya Javayant NEGOTIATION
Maria R CampainArgentinaAsiya Javayant PROPOSAL
Tony T KolmetzGermanyBernardo Dominic QUALIFIED
Julie V ButtJapanAmy Elsner RENEWAL
Chavez P WaycottSpainAnna Fali PROPOSAL
Cody G VenereAustraliaIoni Bowcher PROPOSAL
Chavez X VenereCanadaIoni Bowcher RENEWAL
Jefferson I ChuiBrazilAmy Elsner RENEWAL
Silvio W KolmetzJapanAsiya Javayant PROPOSAL
Claire Y MaletItalyElwin Sharvill QUALIFIED
Claire R OldroydSpainElwin Sharvill NEGOTIATION
Ashley C RulapaughItalyOnyama Limba NEGOTIATION
Sinclair I GauchoIndiaElwin Sharvill PROPOSAL
Emily H FerenczCanadaOnyama Limba UNQUALIFIED
Stacey Z BriddickCanadaIvan Magalhaes NEGOTIATION
Ivar J SergiAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues I CaudyCanadaXuxue Feng PROPOSAL
Adams I AlbaresItalyAmy Elsner QUALIFIED
Arvin W OldroydGermanyIoni Bowcher UNQUALIFIED
Aditya U ChuiUnited KingdomOnyama Limba PROPOSAL
Leja J DoeFranceAsiya Javayant NEW
Leja C DilliardFranceIvan Magalhaes RENEWAL
Wickens Y FollerFranceIoni Bowcher QUALIFIED
Ricardo G FigeroaCanadaAmy Elsner RENEWAL
Jefferson L OldroydUnited KingdomAmy Elsner UNQUALIFIED
Darci R InouyeSpainStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya O RutaCanada2025-09-17Benton, John B Jr PROPOSAL16Asiya Javayant
1001Sinclair L TollnerIndia2025-09-15Dorl, James J Esq PROPOSAL11Ivan Magalhaes
1002Julie Z ButtBrazil2025-09-05Rousseaux, Michael Esq NEGOTIATION74Elwin Sharvill
1003Juan M RutaAustralia2025-09-12Feiner Bros QUALIFIED73Ivan Magalhaes
1004Ricardo R MorascaFrance2025-09-06Rangoni Of Florence RENEWAL51Bernardo Dominic
1005Johnson V DarakjyFrance2025-09-06Feltz Printing Service PROPOSAL27Anna Fali
1006Ashley E PaprockiCanada2025-09-16Commercial Press UNQUALIFIED28Onyama Limba
1007Cody M RutaGermany2025-10-01Printing Dimensions RENEWAL57Amy Elsner
1008Greenwood U KuskoBrazil2025-09-03King, Christopher A Esq UNQUALIFIED18Amy Elsner
1009Rodrigues I RutaJapan2025-09-21Chapman, Ross E Esq NEW63Stephen Shaw
1010Cody E BowleyRussia2025-09-29Commercial Press QUALIFIED6Anna Fali
1011Jefferson X PoquetteGermany2025-09-05Chanay, Jeffrey A Esq UNQUALIFIED44Elwin Sharvill
1012Octavia L MaletIndia2025-09-22Feltz Printing Service NEW62Stephen Shaw
1013Mujtaba B PerinItaly2025-09-07Truhlar And Truhlar Attys NEGOTIATION86Ioni Bowcher
1014Jones O WaycottAustralia2025-09-13Chanay, Jeffrey A Esq NEW54Anna Fali
1015Aruna G GauchoCanada2025-09-07Feiner Bros PROPOSAL0Bernardo Dominic
1016Jones U KolmetzRussia2025-09-28Buckley Miller Wright UNQUALIFIED23Onyama Limba
1017Jones B GlickItaly2025-09-06Chapman, Ross E Esq NEGOTIATION82Elwin Sharvill
1018Isabel P CaldareraIndia2025-09-10Truhlar And Truhlar Attys QUALIFIED22Amy Elsner
1019Chavez X DoeIndia2025-09-03Buckley Miller Wright QUALIFIED39Stephen Shaw
1020Wickens V GauchoArgentina2025-09-22Rangoni Of Florence RENEWAL66Ivan Magalhaes
1021Ivar F DarakjyItaly2025-09-16Commercial Press QUALIFIED67Onyama Limba
1022Greenwood X WhobreyAustralia2025-09-28Rousseaux, Michael Esq QUALIFIED60Anna Fali
1023Chavez Y DilliardSpain2025-10-01Rangoni Of Florence UNQUALIFIED2Bernardo Dominic
1024Jefferson D OldroydCanada2025-10-01King, Christopher A Esq UNQUALIFIED39Asiya Javayant
1025Maisha E GarufiBrazil2025-09-10Benton, John B Jr UNQUALIFIED59Amy Elsner
1026Greenwood M MaletGermany2025-09-24King, Christopher A Esq QUALIFIED32Asiya Javayant
1027Chavez F KolmetzSpain2025-09-18Benton, John B Jr NEGOTIATION77Xuxue Feng
1028Francesco M WieserAustralia2025-09-08Commercial Press NEW96Asiya Javayant
1029Arvin H BriddickAustralia2025-09-11Morlong Associates NEGOTIATION12Anna Fali
1030Deepesh U FerenczSpain2025-09-09Chanay, Jeffrey A Esq PROPOSAL86Anna Fali
1031Rodrigues Y PerinJapan2025-09-04Chanay, Jeffrey A Esq NEW5Amy Elsner
1032Kadeem X ButtItaly2025-09-26Morlong Associates NEW96Amy Elsner
1033David Z MacleadCanada2025-09-22Buckley Miller Wright NEGOTIATION32Ivan Magalhaes
1034Morrow J ShinkoJapan2025-09-05Rangoni Of Florence NEGOTIATION42Onyama Limba
1035Tony D KolmetzJapan2025-09-14Feltz Printing Service NEGOTIATION14Asiya Javayant
1036Faith S VocelkaCanada2025-09-20Commercial Press UNQUALIFIED26Anna Fali
1037Sinclair C RutaBrazil2025-09-16Buckley Miller Wright UNQUALIFIED36Ivan Magalhaes
1038Ricardo J IturbideArgentina2025-10-01Truhlar And Truhlar Attys PROPOSAL41Stephen Shaw
1039Alejandro R MarrierJapan2025-09-03Morlong Associates NEGOTIATION31Bernardo Dominic
1040Nicolas Q AmigonArgentina2025-09-30Chapman, Ross E Esq UNQUALIFIED82Asiya Javayant
1041Rodrigues C MaletGermany2025-09-09Dorl, James J Esq NEGOTIATION59Onyama Limba
1042Isabel B KolmetzItaly2025-09-12Chanay, Jeffrey A Esq NEW28Asiya Javayant
1043Maisha U DarakjyUnited Kingdom2025-10-02Chemel, James L Cpa QUALIFIED59Amy Elsner
1044Silvio S SaylorsGermany2025-09-19Buckley Miller Wright NEGOTIATION97Amy Elsner
1045James C FollerAustralia2025-09-19Feltz Printing Service NEW34Stephen Shaw
1046Mujtaba S FlosiGermany2025-09-25Dorl, James J Esq RENEWAL49Ioni Bowcher
1047Clifford Q CaudyFrance2025-09-28Rangoni Of Florence RENEWAL48Anna Fali
1048Ivar S GauchoGermany2025-10-01Feiner Bros NEW84Ivan Magalhaes
1049Juan M InouyeBrazil2025-09-27Benton, John B Jr UNQUALIFIED82Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson G FigeroaJapanIoni Bowcher UNQUALIFIED
Jefferson Q NestleAustraliaAnna Fali NEGOTIATION
Maria B PaprockiIndiaElwin Sharvill UNQUALIFIED
Juan W DarakjyArgentinaStephen Shaw NEW
Mayumi K NickaFranceAnna Fali UNQUALIFIED
Juan C SchemmerRussiaAnna Fali PROPOSAL
Jeanfrancois F BologniaAustraliaOnyama Limba PROPOSAL
Greenwood O BologniaAustraliaAmy Elsner QUALIFIED
Leon E CaldareraAustraliaStephen Shaw QUALIFIED
Maisha J RoysterIndiaXuxue Feng UNQUALIFIED
Maisha Y GauchoArgentinaOnyama Limba UNQUALIFIED
Clifford L MorascaArgentinaAmy Elsner NEGOTIATION
Jefferson S CaudyUnited KingdomIvan Magalhaes PROPOSAL
Chavez E DoeItalyAnna Fali NEGOTIATION
Arvin O VenereCanadaBernardo Dominic NEGOTIATION
Sinclair I FollerJapanStephen Shaw NEGOTIATION
Morrow T RutaFranceAmy Elsner RENEWAL
Arvin T MaletGermanyOnyama Limba RENEWAL
Leja K WhobreyUnited KingdomXuxue Feng NEW
Leon A NestleFranceAmy Elsner NEW
Stacey Y CampainItalyStephen Shaw NEW
Morrow Y TollnerAustraliaXuxue Feng UNQUALIFIED
Aruna E AmigonJapanXuxue Feng NEW
Maria R BowleyArgentinaXuxue Feng RENEWAL
Faith A WhobreySpainIoni Bowcher NEGOTIATION
Mujtaba X CaldareraUnited KingdomElwin Sharvill RENEWAL
Leon T FollerGermanyBernardo Dominic QUALIFIED
Sinclair H PoquetteArgentinaAmy Elsner RENEWAL
Johnson Z NestleJapanStephen Shaw RENEWAL
Chavez A GillianIndiaStephen Shaw NEGOTIATION
Murillo M ChuiUnited KingdomAnna Fali UNQUALIFIED
Ashley F CampainJapanAsiya Javayant QUALIFIED
Silvio U DoeAustraliaAnna Fali PROPOSAL
Sinclair J ButtUnited KingdomStephen Shaw NEW
Cody Y CaudyBrazilXuxue Feng RENEWAL
Alejandro C OldroydBrazilIoni Bowcher NEW
Salvatore G SaylorsAustraliaAsiya Javayant NEGOTIATION
Morrow M DilliardIndiaAnna Fali NEW
Aruna K CampainArgentinaXuxue Feng UNQUALIFIED
Arvin W KolmetzCanadaIoni Bowcher QUALIFIED
Kadeem E ChuiBrazilElwin Sharvill UNQUALIFIED
Jefferson E SchemmerIndiaIvan Magalhaes RENEWAL
Clifford G CampainCanadaAsiya Javayant RENEWAL
Silvio Q OldroydItalyStephen Shaw PROPOSAL
James E CaldareraRussiaBernardo Dominic RENEWAL
Leja R NestleJapanElwin Sharvill QUALIFIED
Leja Q MarrierItalyBernardo Dominic NEW
Kaitlin F FigeroaCanadaAsiya Javayant PROPOSAL
Aika P SchemmerUnited KingdomBernardo Dominic NEW
Rodrigues O DilliardFranceStephen Shaw RENEWAL
Frozen Columns
Name
Chavez L Briddick
Mayumi B Tollner
Ashley F Shinko
Greenwood E Caldarera
Leon D Venere
Izzy Z Perin
Octavia M Waycott
Misaki C Bolognia
Silvio Y Amigon
Aditya B Poquette
Emily H Morasca
Mayumi C Figeroa
Morrow V Kusko
David L Waycott
Chavez L Shinko
Arvin X Tollner
Jefferson W Stenseth
Emily X Kolmetz
James P Whobrey
Jones X Darakjy
Salvatore Q Gillian
Juan U Chui
Ashley X Ostrosky
Juan L Saylors
Leja P Kolmetz
Maria P Schemmer
Leon S Chui
Tony J Ferencz
Mayumi P Inouye
James I Gaucho
Munro N Dilliard
Aika V Kusko
Misaki J Foller
Johnson Y Briddick
Maria B Poquette
Silvio C Rulapaugh
Aika C Vocelka
Alejandro X Butt
Mujtaba T Venere
Costa A Kusko
Claire J Inouye
Darci D Inouye
Antonio U Saylors
Aditya V Malet
Misaki Z Doe
Francesco I Iturbide
Jones H Bowley
Juan W Gaucho
Jefferson J Wieser
Maria X Stenseth
IdCountryDate
1000France2025-09-04
1001India2025-09-29
1002India2025-09-12
1003Germany2025-09-21
1004Russia2025-09-24
1005Japan2025-09-15
1006Japan2025-09-28
1007Japan2025-09-10
1008Italy2025-09-04
1009Australia2025-09-29
1010France2025-09-15
1011India2025-09-29
1012India2025-09-20
1013Germany2025-09-30
1014Russia2025-09-22
1015Canada2025-09-10
1016Australia2025-09-24
1017Russia2025-09-11
1018United Kingdom2025-09-22
1019Japan2025-09-27
1020Italy2025-09-12
1021Russia2025-09-28
1022Spain2025-09-16
1023Brazil2025-09-12
1024Spain2025-09-09
1025Argentina2025-09-16
1026Canada2025-09-14
1027Brazil2025-09-29
1028Spain2025-09-12
1029France2025-09-28
1030United Kingdom2025-09-12
1031Russia2025-10-01
1032Canada2025-09-13
1033India2025-09-08
1034Japan2025-09-16
1035France2025-09-04
1036Australia2025-09-29
1037Italy2025-09-24
1038Brazil2025-09-29
1039Canada2025-09-18
1040Australia2025-09-04
1041Italy2025-09-18
1042Spain2025-09-17
1043Russia2025-09-08
1044Italy2025-09-10
1045Russia2025-09-08
1046Germany2025-09-18
1047Russia2025-09-09
1048Canada2025-09-17
1049Italy2025-09-19

On-Demand Data

NameIdCountryDate
Jeanfrancois V Sergi1000Spain2025-09-25
Mujtaba M Briddick1001Russia2025-09-30
Costa R Vocelka1002United Kingdom2025-09-19
Maria L Caldarera1003Brazil2025-09-07
Morrow D Garufi1004Russia2025-09-25
Leon W Waycott1005Canada2025-09-07
Clifford S Tollner1006Italy2025-09-27
Sinclair M Darakjy1007Canada2025-09-10
Emily P Inouye1008Australia2025-09-22
Chavez Z Inouye1009Germany2025-09-13
Leja A Slusarski1010Russia2025-09-27
Octavia H Whobrey1011Spain2025-09-13
Cody W Whobrey1012United Kingdom2025-09-19
Murillo I Saylors1013Russia2025-09-26
Salvatore Q Gillian1014Brazil2025-09-11
Jones W Kolmetz1015Russia2025-10-01
Emily E Briddick1016India2025-10-01
Jefferson R Ruta1017Italy2025-10-01
Jeanfrancois J Caudy1018Italy2025-09-16
Kadeem Y Foller1019Brazil2025-09-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P CaldareraBrazilIoni Bowcher NEW
Antonio K GauchoBrazilBernardo Dominic NEGOTIATION
James T ShinkoItalyAnna Fali RENEWAL
Silvio E RutaJapanElwin Sharvill PROPOSAL
Juan J InouyeRussiaIvan Magalhaes PROPOSAL
Johnson J PoquetteFranceIvan Magalhaes NEGOTIATION
Clifford N AmigonJapanAnna Fali UNQUALIFIED
Mujtaba J BowleyJapanBernardo Dominic UNQUALIFIED
James T GillianCanadaOnyama Limba PROPOSAL
Aika B DilliardIndiaAnna Fali QUALIFIED
Isabel J RutaBrazilIoni Bowcher QUALIFIED
Munro X SergiFranceOnyama Limba QUALIFIED
Salvatore J AlbaresArgentinaIoni Bowcher NEW
Ashley I BriddickIndiaIoni Bowcher RENEWAL
Tony O GauchoRussiaBernardo Dominic NEW
Kadeem L MarrierSpainElwin Sharvill RENEWAL
Aruna H StensethUnited KingdomXuxue Feng NEW
Adams S PaprockiAustraliaElwin Sharvill UNQUALIFIED
Ivar N NestleFranceAnna Fali RENEWAL
Izzy K GauchoUnited KingdomBernardo Dominic NEW
Sinclair I FlosiRussiaStephen Shaw PROPOSAL
Morrow Z FerenczArgentinaIoni Bowcher PROPOSAL
Nicolas V RulapaughGermanyAmy Elsner UNQUALIFIED
Kadeem Y IturbideIndiaBernardo Dominic NEW
Aika D SaylorsSpainIvan Magalhaes RENEWAL
James W CampainIndiaAnna Fali NEGOTIATION
Antonio J SaylorsJapanAmy Elsner NEGOTIATION
Maria X InouyeGermanyXuxue Feng QUALIFIED
Julie Y RutaUnited KingdomAmy Elsner PROPOSAL
Leon S ShinkoBrazilOnyama Limba RENEWAL
Francesco J MaletFranceXuxue Feng RENEWAL
Misaki Z ButtJapanIoni Bowcher NEW
Francesco R SlusarskiFranceIoni Bowcher QUALIFIED
Maria P AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Wickens R RoysterIndiaElwin Sharvill NEGOTIATION
Cody O PoquetteCanadaAsiya Javayant NEW
Emily J SlusarskiItalyIvan Magalhaes NEW
Misaki X CaudyItalyAmy Elsner UNQUALIFIED
Mujtaba J IturbideRussiaAnna Fali NEGOTIATION
Octavia E InouyeAustraliaIvan Magalhaes 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>