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
Rodrigues S WaycottSpainAmy Elsner PROPOSAL
Rodrigues C SaylorsUnited KingdomStephen Shaw NEW
Darci B TollnerFranceAnna Fali UNQUALIFIED
Juan J CampainItalyElwin Sharvill NEGOTIATION
Faith T WaycottUnited KingdomOnyama Limba RENEWAL
Wickens R NickaItalyIvan Magalhaes UNQUALIFIED
Costa X NickaAustraliaAmy Elsner RENEWAL
Emily U OstroskyBrazilElwin Sharvill UNQUALIFIED
Aditya K DilliardArgentinaAsiya Javayant UNQUALIFIED
Nicolas G StensethGermanyIvan Magalhaes NEGOTIATION
Emily N VocelkaIndiaAmy Elsner RENEWAL
Antonio W RutaAustraliaAnna Fali NEW
Ivar N IturbideCanadaIoni Bowcher QUALIFIED
Rodrigues I WieserGermanyXuxue Feng PROPOSAL
Leon E OstroskySpainIvan Magalhaes UNQUALIFIED
Stacey J NickaGermanyBernardo Dominic NEW
Octavia P StensethIndiaIoni Bowcher RENEWAL
Jefferson W MaletAustraliaXuxue Feng PROPOSAL
Izzy K BowleyFranceAmy Elsner NEW
Octavia Z MaletBrazilBernardo Dominic RENEWAL
Adams M PaprockiCanadaElwin Sharvill QUALIFIED
Maisha O RulapaughJapanIvan Magalhaes PROPOSAL
Octavia C StockhamUnited KingdomXuxue Feng NEW
Mayumi C CaldareraIndiaElwin Sharvill QUALIFIED
Julie B StensethArgentinaElwin Sharvill NEW
Leja B FigeroaJapanIoni Bowcher UNQUALIFIED
Murillo M MacleadJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois F VenereFranceAnna Fali NEW
Costa Z RulapaughCanadaIvan Magalhaes RENEWAL
Leja Y VocelkaCanadaAmy Elsner QUALIFIED
Izzy L BriddickJapanOnyama Limba NEW
Maria C InouyeFranceAnna Fali QUALIFIED
Aditya V VenereUnited KingdomStephen Shaw RENEWAL
Aditya L GauchoItalyAsiya Javayant UNQUALIFIED
Octavia V NickaFranceAnna Fali RENEWAL
Izzy H SchemmerIndiaBernardo Dominic NEW
Aruna G AlbaresJapanElwin Sharvill QUALIFIED
Mayumi W CaudyUnited KingdomAsiya Javayant NEGOTIATION
Smith F BriddickJapanIoni Bowcher PROPOSAL
Clifford F NickaAustraliaAsiya Javayant RENEWAL
Aditya P NestleGermanyAmy Elsner RENEWAL
Morrow A RimSpainAmy Elsner NEGOTIATION
Greenwood H ButtCanadaXuxue Feng NEW
Maria B StensethSpainOnyama Limba QUALIFIED
Deepesh V NickaSpainBernardo Dominic UNQUALIFIED
Octavia O CampainCanadaAsiya Javayant NEW
Arvin E PerinBrazilElwin Sharvill PROPOSAL
Rodrigues O VocelkaGermanyXuxue Feng PROPOSAL
Mayumi Q FlosiIndiaBernardo Dominic QUALIFIED
Octavia N StockhamIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey Z StensethIndiaIoni Bowcher NEW
Faith J MaletBrazilBernardo Dominic QUALIFIED
Nicolas S BriddickAustraliaStephen Shaw NEW
Arvin E DoeIndiaBernardo Dominic RENEWAL
Octavia P InouyeFranceBernardo Dominic QUALIFIED
Rodrigues M DoeRussiaAmy Elsner NEGOTIATION
Kadeem O FlosiItalyIvan Magalhaes NEW
Munro W OldroydGermanyAmy Elsner NEW
Julie M InouyeJapanAnna Fali PROPOSAL
Deepesh T RoysterJapanIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco C SaylorsUnited Kingdom2025-09-18Chanay, Jeffrey A Esq QUALIFIED52Elwin Sharvill
1001Izzy Q RutaFrance2025-09-14Feiner Bros NEGOTIATION38Asiya Javayant
1002Darci B RimIndia2025-09-13Chemel, James L Cpa QUALIFIED39Stephen Shaw
1003Salvatore M ShinkoBrazil2025-09-04Printing Dimensions RENEWAL31Ivan Magalhaes
1004Emily X RoysterRussia2025-09-11Feiner Bros RENEWAL41Ivan Magalhaes
1005Jefferson I NestleFrance2025-09-29Rangoni Of Florence NEGOTIATION21Asiya Javayant
1006Ivar D NestleFrance2025-09-24Printing Dimensions QUALIFIED2Asiya Javayant
1007Isabel R WhobreyFrance2025-09-12Buckley Miller Wright NEW22Elwin Sharvill
1008Cody W PoquetteSpain2025-10-01Feiner Bros UNQUALIFIED84Amy Elsner
1009Kaitlin X FollerBrazil2025-09-13Benton, John B Jr RENEWAL90Xuxue Feng
1010Maria V NestleJapan2025-09-28Feiner Bros PROPOSAL55Onyama Limba
1011Aruna P IturbideAustralia2025-09-03Rangoni Of Florence RENEWAL97Amy Elsner
1012Leja O RoysterIndia2025-09-19Chemel, James L Cpa PROPOSAL1Anna Fali
1013Antonio U MarrierBrazil2025-09-19Dorl, James J Esq UNQUALIFIED54Bernardo Dominic
1014Deepesh R InouyeRussia2025-09-06Buckley Miller Wright QUALIFIED62Anna Fali
1015Munro V PerinRussia2025-09-23Chemel, James L Cpa UNQUALIFIED47Xuxue Feng
1016Stacey Q MaletIndia2025-09-04Feiner Bros NEGOTIATION43Anna Fali
1017Kadeem H AlbaresUnited Kingdom2025-09-03Printing Dimensions NEGOTIATION75Bernardo Dominic
1018Juan J GarufiIndia2025-09-12Benton, John B Jr QUALIFIED71Bernardo Dominic
1019Leon U IturbideCanada2025-09-05Commercial Press NEGOTIATION71Elwin Sharvill
1020Julie M GarufiBrazil2025-09-22Rousseaux, Michael Esq QUALIFIED46Ivan Magalhaes
1021Salvatore U MorascaJapan2025-09-29Benton, John B Jr UNQUALIFIED56Bernardo Dominic
1022Nicolas F BologniaRussia2025-09-10Rousseaux, Michael Esq NEGOTIATION2Elwin Sharvill
1023Jeanfrancois P MacleadGermany2025-09-14Dorl, James J Esq PROPOSAL23Asiya Javayant
1024Jeanfrancois M PoquetteUnited Kingdom2025-09-26Chemel, James L Cpa PROPOSAL46Asiya Javayant
1025David X NestleSpain2025-09-24Buckley Miller Wright PROPOSAL93Stephen Shaw
1026Jennifer S ChuiUnited Kingdom2025-09-24Feiner Bros RENEWAL66Asiya Javayant
1027Stacey Y AlbaresGermany2025-09-10Truhlar And Truhlar Attys PROPOSAL4Ioni Bowcher
1028Deepesh V PoquetteArgentina2025-09-06Commercial Press PROPOSAL1Asiya Javayant
1029Ricardo D SlusarskiArgentina2025-09-07Truhlar And Truhlar Attys QUALIFIED13Stephen Shaw
1030Ashley K GauchoBrazil2025-09-12King, Christopher A Esq UNQUALIFIED1Stephen Shaw
1031Johnson G VocelkaJapan2025-09-12Chemel, James L Cpa NEGOTIATION6Elwin Sharvill
1032Sinclair J StockhamRussia2025-09-14Buckley Miller Wright PROPOSAL97Stephen Shaw
1033Isabel I FlosiGermany2025-09-28Benton, John B Jr RENEWAL26Amy Elsner
1034Jefferson Y DoeJapan2025-09-29Commercial Press UNQUALIFIED87Ivan Magalhaes
1035James N GarufiBrazil2025-09-17Truhlar And Truhlar Attys RENEWAL25Elwin Sharvill
1036Maria M MaletItaly2025-09-08Feltz Printing Service NEW54Ioni Bowcher
1037Julie T SchemmerArgentina2025-09-17Rangoni Of Florence RENEWAL25Elwin Sharvill
1038Arvin Y GarufiCanada2025-09-14Printing Dimensions PROPOSAL39Anna Fali
1039Octavia J DoeItaly2025-09-30Truhlar And Truhlar Attys NEW73Asiya Javayant
1040Francesco N CaldareraAustralia2025-09-10Morlong Associates NEGOTIATION64Amy Elsner
1041Sinclair Y MacleadFrance2025-09-05Benton, John B Jr NEGOTIATION11Ioni Bowcher
1042Claire U AmigonJapan2025-09-08Chemel, James L Cpa NEW34Xuxue Feng
1043Kaitlin O KuskoSpain2025-09-26Rangoni Of Florence RENEWAL85Amy Elsner
1044Wickens S KolmetzRussia2025-09-17Chanay, Jeffrey A Esq UNQUALIFIED3Ivan Magalhaes
1045Adams M CaudyGermany2025-09-21Feiner Bros PROPOSAL75Xuxue Feng
1046Darci X OldroydUnited Kingdom2025-09-18Rangoni Of Florence NEGOTIATION13Xuxue Feng
1047Emily V MarrierIndia2025-09-04Benton, John B Jr NEW22Ioni Bowcher
1048Ivar I FlosiJapan2025-09-07Commercial Press UNQUALIFIED33Onyama Limba
1049Stacey V GlickRussia2025-09-11Feltz Printing Service QUALIFIED16Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Chavez T MacleadCanadaAmy Elsner RENEWAL
Ricardo P RulapaughGermanyElwin Sharvill UNQUALIFIED
Leon D FlosiFranceAmy Elsner RENEWAL
Jennifer T StensethFranceBernardo Dominic UNQUALIFIED
Misaki T OstroskyCanadaAnna Fali UNQUALIFIED
Greenwood I ShinkoAustraliaBernardo Dominic RENEWAL
Nicolas V SergiItalyIvan Magalhaes QUALIFIED
Morrow O FigeroaUnited KingdomAnna Fali NEGOTIATION
Costa P ShinkoRussiaElwin Sharvill UNQUALIFIED
Juan F PerinAustraliaElwin Sharvill NEGOTIATION
Nicolas Z BriddickUnited KingdomIoni Bowcher NEW
Clifford G VenereFranceBernardo Dominic PROPOSAL
Salvatore B PoquetteJapanIoni Bowcher PROPOSAL
Aruna U VocelkaFranceBernardo Dominic PROPOSAL
Ivar L RimRussiaElwin Sharvill NEGOTIATION
Jennifer M DarakjyCanadaAmy Elsner UNQUALIFIED
Leja L SergiJapanIoni Bowcher NEGOTIATION
Emily R FigeroaBrazilStephen Shaw QUALIFIED
Jefferson F DoeJapanElwin Sharvill QUALIFIED
Nicolas B MaletJapanOnyama Limba QUALIFIED
Murillo A RulapaughSpainElwin Sharvill NEW
Leja S ChuiSpainStephen Shaw NEGOTIATION
Francesco H PerinJapanIvan Magalhaes PROPOSAL
Leja G RimBrazilAsiya Javayant RENEWAL
Silvio P FerenczAustraliaOnyama Limba NEGOTIATION
Julie Q MaletCanadaStephen Shaw PROPOSAL
Aruna R CampainCanadaIoni Bowcher RENEWAL
Chavez X RimJapanAmy Elsner NEGOTIATION
David C VocelkaCanadaAmy Elsner UNQUALIFIED
Clifford Y BowleyCanadaAnna Fali UNQUALIFIED
Arvin D DilliardItalyIvan Magalhaes PROPOSAL
Misaki O MaletArgentinaBernardo Dominic PROPOSAL
Aruna A DilliardJapanOnyama Limba RENEWAL
Arvin S FlosiJapanOnyama Limba QUALIFIED
Sinclair G ShinkoUnited KingdomAnna Fali UNQUALIFIED
James I RulapaughFranceStephen Shaw NEGOTIATION
Stacey M SergiRussiaStephen Shaw RENEWAL
Alejandro M CaudyUnited KingdomAmy Elsner NEW
Sinclair O TollnerAustraliaAsiya Javayant PROPOSAL
Octavia P FerenczGermanyAmy Elsner RENEWAL
Antonio T FigeroaAustraliaIvan Magalhaes RENEWAL
Nicolas U VocelkaBrazilAmy Elsner PROPOSAL
Ivar T FerenczFranceBernardo Dominic QUALIFIED
Misaki I GillianJapanBernardo Dominic NEGOTIATION
Octavia T BriddickSpainIoni Bowcher RENEWAL
Salvatore O AmigonRussiaStephen Shaw RENEWAL
Faith Y AmigonBrazilAnna Fali QUALIFIED
Emily K KuskoFranceXuxue Feng RENEWAL
Izzy G WaycottBrazilAsiya Javayant RENEWAL
Leon D KuskoArgentinaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Salvatore V Malet
Salvatore B Rulapaugh
Alejandro M Paprocki
Julie S Glick
Maria S Glick
Silvio N Gillian
Aruna F Figeroa
Francesco F Royster
Silvio U Doe
Ashley C Gaucho
Misaki L Malet
Antonio W Garufi
Aika F Kolmetz
Arvin I Figeroa
Adams Y Perin
Maria B Kolmetz
Aditya S Schemmer
Costa T Oldroyd
Arvin V Schemmer
Jennifer J Maclead
Juan Z Marrier
Francesco H Oldroyd
Rodrigues P Kolmetz
Aika S Malet
Greenwood E Doe
Smith L Royster
Smith T Caldarera
Deepesh H Kolmetz
Ivar C Nestle
Jefferson Z Kusko
Jeanfrancois G Bolognia
Francesco R Royster
Clifford E Oldroyd
Silvio X Paprocki
Stacey W Gillian
Cody W Malet
Morrow Z Oldroyd
Smith U Vocelka
James Y Sergi
Chavez G Ruta
David J Albares
Misaki M Butt
Ashley C Perin
Deepesh I Morasca
Aruna R Royster
Cody O Schemmer
Leon F Glick
Darci E Schemmer
Adams A Rim
Johnson Z Kolmetz
IdCountryDate
1000Australia2025-09-23
1001Italy2025-09-18
1002Germany2025-09-30
1003Argentina2025-09-14
1004Canada2025-09-18
1005India2025-09-26
1006Argentina2025-09-24
1007Germany2025-09-04
1008Germany2025-09-19
1009India2025-09-23
1010France2025-09-09
1011Italy2025-09-04
1012Canada2025-09-17
1013Australia2025-09-22
1014Italy2025-09-03
1015Russia2025-09-23
1016Italy2025-09-14
1017Canada2025-09-16
1018Russia2025-09-05
1019Argentina2025-09-13
1020Brazil2025-09-14
1021Germany2025-09-15
1022Spain2025-09-07
1023Japan2025-09-12
1024Germany2025-09-15
1025Argentina2025-10-01
1026Italy2025-09-29
1027Canada2025-09-09
1028Russia2025-10-02
1029Canada2025-09-05
1030Brazil2025-10-01
1031Brazil2025-09-09
1032Japan2025-09-09
1033Brazil2025-09-20
1034Spain2025-09-06
1035India2025-09-25
1036Argentina2025-09-26
1037Russia2025-09-30
1038Australia2025-09-12
1039France2025-09-23
1040Spain2025-10-01
1041France2025-09-22
1042Germany2025-09-12
1043Spain2025-09-08
1044United Kingdom2025-09-19
1045Brazil2025-09-15
1046Australia2025-09-22
1047Brazil2025-10-01
1048United Kingdom2025-09-06
1049Spain2025-09-26

