Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Julie A StockhamSpainOnyama Limba RENEWAL
Leja M GillianUnited KingdomAsiya Javayant RENEWAL
Julie L NestleItalyBernardo Dominic QUALIFIED
Faith U RutaUnited KingdomAmy Elsner QUALIFIED
Jefferson Y GauchoFranceBernardo Dominic NEW
Alejandro T IturbideBrazilAmy Elsner UNQUALIFIED
Jones N WhobreyBrazilAmy Elsner NEGOTIATION
Silvio S FlosiJapanElwin Sharvill PROPOSAL
Adams M VocelkaFranceIoni Bowcher NEGOTIATION
Johnson C OldroydArgentinaElwin Sharvill NEW
Chavez I BologniaFranceAnna Fali PROPOSAL
Emily T RimIndiaAnna Fali QUALIFIED
Faith M VenereSpainAsiya Javayant RENEWAL
Nicolas I StockhamSpainIoni Bowcher PROPOSAL
Silvio T MaletArgentinaIoni Bowcher NEGOTIATION
Juan V MorascaFranceIvan Magalhaes NEW
Salvatore D DilliardIndiaIoni Bowcher NEW
Clifford Y CaldareraArgentinaOnyama Limba QUALIFIED
Maria R PaprockiSpainBernardo Dominic NEGOTIATION
Greenwood V FollerItalyBernardo Dominic RENEWAL
Claire Q CampainCanadaAsiya Javayant NEW
Arvin P GarufiBrazilXuxue Feng RENEWAL
Faith K RutaGermanyXuxue Feng RENEWAL
Antonio Q RutaRussiaXuxue Feng UNQUALIFIED
Mayumi P KolmetzGermanyStephen Shaw NEGOTIATION
Tony C WaycottFranceXuxue Feng NEW
Octavia Q AmigonGermanyElwin Sharvill UNQUALIFIED
Silvio K RutaUnited KingdomBernardo Dominic NEGOTIATION
Jones A SergiGermanyAsiya Javayant NEW
Izzy D ChuiCanadaElwin Sharvill NEW
Octavia T SlusarskiCanadaAsiya Javayant RENEWAL
Aruna A BologniaArgentinaIoni Bowcher NEW
Arvin A CampainGermanyStephen Shaw NEW
Mujtaba A ShinkoAustraliaAmy Elsner NEGOTIATION
Cody I OldroydIndiaAnna Fali PROPOSAL
Tony P ChuiRussiaIvan Magalhaes RENEWAL
Izzy Y KolmetzSpainAnna Fali UNQUALIFIED
Francesco T KuskoCanadaBernardo Dominic NEW
Octavia L MaletAustraliaAmy Elsner PROPOSAL
Juan K GarufiGermanyAnna Fali RENEWAL
Sinclair H BowleyAustraliaAmy Elsner QUALIFIED
David X CaudyFranceAmy Elsner UNQUALIFIED
Greenwood I AmigonGermanyBernardo Dominic QUALIFIED
Wickens L OstroskyGermanyIvan Magalhaes QUALIFIED
Faith D ButtGermanyBernardo Dominic UNQUALIFIED
Ricardo V ShinkoIndiaStephen Shaw QUALIFIED
Mayumi J OstroskyArgentinaAmy Elsner UNQUALIFIED
Claire G NestleJapanAmy Elsner PROPOSAL
Adams V GlickAustraliaAnna Fali NEGOTIATION
Jefferson I DarakjyItalyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Leon N AmigonIndiaXuxue Feng PROPOSAL
David N PaprockiJapanIvan Magalhaes NEGOTIATION
Rodrigues G RoysterAustraliaAnna Fali NEW
Jones O MorascaRussiaBernardo Dominic RENEWAL
Kaitlin K RulapaughItalyIoni Bowcher UNQUALIFIED
Aika H CaldareraFranceIoni Bowcher RENEWAL
Mayumi I SaylorsUnited KingdomAmy Elsner UNQUALIFIED
Alejandro Q FollerItalyXuxue Feng RENEWAL
Morrow J AlbaresCanadaIoni Bowcher QUALIFIED
Kadeem Y SergiCanadaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer R ButtArgentina2025-07-31Rousseaux, Michael Esq QUALIFIED34Bernardo Dominic
1001Isabel R RoysterItaly2025-08-22Chanay, Jeffrey A Esq NEGOTIATION94Asiya Javayant
1002Jennifer F GauchoBrazil2025-07-24Commercial Press NEW48Onyama Limba
1003Morrow B GillianCanada2025-08-22Feltz Printing Service NEGOTIATION27Stephen Shaw
1004Francesco P PaprockiUnited Kingdom2025-08-04Morlong Associates NEW70Amy Elsner
1005Stacey R TollnerSpain2025-07-31King, Christopher A Esq NEGOTIATION75Elwin Sharvill
1006Murillo G DarakjyRussia2025-07-28Morlong Associates PROPOSAL0Stephen Shaw
1007Leja F PoquetteIndia2025-07-29Commercial Press NEW75Stephen Shaw
1008Misaki F DarakjyAustralia2025-08-11Chemel, James L Cpa UNQUALIFIED57Ivan Magalhaes
1009Leon X SaylorsCanada2025-08-01Rangoni Of Florence NEGOTIATION32Asiya Javayant
1010Aika N MaletBrazil2025-08-11Feiner Bros PROPOSAL24Ivan Magalhaes
1011Cody L MarrierCanada2025-08-19Rangoni Of Florence QUALIFIED40Elwin Sharvill
1012Aika E PerinAustralia2025-08-18King, Christopher A Esq NEGOTIATION59Xuxue Feng
1013Wickens F MaletJapan2025-08-08Feltz Printing Service UNQUALIFIED29Stephen Shaw
1014Emily X OstroskyJapan2025-07-28Benton, John B Jr QUALIFIED56Amy Elsner
1015Ivar K BowleyFrance2025-08-02Chemel, James L Cpa PROPOSAL77Anna Fali
1016Antonio M BriddickSpain2025-08-07Buckley Miller Wright QUALIFIED54Ivan Magalhaes
1017Clifford X ChuiRussia2025-08-08Feiner Bros PROPOSAL47Elwin Sharvill
1018Isabel T RutaAustralia2025-07-25Rousseaux, Michael Esq PROPOSAL95Anna Fali
1019Sinclair C StockhamBrazil2025-08-02Rousseaux, Michael Esq NEGOTIATION52Asiya Javayant
1020Aditya Z FerenczSpain2025-08-12Morlong Associates QUALIFIED89Onyama Limba
1021Julie K StensethFrance2025-07-29Feiner Bros NEW77Ioni Bowcher
1022Claire G GillianItaly2025-08-14Rousseaux, Michael Esq UNQUALIFIED6Bernardo Dominic
1023Maria B ButtSpain2025-08-11King, Christopher A Esq NEGOTIATION13Amy Elsner
1024Leja M RoysterAustralia2025-08-05King, Christopher A Esq RENEWAL88Onyama Limba
1025Kaitlin F FlosiCanada2025-08-22Chanay, Jeffrey A Esq RENEWAL1Elwin Sharvill
1026Leon M CaudyArgentina2025-08-13Rousseaux, Michael Esq NEGOTIATION47Onyama Limba
1027Tony W RoysterSpain2025-08-12Morlong Associates NEW31Onyama Limba
1028Faith B DilliardJapan2025-08-03King, Christopher A Esq RENEWAL51Onyama Limba
1029Ivar L PaprockiIndia2025-08-18Feiner Bros PROPOSAL44Bernardo Dominic
1030Clifford V FerenczFrance2025-08-14Chanay, Jeffrey A Esq RENEWAL28Onyama Limba
1031Kaitlin H DoeItaly2025-08-02Commercial Press UNQUALIFIED23Onyama Limba
1032Adams K AlbaresArgentina2025-08-13Chapman, Ross E Esq UNQUALIFIED10Asiya Javayant
1033Maisha G SlusarskiGermany2025-08-13Morlong Associates QUALIFIED85Onyama Limba
1034Wickens F OstroskyJapan2025-08-22Commercial Press PROPOSAL76Xuxue Feng
1035Ivar F CampainAustralia2025-08-01Chanay, Jeffrey A Esq UNQUALIFIED98Xuxue Feng
1036Ivar G TollnerGermany2025-08-02Printing Dimensions NEGOTIATION82Stephen Shaw
1037Murillo D MacleadSpain2025-07-31Commercial Press PROPOSAL40Stephen Shaw
1038Greenwood Y StensethItaly2025-08-15Rangoni Of Florence RENEWAL43Asiya Javayant
1039Francesco U MarrierGermany2025-08-21Feltz Printing Service UNQUALIFIED94Ivan Magalhaes
1040Octavia Z MacleadSpain2025-08-02Dorl, James J Esq NEW80Elwin Sharvill
1041Murillo S AmigonAustralia2025-08-10Rangoni Of Florence QUALIFIED55Anna Fali
1042Arvin B GillianGermany2025-08-07Chemel, James L Cpa NEW64Stephen Shaw
1043Sinclair X SlusarskiFrance2025-08-18Dorl, James J Esq QUALIFIED16Amy Elsner
1044Alejandro R ButtItaly2025-07-30Buckley Miller Wright RENEWAL87Amy Elsner
1045Darci V NestleGermany2025-08-21Feltz Printing Service PROPOSAL20Anna Fali
1046Salvatore Y GauchoSpain2025-08-02Benton, John B Jr NEW27Amy Elsner
1047Nicolas B IturbideArgentina2025-08-18Dorl, James J Esq PROPOSAL1Ivan Magalhaes
1048Kadeem X DoeItaly2025-08-14Chanay, Jeffrey A Esq QUALIFIED99Ivan Magalhaes
1049Murillo F RutaUnited Kingdom2025-07-31Commercial Press UNQUALIFIED19Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aruna Y InouyeGermanyElwin Sharvill RENEWAL
Stacey M VenereCanadaAnna Fali UNQUALIFIED
Mayumi M PerinArgentinaIvan Magalhaes NEGOTIATION
Aika U WhobreyUnited KingdomStephen Shaw PROPOSAL
Jennifer P DoeBrazilElwin Sharvill NEGOTIATION
Costa T PoquetteItalyXuxue Feng NEW
Deepesh G SchemmerFranceIvan Magalhaes PROPOSAL
Kadeem D MorascaSpainIvan Magalhaes UNQUALIFIED
Isabel W SaylorsGermanyIvan Magalhaes NEW
Kaitlin Z CaudyUnited KingdomOnyama Limba PROPOSAL
Jones P VocelkaBrazilBernardo Dominic QUALIFIED
Darci U CaldareraIndiaAmy Elsner QUALIFIED
Misaki T FollerRussiaAnna Fali RENEWAL
Sinclair P MorascaAustraliaIoni Bowcher PROPOSAL
Leon A RimIndiaOnyama Limba PROPOSAL
Alejandro Z RutaGermanyAnna Fali NEGOTIATION
Murillo I StensethBrazilAmy Elsner PROPOSAL
Misaki R RimArgentinaBernardo Dominic RENEWAL
Munro E WieserSpainAmy Elsner NEW
Maria C SlusarskiSpainAsiya Javayant RENEWAL
Clifford Q MaletGermanyStephen Shaw NEGOTIATION
Julie F FerenczJapanAsiya Javayant PROPOSAL
Greenwood T BowleyJapanElwin Sharvill QUALIFIED
Clifford J PaprockiCanadaIoni Bowcher QUALIFIED
Wickens X InouyeItalyIoni Bowcher QUALIFIED
Morrow B FerenczArgentinaElwin Sharvill QUALIFIED
Munro R TollnerBrazilAmy Elsner QUALIFIED
Alejandro O FlosiCanadaXuxue Feng UNQUALIFIED
Sinclair E SaylorsJapanStephen Shaw NEW
Sinclair X DoeArgentinaElwin Sharvill RENEWAL
Isabel Z FerenczJapanIvan Magalhaes UNQUALIFIED
Tony T SlusarskiGermanyStephen Shaw RENEWAL
Tony F KuskoJapanAmy Elsner PROPOSAL
Morrow I GillianCanadaIvan Magalhaes PROPOSAL
Leja P SaylorsJapanIoni Bowcher QUALIFIED
Salvatore D MorascaSpainXuxue Feng NEGOTIATION
Murillo P CampainFranceElwin Sharvill NEW
Nicolas Q PaprockiItalyIoni Bowcher NEW
Munro C CaldareraFranceOnyama Limba RENEWAL
Costa T FigeroaFranceAnna Fali NEGOTIATION
Alejandro N InouyeAustraliaAnna Fali UNQUALIFIED
Jennifer L OstroskySpainAsiya Javayant NEW
Wickens F StockhamUnited KingdomAsiya Javayant NEGOTIATION
Darci E StockhamIndiaAsiya Javayant RENEWAL
Ricardo M FigeroaSpainBernardo Dominic UNQUALIFIED
Kaitlin T PoquetteItalyAsiya Javayant RENEWAL
Maisha B DoeItalyElwin Sharvill PROPOSAL
Aruna R TollnerSpainAsiya Javayant NEGOTIATION
Aika R CaldareraIndiaAmy Elsner NEW
Stacey U BriddickJapanBernardo Dominic NEGOTIATION
Frozen Columns
Name
Johnson N Nicka
Munro H Darakjy
Ashley N Royster
Tony T Maclead
Isabel P Poquette
Misaki V Darakjy
Greenwood I Slusarski
Cody F Doe
Johnson S Campain
Greenwood H Briddick
Aruna J Oldroyd
Jennifer L Vocelka
Aditya P Nicka
Arvin A Bowley
Salvatore R Nicka
Ricardo U Albares
Johnson U Bolognia
Maria W Flosi
Maria E Albares
Ashley C Gaucho
Darci S Gillian
Chavez H Kusko
Mayumi E Marrier
Greenwood K Poquette
Francesco A Bolognia
Smith B Gaucho
Silvio V Nicka
Izzy G Glick
Kaitlin K Butt
Aika P Darakjy
Aditya Y Morasca
Juan K Malet
Jeanfrancois F Amigon
Wickens L Amigon
Antonio N Tollner
Salvatore E Oldroyd
Maria U Sergi
Murillo X Kolmetz
Chavez A Bowley
Leon M Stenseth
Jones U Malet
Morrow A Chui
Stacey S Ostrosky
Munro X Figeroa
Morrow Q Chui
Juan P Figeroa
Wickens N Iturbide
Costa O Tollner
Jefferson G Foller
Izzy O Poquette
IdCountryDate
1000Canada2025-08-18
1001India2025-08-03
1002Spain2025-08-07
1003France2025-08-16
1004India2025-07-26
1005Spain2025-08-12
1006Argentina2025-08-22
1007Canada2025-08-20
1008Russia2025-08-17
1009Australia2025-08-12
1010Russia2025-08-21
1011Argentina2025-08-01
1012Italy2025-08-05
1013Germany2025-08-18
1014Germany2025-07-30
1015Brazil2025-08-04
1016France2025-07-26
1017France2025-08-01
1018United Kingdom2025-08-17
1019Japan2025-07-24
1020Russia2025-08-20
1021Japan2025-07-24
1022India2025-08-13
1023Brazil2025-08-17
1024India2025-07-24
1025Japan2025-08-14
1026Germany2025-08-18
1027United Kingdom2025-08-13
1028Germany2025-08-22
1029Germany2025-08-03
1030Russia2025-08-11
1031Argentina2025-08-09
1032Brazil2025-08-10
1033France2025-07-31
1034Russia2025-08-12
1035Australia2025-08-20
1036France2025-08-22
1037Canada2025-08-12
1038Spain2025-08-17
1039Australia2025-08-12
1040Germany2025-08-19
1041Argentina2025-08-20
1042Russia2025-08-06
1043United Kingdom2025-08-05
1044Brazil2025-08-05
1045Brazil2025-08-15
1046Argentina2025-08-19
1047Australia2025-08-06
1048India2025-08-20
1049Germany2025-08-03

