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
Claire Z DarakjyArgentinaAnna Fali UNQUALIFIED
Emily C StensethItalyElwin Sharvill PROPOSAL
Jennifer B WieserAustraliaAsiya Javayant PROPOSAL
Salvatore B VocelkaSpainAmy Elsner UNQUALIFIED
Darci V WaycottSpainAsiya Javayant NEGOTIATION
Nicolas E NestleSpainIvan Magalhaes NEW
Ivar G RoysterArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois B VenereAustraliaIoni Bowcher NEGOTIATION
Murillo H MorascaGermanyXuxue Feng NEGOTIATION
Jeanfrancois U StockhamCanadaAnna Fali PROPOSAL
Deepesh S NickaIndiaAsiya Javayant QUALIFIED
Nicolas A CaudyAustraliaAnna Fali QUALIFIED
Arvin B WieserSpainIoni Bowcher UNQUALIFIED
Ricardo C InouyeCanadaXuxue Feng NEGOTIATION
Murillo V StensethArgentinaAmy Elsner NEGOTIATION
Juan N GillianRussiaIvan Magalhaes PROPOSAL
Maisha O KuskoCanadaAsiya Javayant QUALIFIED
Ivar C ShinkoBrazilAsiya Javayant NEGOTIATION
Munro B TollnerRussiaXuxue Feng NEGOTIATION
Smith F RulapaughIndiaIvan Magalhaes RENEWAL
Alejandro T WaycottSpainIoni Bowcher UNQUALIFIED
Isabel T BriddickIndiaAsiya Javayant UNQUALIFIED
Munro W RoysterItalyXuxue Feng NEW
Antonio R GlickIndiaAnna Fali PROPOSAL
Aruna F PaprockiRussiaElwin Sharvill QUALIFIED
Juan P DarakjyJapanAsiya Javayant PROPOSAL
Salvatore F WieserItalyIoni Bowcher NEW
Adams I IturbideUnited KingdomXuxue Feng NEW
Aruna J GillianItalyIvan Magalhaes RENEWAL
Francesco G GillianSpainAmy Elsner NEW
Aika N TollnerIndiaOnyama Limba NEW
Rodrigues J WhobreySpainOnyama Limba PROPOSAL
Cody F KuskoItalyElwin Sharvill PROPOSAL
Izzy Q GillianFranceIoni Bowcher UNQUALIFIED
Chavez K GauchoCanadaIoni Bowcher NEW
Wickens I KolmetzCanadaElwin Sharvill QUALIFIED
Murillo F MarrierUnited KingdomAnna Fali NEGOTIATION
Mayumi U SaylorsArgentinaXuxue Feng UNQUALIFIED
Darci A SaylorsCanadaOnyama Limba UNQUALIFIED
Deepesh X RulapaughSpainIoni Bowcher RENEWAL
Jennifer Q CaudyGermanyStephen Shaw RENEWAL
Murillo R MorascaCanadaOnyama Limba QUALIFIED
Juan G GlickFranceIoni Bowcher QUALIFIED
Emily I DarakjyRussiaXuxue Feng PROPOSAL
Jeanfrancois H RutaCanadaXuxue Feng PROPOSAL
Juan D RulapaughRussiaAsiya Javayant UNQUALIFIED
Aika Q RulapaughCanadaAsiya Javayant RENEWAL
Arvin L PerinCanadaXuxue Feng UNQUALIFIED
Claire Q WhobreyGermanyAsiya Javayant NEGOTIATION
Mujtaba C KuskoCanadaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson H NickaAustraliaStephen Shaw RENEWAL
Wickens C SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Kaitlin L MorascaUnited KingdomStephen Shaw QUALIFIED
Arvin I MacleadBrazilIvan Magalhaes NEGOTIATION
Greenwood Z PoquetteJapanBernardo Dominic PROPOSAL
Francesco Y StensethBrazilAmy Elsner RENEWAL
Aditya Y BowleySpainXuxue Feng QUALIFIED
Costa H AlbaresIndiaOnyama Limba QUALIFIED
Greenwood E BologniaAustraliaAsiya Javayant RENEWAL
Cody V FlosiRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin W CaudyCanada2026-10-17Morlong Associates NEGOTIATION90Elwin Sharvill
1001Ivar N StockhamAustralia2026-10-11Commercial Press RENEWAL64Onyama Limba
1002Emily O RutaGermany2026-10-30King, Christopher A Esq PROPOSAL76Onyama Limba
1003Wickens B FollerArgentina2026-11-07Dorl, James J Esq QUALIFIED65Onyama Limba
1004Greenwood Y GauchoFrance2026-10-22Chapman, Ross E Esq UNQUALIFIED26Ivan Magalhaes
1005Jefferson T GillianSpain2026-10-21Chapman, Ross E Esq NEW44Anna Fali
1006Ricardo N SchemmerGermany2026-11-02Commercial Press NEW44Anna Fali
1007Cody V KolmetzItaly2026-10-29Truhlar And Truhlar Attys NEGOTIATION93Bernardo Dominic
1008Morrow L InouyeSpain2026-10-13Morlong Associates QUALIFIED39Onyama Limba
1009Adams X GauchoItaly2026-11-03Truhlar And Truhlar Attys NEGOTIATION6Ivan Magalhaes
1010Juan Q WaycottCanada2026-11-07Morlong Associates RENEWAL70Ivan Magalhaes
1011Leon B SaylorsRussia2026-11-07Feiner Bros NEGOTIATION19Anna Fali
1012Kaitlin B MaletGermany2026-10-11Morlong Associates PROPOSAL26Anna Fali
1013Chavez J PoquetteFrance2026-10-20Feiner Bros PROPOSAL81Ivan Magalhaes
1014Kadeem E MaletUnited Kingdom2026-10-20Morlong Associates QUALIFIED63Elwin Sharvill
1015Ashley Z BologniaArgentina2026-10-24Rangoni Of Florence NEGOTIATION90Bernardo Dominic
1016Isabel W SaylorsJapan2026-10-11Feltz Printing Service NEW73Ioni Bowcher
1017Arvin H SchemmerGermany2026-10-23Chemel, James L Cpa RENEWAL12Onyama Limba
1018Rodrigues P FerenczFrance2026-10-28Truhlar And Truhlar Attys NEGOTIATION50Stephen Shaw
1019Maria Z MacleadJapan2026-10-23Benton, John B Jr NEGOTIATION90Onyama Limba
1020Clifford E SergiIndia2026-11-06Printing Dimensions NEW49Anna Fali
1021Murillo X SergiSpain2026-10-29Rousseaux, Michael Esq NEW56Xuxue Feng
1022Jeanfrancois A SergiAustralia2026-10-13Chemel, James L Cpa QUALIFIED10Ivan Magalhaes
1023Emily C BriddickFrance2026-10-13Morlong Associates PROPOSAL31Xuxue Feng
1024Faith I FollerRussia2026-10-28Truhlar And Truhlar Attys PROPOSAL34Ioni Bowcher
1025Misaki L InouyeBrazil2026-10-25Dorl, James J Esq PROPOSAL54Asiya Javayant
1026Maria V FerenczRussia2026-10-17Feiner Bros QUALIFIED16Ioni Bowcher
1027Emily Y GauchoJapan2026-10-11Truhlar And Truhlar Attys PROPOSAL63Stephen Shaw
1028Faith G StensethArgentina2026-11-01Chemel, James L Cpa RENEWAL77Amy Elsner
1029Claire N GarufiIndia2026-10-27Printing Dimensions UNQUALIFIED46Anna Fali
1030Silvio C MacleadFrance2026-10-24Commercial Press PROPOSAL83Bernardo Dominic
1031Chavez B WieserSpain2026-10-24Feltz Printing Service NEGOTIATION53Onyama Limba
1032Darci O VocelkaArgentina2026-10-10Commercial Press PROPOSAL52Anna Fali
1033Juan Q SchemmerSpain2026-10-24Chemel, James L Cpa NEGOTIATION27Amy Elsner
1034Morrow F NestleSpain2026-10-31Buckley Miller Wright NEGOTIATION59Anna Fali
1035Deepesh H CaudyCanada2026-10-28Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1036Aruna L DilliardCanada2026-10-26Benton, John B Jr PROPOSAL83Ioni Bowcher
1037Morrow V SaylorsIndia2026-11-01Printing Dimensions NEW50Xuxue Feng
1038Leon L NestleFrance2026-10-11Benton, John B Jr NEW39Ivan Magalhaes
1039Cody O ButtAustralia2026-10-27Printing Dimensions NEW23Stephen Shaw
1040Octavia P CaldareraCanada2026-10-25Truhlar And Truhlar Attys NEGOTIATION51Asiya Javayant
1041Ashley Q VenereUnited Kingdom2026-10-31Dorl, James J Esq NEW91Anna Fali
1042Nicolas F VenereBrazil2026-10-24King, Christopher A Esq PROPOSAL64Amy Elsner
1043Costa T SlusarskiArgentina2026-10-23King, Christopher A Esq UNQUALIFIED89Anna Fali
1044Rodrigues T SergiBrazil2026-10-13Feiner Bros NEW18Bernardo Dominic
1045Misaki F FlosiItaly2026-10-31Rangoni Of Florence NEW62Onyama Limba
1046Murillo H NestleIndia2026-11-03Feiner Bros NEGOTIATION88Elwin Sharvill
1047Arvin O PoquetteFrance2026-10-20Truhlar And Truhlar Attys RENEWAL18Stephen Shaw
1048James A AlbaresCanada2026-11-08Dorl, James J Esq NEW73Asiya Javayant
1049Maria Z NickaCanada2026-10-30King, Christopher A Esq RENEWAL61Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ashley L GlickUnited KingdomXuxue Feng QUALIFIED
Emily A DilliardCanadaIvan Magalhaes NEW
Leon X DoeAustraliaIoni Bowcher PROPOSAL
Smith T VenereItalyAsiya Javayant UNQUALIFIED
Kaitlin P BologniaRussiaIoni Bowcher UNQUALIFIED
Rodrigues X SaylorsFranceAmy Elsner PROPOSAL
Juan C StockhamBrazilAsiya Javayant NEGOTIATION
Rodrigues L SlusarskiIndiaBernardo Dominic UNQUALIFIED
Claire A BowleySpainStephen Shaw PROPOSAL
Aditya R SaylorsCanadaAnna Fali QUALIFIED
Munro I ButtIndiaIoni Bowcher NEGOTIATION
James E CaudyItalyAmy Elsner RENEWAL
Maria I NickaRussiaIoni Bowcher PROPOSAL
Francesco K MaletCanadaXuxue Feng QUALIFIED
Ivar K IturbideFranceBernardo Dominic QUALIFIED
Ricardo I GillianArgentinaAmy Elsner NEW
Kaitlin L PaprockiJapanAnna Fali UNQUALIFIED
Leja A BowleyArgentinaBernardo Dominic NEW
Ashley T NickaFranceElwin Sharvill NEW
Kaitlin W DilliardGermanyOnyama Limba PROPOSAL
Francesco B DarakjyIndiaAnna Fali QUALIFIED
Murillo T NickaFranceOnyama Limba PROPOSAL
Emily N AlbaresBrazilIvan Magalhaes PROPOSAL
James M VocelkaBrazilIvan Magalhaes UNQUALIFIED
Jefferson N SaylorsBrazilAsiya Javayant NEGOTIATION
Leon Q FerenczBrazilXuxue Feng UNQUALIFIED
Murillo Q FerenczArgentinaIvan Magalhaes UNQUALIFIED
Wickens W OldroydIndiaAsiya Javayant QUALIFIED
Emily Y SergiGermanyOnyama Limba RENEWAL
Clifford M BriddickItalyStephen Shaw UNQUALIFIED
Leja F NickaItalyOnyama Limba NEW
James A PerinCanadaAmy Elsner NEW
Aditya F FlosiArgentinaElwin Sharvill QUALIFIED
Jeanfrancois L OldroydIndiaIoni Bowcher RENEWAL
David B SchemmerIndiaBernardo Dominic NEW
Smith Y RulapaughIndiaStephen Shaw UNQUALIFIED
Wickens E DoeArgentinaBernardo Dominic QUALIFIED
Francesco F SergiUnited KingdomIoni Bowcher UNQUALIFIED
Munro Q MaletUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois Z OldroydGermanyStephen Shaw RENEWAL
Francesco Y BowleyJapanBernardo Dominic NEGOTIATION
Mujtaba I DilliardArgentinaAmy Elsner NEGOTIATION
Claire K SergiJapanElwin Sharvill NEW
Tony S MacleadUnited KingdomXuxue Feng NEW
Johnson O PoquetteIndiaAmy Elsner NEGOTIATION
Costa B RutaCanadaAmy Elsner PROPOSAL
Darci Y GarufiFranceAnna Fali UNQUALIFIED
Smith P MaletFranceIoni Bowcher RENEWAL
Costa D VenereCanadaStephen Shaw NEGOTIATION
Izzy W FlosiAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Jeanfrancois S Marrier
Ivar J Inouye
Jones O Kusko
Salvatore G Stockham
Adams O Tollner
Smith G Tollner
Darci N Ostrosky
Isabel I Royster
Cody T Stockham
Julie J Inouye
Misaki W Caudy
Deepesh C Rim
Izzy D Schemmer
David S Slusarski
Izzy E Tollner
Leon D Chui
Faith J Shinko
Stacey E Chui
Sinclair B Inouye
Clifford H Malet
Sinclair A Morasca
Wickens V Kusko
Francesco E Campain
Stacey E Bolognia
Greenwood V Bowley
Jefferson Y Nicka
Darci J Caudy
Nicolas I Ostrosky
Munro L Albares
Jefferson V Gaucho
Cody O Chui
Mayumi C Tollner
Juan Z Briddick
Emily N Slusarski
Chavez F Rim
Ivar R Figeroa
Sinclair Q Venere
Morrow B Bowley
Tony L Stockham
Clifford I Inouye
Jones Z Stockham
Juan G Sergi
Isabel I Butt
Aruna R Schemmer
Octavia E Venere
Adams Z Campain
Jeanfrancois I Foller
Jefferson X Ferencz
Mayumi G Stenseth
Jefferson Z Royster
IdCountryDate
1000Canada2026-10-24
1001Argentina2026-10-11
1002Brazil2026-11-04
1003Australia2026-10-22
1004France2026-10-11
1005France2026-10-22
1006France2026-10-10
1007Russia2026-10-15
1008United Kingdom2026-10-23
1009Russia2026-10-13
1010Argentina2026-10-10
1011Spain2026-10-18
1012Germany2026-10-29
1013Russia2026-10-27
1014India2026-10-11
1015Japan2026-10-27
1016Australia2026-10-31
1017Canada2026-10-16
1018Canada2026-11-07
1019Argentina2026-10-10
1020Russia2026-10-12
1021France2026-11-03
1022Spain2026-10-30
1023India2026-10-22
1024Spain2026-10-25
1025Spain2026-10-11
1026Italy2026-10-14
1027Russia2026-11-04
1028Brazil2026-10-14
1029Spain2026-10-26
1030Russia2026-10-24
1031Brazil2026-11-06
1032Australia2026-10-31
1033France2026-10-19
1034Japan2026-11-01
1035United Kingdom2026-10-13
1036Italy2026-10-31
1037Japan2026-10-16
1038Russia2026-10-26
1039Australia2026-10-16
1040India2026-11-08
1041India2026-10-17
1042Brazil2026-10-23
1043Japan2026-10-13
1044India2026-11-07
1045Brazil2026-10-30
1046Australia2026-11-01
1047Japan2026-10-10
1048Brazil2026-11-04
1049Russia2026-10-16

