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
Darci S RoysterBrazilAnna Fali RENEWAL
Maria A ShinkoRussiaAmy Elsner RENEWAL
Izzy Y VocelkaItalyIoni Bowcher NEGOTIATION
James Y CaudyJapanAnna Fali NEGOTIATION
Silvio G MacleadIndiaElwin Sharvill RENEWAL
Ashley J WaycottUnited KingdomAnna Fali UNQUALIFIED
Faith Z RutaIndiaOnyama Limba NEW
Jones E FollerCanadaBernardo Dominic PROPOSAL
Juan P PaprockiItalyXuxue Feng RENEWAL
Aditya R VenereItalyXuxue Feng RENEWAL
Silvio Q DoeBrazilElwin Sharvill UNQUALIFIED
Claire U BowleyJapanAnna Fali PROPOSAL
Johnson G GillianGermanyAnna Fali PROPOSAL
Francesco U RulapaughIndiaAnna Fali RENEWAL
Stacey M WieserItalyIvan Magalhaes UNQUALIFIED
Kadeem U IturbideCanadaOnyama Limba NEGOTIATION
Arvin R AmigonSpainOnyama Limba PROPOSAL
Emily Z FigeroaJapanElwin Sharvill PROPOSAL
Murillo Q MarrierUnited KingdomAmy Elsner QUALIFIED
Maisha T GillianSpainAsiya Javayant PROPOSAL
Mujtaba E CaudyCanadaOnyama Limba QUALIFIED
Clifford T PaprockiIndiaAnna Fali RENEWAL
Munro V ButtItalyBernardo Dominic QUALIFIED
Claire F NickaBrazilAmy Elsner UNQUALIFIED
Emily O MarrierFranceAnna Fali PROPOSAL
Deepesh W DilliardGermanyXuxue Feng RENEWAL
Jefferson G CampainGermanyStephen Shaw NEGOTIATION
Izzy R GauchoItalyBernardo Dominic UNQUALIFIED
Kaitlin Z NestleIndiaStephen Shaw RENEWAL
Rodrigues Z GlickBrazilAsiya Javayant UNQUALIFIED
Faith Z AmigonJapanAmy Elsner NEW
Silvio J FollerAustraliaAmy Elsner QUALIFIED
Deepesh P NickaJapanIoni Bowcher RENEWAL
Deepesh C NickaBrazilOnyama Limba NEW
Deepesh B WhobreyCanadaXuxue Feng PROPOSAL
Juan B ButtJapanIvan Magalhaes NEW
Mayumi S AmigonArgentinaAmy Elsner PROPOSAL
Aika T FigeroaCanadaOnyama Limba UNQUALIFIED
Alejandro S IturbideAustraliaOnyama Limba PROPOSAL
Salvatore L RimRussiaAmy Elsner RENEWAL
Aruna B MaletAustraliaAmy Elsner QUALIFIED
Johnson L MaletGermanyOnyama Limba RENEWAL
Kadeem T NickaUnited KingdomStephen Shaw PROPOSAL
Nicolas N FigeroaArgentinaAnna Fali QUALIFIED
Jones H FerenczItalyElwin Sharvill QUALIFIED
Julie S VenereBrazilStephen Shaw NEGOTIATION
Francesco C SlusarskiItalyElwin Sharvill NEW
Darci C RimBrazilAsiya Javayant RENEWAL
Maisha G KolmetzUnited KingdomOnyama Limba NEGOTIATION
Julie T RutaGermanyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony B IturbideIndiaElwin Sharvill QUALIFIED
Octavia K ShinkoFranceBernardo Dominic UNQUALIFIED
Chavez Q DilliardCanadaAnna Fali NEGOTIATION
Antonio X InouyeUnited KingdomOnyama Limba NEW
Nicolas V ButtRussiaElwin Sharvill NEW
Stacey Y AmigonFranceAsiya Javayant QUALIFIED
Salvatore X MaletSpainStephen Shaw PROPOSAL
Faith T NickaUnited KingdomElwin Sharvill RENEWAL
Jennifer N SchemmerUnited KingdomAnna Fali NEW
Kadeem G WaycottCanadaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer F CaldareraArgentina2026-06-24King, Christopher A Esq PROPOSAL42Stephen Shaw
1001Tony F BriddickGermany2026-06-22Dorl, James J Esq UNQUALIFIED58Elwin Sharvill
1002Morrow F MorascaAustralia2026-06-28Morlong Associates RENEWAL37Xuxue Feng
1003Jefferson N CaldareraArgentina2026-07-10Printing Dimensions PROPOSAL92Ioni Bowcher
1004Clifford R PoquetteItaly2026-07-09Rousseaux, Michael Esq PROPOSAL77Anna Fali
1005Costa E FollerAustralia2026-06-22Feiner Bros PROPOSAL46Onyama Limba
1006Kaitlin A GarufiBrazil2026-06-23Chemel, James L Cpa QUALIFIED51Anna Fali
1007Sinclair G RulapaughGermany2026-06-20Rangoni Of Florence UNQUALIFIED1Xuxue Feng
1008Salvatore L NestleFrance2026-07-11Morlong Associates QUALIFIED41Bernardo Dominic
1009Murillo Y CaldareraCanada2026-07-10Feltz Printing Service QUALIFIED34Onyama Limba
1010Juan J RoysterItaly2026-07-11Chemel, James L Cpa RENEWAL70Ivan Magalhaes
1011Salvatore J OldroydSpain2026-07-04Buckley Miller Wright RENEWAL68Onyama Limba
1012Maria U DarakjyAustralia2026-07-15Rousseaux, Michael Esq QUALIFIED59Amy Elsner
1013Darci O RutaJapan2026-07-03Rousseaux, Michael Esq NEW14Amy Elsner
1014Aruna E GillianIndia2026-06-20Rangoni Of Florence RENEWAL30Bernardo Dominic
1015Silvio K NickaRussia2026-07-05Feltz Printing Service NEGOTIATION69Asiya Javayant
1016Kaitlin U FerenczJapan2026-07-05King, Christopher A Esq NEW95Stephen Shaw
1017Isabel J FigeroaSpain2026-07-12Benton, John B Jr RENEWAL23Bernardo Dominic
1018Jefferson W GillianJapan2026-07-11Buckley Miller Wright RENEWAL41Anna Fali
1019Leon F FlosiRussia2026-06-22Printing Dimensions NEGOTIATION78Amy Elsner
1020Greenwood R OldroydGermany2026-07-02Rousseaux, Michael Esq NEGOTIATION36Stephen Shaw
1021Tony E OstroskyGermany2026-07-04Printing Dimensions QUALIFIED43Elwin Sharvill
1022Mujtaba R VenereCanada2026-06-20King, Christopher A Esq UNQUALIFIED12Anna Fali
1023Tony I WaycottSpain2026-06-18Printing Dimensions PROPOSAL61Stephen Shaw
1024Costa E MacleadBrazil2026-07-14Rousseaux, Michael Esq NEGOTIATION93Ivan Magalhaes
1025Maria Z CaudyJapan2026-07-02Truhlar And Truhlar Attys NEW12Onyama Limba
1026Kadeem Q DarakjyBrazil2026-06-26Dorl, James J Esq UNQUALIFIED48Bernardo Dominic
1027Aditya C MaletItaly2026-07-10Morlong Associates NEW16Bernardo Dominic
1028Octavia H ChuiUnited Kingdom2026-06-19Truhlar And Truhlar Attys RENEWAL2Bernardo Dominic
1029Stacey R WhobreySpain2026-06-25King, Christopher A Esq PROPOSAL16Onyama Limba
1030Sinclair R FigeroaSpain2026-07-02Truhlar And Truhlar Attys NEW2Asiya Javayant
1031Arvin B GauchoItaly2026-06-25Morlong Associates NEGOTIATION57Stephen Shaw
1032Emily W DoeCanada2026-07-07Morlong Associates QUALIFIED98Amy Elsner
1033Izzy I SergiGermany2026-06-22Rousseaux, Michael Esq QUALIFIED23Anna Fali
1034Jeanfrancois K StockhamGermany2026-06-25Chanay, Jeffrey A Esq RENEWAL49Asiya Javayant
1035Arvin B StockhamUnited Kingdom2026-06-20Chemel, James L Cpa PROPOSAL18Onyama Limba
1036Isabel V AmigonSpain2026-06-19Benton, John B Jr QUALIFIED68Bernardo Dominic
1037Greenwood P FigeroaItaly2026-07-02Chapman, Ross E Esq QUALIFIED74Asiya Javayant
1038Aditya N MorascaCanada2026-07-02Rousseaux, Michael Esq RENEWAL64Elwin Sharvill
1039Leja O FollerFrance2026-06-23Truhlar And Truhlar Attys NEW37Xuxue Feng
1040Kadeem C SaylorsBrazil2026-07-03Buckley Miller Wright UNQUALIFIED42Stephen Shaw
1041Antonio J SergiIndia2026-07-05Rangoni Of Florence RENEWAL42Bernardo Dominic
1042Aika N OstroskyRussia2026-06-23Printing Dimensions QUALIFIED97Onyama Limba
1043Deepesh F FigeroaSpain2026-07-01Chanay, Jeffrey A Esq NEW16Ioni Bowcher
1044Munro J BriddickCanada2026-06-23Truhlar And Truhlar Attys QUALIFIED2Onyama Limba
1045Cody K MarrierJapan2026-07-05Chemel, James L Cpa RENEWAL16Amy Elsner
1046Nicolas I BologniaJapan2026-06-18Buckley Miller Wright RENEWAL73Xuxue Feng
1047Maria F OstroskySpain2026-07-04Dorl, James J Esq NEW92Ivan Magalhaes
1048Costa S MaletJapan2026-07-15Chanay, Jeffrey A Esq NEW24Bernardo Dominic
1049Cody Y BologniaArgentina2026-06-20Printing Dimensions QUALIFIED0Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey K CaudyItalyXuxue Feng NEGOTIATION
Chavez J DarakjyAustraliaAnna Fali PROPOSAL
Izzy F CaldareraCanadaStephen Shaw NEGOTIATION
Aditya L RoysterJapanAmy Elsner NEGOTIATION
Claire S GillianCanadaBernardo Dominic QUALIFIED
Nicolas D KolmetzArgentinaAmy Elsner PROPOSAL
Jennifer B WaycottGermanyXuxue Feng NEGOTIATION
Octavia O MorascaUnited KingdomStephen Shaw RENEWAL
Aruna E OstroskyBrazilOnyama Limba RENEWAL
Francesco V SchemmerIndiaStephen Shaw UNQUALIFIED
Jones U WaycottFranceIoni Bowcher NEW
Murillo U DoeAustraliaBernardo Dominic NEGOTIATION
Isabel R InouyeGermanyAnna Fali RENEWAL
Deepesh J IturbideBrazilElwin Sharvill RENEWAL
Clifford A SlusarskiCanadaOnyama Limba QUALIFIED
Leja U BologniaFranceStephen Shaw UNQUALIFIED
Johnson O PaprockiItalyXuxue Feng RENEWAL
Mayumi C GauchoAustraliaElwin Sharvill QUALIFIED
Kadeem S VocelkaBrazilIoni Bowcher NEGOTIATION
Arvin B OstroskyUnited KingdomIoni Bowcher PROPOSAL
Adams Q RoysterBrazilStephen Shaw QUALIFIED
Nicolas X StockhamSpainXuxue Feng RENEWAL
Salvatore Y GlickBrazilAmy Elsner RENEWAL
Ivar X IturbideSpainAnna Fali NEW
Maisha L StensethFranceOnyama Limba PROPOSAL
Silvio F RoysterBrazilIvan Magalhaes UNQUALIFIED
Claire U SergiIndiaXuxue Feng PROPOSAL
Ivar S SchemmerBrazilAnna Fali PROPOSAL
Kadeem P NestleGermanyBernardo Dominic PROPOSAL
Ricardo V RimRussiaAmy Elsner RENEWAL
Ricardo I CampainRussiaIoni Bowcher PROPOSAL
Cody S AlbaresBrazilIoni Bowcher QUALIFIED
Jefferson F RulapaughFranceAnna Fali QUALIFIED
Munro Z ChuiAustraliaIvan Magalhaes NEGOTIATION
Salvatore G GarufiJapanOnyama Limba PROPOSAL
Smith T FerenczBrazilIoni Bowcher UNQUALIFIED
Nicolas V MorascaItalyOnyama Limba PROPOSAL
Smith A CaudyCanadaAnna Fali PROPOSAL
Juan H IturbideCanadaAsiya Javayant RENEWAL
Darci Z SergiIndiaElwin Sharvill QUALIFIED
Alejandro D OldroydJapanElwin Sharvill QUALIFIED
Aika N WhobreyGermanyAnna Fali NEW
Costa P SlusarskiItalyIoni Bowcher NEW
Adams D NickaGermanyAmy Elsner NEW
Clifford N GarufiSpainIoni Bowcher NEGOTIATION
Kadeem S BowleyFranceBernardo Dominic QUALIFIED
Smith E MacleadItalyBernardo Dominic QUALIFIED
Cody V ButtItalyIoni Bowcher NEGOTIATION
Smith H SaylorsIndiaStephen Shaw PROPOSAL
Ricardo P FollerJapanBernardo Dominic QUALIFIED
Frozen Columns
Name
Ricardo F Chui
Jefferson Y Waycott
Tony B Poquette
Smith L Stockham
Jeanfrancois R Shinko
Jones I Vocelka
Ivar H Ferencz
Alejandro Q Albares
Kadeem A Marrier
Leon N Dilliard
Darci V Ostrosky
Octavia C Perin
Sinclair R Stockham
Juan X Malet
Sinclair Q Stenseth
Juan C Oldroyd
Leja T Shinko
Kaitlin Y Briddick
Salvatore Q Nestle
Claire X Caldarera
Chavez Y Campain
Juan Z Maclead
Aruna K Ostrosky
Leon W Tollner
Jennifer B Marrier
James R Nicka
Juan R Morasca
Deepesh W Briddick
Kaitlin Q Venere
Kaitlin U Ferencz
Juan M Wieser
Jefferson M Figeroa
Mayumi W Darakjy
Juan Z Flosi
Antonio L Amigon
Julie S Poquette
Jennifer R Venere
Francesco M Tollner
Chavez U Royster
Leon D Sergi
Wickens O Gillian
Morrow J Schemmer
Maria Y Rulapaugh
Maisha L Marrier
Cody G Ostrosky
Jennifer D Ostrosky
Kadeem M Waycott
Francesco U Paprocki
Maisha D Ostrosky
James C Sergi
IdCountryDate
1000Spain2026-06-20
1001Italy2026-07-05
1002Brazil2026-07-09
1003Italy2026-06-26
1004Spain2026-07-02
1005Russia2026-07-13
1006India2026-07-13
1007France2026-07-11
1008France2026-07-01
1009Australia2026-07-10
1010Japan2026-07-05
1011Italy2026-06-21
1012Spain2026-07-16
1013Russia2026-06-20
1014India2026-06-21
1015France2026-07-12
1016Italy2026-06-25
1017France2026-07-09
1018Spain2026-07-02
1019Brazil2026-06-27
1020Canada2026-07-11
1021Brazil2026-06-18
1022Italy2026-07-08
1023France2026-06-23
1024Australia2026-07-14
1025Japan2026-07-04
1026Brazil2026-06-19
1027Canada2026-07-02
1028France2026-06-29
1029Russia2026-07-01
1030Russia2026-07-07
1031Germany2026-07-11
1032Japan2026-07-03
1033Italy2026-06-23
1034Italy2026-07-06
1035Australia2026-06-27
1036Canada2026-06-19
1037France2026-07-11
1038France2026-07-09
1039Japan2026-07-16
1040Australia2026-07-10
1041Australia2026-07-02
1042Canada2026-07-10
1043France2026-07-14
1044United Kingdom2026-06-23
1045Spain2026-06-28
1046Brazil2026-06-30
1047Brazil2026-07-16
1048Germany2026-07-06
1049Italy2026-06-30

