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
Wickens L GauchoFranceElwin Sharvill RENEWAL
Arvin D StockhamRussiaBernardo Dominic UNQUALIFIED
Munro G SlusarskiBrazilAnna Fali RENEWAL
Morrow Q IturbideJapanOnyama Limba PROPOSAL
Morrow Z StockhamArgentinaOnyama Limba NEW
Munro K PoquetteRussiaElwin Sharvill QUALIFIED
Ashley U PoquetteRussiaXuxue Feng NEGOTIATION
Costa N OldroydArgentinaBernardo Dominic NEGOTIATION
Maria S GillianBrazilIvan Magalhaes NEW
Chavez W BriddickRussiaAmy Elsner NEGOTIATION
Arvin E SergiIndiaBernardo Dominic NEGOTIATION
Ricardo Y FigeroaArgentinaXuxue Feng QUALIFIED
Darci B PaprockiArgentinaStephen Shaw QUALIFIED
Tony H CampainJapanStephen Shaw QUALIFIED
Mujtaba P NickaItalyIoni Bowcher UNQUALIFIED
Morrow G KuskoSpainXuxue Feng PROPOSAL
Chavez P AlbaresArgentinaIoni Bowcher UNQUALIFIED
Murillo G RutaGermanyElwin Sharvill NEGOTIATION
Alejandro G FerenczJapanStephen Shaw PROPOSAL
Silvio U CaldareraArgentinaAnna Fali NEGOTIATION
Tony H FerenczIndiaAmy Elsner PROPOSAL
Rodrigues D OstroskyIndiaIvan Magalhaes PROPOSAL
Emily Z NestleAustraliaIoni Bowcher UNQUALIFIED
Faith V IturbideBrazilOnyama Limba NEW
Misaki G AlbaresCanadaAmy Elsner NEW
Emily X DilliardFranceOnyama Limba PROPOSAL
Antonio Q RulapaughCanadaIvan Magalhaes PROPOSAL
Arvin W GauchoGermanyBernardo Dominic RENEWAL
Smith P BologniaAustraliaStephen Shaw PROPOSAL
Arvin W MarrierJapanAsiya Javayant UNQUALIFIED
Adams F FollerRussiaAmy Elsner NEW
Wickens P FerenczFranceIoni Bowcher QUALIFIED
Ricardo K CaudyRussiaIoni Bowcher NEW
Leja J DarakjyAustraliaAnna Fali PROPOSAL
Isabel L RutaUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba P SaylorsGermanyAnna Fali UNQUALIFIED
Ashley C PoquetteAustraliaIoni Bowcher RENEWAL
Jefferson I DilliardCanadaAmy Elsner NEW
Leja S OldroydItalyOnyama Limba QUALIFIED
Cody B PaprockiFranceBernardo Dominic QUALIFIED
Mayumi G RutaItalyAsiya Javayant RENEWAL
Rodrigues L MarrierGermanyAsiya Javayant QUALIFIED
Julie N AlbaresFranceXuxue Feng RENEWAL
Francesco Z NickaIndiaAmy Elsner NEW
Octavia Z RutaItalyIoni Bowcher RENEWAL
Faith Z TollnerAustraliaStephen Shaw NEW
Faith I GlickBrazilAmy Elsner QUALIFIED
Kadeem J KuskoAustraliaXuxue Feng NEW
Costa Y BriddickItalyIvan Magalhaes PROPOSAL
Silvio S NestleRussiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody Q FerenczCanadaAsiya Javayant UNQUALIFIED
Antonio M MacleadAustraliaStephen Shaw NEW
Murillo H AmigonItalyAnna Fali NEGOTIATION
Emily L DilliardFranceIoni Bowcher QUALIFIED
Faith G FlosiArgentinaIoni Bowcher UNQUALIFIED
Claire T BriddickSpainAsiya Javayant PROPOSAL
Kadeem N InouyeIndiaStephen Shaw UNQUALIFIED
Sinclair U AlbaresJapanStephen Shaw NEGOTIATION
Kadeem Y FerenczRussiaIoni Bowcher RENEWAL
Jones S StockhamSpainIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin B ShinkoFrance2025-07-17Benton, John B Jr RENEWAL45Ioni Bowcher
1001Sinclair T KuskoAustralia2025-07-12Rangoni Of Florence NEGOTIATION29Anna Fali
1002Cody K NickaIndia2025-07-29Morlong Associates PROPOSAL80Ioni Bowcher
1003Antonio C AmigonArgentina2025-07-30Truhlar And Truhlar Attys RENEWAL19Asiya Javayant
1004Faith I GlickCanada2025-07-12Printing Dimensions RENEWAL1Stephen Shaw
1005Morrow B DoeBrazil2025-08-01Printing Dimensions NEGOTIATION42Xuxue Feng
1006Kaitlin N OstroskyFrance2025-07-13Rangoni Of Florence NEW1Anna Fali
1007David A KuskoRussia2025-08-04Chapman, Ross E Esq UNQUALIFIED86Onyama Limba
1008Chavez Q CaudySpain2025-07-31Feiner Bros NEGOTIATION89Onyama Limba
1009Morrow R NestleArgentina2025-07-29Benton, John B Jr UNQUALIFIED15Onyama Limba
1010Leon F ButtCanada2025-07-23Printing Dimensions PROPOSAL76Ivan Magalhaes
1011Emily R GauchoFrance2025-07-21Truhlar And Truhlar Attys PROPOSAL55Amy Elsner
1012Costa Y BowleyJapan2025-07-21Rousseaux, Michael Esq UNQUALIFIED42Asiya Javayant
1013Tony F StensethUnited Kingdom2025-07-15Commercial Press UNQUALIFIED31Stephen Shaw
1014Aditya V FollerArgentina2025-07-17Chanay, Jeffrey A Esq UNQUALIFIED70Anna Fali
1015Misaki P SaylorsCanada2025-07-26Chemel, James L Cpa RENEWAL14Amy Elsner
1016Maria K PerinUnited Kingdom2025-07-11Feltz Printing Service RENEWAL1Xuxue Feng
1017Arvin O FerenczGermany2025-07-29Chapman, Ross E Esq NEW87Ioni Bowcher
1018Ashley X GlickSpain2025-07-26Chemel, James L Cpa PROPOSAL10Elwin Sharvill
1019Adams B NestleCanada2025-07-17Commercial Press PROPOSAL20Ivan Magalhaes
1020Juan J OstroskyJapan2025-07-19Buckley Miller Wright PROPOSAL19Onyama Limba
1021Leon K GillianUnited Kingdom2025-07-28King, Christopher A Esq QUALIFIED23Elwin Sharvill
1022Murillo I NickaGermany2025-07-19Benton, John B Jr PROPOSAL31Ioni Bowcher
1023Maisha C NestleAustralia2025-07-16Buckley Miller Wright NEW74Ivan Magalhaes
1024Costa W TollnerAustralia2025-07-10Morlong Associates NEGOTIATION18Asiya Javayant
1025Nicolas M VenereSpain2025-08-03Truhlar And Truhlar Attys QUALIFIED72Bernardo Dominic
1026Maisha O StockhamArgentina2025-08-02Chanay, Jeffrey A Esq QUALIFIED88Asiya Javayant
1027Maisha X FollerFrance2025-07-11Chemel, James L Cpa RENEWAL54Amy Elsner
1028Greenwood O AlbaresBrazil2025-07-26King, Christopher A Esq NEW18Xuxue Feng
1029Salvatore C FigeroaCanada2025-07-27Morlong Associates PROPOSAL51Ivan Magalhaes
1030Darci W GauchoFrance2025-07-28King, Christopher A Esq UNQUALIFIED12Stephen Shaw
1031Costa X DilliardItaly2025-07-30Chanay, Jeffrey A Esq NEW14Ivan Magalhaes
1032Costa O DilliardFrance2025-07-24Benton, John B Jr UNQUALIFIED55Amy Elsner
1033Chavez P BriddickFrance2025-07-10Chemel, James L Cpa NEW50Bernardo Dominic
1034Octavia G InouyeBrazil2025-07-07Morlong Associates RENEWAL75Amy Elsner
1035Izzy L StockhamFrance2025-07-19Printing Dimensions NEGOTIATION0Ioni Bowcher
1036Faith T BowleyRussia2025-07-17Commercial Press NEGOTIATION63Onyama Limba
1037Isabel K MorascaSpain2025-07-06Chanay, Jeffrey A Esq NEW71Anna Fali
1038Johnson X VenereIndia2025-07-09Truhlar And Truhlar Attys QUALIFIED12Onyama Limba
1039Morrow D DilliardItaly2025-08-03Chapman, Ross E Esq NEGOTIATION26Asiya Javayant
1040Jennifer D OldroydJapan2025-07-07Feiner Bros QUALIFIED34Bernardo Dominic
1041Rodrigues R SchemmerIndia2025-07-14Chanay, Jeffrey A Esq PROPOSAL57Anna Fali
1042Jones H KolmetzUnited Kingdom2025-08-03Feiner Bros UNQUALIFIED52Bernardo Dominic
1043Murillo D RimBrazil2025-07-07Buckley Miller Wright UNQUALIFIED32Anna Fali
1044Aika J SaylorsGermany2025-07-13Dorl, James J Esq QUALIFIED18Ivan Magalhaes
1045Isabel W WieserCanada2025-07-12Truhlar And Truhlar Attys RENEWAL71Anna Fali
1046Antonio H MorascaBrazil2025-07-13Feltz Printing Service QUALIFIED92Anna Fali
1047James Y MorascaIndia2025-07-13Chemel, James L Cpa UNQUALIFIED13Anna Fali
1048Munro B BologniaBrazil2025-07-26Chapman, Ross E Esq RENEWAL26Stephen Shaw
1049Jefferson H FigeroaItaly2025-07-20Chanay, Jeffrey A Esq NEW70Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Antonio N MaletSpainXuxue Feng PROPOSAL
Silvio N RulapaughSpainIoni Bowcher RENEWAL
Leja C OldroydBrazilAnna Fali NEW
Adams S InouyeGermanyXuxue Feng RENEWAL
Julie N SchemmerArgentinaAmy Elsner UNQUALIFIED
Mujtaba Q SchemmerArgentinaStephen Shaw NEGOTIATION
Maisha G WaycottBrazilBernardo Dominic NEW
Arvin L MaletGermanyBernardo Dominic PROPOSAL
Darci P TollnerGermanyOnyama Limba NEGOTIATION
Costa O SergiRussiaElwin Sharvill UNQUALIFIED
Julie X DarakjyUnited KingdomOnyama Limba RENEWAL
Nicolas R SaylorsBrazilIoni Bowcher PROPOSAL
Stacey X TollnerUnited KingdomElwin Sharvill QUALIFIED
Tony O SlusarskiGermanyBernardo Dominic PROPOSAL
Misaki W PoquetteJapanIvan Magalhaes QUALIFIED
Murillo W InouyeRussiaAmy Elsner QUALIFIED
Leon H AlbaresAustraliaAsiya Javayant PROPOSAL
Leon K MarrierUnited KingdomAnna Fali NEW
Munro J MorascaRussiaAmy Elsner RENEWAL
Izzy D FigeroaCanadaElwin Sharvill NEW
Ivar E SergiIndiaAsiya Javayant PROPOSAL
Morrow J SaylorsFranceElwin Sharvill NEW
Jones U GauchoUnited KingdomIoni Bowcher PROPOSAL
Adams R RimAustraliaAnna Fali RENEWAL
Juan P PoquetteCanadaIoni Bowcher UNQUALIFIED
Greenwood M CaldareraItalyIvan Magalhaes NEGOTIATION
Octavia V PaprockiGermanyIoni Bowcher QUALIFIED
Salvatore N NickaUnited KingdomIoni Bowcher UNQUALIFIED
Izzy S AmigonArgentinaIoni Bowcher QUALIFIED
James W CaldareraSpainAsiya Javayant NEGOTIATION
Smith J SergiArgentinaStephen Shaw RENEWAL
Izzy D SlusarskiRussiaElwin Sharvill PROPOSAL
Francesco T ButtBrazilIoni Bowcher NEW
Aruna N RulapaughSpainAmy Elsner PROPOSAL
Stacey U ShinkoCanadaStephen Shaw NEW
Nicolas Z PerinGermanyAmy Elsner UNQUALIFIED
Stacey T GauchoGermanyBernardo Dominic RENEWAL
Maisha B MaletGermanyXuxue Feng UNQUALIFIED
Claire G MaletUnited KingdomStephen Shaw RENEWAL
Alejandro F DilliardCanadaIoni Bowcher RENEWAL
Jeanfrancois A VocelkaIndiaXuxue Feng RENEWAL
Kaitlin L DarakjyRussiaAmy Elsner QUALIFIED
Morrow M CaldareraItalyBernardo Dominic RENEWAL
Mujtaba U KolmetzAustraliaAnna Fali UNQUALIFIED
Faith I AlbaresItalyAmy Elsner QUALIFIED
Deepesh D DilliardBrazilAsiya Javayant RENEWAL
Claire M OldroydCanadaStephen Shaw NEW
Rodrigues Y DilliardFranceOnyama Limba NEW
Sinclair X GillianGermanyAsiya Javayant QUALIFIED
Munro X KuskoFranceAmy Elsner RENEWAL
Frozen Columns
Name
Faith R Iturbide
Morrow T Darakjy
James Z Garufi
Mujtaba T Caudy
Juan W Butt
Johnson R Sergi
Aruna L Albares
Kaitlin I Vocelka
Wickens P Amigon
Kadeem U Glick
Misaki B Wieser
Aditya F Gillian
Leon S Sergi
Faith D Marrier
Darci K Wieser
Octavia G Oldroyd
Nicolas X Shinko
Chavez K Kusko
Jones U Doe
Aruna D Glick
Sinclair V Shinko
Mayumi X Darakjy
Aika Z Wieser
Murillo D Royster
Johnson A Kusko
Julie Y Tollner
Kadeem S Whobrey
Isabel Y Nestle
Munro T Nestle
Alejandro R Caudy
Clifford E Wieser
Nicolas Y Oldroyd
Sinclair F Bowley
Misaki F Doe
David C Whobrey
Antonio S Venere
Cody E Shinko
Leon A Doe
Leja C Flosi
Emily W Amigon
Adams K Stenseth
Silvio N Amigon
Jennifer N Amigon
Smith M Butt
Chavez E Waycott
Jeanfrancois X Chui
Sinclair W Bowley
Johnson I Ostrosky
Clifford E Bolognia
Juan Z Flosi
IdCountryDate
1000Brazil2025-07-26
1001France2025-07-30
1002France2025-07-26
1003Argentina2025-07-13
1004United Kingdom2025-07-27
1005Argentina2025-07-28
1006Canada2025-07-25
1007France2025-07-31
1008Australia2025-07-19
1009Germany2025-07-21
1010Italy2025-07-23
1011Russia2025-07-15
1012Argentina2025-08-01
1013Italy2025-07-22
1014Japan2025-07-14
1015Germany2025-08-04
1016Spain2025-07-22
1017Argentina2025-07-06
1018Spain2025-08-01
1019India2025-07-23
1020Germany2025-07-28
1021United Kingdom2025-07-13
1022Argentina2025-07-27
1023Canada2025-07-29
1024Canada2025-07-18
1025Russia2025-08-03
1026Australia2025-07-12
1027Argentina2025-07-25
1028Canada2025-07-08
1029Japan2025-07-06
1030India2025-08-01
1031United Kingdom2025-07-29
1032Italy2025-07-18
1033Germany2025-07-13
1034Australia2025-07-19
1035Spain2025-07-12
1036Argentina2025-07-17
1037United Kingdom2025-07-22
1038Spain2025-08-02
1039Germany2025-07-18
1040Brazil2025-07-26
1041United Kingdom2025-07-10
1042Italy2025-07-21
1043Russia2025-07-10
1044Canada2025-07-22
1045Canada2025-07-31
1046France2025-07-27
1047United Kingdom2025-07-07
1048Brazil2025-07-07
1049Italy2025-07-22

