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
Rodrigues K ChuiIndiaOnyama Limba RENEWAL
Chavez F MorascaArgentinaOnyama Limba NEW
Sinclair F DoeRussiaOnyama Limba NEW
David X SergiItalyAnna Fali RENEWAL
Faith P AmigonAustraliaIoni Bowcher RENEWAL
Mujtaba S PoquetteAustraliaAnna Fali RENEWAL
Salvatore C ShinkoJapanAsiya Javayant PROPOSAL
Jones C VenereItalyAnna Fali UNQUALIFIED
Jennifer E NestleBrazilIoni Bowcher NEW
Juan N PerinSpainIoni Bowcher QUALIFIED
Costa L WieserGermanyXuxue Feng PROPOSAL
Julie C RoysterArgentinaStephen Shaw NEW
David T VenereCanadaOnyama Limba NEGOTIATION
Maria C MaletArgentinaAmy Elsner QUALIFIED
Leon K KuskoBrazilAsiya Javayant NEGOTIATION
Salvatore G SaylorsGermanyIoni Bowcher RENEWAL
Claire H SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Francesco X DoeSpainIvan Magalhaes NEGOTIATION
Leon F MaletArgentinaAnna Fali RENEWAL
Emily R VocelkaIndiaStephen Shaw NEW
Izzy Q MarrierAustraliaStephen Shaw RENEWAL
James X AlbaresGermanyOnyama Limba QUALIFIED
Ricardo L GlickJapanOnyama Limba UNQUALIFIED
Murillo G NickaRussiaOnyama Limba QUALIFIED
Ivar I DoeRussiaAnna Fali QUALIFIED
Munro S TollnerIndiaBernardo Dominic PROPOSAL
Smith K MorascaBrazilIvan Magalhaes UNQUALIFIED
Emily X GauchoJapanOnyama Limba QUALIFIED
Murillo C ShinkoIndiaXuxue Feng PROPOSAL
Chavez X NestleUnited KingdomIvan Magalhaes NEGOTIATION
Costa C DilliardRussiaAnna Fali UNQUALIFIED
Mayumi M SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Stacey K BowleyBrazilAsiya Javayant UNQUALIFIED
Claire Y VocelkaSpainXuxue Feng PROPOSAL
Jones Q AlbaresBrazilIoni Bowcher QUALIFIED
Nicolas T RulapaughArgentinaAsiya Javayant QUALIFIED
Mayumi Q NestleFranceXuxue Feng RENEWAL
Wickens B SergiBrazilXuxue Feng NEW
Maisha L PerinFranceAnna Fali UNQUALIFIED
Jeanfrancois N MaletFranceIoni Bowcher NEW
Clifford Z WhobreyRussiaAnna Fali UNQUALIFIED
Izzy G DoeArgentinaAmy Elsner UNQUALIFIED
Aika N MacleadBrazilElwin Sharvill QUALIFIED
Chavez U VenereFranceIvan Magalhaes NEGOTIATION
David W AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Aditya U RoysterJapanAsiya Javayant UNQUALIFIED
Rodrigues L WaycottGermanyIvan Magalhaes RENEWAL
James W SlusarskiBrazilAsiya Javayant RENEWAL
Greenwood H MaletAustraliaStephen Shaw QUALIFIED
Leja Y SergiUnited KingdomAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore S SaylorsCanadaOnyama Limba UNQUALIFIED
Johnson V VenereGermanyStephen Shaw PROPOSAL
Ashley Y RoysterUnited KingdomOnyama Limba UNQUALIFIED
Isabel W DarakjyArgentinaElwin Sharvill RENEWAL
Aruna F MarrierIndiaElwin Sharvill UNQUALIFIED
Tony L NickaJapanIoni Bowcher PROPOSAL
Ashley J RimSpainOnyama Limba NEW
Arvin T RimCanadaAnna Fali NEW
Alejandro U PoquetteItalyIoni Bowcher RENEWAL
Chavez K IturbideJapanAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia R SchemmerItaly2025-08-03Printing Dimensions UNQUALIFIED51Asiya Javayant
1001Smith Q FerenczItaly2025-07-20Chanay, Jeffrey A Esq NEW29Amy Elsner
1002Kaitlin U GauchoItaly2025-07-21Chanay, Jeffrey A Esq QUALIFIED97Amy Elsner
1003Jones R MorascaRussia2025-07-29King, Christopher A Esq PROPOSAL3Amy Elsner
1004Jennifer S VocelkaFrance2025-07-30Rousseaux, Michael Esq QUALIFIED80Ivan Magalhaes
1005David U GarufiBrazil2025-07-21Buckley Miller Wright PROPOSAL21Onyama Limba
1006Kaitlin J BologniaIndia2025-07-16Dorl, James J Esq QUALIFIED57Stephen Shaw
1007Ashley I BowleyAustralia2025-07-23Truhlar And Truhlar Attys QUALIFIED43Elwin Sharvill
1008Ricardo P KuskoFrance2025-07-10Printing Dimensions PROPOSAL56Elwin Sharvill
1009Kaitlin K BowleyCanada2025-07-31Rangoni Of Florence NEGOTIATION14Amy Elsner
1010Francesco S SchemmerRussia2025-08-02Chanay, Jeffrey A Esq PROPOSAL31Xuxue Feng
1011Claire E MarrierJapan2025-07-19Buckley Miller Wright QUALIFIED58Stephen Shaw
1012Jeanfrancois M OstroskyItaly2025-07-11Buckley Miller Wright RENEWAL48Ioni Bowcher
1013Aruna K FerenczUnited Kingdom2025-07-19Feiner Bros QUALIFIED21Onyama Limba
1014Alejandro P GauchoCanada2025-07-27Chapman, Ross E Esq QUALIFIED68Elwin Sharvill
1015Kaitlin N BriddickCanada2025-07-27Truhlar And Truhlar Attys QUALIFIED60Anna Fali
1016Morrow S WaycottBrazil2025-07-28Chanay, Jeffrey A Esq NEGOTIATION57Bernardo Dominic
1017Ivar H FlosiCanada2025-07-29Morlong Associates PROPOSAL31Bernardo Dominic
1018Mujtaba R SergiAustralia2025-07-09Printing Dimensions PROPOSAL2Amy Elsner
1019Tony L MaletBrazil2025-07-25Truhlar And Truhlar Attys QUALIFIED66Xuxue Feng
1020Smith Q MaletSpain2025-07-22Chanay, Jeffrey A Esq NEW73Ioni Bowcher
1021Jefferson V KuskoUnited Kingdom2025-07-24Chanay, Jeffrey A Esq PROPOSAL56Amy Elsner
1022Juan M DoeGermany2025-07-12Chapman, Ross E Esq NEW32Amy Elsner
1023Rodrigues T MacleadBrazil2025-07-15Feltz Printing Service NEGOTIATION6Ivan Magalhaes
1024Jefferson G MaletIndia2025-07-16Printing Dimensions NEW20Onyama Limba
1025Julie V KolmetzSpain2025-07-10Truhlar And Truhlar Attys UNQUALIFIED47Ivan Magalhaes
1026Francesco Q RoysterArgentina2025-07-28Dorl, James J Esq RENEWAL61Onyama Limba
1027Salvatore H GauchoItaly2025-07-06Rousseaux, Michael Esq PROPOSAL88Amy Elsner
1028Tony T StockhamItaly2025-07-13Feltz Printing Service QUALIFIED88Amy Elsner
1029Silvio N CampainGermany2025-07-31Printing Dimensions RENEWAL6Ivan Magalhaes
1030Sinclair B SlusarskiItaly2025-07-19Benton, John B Jr NEGOTIATION69Onyama Limba
1031Francesco J GauchoCanada2025-07-17Feiner Bros QUALIFIED24Ivan Magalhaes
1032Juan V DoeSpain2025-07-26Benton, John B Jr RENEWAL50Anna Fali
1033Greenwood Z VenereBrazil2025-08-01Chapman, Ross E Esq UNQUALIFIED5Elwin Sharvill
1034Leja S GillianJapan2025-07-26Rousseaux, Michael Esq NEW89Ivan Magalhaes
1035Arvin C FlosiCanada2025-07-11Truhlar And Truhlar Attys QUALIFIED92Stephen Shaw
1036Ivar L MorascaSpain2025-07-28Feiner Bros RENEWAL65Xuxue Feng
1037Tony G SlusarskiBrazil2025-07-18Printing Dimensions NEW63Amy Elsner
1038Misaki A GauchoIndia2025-07-14Benton, John B Jr RENEWAL75Stephen Shaw
1039Stacey W StockhamRussia2025-07-29Buckley Miller Wright UNQUALIFIED96Asiya Javayant
1040Jennifer G WhobreyArgentina2025-07-15Printing Dimensions PROPOSAL24Bernardo Dominic
1041Claire X MorascaItaly2025-07-10Feltz Printing Service NEGOTIATION36Ivan Magalhaes
1042Stacey Q KuskoItaly2025-07-26Dorl, James J Esq PROPOSAL62Anna Fali
1043Chavez C PaprockiCanada2025-07-29Dorl, James J Esq RENEWAL72Stephen Shaw
1044Mujtaba I GauchoItaly2025-07-21Morlong Associates UNQUALIFIED48Amy Elsner
1045Salvatore V StockhamSpain2025-07-10Chemel, James L Cpa NEW2Ioni Bowcher
1046Claire S CaudyIndia2025-07-08Morlong Associates UNQUALIFIED24Bernardo Dominic
1047Maisha Y WhobreyGermany2025-07-25Feltz Printing Service RENEWAL47Elwin Sharvill
1048Julie V SergiIndia2025-07-07Rangoni Of Florence NEGOTIATION9Asiya Javayant
1049Rodrigues E RulapaughFrance2025-07-10King, Christopher A Esq UNQUALIFIED55Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kadeem L GlickRussiaBernardo Dominic NEW
Cody K NickaSpainStephen Shaw QUALIFIED
Arvin X WaycottSpainIoni Bowcher UNQUALIFIED
Salvatore C DilliardItalyAsiya Javayant PROPOSAL
Maisha Q BowleyCanadaAsiya Javayant UNQUALIFIED
Alejandro M FollerItalyElwin Sharvill NEW
Ivar N SaylorsRussiaAsiya Javayant RENEWAL
Mayumi U GauchoArgentinaAsiya Javayant RENEWAL
Izzy B PaprockiCanadaAnna Fali RENEWAL
Alejandro G MorascaCanadaAnna Fali PROPOSAL
Ashley D PerinCanadaBernardo Dominic QUALIFIED
Aika K BologniaIndiaAmy Elsner PROPOSAL
Claire U RoysterFranceIoni Bowcher QUALIFIED
Kadeem O RutaBrazilIoni Bowcher PROPOSAL
Darci I VenereCanadaOnyama Limba NEGOTIATION
Alejandro Z SlusarskiUnited KingdomOnyama Limba PROPOSAL
Juan G GarufiItalyAmy Elsner NEW
Adams T GlickUnited KingdomAsiya Javayant NEW
Wickens I ButtSpainAnna Fali QUALIFIED
Jeanfrancois K ShinkoJapanIoni Bowcher QUALIFIED
Leon Z CaldareraRussiaStephen Shaw UNQUALIFIED
Emily G GlickCanadaAnna Fali NEGOTIATION
Darci E WieserCanadaAsiya Javayant PROPOSAL
Julie Z SchemmerArgentinaIvan Magalhaes QUALIFIED
Mayumi I MorascaIndiaBernardo Dominic RENEWAL
Deepesh L ButtRussiaBernardo Dominic QUALIFIED
Leja T KolmetzBrazilElwin Sharvill RENEWAL
Juan T GlickAustraliaStephen Shaw NEW
Claire Y PaprockiFranceXuxue Feng QUALIFIED
Adams B AmigonFranceIoni Bowcher UNQUALIFIED
Cody E PaprockiRussiaElwin Sharvill UNQUALIFIED
Jefferson X MaletAustraliaStephen Shaw NEGOTIATION
Ashley H VocelkaGermanyOnyama Limba NEW
Morrow B KuskoFranceAsiya Javayant QUALIFIED
Isabel P PaprockiRussiaStephen Shaw QUALIFIED
Maisha R FigeroaBrazilIoni Bowcher RENEWAL
Sinclair Y RutaCanadaXuxue Feng NEW
Isabel O GauchoFranceAmy Elsner PROPOSAL
Ricardo W KuskoArgentinaAmy Elsner NEW
Arvin V WieserSpainXuxue Feng RENEWAL
Ivar Y GillianUnited KingdomElwin Sharvill QUALIFIED
Jones H OldroydSpainBernardo Dominic QUALIFIED
Deepesh D SchemmerArgentinaIvan Magalhaes NEGOTIATION
Emily K PaprockiRussiaElwin Sharvill UNQUALIFIED
Antonio Y ButtRussiaBernardo Dominic NEW
Claire M ChuiGermanyAsiya Javayant QUALIFIED
Greenwood V PerinGermanyIoni Bowcher PROPOSAL
Jones L MorascaArgentinaOnyama Limba QUALIFIED
Maria W MarrierJapanAmy Elsner NEGOTIATION
Julie B MaletGermanyAsiya Javayant RENEWAL
Frozen Columns
Name
David D Butt
Julie A Saylors
Jones V Perin
Mayumi H Malet
Salvatore M Caudy
Izzy P Bolognia
Morrow D Campain
Aditya D Waycott
Arvin X Foller
Isabel R Kolmetz
Kaitlin K Gillian
Cody V Rim
Sinclair C Flosi
Cody R Slusarski
Mujtaba Q Butt
Julie D Malet
Jennifer F Gaucho
Munro Y Rim
Costa V Sergi
Cody G Ruta
Sinclair L Butt
Cody D Rim
Adams N Stockham
Morrow P Butt
Izzy F Garufi
Costa X Flosi
Costa V Amigon
Aika B Darakjy
Aditya P Venere
James V Poquette
Leon W Campain
Leon A Darakjy
Sinclair L Poquette
Antonio U Figeroa
Darci K Caudy
Cody X Nestle
Ricardo L Dilliard
Kaitlin R Flosi
Mujtaba R Poquette
Izzy L Ostrosky
Murillo E Sergi
Juan C Sergi
Cody M Butt
Jennifer O Caudy
Darci L Butt
Isabel B Flosi
Francesco Z Saylors
Emily R Ferencz
Greenwood B Malet
Juan A Wieser
IdCountryDate
1000Spain2025-07-31
1001Brazil2025-07-15
1002Australia2025-07-09
1003Germany2025-08-03
1004Brazil2025-07-15
1005Japan2025-08-02
1006Australia2025-07-11
1007Italy2025-07-26
1008Spain2025-07-12
1009Canada2025-07-19
1010Australia2025-07-17
1011Canada2025-07-20
1012Australia2025-07-24
1013Australia2025-07-14
1014Germany2025-07-08
1015Canada2025-08-01
1016Spain2025-07-31
1017Italy2025-07-28
1018Italy2025-07-08
1019Spain2025-07-20
1020Spain2025-07-15
1021Australia2025-07-19
1022Russia2025-07-14
1023Russia2025-07-17
1024Russia2025-07-22
1025Spain2025-07-11
1026India2025-07-16
1027Brazil2025-07-10
1028France2025-07-13
1029Japan2025-08-03
1030Canada2025-07-26
1031India2025-07-15
1032France2025-07-10
1033France2025-07-08
1034Germany2025-07-18
1035Brazil2025-07-31
1036Argentina2025-07-30
1037Russia2025-07-23
1038Canada2025-07-12
1039Argentina2025-07-08
1040Germany2025-07-19
1041Russia2025-08-03
1042Russia2025-07-30
1043United Kingdom2025-07-28
1044Canada2025-07-19
1045Argentina2025-07-23
1046Germany2025-07-16
1047Russia2025-07-13
1048India2025-08-02
1049Japan2025-07-18

