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
Juan B CaldareraArgentinaAsiya Javayant NEGOTIATION
Jennifer P MorascaFranceOnyama Limba NEW
Claire I PaprockiUnited KingdomAmy Elsner NEW
Maisha O ChuiGermanyBernardo Dominic NEW
Maisha Q ChuiAustraliaBernardo Dominic PROPOSAL
Deepesh B SchemmerCanadaBernardo Dominic NEGOTIATION
Adams O MorascaGermanyAmy Elsner NEW
Julie W InouyeGermanyAsiya Javayant RENEWAL
Alejandro L WieserItalyStephen Shaw RENEWAL
Silvio M SchemmerRussiaOnyama Limba QUALIFIED
Juan P SaylorsJapanIoni Bowcher QUALIFIED
Julie A WaycottJapanIoni Bowcher NEW
Octavia B PerinCanadaBernardo Dominic NEGOTIATION
Silvio J RulapaughAustraliaIoni Bowcher UNQUALIFIED
Ricardo S AlbaresIndiaAmy Elsner PROPOSAL
Claire W RimFranceIoni Bowcher RENEWAL
Leon P OldroydAustraliaAsiya Javayant QUALIFIED
Faith B NickaBrazilIvan Magalhaes QUALIFIED
Emily Y BriddickJapanAsiya Javayant NEW
Aditya F GlickCanadaIvan Magalhaes UNQUALIFIED
Faith N DilliardArgentinaXuxue Feng UNQUALIFIED
Emily I GillianRussiaAnna Fali PROPOSAL
Alejandro B OstroskyGermanyXuxue Feng UNQUALIFIED
Juan G SlusarskiArgentinaStephen Shaw QUALIFIED
Johnson M ChuiFranceBernardo Dominic QUALIFIED
Smith S BologniaItalyXuxue Feng PROPOSAL
Izzy F MorascaArgentinaAsiya Javayant QUALIFIED
Kaitlin M DarakjyJapanBernardo Dominic NEGOTIATION
Arvin G SaylorsRussiaAnna Fali RENEWAL
Tony V FerenczIndiaIvan Magalhaes RENEWAL
Emily T OldroydFranceOnyama Limba NEW
Ricardo X FollerRussiaBernardo Dominic QUALIFIED
Emily Z MaletGermanyElwin Sharvill UNQUALIFIED
Faith V PoquetteIndiaIoni Bowcher NEGOTIATION
Jones M KuskoArgentinaStephen Shaw UNQUALIFIED
Ricardo I MarrierRussiaXuxue Feng QUALIFIED
Juan M BowleyIndiaIoni Bowcher UNQUALIFIED
Juan F MaletIndiaXuxue Feng RENEWAL
Sinclair N BriddickCanadaIoni Bowcher UNQUALIFIED
Arvin I RutaIndiaAmy Elsner NEGOTIATION
Silvio E RimUnited KingdomAsiya Javayant RENEWAL
Ivar I DoeSpainOnyama Limba QUALIFIED
Juan J RulapaughFranceIoni Bowcher RENEWAL
Mayumi J MacleadRussiaOnyama Limba PROPOSAL
Jennifer M SaylorsBrazilIoni Bowcher NEW
Greenwood F FerenczJapanIvan Magalhaes QUALIFIED
Leja Y WhobreyFranceBernardo Dominic NEGOTIATION
Juan H SlusarskiAustraliaOnyama Limba RENEWAL
Nicolas C RulapaughJapanAsiya Javayant QUALIFIED
Deepesh P OstroskySpainAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Adams A ChuiFranceElwin Sharvill RENEWAL
Tony U DoeRussiaStephen Shaw NEGOTIATION
Stacey Y StockhamAustraliaBernardo Dominic NEW
Maria R SchemmerItalyAmy Elsner NEW
Smith P PaprockiAustraliaXuxue Feng NEGOTIATION
Stacey N GillianCanadaAsiya Javayant RENEWAL
Smith D BriddickUnited KingdomStephen Shaw NEGOTIATION
Cody Z DarakjyCanadaStephen Shaw NEW
Sinclair P NestleJapanAnna Fali UNQUALIFIED
Julie S PoquetteJapanAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan D KolmetzSpain2025-08-10Feltz Printing Service NEGOTIATION43Ioni Bowcher
1001Emily W StensethRussia2025-08-05Morlong Associates NEW41Ioni Bowcher
1002Leja G BologniaCanada2025-08-07Rangoni Of Florence UNQUALIFIED41Elwin Sharvill
1003Salvatore S GarufiJapan2025-08-08Feltz Printing Service QUALIFIED52Anna Fali
1004Greenwood Z SaylorsIndia2025-07-26Feiner Bros NEGOTIATION60Asiya Javayant
1005Aika H ButtIndia2025-08-05Benton, John B Jr NEGOTIATION99Ioni Bowcher
1006Isabel C FerenczRussia2025-08-23Morlong Associates NEW51Onyama Limba
1007Smith B GauchoSpain2025-07-30Benton, John B Jr QUALIFIED24Bernardo Dominic
1008Murillo V WieserCanada2025-08-12Dorl, James J Esq QUALIFIED46Anna Fali
1009Chavez L VocelkaJapan2025-08-03Feltz Printing Service RENEWAL87Ioni Bowcher
1010Ashley I GillianGermany2025-07-29Printing Dimensions QUALIFIED67Amy Elsner
1011Misaki D RulapaughSpain2025-07-30Chemel, James L Cpa QUALIFIED87Ioni Bowcher
1012Wickens S CaudyAustralia2025-07-31Benton, John B Jr QUALIFIED71Stephen Shaw
1013Kadeem S KolmetzJapan2025-08-06Feltz Printing Service NEW40Xuxue Feng
1014Clifford B BologniaBrazil2025-08-14Dorl, James J Esq UNQUALIFIED87Onyama Limba
1015Deepesh A DarakjyCanada2025-08-18Benton, John B Jr QUALIFIED73Onyama Limba
1016Alejandro Z BowleyAustralia2025-08-22Chemel, James L Cpa RENEWAL26Elwin Sharvill
1017Isabel X PerinJapan2025-08-05Rousseaux, Michael Esq NEW0Elwin Sharvill
1018Juan D SlusarskiJapan2025-08-10Chemel, James L Cpa UNQUALIFIED62Asiya Javayant
1019Aruna U NestleUnited Kingdom2025-08-17Chanay, Jeffrey A Esq RENEWAL95Xuxue Feng
1020Maisha M FollerAustralia2025-08-09Chemel, James L Cpa UNQUALIFIED73Onyama Limba
1021Cody N FlosiJapan2025-08-19Chemel, James L Cpa PROPOSAL86Onyama Limba
1022Nicolas N DoeJapan2025-08-11Benton, John B Jr UNQUALIFIED36Stephen Shaw
1023Greenwood U MacleadGermany2025-08-10Benton, John B Jr QUALIFIED30Amy Elsner
1024Smith Z SaylorsSpain2025-08-13Printing Dimensions NEGOTIATION33Bernardo Dominic
1025Adams J DarakjyJapan2025-07-31Chapman, Ross E Esq NEGOTIATION2Elwin Sharvill
1026Arvin V SergiArgentina2025-07-30Chemel, James L Cpa UNQUALIFIED48Stephen Shaw
1027Silvio U MarrierIndia2025-08-22Benton, John B Jr PROPOSAL22Ivan Magalhaes
1028Isabel U MaletRussia2025-08-10Feiner Bros NEW10Onyama Limba
1029Johnson G GlickGermany2025-08-23King, Christopher A Esq QUALIFIED78Amy Elsner
1030Sinclair X SergiCanada2025-08-23Benton, John B Jr NEW51Ivan Magalhaes
1031Aditya O CampainGermany2025-08-09King, Christopher A Esq QUALIFIED32Elwin Sharvill
1032Kadeem Y AmigonArgentina2025-08-20Dorl, James J Esq NEW77Elwin Sharvill
1033Aruna Z PerinFrance2025-08-23Feiner Bros RENEWAL93Xuxue Feng
1034Chavez K FerenczArgentina2025-08-07Printing Dimensions QUALIFIED35Onyama Limba
1035Murillo J WaycottFrance2025-08-21Morlong Associates NEGOTIATION18Bernardo Dominic
1036Julie F InouyeUnited Kingdom2025-08-04Chemel, James L Cpa QUALIFIED62Onyama Limba
1037Kaitlin W PerinArgentina2025-08-06Feltz Printing Service PROPOSAL46Onyama Limba
1038Misaki P MaletIndia2025-07-29King, Christopher A Esq PROPOSAL83Asiya Javayant
1039Aditya G BowleySpain2025-08-03Chanay, Jeffrey A Esq NEW17Amy Elsner
1040Salvatore V ChuiBrazil2025-08-01Feltz Printing Service PROPOSAL38Asiya Javayant
1041Claire C MaletGermany2025-08-14Morlong Associates QUALIFIED97Elwin Sharvill
1042Misaki I ButtJapan2025-08-02Commercial Press RENEWAL75Stephen Shaw
1043Isabel I StensethJapan2025-08-16Feltz Printing Service UNQUALIFIED48Elwin Sharvill
1044Costa Y MaletArgentina2025-08-21Chemel, James L Cpa PROPOSAL39Onyama Limba
1045Stacey K CampainArgentina2025-08-10Truhlar And Truhlar Attys NEGOTIATION6Elwin Sharvill
1046Jefferson K MaletAustralia2025-07-30King, Christopher A Esq NEW17Ivan Magalhaes
1047Ashley I GauchoCanada2025-08-22Chanay, Jeffrey A Esq UNQUALIFIED69Amy Elsner
1048Stacey X VocelkaArgentina2025-08-03Benton, John B Jr NEGOTIATION77Onyama Limba
1049Kaitlin E RoysterCanada2025-08-09Chemel, James L Cpa PROPOSAL58Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Isabel I ChuiFranceAsiya Javayant NEW
Arvin X PaprockiRussiaAsiya Javayant PROPOSAL
Wickens G AlbaresItalyOnyama Limba RENEWAL
Claire I TollnerGermanyXuxue Feng QUALIFIED
Aika H OldroydGermanyIvan Magalhaes PROPOSAL
Chavez V GlickJapanBernardo Dominic RENEWAL
Kadeem D ShinkoCanadaAmy Elsner QUALIFIED
Munro S PoquetteJapanBernardo Dominic QUALIFIED
Leja N FlosiArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois T CaldareraArgentinaIvan Magalhaes RENEWAL
Ivar V FigeroaItalyXuxue Feng PROPOSAL
Nicolas I RoysterBrazilAnna Fali NEW
Octavia E GauchoJapanAsiya Javayant NEGOTIATION
Darci V BologniaRussiaAnna Fali QUALIFIED
Alejandro O KuskoAustraliaAsiya Javayant UNQUALIFIED
Jennifer I CaldareraSpainStephen Shaw UNQUALIFIED
Kadeem H OldroydArgentinaAmy Elsner UNQUALIFIED
Smith C AlbaresItalyAsiya Javayant UNQUALIFIED
Mujtaba Q FerenczBrazilXuxue Feng NEW
Cody B RutaItalyBernardo Dominic NEW
Deepesh F CaudySpainBernardo Dominic PROPOSAL
Leon B InouyeIndiaStephen Shaw UNQUALIFIED
David P RulapaughArgentinaIvan Magalhaes PROPOSAL
Murillo S MorascaAustraliaAnna Fali QUALIFIED
Cody I PoquetteIndiaIvan Magalhaes NEW
Aruna Q AlbaresIndiaXuxue Feng QUALIFIED
Wickens O StensethSpainAmy Elsner NEW
Jones A ChuiSpainOnyama Limba PROPOSAL
Alejandro S PerinAustraliaAsiya Javayant QUALIFIED
Jones Q StensethBrazilStephen Shaw NEGOTIATION
Juan I OstroskyRussiaElwin Sharvill PROPOSAL
Octavia Q KolmetzAustraliaStephen Shaw PROPOSAL
Aruna P AlbaresSpainOnyama Limba UNQUALIFIED
Misaki W DarakjyGermanyOnyama Limba PROPOSAL
Salvatore W CampainCanadaBernardo Dominic NEW
Ivar P MaletSpainAmy Elsner UNQUALIFIED
Mujtaba F RoysterRussiaIvan Magalhaes NEW
Darci Z GauchoArgentinaBernardo Dominic RENEWAL
Jones Y InouyeRussiaIvan Magalhaes NEW
Aruna P PaprockiRussiaElwin Sharvill NEW
Costa Q StensethJapanElwin Sharvill RENEWAL
Stacey E VocelkaCanadaOnyama Limba NEGOTIATION
Misaki T GarufiFranceIvan Magalhaes PROPOSAL
Munro E BowleyGermanyAsiya Javayant UNQUALIFIED
Morrow H FollerBrazilIoni Bowcher NEW
Aika G FigeroaJapanStephen Shaw UNQUALIFIED
Maisha D KuskoAustraliaIvan Magalhaes QUALIFIED
Adams H AlbaresUnited KingdomStephen Shaw QUALIFIED
Mayumi L SchemmerGermanyElwin Sharvill NEW
Silvio V SchemmerIndiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Stacey N Gaucho
Stacey D Ferencz
Claire D Oldroyd
Maisha S Perin
Deepesh G Morasca
Maisha T Nestle
Kadeem T Bolognia
Aruna U Doe
Deepesh Z Tollner
Cody B Poquette
Aditya E Rulapaugh
Jones Q Gaucho
Octavia Z Malet
Nicolas G Poquette
Antonio K Ostrosky
Aditya Y Perin
Silvio Z Perin
Antonio S Royster
Arvin C Poquette
Ricardo J Morasca
Nicolas F Sergi
Salvatore Z Wieser
Tony O Doe
Juan R Inouye
Antonio K Doe
Antonio T Caldarera
Aruna M Butt
Deepesh C Figeroa
Maisha I Waycott
David F Gaucho
Wickens O Foller
Octavia S Darakjy
Arvin N Ruta
Julie T Rim
Misaki D Iturbide
Munro Z Iturbide
Francesco Q Schemmer
Aruna J Schemmer
Juan E Wieser
Julie O Morasca
Rodrigues B Iturbide
Aditya O Ruta
Aditya F Paprocki
Alejandro J Whobrey
Chavez X Whobrey
Aditya W Chui
Munro K Marrier
Juan F Inouye
Silvio W Vocelka
Antonio R Rulapaugh
IdCountryDate
1000Japan2025-08-22
1001United Kingdom2025-08-16
1002France2025-08-02
1003United Kingdom2025-08-15
1004Australia2025-08-19
1005India2025-07-31
1006United Kingdom2025-07-25
1007Argentina2025-08-10
1008Russia2025-08-04
1009Japan2025-08-01
1010Italy2025-08-19
1011Germany2025-08-12
1012Canada2025-08-07
1013Argentina2025-08-20
1014Russia2025-08-16
1015Brazil2025-08-22
1016India2025-08-20
1017India2025-08-03
1018Brazil2025-08-09
1019Russia2025-08-05
1020Argentina2025-07-27
1021Germany2025-07-25
1022Brazil2025-07-31
1023Spain2025-08-06
1024India2025-08-07
1025Brazil2025-07-27
1026Australia2025-08-03
1027United Kingdom2025-07-25
1028Canada2025-07-29
1029Germany2025-08-14
1030Italy2025-08-01
1031Argentina2025-08-08
1032Canada2025-08-18
1033Australia2025-08-06
1034Brazil2025-08-04
1035Argentina2025-08-01
1036Canada2025-08-09
1037Canada2025-08-21
1038Canada2025-08-06
1039Brazil2025-07-31
1040Argentina2025-08-09
1041Canada2025-08-04
1042Japan2025-07-25
1043Canada2025-07-29
1044Russia2025-08-19
1045Australia2025-08-23
1046Germany2025-08-16
1047Japan2025-08-05
1048United Kingdom2025-08-11
1049Japan2025-08-06

