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
Isabel G AmigonGermanyAmy Elsner PROPOSAL
Adams G VenereCanadaElwin Sharvill NEW
Greenwood N VenereCanadaElwin Sharvill PROPOSAL
Darci R VenereFranceStephen Shaw NEGOTIATION
Mujtaba S RutaUnited KingdomAsiya Javayant RENEWAL
Rodrigues R MorascaUnited KingdomAsiya Javayant NEGOTIATION
Johnson T FlosiJapanIvan Magalhaes NEGOTIATION
Leon X GlickFranceAsiya Javayant PROPOSAL
Nicolas A CampainSpainAsiya Javayant NEGOTIATION
Mayumi O BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Maria G GillianSpainStephen Shaw UNQUALIFIED
Aika Q FollerItalyStephen Shaw QUALIFIED
Jefferson C SergiAustraliaAmy Elsner UNQUALIFIED
Stacey X PaprockiRussiaElwin Sharvill RENEWAL
Cody M FollerBrazilElwin Sharvill UNQUALIFIED
Silvio V DoeFranceStephen Shaw PROPOSAL
Emily G FlosiRussiaElwin Sharvill PROPOSAL
Arvin L DilliardAustraliaAmy Elsner RENEWAL
Mayumi G FerenczJapanAmy Elsner QUALIFIED
Deepesh T RoysterBrazilOnyama Limba NEW
Jefferson O CampainFranceOnyama Limba PROPOSAL
Tony R MaletAustraliaIoni Bowcher RENEWAL
Juan S OldroydFranceAmy Elsner NEGOTIATION
Leon Z VenereSpainBernardo Dominic RENEWAL
Jennifer K RutaRussiaXuxue Feng PROPOSAL
Tony P OstroskyGermanyAmy Elsner QUALIFIED
Munro X DilliardBrazilAsiya Javayant PROPOSAL
Mayumi K FerenczIndiaBernardo Dominic RENEWAL
Jefferson B SlusarskiAustraliaAnna Fali RENEWAL
Salvatore Q PerinGermanyStephen Shaw RENEWAL
Faith E CaudyJapanBernardo Dominic UNQUALIFIED
Maisha Y GillianFranceAsiya Javayant QUALIFIED
Antonio X OldroydArgentinaAnna Fali NEW
Ashley M DilliardFranceOnyama Limba RENEWAL
Francesco B OldroydCanadaOnyama Limba UNQUALIFIED
Emily P CampainIndiaElwin Sharvill PROPOSAL
Adams E KuskoAustraliaStephen Shaw NEW
Izzy V CaudyArgentinaAsiya Javayant UNQUALIFIED
Tony G RimUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba X SchemmerBrazilElwin Sharvill RENEWAL
Izzy E NickaAustraliaOnyama Limba NEGOTIATION
Deepesh H RutaItalyAnna Fali NEGOTIATION
Faith Y PaprockiRussiaStephen Shaw PROPOSAL
Adams T FigeroaFranceIoni Bowcher PROPOSAL
Isabel B GlickSpainIoni Bowcher NEGOTIATION
Aika S MarrierGermanyAsiya Javayant QUALIFIED
Claire T SergiBrazilAnna Fali QUALIFIED
Chavez R PaprockiIndiaAsiya Javayant PROPOSAL
Kadeem W DilliardBrazilAsiya Javayant QUALIFIED
Arvin P BologniaArgentinaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin H DoeArgentinaElwin Sharvill NEGOTIATION
Salvatore Y CampainFranceAmy Elsner QUALIFIED
Mujtaba L BowleyIndiaIvan Magalhaes UNQUALIFIED
Stacey E IturbideBrazilIvan Magalhaes NEW
Arvin U PoquetteFranceXuxue Feng QUALIFIED
Adams M StensethGermanyAnna Fali RENEWAL
Francesco G MorascaAustraliaAsiya Javayant NEGOTIATION
Cody P MarrierIndiaIoni Bowcher RENEWAL
Smith A SaylorsUnited KingdomXuxue Feng RENEWAL
Aditya M SlusarskiBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro I PaprockiSpain2025-07-21King, Christopher A Esq RENEWAL23Onyama Limba
1001Maria D SlusarskiBrazil2025-07-10Rousseaux, Michael Esq UNQUALIFIED24Asiya Javayant
1002Silvio H ButtCanada2025-07-13Rousseaux, Michael Esq NEW31Bernardo Dominic
1003Misaki I GarufiJapan2025-07-04Dorl, James J Esq NEW89Asiya Javayant
1004Leja H SergiArgentina2025-07-20Benton, John B Jr NEGOTIATION72Onyama Limba
1005David R NestleCanada2025-07-03Printing Dimensions RENEWAL20Bernardo Dominic
1006Aika L CampainRussia2025-06-30Chemel, James L Cpa UNQUALIFIED66Onyama Limba
1007Julie T BriddickIndia2025-07-09Printing Dimensions PROPOSAL66Onyama Limba
1008David K RutaItaly2025-07-03Benton, John B Jr UNQUALIFIED48Xuxue Feng
1009Nicolas O CaldareraGermany2025-07-18Chapman, Ross E Esq NEGOTIATION5Amy Elsner
1010Alejandro Z RoysterItaly2025-07-12Feiner Bros RENEWAL19Stephen Shaw
1011Murillo Y FigeroaGermany2025-07-07Truhlar And Truhlar Attys PROPOSAL98Bernardo Dominic
1012Leon W MarrierRussia2025-07-23King, Christopher A Esq PROPOSAL10Anna Fali
1013Rodrigues L ShinkoItaly2025-07-26Chapman, Ross E Esq PROPOSAL90Stephen Shaw
1014Costa D MaletAustralia2025-06-30King, Christopher A Esq RENEWAL67Elwin Sharvill
1015Emily H MaletBrazil2025-07-09King, Christopher A Esq NEW98Ivan Magalhaes
1016Wickens R ChuiCanada2025-07-22Feiner Bros NEW23Xuxue Feng
1017Cody L PerinSpain2025-07-09Benton, John B Jr PROPOSAL28Xuxue Feng
1018Aditya Q OldroydItaly2025-07-14Rangoni Of Florence QUALIFIED91Elwin Sharvill
1019Adams T TollnerUnited Kingdom2025-07-18Feltz Printing Service PROPOSAL62Asiya Javayant
1020Arvin T TollnerGermany2025-07-11Feiner Bros NEW31Asiya Javayant
1021Misaki W DoeBrazil2025-07-20Rangoni Of Florence NEW76Ioni Bowcher
1022Octavia S OstroskyAustralia2025-07-14Chemel, James L Cpa NEW49Ioni Bowcher
1023Jones J CaldareraUnited Kingdom2025-06-30Rangoni Of Florence NEGOTIATION78Asiya Javayant
1024Aditya L SaylorsJapan2025-07-07Rousseaux, Michael Esq PROPOSAL87Ivan Magalhaes
1025Deepesh X GlickArgentina2025-07-12Feltz Printing Service NEW84Ivan Magalhaes
1026Cody N WaycottUnited Kingdom2025-07-21Dorl, James J Esq RENEWAL85Ioni Bowcher
1027Wickens L StensethIndia2025-07-02Feiner Bros NEW12Amy Elsner
1028Julie Y PaprockiAustralia2025-07-20Feltz Printing Service NEW30Onyama Limba
1029Faith B OstroskyFrance2025-07-03Rousseaux, Michael Esq NEGOTIATION62Stephen Shaw
1030Johnson N GlickSpain2025-07-22Morlong Associates PROPOSAL76Xuxue Feng
1031Wickens D ButtAustralia2025-07-08Benton, John B Jr NEW76Onyama Limba
1032Cody Y NestleSpain2025-07-23Buckley Miller Wright NEW8Ioni Bowcher
1033Munro C WaycottSpain2025-07-15King, Christopher A Esq RENEWAL85Elwin Sharvill
1034Greenwood D InouyeGermany2025-07-25Rangoni Of Florence UNQUALIFIED64Xuxue Feng
1035Juan D FollerCanada2025-07-28King, Christopher A Esq PROPOSAL71Bernardo Dominic
1036Aika H SergiGermany2025-07-10Chemel, James L Cpa PROPOSAL87Ivan Magalhaes
1037Salvatore B VenereSpain2025-07-09Feiner Bros NEGOTIATION24Ioni Bowcher
1038Munro Z GillianUnited Kingdom2025-07-18Benton, John B Jr UNQUALIFIED70Anna Fali
1039Maisha B BologniaArgentina2025-07-21Rangoni Of Florence QUALIFIED82Amy Elsner
1040Claire J IturbideGermany2025-07-02Feltz Printing Service RENEWAL89Xuxue Feng
1041Juan S CampainRussia2025-07-01Rangoni Of Florence QUALIFIED6Ioni Bowcher
1042Alejandro B GarufiSpain2025-07-29Chapman, Ross E Esq QUALIFIED38Anna Fali
1043Jones Z SaylorsItaly2025-07-11Chemel, James L Cpa UNQUALIFIED57Ivan Magalhaes
1044Kaitlin G InouyeItaly2025-07-29Dorl, James J Esq RENEWAL36Bernardo Dominic
1045Mujtaba A MarrierAustralia2025-07-08Benton, John B Jr UNQUALIFIED42Asiya Javayant
1046Jennifer E FlosiCanada2025-07-16Morlong Associates UNQUALIFIED26Anna Fali
1047Francesco W DoeRussia2025-07-17Rangoni Of Florence UNQUALIFIED61Bernardo Dominic
1048Claire G NestleIndia2025-07-24Feltz Printing Service PROPOSAL31Bernardo Dominic
1049Francesco V SlusarskiJapan2025-07-01Chanay, Jeffrey A Esq NEW7Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Faith F BowleyIndiaXuxue Feng PROPOSAL
Ivar A StensethIndiaAsiya Javayant NEGOTIATION
Antonio C RulapaughBrazilStephen Shaw NEW
Nicolas I OstroskyJapanXuxue Feng NEGOTIATION
Tony U RimArgentinaXuxue Feng RENEWAL
Izzy B GarufiFranceElwin Sharvill RENEWAL
Jones X FlosiItalyIvan Magalhaes UNQUALIFIED
Mayumi X MarrierAustraliaXuxue Feng QUALIFIED
Stacey Q SchemmerFranceElwin Sharvill PROPOSAL
Aika B CaldareraGermanyOnyama Limba NEW
Izzy I TollnerArgentinaIoni Bowcher NEGOTIATION
Arvin L FollerItalyIvan Magalhaes RENEWAL
Costa Z RutaIndiaIvan Magalhaes RENEWAL
Julie F GarufiFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois P RulapaughIndiaBernardo Dominic QUALIFIED
Rodrigues S FollerJapanOnyama Limba QUALIFIED
Stacey M CaldareraCanadaBernardo Dominic NEGOTIATION
Jeanfrancois O CaudyUnited KingdomXuxue Feng PROPOSAL
Isabel P CampainFranceAsiya Javayant UNQUALIFIED
Murillo E InouyeSpainXuxue Feng RENEWAL
Izzy D StockhamAustraliaIvan Magalhaes QUALIFIED
Wickens H KolmetzGermanyIvan Magalhaes UNQUALIFIED
Ashley C CampainCanadaXuxue Feng RENEWAL
Maisha X PaprockiArgentinaElwin Sharvill QUALIFIED
Greenwood R FerenczSpainIoni Bowcher PROPOSAL
Francesco A StockhamRussiaAnna Fali QUALIFIED
Aruna T AlbaresRussiaXuxue Feng QUALIFIED
James S PaprockiJapanIoni Bowcher QUALIFIED
Isabel Y SaylorsSpainBernardo Dominic PROPOSAL
Faith X OldroydItalyIoni Bowcher UNQUALIFIED
Kaitlin O SchemmerBrazilOnyama Limba PROPOSAL
Alejandro Z RoysterUnited KingdomOnyama Limba QUALIFIED
Stacey X PerinArgentinaAmy Elsner UNQUALIFIED
Munro R DarakjySpainOnyama Limba UNQUALIFIED
Ivar Y ShinkoAustraliaAmy Elsner RENEWAL
Octavia T ShinkoAustraliaOnyama Limba NEGOTIATION
Kaitlin J CaudyJapanIvan Magalhaes NEW
Izzy A WhobreyIndiaXuxue Feng UNQUALIFIED
Cody P KuskoUnited KingdomElwin Sharvill RENEWAL
Izzy O SchemmerBrazilAsiya Javayant QUALIFIED
Emily X MarrierItalyIvan Magalhaes QUALIFIED
Wickens Z RimUnited KingdomAsiya Javayant PROPOSAL
Jefferson X AmigonUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois W KolmetzGermanyStephen Shaw QUALIFIED
Arvin D BologniaGermanyBernardo Dominic UNQUALIFIED
Nicolas W AmigonGermanyElwin Sharvill UNQUALIFIED
Adams X SergiSpainOnyama Limba NEGOTIATION
Emily J PerinCanadaAmy Elsner NEW
Alejandro G PoquetteCanadaXuxue Feng NEGOTIATION
Leon K KolmetzBrazilBernardo Dominic NEGOTIATION
Frozen Columns
Name
Izzy D Morasca
Stacey Y Rim
Chavez O Amigon
David X Whobrey
Kaitlin P Albares
Chavez U Whobrey
Aika F Royster
Isabel A Paprocki
Isabel D Saylors
Aika D Nestle
Adams Y Slusarski
Johnson W Nestle
Aruna F Glick
Aika Z Paprocki
Leja K Kusko
Jeanfrancois U Kusko
Emily A Venere
Izzy T Malet
Julie J Stockham
Leon B Morasca
Maria G Malet
Julie I Tollner
Ricardo R Flosi
Greenwood H Marrier
Morrow T Caudy
Maisha B Saylors
Leja F Darakjy
Alejandro J Bowley
Johnson D Bowley
Greenwood E Venere
Greenwood D Iturbide
Aika R Ostrosky
Claire D Morasca
Morrow R Slusarski
Faith C Schemmer
Misaki F Chui
Jeanfrancois Q Nestle
Silvio A Wieser
Juan U Malet
Claire J Malet
Aruna X Marrier
Alejandro U Ruta
Mujtaba Z Marrier
Murillo I Waycott
Murillo T Whobrey
Claire M Inouye
Ricardo X Stockham
Maisha X Perin
Ricardo D Nestle
Jennifer V Albares
IdCountryDate
1000Canada2025-07-12
1001Germany2025-07-14
1002Germany2025-07-05
1003Brazil2025-07-23
1004Japan2025-07-13
1005Italy2025-07-11
1006Australia2025-07-12
1007Brazil2025-07-25
1008Spain2025-07-20
1009Australia2025-07-13
1010Brazil2025-07-22
1011Argentina2025-07-05
1012India2025-07-25
1013India2025-07-27
1014Brazil2025-07-04
1015United Kingdom2025-07-08
1016Brazil2025-07-25
1017Australia2025-07-14
1018Japan2025-07-23
1019Argentina2025-07-21
1020Italy2025-07-05
1021India2025-06-30
1022India2025-07-18
1023Brazil2025-07-28
1024Germany2025-07-26
1025France2025-07-27
1026Canada2025-07-09
1027Japan2025-07-11
1028Germany2025-07-14
1029Argentina2025-07-04
1030Italy2025-07-04
1031Canada2025-07-21
1032United Kingdom2025-07-14
1033Australia2025-07-09
1034Canada2025-07-28
1035Japan2025-06-30
1036Brazil2025-07-21
1037Spain2025-07-27
1038Spain2025-07-29
1039Canada2025-07-17
1040Argentina2025-07-28
1041Australia2025-07-28
1042Brazil2025-07-10
1043India2025-07-19
1044France2025-07-21
1045Argentina2025-07-08
1046Australia2025-07-09
1047Russia2025-07-10
1048Argentina2025-06-30
1049United Kingdom2025-07-26

