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
Arvin B RoysterGermanyOnyama Limba NEW
Jefferson S NickaIndiaXuxue Feng NEW
Costa M GlickIndiaElwin Sharvill NEW
Jefferson E OstroskyRussiaElwin Sharvill QUALIFIED
Tony M MaletIndiaElwin Sharvill RENEWAL
Kadeem K RimJapanBernardo Dominic UNQUALIFIED
Leon P StockhamUnited KingdomIvan Magalhaes RENEWAL
Aika X StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow X WhobreyItalyOnyama Limba PROPOSAL
Juan P NestleUnited KingdomIvan Magalhaes RENEWAL
Emily H FerenczCanadaAmy Elsner PROPOSAL
Arvin Z RimFranceIoni Bowcher NEW
Chavez R KolmetzItalyElwin Sharvill RENEWAL
Kaitlin T StockhamRussiaIvan Magalhaes NEGOTIATION
Ricardo B StensethAustraliaAnna Fali PROPOSAL
Morrow C SchemmerGermanyBernardo Dominic RENEWAL
Chavez M GillianUnited KingdomBernardo Dominic NEW
Jones F RutaFranceIvan Magalhaes QUALIFIED
Kaitlin J NickaIndiaStephen Shaw UNQUALIFIED
Jones Y StockhamBrazilAnna Fali NEGOTIATION
Misaki F RulapaughJapanBernardo Dominic QUALIFIED
Jeanfrancois F FerenczAustraliaBernardo Dominic NEW
Antonio H DarakjyUnited KingdomAmy Elsner PROPOSAL
Cody W AmigonItalyOnyama Limba NEGOTIATION
Stacey E NestleFranceXuxue Feng PROPOSAL
Juan F BriddickAustraliaAmy Elsner NEW
Emily F MorascaUnited KingdomBernardo Dominic NEW
Kaitlin W MorascaRussiaBernardo Dominic UNQUALIFIED
Leja Z PaprockiArgentinaXuxue Feng UNQUALIFIED
Kaitlin A RoysterCanadaXuxue Feng NEGOTIATION
Antonio C ButtGermanyStephen Shaw NEW
Johnson N SchemmerRussiaAmy Elsner NEW
Ivar R RulapaughRussiaBernardo Dominic QUALIFIED
Deepesh A StockhamItalyIoni Bowcher QUALIFIED
Faith G KolmetzIndiaAmy Elsner PROPOSAL
Maisha V IturbideUnited KingdomXuxue Feng PROPOSAL
Francesco M OstroskySpainStephen Shaw UNQUALIFIED
Mayumi Q GarufiFranceAmy Elsner RENEWAL
Izzy I PoquetteAustraliaAmy Elsner PROPOSAL
Jennifer L PoquetteArgentinaXuxue Feng NEGOTIATION
Darci X GillianBrazilIoni Bowcher UNQUALIFIED
Sinclair N MaletBrazilAnna Fali RENEWAL
Cody K GillianUnited KingdomAsiya Javayant RENEWAL
Leja Q IturbideBrazilStephen Shaw NEGOTIATION
Deepesh O InouyeGermanyAnna Fali PROPOSAL
Sinclair X RulapaughFranceAnna Fali PROPOSAL
Maria F RimItalyAnna Fali PROPOSAL
James U OstroskyAustraliaAmy Elsner PROPOSAL
Emily A MorascaCanadaAmy Elsner QUALIFIED
Jennifer T SaylorsUnited KingdomAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Emily S NestleIndiaStephen Shaw PROPOSAL
Cody K RulapaughIndiaXuxue Feng PROPOSAL
Jones K WhobreyGermanyXuxue Feng RENEWAL
Emily X KuskoArgentinaXuxue Feng NEW
Octavia M SchemmerIndiaIoni Bowcher PROPOSAL
Izzy H RutaUnited KingdomBernardo Dominic PROPOSAL
Munro J SlusarskiItalyAnna Fali NEW
David R KuskoFranceBernardo Dominic UNQUALIFIED
Mujtaba B FlosiFranceIvan Magalhaes NEW
Juan A DoeItalyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley M StockhamRussia2026-10-05Morlong Associates QUALIFIED88Ivan Magalhaes
1001Mujtaba T ChuiItaly2026-10-01Commercial Press NEW37Anna Fali
1002Leja Z NickaAustralia2026-10-27Rangoni Of Florence QUALIFIED0Anna Fali
1003Alejandro L ChuiSpain2026-10-28Feltz Printing Service UNQUALIFIED30Ioni Bowcher
1004Mayumi I CaudyFrance2026-10-28Buckley Miller Wright NEW99Ioni Bowcher
1005Stacey Z DoeBrazil2026-10-29Printing Dimensions PROPOSAL52Ioni Bowcher
1006Kaitlin C OldroydBrazil2026-10-23Truhlar And Truhlar Attys QUALIFIED58Ioni Bowcher
1007Leja Y DoeAustralia2026-10-01Buckley Miller Wright QUALIFIED37Amy Elsner
1008James C OldroydCanada2026-10-05Rousseaux, Michael Esq RENEWAL89Asiya Javayant
1009Jennifer E ChuiAustralia2026-10-07Commercial Press QUALIFIED71Anna Fali
1010Aditya R KolmetzUnited Kingdom2026-10-16Benton, John B Jr RENEWAL58Ivan Magalhaes
1011Misaki O IturbideGermany2026-10-16Feltz Printing Service RENEWAL2Ivan Magalhaes
1012Aruna C WaycottIndia2026-10-30Feiner Bros NEGOTIATION95Elwin Sharvill
1013Kaitlin O FerenczSpain2026-10-18Feltz Printing Service NEW2Stephen Shaw
1014James F FigeroaCanada2026-10-22Printing Dimensions UNQUALIFIED82Asiya Javayant
1015Misaki I SchemmerUnited Kingdom2026-10-14Chapman, Ross E Esq NEGOTIATION7Elwin Sharvill
1016Murillo H TollnerItaly2026-10-24Feltz Printing Service NEGOTIATION37Elwin Sharvill
1017Aika L OldroydGermany2026-10-22Morlong Associates PROPOSAL16Xuxue Feng
1018Rodrigues I PoquetteRussia2026-10-04Morlong Associates PROPOSAL39Stephen Shaw
1019Silvio X VenereAustralia2026-10-17Buckley Miller Wright RENEWAL43Asiya Javayant
1020Maisha B OldroydRussia2026-10-24Benton, John B Jr NEW63Ivan Magalhaes
1021Isabel Y AmigonJapan2026-10-27Commercial Press PROPOSAL41Asiya Javayant
1022Munro G StensethRussia2026-10-16Rousseaux, Michael Esq NEW2Ivan Magalhaes
1023Jefferson F SergiUnited Kingdom2026-10-20Morlong Associates RENEWAL53Stephen Shaw
1024David D NestleSpain2026-10-02Benton, John B Jr UNQUALIFIED8Amy Elsner
1025Sinclair D MaletRussia2026-10-15Truhlar And Truhlar Attys NEW81Xuxue Feng
1026Stacey U ButtBrazil2026-10-28Rousseaux, Michael Esq RENEWAL50Elwin Sharvill
1027Sinclair Q DarakjyRussia2026-10-25King, Christopher A Esq UNQUALIFIED30Ioni Bowcher
1028Greenwood P MaletGermany2026-10-04Morlong Associates UNQUALIFIED72Onyama Limba
1029Tony T RimFrance2026-10-05Feltz Printing Service RENEWAL12Elwin Sharvill
1030Mujtaba T PaprockiJapan2026-10-11Benton, John B Jr PROPOSAL69Onyama Limba
1031Murillo L StockhamSpain2026-10-23Benton, John B Jr RENEWAL81Bernardo Dominic
1032Chavez S RutaFrance2026-10-24Truhlar And Truhlar Attys NEGOTIATION97Bernardo Dominic
1033Tony O MaletJapan2026-10-25Feltz Printing Service QUALIFIED49Anna Fali
1034Wickens K DilliardFrance2026-10-01Buckley Miller Wright PROPOSAL72Amy Elsner
1035Izzy E RimBrazil2026-10-19Benton, John B Jr QUALIFIED14Bernardo Dominic
1036Leon P OldroydSpain2026-10-03Commercial Press UNQUALIFIED69Amy Elsner
1037Costa A StensethSpain2026-10-21Truhlar And Truhlar Attys RENEWAL52Xuxue Feng
1038Johnson R TollnerJapan2026-10-15Dorl, James J Esq NEW83Xuxue Feng
1039Adams L InouyeCanada2026-10-27Chapman, Ross E Esq QUALIFIED39Onyama Limba
1040Mujtaba D KolmetzItaly2026-10-12Feiner Bros NEW91Onyama Limba
1041Cody Z RoysterBrazil2026-10-10Rangoni Of Florence PROPOSAL47Ioni Bowcher
1042Deepesh W FigeroaBrazil2026-10-15Buckley Miller Wright NEGOTIATION72Asiya Javayant
1043James S OstroskyRussia2026-10-01Morlong Associates RENEWAL62Amy Elsner
1044Munro Z MarrierAustralia2026-10-27King, Christopher A Esq UNQUALIFIED26Bernardo Dominic
1045James P IturbideFrance2026-10-10Dorl, James J Esq PROPOSAL65Stephen Shaw
1046Kaitlin P CaldareraUnited Kingdom2026-10-17Chanay, Jeffrey A Esq NEGOTIATION3Bernardo Dominic
1047Faith U GlickFrance2026-10-13Feltz Printing Service UNQUALIFIED90Ivan Magalhaes
1048Johnson L CampainBrazil2026-10-27King, Christopher A Esq NEW54Stephen Shaw
1049Rodrigues C FlosiCanada2026-10-02Feltz Printing Service RENEWAL26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Z SaylorsFranceIoni Bowcher QUALIFIED
David S GillianBrazilElwin Sharvill PROPOSAL
James T GauchoRussiaAmy Elsner NEGOTIATION
Ivar P DarakjyCanadaAmy Elsner NEGOTIATION
Aditya U KuskoGermanyAmy Elsner RENEWAL
Greenwood T PerinCanadaAnna Fali PROPOSAL
Alejandro L PoquetteFranceElwin Sharvill NEGOTIATION
Isabel A PoquetteGermanyIvan Magalhaes QUALIFIED
Misaki T PoquetteFranceOnyama Limba PROPOSAL
Sinclair D MacleadGermanyElwin Sharvill QUALIFIED
Silvio N CaldareraRussiaIvan Magalhaes QUALIFIED
Mayumi M MaletGermanyOnyama Limba RENEWAL
Tony A StensethArgentinaAnna Fali RENEWAL
Jennifer Z TollnerFranceXuxue Feng UNQUALIFIED
Jefferson G RimJapanIvan Magalhaes UNQUALIFIED
Maisha H WieserBrazilAsiya Javayant NEGOTIATION
Kaitlin Z SlusarskiCanadaAsiya Javayant NEGOTIATION
Silvio D MarrierUnited KingdomIvan Magalhaes PROPOSAL
Maisha Y FlosiRussiaXuxue Feng QUALIFIED
Adams L VenereGermanyAsiya Javayant RENEWAL
Antonio H FigeroaBrazilAmy Elsner RENEWAL
Munro S MacleadArgentinaIvan Magalhaes PROPOSAL
Murillo O StockhamRussiaAsiya Javayant PROPOSAL
Munro K TollnerAustraliaBernardo Dominic NEW
Kadeem M IturbideAustraliaAmy Elsner QUALIFIED
Silvio J FlosiCanadaOnyama Limba NEGOTIATION
Adams J DilliardSpainElwin Sharvill RENEWAL
Rodrigues G MaletUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh Y GlickArgentinaIvan Magalhaes RENEWAL
Jones B WhobreyRussiaAmy Elsner QUALIFIED
Munro H ShinkoJapanElwin Sharvill NEGOTIATION
Nicolas L GillianArgentinaAnna Fali QUALIFIED
Ashley W PoquetteArgentinaXuxue Feng UNQUALIFIED
Sinclair N MacleadSpainIvan Magalhaes QUALIFIED
Jennifer J AmigonAustraliaAmy Elsner RENEWAL
Octavia N ShinkoSpainStephen Shaw QUALIFIED
Rodrigues Y OstroskyGermanyOnyama Limba PROPOSAL
Aika R GillianCanadaAnna Fali NEW
Salvatore J AmigonBrazilAmy Elsner NEGOTIATION
Smith X AmigonRussiaOnyama Limba NEW
Leja H ShinkoBrazilStephen Shaw RENEWAL
David Y SergiRussiaAmy Elsner RENEWAL
Salvatore J MacleadArgentinaIvan Magalhaes NEGOTIATION
Izzy F SaylorsBrazilBernardo Dominic NEW
Johnson Z NickaGermanyAmy Elsner QUALIFIED
Nicolas Q StockhamUnited KingdomXuxue Feng RENEWAL
Silvio H RoysterFranceXuxue Feng PROPOSAL
Julie T ShinkoJapanStephen Shaw NEGOTIATION
Ricardo C ShinkoCanadaStephen Shaw PROPOSAL
Costa K NestleGermanyAsiya Javayant RENEWAL
Frozen Columns
Name
Cody T Royster
Maisha A Foller
Juan X Doe
Murillo O Caudy
Izzy H Inouye
Morrow R Figeroa
Faith J Doe
Morrow A Marrier
Jones U Shinko
Misaki J Malet
Cody V Ostrosky
Darci O Sergi
James C Shinko
Smith V Iturbide
Nicolas F Stockham
Faith E Royster
Antonio I Saylors
Ashley M Glick
Kaitlin L Marrier
Claire W Ruta
Aditya E Stenseth
Morrow X Albares
Nicolas S Amigon
Emily F Saylors
Ricardo Q Inouye
David X Rulapaugh
Cody S Shinko
Antonio K Wieser
Juan B Marrier
Munro G Saylors
Jones B Whobrey
Misaki G Bowley
Murillo D Campain
Nicolas I Kolmetz
Octavia F Kusko
Cody G Malet
Costa Z Briddick
Maisha F Gaucho
Aika Z Royster
Emily B Royster
Ashley N Bowley
Smith J Doe
Tony N Briddick
Rodrigues E Waycott
Mayumi D Figeroa
Deepesh P Waycott
Ricardo X Campain
Emily O Vocelka
Deepesh Y Stockham
Leon F Marrier
IdCountryDate
1000Spain2026-10-24
1001India2026-10-01
1002France2026-10-24
1003Argentina2026-10-16
1004India2026-10-29
1005Japan2026-10-13
1006India2026-10-25
1007India2026-10-21
1008Brazil2026-10-28
1009Argentina2026-10-11
1010Brazil2026-10-16
1011Canada2026-10-28
1012India2026-10-12
1013Argentina2026-10-02
1014Canada2026-10-05
1015Australia2026-10-16
1016Italy2026-10-29
1017United Kingdom2026-10-08
1018Russia2026-10-20
1019United Kingdom2026-10-04
1020India2026-10-14
1021Canada2026-10-18
1022Germany2026-10-03
1023Spain2026-10-11
1024Australia2026-10-16
1025Russia2026-10-09
1026Brazil2026-10-11
1027Canada2026-10-11
1028Brazil2026-10-21
1029Australia2026-10-17
1030Japan2026-10-04
1031Russia2026-10-06
1032Brazil2026-10-24
1033Russia2026-10-13
1034Spain2026-10-16
1035France2026-10-09
1036Italy2026-10-11
1037Germany2026-10-12
1038Argentina2026-10-18
1039France2026-10-30
1040Japan2026-10-21
1041Spain2026-10-01
1042Germany2026-10-28
1043India2026-10-20
1044United Kingdom2026-10-26
1045Japan2026-10-11
1046Germany2026-10-10
1047Canada2026-10-14
1048India2026-10-29
1049India2026-10-29

