November Deals: Limited Coupons Available! 🎁 Claim Your Coupon

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
Jennifer V PerinUnited KingdomAnna Fali UNQUALIFIED
Kadeem V SergiItalyStephen Shaw NEW
Munro I MorascaCanadaBernardo Dominic NEW
Costa G ChuiSpainAsiya Javayant NEGOTIATION
Antonio G SaylorsGermanyXuxue Feng QUALIFIED
Aika Q GlickGermanyStephen Shaw NEW
Salvatore Q BowleyBrazilIoni Bowcher UNQUALIFIED
Stacey D OldroydUnited KingdomAsiya Javayant RENEWAL
Jones V RoysterSpainIvan Magalhaes UNQUALIFIED
Alejandro U PoquetteBrazilStephen Shaw NEGOTIATION
Faith T OstroskyGermanyXuxue Feng QUALIFIED
Arvin N RoysterUnited KingdomAnna Fali QUALIFIED
Ashley N RutaUnited KingdomAsiya Javayant NEGOTIATION
Deepesh Y StensethFranceStephen Shaw NEW
Adams J DarakjyRussiaStephen Shaw NEW
Juan P ChuiUnited KingdomStephen Shaw RENEWAL
Antonio A OldroydAustraliaStephen Shaw UNQUALIFIED
Arvin V RulapaughRussiaOnyama Limba RENEWAL
Julie C NickaBrazilIoni Bowcher NEGOTIATION
Ashley A OstroskyFranceElwin Sharvill RENEWAL
Kadeem P MarrierUnited KingdomAnna Fali QUALIFIED
Claire T FerenczGermanyAmy Elsner UNQUALIFIED
Sinclair N WieserAustraliaXuxue Feng NEW
Francesco I AlbaresRussiaAsiya Javayant PROPOSAL
Rodrigues H PerinArgentinaAmy Elsner UNQUALIFIED
Emily F StockhamCanadaIvan Magalhaes NEW
Julie A BriddickArgentinaXuxue Feng UNQUALIFIED
Leon X MaletIndiaIoni Bowcher UNQUALIFIED
Maisha S DoeCanadaElwin Sharvill QUALIFIED
Faith C VocelkaUnited KingdomAnna Fali RENEWAL
Nicolas H RimUnited KingdomIvan Magalhaes QUALIFIED
Clifford J MaletUnited KingdomXuxue Feng RENEWAL
Clifford P KolmetzAustraliaAsiya Javayant NEW
Rodrigues M NickaAustraliaBernardo Dominic RENEWAL
Morrow X MarrierSpainAnna Fali RENEWAL
Jefferson M VenereBrazilAmy Elsner UNQUALIFIED
Arvin V BologniaGermanyXuxue Feng UNQUALIFIED
Morrow C WieserGermanyStephen Shaw NEW
Jefferson S GlickAustraliaAsiya Javayant RENEWAL
Ricardo X PaprockiIndiaXuxue Feng NEGOTIATION
Jeanfrancois L AlbaresAustraliaOnyama Limba UNQUALIFIED
Emily E WieserIndiaAmy Elsner UNQUALIFIED
Misaki H GillianIndiaAsiya Javayant PROPOSAL
Deepesh C FlosiIndiaElwin Sharvill PROPOSAL
Chavez H PaprockiRussiaXuxue Feng UNQUALIFIED
Jones Q FollerSpainBernardo Dominic QUALIFIED
Sinclair L NickaCanadaOnyama Limba PROPOSAL
Leja U WaycottBrazilBernardo Dominic QUALIFIED
Greenwood R SchemmerBrazilAsiya Javayant RENEWAL
Misaki R DarakjySpainIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson A BologniaBrazilBernardo Dominic PROPOSAL
Aruna I SlusarskiJapanXuxue Feng UNQUALIFIED
Juan F SchemmerSpainIvan Magalhaes NEW
Cody Z KuskoRussiaAnna Fali NEW
Francesco Q CampainGermanyAsiya Javayant PROPOSAL
Murillo L DilliardGermanyStephen Shaw NEW
Chavez V DilliardGermanyAnna Fali UNQUALIFIED
Octavia V DoeGermanyOnyama Limba RENEWAL
Smith M NickaFranceIoni Bowcher RENEWAL
Aruna Y CaudyArgentinaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha P TollnerIndia2026-10-12Dorl, James J Esq UNQUALIFIED76Asiya Javayant
1001Arvin O SaylorsJapan2026-10-12Rangoni Of Florence NEW81Xuxue Feng
1002Francesco K DoeFrance2026-10-15Chemel, James L Cpa NEGOTIATION32Bernardo Dominic
1003Morrow E SchemmerCanada2026-10-22King, Christopher A Esq QUALIFIED13Anna Fali
1004Darci A RoysterUnited Kingdom2026-10-31Benton, John B Jr NEGOTIATION31Bernardo Dominic
1005Leon U TollnerJapan2026-10-12Rousseaux, Michael Esq QUALIFIED72Stephen Shaw
1006Murillo E IturbideJapan2026-10-21Printing Dimensions NEW14Stephen Shaw
1007Adams O MaletItaly2026-10-23Feiner Bros PROPOSAL86Bernardo Dominic
1008Claire O SlusarskiAustralia2026-10-09Printing Dimensions NEGOTIATION98Asiya Javayant
1009Munro O FerenczAustralia2026-10-18Chapman, Ross E Esq QUALIFIED4Bernardo Dominic
1010Ivar V CaudyAustralia2026-10-12Benton, John B Jr NEW19Ioni Bowcher
1011Tony C MarrierSpain2026-11-04King, Christopher A Esq UNQUALIFIED88Amy Elsner
1012Salvatore Y MaletBrazil2026-10-28Feiner Bros PROPOSAL21Ivan Magalhaes
1013Sinclair F ChuiFrance2026-10-17Rousseaux, Michael Esq PROPOSAL81Xuxue Feng
1014Claire C MacleadItaly2026-10-17Feiner Bros RENEWAL82Elwin Sharvill
1015Sinclair M PaprockiGermany2026-11-04Morlong Associates PROPOSAL71Bernardo Dominic
1016Ashley X RulapaughItaly2026-11-03King, Christopher A Esq PROPOSAL61Xuxue Feng
1017Jefferson Z StockhamItaly2026-10-21Dorl, James J Esq QUALIFIED51Elwin Sharvill
1018Aruna Y ShinkoFrance2026-10-26Feiner Bros NEGOTIATION39Ivan Magalhaes
1019Jennifer B DarakjyJapan2026-10-24Dorl, James J Esq RENEWAL39Ivan Magalhaes
1020Silvio Z PoquetteIndia2026-10-19Chemel, James L Cpa UNQUALIFIED38Onyama Limba
1021James V SchemmerRussia2026-10-28Buckley Miller Wright QUALIFIED48Xuxue Feng
1022Jeanfrancois V BologniaIndia2026-10-28Truhlar And Truhlar Attys NEGOTIATION29Bernardo Dominic
1023Jeanfrancois D RutaItaly2026-11-01Rangoni Of Florence QUALIFIED7Amy Elsner
1024Wickens Q BriddickJapan2026-11-02Feiner Bros NEW64Anna Fali
1025Johnson Z NickaBrazil2026-10-30Rangoni Of Florence PROPOSAL40Amy Elsner
1026Misaki S ShinkoGermany2026-10-10Truhlar And Truhlar Attys PROPOSAL11Anna Fali
1027James T VocelkaFrance2026-10-22King, Christopher A Esq QUALIFIED26Bernardo Dominic
1028Leon N GillianAustralia2026-10-17Rangoni Of Florence RENEWAL54Ivan Magalhaes
1029Emily Z InouyeSpain2026-10-25Printing Dimensions NEW68Xuxue Feng
1030Wickens T PoquetteAustralia2026-10-26Feltz Printing Service UNQUALIFIED24Onyama Limba
1031Claire K PoquetteGermany2026-10-22Rousseaux, Michael Esq NEW55Asiya Javayant
1032Ivar G VocelkaIndia2026-10-17Benton, John B Jr PROPOSAL23Bernardo Dominic
1033Faith S KuskoIndia2026-10-07Feltz Printing Service RENEWAL70Asiya Javayant
1034Adams U ShinkoItaly2026-10-22Truhlar And Truhlar Attys NEW27Xuxue Feng
1035Greenwood G ChuiFrance2026-10-30Benton, John B Jr NEGOTIATION67Anna Fali
1036Claire K BologniaFrance2026-10-29Rangoni Of Florence NEW16Amy Elsner
1037Stacey C DoeJapan2026-11-01Rangoni Of Florence RENEWAL43Xuxue Feng
1038Alejandro D BowleyGermany2026-10-08Dorl, James J Esq NEW2Asiya Javayant
1039James Y PerinGermany2026-10-20Printing Dimensions QUALIFIED6Anna Fali
1040James N OstroskyGermany2026-10-14Morlong Associates QUALIFIED94Anna Fali
1041Deepesh R CaudyAustralia2026-10-14King, Christopher A Esq RENEWAL80Stephen Shaw
1042Jennifer S BowleyGermany2026-10-29Dorl, James J Esq QUALIFIED27Ioni Bowcher
1043James K SergiRussia2026-10-28Printing Dimensions QUALIFIED21Amy Elsner
1044Ashley D PaprockiArgentina2026-11-04Commercial Press RENEWAL29Asiya Javayant
1045Ivar D SaylorsIndia2026-10-29Chemel, James L Cpa QUALIFIED94Amy Elsner
1046Jones W ShinkoSpain2026-10-07Commercial Press NEW6Onyama Limba
1047Ashley I MaletItaly2026-10-23Rousseaux, Michael Esq QUALIFIED13Onyama Limba
1048Johnson B OldroydGermany2026-10-06Buckley Miller Wright RENEWAL59Elwin Sharvill
1049Adams L SlusarskiArgentina2026-10-30Chemel, James L Cpa QUALIFIED56Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Morrow K MorascaItalyIoni Bowcher UNQUALIFIED
Francesco K MacleadSpainIvan Magalhaes PROPOSAL
Jennifer Y CaudyAustraliaIoni Bowcher QUALIFIED
James Y VocelkaItalyIvan Magalhaes UNQUALIFIED
Mayumi J MacleadAustraliaStephen Shaw RENEWAL
Isabel T RutaGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois Q MaletCanadaElwin Sharvill NEW
Sinclair I WaycottGermanyAsiya Javayant RENEWAL
Leja E RutaGermanyAnna Fali PROPOSAL
Alejandro D FigeroaItalyBernardo Dominic PROPOSAL
Kaitlin B CampainRussiaIoni Bowcher UNQUALIFIED
Ashley X StensethCanadaAnna Fali PROPOSAL
Claire N InouyeAustraliaXuxue Feng QUALIFIED
Kadeem O PoquetteJapanIoni Bowcher UNQUALIFIED
Octavia E OstroskyGermanyElwin Sharvill RENEWAL
Emily C SaylorsArgentinaIoni Bowcher QUALIFIED
Jeanfrancois O PoquetteBrazilBernardo Dominic QUALIFIED
Adams Q ButtJapanOnyama Limba NEW
Aditya I WhobreyItalyElwin Sharvill NEGOTIATION
Francesco X KuskoIndiaXuxue Feng PROPOSAL
Smith A DilliardAustraliaAmy Elsner QUALIFIED
Ricardo R SaylorsIndiaBernardo Dominic QUALIFIED
Clifford W KolmetzFranceOnyama Limba RENEWAL
Jeanfrancois S ChuiJapanBernardo Dominic QUALIFIED
Clifford Y AlbaresArgentinaAmy Elsner NEGOTIATION
Nicolas H VocelkaGermanyStephen Shaw NEW
Clifford R RulapaughBrazilAsiya Javayant NEW
James U SlusarskiItalyAmy Elsner QUALIFIED
Alejandro H OstroskyItalyOnyama Limba QUALIFIED
Smith K OstroskyFranceAmy Elsner UNQUALIFIED
Costa T DarakjyAustraliaAnna Fali NEW
Emily P SaylorsSpainAmy Elsner RENEWAL
Clifford N DoeRussiaStephen Shaw NEW
Juan Y GauchoAustraliaStephen Shaw RENEWAL
Jefferson V CaldareraAustraliaOnyama Limba QUALIFIED
Chavez E KuskoItalyAmy Elsner NEGOTIATION
Mayumi U PoquetteArgentinaIoni Bowcher NEGOTIATION
Murillo G ButtUnited KingdomBernardo Dominic NEW
Ivar Y WieserIndiaIvan Magalhaes NEW
Munro U ChuiIndiaAmy Elsner PROPOSAL
Kaitlin I InouyeGermanyXuxue Feng NEW
Jefferson G ChuiGermanyAnna Fali NEGOTIATION
Aruna B WaycottRussiaOnyama Limba NEGOTIATION
Aika K FollerBrazilXuxue Feng NEGOTIATION
Mujtaba P GauchoCanadaElwin Sharvill NEGOTIATION
Darci O KuskoAustraliaAsiya Javayant UNQUALIFIED
Jefferson U RulapaughIndiaAsiya Javayant RENEWAL
Mayumi K ButtArgentinaAmy Elsner RENEWAL
Alejandro Y BowleyBrazilAnna Fali PROPOSAL
Aditya Q VenereGermanyOnyama Limba RENEWAL
Frozen Columns
Name
Chavez M Ferencz
Ashley A Iturbide
Arvin O Poquette
Antonio R Butt
James D Dilliard
Juan D Morasca
Jeanfrancois K Inouye
Aditya N Gaucho
Aruna O Venere
Murillo O Whobrey
Adams F Kusko
Cody O Dilliard
Mujtaba N Butt
Rodrigues M Schemmer
Jeanfrancois F Darakjy
Isabel I Briddick
Ivar R Oldroyd
Chavez Q Malet
Ivar J Tollner
Deepesh P Waycott
Mujtaba W Nestle
Jefferson Y Foller
Tony X Poquette
Jeanfrancois J Kolmetz
Aditya Q Bolognia
Leja D Royster
Greenwood E Gillian
Smith S Perin
Alejandro L Malet
Ashley V Amigon
Maria U Ostrosky
Julie O Glick
Aika X Malet
Clifford T Amigon
Sinclair Q Iturbide
Greenwood L Figeroa
Murillo Z Morasca
Faith K Bolognia
Maisha L Kolmetz
Leon U Malet
Emily D Iturbide
Faith K Ostrosky
Kaitlin S Maclead
Morrow F Schemmer
Mujtaba G Flosi
Antonio K Butt
Mayumi C Rulapaugh
Jefferson Z Ferencz
Stacey G Malet
Stacey B Ostrosky
IdCountryDate
1000Germany2026-10-28
1001Germany2026-10-06
1002India2026-10-12
1003Italy2026-10-08
1004France2026-10-13
1005Canada2026-10-23
1006United Kingdom2026-10-26
1007Japan2026-10-21
1008United Kingdom2026-10-23
1009Australia2026-10-20
1010Italy2026-10-12
1011Brazil2026-10-28
1012Argentina2026-11-03
1013Argentina2026-11-01
1014Brazil2026-10-18
1015Germany2026-10-27
1016France2026-10-23
1017Germany2026-10-18
1018Russia2026-10-17
1019Italy2026-10-13
1020Japan2026-10-20
1021Italy2026-11-04
1022Russia2026-10-24
1023Germany2026-10-27
1024Brazil2026-11-04
1025United Kingdom2026-10-21
1026Spain2026-10-17
1027Italy2026-10-19
1028France2026-10-30
1029Brazil2026-10-21
1030Canada2026-10-23
1031Canada2026-10-15
1032Japan2026-10-10
1033Italy2026-10-26
1034United Kingdom2026-10-15
1035India2026-10-14
1036United Kingdom2026-11-02
1037India2026-10-31
1038United Kingdom2026-10-27
1039India2026-10-20
1040Spain2026-10-31
1041Italy2026-11-01
1042Japan2026-10-30
1043Canada2026-10-13
1044France2026-11-01
1045Russia2026-10-19
1046Spain2026-10-09
1047Germany2026-10-27
1048Russia2026-10-31
1049France2026-10-24

