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
Ricardo W SlusarskiArgentinaElwin Sharvill NEW
Ashley K FigeroaAustraliaStephen Shaw RENEWAL
Isabel K PerinGermanyElwin Sharvill NEW
Misaki S RulapaughUnited KingdomAmy Elsner RENEWAL
Munro L GauchoSpainBernardo Dominic NEGOTIATION
Clifford H FlosiSpainStephen Shaw NEW
Faith G BologniaItalyIvan Magalhaes QUALIFIED
Alejandro C VenereArgentinaAnna Fali RENEWAL
Ricardo B StensethAustraliaAnna Fali QUALIFIED
Nicolas M WieserItalyIoni Bowcher RENEWAL
Aditya Y AmigonAustraliaIvan Magalhaes NEW
Wickens Z WieserSpainBernardo Dominic UNQUALIFIED
Izzy J SaylorsBrazilElwin Sharvill UNQUALIFIED
Maisha Q DarakjyBrazilAnna Fali UNQUALIFIED
Francesco Y SergiGermanyBernardo Dominic UNQUALIFIED
Isabel P RoysterJapanElwin Sharvill NEW
Ashley M CampainSpainBernardo Dominic NEGOTIATION
Francesco Z KolmetzArgentinaOnyama Limba UNQUALIFIED
Aruna K ButtUnited KingdomIoni Bowcher RENEWAL
Stacey W SlusarskiJapanIvan Magalhaes NEGOTIATION
Jefferson A PoquetteBrazilElwin Sharvill QUALIFIED
Jefferson X RimItalyElwin Sharvill RENEWAL
Emily N ButtGermanyAmy Elsner QUALIFIED
Antonio C MacleadIndiaAmy Elsner UNQUALIFIED
Sinclair F SaylorsFranceAsiya Javayant PROPOSAL
Mayumi H GauchoGermanyAsiya Javayant NEW
Salvatore N MarrierJapanIoni Bowcher UNQUALIFIED
Francesco P MaletJapanStephen Shaw UNQUALIFIED
Mujtaba R WieserSpainElwin Sharvill UNQUALIFIED
Rodrigues A RutaRussiaElwin Sharvill RENEWAL
Aruna E DilliardFranceOnyama Limba QUALIFIED
Misaki H BowleyAustraliaStephen Shaw RENEWAL
Faith B PaprockiFranceAnna Fali QUALIFIED
Mayumi J PerinGermanyStephen Shaw NEW
Alejandro M FigeroaArgentinaOnyama Limba NEGOTIATION
Leja Q RulapaughAustraliaAnna Fali RENEWAL
Stacey I KolmetzSpainIoni Bowcher UNQUALIFIED
Claire V MaletUnited KingdomBernardo Dominic NEW
Adams Q StensethIndiaAmy Elsner RENEWAL
Deepesh V OstroskyCanadaIoni Bowcher UNQUALIFIED
Wickens B IturbideCanadaOnyama Limba NEGOTIATION
Leon C MarrierIndiaAmy Elsner NEW
Munro E VocelkaGermanyXuxue Feng QUALIFIED
Jennifer B NickaJapanAsiya Javayant PROPOSAL
Johnson W KuskoBrazilIoni Bowcher NEW
Ivar J PaprockiBrazilAmy Elsner NEGOTIATION
Kaitlin G IturbideArgentinaStephen Shaw NEW
Stacey L SergiArgentinaAnna Fali NEGOTIATION
Munro D DarakjyJapanAnna Fali NEGOTIATION
David N RoysterJapanElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro Z VenereCanadaElwin Sharvill NEGOTIATION
Smith B BowleyUnited KingdomIoni Bowcher PROPOSAL
Mayumi X MorascaAustraliaBernardo Dominic NEGOTIATION
Alejandro Y DarakjyIndiaAnna Fali RENEWAL
Clifford F ShinkoGermanyStephen Shaw RENEWAL
Aditya H PaprockiArgentinaAnna Fali NEW
Nicolas B RulapaughUnited KingdomOnyama Limba NEW
Aditya R GillianAustraliaIvan Magalhaes NEW
Salvatore T RimBrazilAsiya Javayant UNQUALIFIED
Maisha M StensethItalyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams R MaletItaly2025-10-12Morlong Associates PROPOSAL0Amy Elsner
1001Nicolas F CaudyJapan2025-09-25Morlong Associates QUALIFIED97Bernardo Dominic
1002David A RutaFrance2025-09-29Printing Dimensions NEW75Ivan Magalhaes
1003Johnson S PerinArgentina2025-10-06Feiner Bros NEW74Xuxue Feng
1004Aika X TollnerItaly2025-10-15Benton, John B Jr NEW70Stephen Shaw
1005Maisha I ButtIndia2025-09-26Rousseaux, Michael Esq QUALIFIED63Onyama Limba
1006Aditya T TollnerIndia2025-10-19King, Christopher A Esq RENEWAL18Bernardo Dominic
1007Kaitlin F OstroskyBrazil2025-09-26Truhlar And Truhlar Attys PROPOSAL77Amy Elsner
1008Alejandro D MorascaJapan2025-09-28Feiner Bros NEGOTIATION44Amy Elsner
1009Chavez D NickaFrance2025-10-06Dorl, James J Esq QUALIFIED53Ioni Bowcher
1010Aditya I GlickItaly2025-10-19Chanay, Jeffrey A Esq RENEWAL65Anna Fali
1011Darci B CampainBrazil2025-10-17Chapman, Ross E Esq PROPOSAL31Anna Fali
1012Julie F FerenczJapan2025-10-10Chanay, Jeffrey A Esq QUALIFIED16Stephen Shaw
1013Julie X DoeRussia2025-10-08Feiner Bros QUALIFIED40Anna Fali
1014Juan Q DilliardRussia2025-09-29Printing Dimensions NEGOTIATION74Xuxue Feng
1015Ashley Y KuskoJapan2025-09-21Printing Dimensions NEW27Anna Fali
1016Antonio P KuskoAustralia2025-09-27Chapman, Ross E Esq PROPOSAL47Stephen Shaw
1017Julie Y ChuiUnited Kingdom2025-10-06Truhlar And Truhlar Attys NEW16Bernardo Dominic
1018Alejandro D OstroskyUnited Kingdom2025-09-27Morlong Associates NEGOTIATION88Asiya Javayant
1019Deepesh Q BriddickRussia2025-10-19Feiner Bros PROPOSAL98Ivan Magalhaes
1020Darci H KuskoBrazil2025-09-22Truhlar And Truhlar Attys RENEWAL40Stephen Shaw
1021Izzy U DoeBrazil2025-10-10Feltz Printing Service RENEWAL11Bernardo Dominic
1022Murillo C StensethAustralia2025-10-01Chanay, Jeffrey A Esq RENEWAL1Anna Fali
1023Costa X StensethIndia2025-10-15Buckley Miller Wright UNQUALIFIED72Anna Fali
1024Chavez F VocelkaRussia2025-10-15Chemel, James L Cpa NEW55Onyama Limba
1025Jones I NickaJapan2025-10-02King, Christopher A Esq NEGOTIATION39Ioni Bowcher
1026David X BowleySpain2025-10-19Feiner Bros NEW86Onyama Limba
1027Faith U DilliardArgentina2025-09-24Rousseaux, Michael Esq NEW51Anna Fali
1028Izzy U BologniaBrazil2025-10-08Rangoni Of Florence NEW48Ivan Magalhaes
1029Deepesh Q BriddickCanada2025-10-09King, Christopher A Esq NEW41Ioni Bowcher
1030Jefferson V ChuiItaly2025-10-19Commercial Press PROPOSAL17Anna Fali
1031Faith J ButtJapan2025-10-18King, Christopher A Esq PROPOSAL73Onyama Limba
1032Costa Q BologniaBrazil2025-10-08Rousseaux, Michael Esq NEGOTIATION40Elwin Sharvill
1033David H CaldareraRussia2025-09-28Truhlar And Truhlar Attys RENEWAL22Anna Fali
1034Aruna W MaletCanada2025-10-15Rangoni Of Florence QUALIFIED41Stephen Shaw
1035Jeanfrancois W CaldareraJapan2025-09-23Morlong Associates QUALIFIED16Amy Elsner
1036Clifford J CampainArgentina2025-10-12Chemel, James L Cpa UNQUALIFIED5Ioni Bowcher
1037David J CaldareraAustralia2025-10-08Dorl, James J Esq NEGOTIATION23Stephen Shaw
1038Jefferson U StensethAustralia2025-10-04Dorl, James J Esq UNQUALIFIED33Bernardo Dominic
1039Ashley Q CampainAustralia2025-09-27Feiner Bros PROPOSAL99Elwin Sharvill
1040Nicolas W MaletFrance2025-09-22Benton, John B Jr NEGOTIATION61Ioni Bowcher
1041Izzy Q WieserIndia2025-10-20Chemel, James L Cpa UNQUALIFIED30Onyama Limba
1042Mayumi C NickaIndia2025-09-21Chapman, Ross E Esq NEW13Stephen Shaw
1043Kaitlin K MaletIndia2025-10-01Feiner Bros NEGOTIATION92Stephen Shaw
1044Mayumi S FollerBrazil2025-10-08King, Christopher A Esq PROPOSAL90Onyama Limba
1045Smith Y RimRussia2025-10-09Dorl, James J Esq RENEWAL97Stephen Shaw
1046Kaitlin E RutaBrazil2025-10-15Commercial Press QUALIFIED28Amy Elsner
1047Deepesh S StensethAustralia2025-09-30Rangoni Of Florence NEGOTIATION36Amy Elsner
1048Morrow I MaletCanada2025-10-09Truhlar And Truhlar Attys QUALIFIED60Anna Fali
1049Cody V StensethAustralia2025-10-06King, Christopher A Esq QUALIFIED41Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan I KuskoIndiaOnyama Limba NEGOTIATION
Darci N WhobreySpainElwin Sharvill UNQUALIFIED
Morrow S DilliardItalyElwin Sharvill NEW
Nicolas U RimGermanyAnna Fali RENEWAL
Kaitlin R MaletItalyIoni Bowcher NEW
Costa O NestleRussiaElwin Sharvill NEGOTIATION
Costa P NickaRussiaStephen Shaw QUALIFIED
Aika C AlbaresRussiaElwin Sharvill PROPOSAL
Aika F MorascaItalyBernardo Dominic UNQUALIFIED
Claire N GauchoIndiaXuxue Feng UNQUALIFIED
Ivar D VenereGermanyElwin Sharvill NEW
Murillo X SaylorsIndiaOnyama Limba RENEWAL
Kadeem F StensethAustraliaOnyama Limba QUALIFIED
Emily N MaletIndiaXuxue Feng RENEWAL
Julie U RimCanadaElwin Sharvill PROPOSAL
Leon I GlickJapanIvan Magalhaes UNQUALIFIED
Juan E FollerCanadaStephen Shaw RENEWAL
Munro I RutaBrazilIoni Bowcher QUALIFIED
Adams O IturbideSpainOnyama Limba QUALIFIED
Alejandro H CaldareraItalyAmy Elsner NEW
Kadeem L DoeIndiaAnna Fali UNQUALIFIED
Rodrigues J SergiRussiaAsiya Javayant QUALIFIED
Ricardo T ChuiJapanAnna Fali PROPOSAL
Isabel S FigeroaRussiaAsiya Javayant PROPOSAL
Smith M GlickFranceAnna Fali NEGOTIATION
Chavez J GarufiGermanyIvan Magalhaes QUALIFIED
Costa C BriddickRussiaElwin Sharvill NEW
Sinclair D SchemmerSpainAsiya Javayant NEGOTIATION
Julie A IturbideArgentinaIvan Magalhaes QUALIFIED
Ivar X BologniaUnited KingdomXuxue Feng RENEWAL
Emily Y GarufiFranceBernardo Dominic UNQUALIFIED
Salvatore B KolmetzItalyOnyama Limba QUALIFIED
Adams G OstroskyFranceAmy Elsner NEW
Kadeem E NickaRussiaStephen Shaw PROPOSAL
Juan P OldroydUnited KingdomBernardo Dominic QUALIFIED
Claire Q DoeFranceXuxue Feng UNQUALIFIED
Darci B RoysterBrazilAnna Fali QUALIFIED
Stacey E NickaRussiaXuxue Feng UNQUALIFIED
Munro G PoquetteCanadaAnna Fali PROPOSAL
Aruna M GauchoGermanyIoni Bowcher RENEWAL
Salvatore C NestleFranceOnyama Limba QUALIFIED
James X FigeroaGermanyXuxue Feng UNQUALIFIED
Misaki Z SlusarskiIndiaIoni Bowcher NEW
Ivar U SchemmerJapanAsiya Javayant RENEWAL
Arvin K StensethItalyAsiya Javayant RENEWAL
Clifford H ShinkoArgentinaElwin Sharvill NEGOTIATION
Munro H CampainItalyBernardo Dominic NEGOTIATION
Francesco I NestleArgentinaIvan Magalhaes PROPOSAL
Tony R RulapaughSpainOnyama Limba QUALIFIED
Mujtaba F FerenczAustraliaAsiya Javayant RENEWAL
Frozen Columns
Name
Julie N Nestle
Adams X Schemmer
Smith U Dilliard
Jones S Morasca
Darci Q Perin
Aruna K Caldarera
Tony Q Caudy
Francesco X Rulapaugh
Octavia C Garufi
Ashley C Paprocki
Aruna F Gillian
Leja J Perin
Smith B Whobrey
Munro S Flosi
Johnson T Foller
Wickens B Albares
Morrow Q Briddick
Alejandro D Caldarera
Murillo A Campain
Morrow X Vocelka
Morrow L Paprocki
Ivar U Foller
Rodrigues J Kolmetz
Stacey I Tollner
Alejandro W Campain
Claire T Iturbide
Clifford P Butt
Leja Q Flosi
Leon P Tollner
Emily O Saylors
Francesco Q Doe
Leon S Flosi
Alejandro X Rim
Juan Y Paprocki
Munro S Rulapaugh
Faith R Iturbide
Alejandro U Gaucho
Costa A Ruta
Tony C Amigon
Kadeem D Malet
Maisha C Perin
Faith L Briddick
Sinclair S Perin
Ivar T Doe
Chavez F Darakjy
Jones C Inouye
Ivar M Bowley
Antonio K Paprocki
Clifford J Campain
Aika A Marrier
IdCountryDate
1000India2025-10-06
1001India2025-10-08
1002Argentina2025-09-26
1003Spain2025-09-22
1004United Kingdom2025-09-21
1005France2025-09-27
1006Japan2025-09-24
1007Brazil2025-10-01
1008India2025-10-01
1009Brazil2025-10-17
1010Brazil2025-10-19
1011India2025-10-14
1012India2025-10-10
1013Spain2025-10-08
1014Canada2025-09-26
1015France2025-10-16
1016Australia2025-10-18
1017Germany2025-10-04
1018Canada2025-10-17
1019Australia2025-10-10
1020Russia2025-09-21
1021Argentina2025-09-24
1022Germany2025-10-12
1023Japan2025-09-27
1024Brazil2025-10-10
1025France2025-10-18
1026Argentina2025-09-22
1027France2025-10-05
1028Argentina2025-10-15
1029Australia2025-10-07
1030Australia2025-10-03
1031Italy2025-09-24
1032Australia2025-10-02
1033Germany2025-09-30
1034Australia2025-09-23
1035Argentina2025-10-12
1036Japan2025-10-18
1037Argentina2025-10-02
1038Argentina2025-10-16
1039Russia2025-10-09
1040Russia2025-10-17
1041Brazil2025-09-28
1042Spain2025-09-23
1043Argentina2025-09-30
1044Australia2025-10-01
1045Germany2025-10-09
1046Spain2025-09-29
1047Japan2025-09-26
1048France2025-10-08
1049Italy2025-09-26

