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 M WhobreyBrazilStephen Shaw PROPOSAL
Darci R FerenczFranceStephen Shaw NEGOTIATION
Aika R FigeroaRussiaAnna Fali NEGOTIATION
Murillo K OldroydBrazilXuxue Feng QUALIFIED
Silvio C WhobreyGermanyIoni Bowcher UNQUALIFIED
Wickens O KuskoJapanStephen Shaw RENEWAL
Claire A MaletIndiaElwin Sharvill NEGOTIATION
Jennifer D DoeArgentinaOnyama Limba NEW
Rodrigues Q StensethCanadaAnna Fali NEW
Francesco A StensethIndiaAmy Elsner UNQUALIFIED
Claire R StockhamFranceAnna Fali PROPOSAL
Chavez J CampainUnited KingdomAmy Elsner NEW
Chavez C NickaAustraliaIvan Magalhaes QUALIFIED
Aika N MacleadJapanElwin Sharvill UNQUALIFIED
Maisha C WieserRussiaAmy Elsner RENEWAL
Deepesh P AlbaresAustraliaXuxue Feng PROPOSAL
Sinclair W MaletSpainBernardo Dominic QUALIFIED
Smith Z BriddickAustraliaAsiya Javayant PROPOSAL
Faith R MacleadSpainOnyama Limba QUALIFIED
Francesco A IturbideJapanIvan Magalhaes RENEWAL
Stacey T WieserBrazilBernardo Dominic NEW
Greenwood Q OldroydRussiaXuxue Feng UNQUALIFIED
Silvio V CampainGermanyAmy Elsner QUALIFIED
Maria A CampainGermanyStephen Shaw QUALIFIED
Jeanfrancois S TollnerItalyElwin Sharvill RENEWAL
Tony V FollerRussiaBernardo Dominic QUALIFIED
Alejandro D MaletJapanAsiya Javayant RENEWAL
Mujtaba Y DoeJapanXuxue Feng UNQUALIFIED
Juan G GarufiIndiaBernardo Dominic PROPOSAL
Ashley J MacleadFranceBernardo Dominic NEGOTIATION
Clifford W SlusarskiBrazilIvan Magalhaes QUALIFIED
Isabel Z WaycottRussiaElwin Sharvill NEW
Aika R RulapaughArgentinaAnna Fali UNQUALIFIED
Stacey S OldroydAustraliaStephen Shaw UNQUALIFIED
Mujtaba N ButtItalyIoni Bowcher QUALIFIED
David M RimSpainOnyama Limba QUALIFIED
Munro I PerinJapanElwin Sharvill RENEWAL
Aruna K GauchoArgentinaIvan Magalhaes PROPOSAL
Aika J FigeroaGermanyIvan Magalhaes UNQUALIFIED
Aditya Q MacleadFranceAnna Fali UNQUALIFIED
Ivar U BowleyAustraliaAmy Elsner NEGOTIATION
Murillo I StensethArgentinaElwin Sharvill NEW
Cody D DoeItalyXuxue Feng RENEWAL
Claire Y SchemmerAustraliaElwin Sharvill UNQUALIFIED
Leon C MorascaCanadaXuxue Feng NEGOTIATION
Rodrigues K NickaItalyAmy Elsner RENEWAL
Silvio D FollerSpainXuxue Feng NEGOTIATION
Antonio A ChuiRussiaAsiya Javayant QUALIFIED
Leja W CaldareraSpainElwin Sharvill UNQUALIFIED
Ricardo A RimAustraliaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin U MaletSpainBernardo Dominic UNQUALIFIED
Morrow J DoeSpainStephen Shaw QUALIFIED
Rodrigues S MorascaAustraliaAsiya Javayant RENEWAL
Murillo T StensethAustraliaBernardo Dominic RENEWAL
Chavez G BriddickItalyAmy Elsner UNQUALIFIED
Kaitlin M PoquetteGermanyBernardo Dominic RENEWAL
Aika L MarrierUnited KingdomOnyama Limba QUALIFIED
Adams G PoquetteJapanStephen Shaw QUALIFIED
Misaki A RulapaughUnited KingdomElwin Sharvill NEW
Octavia M ChuiArgentinaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez D OstroskyItaly2025-08-28Chemel, James L Cpa UNQUALIFIED19Anna Fali
1001Clifford Q PoquetteJapan2025-08-24Benton, John B Jr NEGOTIATION13Anna Fali
1002Costa H WieserAustralia2025-08-28Rousseaux, Michael Esq QUALIFIED52Ivan Magalhaes
1003Maisha S VenereItaly2025-09-02Chanay, Jeffrey A Esq NEW42Stephen Shaw
1004Cody W SaylorsSpain2025-09-04Feltz Printing Service QUALIFIED12Elwin Sharvill
1005Ricardo E CampainItaly2025-08-28Commercial Press NEW95Asiya Javayant
1006Aika M FollerIndia2025-08-13Dorl, James J Esq NEW22Amy Elsner
1007Octavia Y RimArgentina2025-08-14Truhlar And Truhlar Attys PROPOSAL43Asiya Javayant
1008Izzy A VocelkaGermany2025-08-19Chanay, Jeffrey A Esq NEW82Amy Elsner
1009Salvatore D InouyeCanada2025-08-14Chemel, James L Cpa PROPOSAL55Onyama Limba
1010Misaki O DarakjyAustralia2025-09-02Buckley Miller Wright NEW74Onyama Limba
1011Maisha U OstroskyGermany2025-09-07Truhlar And Truhlar Attys RENEWAL92Amy Elsner
1012Jeanfrancois G BowleyGermany2025-08-18Chapman, Ross E Esq PROPOSAL57Onyama Limba
1013Isabel M SaylorsRussia2025-08-22Morlong Associates RENEWAL81Onyama Limba
1014Sinclair K KuskoSpain2025-08-21Commercial Press RENEWAL81Anna Fali
1015Juan D RimItaly2025-08-13Chanay, Jeffrey A Esq UNQUALIFIED81Xuxue Feng
1016Ivar H OldroydBrazil2025-09-04Morlong Associates PROPOSAL82Asiya Javayant
1017Leja O GauchoJapan2025-08-22King, Christopher A Esq NEGOTIATION69Elwin Sharvill
1018Leja I GauchoAustralia2025-08-11King, Christopher A Esq UNQUALIFIED49Bernardo Dominic
1019Aditya U AlbaresItaly2025-08-12Commercial Press UNQUALIFIED48Stephen Shaw
1020Jennifer G SchemmerGermany2025-08-12Printing Dimensions NEW72Elwin Sharvill
1021Izzy F WieserFrance2025-08-20Feiner Bros UNQUALIFIED9Xuxue Feng
1022Isabel I DoeAustralia2025-08-30Rousseaux, Michael Esq UNQUALIFIED73Ioni Bowcher
1023Misaki C DarakjyFrance2025-09-01Dorl, James J Esq RENEWAL43Ivan Magalhaes
1024Jennifer C TollnerRussia2025-08-29Chanay, Jeffrey A Esq NEW15Asiya Javayant
1025Mayumi G CaldareraItaly2025-09-09Commercial Press PROPOSAL53Elwin Sharvill
1026Maria C SchemmerBrazil2025-08-12Truhlar And Truhlar Attys PROPOSAL65Xuxue Feng
1027Greenwood U WhobreySpain2025-09-02King, Christopher A Esq NEW31Anna Fali
1028James O SaylorsGermany2025-08-12Chanay, Jeffrey A Esq RENEWAL77Anna Fali
1029Maria P WhobreyCanada2025-08-27Rangoni Of Florence QUALIFIED7Stephen Shaw
1030Leon R SergiArgentina2025-09-01King, Christopher A Esq NEW60Anna Fali
1031Darci X CampainFrance2025-08-19Buckley Miller Wright PROPOSAL24Bernardo Dominic
1032Isabel L GarufiAustralia2025-08-16Feltz Printing Service QUALIFIED48Amy Elsner
1033Sinclair B BowleyItaly2025-08-14Printing Dimensions RENEWAL29Stephen Shaw
1034Costa I GauchoUnited Kingdom2025-08-12Rangoni Of Florence QUALIFIED83Ioni Bowcher
1035Aditya G WhobreyGermany2025-09-05Printing Dimensions UNQUALIFIED56Onyama Limba
1036Aruna B ChuiGermany2025-08-26Chapman, Ross E Esq NEGOTIATION43Amy Elsner
1037Cody Q ButtUnited Kingdom2025-08-27Feltz Printing Service NEGOTIATION82Anna Fali
1038Isabel X MarrierCanada2025-08-11Rangoni Of Florence QUALIFIED63Amy Elsner
1039Rodrigues T KuskoFrance2025-08-30Dorl, James J Esq UNQUALIFIED37Onyama Limba
1040Stacey O WaycottUnited Kingdom2025-09-01Commercial Press QUALIFIED87Ivan Magalhaes
1041Johnson M DilliardArgentina2025-09-06Dorl, James J Esq PROPOSAL97Bernardo Dominic
1042Johnson U DilliardCanada2025-08-22Feiner Bros UNQUALIFIED77Bernardo Dominic
1043Darci J CaldareraItaly2025-08-25Feiner Bros RENEWAL61Elwin Sharvill
1044Murillo B WhobreyIndia2025-08-30Chapman, Ross E Esq NEW0Elwin Sharvill
1045Clifford G TollnerItaly2025-09-02Feltz Printing Service UNQUALIFIED14Xuxue Feng
1046Aditya P FerenczAustralia2025-08-17Rousseaux, Michael Esq RENEWAL18Asiya Javayant
1047Alejandro C MaletBrazil2025-09-09King, Christopher A Esq PROPOSAL48Anna Fali
1048Smith R AlbaresJapan2025-08-27Benton, John B Jr NEW20Onyama Limba
1049Francesco Z SaylorsBrazil2025-08-29Rousseaux, Michael Esq UNQUALIFIED55Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mayumi X ButtArgentinaIoni Bowcher NEW
Adams P DilliardJapanOnyama Limba QUALIFIED
Ashley T CaldareraGermanyElwin Sharvill RENEWAL
James M TollnerAustraliaAsiya Javayant UNQUALIFIED
Adams E KuskoIndiaAnna Fali NEGOTIATION
Adams Q OstroskyBrazilElwin Sharvill RENEWAL
Kadeem F VenereItalyElwin Sharvill RENEWAL
Adams K SaylorsGermanyAmy Elsner UNQUALIFIED
Sinclair K VenereAustraliaIvan Magalhaes NEW
Aditya F KolmetzRussiaElwin Sharvill RENEWAL
James H SchemmerRussiaXuxue Feng QUALIFIED
Stacey D SergiArgentinaIoni Bowcher QUALIFIED
Emily F MaletIndiaIvan Magalhaes UNQUALIFIED
Isabel W KolmetzBrazilAsiya Javayant PROPOSAL
David K ShinkoJapanAnna Fali RENEWAL
Rodrigues P RimBrazilAsiya Javayant NEW
Murillo K DilliardArgentinaAsiya Javayant QUALIFIED
Silvio R DilliardArgentinaIvan Magalhaes PROPOSAL
Nicolas W FigeroaCanadaXuxue Feng QUALIFIED
Salvatore N RimAustraliaIvan Magalhaes QUALIFIED
Morrow S GarufiUnited KingdomBernardo Dominic NEGOTIATION
Adams D GlickIndiaStephen Shaw NEW
Aditya J BowleyRussiaAnna Fali RENEWAL
Leja H WaycottBrazilAnna Fali UNQUALIFIED
Jones Y VenereBrazilAnna Fali PROPOSAL
Murillo D RoysterArgentinaBernardo Dominic NEGOTIATION
Octavia M MaletBrazilIvan Magalhaes NEGOTIATION
Antonio I AlbaresJapanAmy Elsner UNQUALIFIED
Juan Y BowleyUnited KingdomAnna Fali PROPOSAL
Munro R GauchoCanadaIvan Magalhaes PROPOSAL
Faith I MacleadUnited KingdomIoni Bowcher PROPOSAL
Murillo V OldroydJapanAsiya Javayant UNQUALIFIED
Nicolas S RimAustraliaOnyama Limba PROPOSAL
Mayumi A VenereItalyIoni Bowcher PROPOSAL
Mayumi Q GarufiRussiaBernardo Dominic UNQUALIFIED
Jennifer X IturbideJapanStephen Shaw QUALIFIED
Cody N IturbideUnited KingdomAmy Elsner NEW
Morrow J StensethIndiaStephen Shaw PROPOSAL
Rodrigues K CaldareraFranceIoni Bowcher RENEWAL
Adams K VocelkaBrazilElwin Sharvill RENEWAL
Mujtaba F DarakjyCanadaAmy Elsner NEW
Stacey X RimRussiaStephen Shaw NEGOTIATION
Arvin R StockhamAustraliaXuxue Feng PROPOSAL
Wickens P VenereRussiaBernardo Dominic NEW
Mayumi Q KuskoJapanIvan Magalhaes QUALIFIED
Izzy U VocelkaAustraliaElwin Sharvill RENEWAL
Aika K OldroydGermanyXuxue Feng NEW
Ricardo Y SaylorsJapanElwin Sharvill NEW
Darci Y VocelkaGermanyOnyama Limba PROPOSAL
Ricardo O GlickArgentinaBernardo Dominic QUALIFIED
Frozen Columns
Name
Emily L Nicka
Stacey C Glick
Jeanfrancois V Darakjy
Emily Y Glick
Sinclair N Wieser
Jefferson E Nestle
Silvio S Venere
Morrow L Poquette
Darci L Butt
Julie R Tollner
Maria B Caldarera
Octavia J Stenseth
Nicolas G Ruta
Salvatore L Caudy
Greenwood O Ferencz
Jeanfrancois A Venere
Adams J Iturbide
Julie R Paprocki
Jeanfrancois K Glick
David W Campain
Sinclair W Caldarera
Smith N Shinko
Stacey B Albares
Murillo W Dilliard
Jefferson S Poquette
Ivar R Amigon
Salvatore Y Vocelka
Mayumi C Figeroa
Darci L Oldroyd
Alejandro X Doe
Francesco I Dilliard
Ashley Q Kolmetz
Octavia V Tollner
Adams R Vocelka
Misaki B Bowley
Salvatore K Oldroyd
Jeanfrancois P Maclead
Rodrigues M Foller
James N Morasca
Jefferson Z Nestle
Jefferson Z Bolognia
Ivar J Ferencz
Mayumi E Gillian
Salvatore J Venere
David L Whobrey
Antonio S Garufi
Munro E Vocelka
Kaitlin S Marrier
Kaitlin X Chui
Smith C Glick
IdCountryDate
1000Japan2025-08-13
1001Italy2025-08-31
1002Canada2025-09-05
1003Italy2025-09-05
1004Italy2025-08-12
1005Germany2025-09-01
1006Spain2025-08-25
1007Italy2025-08-13
1008France2025-08-14
1009Brazil2025-08-25
1010Germany2025-08-15
1011Germany2025-09-01
1012United Kingdom2025-08-28
1013United Kingdom2025-08-18
1014Canada2025-09-05
1015Germany2025-09-02
1016France2025-08-30
1017Brazil2025-08-17
1018Russia2025-08-30
1019Canada2025-08-26
1020Canada2025-08-19
1021Russia2025-08-20
1022Japan2025-09-04
1023Canada2025-08-31
1024Argentina2025-08-31
1025Spain2025-08-24
1026United Kingdom2025-08-24
1027Italy2025-08-11
1028Australia2025-08-26
1029France2025-08-20
1030Canada2025-08-17
1031Germany2025-08-13
1032United Kingdom2025-08-28
1033Canada2025-09-04
1034Italy2025-09-05
1035Italy2025-08-11
1036France2025-08-19
1037Spain2025-08-27
1038Spain2025-08-13
1039Germany2025-08-17
1040Japan2025-08-12
1041Canada2025-08-29
1042Australia2025-08-18
1043United Kingdom2025-09-09
1044France2025-08-19
1045Italy2025-09-08
1046United Kingdom2025-08-26
1047United Kingdom2025-08-17
1048Japan2025-08-12
1049France2025-09-01

