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
Aruna G IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Cody G RimRussiaElwin Sharvill QUALIFIED
Jennifer E CaldareraAustraliaBernardo Dominic PROPOSAL
Salvatore M SergiJapanAmy Elsner NEW
Kadeem V FlosiArgentinaAnna Fali QUALIFIED
Antonio Z GarufiCanadaXuxue Feng QUALIFIED
Nicolas Y NickaCanadaElwin Sharvill RENEWAL
Salvatore K VocelkaArgentinaOnyama Limba NEGOTIATION
Jones G ChuiUnited KingdomIoni Bowcher NEW
David T ChuiSpainIoni Bowcher NEGOTIATION
Nicolas D VocelkaFranceAsiya Javayant NEW
Johnson E VenereArgentinaIvan Magalhaes PROPOSAL
Smith Z PaprockiBrazilStephen Shaw NEW
Clifford M NickaIndiaIvan Magalhaes PROPOSAL
Costa C GauchoRussiaAmy Elsner RENEWAL
Deepesh D DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo O ShinkoRussiaXuxue Feng QUALIFIED
Ashley M NickaArgentinaIoni Bowcher UNQUALIFIED
Isabel F MacleadRussiaIvan Magalhaes NEGOTIATION
Julie W CampainIndiaIoni Bowcher UNQUALIFIED
Aditya B BriddickUnited KingdomIvan Magalhaes QUALIFIED
Morrow F TollnerIndiaAsiya Javayant NEW
Morrow M FerenczRussiaIoni Bowcher QUALIFIED
Leon J BriddickUnited KingdomXuxue Feng PROPOSAL
Jennifer O DarakjyCanadaElwin Sharvill QUALIFIED
Silvio W AlbaresIndiaBernardo Dominic UNQUALIFIED
Murillo A FerenczJapanIvan Magalhaes NEW
Wickens A DilliardRussiaAsiya Javayant NEGOTIATION
Aruna R RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin P InouyeFranceAnna Fali RENEWAL
Tony N RutaGermanyAsiya Javayant NEW
Claire N ButtIndiaStephen Shaw NEW
Deepesh P BologniaFranceIoni Bowcher NEW
Jefferson X BowleyCanadaStephen Shaw NEGOTIATION
Aditya Q MarrierUnited KingdomElwin Sharvill RENEWAL
Isabel E OstroskyAustraliaIvan Magalhaes NEW
Ivar J WieserRussiaOnyama Limba UNQUALIFIED
Aditya P FigeroaItalyIvan Magalhaes NEGOTIATION
Kadeem M CaudyRussiaAmy Elsner PROPOSAL
Antonio L ButtIndiaOnyama Limba QUALIFIED
Misaki W VenereIndiaAsiya Javayant NEGOTIATION
Leon Z RoysterCanadaBernardo Dominic UNQUALIFIED
Faith S CaldareraGermanyAmy Elsner RENEWAL
Francesco L FollerUnited KingdomOnyama Limba PROPOSAL
Alejandro Q RimFranceAnna Fali RENEWAL
Maria E NickaSpainAsiya Javayant PROPOSAL
Juan I ButtSpainAsiya Javayant QUALIFIED
Antonio M WieserIndiaElwin Sharvill QUALIFIED
Nicolas U StensethUnited KingdomXuxue Feng NEGOTIATION
Arvin L StockhamItalyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio F InouyeUnited KingdomIoni Bowcher NEGOTIATION
Jennifer B BriddickUnited KingdomAmy Elsner NEGOTIATION
Jennifer I MorascaSpainOnyama Limba NEW
James X BologniaArgentinaIvan Magalhaes UNQUALIFIED
Sinclair P SergiRussiaAmy Elsner UNQUALIFIED
Mujtaba P GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin I SaylorsAustraliaXuxue Feng PROPOSAL
Johnson B PaprockiUnited KingdomAsiya Javayant PROPOSAL
Isabel F BologniaAustraliaIvan Magalhaes NEGOTIATION
Jones E RimIndiaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow R VenereIndia2025-10-12Rousseaux, Michael Esq RENEWAL51Ioni Bowcher
1001Murillo U CampainArgentina2025-10-07Rousseaux, Michael Esq PROPOSAL96Stephen Shaw
1002Isabel Q NestleJapan2025-10-03Chemel, James L Cpa PROPOSAL41Bernardo Dominic
1003Clifford P KolmetzUnited Kingdom2025-10-03King, Christopher A Esq NEW55Bernardo Dominic
1004Maria H GillianIndia2025-10-02Rousseaux, Michael Esq QUALIFIED88Onyama Limba
1005Mayumi O VenereItaly2025-10-10Commercial Press PROPOSAL55Xuxue Feng
1006Ricardo E VenereJapan2025-09-24Truhlar And Truhlar Attys UNQUALIFIED41Ivan Magalhaes
1007Clifford H SaylorsAustralia2025-10-04Chemel, James L Cpa RENEWAL76Stephen Shaw
1008Francesco D DilliardUnited Kingdom2025-10-03Rangoni Of Florence NEW48Ivan Magalhaes
1009Arvin T GillianSpain2025-10-08Truhlar And Truhlar Attys UNQUALIFIED27Ivan Magalhaes
1010Francesco B GarufiSpain2025-09-27Benton, John B Jr NEGOTIATION58Asiya Javayant
1011Emily Z FlosiJapan2025-09-23Chemel, James L Cpa RENEWAL59Anna Fali
1012Deepesh F SlusarskiAustralia2025-09-30Feltz Printing Service RENEWAL46Ioni Bowcher
1013Darci B PaprockiUnited Kingdom2025-10-14Benton, John B Jr RENEWAL74Elwin Sharvill
1014Mayumi U ButtAustralia2025-10-16Buckley Miller Wright NEW40Onyama Limba
1015Arvin S VenereFrance2025-09-30King, Christopher A Esq QUALIFIED78Onyama Limba
1016Ivar W RimCanada2025-09-21Commercial Press NEGOTIATION3Asiya Javayant
1017James V CampainJapan2025-09-21Printing Dimensions RENEWAL93Amy Elsner
1018Kadeem I WhobreyFrance2025-09-29Chemel, James L Cpa NEW6Amy Elsner
1019David J RutaBrazil2025-09-22Chanay, Jeffrey A Esq NEGOTIATION97Ioni Bowcher
1020Juan I KolmetzGermany2025-10-06Rousseaux, Michael Esq RENEWAL26Bernardo Dominic
1021Jeanfrancois J PoquetteJapan2025-09-28Buckley Miller Wright UNQUALIFIED88Elwin Sharvill
1022Leon D VocelkaFrance2025-09-30Truhlar And Truhlar Attys NEW45Elwin Sharvill
1023Claire U ShinkoBrazil2025-10-13Chemel, James L Cpa NEGOTIATION3Xuxue Feng
1024Maria A PaprockiIndia2025-10-05Feltz Printing Service RENEWAL94Stephen Shaw
1025Isabel D CaudyIndia2025-10-07Feltz Printing Service PROPOSAL68Amy Elsner
1026Costa D GlickCanada2025-09-26King, Christopher A Esq NEGOTIATION60Amy Elsner
1027Ricardo Z FollerRussia2025-10-06Rousseaux, Michael Esq PROPOSAL30Asiya Javayant
1028Antonio W NestleArgentina2025-10-07Feltz Printing Service UNQUALIFIED68Bernardo Dominic
1029Octavia L PoquetteBrazil2025-10-09Dorl, James J Esq UNQUALIFIED85Ioni Bowcher
1030Stacey I FollerSpain2025-10-11Chemel, James L Cpa PROPOSAL34Ivan Magalhaes
1031Ivar F SergiUnited Kingdom2025-10-19Chanay, Jeffrey A Esq RENEWAL16Elwin Sharvill
1032James G OldroydAustralia2025-10-11Printing Dimensions NEW72Bernardo Dominic
1033David T SchemmerItaly2025-09-29Printing Dimensions QUALIFIED97Anna Fali
1034Jennifer F WaycottAustralia2025-09-27Benton, John B Jr PROPOSAL54Amy Elsner
1035Misaki C SaylorsItaly2025-10-18Truhlar And Truhlar Attys NEGOTIATION46Asiya Javayant
1036Claire H MarrierIndia2025-10-04Chanay, Jeffrey A Esq NEW24Xuxue Feng
1037Nicolas J WieserRussia2025-10-07Printing Dimensions QUALIFIED88Ioni Bowcher
1038Ashley C FollerFrance2025-10-03Commercial Press QUALIFIED73Stephen Shaw
1039James A PaprockiBrazil2025-10-01Chanay, Jeffrey A Esq RENEWAL89Anna Fali
1040Darci W FlosiCanada2025-10-04King, Christopher A Esq QUALIFIED81Anna Fali
1041Chavez Z DarakjySpain2025-09-22King, Christopher A Esq RENEWAL32Onyama Limba
1042Cody J MaletSpain2025-10-20Printing Dimensions PROPOSAL49Stephen Shaw
1043Faith D StensethCanada2025-09-23Truhlar And Truhlar Attys QUALIFIED42Amy Elsner
1044Rodrigues M FerenczJapan2025-09-30Chanay, Jeffrey A Esq NEW16Amy Elsner
1045Aika M StensethGermany2025-10-10Rousseaux, Michael Esq PROPOSAL20Stephen Shaw
1046Mayumi G DilliardArgentina2025-10-19Chemel, James L Cpa NEGOTIATION28Anna Fali
1047Claire T PerinSpain2025-09-22Feltz Printing Service PROPOSAL94Elwin Sharvill
1048Deepesh M AlbaresGermany2025-09-22King, Christopher A Esq QUALIFIED64Bernardo Dominic
1049Jones A VocelkaGermany2025-10-09Feltz Printing Service NEGOTIATION68Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Faith B CaldareraUnited KingdomAmy Elsner QUALIFIED
Ashley I WieserJapanOnyama Limba PROPOSAL
Faith Q MaletSpainElwin Sharvill PROPOSAL
Deepesh P TollnerItalyBernardo Dominic RENEWAL
Tony T ChuiSpainIvan Magalhaes RENEWAL
Nicolas K FerenczGermanyAmy Elsner RENEWAL
Isabel Y FlosiGermanyIvan Magalhaes NEGOTIATION
Cody S NestleIndiaIoni Bowcher RENEWAL
Francesco Y BowleyGermanyAmy Elsner NEW
James Y SchemmerFranceElwin Sharvill RENEWAL
Smith Z MaletUnited KingdomBernardo Dominic QUALIFIED
Nicolas E VenereAustraliaElwin Sharvill UNQUALIFIED
James R GillianItalyIoni Bowcher NEGOTIATION
Aditya L PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Ivar P MarrierBrazilElwin Sharvill UNQUALIFIED
Smith R MacleadRussiaAmy Elsner PROPOSAL
Tony P InouyeBrazilStephen Shaw NEGOTIATION
Izzy J DilliardFranceAsiya Javayant UNQUALIFIED
Ashley P StensethItalyAnna Fali NEGOTIATION
Aika G InouyeIndiaIvan Magalhaes NEGOTIATION
Johnson K NickaItalyIoni Bowcher QUALIFIED
Jones G FlosiGermanyAmy Elsner RENEWAL
Antonio F MorascaIndiaAsiya Javayant QUALIFIED
Wickens D FerenczSpainXuxue Feng RENEWAL
Morrow D MacleadAustraliaAnna Fali NEGOTIATION
Misaki W BowleySpainStephen Shaw NEGOTIATION
Ricardo R OstroskyAustraliaIoni Bowcher NEW
Nicolas X VocelkaAustraliaXuxue Feng PROPOSAL
David V MaletJapanOnyama Limba NEW
Ashley L WhobreyCanadaOnyama Limba QUALIFIED
Jeanfrancois Z GlickGermanyStephen Shaw RENEWAL
Greenwood J DoeIndiaOnyama Limba UNQUALIFIED
Murillo Y RulapaughGermanyOnyama Limba QUALIFIED
Cody L CaldareraIndiaAsiya Javayant NEGOTIATION
Morrow Q SergiJapanXuxue Feng NEGOTIATION
Jones K CampainRussiaXuxue Feng RENEWAL
Smith G GillianSpainAsiya Javayant RENEWAL
Chavez P DoeAustraliaAmy Elsner NEGOTIATION
Emily Y DoeJapanAnna Fali RENEWAL
Smith H BriddickCanadaOnyama Limba QUALIFIED
Mujtaba S InouyeArgentinaXuxue Feng NEGOTIATION
Munro S RulapaughIndiaStephen Shaw NEGOTIATION
Izzy G MaletGermanyAmy Elsner NEW
Claire K MarrierAustraliaAnna Fali NEGOTIATION
Claire J MaletAustraliaAnna Fali RENEWAL
Johnson Y OstroskyFranceIvan Magalhaes QUALIFIED
Isabel Z ShinkoGermanyIvan Magalhaes UNQUALIFIED
Silvio G VocelkaUnited KingdomIoni Bowcher NEW
Darci U StockhamBrazilIoni Bowcher PROPOSAL
Munro B RimGermanyBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Emily R Dilliard
Octavia L Caldarera
Leon S Albares
Arvin R Inouye
Ivar T Rim
Johnson L Flosi
Kadeem S Briddick
Wickens A Saylors
Aditya W Poquette
Claire Z Paprocki
Alejandro L Glick
Ricardo H Caudy
Maria N Stenseth
Rodrigues J Marrier
Stacey A Morasca
Antonio N Kolmetz
Jennifer G Stockham
Aditya X Stockham
Morrow P Flosi
Rodrigues R Glick
Greenwood O Poquette
Costa W Bolognia
Stacey F Stockham
Julie N Dilliard
Deepesh P Saylors
Maisha Q Flosi
Clifford V Darakjy
Murillo A Waycott
Juan B Kolmetz
Adams R Stenseth
Izzy O Figeroa
Izzy A Waycott
Greenwood M Saylors
Salvatore X Campain
Leon O Doe
Alejandro Y Malet
Wickens Q Bowley
Nicolas Z Gaucho
Juan V Stenseth
Faith O Amigon
Salvatore U Wieser
Juan H Nestle
Darci K Ferencz
Smith S Royster
Claire R Rulapaugh
Ashley D Vocelka
Octavia T Saylors
James W Maclead
David F Dilliard
Morrow I Perin
IdCountryDate
1000Italy2025-10-04
1001Brazil2025-10-15
1002Italy2025-10-06
1003Australia2025-10-09
1004Russia2025-09-30
1005Spain2025-09-30
1006Australia2025-10-06
1007Brazil2025-10-18
1008United Kingdom2025-10-06
1009Canada2025-09-23
1010Italy2025-10-13
1011Argentina2025-10-20
1012Germany2025-09-30
1013Argentina2025-09-27
1014Argentina2025-10-11
1015Brazil2025-09-21
1016Argentina2025-10-05
1017India2025-09-22
1018Italy2025-09-29
1019Argentina2025-10-01
1020Spain2025-10-08
1021Russia2025-09-22
1022Australia2025-10-03
1023Italy2025-10-06
1024Argentina2025-10-19
1025India2025-10-13
1026Russia2025-10-06
1027Japan2025-10-18
1028Japan2025-09-25
1029Spain2025-09-30
1030Russia2025-09-23
1031United Kingdom2025-09-26
1032Australia2025-10-18
1033United Kingdom2025-09-21
1034Brazil2025-10-13
1035Russia2025-10-06
1036France2025-10-08
1037Australia2025-10-20
1038Argentina2025-09-24
1039France2025-10-03
1040India2025-10-07
1041Canada2025-10-11
1042Italy2025-10-17
1043India2025-09-27
1044Russia2025-10-06
1045Canada2025-10-12
1046Germany2025-10-20
1047Australia2025-09-25
1048United Kingdom2025-09-22
1049Germany2025-09-30

