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
Octavia N GauchoIndiaIoni Bowcher UNQUALIFIED
Costa A TollnerFranceAnna Fali NEGOTIATION
Clifford M RutaIndiaBernardo Dominic PROPOSAL
Leon K AmigonItalyXuxue Feng NEW
Clifford A OstroskyFranceAsiya Javayant QUALIFIED
Julie Q WieserJapanBernardo Dominic RENEWAL
Salvatore E BologniaIndiaBernardo Dominic NEGOTIATION
Leon S FollerSpainIvan Magalhaes QUALIFIED
Cody V KuskoCanadaAmy Elsner PROPOSAL
Darci M InouyeCanadaStephen Shaw RENEWAL
Faith X FerenczArgentinaBernardo Dominic UNQUALIFIED
Smith W GillianItalyAnna Fali NEGOTIATION
Maria S DarakjyArgentinaElwin Sharvill NEW
Isabel H ShinkoBrazilAnna Fali NEGOTIATION
Aika G PaprockiGermanyIoni Bowcher NEGOTIATION
Izzy S InouyeArgentinaIoni Bowcher QUALIFIED
Clifford F SergiIndiaAsiya Javayant UNQUALIFIED
Izzy C GarufiItalyAmy Elsner RENEWAL
Francesco X AlbaresArgentinaBernardo Dominic NEGOTIATION
Misaki G BriddickBrazilStephen Shaw NEW
Julie I ShinkoUnited KingdomBernardo Dominic PROPOSAL
Silvio N KolmetzGermanyOnyama Limba UNQUALIFIED
Ricardo P WhobreyFranceAnna Fali PROPOSAL
Cody F FlosiSpainOnyama Limba NEW
Silvio Q GlickArgentinaIvan Magalhaes NEGOTIATION
Greenwood A NickaFranceXuxue Feng QUALIFIED
Aruna O FollerJapanOnyama Limba UNQUALIFIED
Francesco T MorascaBrazilOnyama Limba QUALIFIED
Arvin Z SlusarskiArgentinaElwin Sharvill UNQUALIFIED
David V StockhamBrazilIvan Magalhaes RENEWAL
Sinclair M SaylorsFranceOnyama Limba NEGOTIATION
Alejandro M KuskoRussiaAnna Fali NEW
Emily B OstroskyGermanyAmy Elsner NEGOTIATION
Kaitlin J DoeRussiaIvan Magalhaes NEW
Salvatore Y SergiAustraliaElwin Sharvill NEW
Ivar X MacleadFranceAmy Elsner QUALIFIED
Leja L BriddickSpainBernardo Dominic QUALIFIED
Izzy N IturbideAustraliaOnyama Limba NEGOTIATION
Leja J AlbaresGermanyAnna Fali UNQUALIFIED
Francesco T DarakjyAustraliaIvan Magalhaes QUALIFIED
Chavez A GillianIndiaIoni Bowcher UNQUALIFIED
David A NestleFranceBernardo Dominic QUALIFIED
Maisha K OstroskyIndiaIvan Magalhaes RENEWAL
Alejandro X FollerAustraliaAsiya Javayant RENEWAL
Sinclair M RutaFranceAsiya Javayant PROPOSAL
Chavez J PaprockiSpainElwin Sharvill UNQUALIFIED
David L TollnerSpainXuxue Feng QUALIFIED
Juan K FollerItalyBernardo Dominic PROPOSAL
Smith H FigeroaSpainIvan Magalhaes UNQUALIFIED
Maria N SergiUnited KingdomIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair T ShinkoSpainAsiya Javayant NEW
Octavia V GarufiFranceIvan Magalhaes UNQUALIFIED
Aruna B InouyeAustraliaStephen Shaw UNQUALIFIED
Nicolas V AlbaresUnited KingdomElwin Sharvill RENEWAL
Ivar Y KolmetzItalyBernardo Dominic QUALIFIED
Silvio M NickaJapanIoni Bowcher PROPOSAL
Ricardo Y CampainFranceXuxue Feng UNQUALIFIED
Octavia D SlusarskiUnited KingdomIoni Bowcher NEW
Wickens K CampainIndiaIoni Bowcher UNQUALIFIED
Deepesh K NickaGermanyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio R CaldareraArgentina2026-10-24Benton, John B Jr PROPOSAL87Anna Fali
1001Ivar Z RoysterUnited Kingdom2026-10-10Commercial Press PROPOSAL7Elwin Sharvill
1002Kaitlin D BowleyCanada2026-10-30Rangoni Of Florence PROPOSAL31Asiya Javayant
1003Jennifer R SaylorsItaly2026-10-18Rousseaux, Michael Esq UNQUALIFIED9Ioni Bowcher
1004Emily D SlusarskiRussia2026-11-04Dorl, James J Esq UNQUALIFIED37Onyama Limba
1005Greenwood O CampainAustralia2026-10-22Rousseaux, Michael Esq QUALIFIED44Bernardo Dominic
1006Silvio Y KuskoAustralia2026-10-14Truhlar And Truhlar Attys NEGOTIATION35Xuxue Feng
1007Kadeem B ChuiSpain2026-10-30Rousseaux, Michael Esq NEW73Asiya Javayant
1008Leja K WaycottGermany2026-10-23Benton, John B Jr NEGOTIATION25Xuxue Feng
1009Kadeem J GlickBrazil2026-10-14Morlong Associates RENEWAL33Bernardo Dominic
1010Wickens Q AmigonJapan2026-10-12Chemel, James L Cpa QUALIFIED94Xuxue Feng
1011Silvio Z DarakjyUnited Kingdom2026-10-16Feltz Printing Service QUALIFIED97Xuxue Feng
1012Deepesh D PerinSpain2026-10-27Chemel, James L Cpa UNQUALIFIED8Xuxue Feng
1013Maisha K MorascaIndia2026-10-14Dorl, James J Esq NEW70Asiya Javayant
1014Ashley K AmigonUnited Kingdom2026-10-09Buckley Miller Wright RENEWAL30Ioni Bowcher
1015Maria K WhobreyIndia2026-10-18Feiner Bros QUALIFIED78Xuxue Feng
1016Nicolas F VocelkaCanada2026-10-19Chanay, Jeffrey A Esq NEGOTIATION88Stephen Shaw
1017Aika G VocelkaBrazil2026-10-21Benton, John B Jr PROPOSAL59Xuxue Feng
1018David P InouyeRussia2026-10-13King, Christopher A Esq NEGOTIATION62Amy Elsner
1019Faith J ChuiRussia2026-11-03Dorl, James J Esq RENEWAL1Asiya Javayant
1020Johnson L ButtCanada2026-11-02Buckley Miller Wright NEGOTIATION8Elwin Sharvill
1021Jefferson Z RimItaly2026-10-13King, Christopher A Esq NEGOTIATION39Bernardo Dominic
1022Clifford N InouyeArgentina2026-11-02Rangoni Of Florence UNQUALIFIED10Anna Fali
1023Jennifer S DoeCanada2026-10-18Commercial Press QUALIFIED80Amy Elsner
1024Jones O GauchoSpain2026-10-24Rousseaux, Michael Esq NEGOTIATION33Onyama Limba
1025Nicolas N InouyeArgentina2026-11-03Feltz Printing Service PROPOSAL46Elwin Sharvill
1026Claire B ShinkoBrazil2026-11-04Feiner Bros RENEWAL52Xuxue Feng
1027Murillo U TollnerArgentina2026-10-12Commercial Press RENEWAL12Bernardo Dominic
1028Ivar S WhobreyRussia2026-11-02Feiner Bros PROPOSAL11Bernardo Dominic
1029Wickens Q SaylorsRussia2026-10-10Chemel, James L Cpa RENEWAL40Elwin Sharvill
1030Aika N VocelkaBrazil2026-10-15King, Christopher A Esq UNQUALIFIED21Anna Fali
1031Antonio F BowleyGermany2026-10-19Chemel, James L Cpa QUALIFIED57Amy Elsner
1032Jeanfrancois W GauchoAustralia2026-11-04Truhlar And Truhlar Attys PROPOSAL18Bernardo Dominic
1033Izzy P FollerCanada2026-10-09Feiner Bros PROPOSAL60Elwin Sharvill
1034Mayumi F ButtIndia2026-10-21Chapman, Ross E Esq NEW63Stephen Shaw
1035Maria C FigeroaFrance2026-10-21Printing Dimensions RENEWAL70Asiya Javayant
1036Mujtaba T FlosiItaly2026-10-26Rousseaux, Michael Esq NEGOTIATION47Bernardo Dominic
1037Antonio O NickaItaly2026-10-28Benton, John B Jr NEW5Xuxue Feng
1038Smith T MaletIndia2026-10-22Buckley Miller Wright UNQUALIFIED19Bernardo Dominic
1039Kadeem R MaletFrance2026-10-22Benton, John B Jr QUALIFIED87Elwin Sharvill
1040Kadeem N FerenczCanada2026-10-21King, Christopher A Esq UNQUALIFIED85Stephen Shaw
1041Stacey K SaylorsItaly2026-10-25Chanay, Jeffrey A Esq RENEWAL40Ivan Magalhaes
1042Ricardo J CampainCanada2026-10-22Rousseaux, Michael Esq UNQUALIFIED98Elwin Sharvill
1043Emily Z ShinkoIndia2026-10-09Feltz Printing Service RENEWAL66Xuxue Feng
1044Arvin O CaldareraBrazil2026-10-25Chemel, James L Cpa NEGOTIATION73Ioni Bowcher
1045Adams S GarufiAustralia2026-11-04Commercial Press PROPOSAL20Asiya Javayant
1046Mayumi Q IturbideBrazil2026-10-11Chanay, Jeffrey A Esq RENEWAL46Amy Elsner
1047Kadeem H StockhamRussia2026-11-02Chanay, Jeffrey A Esq QUALIFIED40Asiya Javayant
1048Mayumi H PerinItaly2026-10-14Chemel, James L Cpa QUALIFIED68Xuxue Feng
1049Tony L StensethArgentina2026-10-30Chemel, James L Cpa QUALIFIED8Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Juan Z TollnerBrazilElwin Sharvill QUALIFIED
Aditya A GlickAustraliaElwin Sharvill NEGOTIATION
Johnson Q AmigonIndiaStephen Shaw NEW
Jennifer R MaletBrazilOnyama Limba NEGOTIATION
Jefferson G SergiSpainXuxue Feng UNQUALIFIED
Isabel E SchemmerAustraliaIvan Magalhaes NEW
Izzy N PaprockiJapanAmy Elsner QUALIFIED
Arvin Z VocelkaAustraliaAnna Fali UNQUALIFIED
Ricardo E GauchoSpainElwin Sharvill NEW
James M StensethAustraliaOnyama Limba PROPOSAL
Aruna W WaycottArgentinaAmy Elsner UNQUALIFIED
Greenwood E RutaRussiaAsiya Javayant PROPOSAL
Adams L RutaAustraliaXuxue Feng UNQUALIFIED
Wickens I BowleyBrazilOnyama Limba PROPOSAL
Ivar E PerinGermanyAmy Elsner RENEWAL
Isabel O IturbideBrazilIoni Bowcher PROPOSAL
Stacey L GlickFranceIoni Bowcher QUALIFIED
Isabel U WhobreyBrazilIvan Magalhaes PROPOSAL
Greenwood H OstroskyFranceAmy Elsner NEW
Greenwood U NestleIndiaOnyama Limba NEW
Morrow F KuskoJapanStephen Shaw NEW
Juan C AmigonCanadaOnyama Limba PROPOSAL
Octavia H GlickUnited KingdomIvan Magalhaes RENEWAL
Deepesh F SchemmerAustraliaIvan Magalhaes QUALIFIED
Misaki L SchemmerUnited KingdomBernardo Dominic PROPOSAL
Smith L CaudyUnited KingdomBernardo Dominic NEW
Juan M ButtIndiaIvan Magalhaes PROPOSAL
Darci C KuskoAustraliaStephen Shaw UNQUALIFIED
Silvio M NestleFranceAmy Elsner RENEWAL
Jennifer B ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Claire E KuskoGermanyAnna Fali NEGOTIATION
Munro O BowleyArgentinaIoni Bowcher NEGOTIATION
Octavia B DarakjyRussiaXuxue Feng UNQUALIFIED
Jefferson D CampainIndiaIoni Bowcher UNQUALIFIED
Aruna P RoysterRussiaAmy Elsner QUALIFIED
Francesco M ChuiRussiaElwin Sharvill UNQUALIFIED
Stacey H SergiSpainStephen Shaw RENEWAL
Rodrigues K WieserFranceIoni Bowcher QUALIFIED
Ricardo O FerenczAustraliaAnna Fali PROPOSAL
Antonio H DarakjyGermanyBernardo Dominic RENEWAL
Silvio J SaylorsJapanAnna Fali NEGOTIATION
Izzy Q DoeSpainAnna Fali QUALIFIED
Maria U BologniaBrazilAmy Elsner RENEWAL
Mujtaba W StockhamFranceStephen Shaw QUALIFIED
Faith H AlbaresItalyIoni Bowcher QUALIFIED
Chavez B AmigonJapanIvan Magalhaes QUALIFIED
Nicolas O ShinkoBrazilIoni Bowcher QUALIFIED
Julie I GarufiJapanAmy Elsner PROPOSAL
Greenwood D PaprockiFranceAnna Fali UNQUALIFIED
Francesco C MarrierItalyIvan Magalhaes NEW
Frozen Columns
Name
James L Bowley
Jones X Ruta
Stacey N Kusko
Arvin H Ferencz
Johnson U Malet
Jeanfrancois B Kolmetz
Greenwood Q Ruta
Mayumi B Bolognia
Deepesh E Gaucho
Tony Z Caldarera
Darci C Foller
Murillo P Foller
Jones V Albares
Greenwood T Poquette
David Z Flosi
Jefferson G Stenseth
Isabel Z Rim
Smith X Oldroyd
Jennifer K Shinko
Murillo Y Vocelka
Cody D Shinko
Salvatore U Kusko
Clifford U Glick
Izzy Y Flosi
Chavez I Butt
Faith I Malet
Costa A Gaucho
Smith J Venere
Francesco A Amigon
Faith K Maclead
Greenwood M Waycott
Maria K Figeroa
Mujtaba T Morasca
Misaki W Venere
Ivar Q Figeroa
Murillo A Oldroyd
David K Malet
Claire P Darakjy
Jeanfrancois R Marrier
Faith H Nicka
Morrow V Nestle
Salvatore Q Venere
Jeanfrancois W Butt
Francesco Y Malet
Costa I Chui
Juan Z Stockham
Silvio G Saylors
Arvin S Rulapaugh
Leja B Schemmer
Murillo M Stenseth
IdCountryDate
1000Germany2026-10-25
1001Canada2026-10-14
1002Brazil2026-10-09
1003Argentina2026-10-25
1004Germany2026-10-24
1005Australia2026-11-03
1006India2026-10-14
1007Italy2026-11-04
1008France2026-10-10
1009India2026-10-30
1010France2026-10-11
1011Japan2026-10-19
1012India2026-10-18
1013United Kingdom2026-11-06
1014Spain2026-10-20
1015Argentina2026-10-25
1016Argentina2026-10-23
1017Canada2026-10-11
1018United Kingdom2026-10-18
1019Spain2026-10-19
1020Canada2026-10-11
1021Spain2026-10-11
1022Germany2026-10-11
1023Brazil2026-10-09
1024Germany2026-11-01
1025Russia2026-10-20
1026Germany2026-10-12
1027Canada2026-11-01
1028Germany2026-10-19
1029Japan2026-11-02
1030Canada2026-10-24
1031France2026-10-29
1032France2026-10-17
1033Canada2026-10-23
1034Russia2026-10-26
1035Canada2026-10-16
1036United Kingdom2026-10-21
1037Brazil2026-10-30
1038Russia2026-10-25
1039Italy2026-11-05
1040Australia2026-11-02
1041Argentina2026-10-12
1042Argentina2026-11-01
1043Spain2026-11-02
1044France2026-11-01
1045Australia2026-10-11
1046Russia2026-11-02
1047Argentina2026-10-22
1048Canada2026-10-31
1049Japan2026-11-02

