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
Maisha D RutaSpainAmy Elsner QUALIFIED
Sinclair U SchemmerJapanAmy Elsner NEW
Rodrigues G BriddickGermanyBernardo Dominic UNQUALIFIED
Rodrigues Z SergiIndiaAsiya Javayant NEW
Aruna R FollerJapanOnyama Limba NEGOTIATION
Chavez W GarufiSpainAsiya Javayant NEW
Sinclair Y DarakjyItalyAmy Elsner PROPOSAL
Smith Y WaycottCanadaBernardo Dominic NEGOTIATION
Stacey O KuskoIndiaAnna Fali NEW
Costa P SchemmerGermanyOnyama Limba NEGOTIATION
Kadeem W FigeroaIndiaIoni Bowcher QUALIFIED
Mujtaba C IturbideGermanyAnna Fali QUALIFIED
Jones B MacleadIndiaBernardo Dominic QUALIFIED
Salvatore I RimGermanyElwin Sharvill NEGOTIATION
Aika P BowleyGermanyStephen Shaw UNQUALIFIED
Aditya M FerenczSpainOnyama Limba QUALIFIED
Jefferson V BriddickBrazilIoni Bowcher RENEWAL
Nicolas X StockhamUnited KingdomIoni Bowcher NEGOTIATION
Ricardo R AmigonFranceStephen Shaw UNQUALIFIED
Octavia O FollerItalyAmy Elsner NEGOTIATION
Francesco W StensethArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois C SergiJapanIoni Bowcher PROPOSAL
Alejandro Z ShinkoBrazilAnna Fali RENEWAL
Johnson A IturbideItalyIoni Bowcher NEW
Nicolas J MaletItalyStephen Shaw NEGOTIATION
Julie V GauchoSpainStephen Shaw RENEWAL
Jeanfrancois R CaudyCanadaAnna Fali NEW
Silvio M MorascaUnited KingdomStephen Shaw NEW
Salvatore S AmigonJapanAmy Elsner NEGOTIATION
Jones B BriddickGermanyOnyama Limba NEGOTIATION
Aruna P RulapaughRussiaElwin Sharvill NEGOTIATION
Francesco Y RulapaughCanadaAnna Fali RENEWAL
Francesco N OstroskyIndiaIvan Magalhaes NEW
Jennifer Q DoeRussiaStephen Shaw PROPOSAL
David K VenereSpainAsiya Javayant NEGOTIATION
Francesco E WaycottSpainAsiya Javayant PROPOSAL
Aika P WhobreyArgentinaAsiya Javayant NEGOTIATION
David E MacleadIndiaElwin Sharvill NEW
Darci G ShinkoUnited KingdomAsiya Javayant PROPOSAL
Clifford E OldroydBrazilElwin Sharvill UNQUALIFIED
Silvio Z MaletAustraliaAsiya Javayant RENEWAL
Kaitlin Z SergiItalyOnyama Limba UNQUALIFIED
Smith V WaycottGermanyStephen Shaw NEGOTIATION
Tony V DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Leja F BowleyAustraliaIvan Magalhaes QUALIFIED
Isabel T FerenczItalyAmy Elsner UNQUALIFIED
Emily K DoeBrazilIvan Magalhaes NEW
Alejandro S KolmetzFranceIvan Magalhaes QUALIFIED
Morrow N ButtCanadaAmy Elsner NEW
Jeanfrancois S MaletRussiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
David L CaudyJapanAsiya Javayant RENEWAL
Nicolas F ChuiItalyElwin Sharvill QUALIFIED
Ashley R GlickBrazilElwin Sharvill NEW
Deepesh O VenereAustraliaElwin Sharvill PROPOSAL
Isabel G CaldareraCanadaAnna Fali NEW
Johnson G PaprockiAustraliaIvan Magalhaes QUALIFIED
Maisha R VenereItalyXuxue Feng QUALIFIED
Cody A FlosiGermanyIoni Bowcher NEGOTIATION
Antonio L MorascaRussiaAmy Elsner NEW
Alejandro Q VocelkaGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba R FlosiArgentina2026-08-07Dorl, James J Esq UNQUALIFIED97Bernardo Dominic
1001Silvio Z NestleCanada2026-08-17Commercial Press NEGOTIATION82Anna Fali
1002Deepesh A GillianCanada2026-08-25Printing Dimensions NEGOTIATION48Asiya Javayant
1003Aditya E BowleyGermany2026-08-17King, Christopher A Esq UNQUALIFIED91Bernardo Dominic
1004Octavia O GarufiAustralia2026-08-07Commercial Press UNQUALIFIED71Anna Fali
1005Jefferson A GauchoItaly2026-08-29Buckley Miller Wright NEW29Bernardo Dominic
1006Johnson X PoquetteJapan2026-08-31Printing Dimensions QUALIFIED58Bernardo Dominic
1007Isabel K NickaRussia2026-09-02Morlong Associates QUALIFIED79Anna Fali
1008Octavia T OldroydAustralia2026-08-15Commercial Press NEW38Ivan Magalhaes
1009Ricardo O KolmetzJapan2026-08-05Chapman, Ross E Esq NEW0Anna Fali
1010Aditya C BowleyGermany2026-08-08Chemel, James L Cpa NEW39Elwin Sharvill
1011Stacey C WhobreyArgentina2026-08-11Printing Dimensions NEW96Onyama Limba
1012Aditya V TollnerAustralia2026-08-06Commercial Press NEW49Amy Elsner
1013Aditya Q RulapaughItaly2026-08-14Chemel, James L Cpa RENEWAL10Asiya Javayant
1014Tony M WieserItaly2026-08-24Buckley Miller Wright PROPOSAL39Elwin Sharvill
1015Clifford Y RutaSpain2026-08-06Truhlar And Truhlar Attys NEW76Ivan Magalhaes
1016Aika Y SlusarskiSpain2026-08-20King, Christopher A Esq RENEWAL35Asiya Javayant
1017Ashley H ShinkoIndia2026-08-08Buckley Miller Wright RENEWAL99Stephen Shaw
1018Tony S RimArgentina2026-08-15Commercial Press RENEWAL18Elwin Sharvill
1019Kadeem R VenereJapan2026-08-14Buckley Miller Wright UNQUALIFIED55Asiya Javayant
1020Francesco D StockhamIndia2026-08-15King, Christopher A Esq UNQUALIFIED2Onyama Limba
1021Jeanfrancois A GarufiSpain2026-08-29Feiner Bros RENEWAL23Onyama Limba
1022Antonio Q GlickRussia2026-08-24Chapman, Ross E Esq NEW93Stephen Shaw
1023Munro J KuskoItaly2026-08-10Chemel, James L Cpa RENEWAL11Onyama Limba
1024Johnson P WieserIndia2026-08-13Chemel, James L Cpa QUALIFIED49Onyama Limba
1025Johnson G KolmetzArgentina2026-08-05Feiner Bros RENEWAL3Bernardo Dominic
1026Darci G VenereBrazil2026-08-28King, Christopher A Esq NEGOTIATION74Elwin Sharvill
1027Jones K BriddickBrazil2026-08-16Commercial Press NEGOTIATION87Onyama Limba
1028Kaitlin T RimArgentina2026-08-08King, Christopher A Esq NEGOTIATION85Amy Elsner
1029Nicolas F RutaItaly2026-08-05Commercial Press UNQUALIFIED58Xuxue Feng
1030Ashley K PerinAustralia2026-08-10Morlong Associates RENEWAL49Elwin Sharvill
1031Chavez F ChuiAustralia2026-08-22Morlong Associates NEGOTIATION16Xuxue Feng
1032Kaitlin M PerinArgentina2026-08-14Chemel, James L Cpa UNQUALIFIED52Elwin Sharvill
1033Ivar R RimFrance2026-09-01Chanay, Jeffrey A Esq QUALIFIED48Asiya Javayant
1034Mujtaba Q SlusarskiIndia2026-08-31Feltz Printing Service QUALIFIED2Asiya Javayant
1035Juan T CaldareraFrance2026-08-10Commercial Press RENEWAL16Xuxue Feng
1036Johnson K TollnerArgentina2026-08-06Morlong Associates PROPOSAL23Bernardo Dominic
1037Ricardo B KuskoIndia2026-08-08Dorl, James J Esq QUALIFIED27Bernardo Dominic
1038Smith V BriddickUnited Kingdom2026-08-14Feiner Bros RENEWAL39Onyama Limba
1039Jefferson Z TollnerIndia2026-08-10Feltz Printing Service NEGOTIATION97Ioni Bowcher
1040Mayumi S VocelkaJapan2026-08-27Chapman, Ross E Esq PROPOSAL14Bernardo Dominic
1041Misaki Z SergiItaly2026-08-30Chanay, Jeffrey A Esq PROPOSAL81Amy Elsner
1042Murillo C NickaItaly2026-08-18Truhlar And Truhlar Attys NEW6Anna Fali
1043Antonio K KolmetzIndia2026-09-01Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1044Munro X WhobreyArgentina2026-08-17Chapman, Ross E Esq NEGOTIATION44Amy Elsner
1045Mujtaba T PaprockiSpain2026-08-21Printing Dimensions PROPOSAL85Ivan Magalhaes
1046Kadeem C CaudyIndia2026-08-30Chapman, Ross E Esq NEGOTIATION90Onyama Limba
1047Arvin K WhobreyItaly2026-08-10Benton, John B Jr RENEWAL44Amy Elsner
1048Smith C MacleadItaly2026-08-22Dorl, James J Esq QUALIFIED86Elwin Sharvill
1049Jefferson C WaycottJapan2026-08-20Chemel, James L Cpa NEW51Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Silvio G CaudyBrazilAnna Fali QUALIFIED
Juan I StensethAustraliaIoni Bowcher RENEWAL
Greenwood V KolmetzAustraliaAmy Elsner NEW
Francesco I PaprockiSpainAmy Elsner NEGOTIATION
Salvatore S FlosiUnited KingdomXuxue Feng QUALIFIED
Faith I RoysterUnited KingdomIvan Magalhaes NEW
Leon F BowleyCanadaAmy Elsner NEGOTIATION
Smith A PerinRussiaAmy Elsner NEGOTIATION
Adams R GlickFranceIvan Magalhaes NEGOTIATION
Jennifer G FollerFranceElwin Sharvill NEGOTIATION
David R MaletJapanXuxue Feng UNQUALIFIED
Jefferson X KuskoItalyAmy Elsner UNQUALIFIED
Francesco H FlosiJapanStephen Shaw UNQUALIFIED
Leon H FigeroaItalyAnna Fali NEGOTIATION
Maria I RulapaughIndiaAnna Fali PROPOSAL
Deepesh J TollnerUnited KingdomXuxue Feng UNQUALIFIED
Claire O ShinkoItalyOnyama Limba PROPOSAL
James N PaprockiItalyIoni Bowcher PROPOSAL
Antonio G IturbideRussiaAmy Elsner PROPOSAL
Mayumi O OstroskyGermanyAnna Fali QUALIFIED
Tony C MorascaSpainAmy Elsner NEW
Ivar M NestleUnited KingdomStephen Shaw NEGOTIATION
Isabel J MorascaBrazilXuxue Feng PROPOSAL
Chavez T GarufiRussiaIvan Magalhaes PROPOSAL
Mujtaba B AmigonSpainXuxue Feng RENEWAL
Aditya Z NickaItalyAnna Fali PROPOSAL
Julie Y DoeCanadaOnyama Limba NEGOTIATION
Smith X SlusarskiFranceIoni Bowcher UNQUALIFIED
Maria Y OstroskyRussiaOnyama Limba RENEWAL
Jones O ChuiItalyAnna Fali UNQUALIFIED
Alejandro S PaprockiGermanyIoni Bowcher PROPOSAL
Leon B OldroydCanadaAmy Elsner NEGOTIATION
Kaitlin K OldroydArgentinaBernardo Dominic NEW
Leja A PerinJapanIvan Magalhaes RENEWAL
Isabel Z PaprockiRussiaOnyama Limba NEW
Arvin U OldroydIndiaAmy Elsner RENEWAL
Johnson E FigeroaCanadaAnna Fali UNQUALIFIED
Maisha D PerinJapanStephen Shaw QUALIFIED
Jennifer A BowleyCanadaOnyama Limba PROPOSAL
Jennifer W VocelkaFranceBernardo Dominic NEW
Kaitlin S NickaAustraliaXuxue Feng RENEWAL
Jennifer I WaycottFranceXuxue Feng PROPOSAL
Munro R ButtRussiaIoni Bowcher PROPOSAL
Claire G WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
David N VenereRussiaAsiya Javayant RENEWAL
Arvin I FollerBrazilAmy Elsner RENEWAL
Johnson F FollerRussiaAnna Fali NEGOTIATION
Alejandro P CampainJapanIvan Magalhaes RENEWAL
Mayumi Y AmigonAustraliaAmy Elsner NEGOTIATION
Octavia P KolmetzBrazilAsiya Javayant QUALIFIED
Frozen Columns
Name
Octavia H Bolognia
Stacey M Royster
Alejandro E Figeroa
Mayumi W Shinko
Emily K Saylors
Tony B Slusarski
Mujtaba M Doe
Deepesh M Rulapaugh
Mayumi F Kolmetz
Adams L Morasca
Aruna C Tollner
Jeanfrancois O Rulapaugh
Octavia K Royster
Darci L Butt
Aika O Kolmetz
Sinclair U Garufi
Aruna D Inouye
Aika V Rim
Jefferson L Gillian
Cody W Paprocki
Claire P Ruta
Mujtaba L Wieser
Stacey F Paprocki
Aruna U Kusko
Tony E Ruta
Jones J Wieser
Julie X Waycott
Munro R Inouye
Octavia D Poquette
Juan O Nestle
Munro L Malet
Maria Y Caudy
Costa L Sergi
Antonio I Stockham
Wickens D Inouye
Aika T Stenseth
Ivar X Darakjy
Ivar G Perin
Aika L Ostrosky
Arvin X Saylors
James M Bolognia
Antonio D Darakjy
Smith B Perin
Aditya A Iturbide
Ricardo C Figeroa
Leon D Darakjy
Cody S Chui
David I Briddick
Aika O Campain
Antonio D Royster
IdCountryDate
1000Germany2026-08-19
1001Italy2026-08-09
1002Brazil2026-08-23
1003Italy2026-08-19
1004Spain2026-08-08
1005Russia2026-08-05
1006Russia2026-08-27
1007Brazil2026-08-23
1008Spain2026-08-14
1009Spain2026-08-18
1010Spain2026-08-25
1011Canada2026-08-14
1012United Kingdom2026-08-23
1013Canada2026-08-28
1014Spain2026-08-21
1015India2026-08-15
1016Australia2026-08-12
1017Germany2026-08-05
1018Argentina2026-08-17
1019France2026-08-04
1020France2026-08-26
1021Russia2026-08-25
1022United Kingdom2026-08-14
1023Australia2026-08-11
1024Japan2026-08-08
1025India2026-08-30
1026United Kingdom2026-08-20
1027Argentina2026-08-13
1028Argentina2026-08-16
1029Argentina2026-08-13
1030India2026-08-10
1031Australia2026-08-16
1032Canada2026-08-06
1033Canada2026-08-13
1034France2026-08-26
1035India2026-08-11
1036Germany2026-08-12
1037United Kingdom2026-08-07
1038United Kingdom2026-08-29
1039Italy2026-08-15
1040United Kingdom2026-08-23
1041Russia2026-08-19
1042Australia2026-08-07
1043Australia2026-08-11
1044Japan2026-08-26
1045France2026-08-12
1046Russia2026-08-20
1047Japan2026-08-07
1048Argentina2026-08-27
1049Argentina2026-08-22

