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
Cody Q GillianIndiaIvan Magalhaes NEGOTIATION
Nicolas U FlosiRussiaIvan Magalhaes PROPOSAL
Jeanfrancois G CaudyItalyIoni Bowcher NEW
Greenwood Q WhobreyFranceAnna Fali PROPOSAL
Juan O FlosiBrazilAsiya Javayant RENEWAL
Maria X MaletCanadaElwin Sharvill RENEWAL
Kadeem O DilliardIndiaElwin Sharvill RENEWAL
Mayumi N OstroskyItalyBernardo Dominic RENEWAL
Tony M CaudyIndiaOnyama Limba NEW
Claire C IturbideJapanIoni Bowcher QUALIFIED
Ricardo I CampainIndiaBernardo Dominic NEGOTIATION
James W DoeRussiaAnna Fali QUALIFIED
Stacey U KolmetzItalyIvan Magalhaes NEW
Jefferson P OldroydFranceAnna Fali NEW
Greenwood P PoquetteAustraliaAsiya Javayant PROPOSAL
Mayumi Q ChuiCanadaOnyama Limba RENEWAL
Tony R VenereRussiaIvan Magalhaes RENEWAL
Salvatore E CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Clifford U RulapaughFranceStephen Shaw RENEWAL
Jennifer H RulapaughItalyIvan Magalhaes QUALIFIED
Leon Q MaletJapanBernardo Dominic NEW
Costa L WaycottFranceAmy Elsner NEW
Kaitlin E StockhamRussiaAmy Elsner UNQUALIFIED
Isabel U SergiBrazilElwin Sharvill PROPOSAL
Tony I GlickArgentinaAnna Fali PROPOSAL
Darci L AmigonSpainAmy Elsner NEW
Kaitlin F KolmetzSpainAmy Elsner QUALIFIED
Ashley X OldroydRussiaAmy Elsner NEGOTIATION
Nicolas R MarrierFranceBernardo Dominic PROPOSAL
James Y NickaJapanAmy Elsner NEW
Jeanfrancois B OldroydFranceAsiya Javayant RENEWAL
Misaki G StensethUnited KingdomIoni Bowcher RENEWAL
Ricardo V RutaArgentinaBernardo Dominic PROPOSAL
Kaitlin K TollnerSpainAnna Fali NEW
Jefferson B TollnerAustraliaIoni Bowcher NEW
Francesco V CampainIndiaXuxue Feng PROPOSAL
Deepesh W ShinkoGermanyAnna Fali PROPOSAL
Antonio H SlusarskiBrazilAmy Elsner NEGOTIATION
Arvin V ChuiRussiaAnna Fali UNQUALIFIED
Deepesh R FlosiIndiaAnna Fali RENEWAL
Sinclair J MaletBrazilElwin Sharvill QUALIFIED
Stacey S VenereIndiaAnna Fali NEW
Jones G FigeroaBrazilXuxue Feng QUALIFIED
Silvio N SergiIndiaXuxue Feng UNQUALIFIED
Aruna D BologniaBrazilStephen Shaw PROPOSAL
Ivar B SchemmerArgentinaOnyama Limba NEW
Costa S FerenczIndiaIvan Magalhaes NEW
Chavez M StensethItalyIoni Bowcher PROPOSAL
Misaki N FlosiUnited KingdomOnyama Limba RENEWAL
Kadeem D DoeRussiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford H InouyeIndiaAmy Elsner RENEWAL
Deepesh G MorascaIndiaXuxue Feng UNQUALIFIED
Darci K RulapaughUnited KingdomAnna Fali UNQUALIFIED
Izzy F ShinkoItalyIvan Magalhaes QUALIFIED
Silvio R WhobreyAustraliaIvan Magalhaes UNQUALIFIED
Arvin G GillianJapanAnna Fali NEW
Costa S ShinkoBrazilElwin Sharvill NEGOTIATION
Salvatore E ButtArgentinaAnna Fali NEW
Kaitlin R ShinkoArgentinaAmy Elsner QUALIFIED
Maria Q DoeAustraliaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio G GillianAustralia2026-10-06Benton, John B Jr NEW85Bernardo Dominic
1001Clifford A CaldareraArgentina2026-10-09Chemel, James L Cpa PROPOSAL65Ivan Magalhaes
1002Maria A VenereGermany2026-10-01Truhlar And Truhlar Attys RENEWAL21Bernardo Dominic
1003Johnson F RimBrazil2026-10-09Feiner Bros NEGOTIATION17Ivan Magalhaes
1004Chavez Z RoysterJapan2026-09-27Feiner Bros RENEWAL60Ioni Bowcher
1005Cody P RulapaughItaly2026-10-05Chemel, James L Cpa QUALIFIED99Asiya Javayant
1006Ricardo O RimSpain2026-10-17Chapman, Ross E Esq NEW71Onyama Limba
1007Aditya F RoysterFrance2026-09-30Feiner Bros NEW98Asiya Javayant
1008Emily M RimUnited Kingdom2026-09-26Dorl, James J Esq PROPOSAL78Anna Fali
1009Isabel F NickaIndia2026-09-18Rangoni Of Florence RENEWAL88Onyama Limba
1010Jennifer S MorascaBrazil2026-10-14Rousseaux, Michael Esq NEW78Anna Fali
1011Claire U InouyeIndia2026-10-12Feltz Printing Service QUALIFIED84Bernardo Dominic
1012Juan R GillianCanada2026-09-22Printing Dimensions PROPOSAL33Elwin Sharvill
1013Mayumi T PoquetteUnited Kingdom2026-10-08Truhlar And Truhlar Attys NEW17Anna Fali
1014Wickens R CampainItaly2026-10-12Dorl, James J Esq PROPOSAL1Ioni Bowcher
1015Greenwood E PaprockiUnited Kingdom2026-09-24Commercial Press NEGOTIATION93Amy Elsner
1016Misaki T StockhamUnited Kingdom2026-10-11Dorl, James J Esq NEW54Onyama Limba
1017Jones B BologniaBrazil2026-10-01Morlong Associates QUALIFIED5Bernardo Dominic
1018Mujtaba T AmigonJapan2026-10-04Chemel, James L Cpa NEGOTIATION48Ivan Magalhaes
1019Nicolas T AmigonItaly2026-10-06Chemel, James L Cpa UNQUALIFIED26Bernardo Dominic
1020Juan P WhobreyIndia2026-10-05Benton, John B Jr QUALIFIED17Ivan Magalhaes
1021Julie P PaprockiGermany2026-10-17Dorl, James J Esq RENEWAL44Anna Fali
1022Arvin M OstroskyAustralia2026-10-14Chemel, James L Cpa NEW47Onyama Limba
1023Arvin E MaletSpain2026-09-20Buckley Miller Wright NEW11Bernardo Dominic
1024Munro M VenereSpain2026-09-27Commercial Press QUALIFIED67Onyama Limba
1025Jeanfrancois C VocelkaCanada2026-10-11King, Christopher A Esq QUALIFIED76Ivan Magalhaes
1026Aditya Z PaprockiCanada2026-09-22Chemel, James L Cpa RENEWAL43Asiya Javayant
1027Chavez U DoeFrance2026-10-16Commercial Press RENEWAL74Onyama Limba
1028Francesco Q PoquetteJapan2026-09-30Buckley Miller Wright PROPOSAL69Anna Fali
1029Darci U BologniaIndia2026-09-18Dorl, James J Esq PROPOSAL65Stephen Shaw
1030Ricardo L MarrierArgentina2026-09-27Commercial Press UNQUALIFIED47Stephen Shaw
1031Kadeem L VocelkaFrance2026-09-26Buckley Miller Wright NEW75Onyama Limba
1032Alejandro Z CaudyAustralia2026-10-13Buckley Miller Wright RENEWAL19Asiya Javayant
1033Tony S AmigonItaly2026-10-06Rousseaux, Michael Esq RENEWAL88Anna Fali
1034Isabel M MorascaIndia2026-10-03Buckley Miller Wright PROPOSAL21Xuxue Feng
1035Ivar U CaldareraFrance2026-10-04Chapman, Ross E Esq NEW49Onyama Limba
1036Misaki S RulapaughArgentina2026-09-22Morlong Associates NEW11Anna Fali
1037Julie A ButtAustralia2026-10-05Chapman, Ross E Esq NEW21Bernardo Dominic
1038Adams J GlickIndia2026-10-07Rousseaux, Michael Esq NEW58Ivan Magalhaes
1039Jefferson X CaudyFrance2026-09-23Chemel, James L Cpa PROPOSAL38Bernardo Dominic
1040David K CampainJapan2026-09-29Chemel, James L Cpa QUALIFIED9Onyama Limba
1041Chavez P FlosiAustralia2026-10-10King, Christopher A Esq UNQUALIFIED66Xuxue Feng
1042Johnson F SchemmerCanada2026-10-08Truhlar And Truhlar Attys NEW87Ioni Bowcher
1043Jones N BowleyJapan2026-10-12Chapman, Ross E Esq NEW13Ivan Magalhaes
1044Jones K WieserItaly2026-09-29Buckley Miller Wright UNQUALIFIED98Bernardo Dominic
1045Adams M WieserRussia2026-10-01King, Christopher A Esq PROPOSAL44Asiya Javayant
1046Salvatore H MacleadUnited Kingdom2026-10-16Chemel, James L Cpa NEGOTIATION5Asiya Javayant
1047Misaki W MorascaIndia2026-10-08Chemel, James L Cpa NEW26Elwin Sharvill
1048Munro Y StockhamIndia2026-10-09King, Christopher A Esq PROPOSAL46Stephen Shaw
1049Adams I PaprockiSpain2026-09-19Morlong Associates NEGOTIATION33Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Emily E GauchoCanadaBernardo Dominic NEW
James M BologniaJapanAsiya Javayant NEW
Rodrigues Q RutaJapanAnna Fali NEW
Stacey S PaprockiAustraliaStephen Shaw NEGOTIATION
Johnson I StensethCanadaBernardo Dominic NEGOTIATION
Rodrigues U SergiAustraliaIoni Bowcher QUALIFIED
Tony U TollnerGermanyXuxue Feng RENEWAL
Jones C RutaFranceStephen Shaw PROPOSAL
Kadeem O SlusarskiFranceIoni Bowcher PROPOSAL
Alejandro S NestleItalyStephen Shaw RENEWAL
Wickens O SergiIndiaIoni Bowcher NEGOTIATION
Ivar M OstroskyItalyAnna Fali PROPOSAL
Jones L DoeBrazilStephen Shaw PROPOSAL
Jones F OldroydSpainAnna Fali UNQUALIFIED
Mujtaba M FigeroaJapanAsiya Javayant RENEWAL
Izzy D PaprockiSpainAmy Elsner NEW
Murillo V MarrierFranceIoni Bowcher NEGOTIATION
Ashley R IturbideItalyAnna Fali PROPOSAL
Maria V StockhamIndiaBernardo Dominic RENEWAL
Francesco D ChuiAustraliaAnna Fali NEGOTIATION
Jones R GarufiFranceXuxue Feng QUALIFIED
Sinclair S NestleCanadaXuxue Feng PROPOSAL
Mujtaba J MacleadCanadaElwin Sharvill NEW
Johnson T ChuiCanadaAnna Fali PROPOSAL
Alejandro C RulapaughCanadaOnyama Limba UNQUALIFIED
Faith J ShinkoJapanXuxue Feng RENEWAL
Johnson B RulapaughBrazilIoni Bowcher NEW
Octavia B InouyeArgentinaBernardo Dominic PROPOSAL
Kaitlin F MacleadUnited KingdomIoni Bowcher NEW
Francesco B SlusarskiArgentinaAmy Elsner RENEWAL
Darci P CaudyArgentinaAnna Fali PROPOSAL
Morrow I DarakjyAustraliaAnna Fali NEGOTIATION
Morrow M PerinFranceIvan Magalhaes NEW
Greenwood T FollerGermanyIvan Magalhaes UNQUALIFIED
Ricardo W DilliardGermanyAnna Fali QUALIFIED
Maria D StockhamAustraliaBernardo Dominic QUALIFIED
Mayumi E DilliardRussiaElwin Sharvill NEGOTIATION
Wickens W MacleadRussiaXuxue Feng PROPOSAL
Wickens N ButtRussiaStephen Shaw PROPOSAL
Kaitlin L MorascaBrazilAnna Fali UNQUALIFIED
Jennifer H MaletJapanAmy Elsner NEGOTIATION
Salvatore I MarrierRussiaElwin Sharvill RENEWAL
Munro P MaletFranceXuxue Feng PROPOSAL
Ricardo J ButtCanadaXuxue Feng UNQUALIFIED
Aditya D VenereCanadaIvan Magalhaes NEW
Misaki Q DarakjyGermanyOnyama Limba QUALIFIED
Juan F CaudyJapanIoni Bowcher QUALIFIED
Tony Y CaudyIndiaAnna Fali NEGOTIATION
Jennifer C ButtUnited KingdomAmy Elsner PROPOSAL
Kaitlin Z ButtRussiaIoni Bowcher RENEWAL
Frozen Columns
Name
Chavez D Wieser
Munro Q Whobrey
Ashley N Caldarera
Maisha W Ruta
Jeanfrancois Q Vocelka
Rodrigues Q Ruta
Claire P Venere
Maria P Venere
Aruna Q Gillian
Cody O Whobrey
Wickens I Stockham
Costa B Foller
Jones C Perin
Salvatore A Vocelka
Misaki D Marrier
Costa U Perin
Aika L Caldarera
Tony X Rulapaugh
Silvio W Iturbide
Emily Z Inouye
Alejandro C Saylors
James S Caudy
Aruna U Caudy
Darci G Schemmer
Alejandro C Darakjy
Adams A Chui
Ricardo J Butt
Morrow N Gillian
Aditya W Campain
Mujtaba H Morasca
Cody L Rim
Aika H Inouye
Aruna U Malet
Kadeem K Rim
Salvatore G Amigon
Leja K Albares
Kaitlin T Waycott
Adams S Briddick
Aditya L Iturbide
Ricardo C Venere
Adams W Maclead
Emily V Poquette
Morrow J Perin
Faith E Chui
Aruna K Stockham
Maisha M Slusarski
Wickens Q Rim
Costa X Tollner
Leja V Iturbide
Jefferson K Oldroyd
IdCountryDate
1000Argentina2026-10-13
1001Brazil2026-10-15
1002France2026-10-01
1003Brazil2026-10-08
1004France2026-09-18
1005Australia2026-10-04
1006Australia2026-10-12
1007Japan2026-10-11
1008Australia2026-10-13
1009France2026-10-03
1010Japan2026-10-11
1011India2026-10-07
1012Brazil2026-10-02
1013Canada2026-09-24
1014Germany2026-10-03
1015France2026-09-19
1016Germany2026-09-28
1017Italy2026-10-14
1018Italy2026-09-26
1019Germany2026-10-02
1020France2026-09-20
1021France2026-10-06
1022Canada2026-09-29
1023Spain2026-10-02
1024France2026-10-02
1025India2026-10-06
1026Brazil2026-09-18
1027Argentina2026-10-07
1028Germany2026-10-06
1029Canada2026-09-25
1030Spain2026-10-05
1031Spain2026-09-27
1032Spain2026-10-01
1033Germany2026-09-26
1034United Kingdom2026-10-09
1035Italy2026-09-29
1036Spain2026-10-04
1037India2026-09-25
1038Brazil2026-09-26
1039Italy2026-10-12
1040Argentina2026-10-17
1041Argentina2026-10-02
1042Canada2026-10-16
1043Argentina2026-10-12
1044Brazil2026-10-09
1045France2026-09-22
1046Australia2026-10-17
1047Australia2026-10-02
1048France2026-10-03
1049India2026-10-09