On-Demand Data

NameIdCountryDate
Salvatore K Paprocki1000Australia2026-10-31
Faith M Inouye1001Canada2026-10-13
Jones L Gaucho1002Germany2026-10-23
Arvin R Poquette1003Japan2026-11-01
Octavia O Maclead1004Australia2026-10-17
Ricardo C Gaucho1005United Kingdom2026-10-07
David E Maclead1006Canada2026-10-30
Clifford L Venere1007Canada2026-10-15
Antonio P Royster1008Japan2026-10-08
Chavez U Darakjy1009Japan2026-11-02
Izzy V Amigon1010Australia2026-10-30
Francesco F Garufi1011France2026-10-22
Isabel O Shinko1012Russia2026-11-04
Mujtaba B Malet1013Italy2026-11-01
Chavez L Waycott1014Canada2026-10-06
Murillo K Iturbide1015Italy2026-10-22
Smith L Ruta1016United Kingdom2026-10-07
Ashley J Gaucho1017United Kingdom2026-10-09
Claire O Kusko1018United Kingdom2026-10-30
Antonio V Nestle1019Japan2026-10-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy U NickaIndiaAmy Elsner UNQUALIFIED
Stacey U InouyeFranceAnna Fali RENEWAL
Juan T RoysterBrazilStephen Shaw NEW
Leja E VocelkaSpainIoni Bowcher RENEWAL
Murillo X VenereRussiaStephen Shaw NEGOTIATION
Chavez H CaldareraGermanyIoni Bowcher NEW
James U BowleySpainAsiya Javayant PROPOSAL
Claire F WaycottGermanyIvan Magalhaes RENEWAL
Antonio X GillianArgentinaAmy Elsner RENEWAL
Nicolas S GillianAustraliaBernardo Dominic RENEWAL
Mayumi M GauchoItalyAmy Elsner QUALIFIED
Tony J AlbaresFranceOnyama Limba RENEWAL
Ricardo W RimGermanyIvan Magalhaes UNQUALIFIED
Jones N CampainCanadaAsiya Javayant NEW
Maria B FollerUnited KingdomBernardo Dominic QUALIFIED
Chavez Z WaycottCanadaBernardo Dominic QUALIFIED
Ricardo J MaletGermanyAnna Fali PROPOSAL
Salvatore L OldroydItalyBernardo Dominic UNQUALIFIED
Sinclair Q NestleCanadaIoni Bowcher NEW
Johnson R TollnerRussiaAnna Fali QUALIFIED
Leon D DoeRussiaAsiya Javayant NEW
Octavia L MarrierIndiaElwin Sharvill PROPOSAL
Aditya N CaldareraBrazilAmy Elsner NEW
Octavia B CaudyRussiaIvan Magalhaes RENEWAL
Aruna I SergiIndiaAmy Elsner PROPOSAL
Costa Q CaudyBrazilIoni Bowcher QUALIFIED
Mujtaba Y DilliardGermanyIvan Magalhaes PROPOSAL
Ricardo E ButtIndiaStephen Shaw UNQUALIFIED
Chavez O GarufiJapanAsiya Javayant PROPOSAL
Murillo J MaletJapanAnna Fali QUALIFIED
Aditya S BriddickRussiaAsiya Javayant QUALIFIED
Murillo L FerenczGermanyIvan Magalhaes RENEWAL
Chavez J SlusarskiJapanAsiya Javayant PROPOSAL
Johnson A StensethAustraliaIoni Bowcher PROPOSAL
James E VocelkaItalyElwin Sharvill QUALIFIED
Ivar S FollerGermanyAmy Elsner NEW
Francesco F NickaCanadaAsiya Javayant NEGOTIATION
Adams F SchemmerUnited KingdomElwin Sharvill QUALIFIED
Emily H RoysterFranceAmy Elsner UNQUALIFIED
Alejandro Y RulapaughIndiaIvan 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>