On-Demand Data

NameIdCountryDate
Leja L Iturbide1000India2026-08-18
Aditya C Kolmetz1001United Kingdom2026-08-24
Sinclair X Caldarera1002Italy2026-08-25
Jefferson T Kusko1003France2026-08-22
Antonio X Chui1004Canada2026-08-12
Jennifer L Morasca1005United Kingdom2026-09-02
Tony O Waycott1006Italy2026-08-05
Isabel O Royster1007Spain2026-08-09
Cody G Amigon1008Australia2026-08-21
Costa S Rulapaugh1009Canada2026-08-13
Francesco Z Briddick1010Argentina2026-08-22
Ricardo A Briddick1011India2026-08-28
Leja Q Nicka1012Russia2026-08-28
Leja Z Ruta1013Australia2026-08-24
Alejandro V Flosi1014Italy2026-08-14
Deepesh H Paprocki1015Spain2026-08-21
Stacey F Maclead1016Argentina2026-08-27
David K Glick1017France2026-08-25
David N Malet1018Argentina2026-08-22
Chavez M Darakjy1019Argentina2026-08-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh N MaletArgentinaIvan Magalhaes PROPOSAL
David T WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Aika K SaylorsItalyOnyama Limba QUALIFIED
Cody B SergiCanadaXuxue Feng PROPOSAL
Mayumi L ButtIndiaStephen Shaw QUALIFIED
Costa V GlickGermanyIvan Magalhaes QUALIFIED
Tony K RulapaughAustraliaIoni Bowcher PROPOSAL
Jeanfrancois F SlusarskiRussiaBernardo Dominic NEW
Maria L DoeCanadaAnna Fali PROPOSAL
Aditya K PaprockiItalyOnyama Limba NEGOTIATION
Kadeem L BologniaItalyAmy Elsner PROPOSAL
Francesco R DoeJapanElwin Sharvill NEGOTIATION
Silvio R NestleRussiaAnna Fali NEW
Salvatore B CaudyItalyElwin Sharvill NEW
Nicolas K GauchoItalyOnyama Limba PROPOSAL
Leon N IturbideFranceBernardo Dominic QUALIFIED
Juan B RimUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin L FlosiJapanAnna Fali NEW
James I BriddickFranceElwin Sharvill NEW
Ashley N FollerIndiaXuxue Feng UNQUALIFIED
Sinclair D SchemmerItalyIoni Bowcher UNQUALIFIED
Greenwood D SchemmerArgentinaElwin Sharvill PROPOSAL
Adams Z MaletItalyIvan Magalhaes PROPOSAL
Juan K FerenczJapanAmy Elsner NEW
Deepesh E SlusarskiSpainOnyama Limba NEW
Arvin V BriddickFranceElwin Sharvill NEW
Arvin U SlusarskiItalyIvan Magalhaes NEW
Salvatore R IturbideItalyXuxue Feng NEGOTIATION
Faith M BriddickArgentinaXuxue Feng QUALIFIED
Alejandro L FigeroaUnited KingdomStephen Shaw QUALIFIED
James S WieserGermanyAsiya Javayant NEGOTIATION
Ricardo L CaldareraSpainIvan Magalhaes RENEWAL
Deepesh V ShinkoIndiaIoni Bowcher UNQUALIFIED
Greenwood Q SaylorsRussiaAnna Fali QUALIFIED
Kaitlin K CampainArgentinaIvan Magalhaes NEGOTIATION
Mayumi T FerenczItalyOnyama Limba UNQUALIFIED
Jennifer F CampainUnited KingdomElwin Sharvill RENEWAL
Sinclair B DoeRussiaOnyama Limba RENEWAL
Izzy S GauchoArgentinaBernardo Dominic PROPOSAL
Murillo A RulapaughSpainXuxue Feng QUALIFIED

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