On-Demand Data

NameIdCountryDate
David X Garufi1000Germany2025-07-25
Silvio N Morasca1001France2025-08-18
Emily B Vocelka1002Canada2025-08-13
Munro K Kolmetz1003Germany2025-07-28
Adams T Bolognia1004United Kingdom2025-07-27
Tony W Chui1005Japan2025-08-04
Greenwood E Nicka1006Japan2025-08-04
Aditya K Royster1007Canada2025-07-27
Adams F Iturbide1008Italy2025-08-03
Izzy V Campain1009Canada2025-07-25
Greenwood R Maclead1010France2025-07-27
Johnson W Wieser1011Canada2025-08-08
Juan H Bolognia1012Argentina2025-08-01
Darci S Ruta1013France2025-08-23
Aika U Oldroyd1014Russia2025-07-28
Mayumi Q Caldarera1015India2025-08-22
Clifford X Inouye1016Brazil2025-08-08
Nicolas A Schemmer1017Canada2025-07-25
Stacey H Bolognia1018India2025-08-22
Cody M Foller1019Italy2025-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey V WieserCanadaAnna Fali NEW
Arvin D DoeFranceBernardo Dominic UNQUALIFIED
Leja T MaletBrazilXuxue Feng RENEWAL
Salvatore P RulapaughItalyIoni Bowcher PROPOSAL
Arvin L GarufiItalyAnna Fali PROPOSAL
Emily V DarakjyFranceXuxue Feng NEGOTIATION
Leja B FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Jones K RimAustraliaIvan Magalhaes UNQUALIFIED
Antonio R FollerUnited KingdomStephen Shaw PROPOSAL
Smith W DarakjyCanadaAnna Fali RENEWAL
Mujtaba H VocelkaItalyXuxue Feng NEGOTIATION
David U PaprockiUnited KingdomBernardo Dominic PROPOSAL
Maisha D RulapaughArgentinaIoni Bowcher NEW
Adams F DarakjyRussiaXuxue Feng NEGOTIATION
Emily F WieserFranceOnyama Limba RENEWAL
James B InouyeRussiaElwin Sharvill RENEWAL
Jennifer V KolmetzGermanyAsiya Javayant QUALIFIED
Salvatore K GarufiArgentinaXuxue Feng UNQUALIFIED
Costa K FlosiArgentinaOnyama Limba NEGOTIATION
Antonio Z GlickBrazilXuxue Feng RENEWAL
Smith Q RoysterFranceElwin Sharvill PROPOSAL
Rodrigues U KuskoGermanyAmy Elsner RENEWAL
Jefferson K DarakjyCanadaAmy Elsner RENEWAL
Julie C BriddickArgentinaElwin Sharvill PROPOSAL
Kadeem P GauchoFranceElwin Sharvill RENEWAL
Mayumi B CaldareraIndiaIvan Magalhaes RENEWAL
Maisha W GarufiJapanAsiya Javayant RENEWAL
Deepesh X VenereCanadaIoni Bowcher RENEWAL
Clifford S GlickItalyOnyama Limba PROPOSAL
Julie E FlosiAustraliaStephen Shaw QUALIFIED
Juan S DarakjySpainElwin Sharvill PROPOSAL
Rodrigues M FigeroaArgentinaAsiya Javayant NEGOTIATION
Adams O InouyeIndiaOnyama Limba QUALIFIED
Isabel K MorascaUnited KingdomStephen Shaw QUALIFIED
Johnson X ShinkoFranceIvan Magalhaes PROPOSAL
Octavia T IturbideRussiaBernardo Dominic NEW
Juan Z FollerFranceElwin Sharvill QUALIFIED
Nicolas I GauchoItalyAnna Fali PROPOSAL
Morrow H OstroskyAustraliaAmy Elsner RENEWAL
Murillo K StensethRussiaElwin Sharvill UNQUALIFIED

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