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
Aika C ShinkoCanadaOnyama Limba NEW
Jones P SaylorsArgentinaOnyama Limba QUALIFIED
Wickens P CaldareraJapanStephen Shaw UNQUALIFIED
Johnson L VocelkaSpainBernardo Dominic RENEWAL
Clifford K NestleGermanyXuxue Feng NEGOTIATION
Nicolas W DoeAustraliaOnyama Limba QUALIFIED
Morrow D KolmetzArgentinaIvan Magalhaes PROPOSAL
Adams T SergiCanadaAmy Elsner NEW
Juan Q SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Jennifer Q FollerArgentinaIvan Magalhaes NEW
Claire G GillianRussiaElwin Sharvill NEGOTIATION
Rodrigues N DilliardGermanyBernardo Dominic UNQUALIFIED
Jennifer Y InouyeIndiaOnyama Limba UNQUALIFIED
Francesco O CaldareraJapanElwin Sharvill NEW
Mujtaba S NickaFranceAnna Fali QUALIFIED
Greenwood W GillianFranceAnna Fali QUALIFIED
Faith H SergiGermanyOnyama Limba UNQUALIFIED
Smith S StockhamIndiaXuxue Feng UNQUALIFIED
Stacey S PerinJapanBernardo Dominic NEGOTIATION
Maisha V InouyeCanadaAmy Elsner UNQUALIFIED
Adams U KuskoBrazilStephen Shaw NEGOTIATION
Ricardo W FerenczIndiaStephen Shaw RENEWAL
Claire G FollerCanadaAmy Elsner NEGOTIATION
Johnson Q WhobreyGermanyBernardo Dominic NEGOTIATION
Salvatore C RulapaughArgentinaAmy Elsner QUALIFIED
Aditya U DarakjyArgentinaElwin Sharvill NEGOTIATION
Clifford I SergiUnited KingdomAnna Fali RENEWAL
Juan Q ShinkoItalyIvan Magalhaes QUALIFIED
Adams S ChuiArgentinaAsiya Javayant NEGOTIATION
Juan A SlusarskiIndiaAmy Elsner NEW
Costa J KuskoSpainBernardo Dominic PROPOSAL
Sinclair X FlosiRussiaBernardo Dominic UNQUALIFIED
Darci V InouyeSpainIvan Magalhaes PROPOSAL
Juan U MorascaArgentinaXuxue Feng NEW
Nicolas J MaletArgentinaIoni Bowcher QUALIFIED
Leja N AmigonAustraliaElwin Sharvill NEW
Munro L WaycottRussiaElwin Sharvill QUALIFIED
Rodrigues B MarrierJapanIoni Bowcher NEGOTIATION
Mujtaba G CaldareraIndiaStephen Shaw PROPOSAL
Darci B DoeGermanyAnna Fali UNQUALIFIED
Adams S CaudySpainStephen Shaw PROPOSAL
Jefferson V GlickItalyAnna Fali RENEWAL
Deepesh C ButtItalyAmy Elsner NEGOTIATION
David P TollnerAustraliaAmy Elsner PROPOSAL
Juan R BowleyGermanyXuxue Feng RENEWAL
Silvio O GillianFranceOnyama Limba PROPOSAL
Claire Z VenereUnited KingdomAsiya Javayant RENEWAL
Nicolas A CampainUnited KingdomStephen Shaw UNQUALIFIED
Ashley Q KolmetzJapanAnna Fali QUALIFIED
Stacey U VocelkaSpainBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams G RutaCanadaOnyama Limba QUALIFIED
Wickens R FlosiUnited KingdomIvan Magalhaes NEW
Chavez Y SlusarskiSpainElwin Sharvill QUALIFIED
Aditya A RulapaughJapanAsiya Javayant QUALIFIED
Ricardo O ChuiJapanAsiya Javayant QUALIFIED
Wickens V CampainSpainAmy Elsner RENEWAL
Jefferson I PerinItalyXuxue Feng NEW
Aruna H SergiJapanAsiya Javayant RENEWAL
Julie N SaylorsBrazilXuxue Feng PROPOSAL
Emily F GauchoItalyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow A IturbideIndia2025-10-12Printing Dimensions QUALIFIED13Xuxue Feng
1001Cody X FollerGermany2025-10-09Feltz Printing Service NEW24Onyama Limba
1002Ashley L SergiJapan2025-10-13Commercial Press RENEWAL59Anna Fali
1003Kadeem P NickaAustralia2025-09-26Morlong Associates NEW61Elwin Sharvill
1004Rodrigues U FollerIndia2025-10-07Morlong Associates QUALIFIED36Amy Elsner
1005Munro S KolmetzArgentina2025-10-03Dorl, James J Esq NEGOTIATION39Ioni Bowcher
1006Rodrigues T WaycottCanada2025-10-03Dorl, James J Esq NEGOTIATION21Amy Elsner
1007Nicolas M VocelkaGermany2025-09-22Rangoni Of Florence UNQUALIFIED42Xuxue Feng
1008Deepesh A KuskoArgentina2025-09-30Chanay, Jeffrey A Esq QUALIFIED80Ioni Bowcher
1009Ivar L StensethGermany2025-09-20Printing Dimensions NEW72Onyama Limba
1010Jeanfrancois D InouyeFrance2025-09-20Commercial Press UNQUALIFIED64Elwin Sharvill
1011Julie R TollnerRussia2025-09-20Chapman, Ross E Esq QUALIFIED87Bernardo Dominic
1012James C MacleadRussia2025-10-06Chemel, James L Cpa NEW8Onyama Limba
1013Faith M MacleadItaly2025-09-20Truhlar And Truhlar Attys NEW38Amy Elsner
1014Leon F GauchoGermany2025-10-07Chemel, James L Cpa NEGOTIATION88Stephen Shaw
1015Francesco L InouyeItaly2025-09-29Chemel, James L Cpa UNQUALIFIED54Asiya Javayant
1016Claire C TollnerCanada2025-10-19Chemel, James L Cpa UNQUALIFIED94Asiya Javayant
1017Jeanfrancois R VocelkaJapan2025-10-02King, Christopher A Esq UNQUALIFIED10Bernardo Dominic
1018Misaki D SchemmerSpain2025-10-03Truhlar And Truhlar Attys PROPOSAL19Onyama Limba
1019Deepesh W NickaIndia2025-10-03Printing Dimensions QUALIFIED17Bernardo Dominic
1020Chavez S TollnerCanada2025-10-05Benton, John B Jr UNQUALIFIED41Bernardo Dominic
1021Alejandro P RoysterItaly2025-10-07Dorl, James J Esq PROPOSAL27Onyama Limba
1022Izzy T PerinUnited Kingdom2025-09-28Morlong Associates NEGOTIATION26Ioni Bowcher
1023Julie P RoysterFrance2025-09-30Chapman, Ross E Esq NEW93Amy Elsner
1024Julie F AlbaresCanada2025-09-20Feiner Bros UNQUALIFIED12Ivan Magalhaes
1025Alejandro X RulapaughSpain2025-10-08Rousseaux, Michael Esq UNQUALIFIED40Anna Fali
1026Julie Z ButtArgentina2025-10-13Buckley Miller Wright QUALIFIED67Xuxue Feng
1027Francesco X AmigonCanada2025-10-11Commercial Press RENEWAL41Anna Fali
1028Arvin D FigeroaBrazil2025-09-26Rangoni Of Florence NEW29Asiya Javayant
1029David I StensethIndia2025-09-21Buckley Miller Wright RENEWAL61Xuxue Feng
1030Darci C SaylorsJapan2025-10-07Rousseaux, Michael Esq QUALIFIED38Amy Elsner
1031Jennifer U VenereAustralia2025-09-29Chemel, James L Cpa NEGOTIATION4Ivan Magalhaes
1032Julie D StockhamAustralia2025-09-23Morlong Associates PROPOSAL72Ivan Magalhaes
1033Aika N SchemmerIndia2025-10-13Feiner Bros PROPOSAL73Xuxue Feng
1034Greenwood I RutaGermany2025-09-30Feltz Printing Service PROPOSAL9Asiya Javayant
1035Kadeem G CaudyGermany2025-09-28Chapman, Ross E Esq PROPOSAL17Bernardo Dominic
1036Claire P AmigonIndia2025-10-19King, Christopher A Esq PROPOSAL57Stephen Shaw
1037Jefferson L StockhamIndia2025-10-11Rangoni Of Florence PROPOSAL89Ioni Bowcher
1038Maria X OstroskyRussia2025-10-06Printing Dimensions RENEWAL79Elwin Sharvill
1039Arvin Q DarakjyIndia2025-10-11Rousseaux, Michael Esq NEGOTIATION79Xuxue Feng
1040Murillo J ShinkoFrance2025-10-11Rangoni Of Florence QUALIFIED56Xuxue Feng
1041Cody B PoquetteUnited Kingdom2025-09-24Buckley Miller Wright QUALIFIED74Stephen Shaw
1042Faith B WhobreyBrazil2025-09-24Buckley Miller Wright UNQUALIFIED23Anna Fali
1043Francesco R DoeBrazil2025-10-01Truhlar And Truhlar Attys QUALIFIED37Onyama Limba
1044Darci T PaprockiSpain2025-09-25Chanay, Jeffrey A Esq PROPOSAL28Ivan Magalhaes
1045Sinclair W GarufiFrance2025-10-04Morlong Associates NEW9Elwin Sharvill
1046Aditya A GillianGermany2025-10-01Chemel, James L Cpa NEGOTIATION53Bernardo Dominic
1047Mujtaba Y VenereItaly2025-10-10Commercial Press PROPOSAL99Ioni Bowcher
1048Munro J GauchoArgentina2025-09-21Dorl, James J Esq QUALIFIED69Xuxue Feng
1049Greenwood I PerinSpain2025-10-01Feiner Bros RENEWAL84Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kadeem N OldroydIndiaOnyama Limba UNQUALIFIED
Munro D FerenczItalyXuxue Feng NEW
Maisha Y RulapaughBrazilAnna Fali NEGOTIATION
Arvin M StockhamSpainIoni Bowcher RENEWAL
Cody J ButtItalyStephen Shaw RENEWAL
Izzy C MacleadArgentinaXuxue Feng NEGOTIATION
Sinclair V MaletGermanyElwin Sharvill QUALIFIED
Julie F SaylorsFranceStephen Shaw UNQUALIFIED
Kadeem R RulapaughJapanAmy Elsner QUALIFIED
Clifford M PerinBrazilAnna Fali RENEWAL
Morrow X TollnerBrazilElwin Sharvill NEW
Misaki J ShinkoBrazilAsiya Javayant NEW
James F FollerUnited KingdomBernardo Dominic PROPOSAL
Jennifer U FlosiGermanyBernardo Dominic PROPOSAL
Ivar X RimJapanIoni Bowcher NEW
Costa K SergiSpainAmy Elsner QUALIFIED
Kadeem C SlusarskiArgentinaBernardo Dominic NEGOTIATION
Kadeem I RutaArgentinaStephen Shaw NEGOTIATION
Antonio L NestleJapanBernardo Dominic RENEWAL
Munro F RoysterFranceIvan Magalhaes NEGOTIATION
Leon T DilliardFranceAsiya Javayant UNQUALIFIED
Silvio W OldroydBrazilOnyama Limba NEGOTIATION
Arvin Y MacleadJapanAnna Fali NEW
Mujtaba S VocelkaCanadaStephen Shaw RENEWAL
Arvin K SergiJapanStephen Shaw NEGOTIATION
Chavez R OstroskyIndiaAmy Elsner NEW
Jennifer M RulapaughJapanIoni Bowcher NEW
Leon R KuskoIndiaOnyama Limba UNQUALIFIED
Kaitlin K FlosiGermanyIvan Magalhaes RENEWAL
Johnson V AlbaresIndiaAmy Elsner RENEWAL
Maria J VocelkaSpainIvan Magalhaes RENEWAL
Silvio I BriddickJapanIoni Bowcher PROPOSAL
Mujtaba F GarufiAustraliaIoni Bowcher RENEWAL
Leon U MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois B PaprockiIndiaXuxue Feng PROPOSAL
Francesco O GillianJapanElwin Sharvill PROPOSAL
Wickens I GarufiFranceElwin Sharvill NEGOTIATION
Leja I FigeroaUnited KingdomBernardo Dominic QUALIFIED
Murillo Z StockhamAustraliaIvan Magalhaes RENEWAL
Cody N CaldareraRussiaOnyama Limba NEW
Francesco P CaudyAustraliaStephen Shaw UNQUALIFIED
Greenwood Q GauchoUnited KingdomAsiya Javayant NEW
Jeanfrancois S FigeroaItalyIoni Bowcher UNQUALIFIED
Juan E RoysterJapanBernardo Dominic NEW
Wickens S FerenczCanadaAmy Elsner NEW
Claire U GillianItalyStephen Shaw UNQUALIFIED
Chavez T StockhamAustraliaStephen Shaw NEW
Stacey O IturbideFranceAnna Fali NEW
Antonio N ButtGermanyIoni Bowcher RENEWAL
Emily I KuskoIndiaOnyama Limba NEW
Frozen Columns
Name
Deepesh M Caudy
Tony T Darakjy
Octavia O Briddick
Smith S Nicka
Johnson U Gillian
Wickens T Morasca
Jefferson S Ruta
Mujtaba G Amigon
Alejandro W Vocelka
Costa N Sergi
Maria B Tollner
Deepesh V Figeroa
Wickens G Albares
Arvin S Campain
Antonio W Royster
Murillo M Venere
Sinclair T Gaucho
Maria X Ferencz
Arvin H Malet
Silvio I Ruta
Mujtaba J Schemmer
Clifford M Vocelka
Arvin U Flosi
Antonio K Sergi
Adams P Garufi
Chavez I Gillian
Mujtaba Z Nicka
Jefferson T Saylors
Nicolas V Rim
Tony B Perin
Ashley E Oldroyd
Wickens D Marrier
Isabel S Iturbide
Octavia N Ferencz
Adams B Darakjy
Sinclair B Dilliard
Stacey Y Nicka
Salvatore T Amigon
Murillo D Albares
Jeanfrancois K Dilliard
Julie Q Saylors
Jefferson M Kolmetz
Izzy D Sergi
Mayumi C Schemmer
Johnson Z Albares
Tony Q Foller
Ricardo W Doe
Misaki L Amigon
Mujtaba U Bowley
Costa A Waycott
IdCountryDate
1000United Kingdom2025-09-21
1001Canada2025-10-13
1002Canada2025-10-09
1003Brazil2025-09-26
1004United Kingdom2025-10-01
1005United Kingdom2025-10-12
1006India2025-09-21
1007France2025-10-02
1008Italy2025-10-15
1009Spain2025-10-11
1010Russia2025-10-12
1011Canada2025-09-26
1012Brazil2025-09-30
1013Japan2025-09-28
1014Argentina2025-09-21
1015France2025-10-06
1016Germany2025-09-20
1017Brazil2025-10-09
1018Japan2025-09-30
1019Spain2025-10-17
1020Argentina2025-09-25
1021Argentina2025-09-20
1022United Kingdom2025-10-18
1023France2025-10-14
1024Canada2025-09-28
1025Australia2025-09-24
1026United Kingdom2025-09-23
1027Brazil2025-10-17
1028Argentina2025-09-21
1029Russia2025-10-04
1030Spain2025-10-18
1031India2025-10-10
1032Russia2025-09-29
1033Canada2025-09-27
1034Russia2025-10-10
1035Germany2025-10-10
1036Japan2025-10-11
1037Germany2025-10-04
1038Argentina2025-09-25
1039Australia2025-10-19
1040United Kingdom2025-10-03
1041Australia2025-10-13
1042India2025-09-25
1043Italy2025-09-20
1044Canada2025-10-18
1045Brazil2025-09-29
1046Australia2025-10-01
1047Russia2025-10-10
1048Spain2025-10-08
1049Spain2025-09-25