On-Demand Data

NameIdCountryDate
Johnson R Malet1000United Kingdom2026-10-04
Tony V Dilliard1001Germany2026-09-29
Smith U Perin1002Argentina2026-09-29
Claire W Royster1003Germany2026-10-03
Mayumi D Dilliard1004Argentina2026-10-06
Smith T Iturbide1005France2026-10-14
Chavez R Bolognia1006Australia2026-10-14
Mujtaba E Nicka1007Japan2026-10-13
Ivar K Saylors1008Russia2026-10-12
Aruna P Shinko1009India2026-10-04
Leja C Dilliard1010Canada2026-09-23
Greenwood Q Ferencz1011Canada2026-10-06
Rodrigues G Morasca1012Russia2026-10-12
Adams D Shinko1013Brazil2026-09-27
Clifford N Malet1014Brazil2026-09-18
Faith N Caudy1015Australia2026-10-17
Aruna R Rulapaugh1016United Kingdom2026-09-27
Morrow X Nicka1017Russia2026-09-26
Aditya V Marrier1018Brazil2026-09-27
Greenwood V Morasca1019Russia2026-09-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco K FlosiCanadaXuxue Feng RENEWAL
Julie N SaylorsRussiaIvan Magalhaes PROPOSAL
Maria A GauchoAustraliaXuxue Feng PROPOSAL
Maisha L ShinkoBrazilAmy Elsner NEGOTIATION
Murillo J RutaArgentinaOnyama Limba RENEWAL
Faith Z AmigonItalyIoni Bowcher NEGOTIATION
Kaitlin S KuskoItalyAmy Elsner RENEWAL
Clifford M RulapaughGermanyOnyama Limba NEGOTIATION
Faith E FlosiSpainElwin Sharvill RENEWAL
Silvio G PoquetteArgentinaIvan Magalhaes NEW
Chavez Z SchemmerGermanyAmy Elsner NEGOTIATION
Jennifer W VocelkaGermanyAsiya Javayant NEW
Aditya A MarrierUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem G InouyeBrazilAsiya Javayant UNQUALIFIED
Costa U RutaCanadaBernardo Dominic PROPOSAL
Chavez H SlusarskiItalyAsiya Javayant NEGOTIATION
Johnson Y IturbideGermanyStephen Shaw RENEWAL
David T VenereAustraliaOnyama Limba RENEWAL
Salvatore P ButtUnited KingdomElwin Sharvill NEW
Leja P SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Ricardo H NickaItalyStephen Shaw RENEWAL
Adams J SaylorsJapanIoni Bowcher NEW
Adams L GillianItalyAmy Elsner QUALIFIED
Stacey G BriddickCanadaIvan Magalhaes QUALIFIED
Emily V WhobreyBrazilAsiya Javayant UNQUALIFIED
Aruna Z WaycottUnited KingdomAnna Fali RENEWAL
Juan J FollerJapanAnna Fali RENEWAL
Aditya H MaletIndiaBernardo Dominic UNQUALIFIED
Munro V MaletIndiaBernardo Dominic QUALIFIED
Izzy B BriddickBrazilOnyama Limba NEGOTIATION
Jennifer H DarakjyJapanIvan Magalhaes NEW
Rodrigues U RulapaughItalyIvan Magalhaes NEGOTIATION
Kadeem F KolmetzUnited KingdomStephen Shaw NEGOTIATION
Wickens Q NestleCanadaOnyama Limba QUALIFIED
James G RimItalyIvan Magalhaes UNQUALIFIED
Mujtaba Q WieserUnited KingdomAnna Fali PROPOSAL
Jones Q DilliardAustraliaAsiya Javayant UNQUALIFIED
Morrow U IturbideGermanyXuxue Feng RENEWAL
Adams W AlbaresGermanyIoni Bowcher RENEWAL
Greenwood U ChuiGermanyIoni Bowcher 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>