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
Jeanfrancois Y GillianArgentinaXuxue Feng RENEWAL
Tony D FerenczGermanyStephen Shaw UNQUALIFIED
Isabel D WaycottCanadaOnyama Limba RENEWAL
Faith X AmigonAustraliaAsiya Javayant QUALIFIED
Emily V FerenczIndiaAmy Elsner RENEWAL
Johnson T InouyeIndiaAsiya Javayant NEGOTIATION
Maria B AmigonJapanBernardo Dominic UNQUALIFIED
Kadeem V DoeUnited KingdomBernardo Dominic PROPOSAL
Sinclair F RutaIndiaAnna Fali PROPOSAL
Jeanfrancois Q CaldareraCanadaIvan Magalhaes QUALIFIED
Nicolas G InouyeFranceAnna Fali NEW
Deepesh I GarufiJapanOnyama Limba UNQUALIFIED
Jefferson O FigeroaIndiaAnna Fali NEW
Alejandro A TollnerUnited KingdomElwin Sharvill RENEWAL
David X WhobreyJapanOnyama Limba RENEWAL
Mayumi U StensethUnited KingdomXuxue Feng NEW
Isabel E ButtGermanyAnna Fali NEW
Jones M VenereGermanyStephen Shaw PROPOSAL
Maria J FlosiCanadaAnna Fali PROPOSAL
Aika C MorascaIndiaElwin Sharvill NEW
Salvatore I InouyeArgentinaAnna Fali NEGOTIATION
Jennifer X VocelkaFranceAsiya Javayant UNQUALIFIED
Faith T CaldareraUnited KingdomOnyama Limba NEW
Leon V NestleGermanyAmy Elsner RENEWAL
Claire K BowleyAustraliaOnyama Limba UNQUALIFIED
Johnson E MarrierAustraliaAmy Elsner RENEWAL
Johnson R CampainSpainIoni Bowcher NEGOTIATION
James M VocelkaUnited KingdomAsiya Javayant QUALIFIED
Jennifer V StockhamAustraliaAsiya Javayant RENEWAL
Johnson S SaylorsArgentinaElwin Sharvill QUALIFIED
Kadeem W DarakjyUnited KingdomAnna Fali QUALIFIED
Juan K SlusarskiGermanyAsiya Javayant QUALIFIED
Tony W SchemmerAustraliaElwin Sharvill NEW
Aruna U RutaFranceAmy Elsner PROPOSAL
Sinclair H ButtGermanyAsiya Javayant UNQUALIFIED
Morrow K ButtFranceIvan Magalhaes RENEWAL
Darci M MaletAustraliaXuxue Feng NEGOTIATION
Isabel H ShinkoCanadaXuxue Feng PROPOSAL
Rodrigues W SaylorsGermanyElwin Sharvill RENEWAL
Leja U MarrierIndiaStephen Shaw QUALIFIED
James S BologniaSpainAnna Fali UNQUALIFIED
Salvatore O PoquetteItalyOnyama Limba UNQUALIFIED
Jones W SchemmerCanadaAmy Elsner PROPOSAL
David K PerinIndiaIvan Magalhaes UNQUALIFIED
Aditya X BowleyJapanXuxue Feng RENEWAL
Jeanfrancois T PoquetteJapanAsiya Javayant QUALIFIED
Stacey O GauchoIndiaElwin Sharvill UNQUALIFIED
Ricardo J MaletRussiaAsiya Javayant QUALIFIED
Alejandro F InouyeGermanyIvan Magalhaes UNQUALIFIED
Octavia R OldroydRussiaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody L CampainCanadaOnyama Limba NEGOTIATION
Faith N DarakjyGermanyIoni Bowcher QUALIFIED
Julie J SaylorsFranceStephen Shaw NEW
Aruna M RimGermanyBernardo Dominic UNQUALIFIED
Aruna O SaylorsRussiaElwin Sharvill QUALIFIED
Leon G CaudyBrazilStephen Shaw NEW
Clifford O GarufiCanadaAsiya Javayant PROPOSAL
Adams S MacleadJapanIvan Magalhaes UNQUALIFIED
Morrow A TollnerCanadaAnna Fali QUALIFIED
Juan G KolmetzCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y BologniaFrance2025-09-29Feiner Bros QUALIFIED87Onyama Limba
1001Munro Y FlosiSpain2025-09-28King, Christopher A Esq UNQUALIFIED46Stephen Shaw
1002Julie I WieserFrance2025-10-01Dorl, James J Esq UNQUALIFIED28Onyama Limba
1003Mayumi I MacleadBrazil2025-10-15Buckley Miller Wright UNQUALIFIED42Asiya Javayant
1004Cody L FlosiUnited Kingdom2025-09-25Printing Dimensions NEGOTIATION21Anna Fali
1005Jones N RutaBrazil2025-10-11Feltz Printing Service NEW61Elwin Sharvill
1006Octavia R PoquetteFrance2025-09-23Feiner Bros PROPOSAL93Asiya Javayant
1007Jennifer I MorascaIndia2025-10-04Feiner Bros UNQUALIFIED88Amy Elsner
1008Alejandro L MacleadBrazil2025-09-27King, Christopher A Esq QUALIFIED14Asiya Javayant
1009Misaki Z BriddickCanada2025-09-30Dorl, James J Esq NEW40Onyama Limba
1010Kadeem N CampainSpain2025-10-17Rousseaux, Michael Esq QUALIFIED64Xuxue Feng
1011Morrow V FollerArgentina2025-10-12Morlong Associates UNQUALIFIED83Asiya Javayant
1012Antonio M SlusarskiUnited Kingdom2025-10-20Chanay, Jeffrey A Esq RENEWAL36Stephen Shaw
1013Aika R InouyeGermany2025-10-17Rousseaux, Michael Esq NEW90Asiya Javayant
1014Chavez R RulapaughAustralia2025-10-06Truhlar And Truhlar Attys PROPOSAL1Amy Elsner
1015Aika A RimJapan2025-09-24Benton, John B Jr QUALIFIED73Asiya Javayant
1016Darci X PaprockiSpain2025-09-28Dorl, James J Esq PROPOSAL22Xuxue Feng
1017Morrow C OstroskyArgentina2025-10-22Morlong Associates PROPOSAL26Onyama Limba
1018Maisha E WaycottSpain2025-10-10Feiner Bros PROPOSAL82Bernardo Dominic
1019Misaki X DoeArgentina2025-10-09Chapman, Ross E Esq NEGOTIATION19Asiya Javayant
1020Jeanfrancois Y VocelkaCanada2025-10-19Chapman, Ross E Esq NEW64Onyama Limba
1021Munro Q MarrierArgentina2025-10-14Truhlar And Truhlar Attys NEGOTIATION3Bernardo Dominic
1022Salvatore U FollerItaly2025-10-16Commercial Press RENEWAL8Anna Fali
1023Chavez O SaylorsItaly2025-10-04Morlong Associates PROPOSAL2Asiya Javayant
1024Jeanfrancois G AmigonSpain2025-10-02King, Christopher A Esq RENEWAL47Bernardo Dominic
1025Mujtaba N GarufiArgentina2025-10-06Rousseaux, Michael Esq NEW29Stephen Shaw
1026Darci I WaycottIndia2025-09-23Rousseaux, Michael Esq QUALIFIED68Bernardo Dominic
1027Silvio D FlosiSpain2025-10-13Benton, John B Jr UNQUALIFIED2Bernardo Dominic
1028Emily V IturbideItaly2025-09-23Printing Dimensions RENEWAL96Ivan Magalhaes
1029Aruna Q BriddickBrazil2025-10-15Chemel, James L Cpa QUALIFIED97Onyama Limba
1030Costa A DoeFrance2025-10-17Chapman, Ross E Esq NEW55Amy Elsner
1031Julie X WhobreySpain2025-09-24Morlong Associates NEW13Asiya Javayant
1032James D MaletGermany2025-10-17King, Christopher A Esq NEW38Elwin Sharvill
1033Cody S RimItaly2025-10-16Chemel, James L Cpa PROPOSAL63Stephen Shaw
1034Aditya U AlbaresItaly2025-10-18Truhlar And Truhlar Attys UNQUALIFIED92Onyama Limba
1035Stacey A GlickIndia2025-10-11Feltz Printing Service NEW37Bernardo Dominic
1036Maisha D GarufiBrazil2025-10-14King, Christopher A Esq NEW62Elwin Sharvill
1037Chavez O KuskoFrance2025-10-14Feltz Printing Service NEGOTIATION2Onyama Limba
1038Misaki O RulapaughUnited Kingdom2025-09-25Morlong Associates NEW6Asiya Javayant
1039Emily E PoquetteCanada2025-10-14Truhlar And Truhlar Attys NEW63Amy Elsner
1040Smith C DarakjyRussia2025-09-26Chapman, Ross E Esq NEGOTIATION25Ioni Bowcher
1041David J AlbaresItaly2025-10-04Morlong Associates PROPOSAL84Anna Fali
1042Arvin P AlbaresBrazil2025-10-13Rangoni Of Florence UNQUALIFIED71Elwin Sharvill
1043Chavez F VenereAustralia2025-10-07Chanay, Jeffrey A Esq NEGOTIATION25Onyama Limba
1044Ivar V PerinRussia2025-10-01Feltz Printing Service NEW15Ivan Magalhaes
1045Francesco J OldroydFrance2025-10-15Rangoni Of Florence RENEWAL68Amy Elsner
1046Ashley S CaldareraSpain2025-09-28Printing Dimensions UNQUALIFIED38Amy Elsner
1047Francesco T FollerUnited Kingdom2025-09-24Benton, John B Jr RENEWAL28Anna Fali
1048Juan N GauchoItaly2025-10-16Chemel, James L Cpa UNQUALIFIED34Xuxue Feng
1049Ivar W WhobreyJapan2025-09-30Commercial Press QUALIFIED28Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Alejandro F DarakjyUnited KingdomStephen Shaw NEW
Silvio Q WhobreyGermanyBernardo Dominic NEGOTIATION
Mayumi Q WaycottAustraliaBernardo Dominic NEGOTIATION
Deepesh R AmigonCanadaAsiya Javayant PROPOSAL
Clifford M MaletBrazilStephen Shaw QUALIFIED
Leja M MaletSpainIvan Magalhaes NEW
Leon P WhobreyCanadaAnna Fali UNQUALIFIED
Salvatore T MacleadFranceStephen Shaw PROPOSAL
Isabel V GillianCanadaIoni Bowcher RENEWAL
Leon A VocelkaItalyAsiya Javayant NEGOTIATION
Stacey L DilliardJapanIvan Magalhaes NEW
Arvin P MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Emily I StockhamUnited KingdomElwin Sharvill PROPOSAL
Tony D InouyeRussiaElwin Sharvill PROPOSAL
Kaitlin B RutaCanadaAsiya Javayant NEW
Nicolas Z SaylorsRussiaAmy Elsner QUALIFIED
Tony I BowleyFranceOnyama Limba RENEWAL
Costa X AmigonArgentinaAnna Fali UNQUALIFIED
Mujtaba F SaylorsItalyOnyama Limba UNQUALIFIED
Maisha M WieserJapanIoni Bowcher UNQUALIFIED
Arvin M ButtGermanyAsiya Javayant QUALIFIED
Aruna R BriddickJapanIoni Bowcher RENEWAL
Salvatore X NickaIndiaElwin Sharvill UNQUALIFIED
Arvin V ShinkoItalyAnna Fali UNQUALIFIED
Jefferson X StensethRussiaAnna Fali UNQUALIFIED
Jefferson Z NickaJapanIoni Bowcher RENEWAL
Greenwood S GauchoItalyOnyama Limba UNQUALIFIED
Kaitlin I GauchoArgentinaAnna Fali NEW
David M SaylorsSpainStephen Shaw NEW
Johnson I PoquetteIndiaAmy Elsner NEGOTIATION
Aditya Z KolmetzBrazilAnna Fali RENEWAL
Ashley O ShinkoJapanAsiya Javayant PROPOSAL
Aruna D StensethArgentinaAsiya Javayant QUALIFIED
Maisha F KuskoRussiaAnna Fali QUALIFIED
Mujtaba C SlusarskiArgentinaIvan Magalhaes RENEWAL
Kaitlin V WieserJapanXuxue Feng RENEWAL
Maisha Y RutaArgentinaAnna Fali PROPOSAL
Jefferson C PoquetteBrazilAmy Elsner RENEWAL
Deepesh M CaudyUnited KingdomIoni Bowcher RENEWAL
Isabel V CampainRussiaAsiya Javayant QUALIFIED
Silvio W CaudyArgentinaAsiya Javayant NEW
Ivar H BowleyGermanyStephen Shaw NEW
Misaki P KolmetzCanadaStephen Shaw UNQUALIFIED
Mayumi I NickaBrazilBernardo Dominic QUALIFIED
Deepesh A GauchoFranceAmy Elsner UNQUALIFIED
Johnson D RimItalyAnna Fali QUALIFIED
Ricardo T KolmetzSpainIvan Magalhaes PROPOSAL
Aika J MaletUnited KingdomAnna Fali RENEWAL
Ricardo C WhobreyArgentinaBernardo Dominic UNQUALIFIED
Jones P GauchoIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Johnson G Caudy
Murillo U Caldarera
Leja W Maclead
Tony S Oldroyd
Costa M Inouye
Stacey N Chui
Ivar T Caldarera
Jennifer N Kusko
Johnson H Nicka
Maria M Nestle
Kaitlin L Garufi
David Y Kusko
Leon O Perin
Leja B Slusarski
Kaitlin R Waycott
Emily I Royster
Mayumi G Marrier
Cody G Inouye
Aika G Ferencz
Misaki A Poquette
Leon C Saylors
Tony V Ruta
Deepesh O Doe
Leja V Poquette
Alejandro O Royster
Mayumi T Ruta
Aruna D Campain
Murillo Z Perin
Stacey H Shinko
James D Caldarera
Antonio X Sergi
Emily S Dilliard
Isabel S Flosi
Jefferson J Kolmetz
Ivar N Saylors
Stacey Y Foller
Aditya K Stockham
Johnson M Paprocki
Cody G Wieser
Cody A Rulapaugh
Kaitlin M Iturbide
Deepesh L Malet
Isabel X Rim
Jones P Flosi
Salvatore C Garufi
Nicolas E Malet
Rodrigues W Bolognia
Alejandro N Darakjy
Misaki G Chui
Wickens Y Caudy
IdCountryDate
1000United Kingdom2025-10-16
1001United Kingdom2025-10-02
1002Italy2025-09-27
1003Russia2025-10-16
1004Japan2025-09-23
1005Argentina2025-09-25
1006Australia2025-10-10
1007Brazil2025-10-02
1008France2025-09-30
1009Canada2025-10-20
1010Japan2025-10-17
1011Brazil2025-10-06
1012India2025-09-26
1013United Kingdom2025-10-07
1014Germany2025-10-14
1015Spain2025-10-09
1016Japan2025-10-22
1017Italy2025-10-07
1018Russia2025-09-27
1019Australia2025-10-17
1020Argentina2025-10-20
1021Canada2025-10-21
1022United Kingdom2025-10-17
1023Argentina2025-10-08
1024Brazil2025-10-04
1025Canada2025-10-09
1026Brazil2025-10-06
1027Germany2025-10-01
1028Spain2025-09-28
1029France2025-10-09
1030Argentina2025-10-16
1031France2025-10-08
1032Argentina2025-09-27
1033France2025-09-25
1034Italy2025-10-20
1035India2025-09-23
1036Japan2025-09-27
1037France2025-09-24
1038Brazil2025-10-08
1039Canada2025-09-23
1040Russia2025-10-06
1041United Kingdom2025-10-14
1042Brazil2025-09-28
1043Australia2025-10-05
1044Germany2025-10-09
1045United Kingdom2025-09-29
1046United Kingdom2025-10-19
1047Brazil2025-09-28
1048Canada2025-10-14
1049Russia2025-09-25

