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
Mujtaba J CaudyFranceElwin Sharvill PROPOSAL
Jeanfrancois J BologniaJapanOnyama Limba NEGOTIATION
Cody F CaudyUnited KingdomIoni Bowcher QUALIFIED
Mayumi A SergiItalyStephen Shaw QUALIFIED
Kaitlin K ButtSpainIvan Magalhaes QUALIFIED
Emily U CampainUnited KingdomAmy Elsner RENEWAL
Darci B StensethSpainIoni Bowcher PROPOSAL
Greenwood D InouyeAustraliaBernardo Dominic UNQUALIFIED
Alejandro M MarrierRussiaStephen Shaw UNQUALIFIED
Nicolas I DarakjyGermanyXuxue Feng UNQUALIFIED
Emily Y KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Stacey N GarufiItalyIoni Bowcher RENEWAL
Kadeem R IturbideArgentinaStephen Shaw RENEWAL
Mayumi U KuskoSpainOnyama Limba UNQUALIFIED
Faith W GlickFranceBernardo Dominic UNQUALIFIED
Jennifer A VenereItalyStephen Shaw NEGOTIATION
Arvin F AlbaresSpainBernardo Dominic NEW
Leon U StensethFranceOnyama Limba RENEWAL
Kadeem Z CaudyUnited KingdomAmy Elsner QUALIFIED
Octavia F PoquetteJapanStephen Shaw RENEWAL
Aditya V WieserJapanAmy Elsner PROPOSAL
Salvatore A FollerItalyAsiya Javayant UNQUALIFIED
Murillo W RulapaughIndiaBernardo Dominic RENEWAL
Octavia Z ButtFranceAsiya Javayant QUALIFIED
Maisha I InouyeRussiaAnna Fali NEGOTIATION
Jennifer Z GarufiJapanOnyama Limba QUALIFIED
Silvio F BriddickRussiaStephen Shaw QUALIFIED
Kaitlin R FlosiItalyStephen Shaw NEW
Wickens G StockhamAustraliaAmy Elsner RENEWAL
Ivar O PaprockiArgentinaBernardo Dominic NEGOTIATION
Alejandro H AmigonSpainIvan Magalhaes PROPOSAL
Adams D DoeItalyOnyama Limba RENEWAL
Kaitlin L CampainIndiaAsiya Javayant QUALIFIED
Emily M AlbaresBrazilOnyama Limba NEGOTIATION
Julie T MarrierAustraliaOnyama Limba RENEWAL
Aruna H SchemmerGermanyAmy Elsner NEGOTIATION
Aditya X ChuiFranceAnna Fali UNQUALIFIED
Antonio P NestleGermanyStephen Shaw NEGOTIATION
Octavia N NickaUnited KingdomStephen Shaw RENEWAL
Nicolas R ShinkoArgentinaIoni Bowcher NEW
Wickens M StockhamArgentinaIvan Magalhaes NEW
Leon D AmigonCanadaOnyama Limba NEGOTIATION
Jones R IturbideAustraliaAnna Fali RENEWAL
Leja G NickaGermanyAsiya Javayant QUALIFIED
Munro C FigeroaFranceIoni Bowcher PROPOSAL
Jeanfrancois V MaletArgentinaAnna Fali QUALIFIED
Misaki W InouyeBrazilElwin Sharvill RENEWAL
David R WaycottSpainXuxue Feng NEW
Maisha E MarrierCanadaXuxue Feng QUALIFIED
Octavia H IturbideItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa T WieserAustraliaXuxue Feng NEW
Arvin B WieserSpainElwin Sharvill UNQUALIFIED
Isabel P OldroydGermanyAnna Fali UNQUALIFIED
Greenwood X ChuiItalyXuxue Feng PROPOSAL
Silvio G NestleJapanBernardo Dominic NEGOTIATION
Maisha Q FlosiRussiaIvan Magalhaes QUALIFIED
Tony N MorascaUnited KingdomStephen Shaw RENEWAL
Ivar C IturbideAustraliaBernardo Dominic UNQUALIFIED
Chavez Q RulapaughIndiaAmy Elsner QUALIFIED
Darci C ButtItalyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues B MaletGermany2025-07-12Commercial Press QUALIFIED46Bernardo Dominic
1001Stacey X KolmetzGermany2025-07-27Dorl, James J Esq QUALIFIED58Onyama Limba
1002Sinclair N CampainGermany2025-07-13Chanay, Jeffrey A Esq QUALIFIED7Xuxue Feng
1003Johnson V TollnerCanada2025-07-16Chemel, James L Cpa PROPOSAL22Amy Elsner
1004Jennifer J PaprockiFrance2025-08-03Morlong Associates UNQUALIFIED55Ioni Bowcher
1005Ivar B NestleIndia2025-08-04Chanay, Jeffrey A Esq UNQUALIFIED97Anna Fali
1006Jefferson E CampainItaly2025-07-16Commercial Press RENEWAL5Asiya Javayant
1007Johnson Q StensethRussia2025-07-31Chanay, Jeffrey A Esq NEW8Amy Elsner
1008Jefferson Z FlosiUnited Kingdom2025-07-12Feiner Bros NEGOTIATION46Stephen Shaw
1009Cody K BowleyGermany2025-07-26Chemel, James L Cpa RENEWAL98Asiya Javayant
1010Cody R PaprockiArgentina2025-07-20Benton, John B Jr PROPOSAL19Ioni Bowcher
1011Silvio X ButtRussia2025-07-22Rousseaux, Michael Esq PROPOSAL84Asiya Javayant
1012Stacey A GlickIndia2025-07-11Benton, John B Jr QUALIFIED20Amy Elsner
1013Ashley D AmigonItaly2025-07-10Chanay, Jeffrey A Esq RENEWAL45Bernardo Dominic
1014Morrow L CaldareraIndia2025-07-28Feiner Bros NEW44Xuxue Feng
1015Isabel J AmigonIndia2025-07-10Printing Dimensions QUALIFIED1Ioni Bowcher
1016Mujtaba Q PoquetteArgentina2025-07-14Feltz Printing Service QUALIFIED8Asiya Javayant
1017Juan L ShinkoArgentina2025-07-31Rangoni Of Florence UNQUALIFIED94Ioni Bowcher
1018Isabel Y OldroydUnited Kingdom2025-07-24King, Christopher A Esq NEGOTIATION60Stephen Shaw
1019Clifford N NestleAustralia2025-07-26Chanay, Jeffrey A Esq RENEWAL64Onyama Limba
1020Murillo K WhobreyRussia2025-07-22Morlong Associates PROPOSAL6Anna Fali
1021Kadeem K NickaIndia2025-07-25Chanay, Jeffrey A Esq UNQUALIFIED6Asiya Javayant
1022Misaki S StockhamBrazil2025-07-18Feltz Printing Service NEGOTIATION86Anna Fali
1023Stacey K ButtGermany2025-08-02Chemel, James L Cpa NEGOTIATION23Asiya Javayant
1024James K MaletUnited Kingdom2025-07-29Morlong Associates PROPOSAL61Amy Elsner
1025Jennifer U ShinkoGermany2025-07-11Chapman, Ross E Esq UNQUALIFIED23Xuxue Feng
1026Emily B MorascaJapan2025-07-22Commercial Press PROPOSAL55Asiya Javayant
1027Deepesh H DarakjyGermany2025-07-30Rangoni Of Florence NEGOTIATION66Anna Fali
1028Aruna H ShinkoAustralia2025-07-12Commercial Press RENEWAL78Ioni Bowcher
1029Munro I RoysterJapan2025-08-03Rangoni Of Florence UNQUALIFIED17Ioni Bowcher
1030Darci E GillianItaly2025-08-04Truhlar And Truhlar Attys QUALIFIED23Elwin Sharvill
1031Jones H VenereFrance2025-07-23Feiner Bros QUALIFIED6Ivan Magalhaes
1032Kadeem J DoeAustralia2025-07-20King, Christopher A Esq RENEWAL51Stephen Shaw
1033Antonio H NickaAustralia2025-07-06Feiner Bros QUALIFIED75Asiya Javayant
1034Jones E MaletFrance2025-07-19Rousseaux, Michael Esq PROPOSAL94Bernardo Dominic
1035Silvio H VocelkaJapan2025-07-13Chapman, Ross E Esq RENEWAL48Ivan Magalhaes
1036Greenwood N SergiSpain2025-07-08Feiner Bros RENEWAL35Asiya Javayant
1037Nicolas O DarakjyItaly2025-07-30Printing Dimensions NEGOTIATION72Bernardo Dominic
1038Greenwood Y PerinAustralia2025-07-28Rousseaux, Michael Esq RENEWAL92Asiya Javayant
1039Octavia C CampainAustralia2025-07-26Rangoni Of Florence PROPOSAL84Ioni Bowcher
1040Darci P MorascaUnited Kingdom2025-07-13Chemel, James L Cpa UNQUALIFIED69Ioni Bowcher
1041Nicolas E VenereFrance2025-07-09Commercial Press QUALIFIED30Xuxue Feng
1042Ashley B InouyeAustralia2025-07-24Commercial Press NEW91Stephen Shaw
1043Stacey A RoysterBrazil2025-07-18Dorl, James J Esq RENEWAL82Amy Elsner
1044Mujtaba R VenereArgentina2025-07-20King, Christopher A Esq QUALIFIED26Anna Fali
1045Jennifer E GillianBrazil2025-07-23Dorl, James J Esq NEGOTIATION42Bernardo Dominic
1046Aruna I GlickSpain2025-07-12Dorl, James J Esq NEGOTIATION22Xuxue Feng
1047Maisha Z WhobreyAustralia2025-07-22Feltz Printing Service QUALIFIED30Anna Fali
1048Aika E PoquetteFrance2025-07-27Chapman, Ross E Esq RENEWAL31Anna Fali
1049Kadeem J WieserJapan2025-07-18Feltz Printing Service RENEWAL77Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aika B MaletUnited KingdomXuxue Feng UNQUALIFIED
Antonio B PoquetteArgentinaIoni Bowcher UNQUALIFIED
Kaitlin Q NestleSpainBernardo Dominic QUALIFIED
Stacey A GauchoSpainAnna Fali UNQUALIFIED
Antonio X GlickArgentinaBernardo Dominic PROPOSAL
Jennifer E ShinkoItalyIoni Bowcher UNQUALIFIED
Tony G GauchoCanadaIvan Magalhaes RENEWAL
Aika W AmigonJapanAmy Elsner RENEWAL
Juan O WaycottAustraliaAnna Fali NEW
Ashley J AlbaresIndiaAsiya Javayant NEGOTIATION
Antonio E InouyeUnited KingdomXuxue Feng UNQUALIFIED
Johnson P SchemmerAustraliaOnyama Limba QUALIFIED
Alejandro C KolmetzArgentinaIvan Magalhaes NEW
Costa T GauchoFranceBernardo Dominic NEW
Costa N BowleyJapanIoni Bowcher NEGOTIATION
Morrow Q GarufiSpainXuxue Feng QUALIFIED
Greenwood O FerenczIndiaAmy Elsner PROPOSAL
Francesco J RutaIndiaIvan Magalhaes UNQUALIFIED
Faith A VocelkaRussiaAsiya Javayant QUALIFIED
Aditya G GarufiGermanyAnna Fali PROPOSAL
Tony N SergiUnited KingdomAnna Fali PROPOSAL
Leja C DilliardJapanXuxue Feng QUALIFIED
Aditya D RoysterJapanAnna Fali NEGOTIATION
Izzy V TollnerFranceStephen Shaw RENEWAL
Deepesh C TollnerBrazilStephen Shaw UNQUALIFIED
Kadeem A IturbideArgentinaIoni Bowcher QUALIFIED
Greenwood J DarakjyGermanyOnyama Limba RENEWAL
Adams L DilliardGermanyElwin Sharvill PROPOSAL
Clifford Z MaletBrazilXuxue Feng RENEWAL
Wickens T CaldareraGermanyStephen Shaw QUALIFIED
Jefferson T PoquetteGermanyAmy Elsner UNQUALIFIED
Ivar U PoquetteAustraliaIvan Magalhaes NEW
Faith G WhobreySpainIvan Magalhaes NEW
Sinclair G BowleyUnited KingdomElwin Sharvill QUALIFIED
Antonio U RimAustraliaAmy Elsner NEW
Ricardo T DilliardItalyBernardo Dominic PROPOSAL
Jones V DarakjyRussiaBernardo Dominic NEGOTIATION
Nicolas B ChuiRussiaAnna Fali RENEWAL
Jones D MacleadJapanOnyama Limba NEW
Jeanfrancois V VenereItalyStephen Shaw RENEWAL
Rodrigues Y BowleyItalyIvan Magalhaes NEGOTIATION
James W MaletRussiaIvan Magalhaes NEW
Nicolas O FerenczSpainStephen Shaw RENEWAL
Jennifer Z PaprockiSpainAmy Elsner QUALIFIED
Mayumi Z SlusarskiGermanyXuxue Feng PROPOSAL
Ashley M StockhamGermanyAsiya Javayant RENEWAL
Tony S DilliardItalyAnna Fali NEGOTIATION
Johnson V DarakjySpainIoni Bowcher NEGOTIATION
Kaitlin H MacleadCanadaIoni Bowcher RENEWAL
Kadeem G GillianAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Murillo V Chui
Mayumi Z Butt
Ricardo Z Ostrosky
Emily A Malet
Misaki T Shinko
Mayumi J Sergi
Maria A Briddick
Ashley Y Royster
Emily O Perin
Darci E Venere
Kadeem T Nicka
Alejandro Z Ferencz
Francesco C Ferencz
Claire W Maclead
Costa K Inouye
Ashley U Figeroa
Mujtaba I Bolognia
Murillo F Glick
David F Gaucho
Silvio N Rim
Deepesh W Garufi
Jennifer Z Gillian
Jennifer M Glick
Jones Y Ferencz
Mujtaba R Waycott
Maria A Saylors
Salvatore K Whobrey
Chavez O Venere
Francesco A Figeroa
Izzy R Ostrosky
Stacey X Darakjy
Aruna A Glick
Mujtaba E Rulapaugh
Leon H Garufi
Kadeem R Caldarera
Jones O Perin
Antonio Q Figeroa
Rodrigues C Caudy
Misaki E Iturbide
Kaitlin A Dilliard
Munro Z Dilliard
Adams X Kusko
Ashley Z Caldarera
Johnson F Nestle
Izzy R Tollner
Kadeem E Tollner
Deepesh Y Nestle
Juan P Poquette
Julie G Albares
Leja D Campain
IdCountryDate
1000Brazil2025-08-01
1001United Kingdom2025-07-12
1002Canada2025-07-23
1003Australia2025-08-02
1004France2025-07-21
1005India2025-07-13
1006Brazil2025-07-20
1007Canada2025-07-11
1008Spain2025-07-18
1009Brazil2025-07-08
1010Italy2025-07-31
1011Canada2025-07-15
1012Italy2025-07-17
1013Spain2025-07-22
1014Italy2025-08-03
1015United Kingdom2025-07-21
1016France2025-08-01
1017Canada2025-07-21
1018Japan2025-07-19
1019Spain2025-07-31
1020United Kingdom2025-07-09
1021Japan2025-07-29
1022Argentina2025-07-20
1023Argentina2025-08-01
1024Japan2025-08-03
1025Brazil2025-07-24
1026Japan2025-07-28
1027Brazil2025-07-15
1028Russia2025-07-09
1029Australia2025-07-20
1030United Kingdom2025-07-12
1031Australia2025-07-28
1032Argentina2025-07-10
1033Canada2025-08-04
1034Russia2025-07-14
1035Canada2025-07-29
1036Brazil2025-07-15
1037Argentina2025-07-19
1038Spain2025-07-19
1039United Kingdom2025-07-10
1040Canada2025-07-26
1041Japan2025-08-04
1042Australia2025-07-29
1043Russia2025-07-11
1044Canada2025-07-13
1045Spain2025-07-19
1046Australia2025-07-21
1047France2025-07-10
1048Argentina2025-07-22
1049Argentina2025-07-22

