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 A GillianArgentinaElwin Sharvill PROPOSAL
Francesco E GauchoGermanyXuxue Feng QUALIFIED
Murillo B GlickArgentinaAmy Elsner RENEWAL
Ricardo I MorascaJapanAnna Fali NEW
Adams Z BologniaBrazilAnna Fali PROPOSAL
Julie I DarakjyFranceAsiya Javayant RENEWAL
Mayumi Z PaprockiCanadaAsiya Javayant PROPOSAL
Antonio D VocelkaBrazilAmy Elsner UNQUALIFIED
Leon G MacleadJapanAnna Fali NEGOTIATION
Adams J FlosiBrazilIoni Bowcher NEW
Clifford R SaylorsFranceAmy Elsner UNQUALIFIED
Leja N ChuiCanadaIvan Magalhaes UNQUALIFIED
Alejandro A WaycottGermanyAmy Elsner PROPOSAL
Jefferson Y InouyeItalyStephen Shaw PROPOSAL
Adams G IturbideIndiaAmy Elsner RENEWAL
Izzy Y VocelkaFranceAnna Fali UNQUALIFIED
Aika H AmigonFranceIoni Bowcher RENEWAL
Antonio J WieserArgentinaAsiya Javayant NEGOTIATION
Stacey V RoysterSpainStephen Shaw QUALIFIED
Munro C MaletAustraliaXuxue Feng NEW
Izzy E GlickArgentinaXuxue Feng UNQUALIFIED
Greenwood H NestleArgentinaAnna Fali NEGOTIATION
Jeanfrancois V GauchoGermanyAsiya Javayant UNQUALIFIED
Adams N RutaUnited KingdomXuxue Feng PROPOSAL
Arvin Y NickaItalyElwin Sharvill NEGOTIATION
Antonio N MaletArgentinaAsiya Javayant NEW
Maisha T MarrierFranceAmy Elsner RENEWAL
Nicolas A MaletBrazilStephen Shaw NEGOTIATION
Maria I WaycottCanadaIvan Magalhaes PROPOSAL
Maria A BriddickUnited KingdomBernardo Dominic PROPOSAL
Cody R RimGermanyXuxue Feng RENEWAL
Morrow K WieserRussiaBernardo Dominic NEW
Darci D MaletItalyBernardo Dominic PROPOSAL
Maria O MarrierArgentinaAmy Elsner UNQUALIFIED
Misaki T FlosiIndiaOnyama Limba NEGOTIATION
Octavia X CampainIndiaBernardo Dominic NEW
Mujtaba O RoysterAustraliaOnyama Limba NEW
Clifford W TollnerJapanIvan Magalhaes NEW
Jones H VenereCanadaAmy Elsner NEGOTIATION
Adams G GauchoArgentinaIoni Bowcher PROPOSAL
Claire A GauchoBrazilStephen Shaw UNQUALIFIED
Stacey S InouyeBrazilStephen Shaw RENEWAL
Jefferson V PaprockiGermanyAnna Fali QUALIFIED
Kaitlin V StensethIndiaIvan Magalhaes RENEWAL
Arvin L MacleadArgentinaAnna Fali QUALIFIED
Maria Z StensethFranceBernardo Dominic QUALIFIED
Ivar M PoquetteUnited KingdomStephen Shaw NEGOTIATION
Emily P CampainJapanXuxue Feng QUALIFIED
Johnson Y KolmetzSpainOnyama Limba NEGOTIATION
Misaki C WaycottAustraliaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Francesco T InouyeItalyAnna Fali QUALIFIED
Nicolas H CaldareraCanadaIvan Magalhaes RENEWAL
Faith M ShinkoIndiaXuxue Feng PROPOSAL
Nicolas F PaprockiArgentinaBernardo Dominic UNQUALIFIED
Murillo E NickaArgentinaAsiya Javayant QUALIFIED
Johnson J KolmetzUnited KingdomOnyama Limba NEGOTIATION
Chavez Q CaudyBrazilIoni Bowcher RENEWAL
Aika M SlusarskiUnited KingdomAsiya Javayant NEW
Darci C NickaCanadaIvan Magalhaes PROPOSAL
Sinclair I ChuiUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba N BologniaUnited Kingdom2025-08-12Benton, John B Jr NEW90Amy Elsner
1001Adams J GillianUnited Kingdom2025-08-02Feltz Printing Service NEW0Ioni Bowcher
1002Darci M DoeUnited Kingdom2025-08-10Chemel, James L Cpa NEW3Xuxue Feng
1003David M ShinkoItaly2025-08-13Chanay, Jeffrey A Esq NEW31Onyama Limba
1004Munro G DilliardJapan2025-08-01Feiner Bros PROPOSAL38Anna Fali
1005Isabel V KuskoJapan2025-08-03Rangoni Of Florence QUALIFIED29Bernardo Dominic
1006Izzy U PoquetteArgentina2025-08-15Benton, John B Jr QUALIFIED26Anna Fali
1007Stacey T SergiArgentina2025-08-16King, Christopher A Esq RENEWAL60Stephen Shaw
1008Arvin I PerinGermany2025-07-31Dorl, James J Esq QUALIFIED26Ivan Magalhaes
1009Juan O StockhamFrance2025-08-28Rousseaux, Michael Esq UNQUALIFIED10Elwin Sharvill
1010Clifford U PerinFrance2025-08-16Printing Dimensions NEGOTIATION68Stephen Shaw
1011Chavez F MorascaIndia2025-08-23Dorl, James J Esq NEW25Elwin Sharvill
1012Aika T BologniaFrance2025-08-05Commercial Press UNQUALIFIED88Onyama Limba
1013Jones Q DoeBrazil2025-08-06Commercial Press RENEWAL5Ivan Magalhaes
1014Adams P DilliardGermany2025-07-30Rangoni Of Florence NEW71Ioni Bowcher
1015Alejandro H WaycottItaly2025-08-22Rangoni Of Florence QUALIFIED94Stephen Shaw
1016Nicolas D NestleItaly2025-08-10Commercial Press NEGOTIATION81Ioni Bowcher
1017Stacey G ChuiUnited Kingdom2025-08-18Chanay, Jeffrey A Esq RENEWAL44Stephen Shaw
1018Wickens Z NestleBrazil2025-08-12King, Christopher A Esq NEGOTIATION41Bernardo Dominic
1019Morrow F MacleadItaly2025-08-23Rangoni Of Florence UNQUALIFIED45Ivan Magalhaes
1020Emily B WaycottCanada2025-08-23Feltz Printing Service PROPOSAL22Onyama Limba
1021Munro N GlickSpain2025-07-31Buckley Miller Wright NEW1Amy Elsner
1022Aruna Z CaudyArgentina2025-07-31Rangoni Of Florence NEGOTIATION1Ioni Bowcher
1023Johnson U BowleyBrazil2025-08-19Rousseaux, Michael Esq UNQUALIFIED78Elwin Sharvill
1024Alejandro P GauchoJapan2025-08-03Truhlar And Truhlar Attys RENEWAL90Ioni Bowcher
1025Leon O CaudySpain2025-08-18Chanay, Jeffrey A Esq UNQUALIFIED57Anna Fali
1026Clifford X FollerItaly2025-08-03Feiner Bros QUALIFIED12Bernardo Dominic
1027Nicolas B NestleUnited Kingdom2025-08-06Feiner Bros RENEWAL72Elwin Sharvill
1028Faith F BriddickItaly2025-08-11Printing Dimensions UNQUALIFIED68Anna Fali
1029Cody T AlbaresBrazil2025-08-04Chapman, Ross E Esq PROPOSAL71Bernardo Dominic
1030Wickens T CaldareraJapan2025-08-06King, Christopher A Esq NEGOTIATION22Elwin Sharvill
1031Aika F RoysterAustralia2025-08-28Feiner Bros UNQUALIFIED26Ioni Bowcher
1032Stacey C BowleyGermany2025-08-05Chapman, Ross E Esq UNQUALIFIED99Anna Fali
1033Greenwood R MaletAustralia2025-08-02Truhlar And Truhlar Attys QUALIFIED18Anna Fali
1034Cody P VenereBrazil2025-08-11Dorl, James J Esq RENEWAL44Anna Fali
1035Juan T ChuiSpain2025-08-10Printing Dimensions QUALIFIED62Asiya Javayant
1036Costa J RulapaughBrazil2025-08-28Printing Dimensions NEW48Xuxue Feng
1037Aditya A NestleFrance2025-08-05Chemel, James L Cpa RENEWAL92Onyama Limba
1038Izzy C ShinkoRussia2025-08-11Feltz Printing Service UNQUALIFIED33Asiya Javayant
1039James W MacleadFrance2025-08-19Feiner Bros PROPOSAL74Amy Elsner
1040Izzy D GauchoUnited Kingdom2025-07-31Feiner Bros QUALIFIED66Xuxue Feng
1041Stacey R GillianAustralia2025-08-28Printing Dimensions QUALIFIED71Stephen Shaw
1042Faith V CaudyArgentina2025-08-15King, Christopher A Esq NEGOTIATION59Bernardo Dominic
1043Leon Q MaletAustralia2025-08-19Benton, John B Jr QUALIFIED27Anna Fali
1044Izzy A NestleItaly2025-08-11Rangoni Of Florence NEGOTIATION23Bernardo Dominic
1045Alejandro M SlusarskiAustralia2025-08-12Printing Dimensions NEW49Elwin Sharvill
1046Rodrigues D OstroskyCanada2025-08-04Feiner Bros QUALIFIED83Ivan Magalhaes
1047Leon T MacleadBrazil2025-08-20Chapman, Ross E Esq UNQUALIFIED0Bernardo Dominic
1048Alejandro G DilliardCanada2025-08-18Rousseaux, Michael Esq QUALIFIED48Stephen Shaw
1049Ivar W KuskoGermany2025-08-26Dorl, James J Esq NEGOTIATION20Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois N AmigonFranceBernardo Dominic NEW
Francesco U GauchoJapanBernardo Dominic UNQUALIFIED
Rodrigues Q FerenczArgentinaStephen Shaw NEGOTIATION
Aruna O GillianGermanyAmy Elsner UNQUALIFIED
Francesco A NestleJapanAmy Elsner NEW
Misaki Q MorascaBrazilAnna Fali PROPOSAL
Tony G VenereFranceIoni Bowcher PROPOSAL
Kadeem S MarrierCanadaIoni Bowcher UNQUALIFIED
Francesco X VocelkaItalyElwin Sharvill UNQUALIFIED
Clifford N NickaRussiaAsiya Javayant NEW
Chavez L CampainSpainStephen Shaw NEW
Silvio L SergiJapanStephen Shaw RENEWAL
Jeanfrancois T ButtJapanStephen Shaw NEW
Jeanfrancois R SlusarskiItalyIvan Magalhaes UNQUALIFIED
Murillo N DoeJapanElwin Sharvill NEGOTIATION
Maria G SchemmerRussiaXuxue Feng NEW
Murillo A WhobreyJapanIvan Magalhaes NEW
Aika L CaldareraFranceBernardo Dominic NEGOTIATION
Francesco P OstroskyUnited KingdomBernardo Dominic RENEWAL
Ricardo X SlusarskiCanadaAsiya Javayant NEW
Ricardo C RimUnited KingdomAmy Elsner RENEWAL
Costa Y ChuiFranceAnna Fali NEW
Wickens W VocelkaItalyIoni Bowcher UNQUALIFIED
Jeanfrancois P MorascaIndiaXuxue Feng UNQUALIFIED
Emily Q BologniaCanadaAmy Elsner QUALIFIED
Aruna C CaldareraFranceAnna Fali QUALIFIED
Julie C SchemmerGermanyAsiya Javayant NEW
James A CaldareraGermanyAnna Fali RENEWAL
Mujtaba A AmigonItalyIvan Magalhaes NEGOTIATION
Clifford Y StensethBrazilElwin Sharvill QUALIFIED
Tony H BologniaSpainXuxue Feng QUALIFIED
Jefferson O RoysterCanadaXuxue Feng NEGOTIATION
Smith F StockhamUnited KingdomBernardo Dominic NEGOTIATION
Aruna M VenereAustraliaIoni Bowcher QUALIFIED
Isabel V RulapaughItalyElwin Sharvill UNQUALIFIED
Greenwood F PoquetteCanadaStephen Shaw NEGOTIATION
Johnson P WhobreyGermanyAnna Fali NEGOTIATION
Maisha P PoquetteCanadaAsiya Javayant NEGOTIATION
Silvio D AmigonAustraliaOnyama Limba QUALIFIED
Silvio Q BologniaJapanBernardo Dominic RENEWAL
Maisha A MaletGermanyAmy Elsner UNQUALIFIED
Ashley U WaycottJapanIoni Bowcher RENEWAL
Deepesh P FollerCanadaIvan Magalhaes NEGOTIATION
Darci H NickaBrazilOnyama Limba QUALIFIED
Johnson C AlbaresJapanOnyama Limba NEW
Cody X BowleyAustraliaOnyama Limba QUALIFIED
Aruna H SaylorsArgentinaAnna Fali QUALIFIED
Johnson Z SchemmerCanadaIvan Magalhaes RENEWAL
Juan X AmigonItalyXuxue Feng UNQUALIFIED
Deepesh G RutaArgentinaAsiya Javayant PROPOSAL
Frozen Columns
Name
Juan E Kolmetz
Mayumi H Stenseth
Ashley G Nestle
Julie M Stenseth
Costa J Bolognia
Murillo K Malet
Stacey G Flosi
Leon B Darakjy
Jennifer L Oldroyd
Adams Y Rulapaugh
Antonio K Morasca
Salvatore V Whobrey
Smith E Shinko
Ivar B Maclead
Wickens C Maclead
Jennifer O Bowley
Juan E Nestle
Salvatore W Doe
David L Vocelka
Tony Q Maclead
Greenwood U Waycott
Emily G Sergi
Mujtaba Z Gaucho
Clifford M Schemmer
Leja B Darakjy
Clifford V Nestle
Sinclair F Bolognia
Maria Y Poquette
Misaki V Kusko
Ricardo K Caldarera
Clifford V Saylors
Octavia K Schemmer
Clifford K Slusarski
Misaki P Albares
Chavez U Albares
David E Stenseth
Antonio P Malet
Maria V Inouye
Ricardo V Foller
Greenwood J Bolognia
Jennifer Z Doe
Emily L Ferencz
Claire T Sergi
Ashley A Campain
Morrow C Glick
Faith G Albares
Wickens A Ostrosky
Silvio V Shinko
Greenwood L Flosi
Aruna J Rulapaugh
IdCountryDate
1000Argentina2025-08-08
1001France2025-07-30
1002Italy2025-08-08
1003Russia2025-08-02
1004Argentina2025-08-23
1005Brazil2025-08-26
1006United Kingdom2025-08-01
1007Canada2025-08-20
1008Argentina2025-08-14
1009Italy2025-08-24
1010United Kingdom2025-08-19
1011Italy2025-08-27
1012Australia2025-08-15
1013United Kingdom2025-07-31
1014Argentina2025-08-24
1015India2025-08-11
1016Canada2025-08-19
1017Germany2025-08-05
1018India2025-07-31
1019Germany2025-08-16
1020United Kingdom2025-08-14
1021Italy2025-08-22
1022India2025-08-08
1023France2025-08-10
1024Spain2025-08-24
1025India2025-08-05
1026United Kingdom2025-08-20
1027Australia2025-08-20
1028Italy2025-08-26
1029Germany2025-08-01
1030Brazil2025-08-24
1031Argentina2025-08-28
1032Argentina2025-08-28
1033India2025-08-23
1034Germany2025-08-14
1035Australia2025-08-13
1036Canada2025-08-11
1037Australia2025-07-31
1038India2025-08-14
1039India2025-08-10
1040India2025-08-26
1041Brazil2025-08-26
1042Russia2025-08-07
1043United Kingdom2025-08-18
1044United Kingdom2025-08-10
1045Argentina2025-08-14
1046Argentina2025-08-06
1047Spain2025-08-01
1048Germany2025-08-18
1049United Kingdom2025-08-22