On-Demand Data

NameIdCountryDate
Ivar E Rulapaugh1000Russia2026-10-31
Aruna O Bolognia1001France2026-10-22
Maisha C Ferencz1002Spain2026-10-13
Deepesh X Iturbide1003United Kingdom2026-10-18
Murillo J Perin1004Italy2026-10-18
Ricardo Z Shinko1005Canada2026-10-16
Arvin F Gillian1006Argentina2026-10-20
Wickens I Saylors1007France2026-10-28
Johnson L Garufi1008India2026-10-30
Smith V Wieser1009France2026-10-25
Darci P Gaucho1010Argentina2026-10-17
Johnson T Nicka1011Australia2026-11-04
Maisha V Flosi1012Australia2026-11-03
Deepesh A Maclead1013France2026-11-01
Julie N Malet1014Australia2026-11-08
Morrow E Morasca1015France2026-11-05
Deepesh C Rim1016Italy2026-11-07
Kaitlin T Figeroa1017Japan2026-10-12
Aditya A Whobrey1018India2026-10-31
Octavia A Malet1019Australia2026-10-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin O SlusarskiJapanAsiya Javayant QUALIFIED
Maria U DoeFranceIoni Bowcher NEGOTIATION
Mayumi A MacleadBrazilXuxue Feng UNQUALIFIED
Kadeem D RulapaughFranceAsiya Javayant UNQUALIFIED
Kaitlin O FlosiSpainIvan Magalhaes RENEWAL
Munro K TollnerIndiaBernardo Dominic NEGOTIATION
Wickens P MorascaIndiaAsiya Javayant QUALIFIED
Ashley B GillianRussiaIvan Magalhaes RENEWAL
Leja I FollerArgentinaAmy Elsner UNQUALIFIED
Leon E KolmetzJapanIoni Bowcher PROPOSAL
James J OstroskyCanadaAmy Elsner NEW
Kadeem U SlusarskiItalyStephen Shaw UNQUALIFIED
Ashley N WaycottRussiaStephen Shaw RENEWAL
Leja Y AmigonSpainElwin Sharvill NEW
Stacey U TollnerItalyAmy Elsner RENEWAL
Izzy F GillianGermanyXuxue Feng NEGOTIATION
Rodrigues S RimUnited KingdomOnyama Limba RENEWAL
Arvin Y WhobreyIndiaBernardo Dominic UNQUALIFIED
Kaitlin V MorascaSpainElwin Sharvill QUALIFIED
Alejandro F GillianFranceIoni Bowcher RENEWAL
Antonio Y MorascaAustraliaIvan Magalhaes QUALIFIED
Mayumi B DoeItalyElwin Sharvill QUALIFIED
Mujtaba D SlusarskiRussiaAmy Elsner QUALIFIED
Maisha Y RutaUnited KingdomAmy Elsner QUALIFIED
Ashley M WhobreyCanadaAnna Fali UNQUALIFIED
Deepesh L CaudyFranceOnyama Limba RENEWAL
Alejandro S SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Maisha P SlusarskiRussiaAmy Elsner NEGOTIATION
Salvatore A FollerArgentinaStephen Shaw RENEWAL
Maria D DoeUnited KingdomAmy Elsner NEGOTIATION
Ricardo U NickaBrazilIoni Bowcher NEW
Smith J OstroskyItalyStephen Shaw NEGOTIATION
Salvatore K ButtJapanIoni Bowcher NEGOTIATION
Nicolas H NickaGermanyXuxue Feng UNQUALIFIED
Rodrigues T PoquetteCanadaIvan Magalhaes UNQUALIFIED
Rodrigues A RutaBrazilOnyama Limba UNQUALIFIED
Misaki G VenereJapanAnna Fali NEW
Rodrigues O WieserAustraliaIvan Magalhaes RENEWAL
Jeanfrancois D ButtAustraliaIvan Magalhaes NEW
Silvio E PerinFranceAsiya Javayant UNQUALIFIED

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