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 V FollerBrazilXuxue Feng QUALIFIED
Octavia T ButtArgentinaIvan Magalhaes PROPOSAL
Sinclair T PaprockiArgentinaStephen Shaw NEW
Salvatore E SaylorsUnited KingdomXuxue Feng NEGOTIATION
Ivar R DilliardGermanyIoni Bowcher QUALIFIED
Jefferson A InouyeFranceAnna Fali PROPOSAL
Stacey O OstroskyAustraliaIoni Bowcher NEGOTIATION
Ricardo Q MaletJapanOnyama Limba PROPOSAL
Arvin C MaletBrazilBernardo Dominic UNQUALIFIED
Kadeem I PoquetteJapanAsiya Javayant NEW
Sinclair F ChuiGermanyIoni Bowcher NEGOTIATION
Jeanfrancois U GarufiArgentinaAsiya Javayant NEW
Ashley X MacleadUnited KingdomAnna Fali PROPOSAL
Munro J OstroskyIndiaAmy Elsner NEGOTIATION
Isabel P BowleyUnited KingdomIoni Bowcher NEW
Aika Y BriddickFranceIvan Magalhaes NEGOTIATION
Jones X StensethJapanAsiya Javayant NEW
Arvin S DoeCanadaStephen Shaw QUALIFIED
Costa S VenereAustraliaAmy Elsner NEGOTIATION
Arvin E CampainItalyIoni Bowcher NEW
Maria X MorascaCanadaAnna Fali NEW
Stacey X OldroydIndiaOnyama Limba RENEWAL
Juan Z BologniaUnited KingdomXuxue Feng NEGOTIATION
Smith V CampainArgentinaAsiya Javayant NEW
Faith Z DoeCanadaIvan Magalhaes NEW
Ashley I CampainCanadaAnna Fali PROPOSAL
Cody N VenereCanadaIvan Magalhaes RENEWAL
Arvin V PoquetteAustraliaAsiya Javayant PROPOSAL
Francesco C DarakjyGermanyXuxue Feng NEGOTIATION
Isabel T BowleyRussiaBernardo Dominic RENEWAL
Adams D SchemmerCanadaIvan Magalhaes PROPOSAL
Silvio H TollnerGermanyAnna Fali UNQUALIFIED
Isabel R MaletSpainIoni Bowcher NEW
Kaitlin I WieserArgentinaIvan Magalhaes UNQUALIFIED
Johnson Q ChuiGermanyStephen Shaw QUALIFIED
Ricardo Z SchemmerJapanOnyama Limba RENEWAL
Rodrigues X IturbideSpainIvan Magalhaes RENEWAL
James P ShinkoRussiaAnna Fali NEGOTIATION
Deepesh K MorascaItalyBernardo Dominic NEGOTIATION
Nicolas T ShinkoAustraliaBernardo Dominic QUALIFIED
Wickens G PoquetteUnited KingdomOnyama Limba NEGOTIATION
Darci U MacleadBrazilAnna Fali UNQUALIFIED
Mujtaba D SaylorsArgentinaElwin Sharvill PROPOSAL
Francesco J PoquetteFranceAsiya Javayant NEGOTIATION
Adams R DarakjyFranceAmy Elsner PROPOSAL
Alejandro N IturbideFranceStephen Shaw NEGOTIATION
Morrow Y GauchoFranceElwin Sharvill NEGOTIATION
Jennifer O MaletJapanAmy Elsner QUALIFIED
Aditya D PoquetteBrazilIoni Bowcher UNQUALIFIED
Jefferson H CaldareraItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith F NestleAustraliaAmy Elsner NEGOTIATION
Jefferson Z MacleadItalyAmy Elsner RENEWAL
Leon U FlosiCanadaElwin Sharvill NEW
Darci I AmigonJapanAsiya Javayant QUALIFIED
Jeanfrancois O VenereUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore B BologniaSpainStephen Shaw NEW
Julie H CaldareraBrazilBernardo Dominic NEGOTIATION
Salvatore F CaldareraSpainAsiya Javayant RENEWAL
Faith Q CaudyRussiaXuxue Feng QUALIFIED
Alejandro B GillianIndiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo Q OstroskyFrance2025-05-31Feiner Bros UNQUALIFIED60Elwin Sharvill
1001Jones V RulapaughIndia2025-06-13Chapman, Ross E Esq PROPOSAL86Stephen Shaw
1002Deepesh F AlbaresBrazil2025-05-27Commercial Press RENEWAL43Ivan Magalhaes
1003Claire H RoysterSpain2025-06-11Morlong Associates NEW99Xuxue Feng
1004Munro P StockhamRussia2025-05-25Chemel, James L Cpa QUALIFIED89Onyama Limba
1005Misaki J NickaFrance2025-06-04Printing Dimensions UNQUALIFIED89Bernardo Dominic
1006Aditya E ButtBrazil2025-06-08Chemel, James L Cpa NEW75Anna Fali
1007Greenwood D VenereCanada2025-06-14Printing Dimensions NEW78Xuxue Feng
1008Jennifer L PaprockiArgentina2025-05-23Morlong Associates NEGOTIATION90Anna Fali
1009Mayumi K StensethCanada2025-06-03Feltz Printing Service QUALIFIED28Bernardo Dominic
1010Mayumi M WaycottBrazil2025-06-07Buckley Miller Wright NEGOTIATION18Ivan Magalhaes
1011Ashley U GillianFrance2025-06-13Rangoni Of Florence NEGOTIATION39Stephen Shaw
1012Aditya N SergiFrance2025-05-26Commercial Press UNQUALIFIED10Amy Elsner
1013Leja L MaletSpain2025-06-08Benton, John B Jr NEW69Ivan Magalhaes
1014Ivar F TollnerGermany2025-06-01King, Christopher A Esq QUALIFIED34Ioni Bowcher
1015Nicolas X RutaCanada2025-06-10King, Christopher A Esq UNQUALIFIED53Elwin Sharvill
1016Aditya C GauchoSpain2025-05-30Feiner Bros NEGOTIATION55Bernardo Dominic
1017Darci K WaycottFrance2025-06-08Feiner Bros NEGOTIATION18Elwin Sharvill
1018Aruna W SlusarskiBrazil2025-05-27Rousseaux, Michael Esq NEGOTIATION66Asiya Javayant
1019Kaitlin H FlosiBrazil2025-06-02Rousseaux, Michael Esq UNQUALIFIED69Ioni Bowcher
1020Morrow E RulapaughFrance2025-06-14Dorl, James J Esq PROPOSAL54Amy Elsner
1021Clifford K WieserJapan2025-06-01Chemel, James L Cpa NEW77Bernardo Dominic
1022Francesco F SlusarskiCanada2025-05-24Feiner Bros QUALIFIED67Ivan Magalhaes
1023Jones E MaletFrance2025-06-11Rangoni Of Florence NEW76Stephen Shaw
1024Rodrigues O OldroydIndia2025-05-21Commercial Press UNQUALIFIED54Ioni Bowcher
1025Maria B SlusarskiCanada2025-06-11Chapman, Ross E Esq NEGOTIATION12Amy Elsner
1026Sinclair P PaprockiArgentina2025-05-25Feltz Printing Service QUALIFIED13Xuxue Feng
1027Jones V IturbideRussia2025-06-10Feiner Bros UNQUALIFIED21Ivan Magalhaes
1028Silvio R StockhamRussia2025-06-10Truhlar And Truhlar Attys QUALIFIED81Asiya Javayant
1029Juan K CaudyGermany2025-05-22Commercial Press QUALIFIED54Ivan Magalhaes
1030Jennifer S OstroskyArgentina2025-06-02Feiner Bros UNQUALIFIED83Elwin Sharvill
1031Leja B TollnerArgentina2025-06-13Morlong Associates NEGOTIATION69Xuxue Feng
1032Darci I StockhamUnited Kingdom2025-05-23Buckley Miller Wright RENEWAL15Xuxue Feng
1033Jennifer M WieserRussia2025-06-02Buckley Miller Wright UNQUALIFIED3Ivan Magalhaes
1034Izzy Z NestleBrazil2025-06-17Chemel, James L Cpa RENEWAL6Ioni Bowcher
1035Leon Y GarufiItaly2025-06-13Rousseaux, Michael Esq UNQUALIFIED43Ioni Bowcher
1036Deepesh T MorascaAustralia2025-06-17Feltz Printing Service UNQUALIFIED63Ivan Magalhaes
1037Greenwood Q GlickFrance2025-06-01Benton, John B Jr PROPOSAL27Ioni Bowcher
1038Antonio E TollnerJapan2025-06-18Buckley Miller Wright QUALIFIED57Bernardo Dominic
1039Aruna D TollnerRussia2025-06-06Rangoni Of Florence PROPOSAL10Bernardo Dominic
1040Kadeem C ButtSpain2025-06-08Chemel, James L Cpa QUALIFIED56Ioni Bowcher
1041Nicolas E OldroydBrazil2025-06-18Printing Dimensions RENEWAL24Stephen Shaw
1042Ashley O SergiCanada2025-06-10Chanay, Jeffrey A Esq QUALIFIED75Bernardo Dominic
1043Octavia A MacleadUnited Kingdom2025-06-08Printing Dimensions NEGOTIATION99Ivan Magalhaes
1044Ashley S RoysterArgentina2025-06-10Truhlar And Truhlar Attys UNQUALIFIED34Xuxue Feng
1045Cody B RimArgentina2025-06-04Chapman, Ross E Esq NEGOTIATION31Anna Fali
1046Kaitlin V GlickAustralia2025-06-05Rangoni Of Florence NEGOTIATION90Onyama Limba
1047Faith R MarrierArgentina2025-06-06Dorl, James J Esq UNQUALIFIED52Ioni Bowcher
1048Juan C NickaAustralia2025-06-13Morlong Associates PROPOSAL88Ioni Bowcher
1049Stacey V ShinkoCanada2025-05-26Chanay, Jeffrey A Esq NEGOTIATION77Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio U BowleyJapanAmy Elsner RENEWAL
Sinclair F OldroydIndiaAsiya Javayant UNQUALIFIED
Maisha T KuskoArgentinaAnna Fali QUALIFIED
Costa C StensethRussiaAsiya Javayant PROPOSAL
David B MorascaBrazilElwin Sharvill NEGOTIATION
Alejandro G GauchoArgentinaAmy Elsner QUALIFIED
Julie H KuskoBrazilIvan Magalhaes UNQUALIFIED
David D KolmetzFranceAmy Elsner RENEWAL
Deepesh E PoquetteFranceIvan Magalhaes NEGOTIATION
Maisha U GlickFranceIoni Bowcher PROPOSAL
Johnson N WieserIndiaAnna Fali UNQUALIFIED
Arvin S VocelkaGermanyBernardo Dominic PROPOSAL
Smith V MorascaItalyOnyama Limba NEGOTIATION
Leja S GarufiCanadaBernardo Dominic UNQUALIFIED
Isabel C OstroskyRussiaAnna Fali UNQUALIFIED
Ricardo H DilliardRussiaBernardo Dominic PROPOSAL
Ricardo G MaletAustraliaXuxue Feng UNQUALIFIED
Aika K FigeroaGermanyIoni Bowcher RENEWAL
Aika O TollnerBrazilXuxue Feng PROPOSAL
Aika Y OldroydBrazilXuxue Feng RENEWAL
David L WhobreyItalyIvan Magalhaes NEW
Mujtaba K SergiJapanIvan Magalhaes PROPOSAL
Leja R CampainArgentinaAsiya Javayant RENEWAL
Julie A KolmetzAustraliaAnna Fali NEW
Morrow S MarrierUnited KingdomIvan Magalhaes QUALIFIED
Deepesh B ButtIndiaOnyama Limba NEW
Arvin Z InouyeGermanyOnyama Limba PROPOSAL
Ricardo U DarakjyItalyIvan Magalhaes NEW
Ashley N PoquetteRussiaAmy Elsner QUALIFIED
Clifford D RimCanadaAsiya Javayant RENEWAL
Sinclair C RoysterIndiaAnna Fali NEGOTIATION
Jones M PaprockiFranceAmy Elsner NEW
Mayumi L AmigonJapanBernardo Dominic NEGOTIATION
Julie H OldroydSpainBernardo Dominic PROPOSAL
Aditya T ChuiGermanyAsiya Javayant RENEWAL
Aditya H NestleBrazilBernardo Dominic PROPOSAL
Alejandro W MacleadIndiaIoni Bowcher UNQUALIFIED
Ricardo I TollnerItalyAmy Elsner NEGOTIATION
Rodrigues N VocelkaSpainBernardo Dominic RENEWAL
Stacey I CaudyUnited KingdomIoni Bowcher RENEWAL
Murillo T ChuiUnited KingdomAsiya Javayant PROPOSAL
Leon K FlosiBrazilAnna Fali UNQUALIFIED
Leja Q StockhamBrazilIvan Magalhaes NEW
Arvin N SaylorsFranceAmy Elsner NEW
Aditya F OstroskySpainElwin Sharvill RENEWAL
Cody M WhobreyIndiaBernardo Dominic NEGOTIATION
Octavia U BriddickGermanyIoni Bowcher NEW
Munro N OstroskyIndiaOnyama Limba RENEWAL
Rodrigues A RoysterCanadaBernardo Dominic QUALIFIED
Tony K AmigonUnited KingdomOnyama Limba PROPOSAL
Frozen Columns
Name
Aika X Ostrosky
Misaki O Kolmetz
Aika F Iturbide
Jones Y Wieser
Emily N Amigon
Adams J Marrier
Octavia Y Venere
Izzy R Morasca
Aditya B Briddick
Izzy Z Ferencz
Faith G Saylors
Isabel J Caudy
Francesco I Stenseth
Leja K Butt
Adams W Saylors
Adams O Schemmer
Wickens Q Briddick
Adams W Flosi
Jennifer Q Flosi
Jeanfrancois C Caudy
Murillo I Paprocki
Salvatore N Maclead
Aruna M Figeroa
Salvatore D Campain
Ricardo Y Stockham
Mujtaba L Morasca
Chavez O Caldarera
Antonio O Dilliard
Claire U Malet
Emily A Garufi
Mayumi N Stockham
Johnson K Bowley
Greenwood J Schemmer
Stacey M Marrier
Aruna U Stockham
Ashley J Dilliard
Kaitlin G Malet
Francesco Z Marrier
Munro S Figeroa
Isabel Q Ostrosky
Arvin K Slusarski
Isabel E Bolognia
James A Kolmetz
Wickens T Tollner
Isabel E Ferencz
Silvio U Briddick
Claire O Rim
Jeanfrancois R Perin
Aditya F Glick
Smith Z Garufi
IdCountryDate
1000Italy2025-06-19
1001Argentina2025-05-28
1002India2025-05-24
1003Russia2025-06-17
1004Russia2025-06-08
1005Australia2025-06-02
1006United Kingdom2025-06-16
1007Australia2025-05-24
1008India2025-06-11
1009Canada2025-05-30
1010Italy2025-06-13
1011Australia2025-05-24
1012Spain2025-05-28
1013Australia2025-05-25
1014Argentina2025-06-04
1015India2025-06-18
1016Italy2025-05-29
1017Australia2025-06-14
1018Brazil2025-05-27
1019Russia2025-05-31
1020Argentina2025-06-13
1021France2025-05-24
1022Canada2025-06-14
1023Spain2025-06-19
1024Italy2025-06-09
1025Australia2025-06-15
1026Brazil2025-05-22
1027Australia2025-05-29
1028Germany2025-05-27
1029India2025-06-06
1030United Kingdom2025-06-02
1031India2025-05-25
1032Italy2025-06-12
1033Germany2025-05-28
1034India2025-05-28
1035India2025-06-12
1036France2025-06-04
1037France2025-06-02
1038France2025-06-14
1039Russia2025-06-10
1040Canada2025-05-21
1041Canada2025-06-05
1042Spain2025-05-30
1043Italy2025-06-12
1044Russia2025-06-16
1045Canada2025-05-23
1046France2025-06-07
1047Argentina2025-06-03
1048Russia2025-05-28
1049Italy2025-06-11