On-Demand Data

NameIdCountryDate
David X Inouye1000Russia2025-08-03
Julie S Ferencz1001Australia2025-07-27
Kaitlin O Perin1002India2025-08-20
Morrow D Ferencz1003Australia2025-07-27
Greenwood K Waycott1004Russia2025-08-05
Jefferson N Marrier1005Argentina2025-08-01
Adams V Schemmer1006Russia2025-08-12
Wickens P Malet1007Russia2025-07-28
Izzy S Sergi1008Italy2025-07-26
Stacey A Albares1009Germany2025-07-26
Faith Y Bowley1010United Kingdom2025-07-29
Leon I Waycott1011Italy2025-08-17
Stacey U Sergi1012Australia2025-08-04
Morrow M Waycott1013India2025-08-20
Jeanfrancois Q Waycott1014Brazil2025-07-29
Jefferson E Saylors1015France2025-08-04
Smith A Glick1016Brazil2025-08-16
Adams O Slusarski1017Germany2025-07-25
Aika F Gillian1018Australia2025-08-15
James L Perin1019Spain2025-08-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja P CaudyIndiaElwin Sharvill QUALIFIED
Francesco F StensethAustraliaElwin Sharvill QUALIFIED
Emily N DoeGermanyXuxue Feng NEW
David Y TollnerSpainElwin Sharvill NEW
Morrow G PerinItalyXuxue Feng RENEWAL
Izzy I PaprockiIndiaBernardo Dominic UNQUALIFIED
Morrow G MaletAustraliaXuxue Feng NEW
Ricardo H KolmetzArgentinaAmy Elsner NEW
David A GlickArgentinaIoni Bowcher NEGOTIATION
Aruna W FlosiArgentinaIoni Bowcher UNQUALIFIED
Ashley A RoysterJapanBernardo Dominic NEW
Munro Q WieserBrazilIvan Magalhaes RENEWAL
Salvatore C MaletCanadaIvan Magalhaes RENEWAL
Kaitlin G FlosiAustraliaAsiya Javayant PROPOSAL
Tony P FerenczIndiaAsiya Javayant NEGOTIATION
Mujtaba N TollnerUnited KingdomAmy Elsner PROPOSAL
Tony Y WhobreyRussiaXuxue Feng PROPOSAL
Stacey C MacleadSpainElwin Sharvill NEGOTIATION
Aika A VocelkaRussiaOnyama Limba RENEWAL
Smith O KolmetzItalyIoni Bowcher NEGOTIATION
Aruna W NickaBrazilAmy Elsner UNQUALIFIED
Tony Z DilliardRussiaXuxue Feng NEW
Emily S SergiAustraliaStephen Shaw QUALIFIED
Leon E NestleArgentinaElwin Sharvill NEGOTIATION
Johnson I PerinGermanyAsiya Javayant PROPOSAL
Emily N FollerRussiaOnyama Limba NEW
Stacey X DilliardGermanyElwin Sharvill NEW
Alejandro U SchemmerRussiaStephen Shaw NEGOTIATION
Rodrigues Q MacleadBrazilBernardo Dominic PROPOSAL
Smith Z GarufiSpainXuxue Feng UNQUALIFIED
Clifford O DilliardItalyStephen Shaw RENEWAL
Mujtaba R StensethRussiaBernardo Dominic RENEWAL
Mayumi V BriddickArgentinaIvan Magalhaes RENEWAL
Jennifer N WieserFranceAnna Fali NEW
Faith N AmigonFranceStephen Shaw PROPOSAL
Mayumi R GarufiBrazilOnyama Limba UNQUALIFIED
Costa M PoquetteUnited KingdomBernardo Dominic PROPOSAL
Murillo V MorascaRussiaAsiya Javayant PROPOSAL
Aika G BriddickRussiaIoni Bowcher NEW
Tony X GauchoJapanXuxue Feng 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>