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
Jefferson U GlickArgentinaIoni Bowcher UNQUALIFIED
Silvio I MaletRussiaBernardo Dominic QUALIFIED
Kaitlin Q BowleyFranceAnna Fali UNQUALIFIED
Alejandro P MacleadCanadaElwin Sharvill NEGOTIATION
Maisha K TollnerRussiaOnyama Limba QUALIFIED
Octavia S MaletBrazilAmy Elsner NEGOTIATION
Maria T WaycottItalyAnna Fali UNQUALIFIED
Arvin K FollerAustraliaAnna Fali NEW
Kadeem O ShinkoItalyAmy Elsner UNQUALIFIED
Maisha P BologniaBrazilElwin Sharvill PROPOSAL
Johnson B IturbideUnited KingdomXuxue Feng PROPOSAL
Faith Q StensethIndiaOnyama Limba UNQUALIFIED
Clifford K StensethJapanAmy Elsner PROPOSAL
Rodrigues K CampainJapanIvan Magalhaes QUALIFIED
Maria Z ChuiGermanyOnyama Limba RENEWAL
Misaki J RutaArgentinaBernardo Dominic QUALIFIED
Ashley E WhobreyBrazilAsiya Javayant NEGOTIATION
Jones G BriddickJapanStephen Shaw NEGOTIATION
Deepesh D SlusarskiIndiaIoni Bowcher NEW
Salvatore I WhobreyBrazilStephen Shaw NEW
Jeanfrancois K DilliardArgentinaOnyama Limba NEW
Emily L FigeroaItalyAnna Fali NEGOTIATION
Chavez E DoeJapanStephen Shaw NEGOTIATION
Deepesh V BowleyCanadaAsiya Javayant QUALIFIED
Maisha Q StensethItalyIvan Magalhaes NEGOTIATION
Aika S StensethArgentinaAmy Elsner PROPOSAL
Maria I GauchoFranceStephen Shaw NEW
Sinclair W StockhamItalyStephen Shaw RENEWAL
Maria S AlbaresSpainAnna Fali NEW
Adams W MarrierCanadaBernardo Dominic NEGOTIATION
Maisha W IturbideSpainAmy Elsner PROPOSAL
Morrow D PaprockiItalyAmy Elsner QUALIFIED
Silvio M GarufiSpainAnna Fali RENEWAL
Maria D InouyeRussiaStephen Shaw UNQUALIFIED
Kadeem K RulapaughFranceElwin Sharvill NEGOTIATION
Johnson E SchemmerItalyBernardo Dominic UNQUALIFIED
Emily B SaylorsCanadaAnna Fali QUALIFIED
Greenwood H RutaGermanyAsiya Javayant NEW
Mayumi Z IturbideRussiaIoni Bowcher NEW
Izzy G GillianBrazilOnyama Limba QUALIFIED
Jones C NestleBrazilIoni Bowcher NEW
Izzy J GauchoRussiaIoni Bowcher QUALIFIED
Chavez X VenereItalyElwin Sharvill QUALIFIED
Murillo V AlbaresGermanyIoni Bowcher PROPOSAL
Aika G AmigonFranceAmy Elsner PROPOSAL
Ivar A RulapaughIndiaOnyama Limba QUALIFIED
Octavia M OldroydFranceBernardo Dominic RENEWAL
David R WaycottArgentinaBernardo Dominic PROPOSAL
Julie W SlusarskiSpainIvan Magalhaes NEGOTIATION
Munro H WhobreyIndiaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Johnson K GillianIndiaElwin Sharvill UNQUALIFIED
Sinclair U CaldareraSpainXuxue Feng NEGOTIATION
Murillo Z ChuiArgentinaAnna Fali PROPOSAL
Alejandro A FollerSpainAmy Elsner PROPOSAL
Sinclair A KolmetzSpainBernardo Dominic UNQUALIFIED
David W GauchoGermanyOnyama Limba QUALIFIED
Faith C StockhamAustraliaIoni Bowcher RENEWAL
Leon X FollerJapanIvan Magalhaes NEW
Murillo M RimCanadaAsiya Javayant RENEWAL
Greenwood G PerinItalyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo J GarufiSpain2025-09-12Dorl, James J Esq NEW54Onyama Limba
1001Jennifer P AlbaresCanada2025-10-04Chapman, Ross E Esq PROPOSAL65Amy Elsner
1002Julie G AlbaresGermany2025-10-06Buckley Miller Wright PROPOSAL48Asiya Javayant
1003Murillo N SergiJapan2025-09-16Chapman, Ross E Esq RENEWAL3Bernardo Dominic
1004Jones M ShinkoCanada2025-10-06Dorl, James J Esq PROPOSAL42Ioni Bowcher
1005Costa R StockhamItaly2025-09-13Rangoni Of Florence PROPOSAL64Onyama Limba
1006Izzy M RulapaughSpain2025-09-20Feiner Bros RENEWAL9Elwin Sharvill
1007Nicolas K ButtBrazil2025-10-03Commercial Press NEGOTIATION80Elwin Sharvill
1008Aditya M CampainFrance2025-10-05Feltz Printing Service QUALIFIED15Ioni Bowcher
1009Nicolas L TollnerAustralia2025-09-15Chapman, Ross E Esq NEW90Anna Fali
1010Darci Q NickaBrazil2025-09-14Chapman, Ross E Esq QUALIFIED16Anna Fali
1011Aditya A BologniaJapan2025-10-04Feiner Bros NEW20Elwin Sharvill
1012Emily U KuskoSpain2025-09-22Printing Dimensions RENEWAL57Onyama Limba
1013Wickens G NickaSpain2025-09-11Chemel, James L Cpa NEW46Stephen Shaw
1014Tony Y DarakjyRussia2025-09-16Truhlar And Truhlar Attys QUALIFIED23Asiya Javayant
1015Adams F BriddickGermany2025-09-21Rousseaux, Michael Esq QUALIFIED55Ioni Bowcher
1016Kaitlin X RulapaughIndia2025-09-20Dorl, James J Esq PROPOSAL52Ioni Bowcher
1017Tony G StensethGermany2025-09-30Morlong Associates QUALIFIED77Onyama Limba
1018Jennifer T OldroydJapan2025-10-07Chemel, James L Cpa QUALIFIED9Bernardo Dominic
1019Aditya I CaudyUnited Kingdom2025-09-27Rousseaux, Michael Esq PROPOSAL17Ioni Bowcher
1020Maria Z PerinUnited Kingdom2025-09-15Truhlar And Truhlar Attys RENEWAL96Onyama Limba
1021Nicolas E SaylorsAustralia2025-09-19King, Christopher A Esq PROPOSAL60Onyama Limba
1022Octavia D VenereAustralia2025-10-07King, Christopher A Esq NEGOTIATION80Onyama Limba
1023Mayumi D GauchoItaly2025-09-13Buckley Miller Wright QUALIFIED16Ivan Magalhaes
1024Wickens U FigeroaFrance2025-09-19Dorl, James J Esq RENEWAL82Asiya Javayant
1025Maisha A WaycottFrance2025-10-03Benton, John B Jr NEW52Ioni Bowcher
1026Sinclair R PoquetteUnited Kingdom2025-09-15Truhlar And Truhlar Attys RENEWAL62Xuxue Feng
1027Deepesh J PoquetteJapan2025-10-04Commercial Press NEW64Amy Elsner
1028Murillo C WaycottItaly2025-09-15Truhlar And Truhlar Attys PROPOSAL88Asiya Javayant
1029Octavia V FerenczJapan2025-09-26Feltz Printing Service NEGOTIATION88Xuxue Feng
1030Deepesh Z MarrierAustralia2025-10-01Chemel, James L Cpa NEW81Bernardo Dominic
1031Mayumi Q MaletCanada2025-09-19Buckley Miller Wright UNQUALIFIED15Amy Elsner
1032Leon N GlickArgentina2025-09-14Chapman, Ross E Esq NEGOTIATION11Elwin Sharvill
1033Leon F PerinUnited Kingdom2025-10-06Rangoni Of Florence PROPOSAL79Asiya Javayant
1034Tony T PerinCanada2025-10-02Buckley Miller Wright RENEWAL25Bernardo Dominic
1035Silvio F SlusarskiCanada2025-10-07Feltz Printing Service UNQUALIFIED88Ioni Bowcher
1036Kaitlin S GauchoBrazil2025-10-04Rousseaux, Michael Esq RENEWAL79Asiya Javayant
1037Costa V BriddickSpain2025-09-17Commercial Press QUALIFIED50Onyama Limba
1038Mujtaba H RutaArgentina2025-09-24Rangoni Of Florence PROPOSAL92Bernardo Dominic
1039Misaki Z ButtGermany2025-09-16Benton, John B Jr NEW52Amy Elsner
1040Jefferson X DoeIndia2025-09-10King, Christopher A Esq QUALIFIED41Onyama Limba
1041David R OldroydBrazil2025-09-11Benton, John B Jr PROPOSAL10Amy Elsner
1042Ashley A WaycottCanada2025-09-16Dorl, James J Esq PROPOSAL12Ivan Magalhaes
1043Ivar D InouyeUnited Kingdom2025-09-20Rangoni Of Florence PROPOSAL2Elwin Sharvill
1044Antonio R NestleUnited Kingdom2025-09-22Rangoni Of Florence UNQUALIFIED44Amy Elsner
1045Smith E OldroydRussia2025-09-29Chapman, Ross E Esq NEW89Onyama Limba
1046Nicolas E ButtIndia2025-09-27Feltz Printing Service QUALIFIED88Elwin Sharvill
1047Aika N RulapaughFrance2025-09-17Rousseaux, Michael Esq UNQUALIFIED52Asiya Javayant
1048Chavez H FerenczFrance2025-09-20Chanay, Jeffrey A Esq NEGOTIATION33Stephen Shaw
1049Ivar A ChuiArgentina2025-09-27Chemel, James L Cpa QUALIFIED46Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Francesco R MaletUnited KingdomStephen Shaw RENEWAL
Murillo V ShinkoItalyOnyama Limba NEW
Smith F CaldareraGermanyBernardo Dominic RENEWAL
Silvio R SchemmerAustraliaStephen Shaw RENEWAL
Rodrigues M FigeroaCanadaXuxue Feng NEGOTIATION
Clifford T DilliardItalyXuxue Feng PROPOSAL
Tony M RulapaughFranceBernardo Dominic RENEWAL
Greenwood O WieserBrazilAmy Elsner QUALIFIED
Darci E MacleadJapanAmy Elsner QUALIFIED
Cody K CaldareraJapanXuxue Feng UNQUALIFIED
Kadeem P StensethUnited KingdomIvan Magalhaes NEW
Claire E WaycottItalyAmy Elsner RENEWAL
Cody Q MacleadUnited KingdomElwin Sharvill PROPOSAL
Nicolas Y FigeroaUnited KingdomXuxue Feng PROPOSAL
Mujtaba L BologniaItalyAmy Elsner NEGOTIATION
Juan A MacleadBrazilAnna Fali NEW
Aditya J GillianArgentinaOnyama Limba UNQUALIFIED
Leon U GarufiSpainBernardo Dominic PROPOSAL
Johnson M PoquetteAustraliaAsiya Javayant PROPOSAL
Wickens Q FerenczRussiaAmy Elsner UNQUALIFIED
Aruna Y PoquetteUnited KingdomStephen Shaw RENEWAL
Maisha M IturbideFranceElwin Sharvill NEGOTIATION
Darci V DilliardRussiaXuxue Feng QUALIFIED
Kaitlin A BriddickArgentinaElwin Sharvill QUALIFIED
Ricardo Q GarufiUnited KingdomIoni Bowcher RENEWAL
Emily J GauchoBrazilAmy Elsner UNQUALIFIED
Leja V DilliardIndiaBernardo Dominic NEGOTIATION
Johnson O SlusarskiBrazilIoni Bowcher NEGOTIATION
Faith Q GlickFranceOnyama Limba QUALIFIED
Izzy X OstroskyAustraliaOnyama Limba PROPOSAL
Jennifer W GarufiCanadaXuxue Feng NEGOTIATION
Morrow L SergiItalyAmy Elsner QUALIFIED
James W VenereUnited KingdomIoni Bowcher NEGOTIATION
Kaitlin C BologniaJapanAnna Fali QUALIFIED
Leja N WhobreyCanadaOnyama Limba NEW
Stacey G ShinkoUnited KingdomOnyama Limba NEW
Ricardo P RoysterSpainElwin Sharvill RENEWAL
Faith O MarrierFranceXuxue Feng NEW
Arvin I WaycottGermanyAsiya Javayant NEGOTIATION
Munro B MaletJapanElwin Sharvill UNQUALIFIED
Arvin K WaycottIndiaStephen Shaw QUALIFIED
Cody V OstroskyGermanyStephen Shaw PROPOSAL
Claire A ChuiAustraliaXuxue Feng NEGOTIATION
Octavia V GillianAustraliaIoni Bowcher NEW
Tony C RutaUnited KingdomElwin Sharvill RENEWAL
Munro Q DoeIndiaXuxue Feng NEW
Cody K PerinSpainElwin Sharvill NEW
Jeanfrancois I PoquetteGermanyAsiya Javayant RENEWAL
Jeanfrancois D TollnerCanadaAmy Elsner RENEWAL
James D DilliardSpainAsiya Javayant NEGOTIATION
Frozen Columns
Name
Smith W Tollner
Adams T Butt
Stacey A Waycott
Tony L Venere
Aika N Whobrey
Isabel Z Doe
Mayumi E Paprocki
Costa I Nestle
Clifford Y Maclead
Jones Q Poquette
Salvatore R Malet
Kadeem B Ferencz
Costa Q Perin
Leja N Schemmer
Julie T Stockham
Jeanfrancois T Iturbide
Cody I Glick
Faith I Rulapaugh
Mujtaba L Caldarera
Costa A Kusko
Tony M Garufi
Smith S Albares
Kaitlin K Darakjy
Tony I Stockham
Chavez F Maclead
Mujtaba Y Malet
Arvin N Butt
Faith J Slusarski
Nicolas N Campain
Deepesh N Darakjy
Jones W Waycott
Francesco G Vocelka
Mayumi T Stockham
Faith Q Rulapaugh
Misaki V Dilliard
Isabel Z Gaucho
Octavia J Glick
Arvin O Nicka
David K Sergi
Cody O Garufi
David A Iturbide
Darci V Nestle
Aika K Vocelka
Morrow Q Iturbide
Sinclair N Rulapaugh
Morrow L Iturbide
Octavia J Paprocki
Maisha O Rim
Deepesh K Kolmetz
Aditya K Ferencz
IdCountryDate
1000Australia2025-09-10
1001Russia2025-10-03
1002Spain2025-09-12
1003India2025-09-22
1004Spain2025-09-18
1005France2025-09-20
1006Argentina2025-09-10
1007Russia2025-10-07
1008Canada2025-09-17
1009Italy2025-09-20
1010Brazil2025-10-01
1011Germany2025-09-09
1012Canada2025-09-12
1013Australia2025-10-05
1014Canada2025-10-03
1015Spain2025-09-19
1016United Kingdom2025-09-08
1017Japan2025-10-05
1018Japan2025-09-24
1019Italy2025-09-29
1020Argentina2025-09-19
1021United Kingdom2025-09-08
1022India2025-09-10
1023France2025-09-13
1024United Kingdom2025-09-26
1025Germany2025-09-09
1026Brazil2025-09-18
1027Italy2025-09-16
1028Japan2025-10-07
1029India2025-09-11
1030Brazil2025-10-03
1031Italy2025-09-19
1032India2025-09-15
1033Brazil2025-10-03
1034Russia2025-09-16
1035Japan2025-09-19
1036Italy2025-09-23
1037India2025-09-12
1038Japan2025-09-19
1039France2025-09-15
1040Russia2025-09-13
1041India2025-09-29
1042Argentina2025-09-18
1043France2025-09-26
1044France2025-09-21
1045France2025-10-02
1046France2025-10-05
1047United Kingdom2025-09-26
1048Australia2025-09-16
1049United Kingdom2025-09-24