On-Demand Data

NameIdCountryDate
Jennifer D Gillian1000Argentina2025-09-30
Izzy M Albares1001Canada2025-10-17
Chavez L Slusarski1002Japan2025-10-10
Ashley H Doe1003Russia2025-10-03
David Z Inouye1004Russia2025-10-05
Maria I Venere1005Canada2025-09-22
Aruna G Butt1006Spain2025-09-20
James P Malet1007Japan2025-09-22
Smith U Malet1008Canada2025-10-18
Sinclair E Stockham1009Russia2025-10-19
Juan E Briddick1010Italy2025-09-30
Isabel F Saylors1011France2025-10-11
Kaitlin W Dilliard1012Australia2025-10-14
Murillo V Shinko1013Australia2025-09-25
Aditya O Amigon1014Spain2025-10-06
Rodrigues R Flosi1015Spain2025-09-23
Stacey B Briddick1016Spain2025-10-02
Munro C Butt1017Russia2025-09-20
Kaitlin F Campain1018Spain2025-10-10
Smith R Ruta1019Brazil2025-09-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi Z CaldareraUnited KingdomAsiya Javayant QUALIFIED
Izzy R MaletCanadaAnna Fali PROPOSAL
Julie L TollnerCanadaXuxue Feng RENEWAL
Leja M RimArgentinaBernardo Dominic PROPOSAL
Clifford N FigeroaAustraliaOnyama Limba PROPOSAL
Johnson M CaudyGermanyAsiya Javayant PROPOSAL
Aika A InouyeGermanyIoni Bowcher UNQUALIFIED
Izzy C MorascaAustraliaAmy Elsner PROPOSAL
Octavia U WhobreySpainBernardo Dominic NEW
Murillo W FlosiIndiaElwin Sharvill RENEWAL
Misaki J BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Tony A DoeFranceIvan Magalhaes PROPOSAL
Deepesh C FigeroaRussiaXuxue Feng NEGOTIATION
Jeanfrancois V ShinkoJapanIoni Bowcher NEGOTIATION
Kadeem W KuskoArgentinaAnna Fali NEW
Maria E MaletFranceElwin Sharvill NEW
Antonio R SergiItalyOnyama Limba NEW
James U RimJapanBernardo Dominic QUALIFIED
Emily X CaudyItalyXuxue Feng PROPOSAL
Leon K MaletBrazilOnyama Limba RENEWAL
James N GauchoJapanIoni Bowcher QUALIFIED
Darci B CaldareraRussiaAnna Fali QUALIFIED
Maisha G MarrierRussiaStephen Shaw UNQUALIFIED
Costa A OldroydAustraliaStephen Shaw PROPOSAL
Stacey C DoeIndiaIoni Bowcher RENEWAL
Rodrigues W SergiRussiaIvan Magalhaes RENEWAL
Kadeem E NickaCanadaOnyama Limba NEGOTIATION
Mujtaba T AlbaresIndiaIoni Bowcher RENEWAL
Salvatore U ChuiCanadaBernardo Dominic PROPOSAL
Jones R IturbideIndiaBernardo Dominic PROPOSAL
Arvin M IturbideArgentinaAmy Elsner RENEWAL
Leja C NestleFranceIvan Magalhaes NEW
Aruna W DoeUnited KingdomAmy Elsner RENEWAL
Jeanfrancois W NickaRussiaAnna Fali PROPOSAL
Aditya C SlusarskiBrazilStephen Shaw UNQUALIFIED
Greenwood M BowleyCanadaAmy Elsner NEW
Silvio Z RimJapanOnyama Limba PROPOSAL
Isabel T RutaJapanAmy Elsner UNQUALIFIED
Deepesh D RulapaughJapanIoni Bowcher NEGOTIATION
Leon V FerenczJapanAnna Fali NEGOTIATION

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