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
Antonio G FerenczFranceAnna Fali NEW
Isabel N WaycottBrazilIoni Bowcher NEW
Morrow O VenereItalyAmy Elsner NEGOTIATION
Silvio M DoeAustraliaIoni Bowcher RENEWAL
Leja L DilliardSpainAmy Elsner RENEWAL
Wickens T IturbideItalyIoni Bowcher PROPOSAL
Juan W PoquetteArgentinaAmy Elsner QUALIFIED
Maisha P AmigonIndiaOnyama Limba UNQUALIFIED
Deepesh B WieserRussiaIoni Bowcher NEGOTIATION
Greenwood K InouyeCanadaIvan Magalhaes NEW
Antonio E SergiGermanyStephen Shaw QUALIFIED
Octavia S FlosiBrazilAsiya Javayant QUALIFIED
Izzy N FollerRussiaBernardo Dominic PROPOSAL
Greenwood P CaldareraGermanyAsiya Javayant UNQUALIFIED
Stacey W GauchoSpainXuxue Feng QUALIFIED
Leja W AmigonRussiaIoni Bowcher NEGOTIATION
Clifford C SlusarskiJapanIoni Bowcher NEGOTIATION
Aruna T WaycottSpainIvan Magalhaes NEGOTIATION
Aruna K DilliardItalyAsiya Javayant NEGOTIATION
Deepesh Y FlosiIndiaBernardo Dominic NEGOTIATION
Mujtaba R MaletJapanAsiya Javayant NEW
Rodrigues X StockhamUnited KingdomAnna Fali QUALIFIED
Darci J RutaUnited KingdomOnyama Limba QUALIFIED
Wickens V OstroskyJapanXuxue Feng UNQUALIFIED
Nicolas A WhobreyIndiaAmy Elsner UNQUALIFIED
Chavez L AmigonIndiaXuxue Feng QUALIFIED
Ashley N WhobreyCanadaIoni Bowcher NEW
Wickens Z ButtAustraliaElwin Sharvill UNQUALIFIED
Munro N FigeroaUnited KingdomOnyama Limba NEGOTIATION
Wickens I AlbaresCanadaIoni Bowcher QUALIFIED
Kaitlin G TollnerRussiaStephen Shaw UNQUALIFIED
Jefferson O GauchoSpainAnna Fali UNQUALIFIED
Faith I WaycottUnited KingdomBernardo Dominic QUALIFIED
Ashley M SergiSpainOnyama Limba NEGOTIATION
Stacey I SaylorsFranceAnna Fali NEW
Misaki U WaycottUnited KingdomIoni Bowcher NEW
Nicolas R CampainArgentinaAmy Elsner UNQUALIFIED
Stacey W NestleBrazilStephen Shaw NEW
Antonio F StockhamBrazilIoni Bowcher PROPOSAL
Maria E GauchoJapanElwin Sharvill NEGOTIATION
Greenwood K CampainJapanIvan Magalhaes RENEWAL
Mujtaba G PaprockiJapanXuxue Feng QUALIFIED
Stacey G ChuiBrazilElwin Sharvill PROPOSAL
Wickens M BologniaArgentinaOnyama Limba NEW
Misaki K MorascaCanadaAnna Fali PROPOSAL
Aruna A DilliardIndiaElwin Sharvill NEW
Smith W BologniaGermanyIvan Magalhaes UNQUALIFIED
Mayumi J PoquetteGermanyAnna Fali PROPOSAL
Claire C AlbaresBrazilAnna Fali RENEWAL
Aditya F OldroydRussiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas O GillianUnited KingdomIvan Magalhaes QUALIFIED
Jennifer A StensethRussiaAmy Elsner NEW
Wickens X WieserBrazilIoni Bowcher PROPOSAL
Octavia S CaudyCanadaOnyama Limba PROPOSAL
Jennifer T WieserSpainAsiya Javayant NEGOTIATION
Greenwood V StensethBrazilOnyama Limba NEGOTIATION
Tony B KolmetzIndiaOnyama Limba QUALIFIED
Aruna T OldroydAustraliaIoni Bowcher RENEWAL
Stacey X PoquetteArgentinaIvan Magalhaes NEGOTIATION
Isabel X FerenczSpainAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria J IturbideGermany2025-09-15Buckley Miller Wright NEGOTIATION97Ioni Bowcher
1001Emily B OstroskyUnited Kingdom2025-09-02Commercial Press NEGOTIATION92Anna Fali
1002Kaitlin B PaprockiArgentina2025-08-25Chemel, James L Cpa NEGOTIATION94Xuxue Feng
1003Julie L BologniaRussia2025-09-02Morlong Associates RENEWAL69Bernardo Dominic
1004Faith B RutaJapan2025-08-30Benton, John B Jr QUALIFIED65Bernardo Dominic
1005Faith C BriddickAustralia2025-09-16Chanay, Jeffrey A Esq NEW27Bernardo Dominic
1006David M ButtIndia2025-08-20Morlong Associates RENEWAL21Onyama Limba
1007Claire X RutaAustralia2025-08-24King, Christopher A Esq RENEWAL95Amy Elsner
1008James F FigeroaCanada2025-09-09Truhlar And Truhlar Attys QUALIFIED56Bernardo Dominic
1009Ashley H KolmetzAustralia2025-09-06Chemel, James L Cpa QUALIFIED57Anna Fali
1010Jeanfrancois C SergiBrazil2025-09-16Printing Dimensions NEGOTIATION22Stephen Shaw
1011Tony W ShinkoJapan2025-09-03Benton, John B Jr RENEWAL9Ioni Bowcher
1012Aruna H SaylorsJapan2025-09-01Chapman, Ross E Esq NEW12Ivan Magalhaes
1013Cody H RimSpain2025-08-25Chanay, Jeffrey A Esq RENEWAL67Bernardo Dominic
1014Francesco U MarrierGermany2025-09-15Truhlar And Truhlar Attys QUALIFIED42Anna Fali
1015Costa Q NestleArgentina2025-09-02Feiner Bros QUALIFIED86Ivan Magalhaes
1016Salvatore L MorascaRussia2025-08-29Truhlar And Truhlar Attys UNQUALIFIED2Xuxue Feng
1017Alejandro B KuskoUnited Kingdom2025-08-28Morlong Associates NEW23Asiya Javayant
1018Nicolas E IturbideIndia2025-08-29Dorl, James J Esq PROPOSAL48Stephen Shaw
1019Aika J InouyeIndia2025-09-15Printing Dimensions UNQUALIFIED58Ioni Bowcher
1020Leon Q WhobreyUnited Kingdom2025-09-06Benton, John B Jr NEW65Bernardo Dominic
1021Alejandro W ShinkoUnited Kingdom2025-08-30Feltz Printing Service UNQUALIFIED51Amy Elsner
1022Wickens W SaylorsJapan2025-09-05Dorl, James J Esq RENEWAL12Stephen Shaw
1023Murillo X MacleadCanada2025-09-08Feltz Printing Service NEGOTIATION22Elwin Sharvill
1024Juan X TollnerFrance2025-09-03King, Christopher A Esq QUALIFIED55Anna Fali
1025Ricardo Q FerenczGermany2025-09-15Rangoni Of Florence UNQUALIFIED32Amy Elsner
1026Ashley Z FollerCanada2025-09-11Chemel, James L Cpa RENEWAL49Amy Elsner
1027Jennifer H WieserAustralia2025-09-06Benton, John B Jr UNQUALIFIED27Asiya Javayant
1028David A TollnerJapan2025-08-29Benton, John B Jr QUALIFIED50Elwin Sharvill
1029Kadeem S InouyeFrance2025-08-31Chemel, James L Cpa QUALIFIED60Onyama Limba
1030Leja E FigeroaUnited Kingdom2025-08-23Printing Dimensions NEW10Ioni Bowcher
1031Darci L WieserIndia2025-08-25Rousseaux, Michael Esq NEW60Bernardo Dominic
1032Ivar C IturbideSpain2025-09-03Rousseaux, Michael Esq UNQUALIFIED23Stephen Shaw
1033Claire J RoysterGermany2025-08-27Chemel, James L Cpa NEGOTIATION27Ioni Bowcher
1034Aika E RulapaughItaly2025-09-11Buckley Miller Wright NEGOTIATION54Ioni Bowcher
1035Julie I RutaSpain2025-08-20Dorl, James J Esq PROPOSAL48Amy Elsner
1036Leja S ChuiSpain2025-08-29Feiner Bros NEW70Bernardo Dominic
1037Aditya C FigeroaJapan2025-09-11Feltz Printing Service RENEWAL57Xuxue Feng
1038Arvin O VenereFrance2025-09-01Printing Dimensions NEW43Ivan Magalhaes
1039Sinclair D DoeJapan2025-08-30Chapman, Ross E Esq NEGOTIATION57Stephen Shaw
1040Deepesh A NestleSpain2025-09-02Feiner Bros QUALIFIED64Anna Fali
1041Aika E MaletBrazil2025-09-02Rangoni Of Florence UNQUALIFIED62Stephen Shaw
1042Maisha C CaldareraIndia2025-08-29Buckley Miller Wright RENEWAL49Elwin Sharvill
1043Alejandro U IturbideArgentina2025-08-31Printing Dimensions NEW24Bernardo Dominic
1044Maria Q FerenczArgentina2025-08-31Benton, John B Jr RENEWAL12Asiya Javayant
1045Julie S MacleadAustralia2025-08-22Feiner Bros UNQUALIFIED33Anna Fali
1046Cody J DoeFrance2025-08-20Buckley Miller Wright QUALIFIED58Onyama Limba
1047Cody B AlbaresItaly2025-08-21Commercial Press NEW93Xuxue Feng
1048Smith M IturbideRussia2025-08-21Feltz Printing Service UNQUALIFIED83Stephen Shaw
1049Ashley O FollerFrance2025-09-11Chemel, James L Cpa RENEWAL36Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aika S DilliardIndiaAmy Elsner QUALIFIED
Ricardo G BriddickRussiaOnyama Limba NEGOTIATION
Mujtaba E RutaIndiaStephen Shaw PROPOSAL
Juan K RimFranceIvan Magalhaes UNQUALIFIED
Smith Y RulapaughIndiaAnna Fali QUALIFIED
Mayumi N SaylorsSpainXuxue Feng PROPOSAL
Murillo R AmigonAustraliaIvan Magalhaes NEGOTIATION
Stacey E MorascaGermanyBernardo Dominic NEW
Kaitlin T MaletAustraliaAnna Fali PROPOSAL
Claire N MaletAustraliaAnna Fali QUALIFIED
Alejandro Z IturbideCanadaOnyama Limba PROPOSAL
Aika U PerinFranceBernardo Dominic UNQUALIFIED
Juan N WhobreyGermanyOnyama Limba RENEWAL
Munro J DarakjySpainElwin Sharvill QUALIFIED
Sinclair L AlbaresItalyIoni Bowcher NEGOTIATION
Izzy W WieserIndiaIvan Magalhaes NEGOTIATION
Faith J SergiGermanyIoni Bowcher NEGOTIATION
Ashley E PaprockiJapanStephen Shaw PROPOSAL
Nicolas V InouyeUnited KingdomIoni Bowcher NEW
Sinclair C MaletCanadaAmy Elsner UNQUALIFIED
David N FigeroaUnited KingdomAsiya Javayant RENEWAL
Ivar F MaletRussiaIvan Magalhaes UNQUALIFIED
Ivar L RulapaughAustraliaIvan Magalhaes NEW
Munro U VenereSpainIoni Bowcher RENEWAL
Adams S CampainSpainAsiya Javayant QUALIFIED
Chavez I FigeroaIndiaIoni Bowcher PROPOSAL
Kaitlin N ButtGermanyAnna Fali PROPOSAL
Rodrigues H SlusarskiSpainIoni Bowcher RENEWAL
Aruna B GillianCanadaElwin Sharvill QUALIFIED
Juan I InouyeArgentinaIvan Magalhaes UNQUALIFIED
Isabel O WhobreyUnited KingdomAnna Fali UNQUALIFIED
Mayumi T IturbideFranceOnyama Limba UNQUALIFIED
Julie J PaprockiArgentinaAsiya Javayant NEGOTIATION
Antonio P GillianIndiaAnna Fali UNQUALIFIED
Smith G CaldareraAustraliaAmy Elsner NEGOTIATION
Mayumi H SaylorsGermanyElwin Sharvill NEW
Maisha G NickaIndiaIoni Bowcher NEGOTIATION
Jones L VenereBrazilAnna Fali PROPOSAL
Wickens H PoquetteRussiaStephen Shaw NEGOTIATION
Deepesh V SchemmerRussiaOnyama Limba NEW
Jones H DoeIndiaAsiya Javayant RENEWAL
Antonio S DoeItalyOnyama Limba PROPOSAL
Rodrigues E VenereBrazilAmy Elsner QUALIFIED
Misaki P InouyeArgentinaAnna Fali RENEWAL
Tony E MorascaAustraliaIvan Magalhaes NEW
Munro M MarrierRussiaXuxue Feng NEW
Julie L PoquetteRussiaAmy Elsner NEW
Alejandro T OldroydArgentinaOnyama Limba NEGOTIATION
Johnson M BriddickBrazilIvan Magalhaes NEW
Jennifer L GauchoBrazilIvan Magalhaes QUALIFIED
Frozen Columns
Name
Antonio I Flosi
Julie U Glick
Ricardo N Saylors
Nicolas A Glick
Chavez H Nicka
Costa P Paprocki
Darci R Wieser
Cody Y Ostrosky
Greenwood O Bolognia
Munro Y Royster
Izzy A Kusko
Ashley L Amigon
Deepesh A Gillian
James R Kolmetz
Silvio M Royster
Jefferson Y Stockham
Ricardo B Ferencz
Antonio E Malet
Adams J Nestle
Kadeem E Butt
Aditya W Foller
Ashley N Slusarski
Aika C Bolognia
Leja G Schemmer
Aruna T Rim
Johnson H Marrier
Kadeem Y Sergi
Kadeem U Stenseth
Alejandro U Doe
Ivar A Caudy
Arvin N Paprocki
Aruna O Briddick
Kaitlin N Briddick
Munro O Ruta
Smith H Nicka
Salvatore B Stockham
Sinclair T Stockham
Arvin H Venere
Julie G Foller
Antonio Q Dilliard
Emily I Malet
Adams Y Iturbide
Tony S Butt
Ivar R Gillian
Tony U Ruta
Kaitlin H Campain
Chavez V Campain
Jefferson Y Rim
Munro A Kolmetz
Silvio Z Bowley
IdCountryDate
1000France2025-09-01
1001Russia2025-08-23
1002Brazil2025-09-01
1003Australia2025-09-11
1004Japan2025-09-06
1005Russia2025-09-11
1006France2025-08-26
1007France2025-08-29
1008Argentina2025-09-05
1009Brazil2025-08-30
1010India2025-09-16
1011France2025-08-30
1012Argentina2025-09-02
1013India2025-09-11
1014Russia2025-09-12
1015Brazil2025-09-09
1016France2025-09-02
1017Italy2025-08-25
1018France2025-08-28
1019Argentina2025-09-15
1020India2025-09-12
1021United Kingdom2025-08-20
1022Spain2025-08-31
1023Russia2025-09-06
1024Canada2025-09-14
1025India2025-09-15
1026Russia2025-09-09
1027Australia2025-09-03
1028Spain2025-08-29
1029Germany2025-09-11
1030Argentina2025-08-30
1031Russia2025-08-21
1032Russia2025-08-21
1033Brazil2025-09-07
1034Australia2025-08-22
1035India2025-08-22
1036Australia2025-09-16
1037Brazil2025-08-20
1038France2025-09-16
1039Japan2025-08-24
1040Italy2025-09-13
1041Canada2025-08-24
1042Japan2025-08-25
1043Argentina2025-08-19
1044Japan2025-09-12
1045Canada2025-09-13
1046Argentina2025-08-25
1047Russia2025-09-13
1048Italy2025-09-13
1049Russia2025-08-23

