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
Chavez I BowleyCanadaIoni Bowcher NEGOTIATION
Mayumi C WieserSpainAsiya Javayant UNQUALIFIED
Alejandro J SlusarskiBrazilElwin Sharvill QUALIFIED
Salvatore U FerenczArgentinaAnna Fali NEW
Maisha M GlickAustraliaXuxue Feng NEGOTIATION
Maisha D PoquetteJapanAnna Fali NEW
Rodrigues J ButtGermanyXuxue Feng RENEWAL
Julie A AmigonItalyBernardo Dominic NEGOTIATION
Kaitlin V NestleAustraliaAsiya Javayant UNQUALIFIED
Deepesh B AmigonBrazilAmy Elsner UNQUALIFIED
Izzy B PoquetteJapanIoni Bowcher RENEWAL
Smith Q BowleyJapanStephen Shaw NEW
Ashley M PerinGermanyOnyama Limba QUALIFIED
Faith U RutaCanadaAsiya Javayant NEGOTIATION
Stacey L AlbaresItalyIoni Bowcher UNQUALIFIED
Jennifer U ButtAustraliaElwin Sharvill PROPOSAL
Salvatore S VocelkaCanadaIvan Magalhaes NEGOTIATION
Francesco K KuskoCanadaAsiya Javayant QUALIFIED
Arvin T ShinkoRussiaOnyama Limba PROPOSAL
Darci N MarrierItalyElwin Sharvill PROPOSAL
David U OldroydFranceIoni Bowcher PROPOSAL
Ivar Q InouyeItalyXuxue Feng NEGOTIATION
Antonio T BriddickSpainIoni Bowcher NEW
Misaki S SchemmerUnited KingdomBernardo Dominic RENEWAL
Chavez X AmigonFranceOnyama Limba PROPOSAL
Wickens B BologniaRussiaStephen Shaw NEW
Munro W TollnerFranceIvan Magalhaes RENEWAL
Arvin C GauchoRussiaAnna Fali NEW
Darci Q PaprockiRussiaIoni Bowcher UNQUALIFIED
Francesco N BologniaCanadaXuxue Feng PROPOSAL
Antonio T BologniaItalyAnna Fali NEW
Juan K IturbideRussiaAmy Elsner NEGOTIATION
Claire H StensethIndiaStephen Shaw PROPOSAL
Kadeem T FollerBrazilBernardo Dominic NEW
Arvin E CampainUnited KingdomStephen Shaw NEW
Francesco A VenereArgentinaAnna Fali NEW
Jennifer G SchemmerSpainBernardo Dominic PROPOSAL
Aditya B RoysterBrazilAsiya Javayant PROPOSAL
Isabel H WieserItalyIoni Bowcher RENEWAL
Smith V PaprockiGermanyOnyama Limba NEW
Jefferson K ButtFranceIvan Magalhaes RENEWAL
Jennifer I BologniaSpainXuxue Feng QUALIFIED
Jefferson S GarufiUnited KingdomOnyama Limba RENEWAL
Silvio O VocelkaIndiaIoni Bowcher RENEWAL
Jones I MaletArgentinaXuxue Feng NEW
Maisha C FlosiJapanIoni Bowcher UNQUALIFIED
Nicolas O RimJapanAsiya Javayant NEGOTIATION
Jefferson P FollerFranceXuxue Feng RENEWAL
Adams K MacleadFranceAsiya Javayant PROPOSAL
Aditya N StockhamRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois S MorascaFranceXuxue Feng UNQUALIFIED
Jennifer B MorascaArgentinaElwin Sharvill UNQUALIFIED
Ricardo P StensethUnited KingdomOnyama Limba PROPOSAL
Sinclair G MorascaRussiaIvan Magalhaes QUALIFIED
Munro X NickaUnited KingdomStephen Shaw RENEWAL
Costa E WieserIndiaStephen Shaw RENEWAL
Aruna B SchemmerIndiaElwin Sharvill NEW
Francesco X GauchoSpainAsiya Javayant NEGOTIATION
Mujtaba I RimJapanIvan Magalhaes QUALIFIED
Ricardo K KolmetzJapanOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily S BowleyJapan2025-07-26Rousseaux, Michael Esq NEGOTIATION94Bernardo Dominic
1001Leja F InouyeCanada2025-07-19Chapman, Ross E Esq NEW26Bernardo Dominic
1002Darci Q MarrierBrazil2025-07-09Morlong Associates NEW14Asiya Javayant
1003Izzy Q MarrierIndia2025-07-13King, Christopher A Esq PROPOSAL58Stephen Shaw
1004Tony K GauchoSpain2025-08-02Printing Dimensions NEW83Bernardo Dominic
1005Jennifer X FollerSpain2025-07-31King, Christopher A Esq PROPOSAL12Xuxue Feng
1006Wickens B RoysterUnited Kingdom2025-07-14King, Christopher A Esq NEGOTIATION28Stephen Shaw
1007Leon A SergiArgentina2025-08-04Feiner Bros PROPOSAL88Elwin Sharvill
1008Mujtaba A MaletFrance2025-07-08Feiner Bros NEW25Anna Fali
1009Emily I RimBrazil2025-08-03Chanay, Jeffrey A Esq PROPOSAL49Stephen Shaw
1010Cody G MacleadIndia2025-07-19Truhlar And Truhlar Attys RENEWAL11Ioni Bowcher
1011David H DilliardIndia2025-07-18Morlong Associates UNQUALIFIED90Elwin Sharvill
1012Ashley K RutaJapan2025-07-16Rangoni Of Florence NEW87Ivan Magalhaes
1013James F ShinkoUnited Kingdom2025-07-07Rangoni Of Florence PROPOSAL12Amy Elsner
1014Darci W FlosiRussia2025-07-26Benton, John B Jr NEGOTIATION93Bernardo Dominic
1015Greenwood W InouyeBrazil2025-07-11Morlong Associates NEGOTIATION99Onyama Limba
1016Smith W NickaUnited Kingdom2025-07-26Chemel, James L Cpa NEW19Bernardo Dominic
1017Morrow U DarakjyIndia2025-07-06Morlong Associates PROPOSAL68Onyama Limba
1018Aruna R PaprockiArgentina2025-07-26Buckley Miller Wright RENEWAL22Xuxue Feng
1019Juan F FigeroaArgentina2025-07-21Benton, John B Jr RENEWAL59Xuxue Feng
1020Izzy E WieserBrazil2025-07-15Feltz Printing Service RENEWAL0Asiya Javayant
1021Costa V BologniaIndia2025-07-18Benton, John B Jr QUALIFIED22Amy Elsner
1022Faith B OldroydSpain2025-07-23Printing Dimensions NEW38Asiya Javayant
1023Clifford B PoquetteCanada2025-07-25Feiner Bros RENEWAL28Anna Fali
1024Leja G MorascaJapan2025-07-27Chemel, James L Cpa PROPOSAL36Asiya Javayant
1025Chavez V FlosiGermany2025-07-30Printing Dimensions NEGOTIATION27Elwin Sharvill
1026Nicolas M DilliardArgentina2025-07-14Chapman, Ross E Esq PROPOSAL73Ivan Magalhaes
1027Alejandro U PoquetteArgentina2025-07-09Printing Dimensions UNQUALIFIED14Onyama Limba
1028Chavez E DoeItaly2025-07-19Feiner Bros NEW34Elwin Sharvill
1029Nicolas D VocelkaUnited Kingdom2025-07-14Chanay, Jeffrey A Esq UNQUALIFIED70Stephen Shaw
1030Darci F PerinItaly2025-07-12Printing Dimensions QUALIFIED9Asiya Javayant
1031Darci H CampainBrazil2025-07-28Truhlar And Truhlar Attys RENEWAL14Bernardo Dominic
1032Deepesh V InouyeRussia2025-07-23Chapman, Ross E Esq NEW60Ioni Bowcher
1033Leja O RoysterSpain2025-07-06Feiner Bros QUALIFIED36Ivan Magalhaes
1034Jeanfrancois F DilliardGermany2025-07-25Commercial Press UNQUALIFIED69Xuxue Feng
1035Johnson D IturbideCanada2025-07-30Benton, John B Jr NEW95Xuxue Feng
1036Ivar E VenereSpain2025-07-12Commercial Press QUALIFIED94Ivan Magalhaes
1037Misaki U GlickCanada2025-07-25Commercial Press NEW82Bernardo Dominic
1038Juan T MaletBrazil2025-07-25Feltz Printing Service NEW6Amy Elsner
1039Antonio Q IturbideJapan2025-07-12Chemel, James L Cpa UNQUALIFIED34Anna Fali
1040Silvio X WaycottIndia2025-07-06Buckley Miller Wright NEW79Amy Elsner
1041Aditya T BowleyRussia2025-07-30Feiner Bros NEGOTIATION39Xuxue Feng
1042Deepesh Z ButtCanada2025-07-26Truhlar And Truhlar Attys RENEWAL86Ivan Magalhaes
1043Aditya O BriddickCanada2025-07-22Chanay, Jeffrey A Esq RENEWAL9Onyama Limba
1044Antonio M RimItaly2025-07-22Commercial Press PROPOSAL3Stephen Shaw
1045Francesco A AmigonArgentina2025-08-02Chapman, Ross E Esq UNQUALIFIED59Onyama Limba
1046Juan D DilliardSpain2025-07-29Printing Dimensions QUALIFIED56Elwin Sharvill
1047Ashley R StensethBrazil2025-07-16Feiner Bros UNQUALIFIED20Bernardo Dominic
1048Adams T ShinkoJapan2025-07-28Rousseaux, Michael Esq RENEWAL9Bernardo Dominic
1049Adams J OldroydFrance2025-07-30Feltz Printing Service QUALIFIED28Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jones J BologniaItalyBernardo Dominic RENEWAL
Nicolas M GlickAustraliaStephen Shaw QUALIFIED
Claire R OldroydUnited KingdomStephen Shaw NEW
Clifford H MarrierRussiaAsiya Javayant QUALIFIED
Chavez F GarufiAustraliaBernardo Dominic PROPOSAL
Murillo W DoeAustraliaAmy Elsner QUALIFIED
Mujtaba C AmigonItalyXuxue Feng NEGOTIATION
Ricardo J KuskoFranceAmy Elsner QUALIFIED
Tony O WieserAustraliaIoni Bowcher RENEWAL
Silvio M StensethJapanAmy Elsner RENEWAL
Maisha D OstroskyRussiaAnna Fali QUALIFIED
Jones P RoysterJapanOnyama Limba PROPOSAL
Francesco L PerinCanadaAnna Fali RENEWAL
Adams T RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Emily T FollerSpainAmy Elsner RENEWAL
Leon M PaprockiBrazilIvan Magalhaes QUALIFIED
Misaki I NestleUnited KingdomStephen Shaw RENEWAL
Alejandro C VenereFranceOnyama Limba NEGOTIATION
Munro T BologniaUnited KingdomOnyama Limba NEW
Stacey D MarrierUnited KingdomAnna Fali UNQUALIFIED
Nicolas J BowleyAustraliaXuxue Feng RENEWAL
Leja L VenereAustraliaOnyama Limba PROPOSAL
David P IturbideRussiaAsiya Javayant RENEWAL
Silvio V SchemmerBrazilStephen Shaw PROPOSAL
Aika O GillianCanadaOnyama Limba UNQUALIFIED
Leon K WhobreyItalyOnyama Limba RENEWAL
Nicolas O SergiGermanyAsiya Javayant RENEWAL
Julie F RutaBrazilAsiya Javayant NEW
Izzy H SergiBrazilAsiya Javayant UNQUALIFIED
Adams X DilliardFranceElwin Sharvill QUALIFIED
Jennifer O WieserGermanyStephen Shaw RENEWAL
Jones Y FlosiArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois A MaletFranceAnna Fali NEGOTIATION
Ivar W RimAustraliaBernardo Dominic QUALIFIED
Aditya W MacleadCanadaIvan Magalhaes UNQUALIFIED
Clifford B AlbaresCanadaIvan Magalhaes NEW
Silvio Q SlusarskiIndiaAmy Elsner RENEWAL
Johnson W FigeroaArgentinaIoni Bowcher RENEWAL
Julie K DarakjyGermanyIoni Bowcher QUALIFIED
Leon V KuskoRussiaIoni Bowcher PROPOSAL
Jeanfrancois Q GlickSpainIoni Bowcher NEW
Jones Z NestleIndiaOnyama Limba NEGOTIATION
Mujtaba J StensethBrazilIvan Magalhaes UNQUALIFIED
James K KolmetzIndiaAmy Elsner UNQUALIFIED
Maria X FigeroaSpainIoni Bowcher RENEWAL
Cody A GlickCanadaOnyama Limba UNQUALIFIED
Stacey U BologniaAustraliaIoni Bowcher UNQUALIFIED
Jeanfrancois D OldroydUnited KingdomStephen Shaw QUALIFIED
Alejandro F FollerGermanyOnyama Limba RENEWAL
Arvin K DoeBrazilIvan Magalhaes NEW
Frozen Columns
Name
Mayumi X Gillian
Jeanfrancois S Flosi
Arvin J Chui
Salvatore L Oldroyd
Munro K Chui
Nicolas G Sergi
Silvio V Maclead
Octavia B Ruta
Juan Y Maclead
Darci V Perin
Arvin V Figeroa
Francesco H Amigon
Salvatore H Bolognia
Juan B Nestle
Jefferson U Iturbide
Kadeem F Venere
Costa I Whobrey
Julie F Rulapaugh
Adams V Shinko
Silvio O Venere
Leon V Flosi
David S Maclead
Mujtaba F Glick
Morrow U Butt
Faith L Bowley
Murillo N Figeroa
Rodrigues G Gillian
Octavia Y Shinko
Rodrigues N Ostrosky
Maisha N Rim
Smith L Inouye
Maria E Royster
Nicolas L Iturbide
Deepesh S Bolognia
Tony O Whobrey
Deepesh Q Nicka
Chavez D Iturbide
Arvin I Oldroyd
Mayumi U Butt
Leja E Nicka
Cody I Ferencz
Alejandro F Venere
Mujtaba B Bolognia
Tony D Paprocki
Maria K Figeroa
Silvio Q Venere
Ricardo B Garufi
Arvin M Malet
Ashley P Schemmer
Jefferson M Caudy
IdCountryDate
1000United Kingdom2025-07-16
1001Argentina2025-07-12
1002Canada2025-07-26
1003Brazil2025-07-07
1004Germany2025-07-31
1005Japan2025-07-07
1006Brazil2025-07-08
1007Italy2025-07-10
1008India2025-07-23
1009France2025-07-10
1010Japan2025-07-06
1011Germany2025-07-28
1012Australia2025-07-19
1013France2025-07-20
1014India2025-07-26
1015Japan2025-08-01
1016Germany2025-07-15
1017France2025-07-30
1018United Kingdom2025-07-31
1019Russia2025-07-11
1020India2025-08-03
1021Brazil2025-07-26
1022Italy2025-07-11
1023Canada2025-07-19
1024Australia2025-07-15
1025India2025-07-25
1026Japan2025-07-26
1027Italy2025-07-13
1028India2025-07-28
1029Germany2025-08-04
1030Germany2025-07-23
1031United Kingdom2025-07-16
1032France2025-07-16
1033Canada2025-08-02
1034United Kingdom2025-07-21
1035Brazil2025-07-19
1036Russia2025-07-12
1037Spain2025-07-10
1038Italy2025-07-12
1039Australia2025-07-23
1040United Kingdom2025-07-14
1041France2025-08-03
1042India2025-07-24
1043India2025-07-14
1044France2025-07-20
1045France2025-07-16
1046Japan2025-07-19
1047Canada2025-07-08
1048Japan2025-07-26
1049Italy2025-07-09