On-Demand Data

NameIdCountryDate
Darci S Paprocki1000Russia2025-10-01
Misaki Z Foller1001Germany2025-10-19
Mayumi G Wieser1002Germany2025-09-27
Maria U Albares1003France2025-10-21
Claire A Bolognia1004India2025-10-01
Izzy H Malet1005Canada2025-09-26
Jefferson I Caldarera1006Brazil2025-10-13
Antonio R Whobrey1007Germany2025-09-29
Arvin T Kusko1008Canada2025-10-21
Antonio A Poquette1009Spain2025-10-22
Misaki W Caudy1010Japan2025-10-21
Leon V Foller1011Brazil2025-09-27
Jeanfrancois P Tollner1012Australia2025-09-26
Aditya U Oldroyd1013Japan2025-10-02
Munro Y Garufi1014France2025-10-01
Adams C Venere1015United Kingdom2025-10-04
Costa D Doe1016Brazil2025-10-17
David N Ostrosky1017Japan2025-10-22
Aika C Kusko1018United Kingdom2025-10-17
Mayumi J Kusko1019Australia2025-09-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois V SlusarskiIndiaIoni Bowcher RENEWAL
Isabel M FollerArgentinaStephen Shaw NEGOTIATION
Faith E FerenczRussiaIvan Magalhaes UNQUALIFIED
Rodrigues Z CaldareraFranceXuxue Feng QUALIFIED
James V MaletArgentinaBernardo Dominic RENEWAL
Leja A WaycottFranceStephen Shaw NEW
Kadeem G RulapaughCanadaIoni Bowcher UNQUALIFIED
Rodrigues B RulapaughArgentinaElwin Sharvill UNQUALIFIED
Cody A NickaAustraliaElwin Sharvill QUALIFIED
Claire U SergiGermanyIvan Magalhaes NEGOTIATION
Claire R WhobreyIndiaXuxue Feng NEW
Maria K NestleArgentinaOnyama Limba UNQUALIFIED
Darci Z RulapaughIndiaAnna Fali RENEWAL
Juan V CaldareraIndiaStephen Shaw NEW
Isabel D DarakjyUnited KingdomStephen Shaw QUALIFIED
Deepesh C SlusarskiArgentinaXuxue Feng PROPOSAL
Leon A TollnerIndiaStephen Shaw QUALIFIED
Faith R KolmetzAustraliaOnyama Limba QUALIFIED
Isabel Q CampainIndiaAnna Fali QUALIFIED
Clifford Y PoquetteBrazilAnna Fali RENEWAL
David X TollnerIndiaIvan Magalhaes PROPOSAL
Claire L ChuiItalyAnna Fali NEGOTIATION
Maisha A BologniaRussiaIoni Bowcher UNQUALIFIED
Izzy N OstroskyCanadaXuxue Feng PROPOSAL
Mayumi A CampainJapanXuxue Feng QUALIFIED
Antonio J WaycottArgentinaAmy Elsner PROPOSAL
James D RimBrazilBernardo Dominic NEGOTIATION
Leon K SaylorsArgentinaAmy Elsner NEGOTIATION
David I IturbideArgentinaAmy Elsner UNQUALIFIED
Misaki K MacleadAustraliaXuxue Feng PROPOSAL
Leja F CaudyAustraliaStephen Shaw NEGOTIATION
Smith Z StockhamArgentinaOnyama Limba QUALIFIED
Arvin B SergiCanadaXuxue Feng RENEWAL
Costa V ButtUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues X AmigonItalyStephen Shaw UNQUALIFIED
Costa K MaletAustraliaAnna Fali NEGOTIATION
Aruna X TollnerArgentinaElwin Sharvill UNQUALIFIED
Isabel O ChuiFranceIvan Magalhaes NEW
Deepesh P NestleRussiaAsiya Javayant QUALIFIED
Mujtaba J FerenczSpainElwin Sharvill RENEWAL

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