On-Demand Data

NameIdCountryDate
Aruna J Saylors1000Canada2025-08-23
Clifford T Wieser1001Argentina2025-09-13
Stacey M Perin1002Russia2025-09-06
Deepesh C Stenseth1003France2025-09-14
Tony F Shinko1004Germany2025-09-13
Wickens J Slusarski1005Italy2025-08-24
Izzy Y Inouye1006France2025-08-31
Tony T Ostrosky1007Russia2025-09-07
Maisha S Malet1008Italy2025-09-06
Claire M Shinko1009Russia2025-08-29
Jefferson C Nestle1010France2025-08-28
Smith K Stockham1011Italy2025-08-22
Adams R Saylors1012Brazil2025-09-08
Isabel M Bolognia1013Canada2025-09-08
Sinclair F Rim1014Australia2025-09-01
Ashley J Albares1015United Kingdom2025-08-20
Aruna M Schemmer1016Germany2025-09-17
Aruna N Ostrosky1017United Kingdom2025-08-19
Aika U Tollner1018Argentina2025-09-13
Ashley U Perin1019Canada2025-09-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon D BriddickBrazilStephen Shaw UNQUALIFIED
James T AlbaresSpainStephen Shaw PROPOSAL
Maria U DoeAustraliaAsiya Javayant UNQUALIFIED
Kadeem E KolmetzArgentinaAnna Fali NEW
Johnson T DoeItalyAsiya Javayant UNQUALIFIED
Maria F StensethBrazilAmy Elsner NEW
Clifford G AlbaresJapanXuxue Feng PROPOSAL
Munro I BriddickBrazilAsiya Javayant QUALIFIED
Leja F RoysterSpainStephen Shaw NEW
Morrow I AmigonBrazilAnna Fali UNQUALIFIED
Greenwood T SaylorsBrazilAnna Fali NEW
Smith O RulapaughCanadaStephen Shaw NEW
Ivar W FerenczArgentinaBernardo Dominic NEGOTIATION
Clifford U GarufiArgentinaElwin Sharvill NEW
Ivar C BowleyAustraliaXuxue Feng QUALIFIED
Johnson X TollnerArgentinaXuxue Feng UNQUALIFIED
Murillo F StockhamUnited KingdomAsiya Javayant NEW
Antonio P WhobreyGermanyIvan Magalhaes NEGOTIATION
Aditya N KuskoCanadaBernardo Dominic NEW
Jeanfrancois M RutaRussiaIvan Magalhaes RENEWAL
Salvatore O CaldareraArgentinaBernardo Dominic NEGOTIATION
Munro K PerinJapanOnyama Limba QUALIFIED
Julie F RulapaughJapanXuxue Feng PROPOSAL
Salvatore T DarakjyArgentinaIvan Magalhaes NEW
Ricardo X TollnerJapanAsiya Javayant UNQUALIFIED
Maria K MaletBrazilElwin Sharvill UNQUALIFIED
Faith Q WhobreyArgentinaAsiya Javayant NEGOTIATION
Ashley T KuskoBrazilAmy Elsner PROPOSAL
Darci K BriddickSpainAsiya Javayant UNQUALIFIED
Wickens B MorascaArgentinaAmy Elsner NEGOTIATION
Leja M GarufiRussiaAnna Fali NEW
James I DoeGermanyBernardo Dominic UNQUALIFIED
Ashley V SergiIndiaIoni Bowcher RENEWAL
Isabel X CaldareraIndiaOnyama Limba UNQUALIFIED
Juan I CaldareraRussiaIvan Magalhaes QUALIFIED
Nicolas O RulapaughGermanyStephen Shaw QUALIFIED
Chavez J AmigonIndiaBernardo Dominic QUALIFIED
Darci E WaycottSpainAnna Fali PROPOSAL
Ivar O GillianUnited KingdomElwin Sharvill RENEWAL
Cody D ButtJapanIoni Bowcher 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>