On-Demand Data

NameIdCountryDate
Johnson G Briddick1000Canada2025-09-24
Jennifer U Shinko1001Brazil2025-09-25
Deepesh E Chui1002Australia2025-10-14
Jones V Caudy1003Australia2025-10-12
Misaki V Rim1004Argentina2025-10-02
Smith J Slusarski1005France2025-09-28
Deepesh M Stenseth1006Australia2025-09-23
Clifford P Amigon1007Japan2025-10-12
Chavez X Briddick1008Brazil2025-09-29
Ashley D Foller1009Argentina2025-10-11
Clifford D Doe1010Argentina2025-10-13
Johnson G Poquette1011Russia2025-09-30
Tony P Venere1012Russia2025-09-30
David M Ruta1013United Kingdom2025-10-12
Aditya R Marrier1014Spain2025-10-20
Deepesh W Dilliard1015India2025-09-21
Costa X Schemmer1016Brazil2025-10-20
Emily E Slusarski1017United Kingdom2025-10-16
Juan Y Shinko1018Canada2025-10-19
Greenwood A Garufi1019United Kingdom2025-10-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily S ShinkoAustraliaStephen Shaw NEW
Salvatore B FerenczItalyAsiya Javayant QUALIFIED
Kadeem N NickaJapanBernardo Dominic UNQUALIFIED
Isabel G DilliardFranceIvan Magalhaes UNQUALIFIED
Juan Z RoysterUnited KingdomStephen Shaw RENEWAL
Leja Y SchemmerUnited KingdomAnna Fali QUALIFIED
David N WieserGermanyBernardo Dominic PROPOSAL
Greenwood Q RimIndiaAmy Elsner NEGOTIATION
Murillo R WaycottRussiaAnna Fali UNQUALIFIED
Kadeem M StensethItalyAmy Elsner QUALIFIED
Smith I WieserFranceXuxue Feng NEW
Murillo T BriddickJapanAsiya Javayant PROPOSAL
Silvio E WieserGermanyAsiya Javayant UNQUALIFIED
Ricardo W DoeItalyBernardo Dominic UNQUALIFIED
Leon F StensethGermanyBernardo Dominic RENEWAL
Julie A GarufiCanadaIvan Magalhaes RENEWAL
Salvatore F InouyeRussiaElwin Sharvill NEW
Maria L MaletRussiaStephen Shaw NEGOTIATION
Jeanfrancois M ShinkoJapanAsiya Javayant UNQUALIFIED
Isabel X StockhamBrazilAnna Fali QUALIFIED
Clifford N PerinCanadaBernardo Dominic NEGOTIATION
Misaki V MacleadCanadaIoni Bowcher PROPOSAL
Misaki E RulapaughUnited KingdomElwin Sharvill PROPOSAL
Costa Q ChuiGermanyAmy Elsner QUALIFIED
Mujtaba G OstroskyIndiaBernardo Dominic UNQUALIFIED
Maisha U MarrierJapanElwin Sharvill NEW
Jennifer Y SlusarskiIndiaXuxue Feng UNQUALIFIED
Ricardo G IturbideJapanOnyama Limba QUALIFIED
Jones W OldroydRussiaAsiya Javayant NEGOTIATION
Rodrigues V RoysterAustraliaBernardo Dominic RENEWAL
Deepesh D BriddickAustraliaOnyama Limba NEGOTIATION
Cody X VenereSpainStephen Shaw NEGOTIATION
Ashley X VenereIndiaAnna Fali RENEWAL
Maria X MarrierCanadaBernardo Dominic UNQUALIFIED
Alejandro R CaudyAustraliaStephen Shaw UNQUALIFIED
Alejandro R BriddickArgentinaStephen Shaw QUALIFIED
Aruna O MaletFranceBernardo Dominic RENEWAL
Antonio G ChuiItalyXuxue Feng PROPOSAL
Maria M GarufiSpainXuxue Feng RENEWAL
Deepesh A PoquetteSpainAnna Fali RENEWAL

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