On-Demand Data

NameIdCountryDate
Isabel U Butt1000Argentina2025-07-18
Ashley I Dilliard1001Germany2025-07-06
Stacey H Nicka1002France2025-07-09
Jeanfrancois D Nestle1003Japan2025-07-27
Tony D Slusarski1004Italy2025-07-15
Alejandro R Marrier1005Spain2025-07-07
Darci K Royster1006Spain2025-07-20
Arvin T Whobrey1007Australia2025-07-24
Jefferson N Shinko1008Brazil2025-07-12
Chavez Y Butt1009France2025-07-10
Juan G Amigon1010Russia2025-07-05
Munro W Vocelka1011Spain2025-07-23
Kadeem H Figeroa1012Spain2025-07-03
Nicolas F Garufi1013France2025-07-06
Silvio A Venere1014Italy2025-07-21
Emily Y Ferencz1015Canada2025-07-20
Ricardo O Campain1016France2025-07-13
Chavez J Doe1017Argentina2025-07-24
Stacey S Ferencz1018Spain2025-07-18
Antonio A Bowley1019Russia2025-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria K BriddickUnited KingdomXuxue Feng QUALIFIED
Misaki H MaletBrazilElwin Sharvill UNQUALIFIED
Isabel Y InouyeJapanStephen Shaw NEGOTIATION
Munro Y CampainAustraliaElwin Sharvill NEW
Antonio V DilliardItalyIvan Magalhaes NEW
Salvatore V NickaAustraliaBernardo Dominic NEGOTIATION
Jones R MaletFranceBernardo Dominic NEW
Darci Q SaylorsBrazilXuxue Feng NEW
James A WieserRussiaIvan Magalhaes NEW
Clifford H IturbideGermanyOnyama Limba PROPOSAL
Claire Y BowleyJapanAsiya Javayant QUALIFIED
Maria Z SlusarskiItalyIvan Magalhaes NEW
Alejandro S ShinkoUnited KingdomIoni Bowcher RENEWAL
Murillo Y GauchoBrazilAmy Elsner NEW
Emily M NickaGermanyOnyama Limba PROPOSAL
Salvatore V OldroydUnited KingdomIvan Magalhaes NEGOTIATION
Murillo H DilliardSpainOnyama Limba QUALIFIED
Adams X MaletRussiaOnyama Limba NEW
Leja A WaycottCanadaAnna Fali PROPOSAL
Cody P VenereRussiaElwin Sharvill RENEWAL
Leon Q GillianAustraliaAnna Fali RENEWAL
Stacey N GillianUnited KingdomAmy Elsner PROPOSAL
Morrow N RulapaughBrazilIoni Bowcher QUALIFIED
Claire O InouyeAustraliaAnna Fali NEW
Tony G FollerArgentinaStephen Shaw RENEWAL
Mayumi X VocelkaSpainBernardo Dominic RENEWAL
Ricardo W FlosiSpainIoni Bowcher RENEWAL
Greenwood A MorascaItalyIvan Magalhaes NEW
Jennifer R PaprockiIndiaStephen Shaw NEGOTIATION
Smith C VocelkaRussiaOnyama Limba NEW
Smith M PerinCanadaAnna Fali PROPOSAL
Emily O RutaSpainXuxue Feng UNQUALIFIED
Misaki F WhobreyArgentinaAmy Elsner PROPOSAL
Tony B CaudyArgentinaIvan Magalhaes UNQUALIFIED
Juan F FigeroaIndiaBernardo Dominic NEGOTIATION
Mujtaba B AmigonRussiaAnna Fali NEGOTIATION
Arvin E CaldareraGermanyOnyama Limba NEW
Alejandro Z WaycottItalyAnna Fali RENEWAL
Johnson P CaldareraItalyXuxue Feng UNQUALIFIED
Arvin R MacleadBrazilAsiya Javayant RENEWAL

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