On-Demand Data

NameIdCountryDate
Alejandro I Rulapaugh1000Japan2025-07-11
Jones D Ferencz1001Australia2025-07-11
Maria B Stockham1002Japan2025-07-20
Tony C Morasca1003Germany2025-07-06
Johnson F Darakjy1004United Kingdom2025-07-17
Kaitlin T Sergi1005Spain2025-07-28
David B Kusko1006United Kingdom2025-08-04
Leja H Ostrosky1007Argentina2025-07-25
Costa R Bolognia1008India2025-07-06
Misaki G Morasca1009Japan2025-07-25
Juan Z Kusko1010France2025-08-03
Octavia Q Stockham1011Argentina2025-07-31
Isabel M Oldroyd1012Australia2025-07-24
Jones L Inouye1013Italy2025-07-17
Silvio G Tollner1014Italy2025-07-28
Faith E Poquette1015United Kingdom2025-07-31
Nicolas X Figeroa1016Brazil2025-07-11
Smith Q Garufi1017Australia2025-07-07
Rodrigues B Figeroa1018Germany2025-08-01
Ashley N Morasca1019Spain2025-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia X DarakjyBrazilStephen Shaw NEW
Maisha I TollnerCanadaOnyama Limba NEW
Sinclair J PerinRussiaIvan Magalhaes NEW
Murillo I MaletJapanElwin Sharvill RENEWAL
Leon J OstroskyItalyOnyama Limba NEW
Arvin U MacleadIndiaBernardo Dominic NEW
Emily S KuskoAustraliaXuxue Feng PROPOSAL
Juan Q CampainIndiaAnna Fali UNQUALIFIED
Sinclair B PaprockiItalyAmy Elsner UNQUALIFIED
Darci G SlusarskiIndiaAsiya Javayant NEGOTIATION
Maria R SergiCanadaAsiya Javayant NEW
Octavia L DilliardRussiaIoni Bowcher RENEWAL
Tony L StensethAustraliaStephen Shaw PROPOSAL
Jennifer X ButtIndiaIvan Magalhaes UNQUALIFIED
Claire R GarufiUnited KingdomIoni Bowcher NEW
Maisha Q CaldareraIndiaIvan Magalhaes NEGOTIATION
Tony S FerenczBrazilXuxue Feng PROPOSAL
David H OldroydIndiaStephen Shaw PROPOSAL
Costa T BriddickRussiaAsiya Javayant UNQUALIFIED
Wickens B OstroskyItalyIoni Bowcher PROPOSAL
Ivar S DarakjySpainOnyama Limba PROPOSAL
David Y DoeArgentinaStephen Shaw NEW
Alejandro H FlosiJapanElwin Sharvill UNQUALIFIED
Antonio Y NestleFranceIoni Bowcher RENEWAL
Morrow X MarrierBrazilStephen Shaw NEGOTIATION
Kaitlin Z KuskoSpainAnna Fali PROPOSAL
James X BologniaJapanIvan Magalhaes NEW
Nicolas I PerinArgentinaIvan Magalhaes NEGOTIATION
Alejandro L DarakjyRussiaBernardo Dominic QUALIFIED
Deepesh V KuskoItalyAnna Fali NEW
Munro Q GlickAustraliaXuxue Feng PROPOSAL
Alejandro V FerenczRussiaIoni Bowcher NEW
Chavez S WhobreyItalyIoni Bowcher UNQUALIFIED
Chavez T DoeAustraliaIoni Bowcher RENEWAL
Alejandro I SergiIndiaStephen Shaw NEGOTIATION
David Q SergiGermanyXuxue Feng QUALIFIED
Aditya R PoquetteBrazilIvan Magalhaes NEGOTIATION
Arvin L SchemmerSpainAsiya Javayant UNQUALIFIED
Misaki P GlickJapanIvan Magalhaes QUALIFIED
Silvio C KolmetzSpainIvan Magalhaes PROPOSAL

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