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

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

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

Vertical
NameCountryRepresentativeStatus
Costa O ShinkoFranceAmy Elsner NEW
Smith M OstroskySpainOnyama Limba NEW
Julie U OldroydGermanyElwin Sharvill NEW
Cody W CampainBrazilAmy Elsner QUALIFIED
Arvin W SergiRussiaIoni Bowcher NEW
Antonio V AlbaresGermanyBernardo Dominic NEGOTIATION
Maria W DilliardCanadaIvan Magalhaes NEW
Johnson K DilliardItalyXuxue Feng QUALIFIED
Costa R DoeArgentinaAnna Fali PROPOSAL
Smith M PaprockiItalyElwin Sharvill QUALIFIED
Munro U ShinkoAustraliaStephen Shaw NEW
Munro S DilliardSpainElwin Sharvill RENEWAL
Jones T PaprockiRussiaElwin Sharvill RENEWAL
Jones X TollnerCanadaBernardo Dominic NEGOTIATION
Clifford X GauchoFranceBernardo Dominic QUALIFIED
Francesco X FerenczFranceAsiya Javayant NEW
Jennifer W VenereAustraliaElwin Sharvill NEW
Jefferson G MorascaBrazilAnna Fali RENEWAL
Faith O OstroskyFranceIoni Bowcher NEW
Izzy U RoysterBrazilBernardo Dominic RENEWAL
Alejandro Y FigeroaJapanElwin Sharvill NEW
Antonio W BologniaAustraliaAsiya Javayant NEW
Mayumi P StockhamAustraliaOnyama Limba NEW
Francesco D NickaArgentinaIoni Bowcher NEGOTIATION
Juan M OldroydBrazilAnna Fali PROPOSAL
Arvin P NickaBrazilIoni Bowcher NEW
Jennifer H ChuiUnited KingdomXuxue Feng PROPOSAL
Mujtaba X WhobreyFranceElwin Sharvill PROPOSAL
Arvin U FlosiGermanyIoni Bowcher QUALIFIED
Costa R VenereCanadaXuxue Feng RENEWAL
Emily A DilliardJapanAnna Fali NEW
Claire G WhobreyItalyElwin Sharvill RENEWAL
Jennifer T DoeCanadaAsiya Javayant QUALIFIED
Leja N FerenczSpainStephen Shaw UNQUALIFIED
Alejandro C CaudySpainAsiya Javayant NEW
Maria U SergiIndiaElwin Sharvill RENEWAL
Costa X AmigonGermanyStephen Shaw NEGOTIATION
Clifford A ChuiSpainXuxue Feng PROPOSAL
Morrow Z SchemmerJapanStephen Shaw UNQUALIFIED
Kadeem W StensethCanadaIvan Magalhaes NEW
Arvin I NickaCanadaBernardo Dominic RENEWAL
Johnson K CaudyBrazilElwin Sharvill PROPOSAL
Juan K BriddickIndiaOnyama Limba PROPOSAL
Emily W CaldareraFranceAsiya Javayant QUALIFIED
Murillo F StensethIndiaBernardo Dominic NEGOTIATION
Claire U KuskoUnited KingdomIoni Bowcher NEGOTIATION
Alejandro G OstroskyArgentinaStephen Shaw RENEWAL
Kaitlin D AlbaresCanadaStephen Shaw QUALIFIED
Stacey J FerenczUnited KingdomAnna Fali PROPOSAL
Julie U FlosiUnited KingdomXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro U KolmetzRussiaElwin Sharvill NEW
Aditya O RulapaughCanadaXuxue Feng NEW
Jennifer G DilliardFranceStephen Shaw PROPOSAL
Tony J DilliardCanadaXuxue Feng NEW
Chavez B NestleBrazilBernardo Dominic NEGOTIATION
James A CaudySpainElwin Sharvill PROPOSAL
Jennifer W ShinkoBrazilStephen Shaw RENEWAL
James D RutaGermanyOnyama Limba RENEWAL
Antonio G StensethGermanyBernardo Dominic NEGOTIATION
Morrow N KolmetzIndiaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar B RulapaughAustralia2025-05-30Rousseaux, Michael Esq NEGOTIATION97Elwin Sharvill
1001Murillo L VocelkaFrance2025-05-31Buckley Miller Wright PROPOSAL6Elwin Sharvill
1002Jones Q OldroydJapan2025-06-01Benton, John B Jr NEW53Ioni Bowcher
1003Antonio K DarakjyIndia2025-06-08Truhlar And Truhlar Attys NEW12Anna Fali
1004Leja D StockhamIndia2025-05-31Morlong Associates QUALIFIED23Stephen Shaw
1005Jefferson X PoquetteJapan2025-05-22Dorl, James J Esq UNQUALIFIED72Asiya Javayant
1006Rodrigues E GarufiIndia2025-05-25Printing Dimensions UNQUALIFIED5Xuxue Feng
1007Claire M ButtItaly2025-05-19Rangoni Of Florence RENEWAL88Ivan Magalhaes
1008Silvio Y ChuiFrance2025-06-01Buckley Miller Wright UNQUALIFIED72Asiya Javayant
1009Kadeem T ShinkoBrazil2025-06-09Chapman, Ross E Esq QUALIFIED55Ivan Magalhaes
1010Murillo C OstroskyIndia2025-06-09Feiner Bros PROPOSAL45Ioni Bowcher
1011Deepesh W WaycottJapan2025-06-13Chemel, James L Cpa NEW31Anna Fali
1012Isabel B WhobreyUnited Kingdom2025-06-06Printing Dimensions RENEWAL45Stephen Shaw
1013Emily D WhobreySpain2025-06-06Commercial Press QUALIFIED98Anna Fali
1014Deepesh B WhobreyBrazil2025-06-04Printing Dimensions QUALIFIED43Stephen Shaw
1015Aruna P AmigonBrazil2025-05-27Commercial Press PROPOSAL98Bernardo Dominic
1016Rodrigues P VenereUnited Kingdom2025-06-03Feiner Bros QUALIFIED41Elwin Sharvill
1017Sinclair O WieserRussia2025-05-20Printing Dimensions NEGOTIATION67Ivan Magalhaes
1018Izzy E PaprockiItaly2025-05-23Feiner Bros NEGOTIATION10Elwin Sharvill
1019Izzy Q KolmetzIndia2025-05-26Buckley Miller Wright NEGOTIATION34Amy Elsner
1020Jeanfrancois S ChuiUnited Kingdom2025-06-11Feiner Bros PROPOSAL56Ioni Bowcher
1021Costa P FollerFrance2025-06-01Rousseaux, Michael Esq UNQUALIFIED92Asiya Javayant
1022Aditya B RutaSpain2025-06-05Chanay, Jeffrey A Esq NEW54Anna Fali
1023Rodrigues S SaylorsItaly2025-06-03Chapman, Ross E Esq PROPOSAL47Elwin Sharvill
1024Jennifer W CaldareraFrance2025-06-03Feltz Printing Service NEGOTIATION39Stephen Shaw
1025Salvatore H PaprockiGermany2025-05-18Truhlar And Truhlar Attys NEW35Amy Elsner
1026Emily O MaletSpain2025-06-06Printing Dimensions NEW29Onyama Limba
1027James V BologniaFrance2025-06-02Printing Dimensions QUALIFIED8Onyama Limba
1028Isabel K NestleGermany2025-06-03Dorl, James J Esq NEW94Stephen Shaw
1029Jennifer U NickaFrance2025-06-02Rousseaux, Michael Esq RENEWAL0Amy Elsner
1030James W WieserRussia2025-06-11Dorl, James J Esq NEGOTIATION6Asiya Javayant
1031Munro D WhobreyItaly2025-06-01Rousseaux, Michael Esq RENEWAL21Bernardo Dominic
1032Francesco M FigeroaArgentina2025-06-10Commercial Press RENEWAL90Xuxue Feng
1033Nicolas J WaycottUnited Kingdom2025-05-26Chanay, Jeffrey A Esq NEW9Anna Fali
1034Claire E NestleIndia2025-06-09Truhlar And Truhlar Attys QUALIFIED63Ivan Magalhaes
1035Arvin U MaletItaly2025-05-23King, Christopher A Esq NEW82Ivan Magalhaes
1036Murillo X ChuiRussia2025-06-13Truhlar And Truhlar Attys QUALIFIED86Stephen Shaw
1037Smith F RoysterBrazil2025-06-06Dorl, James J Esq NEGOTIATION38Onyama Limba
1038Francesco M TollnerArgentina2025-06-10Chanay, Jeffrey A Esq QUALIFIED42Bernardo Dominic
1039Morrow J ChuiItaly2025-06-14Commercial Press UNQUALIFIED70Elwin Sharvill
1040Misaki N InouyeArgentina2025-06-04Feiner Bros RENEWAL89Xuxue Feng
1041Faith G CaldareraUnited Kingdom2025-06-01Chanay, Jeffrey A Esq NEGOTIATION93Stephen Shaw
1042Smith D DilliardUnited Kingdom2025-06-11Buckley Miller Wright UNQUALIFIED64Onyama Limba
1043Emily K OldroydGermany2025-05-29Benton, John B Jr NEGOTIATION17Xuxue Feng
1044Arvin M KuskoFrance2025-05-20Feltz Printing Service NEW91Amy Elsner
1045Claire S WhobreyCanada2025-06-09Buckley Miller Wright QUALIFIED61Amy Elsner
1046Kadeem U GlickJapan2025-06-12Morlong Associates RENEWAL35Anna Fali
1047Costa D RoysterArgentina2025-06-15Morlong Associates NEW3Xuxue Feng
1048Adams Y WhobreyJapan2025-06-16Truhlar And Truhlar Attys QUALIFIED43Ioni Bowcher
1049Salvatore U RimBrazil2025-06-12Morlong Associates NEGOTIATION15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Greenwood O GarufiAustraliaIvan Magalhaes PROPOSAL
Adams V RoysterFranceBernardo Dominic NEGOTIATION
Maisha Z SergiGermanyBernardo Dominic UNQUALIFIED
Murillo G KolmetzGermanyIoni Bowcher NEGOTIATION
Greenwood D SchemmerGermanyElwin Sharvill NEW
Wickens Q GauchoJapanXuxue Feng UNQUALIFIED
Stacey L SlusarskiItalyAsiya Javayant QUALIFIED
Juan O RulapaughIndiaIvan Magalhaes RENEWAL
Aika U StockhamIndiaIvan Magalhaes RENEWAL
Isabel Y OstroskyFranceXuxue Feng PROPOSAL
Julie A PaprockiItalyAnna Fali UNQUALIFIED
Rodrigues P FollerRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois X BowleyIndiaXuxue Feng RENEWAL
Adams J GauchoIndiaIoni Bowcher NEW
Maria B BowleyUnited KingdomBernardo Dominic QUALIFIED
Mayumi M GillianCanadaIoni Bowcher QUALIFIED
Tony Y GlickGermanyIoni Bowcher NEW
Clifford X WieserUnited KingdomAnna Fali NEGOTIATION
Francesco U MarrierItalyAnna Fali RENEWAL
Jennifer R NestleIndiaElwin Sharvill QUALIFIED
Sinclair C DoeJapanAsiya Javayant QUALIFIED
Mujtaba E NickaFranceAmy Elsner UNQUALIFIED
Mayumi C KuskoGermanyBernardo Dominic UNQUALIFIED
Izzy R WhobreySpainBernardo Dominic UNQUALIFIED
Octavia P BriddickUnited KingdomOnyama Limba NEGOTIATION
Greenwood S ShinkoFranceElwin Sharvill NEW
Greenwood L MaletRussiaIvan Magalhaes UNQUALIFIED
Izzy V NickaArgentinaAnna Fali QUALIFIED
Antonio L WaycottArgentinaXuxue Feng PROPOSAL
Octavia M WhobreyArgentinaElwin Sharvill QUALIFIED
Leon G WhobreySpainStephen Shaw UNQUALIFIED
Julie Z DarakjyCanadaAmy Elsner QUALIFIED
Stacey L SaylorsCanadaIvan Magalhaes QUALIFIED
Sinclair T WieserCanadaBernardo Dominic QUALIFIED
Wickens E OldroydUnited KingdomBernardo Dominic PROPOSAL
Rodrigues W NickaFranceStephen Shaw NEGOTIATION
Maisha A WaycottJapanIoni Bowcher UNQUALIFIED
Mayumi H CaldareraCanadaElwin Sharvill NEW
Salvatore B CampainRussiaAnna Fali UNQUALIFIED
Rodrigues S AlbaresRussiaElwin Sharvill UNQUALIFIED
Julie D GauchoFranceAmy Elsner NEW
Silvio I FerenczGermanyStephen Shaw UNQUALIFIED
Aruna X SergiSpainStephen Shaw UNQUALIFIED
Maria C AlbaresCanadaIvan Magalhaes UNQUALIFIED
Tony N BologniaGermanyStephen Shaw QUALIFIED
Misaki Z DarakjyJapanOnyama Limba RENEWAL
Jones J ChuiGermanyBernardo Dominic UNQUALIFIED
Nicolas V StensethAustraliaAnna Fali NEW
Juan X StockhamItalyStephen Shaw RENEWAL
Faith B GarufiIndiaAnna Fali PROPOSAL
Frozen Columns
Name
Sinclair R Saylors
Clifford A Kusko
Octavia Y Inouye
Mayumi X Campain
Leja E Schemmer
Aruna Y Maclead
Cody F Tollner
Sinclair F Wieser
Leja Z Darakjy
Antonio T Kolmetz
Clifford T Kolmetz
Sinclair B Oldroyd
Leon J Stockham
Leja W Schemmer
Sinclair B Garufi
Johnson N Butt
Munro W Vocelka
Ricardo K Iturbide
Aditya P Amigon
Jeanfrancois V Marrier
Isabel N Albares
Isabel I Glick
Izzy S Morasca
Maisha Z Figeroa
Jones A Royster
Claire N Chui
Wickens Q Briddick
Sinclair B Rulapaugh
Julie F Ferencz
Jeanfrancois I Ferencz
Smith C Campain
Faith L Oldroyd
Greenwood W Albares
Deepesh Y Ostrosky
Aruna K Whobrey
Nicolas X Nestle
Nicolas K Whobrey
Antonio Q Slusarski
Francesco Q Morasca
Darci U Morasca
Isabel M Schemmer
Smith N Shinko
Emily F Rim
Isabel F Rim
Maria U Oldroyd
Jennifer P Glick
Greenwood S Sergi
Emily U Ruta
Costa P Stenseth
Arvin Q Malet
IdCountryDate
1000United Kingdom2025-05-30
1001Germany2025-06-13
1002India2025-05-31
1003Germany2025-05-27
1004Argentina2025-06-07
1005Russia2025-05-22
1006Brazil2025-06-03
1007Spain2025-06-02
1008Germany2025-05-28
1009Brazil2025-06-11
1010Germany2025-05-21
1011Australia2025-05-31
1012Germany2025-05-26
1013Australia2025-06-05
1014India2025-06-11
1015Brazil2025-06-13
1016Australia2025-05-27
1017Canada2025-05-22
1018Russia2025-06-02
1019India2025-06-03
1020Australia2025-06-03
1021Brazil2025-05-27
1022France2025-06-08
1023Brazil2025-05-31
1024India2025-06-13
1025Australia2025-06-07
1026Canada2025-05-31
1027Japan2025-05-18
1028Spain2025-05-28
1029India2025-06-02
1030Brazil2025-06-01
1031United Kingdom2025-05-18
1032Japan2025-06-13
1033Spain2025-06-15
1034Italy2025-06-05
1035Russia2025-05-21
1036Brazil2025-06-07
1037Russia2025-06-02
1038France2025-06-16
1039Brazil2025-06-03
1040Germany2025-05-22
1041Canada2025-06-09
1042India2025-05-19
1043Spain2025-06-10
1044India2025-05-20
1045Argentina2025-05-21
1046Italy2025-05-29
1047Japan2025-06-13
1048Germany2025-06-03
1049Canada2025-05-20