On-Demand Data

NameIdCountryDate
Cody P Butt1000United Kingdom2025-09-07
Adams V Morasca1001Russia2025-08-26
Emily N Albares1002France2025-08-22
David U Royster1003Australia2025-09-05
James T Oldroyd1004India2025-08-16
Juan N Venere1005Germany2025-09-08
Stacey X Stockham1006Australia2025-09-07
Morrow T Doe1007Japan2025-08-19
Jeanfrancois S Morasca1008Australia2025-08-29
Murillo M Kusko1009Argentina2025-08-29
Stacey T Paprocki1010Argentina2025-09-02
Aditya S Doe1011United Kingdom2025-08-28
Murillo O Bowley1012Japan2025-08-19
Stacey F Malet1013Canada2025-08-27
Octavia Q Ostrosky1014Germany2025-08-25
Munro D Slusarski1015India2025-08-31
Aika A Nicka1016Canada2025-08-15
Rodrigues B Saylors1017United Kingdom2025-08-12
Nicolas A Caudy1018Canada2025-08-20
Mayumi Y Iturbide1019Russia2025-08-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith A CampainJapanIoni Bowcher NEW
Jones R GlickSpainXuxue Feng NEW
Greenwood H FollerAustraliaElwin Sharvill PROPOSAL
Costa A WhobreyFranceAnna Fali RENEWAL
Johnson O FerenczGermanyAnna Fali UNQUALIFIED
Deepesh R DilliardItalyXuxue Feng NEW
Jefferson B BologniaArgentinaAmy Elsner RENEWAL
Mujtaba W ShinkoSpainStephen Shaw RENEWAL
Jennifer C MarrierArgentinaElwin Sharvill UNQUALIFIED
Arvin O CampainUnited KingdomStephen Shaw RENEWAL
Alejandro A NickaFranceAnna Fali QUALIFIED
Mayumi W CaudyArgentinaAnna Fali UNQUALIFIED
Jeanfrancois P RoysterArgentinaIoni Bowcher RENEWAL
Leon Q KolmetzArgentinaOnyama Limba NEGOTIATION
Chavez D BowleyGermanyAmy Elsner RENEWAL
Clifford P SaylorsItalyXuxue Feng QUALIFIED
Octavia Q FlosiIndiaElwin Sharvill UNQUALIFIED
Silvio X AlbaresArgentinaXuxue Feng UNQUALIFIED
Rodrigues I BowleyFranceIoni Bowcher NEW
Misaki G DoeRussiaAmy Elsner RENEWAL
David K KuskoArgentinaIoni Bowcher QUALIFIED
Jefferson N StockhamSpainStephen Shaw RENEWAL
Arvin W BriddickSpainOnyama Limba NEW
Clifford S NestleGermanyAsiya Javayant PROPOSAL
Chavez Y WaycottRussiaXuxue Feng RENEWAL
Francesco F AmigonGermanyAmy Elsner PROPOSAL
Chavez Z BowleyRussiaIoni Bowcher NEW
Jeanfrancois D InouyeIndiaXuxue Feng QUALIFIED
Claire D GillianSpainStephen Shaw RENEWAL
David F SaylorsRussiaStephen Shaw NEW
Ivar D MacleadBrazilElwin Sharvill NEGOTIATION
Munro M OldroydIndiaAsiya Javayant PROPOSAL
Aika N GillianGermanyXuxue Feng NEW
Isabel P MaletSpainIoni Bowcher NEGOTIATION
Juan O SaylorsFranceXuxue Feng UNQUALIFIED
Ivar X SlusarskiJapanElwin Sharvill PROPOSAL
Leon X DilliardGermanyStephen Shaw RENEWAL
Jefferson P GauchoUnited KingdomAsiya Javayant PROPOSAL
Ivar D IturbideCanadaBernardo Dominic QUALIFIED
Maisha G RimUnited KingdomStephen Shaw NEW

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