On-Demand Data

NameIdCountryDate
Ivar Y Ferencz1000United Kingdom2025-09-08
Chavez Y Chui1001India2025-09-21
Chavez Z Rim1002Russia2025-09-30
Chavez D Ferencz1003France2025-09-13
Alejandro Z Nicka1004Canada2025-09-11
Wickens J Shinko1005Japan2025-10-02
James Q Inouye1006Russia2025-10-03
Francesco U Nestle1007Argentina2025-10-02
Silvio M Schemmer1008Spain2025-10-06
Leja J Flosi1009France2025-10-04
Nicolas Z Schemmer1010Australia2025-09-10
Antonio Q Gaucho1011Germany2025-09-25
Murillo G Malet1012Argentina2025-09-30
Jones B Schemmer1013Spain2025-09-17
Adams F Venere1014India2025-10-05
Chavez S Shinko1015India2025-09-21
James B Ostrosky1016Canada2025-09-30
Greenwood Q Nestle1017Spain2025-09-21
Juan E Gillian1018Spain2025-09-13
Leon R Amigon1019Italy2025-09-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro T MarrierRussiaIvan Magalhaes NEW
Juan G PerinAustraliaAnna Fali QUALIFIED
Ricardo F CaldareraGermanyAsiya Javayant RENEWAL
Juan L ChuiSpainXuxue Feng QUALIFIED
Misaki M MacleadArgentinaIoni Bowcher RENEWAL
Nicolas N ChuiBrazilAmy Elsner NEGOTIATION
Claire T BriddickFranceStephen Shaw RENEWAL
Greenwood K PoquetteRussiaAsiya Javayant RENEWAL
Ashley L GauchoJapanAnna Fali UNQUALIFIED
Maria B StensethAustraliaStephen Shaw QUALIFIED
Mayumi R CaldareraRussiaAmy Elsner QUALIFIED
Faith D ButtFranceElwin Sharvill NEW
Antonio Z IturbideGermanyAmy Elsner UNQUALIFIED
Morrow C FigeroaRussiaXuxue Feng NEGOTIATION
Misaki A InouyeUnited KingdomStephen Shaw UNQUALIFIED
Ricardo E PaprockiUnited KingdomXuxue Feng NEGOTIATION
Silvio T OldroydSpainStephen Shaw RENEWAL
Julie L StockhamArgentinaAmy Elsner NEW
Jones Y RulapaughBrazilXuxue Feng RENEWAL
Arvin M CampainFranceBernardo Dominic PROPOSAL
Ricardo O StensethArgentinaElwin Sharvill QUALIFIED
Aruna B StockhamAustraliaIoni Bowcher NEGOTIATION
Darci N GarufiJapanBernardo Dominic RENEWAL
Leon H PerinFranceAsiya Javayant NEW
Stacey E MarrierCanadaXuxue Feng UNQUALIFIED
Sinclair S SchemmerArgentinaXuxue Feng NEGOTIATION
Jennifer L WieserGermanyBernardo Dominic PROPOSAL
Darci U SergiJapanBernardo Dominic RENEWAL
Smith C FerenczJapanIoni Bowcher UNQUALIFIED
Darci Y TollnerArgentinaOnyama Limba QUALIFIED
Ricardo J NickaArgentinaStephen Shaw RENEWAL
Jennifer Q SchemmerAustraliaAmy Elsner RENEWAL
Clifford B RulapaughSpainAsiya Javayant UNQUALIFIED
Costa D BriddickCanadaIoni Bowcher NEW
Costa R VenereBrazilOnyama Limba UNQUALIFIED
Kadeem T NickaIndiaOnyama Limba RENEWAL
Wickens V ChuiSpainAnna Fali UNQUALIFIED
Nicolas X MacleadFranceXuxue Feng NEW
Rodrigues V SaylorsSpainIoni Bowcher RENEWAL
Maria M StockhamSpainIoni Bowcher 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>