Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Kadeem I WhobreySpainBernardo Dominic PROPOSAL
Jeanfrancois C NestleUnited KingdomAnna Fali PROPOSAL
Rodrigues Q DarakjyArgentinaOnyama Limba QUALIFIED
Greenwood S OstroskyAustraliaAsiya Javayant UNQUALIFIED
Aika M SlusarskiItalyAnna Fali PROPOSAL
Kadeem L CaldareraJapanIvan Magalhaes NEGOTIATION
Izzy O DoeSpainElwin Sharvill UNQUALIFIED
Nicolas V SlusarskiUnited KingdomAnna Fali PROPOSAL
Salvatore F CaudySpainIvan Magalhaes NEGOTIATION
Jeanfrancois R RoysterArgentinaStephen Shaw RENEWAL
Mayumi D InouyeCanadaXuxue Feng RENEWAL
Mayumi N TollnerGermanyBernardo Dominic NEGOTIATION
Jefferson W FigeroaCanadaStephen Shaw UNQUALIFIED
Izzy T FigeroaIndiaElwin Sharvill PROPOSAL
Chavez I AmigonBrazilXuxue Feng PROPOSAL
Morrow G SchemmerIndiaAmy Elsner NEGOTIATION
Cody J MaletFranceIvan Magalhaes RENEWAL
Jones S StockhamItalyAmy Elsner QUALIFIED
Arvin U OstroskyJapanElwin Sharvill UNQUALIFIED
Misaki F FollerGermanyXuxue Feng NEGOTIATION
Sinclair V WhobreyJapanBernardo Dominic NEW
Murillo K GlickGermanyOnyama Limba UNQUALIFIED
Smith U MaletBrazilIoni Bowcher NEGOTIATION
Leon H GarufiGermanyAnna Fali QUALIFIED
Ricardo Q OstroskyJapanStephen Shaw RENEWAL
Darci Y ButtBrazilAnna Fali NEW
Mayumi Q DilliardBrazilStephen Shaw UNQUALIFIED
Chavez S WhobreySpainElwin Sharvill NEGOTIATION
Jeanfrancois J SergiArgentinaIvan Magalhaes NEGOTIATION
Chavez F VocelkaCanadaStephen Shaw QUALIFIED
Juan A NickaSpainXuxue Feng UNQUALIFIED
Munro I DarakjyCanadaOnyama Limba UNQUALIFIED
Claire V FlosiBrazilAnna Fali PROPOSAL
Jones N RoysterSpainBernardo Dominic NEW
Jennifer X VenereAustraliaAnna Fali RENEWAL
Silvio Y FigeroaSpainAmy Elsner NEW
Ricardo S AlbaresIndiaOnyama Limba PROPOSAL
Jeanfrancois Q ChuiArgentinaBernardo Dominic NEGOTIATION
Morrow Z CampainAustraliaIvan Magalhaes QUALIFIED
Claire V AmigonCanadaAnna Fali QUALIFIED
Isabel B StockhamIndiaAmy Elsner NEW
Munro H VenereCanadaOnyama Limba RENEWAL
Costa W ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Octavia J CaudyIndiaElwin Sharvill NEW
Aruna S StockhamRussiaBernardo Dominic UNQUALIFIED
Emily E DoeAustraliaAsiya Javayant RENEWAL
Leja M AlbaresUnited KingdomOnyama Limba NEGOTIATION
Jennifer L VenereArgentinaXuxue Feng QUALIFIED
Chavez I CaldareraCanadaElwin Sharvill NEGOTIATION
Ricardo W DilliardRussiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aruna D ChuiGermanyOnyama Limba NEW
Emily X KolmetzUnited KingdomAnna Fali RENEWAL
Francesco D RulapaughCanadaOnyama Limba UNQUALIFIED
Francesco A DilliardAustraliaBernardo Dominic NEW
Rodrigues Z DilliardJapanAmy Elsner UNQUALIFIED
Clifford E FollerRussiaAsiya Javayant PROPOSAL
Misaki S PoquetteJapanXuxue Feng RENEWAL
Juan W CampainItalyAmy Elsner PROPOSAL
Sinclair Z SaylorsUnited KingdomXuxue Feng RENEWAL
Izzy C VocelkaAustraliaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria Z BriddickRussia2024-04-03Feiner Bros NEGOTIATION37Ivan Magalhaes
1001Rodrigues K VenereCanada2024-04-10Chemel, James L Cpa NEW79Ioni Bowcher
1002Jones E NickaSpain2024-04-15Buckley Miller Wright QUALIFIED19Bernardo Dominic
1003Leja K GauchoIndia2024-04-24Benton, John B Jr UNQUALIFIED36Onyama Limba
1004Kaitlin U NestleUnited Kingdom2024-04-08Truhlar And Truhlar Attys PROPOSAL29Amy Elsner
1005Leja C MorascaIndia2024-04-23Rangoni Of Florence NEW51Elwin Sharvill
1006Aruna L TollnerIndia2024-04-03Truhlar And Truhlar Attys NEGOTIATION20Amy Elsner
1007Salvatore J IturbideArgentina2024-04-16Feltz Printing Service QUALIFIED31Ivan Magalhaes
1008Ricardo U GlickIndia2024-04-24Feltz Printing Service RENEWAL25Onyama Limba
1009Munro O InouyeIndia2024-04-09Chanay, Jeffrey A Esq NEGOTIATION42Amy Elsner
1010Mayumi E SaylorsArgentina2024-04-01Morlong Associates RENEWAL18Xuxue Feng
1011Kaitlin M GarufiSpain2024-04-05Truhlar And Truhlar Attys NEGOTIATION6Xuxue Feng
1012Kaitlin T AlbaresArgentina2024-04-02Buckley Miller Wright PROPOSAL39Asiya Javayant
1013Salvatore T VocelkaSpain2024-04-30Morlong Associates UNQUALIFIED43Anna Fali
1014Wickens X SchemmerCanada2024-04-02Buckley Miller Wright NEGOTIATION52Onyama Limba
1015Misaki F GarufiUnited Kingdom2024-04-17Rousseaux, Michael Esq QUALIFIED98Anna Fali
1016Rodrigues S VocelkaSpain2024-04-12Chemel, James L Cpa NEGOTIATION48Ivan Magalhaes
1017Maisha V SlusarskiArgentina2024-04-18Chapman, Ross E Esq NEGOTIATION55Onyama Limba
1018Salvatore A RimGermany2024-04-23Chapman, Ross E Esq NEW69Onyama Limba
1019Greenwood P CaldareraJapan2024-04-06Chapman, Ross E Esq RENEWAL68Bernardo Dominic
1020Tony Y FlosiSpain2024-04-01Rangoni Of Florence QUALIFIED77Elwin Sharvill
1021Nicolas E CampainIndia2024-04-03Buckley Miller Wright RENEWAL28Ivan Magalhaes
1022Nicolas T IturbideJapan2024-04-14Rousseaux, Michael Esq RENEWAL18Bernardo Dominic
1023Deepesh U PaprockiUnited Kingdom2024-04-06Dorl, James J Esq NEGOTIATION74Stephen Shaw
1024Morrow C WhobreyArgentina2024-04-27Chapman, Ross E Esq NEGOTIATION46Anna Fali
1025Nicolas H WaycottIndia2024-04-14King, Christopher A Esq NEW26Amy Elsner
1026Emily Y InouyeIndia2024-04-18Feiner Bros NEGOTIATION6Anna Fali
1027Faith Z AmigonCanada2024-04-15Truhlar And Truhlar Attys QUALIFIED89Ivan Magalhaes
1028Misaki V VocelkaRussia2024-04-01Chapman, Ross E Esq PROPOSAL61Onyama Limba
1029Ashley F OldroydRussia2024-04-22Printing Dimensions RENEWAL12Xuxue Feng
1030Jones X OldroydRussia2024-04-03Buckley Miller Wright PROPOSAL82Asiya Javayant
1031Salvatore X SaylorsItaly2024-04-02Feltz Printing Service NEGOTIATION71Ivan Magalhaes
1032Antonio Q StensethItaly2024-04-21Printing Dimensions QUALIFIED27Ivan Magalhaes
1033Nicolas Q GauchoArgentina2024-04-06Morlong Associates QUALIFIED1Stephen Shaw
1034Mujtaba L RulapaughItaly2024-04-05King, Christopher A Esq QUALIFIED12Bernardo Dominic
1035Smith D MacleadRussia2024-04-16Benton, John B Jr RENEWAL34Onyama Limba
1036Faith W WieserArgentina2024-04-13Printing Dimensions UNQUALIFIED61Ioni Bowcher
1037Munro C ShinkoJapan2024-04-29King, Christopher A Esq UNQUALIFIED97Xuxue Feng
1038Wickens T FigeroaGermany2024-04-09Benton, John B Jr PROPOSAL38Amy Elsner
1039Aruna G GlickGermany2024-04-23Benton, John B Jr UNQUALIFIED85Onyama Limba
1040Julie Z PaprockiBrazil2024-04-29Feiner Bros NEGOTIATION16Onyama Limba
1041Kaitlin L NickaAustralia2024-04-19Benton, John B Jr NEW71Asiya Javayant
1042Jones T DilliardJapan2024-04-12Dorl, James J Esq QUALIFIED66Onyama Limba
1043Cody R ChuiArgentina2024-04-18Feltz Printing Service NEW54Bernardo Dominic
1044Rodrigues H BologniaJapan2024-04-22Rangoni Of Florence QUALIFIED8Onyama Limba
1045Jeanfrancois Q BriddickItaly2024-04-24Buckley Miller Wright QUALIFIED47Bernardo Dominic
1046Mayumi L InouyeAustralia2024-04-14King, Christopher A Esq UNQUALIFIED26Bernardo Dominic
1047Nicolas R KolmetzBrazil2024-04-27Buckley Miller Wright NEGOTIATION82Anna Fali
1048Emily D KolmetzSpain2024-04-08Morlong Associates UNQUALIFIED52Amy Elsner
1049Darci D PaprockiItaly2024-04-14Buckley Miller Wright RENEWAL22Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro H MarrierRussiaAmy Elsner UNQUALIFIED
Arvin U KolmetzItalyXuxue Feng QUALIFIED
David Y GauchoItalyAmy Elsner UNQUALIFIED
Emily B SaylorsFranceIvan Magalhaes UNQUALIFIED
Wickens V NestleItalyBernardo Dominic RENEWAL
Johnson W NestleJapanIoni Bowcher UNQUALIFIED
Chavez B ShinkoBrazilIvan Magalhaes NEW
Izzy X DoeAustraliaOnyama Limba QUALIFIED
Tony B PoquetteCanadaAmy Elsner NEW
Stacey I WhobreyItalyAnna Fali UNQUALIFIED
James F RutaItalyOnyama Limba RENEWAL
Ashley W AmigonJapanAsiya Javayant UNQUALIFIED
Arvin O MorascaArgentinaOnyama Limba NEGOTIATION
Leja R CampainIndiaStephen Shaw RENEWAL
Kadeem K BologniaUnited KingdomElwin Sharvill NEW
Misaki Y DilliardIndiaAmy Elsner UNQUALIFIED
Octavia Z SlusarskiArgentinaStephen Shaw UNQUALIFIED
James F PoquetteArgentinaIoni Bowcher NEGOTIATION
Kaitlin F FlosiItalyStephen Shaw PROPOSAL
Darci F CampainIndiaIvan Magalhaes PROPOSAL
Juan S SergiAustraliaXuxue Feng PROPOSAL
Ivar L GauchoCanadaIoni Bowcher RENEWAL
Jennifer E FerenczIndiaBernardo Dominic NEW
Tony U ButtGermanyAsiya Javayant QUALIFIED
Morrow R RulapaughGermanyIvan Magalhaes UNQUALIFIED
Silvio S ButtRussiaXuxue Feng NEGOTIATION
Clifford E CaldareraItalyOnyama Limba PROPOSAL
David Y GlickGermanyBernardo Dominic NEGOTIATION
Salvatore W PoquetteIndiaXuxue Feng NEGOTIATION
Maisha V ShinkoJapanAnna Fali RENEWAL
Alejandro U WhobreySpainStephen Shaw RENEWAL
Clifford Y RutaSpainStephen Shaw PROPOSAL
Faith E RutaGermanyIvan Magalhaes PROPOSAL
Sinclair Q VocelkaCanadaElwin Sharvill NEW
Jones M PoquetteItalyAnna Fali UNQUALIFIED
Isabel V BriddickArgentinaIoni Bowcher UNQUALIFIED
Aruna Z TollnerCanadaIoni Bowcher UNQUALIFIED
Leja E MacleadGermanyAmy Elsner NEGOTIATION
Octavia J SchemmerBrazilBernardo Dominic RENEWAL
Mujtaba Q AlbaresFranceAnna Fali NEGOTIATION
Sinclair G StensethBrazilOnyama Limba NEW
James F MacleadItalyElwin Sharvill PROPOSAL
Aditya A PoquetteSpainStephen Shaw RENEWAL
Wickens S StockhamRussiaXuxue Feng QUALIFIED
Faith V DilliardFranceAmy Elsner NEGOTIATION
Murillo M DoeAustraliaXuxue Feng UNQUALIFIED
Jefferson O ShinkoGermanyAsiya Javayant NEW
Munro F MacleadIndiaIoni Bowcher RENEWAL
Munro T RoysterRussiaStephen Shaw RENEWAL
Kadeem S CaudyRussiaOnyama Limba QUALIFIED
Frozen Columns
Name
Leja A Saylors
Sinclair S Waycott
Francesco L Morasca
James N Malet
Aruna A Darakjy
Chavez O Kolmetz
Leon K Gillian
Clifford Q Venere
Leon B Briddick
Mayumi V Vocelka
Ivar Z Nicka
Isabel I Schemmer
Leja G Rulapaugh
Jeanfrancois X Nicka
Mujtaba J Inouye
Misaki S Wieser
David L Schemmer
Aditya Y Glick
Emily Y Ruta
Ricardo Z Glick
Munro R Foller
Alejandro G Vocelka
Greenwood R Sergi
Rodrigues G Kolmetz
Silvio O Briddick
Costa F Garufi
Octavia O Stockham
Maisha I Waycott
Jefferson P Albares
Maria E Slusarski
David B Whobrey
Alejandro G Doe
Sinclair M Stenseth
Ivar P Bowley
Francesco P Vocelka
Ivar O Sergi
Julie O Wieser
Wickens N Darakjy
Jeanfrancois L Royster
Deepesh I Bolognia
Francesco S Ostrosky
Rodrigues W Caudy
Maisha J Stockham
Ricardo B Ferencz
Julie B Saylors
Misaki T Bowley
Kadeem V Vocelka
Wickens K Wieser
Alejandro J Whobrey
Wickens O Albares
IdCountryDate
1000Brazil2024-04-14
1001India2024-04-12
1002United Kingdom2024-04-01
1003Russia2024-04-17
1004Spain2024-04-08
1005Canada2024-04-11
1006Spain2024-04-23
1007Russia2024-04-28
1008Canada2024-04-02
1009India2024-04-07
1010Argentina2024-04-29
1011Germany2024-04-10
1012Russia2024-04-14
1013Russia2024-04-28
1014Canada2024-04-07
1015Italy2024-04-14
1016Russia2024-04-26
1017Australia2024-04-12
1018Canada2024-04-22
1019Argentina2024-04-06
1020Spain2024-04-13
1021United Kingdom2024-04-03
1022Italy2024-04-23
1023Spain2024-04-11
1024Germany2024-04-18
1025Spain2024-04-10
1026Spain2024-04-27
1027Argentina2024-04-27
1028Australia2024-04-02
1029United Kingdom2024-04-22
1030Argentina2024-04-22
1031France2024-04-08
1032India2024-04-04
1033India2024-04-19
1034France2024-04-05
1035France2024-04-07
1036Australia2024-04-24
1037India2024-04-13
1038Spain2024-04-14
1039Japan2024-04-20
1040Brazil2024-04-28
1041Italy2024-04-30
1042Brazil2024-04-09
1043India2024-04-05
1044India2024-04-12
1045Germany2024-04-16
1046United Kingdom2024-04-25
1047Germany2024-04-01
1048Australia2024-04-29
1049Germany2024-04-26