On-Demand Data

NameIdCountryDate
Kaitlin P Briddick1000Spain2026-10-28
Clifford O Schemmer1001Russia2026-10-22
Jeanfrancois L Glick1002Russia2026-10-11
Costa M Garufi1003Brazil2026-10-10
Mayumi K Royster1004Russia2026-10-20
Jeanfrancois Z Dilliard1005Canada2026-10-12
Costa L Caldarera1006Spain2026-10-10
Arvin M Vocelka1007Italy2026-11-02
James A Saylors1008United Kingdom2026-10-11
Claire T Chui1009India2026-10-08
Ashley O Rim1010Japan2026-11-03
Jeanfrancois G Kolmetz1011Canada2026-10-08
Octavia X Perin1012Germany2026-10-26
Aika K Stenseth1013India2026-10-17
Darci R Whobrey1014Japan2026-10-23
Chavez F Briddick1015Japan2026-11-06
Aditya S Shinko1016Brazil2026-10-26
Nicolas V Morasca1017Spain2026-10-13
Chavez D Rulapaugh1018Argentina2026-10-19
Nicolas V Sergi1019Germany2026-10-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya G SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro R NestleSpainElwin Sharvill UNQUALIFIED
Leon P WaycottItalyAnna Fali UNQUALIFIED
Silvio C FerenczSpainBernardo Dominic UNQUALIFIED
Adams B ButtIndiaIvan Magalhaes QUALIFIED
Munro F FerenczSpainOnyama Limba RENEWAL
Greenwood U SergiGermanyAsiya Javayant RENEWAL
Cody T FlosiIndiaXuxue Feng UNQUALIFIED
Mujtaba Y InouyeItalyOnyama Limba NEW
Misaki M RoysterGermanyIoni Bowcher NEW
Nicolas M GauchoAustraliaXuxue Feng RENEWAL
Aditya S AlbaresJapanStephen Shaw RENEWAL
Murillo Y InouyeItalyXuxue Feng NEW
Claire Q RimUnited KingdomXuxue Feng NEW
Francesco H DilliardRussiaElwin Sharvill NEW
Mayumi D GarufiSpainOnyama Limba NEW
Octavia U KuskoJapanAsiya Javayant PROPOSAL
Octavia Z StockhamUnited KingdomStephen Shaw UNQUALIFIED
Ashley I CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha T WieserIndiaIvan Magalhaes PROPOSAL
Jeanfrancois O MarrierRussiaAsiya Javayant PROPOSAL
David G RulapaughBrazilBernardo Dominic QUALIFIED
Leja Y RimIndiaBernardo Dominic UNQUALIFIED
Jennifer Y VocelkaFranceStephen Shaw NEW
Chavez W MorascaUnited KingdomIvan Magalhaes QUALIFIED
Maria G ButtArgentinaIvan Magalhaes QUALIFIED
Ivar W WieserItalyIoni Bowcher NEW
Claire F PoquetteCanadaIoni Bowcher RENEWAL
Faith B AmigonJapanIvan Magalhaes RENEWAL
Greenwood B DarakjyGermanyAmy Elsner QUALIFIED
Nicolas F CampainGermanyOnyama Limba NEW
Aika I NestleItalyBernardo Dominic UNQUALIFIED
Mujtaba H MorascaAustraliaXuxue Feng NEW
Stacey T TollnerArgentinaAsiya Javayant NEW
Ashley F RimJapanXuxue Feng RENEWAL
Maria L ChuiJapanIoni Bowcher QUALIFIED
Jeanfrancois D GauchoFranceAmy Elsner NEGOTIATION
Jefferson H ButtUnited KingdomXuxue Feng QUALIFIED
Murillo C KuskoRussiaElwin Sharvill UNQUALIFIED
Aruna T MaletAustraliaStephen Shaw 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>