On-Demand Data

NameIdCountryDate
Aditya U Venere1000Germany2026-10-11
Emily X Stockham1001Japan2026-10-10
Johnson X Inouye1002Canada2026-10-07
Adams V Ferencz1003Germany2026-10-24
Jennifer S Chui1004France2026-10-17
Murillo E Stockham1005Argentina2026-10-23
Sinclair Y Sergi1006United Kingdom2026-10-30
Izzy H Kusko1007Italy2026-10-08
Arvin H Stockham1008Germany2026-10-24
Jennifer F Kusko1009Spain2026-10-15
Clifford O Sergi1010India2026-10-02
Julie D Dilliard1011Italy2026-10-21
Wickens B Caldarera1012Germany2026-10-14
Silvio M Oldroyd1013India2026-10-05
Jefferson H Shinko1014Canada2026-10-13
Antonio J Malet1015Brazil2026-10-20
Silvio M Maclead1016Russia2026-10-30
Deepesh S Kusko1017Spain2026-10-07
Murillo G Shinko1018United Kingdom2026-10-23
Arvin L Stockham1019Australia2026-10-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James V FerenczFranceStephen Shaw NEW
Antonio P NickaCanadaXuxue Feng RENEWAL
Mayumi V IturbideAustraliaAmy Elsner RENEWAL
Aika S NestleJapanIoni Bowcher NEGOTIATION
Emily E MaletSpainBernardo Dominic NEGOTIATION
Ivar T BowleyCanadaOnyama Limba NEGOTIATION
Nicolas L MaletCanadaAmy Elsner PROPOSAL
Greenwood M WieserGermanyIvan Magalhaes PROPOSAL
Sinclair C GauchoAustraliaOnyama Limba RENEWAL
James Q ShinkoFranceStephen Shaw RENEWAL
Clifford F MorascaArgentinaElwin Sharvill PROPOSAL
Rodrigues R SaylorsArgentinaIoni Bowcher RENEWAL
Francesco C PaprockiBrazilAmy Elsner QUALIFIED
Morrow M PaprockiCanadaAnna Fali NEW
Kaitlin Q BriddickCanadaOnyama Limba UNQUALIFIED
Jefferson N AmigonCanadaStephen Shaw NEGOTIATION
Ivar O DarakjyAustraliaXuxue Feng PROPOSAL
Ivar N PoquetteRussiaAnna Fali NEW
Jones O BowleyCanadaIoni Bowcher PROPOSAL
Maisha Y CaudyGermanyAnna Fali UNQUALIFIED
Emily G FollerItalyBernardo Dominic NEW
Aditya X FollerItalyIoni Bowcher QUALIFIED
Wickens M GauchoAustraliaAsiya Javayant PROPOSAL
Leon P CaudyUnited KingdomIvan Magalhaes NEW
Emily X AmigonArgentinaElwin Sharvill PROPOSAL
Morrow K FlosiFranceIvan Magalhaes QUALIFIED
Nicolas R GillianAustraliaOnyama Limba PROPOSAL
Ricardo C GlickJapanAnna Fali NEW
James J GauchoAustraliaIvan Magalhaes UNQUALIFIED
Maria Q DilliardGermanyAnna Fali NEGOTIATION
Arvin W WhobreyBrazilAmy Elsner UNQUALIFIED
Leja G MaletRussiaBernardo Dominic RENEWAL
Morrow N FollerCanadaXuxue Feng RENEWAL
Alejandro O DoeGermanyAmy Elsner QUALIFIED
Maria F GillianSpainElwin Sharvill PROPOSAL
Claire C MaletArgentinaAsiya Javayant RENEWAL
Cody E ButtJapanIvan Magalhaes NEW
Kadeem K BowleyGermanyIoni Bowcher PROPOSAL
Aruna E GauchoUnited KingdomAmy Elsner NEW
Mujtaba W ButtItalyIvan Magalhaes 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>