On-Demand Data

NameIdCountryDate
Mujtaba O Iturbide1000Spain2024-04-14
Greenwood C Caudy1001Argentina2024-04-23
Johnson D Malet1002India2024-04-10
Ricardo Q Waycott1003Brazil2024-04-22
Chavez W Venere1004Brazil2024-04-23
Johnson K Nestle1005Spain2024-04-21
Sinclair Y Oldroyd1006Spain2024-04-09
Octavia T Stenseth1007Russia2024-04-21
Octavia L Rim1008Australia2024-04-06
Mayumi S Royster1009Canada2024-04-06
Rodrigues Z Kusko1010Australia2024-04-17
David F Malet1011United Kingdom2024-04-17
Kaitlin S Stenseth1012Spain2024-04-12
Isabel U Stockham1013India2024-04-03
Munro D Iturbide1014India2024-04-10
Alejandro V Gaucho1015Canada2024-04-05
Jennifer Y Waycott1016Spain2024-04-03
Greenwood B Venere1017Germany2024-04-30
Jones R Caudy1018Canada2024-04-24
Nicolas Y Iturbide1019Japan2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James P SaylorsFranceIvan Magalhaes PROPOSAL
Alejandro N WaycottIndiaAsiya Javayant QUALIFIED
Aruna S InouyeSpainBernardo Dominic PROPOSAL
Mujtaba Q FlosiFranceIoni Bowcher PROPOSAL
Smith B BriddickJapanStephen Shaw UNQUALIFIED
Ivar W OstroskyItalyBernardo Dominic PROPOSAL
Alejandro N PerinUnited KingdomBernardo Dominic PROPOSAL
Darci O VocelkaAustraliaXuxue Feng QUALIFIED
Aika M NickaArgentinaAmy Elsner QUALIFIED
Arvin M AlbaresAustraliaAnna Fali PROPOSAL
Cody S GlickArgentinaAnna Fali NEW
Wickens Z SaylorsItalyElwin Sharvill UNQUALIFIED
Johnson K ShinkoFranceOnyama Limba UNQUALIFIED
Smith Q KuskoAustraliaAnna Fali PROPOSAL
Kaitlin E NickaGermanyBernardo Dominic PROPOSAL
Alejandro R CampainIndiaIvan Magalhaes RENEWAL
Stacey C OstroskyIndiaElwin Sharvill RENEWAL
Maria V SaylorsRussiaXuxue Feng NEW
Misaki E PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Mayumi Y WaycottRussiaAnna Fali RENEWAL
Ricardo C OstroskyJapanOnyama Limba NEGOTIATION
Smith Z GauchoRussiaIvan Magalhaes NEGOTIATION
Adams M PaprockiFranceXuxue Feng NEW
Jeanfrancois Y OstroskyAustraliaAnna Fali NEGOTIATION
Maria P DilliardJapanOnyama Limba NEW
Adams B PoquetteBrazilAmy Elsner QUALIFIED
Izzy M KuskoGermanyAnna Fali NEW
Johnson J NickaSpainAsiya Javayant NEW
Rodrigues F SlusarskiBrazilBernardo Dominic NEW
Jeanfrancois O RulapaughSpainOnyama Limba NEW
Costa S PerinArgentinaElwin Sharvill RENEWAL
Arvin Z IturbideAustraliaIoni Bowcher NEW
Silvio R RutaArgentinaIoni Bowcher NEW
Murillo V MorascaFranceOnyama Limba UNQUALIFIED
Octavia J MorascaCanadaStephen Shaw NEW
Kaitlin O SchemmerAustraliaAsiya Javayant NEW
Ivar P FigeroaCanadaElwin Sharvill PROPOSAL
Jefferson W SergiGermanyIoni Bowcher QUALIFIED
Ricardo I OstroskyCanadaXuxue Feng RENEWAL
Wickens W BowleyGermanyStephen Shaw QUALIFIED

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