On-Demand Data

NameIdCountryDate
Maisha S Briddick1000France2025-07-11
Sinclair V Malet1001Spain2025-08-01
Johnson V Ruta1002Canada2025-07-22
Cody E Saylors1003Italy2025-07-26
Johnson P Malet1004Australia2025-07-31
Izzy R Rim1005Germany2025-07-14
Antonio W Stockham1006Spain2025-07-24
Claire Q Garufi1007Spain2025-07-23
Stacey J Schemmer1008Australia2025-07-24
James N Albares1009Brazil2025-08-03
Arvin X Tollner1010Canada2025-07-23
Emily P Schemmer1011Japan2025-07-11
Cody U Morasca1012Argentina2025-07-28
Wickens P Royster1013United Kingdom2025-07-27
Faith C Maclead1014Russia2025-07-25
Salvatore T Inouye1015Spain2025-07-15
Kaitlin D Oldroyd1016India2025-07-21
Julie J Albares1017Canada2025-07-12
Aika R Stockham1018Italy2025-08-01
Kaitlin U Garufi1019United Kingdom2025-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro C NickaSpainElwin Sharvill PROPOSAL
Juan S RoysterUnited KingdomStephen Shaw UNQUALIFIED
Leja I MarrierArgentinaElwin Sharvill NEW
Murillo U FerenczUnited KingdomElwin Sharvill PROPOSAL
Deepesh J OstroskyItalyIvan Magalhaes UNQUALIFIED
Jennifer W VenereIndiaXuxue Feng NEW
Mujtaba I AlbaresIndiaXuxue Feng NEGOTIATION
Claire V VocelkaItalyAmy Elsner PROPOSAL
Claire O AlbaresArgentinaIoni Bowcher RENEWAL
Nicolas N AlbaresIndiaIoni Bowcher RENEWAL
Ivar J AmigonRussiaElwin Sharvill UNQUALIFIED
Kaitlin L CampainArgentinaAsiya Javayant RENEWAL
Alejandro L NestleSpainXuxue Feng RENEWAL
Cody N MacleadItalyElwin Sharvill NEW
Leon W TollnerRussiaOnyama Limba NEW
Stacey D SaylorsFranceElwin Sharvill PROPOSAL
Emily C NickaIndiaAnna Fali NEGOTIATION
Ricardo D GauchoRussiaXuxue Feng NEW
Stacey P RoysterSpainBernardo Dominic NEW
Jeanfrancois T SlusarskiBrazilBernardo Dominic RENEWAL
Ashley Z CaldareraBrazilIvan Magalhaes NEW
Juan X CaldareraArgentinaIoni Bowcher QUALIFIED
Jones S GauchoCanadaStephen Shaw UNQUALIFIED
Tony P MaletCanadaAmy Elsner NEGOTIATION
Jeanfrancois V GillianJapanIvan Magalhaes UNQUALIFIED
Munro T SergiItalyIvan Magalhaes PROPOSAL
Isabel Z NickaSpainBernardo Dominic QUALIFIED
Darci Q SergiCanadaOnyama Limba RENEWAL
Izzy Z StensethRussiaAsiya Javayant RENEWAL
Julie L ButtCanadaAsiya Javayant PROPOSAL
Chavez B DoeCanadaXuxue Feng PROPOSAL
Jennifer M WieserArgentinaBernardo Dominic RENEWAL
Jones L MaletSpainAmy Elsner RENEWAL
Greenwood D TollnerRussiaAnna Fali QUALIFIED
Kadeem U BologniaAustraliaXuxue Feng RENEWAL
Octavia J RoysterJapanOnyama Limba PROPOSAL
Darci A FerenczArgentinaIvan Magalhaes NEW
Isabel S BowleyBrazilBernardo Dominic QUALIFIED
Jeanfrancois B GauchoBrazilElwin Sharvill RENEWAL
James O DoeGermanyOnyama Limba 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>