On-Demand Data

NameIdCountryDate
Antonio V Venere1000India2025-07-31
Julie T Albares1001Germany2025-07-16
Francesco J Maclead1002India2025-07-17
Jeanfrancois E Whobrey1003Australia2025-07-13
Isabel W Marrier1004Canada2025-07-20
Jones U Poquette1005France2025-07-30
Adams G Foller1006Spain2025-07-30
Costa Y Ferencz1007Germany2025-08-01
Aika R Malet1008France2025-07-27
Salvatore S Stockham1009Brazil2025-07-13
Jefferson Y Gaucho1010United Kingdom2025-08-04
Maisha P Inouye1011United Kingdom2025-07-20
Stacey H Marrier1012Brazil2025-07-20
Leja D Marrier1013Germany2025-08-02
Greenwood F Shinko1014Australia2025-07-25
Tony E Chui1015Canada2025-08-03
Emily U Ruta1016Australia2025-07-13
Faith A Paprocki1017United Kingdom2025-07-13
Aruna C Schemmer1018Italy2025-07-25
Sinclair G Flosi1019Spain2025-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna O FerenczFranceAsiya Javayant NEW
Izzy W TollnerAustraliaIvan Magalhaes PROPOSAL
Jefferson O StockhamIndiaAmy Elsner PROPOSAL
Alejandro L MarrierBrazilXuxue Feng RENEWAL
Julie U GlickRussiaOnyama Limba NEW
Francesco R PaprockiItalyAsiya Javayant NEGOTIATION
Alejandro S GarufiUnited KingdomIvan Magalhaes PROPOSAL
Aditya K CaldareraFranceOnyama Limba NEW
Leja U KuskoAustraliaOnyama Limba RENEWAL
Aditya B IturbideAustraliaOnyama Limba RENEWAL
Ashley E VenereArgentinaIvan Magalhaes NEGOTIATION
Rodrigues Q FerenczFranceAmy Elsner QUALIFIED
Jefferson F DilliardCanadaElwin Sharvill QUALIFIED
Emily L MacleadSpainIvan Magalhaes UNQUALIFIED
Smith W FlosiJapanBernardo Dominic QUALIFIED
Faith Q SchemmerSpainIvan Magalhaes RENEWAL
Claire Y MaletArgentinaOnyama Limba NEW
Adams H NickaBrazilBernardo Dominic PROPOSAL
Cody X BriddickCanadaStephen Shaw NEGOTIATION
Faith V DilliardGermanyAnna Fali RENEWAL
Misaki O SchemmerItalyIoni Bowcher UNQUALIFIED
Jeanfrancois M NickaGermanyAmy Elsner NEGOTIATION
Ashley H GauchoSpainOnyama Limba PROPOSAL
Chavez R GauchoFranceXuxue Feng RENEWAL
Leja Y BowleyCanadaBernardo Dominic RENEWAL
Nicolas Y RoysterSpainStephen Shaw UNQUALIFIED
Kaitlin J SlusarskiItalyAmy Elsner PROPOSAL
Francesco P MaletAustraliaElwin Sharvill RENEWAL
Francesco A IturbideUnited KingdomBernardo Dominic QUALIFIED
Arvin M RutaSpainAnna Fali QUALIFIED
Deepesh J RulapaughGermanyAmy Elsner NEGOTIATION
Tony D RimIndiaAmy Elsner QUALIFIED
Mujtaba H SlusarskiGermanyIoni Bowcher NEW
Wickens C MarrierRussiaOnyama Limba UNQUALIFIED
Francesco J ChuiRussiaIoni Bowcher RENEWAL
Ivar C CaldareraIndiaIvan Magalhaes NEGOTIATION
Kaitlin U SlusarskiUnited KingdomBernardo Dominic NEW
Ivar Q ChuiCanadaOnyama Limba UNQUALIFIED
Darci V SlusarskiGermanyBernardo Dominic PROPOSAL
Jefferson Q RutaRussiaElwin Sharvill 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>