On-Demand Data

NameIdCountryDate
Chavez I Poquette1000India2025-09-30
Aruna H Gaucho1001Russia2025-10-11
Costa D Marrier1002Germany2025-10-13
Kaitlin E Gillian1003India2025-10-12
David W Schemmer1004Russia2025-09-25
Rodrigues D Rulapaugh1005Spain2025-10-07
Arvin B Nicka1006Japan2025-10-14
Chavez W Kusko1007Russia2025-10-15
Clifford J Campain1008Argentina2025-10-20
Cody T Malet1009Italy2025-10-06
Maria Y Kusko1010France2025-09-21
Nicolas E Schemmer1011India2025-10-01
Greenwood T Wieser1012Japan2025-09-25
Sinclair H Whobrey1013Spain2025-10-12
Costa Y Doe1014India2025-10-09
Mujtaba H Ostrosky1015Spain2025-10-16
Johnson N Iturbide1016Australia2025-09-30
Isabel O Paprocki1017Australia2025-09-23
Smith I Stenseth1018Japan2025-10-01
Murillo S Albares1019Spain2025-09-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody Z AlbaresAustraliaIvan Magalhaes RENEWAL
Faith O BriddickJapanAsiya Javayant RENEWAL
Ricardo H GarufiArgentinaAmy Elsner NEW
Aditya P OldroydGermanyIvan Magalhaes QUALIFIED
Costa R BowleyJapanXuxue Feng PROPOSAL
Stacey O GillianUnited KingdomAnna Fali UNQUALIFIED
Darci I CaldareraJapanBernardo Dominic QUALIFIED
Stacey C GauchoBrazilIoni Bowcher PROPOSAL
Juan V FlosiCanadaIoni Bowcher NEGOTIATION
Ashley W MarrierJapanXuxue Feng QUALIFIED
Leon F VenereArgentinaAmy Elsner NEW
Smith N GlickCanadaIvan Magalhaes RENEWAL
Jennifer W CaldareraItalyStephen Shaw UNQUALIFIED
Tony V BowleyUnited KingdomAmy Elsner RENEWAL
Maria Q CaldareraJapanAmy Elsner NEGOTIATION
Misaki T RimJapanXuxue Feng UNQUALIFIED
Isabel O MarrierAustraliaBernardo Dominic PROPOSAL
James P WieserUnited KingdomBernardo Dominic NEGOTIATION
Faith O PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Misaki J FerenczRussiaAsiya Javayant NEW
Stacey O MaletIndiaIvan Magalhaes NEW
Aditya H VenereFranceIvan Magalhaes NEGOTIATION
Mayumi U CaudyArgentinaAsiya Javayant UNQUALIFIED
Faith F MaletAustraliaStephen Shaw QUALIFIED
Juan I RutaArgentinaOnyama Limba UNQUALIFIED
Aruna C CampainGermanyOnyama Limba QUALIFIED
Adams C InouyeIndiaAmy Elsner NEW
Antonio C SlusarskiUnited KingdomStephen Shaw NEGOTIATION
Aditya O GauchoAustraliaAsiya Javayant RENEWAL
Jennifer O RimArgentinaBernardo Dominic NEW
Claire H GarufiSpainOnyama Limba UNQUALIFIED
Jones D RutaCanadaIvan Magalhaes PROPOSAL
Salvatore X BriddickSpainBernardo Dominic UNQUALIFIED
Nicolas N RimUnited KingdomAnna Fali PROPOSAL
Izzy V KolmetzSpainXuxue Feng RENEWAL
Ivar Z FollerGermanyAsiya Javayant NEGOTIATION
Claire C FerenczGermanyAmy Elsner UNQUALIFIED
Adams T NickaFranceAsiya Javayant RENEWAL
Jones U TollnerRussiaElwin Sharvill NEGOTIATION
Jennifer H MacleadItalyBernardo Dominic QUALIFIED

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