On-Demand Data

NameIdCountryDate
Izzy T Figeroa1000Spain2025-07-17
Aika Q Caldarera1001Japan2025-07-06
Cody U Sergi1002Japan2025-07-12
Arvin V Kolmetz1003Spain2025-07-17
Jeanfrancois E Saylors1004Argentina2025-08-01
Munro F Butt1005India2025-07-26
Darci E Rulapaugh1006France2025-07-28
Misaki Z Ruta1007Brazil2025-07-28
Alejandro J Venere1008Argentina2025-07-25
Octavia H Oldroyd1009Japan2025-07-31
Munro H Slusarski1010India2025-07-18
Maisha F Schemmer1011Italy2025-07-14
Julie W Glick1012Argentina2025-07-13
Juan R Iturbide1013Spain2025-07-19
Chavez C Amigon1014Spain2025-07-16
Antonio I Figeroa1015Germany2025-07-17
Greenwood V Foller1016United Kingdom2025-07-31
Kaitlin K Gillian1017Japan2025-07-26
Morrow L Perin1018Canada2025-07-22
Aruna O Marrier1019Australia2025-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin I FerenczJapanOnyama Limba UNQUALIFIED
Aditya X WhobreyGermanyIvan Magalhaes NEGOTIATION
Emily V RimRussiaOnyama Limba QUALIFIED
Leja K CampainItalyBernardo Dominic UNQUALIFIED
Deepesh P CaudyJapanAnna Fali PROPOSAL
Smith I FigeroaItalyBernardo Dominic NEW
Nicolas K ChuiAustraliaAmy Elsner NEW
Tony C BologniaRussiaAmy Elsner UNQUALIFIED
Jones J DoeFranceAnna Fali NEW
Izzy A RutaSpainAsiya Javayant RENEWAL
Tony O MacleadIndiaOnyama Limba NEW
Arvin L AmigonFranceStephen Shaw QUALIFIED
Munro N NickaIndiaIvan Magalhaes NEGOTIATION
Maria L KuskoIndiaAnna Fali NEW
Maisha L StensethIndiaElwin Sharvill NEGOTIATION
Izzy Q GauchoGermanyAsiya Javayant QUALIFIED
Aditya O DilliardJapanBernardo Dominic PROPOSAL
Jeanfrancois R NestleItalyAsiya Javayant RENEWAL
Sinclair G CaudyIndiaIvan Magalhaes NEGOTIATION
Chavez J AmigonAustraliaIvan Magalhaes NEGOTIATION
Emily Z AlbaresItalyStephen Shaw QUALIFIED
Jones S DarakjyIndiaBernardo Dominic RENEWAL
Morrow P TollnerBrazilStephen Shaw NEGOTIATION
Jefferson O OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Claire B InouyeGermanyAmy Elsner QUALIFIED
Wickens C GillianAustraliaIvan Magalhaes NEGOTIATION
Deepesh P VenereRussiaAmy Elsner NEGOTIATION
Leja B RimIndiaAmy Elsner UNQUALIFIED
James X GauchoRussiaAsiya Javayant NEGOTIATION
Isabel V FigeroaBrazilElwin Sharvill RENEWAL
Kaitlin C StockhamJapanIoni Bowcher UNQUALIFIED
Aruna Y VenereAustraliaOnyama Limba NEGOTIATION
Aditya W RimBrazilAnna Fali PROPOSAL
Rodrigues Q IturbideIndiaElwin Sharvill NEW
Costa R SergiJapanAnna Fali QUALIFIED
Misaki V GarufiItalyIvan Magalhaes RENEWAL
Chavez V GlickSpainIoni Bowcher QUALIFIED
Silvio E FollerSpainIvan Magalhaes RENEWAL
Johnson B MaletCanadaXuxue Feng UNQUALIFIED
Jeanfrancois Q RoysterItalyXuxue Feng NEW

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