On-Demand Data

NameIdCountryDate
Maisha R Flosi1000Italy2025-08-02
Costa J Paprocki1001Russia2025-08-13
Arvin F Saylors1002Spain2025-08-11
Rodrigues W Briddick1003France2025-08-05
Munro B Slusarski1004Australia2025-08-06
Emily Y Kusko1005India2025-08-12
Misaki N Dilliard1006Argentina2025-08-24
Mayumi Y Briddick1007Brazil2025-08-16
Antonio N Gillian1008France2025-08-22
Misaki G Slusarski1009India2025-08-16
Alejandro G Malet1010Italy2025-07-31
David D Kusko1011Argentina2025-08-09
Julie C Vocelka1012France2025-08-14
James Y Oldroyd1013Japan2025-08-21
Claire T Vocelka1014Spain2025-08-07
Maria P Albares1015India2025-08-12
Deepesh T Rim1016Spain2025-08-05
Claire N Ruta1017Argentina2025-08-06
Arvin M Poquette1018Canada2025-08-07
Clifford W Garufi1019Australia2025-08-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson L NestleAustraliaStephen Shaw RENEWAL
Jennifer V WieserCanadaAmy Elsner RENEWAL
Costa R BriddickItalyAsiya Javayant NEGOTIATION
Ashley R FlosiUnited KingdomXuxue Feng UNQUALIFIED
Cody Z MaletItalyAsiya Javayant NEW
Greenwood C GillianGermanyXuxue Feng NEGOTIATION
Maisha M InouyeGermanyAmy Elsner RENEWAL
Juan P WhobreyRussiaBernardo Dominic NEW
David V SergiJapanXuxue Feng UNQUALIFIED
Julie V ButtUnited KingdomOnyama Limba QUALIFIED
Cody U FerenczGermanyElwin Sharvill NEW
Deepesh E SchemmerFranceAsiya Javayant RENEWAL
Tony I KolmetzGermanyIoni Bowcher PROPOSAL
Jennifer Q SchemmerGermanyElwin Sharvill NEGOTIATION
Clifford X PerinBrazilIvan Magalhaes UNQUALIFIED
Leon U FlosiArgentinaBernardo Dominic RENEWAL
Julie G CaldareraBrazilElwin Sharvill PROPOSAL
Greenwood E StockhamItalyAnna Fali PROPOSAL
Cody I SaylorsSpainStephen Shaw PROPOSAL
Jones T CampainAustraliaElwin Sharvill UNQUALIFIED
Johnson C PerinUnited KingdomAnna Fali NEW
Julie D FlosiFranceOnyama Limba RENEWAL
Ivar J KolmetzAustraliaXuxue Feng NEGOTIATION
Nicolas H WaycottArgentinaStephen Shaw UNQUALIFIED
Faith N MaletUnited KingdomAnna Fali NEGOTIATION
Nicolas N AmigonRussiaXuxue Feng NEW
Julie I DoeItalyIvan Magalhaes NEW
Costa A ChuiFranceXuxue Feng UNQUALIFIED
Arvin O DoeGermanyBernardo Dominic UNQUALIFIED
David N DarakjyRussiaAmy Elsner UNQUALIFIED
Ivar Q NickaJapanIoni Bowcher UNQUALIFIED
Julie T ShinkoArgentinaElwin Sharvill UNQUALIFIED
Munro I SaylorsJapanOnyama Limba NEW
Faith N NickaCanadaXuxue Feng RENEWAL
Morrow J MacleadCanadaAmy Elsner UNQUALIFIED
Isabel F RutaSpainElwin Sharvill UNQUALIFIED
Costa W StensethJapanBernardo Dominic RENEWAL
David U ChuiJapanElwin Sharvill NEGOTIATION
Francesco L PerinCanadaAnna Fali NEGOTIATION
Claire H MarrierUnited KingdomIoni Bowcher NEGOTIATION

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