On-Demand Data

NameIdCountryDate
Julie X Slusarski1000Canada2025-09-24
Salvatore K Perin1001France2025-09-05
Leja X Rim1002France2025-09-11
Leon L Malet1003Australia2025-09-30
Izzy O Butt1004Japan2025-10-01
Rodrigues G Glick1005Italy2025-09-14
Mayumi V Saylors1006Russia2025-09-28
Deepesh R Foller1007Spain2025-09-20
Johnson F Paprocki1008Italy2025-09-20
Aika Z Marrier1009Russia2025-09-15
Deepesh H Venere1010France2025-09-25
Emily S Ostrosky1011Russia2025-10-01
Stacey D Malet1012Russia2025-09-15
Leon K Perin1013Russia2025-09-15
Mayumi A Inouye1014India2025-09-17
Kaitlin S Nestle1015India2025-09-22
Maisha H Iturbide1016Germany2025-09-17
Munro D Paprocki1017Canada2025-09-13
Isabel C Rulapaugh1018India2025-09-25
Deepesh F Perin1019Spain2025-10-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas W FlosiFranceXuxue Feng RENEWAL
Aruna H VenereGermanyOnyama Limba NEW
Silvio E WieserUnited KingdomAsiya Javayant QUALIFIED
Clifford N RimRussiaElwin Sharvill RENEWAL
Aruna O WaycottCanadaOnyama Limba NEGOTIATION
Rodrigues P BologniaArgentinaAnna Fali QUALIFIED
Alejandro B OldroydGermanyAsiya Javayant NEW
Faith A WaycottCanadaAnna Fali RENEWAL
Aruna U SergiIndiaXuxue Feng QUALIFIED
Isabel O WhobreyAustraliaAnna Fali NEW
Greenwood T WieserBrazilXuxue Feng UNQUALIFIED
Darci A AmigonFranceOnyama Limba NEGOTIATION
Tony O AlbaresJapanAsiya Javayant NEGOTIATION
Isabel Y FlosiFranceAnna Fali NEW
Antonio A FerenczItalyXuxue Feng UNQUALIFIED
Faith Z TollnerFranceIvan Magalhaes PROPOSAL
Silvio F FlosiFranceIoni Bowcher UNQUALIFIED
Stacey P StensethUnited KingdomOnyama Limba RENEWAL
Aruna I MarrierBrazilAmy Elsner QUALIFIED
Sinclair I MaletArgentinaElwin Sharvill RENEWAL
Francesco B MacleadGermanyOnyama Limba RENEWAL
Octavia M RimItalyOnyama Limba PROPOSAL
Misaki H BologniaIndiaAnna Fali NEW
David G RulapaughAustraliaStephen Shaw QUALIFIED
Silvio F RutaFranceXuxue Feng RENEWAL
Munro S ShinkoSpainBernardo Dominic NEGOTIATION
Stacey O SergiAustraliaAnna Fali RENEWAL
Murillo H NickaAustraliaElwin Sharvill NEW
Adams G PaprockiItalyOnyama Limba QUALIFIED
Salvatore O AmigonAustraliaAmy Elsner NEW
Misaki P VenereSpainBernardo Dominic RENEWAL
Ashley H NestleItalyAnna Fali PROPOSAL
Jones M KuskoBrazilStephen Shaw NEGOTIATION
Aditya O WhobreyAustraliaIoni Bowcher PROPOSAL
Izzy Z ButtFranceAmy Elsner NEGOTIATION
Sinclair E DarakjyArgentinaIoni Bowcher UNQUALIFIED
Ashley H AlbaresRussiaElwin Sharvill NEW
Maria O GarufiSpainAnna Fali PROPOSAL
Aika L ShinkoJapanIoni Bowcher RENEWAL
Nicolas N CampainFranceOnyama Limba NEGOTIATION

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