On-Demand Data

NameIdCountryDate
Aika O Caldarera1000Canada2026-07-03
Leon A Ostrosky1001Australia2026-07-12
Misaki B Caldarera1002Brazil2026-06-21
Jennifer E Dilliard1003Japan2026-06-23
Ivar Q Amigon1004Canada2026-06-19
Greenwood X Doe1005Brazil2026-07-03
Costa X Poquette1006United Kingdom2026-07-02
Jones Y Glick1007Spain2026-06-28
Morrow S Inouye1008Argentina2026-06-22
Jennifer H Caudy1009Brazil2026-07-04
Clifford L Shinko1010Italy2026-06-24
Juan G Briddick1011Russia2026-06-20
James A Ostrosky1012Argentina2026-06-18
Deepesh G Nicka1013Spain2026-07-11
Rodrigues F Ferencz1014United Kingdom2026-06-29
Costa J Stockham1015Japan2026-06-18
James K Gaucho1016Argentina2026-06-29
Morrow W Caldarera1017India2026-06-22
Isabel Z Rulapaugh1018Australia2026-07-16
Sinclair M Malet1019Australia2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya C VenereGermanyAsiya Javayant UNQUALIFIED
Rodrigues X ChuiFranceAnna Fali RENEWAL
Johnson B ButtSpainAmy Elsner RENEWAL
Ricardo X MaletBrazilIoni Bowcher UNQUALIFIED
Kadeem Y DarakjyArgentinaIoni Bowcher RENEWAL
Maisha F RimJapanElwin Sharvill NEW
Mayumi N MaletItalyIvan Magalhaes UNQUALIFIED
Deepesh Z SergiArgentinaOnyama Limba UNQUALIFIED
Greenwood J BowleyJapanOnyama Limba PROPOSAL
Isabel C SergiCanadaBernardo Dominic PROPOSAL
Maisha O WhobreyArgentinaOnyama Limba PROPOSAL
Kadeem N InouyeArgentinaXuxue Feng NEW
Kadeem E CampainGermanyXuxue Feng QUALIFIED
Greenwood V CampainItalyStephen Shaw NEW
Greenwood W PerinFranceStephen Shaw NEW
Ashley B WaycottCanadaBernardo Dominic RENEWAL
Nicolas J RoysterItalyElwin Sharvill QUALIFIED
Sinclair L GauchoSpainAmy Elsner UNQUALIFIED
Alejandro U CaudyAustraliaXuxue Feng PROPOSAL
Ivar R PerinCanadaAnna Fali QUALIFIED
James A RoysterCanadaXuxue Feng UNQUALIFIED
Octavia C ChuiGermanyIvan Magalhaes NEW
Ivar L GarufiRussiaAnna Fali RENEWAL
David H DoeRussiaOnyama Limba QUALIFIED
Clifford A MacleadArgentinaBernardo Dominic QUALIFIED
Misaki S FlosiFranceAnna Fali NEGOTIATION
Rodrigues A DilliardJapanBernardo Dominic QUALIFIED
Silvio M CaudySpainXuxue Feng UNQUALIFIED
Costa N BowleyUnited KingdomIoni Bowcher NEGOTIATION
Rodrigues S RimAustraliaOnyama Limba UNQUALIFIED
Nicolas T DoeRussiaBernardo Dominic QUALIFIED
Smith D OldroydBrazilStephen Shaw NEGOTIATION
Alejandro O WieserCanadaAsiya Javayant NEGOTIATION
Sinclair J MorascaAustraliaIvan Magalhaes QUALIFIED
Munro L RoysterIndiaIoni Bowcher UNQUALIFIED
Ivar A InouyeItalyIoni Bowcher NEGOTIATION
Tony M CaudyCanadaXuxue Feng RENEWAL
Leja L OldroydAustraliaBernardo Dominic RENEWAL
Chavez N CampainAustraliaAmy Elsner UNQUALIFIED
Salvatore W GillianCanadaOnyama Limba PROPOSAL

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