On-Demand Data

NameIdCountryDate
Jennifer Q Paprocki1000Japan2025-06-11
Maria O Saylors1001Germany2025-05-29
Munro H Royster1002Russia2025-06-07
Izzy X Briddick1003Germany2025-06-03
Darci P Caldarera1004Germany2025-06-04
Aika J Foller1005Spain2025-05-20
Sinclair T Maclead1006Russia2025-05-20
Francesco G Caudy1007Italy2025-05-26
Deepesh Z Schemmer1008Brazil2025-06-05
Wickens V Iturbide1009Brazil2025-06-06
Leon I Vocelka1010Italy2025-06-03
Jefferson G Darakjy1011Brazil2025-06-02
Aditya R Foller1012Australia2025-06-14
Jones G Rim1013Argentina2025-05-18
Faith I Shinko1014Canada2025-05-18
Clifford A Chui1015Japan2025-06-11
Cody U Oldroyd1016Argentina2025-06-02
Izzy C Campain1017Canada2025-06-10
Emily T Kolmetz1018Germany2025-05-25
Smith D Garufi1019Spain2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair U PaprockiAustraliaElwin Sharvill RENEWAL
James D OstroskyUnited KingdomAnna Fali QUALIFIED
Salvatore M ShinkoAustraliaAnna Fali NEW
Munro G CaldareraFranceAnna Fali QUALIFIED
Maisha W RoysterArgentinaStephen Shaw RENEWAL
Greenwood A PerinFranceBernardo Dominic PROPOSAL
Rodrigues G OldroydGermanyBernardo Dominic UNQUALIFIED
Tony F DoeFranceAmy Elsner QUALIFIED
Silvio S KuskoIndiaElwin Sharvill RENEWAL
Cody W SchemmerIndiaOnyama Limba NEW
Leon O CampainRussiaBernardo Dominic NEW
Silvio H AmigonSpainIvan Magalhaes NEW
Mujtaba T AmigonBrazilOnyama Limba UNQUALIFIED
Nicolas P MacleadGermanyOnyama Limba NEGOTIATION
Stacey E GillianUnited KingdomIoni Bowcher UNQUALIFIED
Costa S WaycottUnited KingdomStephen Shaw RENEWAL
Wickens J MaletFranceXuxue Feng PROPOSAL
Isabel S StensethIndiaAnna Fali UNQUALIFIED
Maisha X RimRussiaAnna Fali RENEWAL
Chavez P DilliardJapanIvan Magalhaes NEW
Wickens P FollerAustraliaIoni Bowcher NEW
Maisha Q KuskoIndiaAnna Fali QUALIFIED
Julie P GlickFranceElwin Sharvill NEGOTIATION
Deepesh B OstroskyGermanyIoni Bowcher QUALIFIED
Deepesh G PoquetteRussiaBernardo Dominic RENEWAL
Salvatore I DarakjyGermanyIoni Bowcher PROPOSAL
Rodrigues S RulapaughAustraliaXuxue Feng PROPOSAL
Salvatore R FerenczSpainBernardo Dominic NEGOTIATION
Aditya C AmigonItalyXuxue Feng PROPOSAL
Jones W RoysterGermanyAsiya Javayant RENEWAL
Ashley N RoysterBrazilAsiya Javayant UNQUALIFIED
Kaitlin Z GlickJapanAnna Fali PROPOSAL
Munro H IturbideRussiaIvan Magalhaes PROPOSAL
Rodrigues Z NestleItalyIvan Magalhaes RENEWAL
Mujtaba Q IturbideBrazilAmy Elsner NEW
David H MaletRussiaAsiya Javayant PROPOSAL
Mayumi P AlbaresJapanXuxue Feng QUALIFIED
Kaitlin F FlosiSpainAsiya Javayant RENEWAL
Leja H RoysterIndiaOnyama Limba RENEWAL
Antonio W TollnerBrazilOnyama 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">
            <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>