On-Demand Data

NameIdCountryDate
Izzy G Ferencz1000Canada2025-06-01
Claire P Figeroa1001Canada2025-05-25
Nicolas U Kusko1002Argentina2025-06-17
David M Royster1003France2025-06-08
Silvio S Briddick1004Germany2025-06-14
Johnson L Saylors1005United Kingdom2025-05-22
Salvatore H Doe1006France2025-06-02
Misaki C Malet1007Brazil2025-05-25
Smith X Briddick1008Australia2025-06-12
Chavez Z Marrier1009United Kingdom2025-06-03
Mayumi R Caudy1010India2025-06-17
David Y Nestle1011France2025-05-28
Izzy M Waycott1012Canada2025-05-23
Claire S Briddick1013United Kingdom2025-06-12
David P Albares1014Italy2025-05-24
Mujtaba B Ruta1015Italy2025-06-19
James Z Venere1016Germany2025-06-14
Jeanfrancois T Campain1017United Kingdom2025-06-06
Misaki Z Figeroa1018Germany2025-06-05
Smith H Figeroa1019Italy2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki Q GauchoRussiaAsiya Javayant QUALIFIED
Maisha Y PerinFranceOnyama Limba PROPOSAL
Morrow N GarufiFranceBernardo Dominic QUALIFIED
Arvin V MorascaCanadaAmy Elsner NEGOTIATION
Adams C MaletIndiaAnna Fali NEGOTIATION
Tony R KolmetzCanadaXuxue Feng PROPOSAL
Jeanfrancois W RulapaughJapanOnyama Limba NEW
Julie Z MaletFranceStephen Shaw UNQUALIFIED
Aika D SlusarskiIndiaXuxue Feng NEW
Antonio A RulapaughGermanyAmy Elsner NEW
Alejandro I PaprockiUnited KingdomOnyama Limba NEGOTIATION
Arvin C PoquetteArgentinaAmy Elsner NEGOTIATION
Jefferson C PoquetteGermanyAnna Fali UNQUALIFIED
Mayumi X GlickAustraliaIoni Bowcher RENEWAL
Adams M MarrierGermanyXuxue Feng UNQUALIFIED
Ivar T OldroydIndiaXuxue Feng UNQUALIFIED
Aika L StensethBrazilAnna Fali NEGOTIATION
Stacey B FerenczItalyElwin Sharvill NEW
Julie S DarakjyJapanAnna Fali NEW
Mayumi R RimSpainIoni Bowcher QUALIFIED
Alejandro D MarrierArgentinaStephen Shaw NEW
Faith T GarufiBrazilStephen Shaw PROPOSAL
Rodrigues C AmigonArgentinaOnyama Limba PROPOSAL
Aditya V AmigonUnited KingdomStephen Shaw QUALIFIED
Costa V CaudyCanadaOnyama Limba NEGOTIATION
Claire C RoysterItalyStephen Shaw RENEWAL
Wickens L KuskoBrazilBernardo Dominic NEW
Arvin U CaudyJapanXuxue Feng UNQUALIFIED
Aika V MaletCanadaAmy Elsner PROPOSAL
Alejandro A ButtCanadaAmy Elsner RENEWAL
Nicolas K VenereRussiaStephen Shaw PROPOSAL
Isabel T MarrierAustraliaAsiya Javayant NEW
Arvin E GauchoCanadaElwin Sharvill NEW
Ashley R SlusarskiGermanyElwin Sharvill QUALIFIED
Jeanfrancois L GauchoArgentinaAmy Elsner NEGOTIATION
Mujtaba U OldroydAustraliaAsiya Javayant RENEWAL
Murillo F VocelkaAustraliaOnyama Limba QUALIFIED
Maisha T CampainIndiaOnyama Limba QUALIFIED
Adams V ChuiUnited KingdomAsiya Javayant RENEWAL
Leja H NickaUnited KingdomElwin Sharvill 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>