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
Stacey J VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Misaki Q CaldareraBrazilIoni Bowcher NEW
Smith A FollerFranceOnyama Limba NEW
Rodrigues F KolmetzItalyAmy Elsner UNQUALIFIED
Tony T KolmetzFranceAsiya Javayant NEW
Kadeem J GarufiBrazilBernardo Dominic NEW
Izzy T MaletBrazilAmy Elsner PROPOSAL
Mayumi J RoysterUnited KingdomIvan Magalhaes NEW
Leon V StockhamAustraliaAmy Elsner QUALIFIED
Alejandro C IturbideUnited KingdomElwin Sharvill QUALIFIED
Deepesh N RoysterItalyIvan Magalhaes UNQUALIFIED
Maisha T DoeFranceIoni Bowcher NEGOTIATION
Tony D KuskoSpainBernardo Dominic PROPOSAL
Wickens O GillianSpainStephen Shaw UNQUALIFIED
Alejandro E MorascaArgentinaXuxue Feng NEW
Silvio Z RulapaughItalyElwin Sharvill RENEWAL
Octavia E WaycottGermanyElwin Sharvill PROPOSAL
Cody F SlusarskiArgentinaIvan Magalhaes QUALIFIED
Maria W OstroskyIndiaIvan Magalhaes RENEWAL
Aika T FlosiRussiaIoni Bowcher UNQUALIFIED
Jones D RoysterItalyAsiya Javayant NEW
Leja U PaprockiSpainOnyama Limba QUALIFIED
Adams A KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford M CampainFranceIvan Magalhaes UNQUALIFIED
Ashley O WhobreyItalyIoni Bowcher QUALIFIED
Adams N NestleRussiaIvan Magalhaes NEW
Clifford H RutaGermanyStephen Shaw NEGOTIATION
Silvio M RoysterAustraliaStephen Shaw QUALIFIED
Cody G PerinAustraliaBernardo Dominic PROPOSAL
Octavia I FerenczItalyAnna Fali UNQUALIFIED
Jefferson T AlbaresSpainXuxue Feng RENEWAL
Maria F KuskoUnited KingdomAsiya Javayant PROPOSAL
Octavia I FerenczArgentinaIoni Bowcher NEGOTIATION
Jennifer P RoysterUnited KingdomXuxue Feng NEW
Ivar J BologniaFranceAmy Elsner NEGOTIATION
Clifford A RoysterAustraliaOnyama Limba NEGOTIATION
Arvin L GarufiFranceXuxue Feng QUALIFIED
Aruna X StockhamArgentinaAmy Elsner QUALIFIED
Maria X NickaBrazilAmy Elsner QUALIFIED
Kaitlin U SlusarskiCanadaAsiya Javayant NEW
Jefferson D StockhamAustraliaBernardo Dominic UNQUALIFIED
Johnson S GlickJapanElwin Sharvill QUALIFIED
Arvin K VocelkaRussiaIvan Magalhaes PROPOSAL
Ivar E RutaSpainOnyama Limba NEW
Nicolas B OldroydBrazilXuxue Feng NEW
Juan S GauchoCanadaIvan Magalhaes QUALIFIED
Johnson N CaldareraRussiaOnyama Limba QUALIFIED
Leon F WieserRussiaAsiya Javayant QUALIFIED
Julie O NickaGermanyAsiya Javayant PROPOSAL
Jones I NickaUnited KingdomBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Claire G AlbaresUnited KingdomAnna Fali NEGOTIATION
Claire Y AmigonJapanIvan Magalhaes NEW
Cody R RoysterFranceStephen Shaw PROPOSAL
Claire A ChuiSpainStephen Shaw NEGOTIATION
Emily J FlosiUnited KingdomOnyama Limba NEW
Rodrigues N FollerAustraliaAsiya Javayant UNQUALIFIED
Mayumi I StockhamAustraliaIoni Bowcher PROPOSAL
Faith W InouyeJapanAmy Elsner QUALIFIED
Aruna X KolmetzCanadaXuxue Feng UNQUALIFIED
Leja W WieserAustraliaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams N GillianRussia2025-04-27Printing Dimensions NEW33Amy Elsner
1001Stacey Y NickaFrance2025-05-06Benton, John B Jr QUALIFIED7Onyama Limba
1002Maisha E CaldareraBrazil2025-05-10Rousseaux, Michael Esq QUALIFIED45Bernardo Dominic
1003Jennifer O FerenczAustralia2025-05-04Rousseaux, Michael Esq NEW52Anna Fali
1004Rodrigues F NestleFrance2025-04-15Chemel, James L Cpa RENEWAL48Elwin Sharvill
1005Cody W SchemmerJapan2025-05-04Morlong Associates QUALIFIED74Asiya Javayant
1006Darci Z FollerArgentina2025-04-25Chapman, Ross E Esq NEGOTIATION29Ivan Magalhaes
1007Ivar K CaldareraAustralia2025-05-02Dorl, James J Esq QUALIFIED40Ivan Magalhaes
1008Aruna Q MarrierGermany2025-04-27Chanay, Jeffrey A Esq PROPOSAL41Onyama Limba
1009Izzy N StockhamFrance2025-05-13Truhlar And Truhlar Attys QUALIFIED71Asiya Javayant
1010Mujtaba Y TollnerAustralia2025-04-16Commercial Press RENEWAL52Anna Fali
1011Aruna E MaletItaly2025-05-02Morlong Associates NEW38Stephen Shaw
1012Maria X MorascaBrazil2025-05-05Truhlar And Truhlar Attys RENEWAL98Asiya Javayant
1013Clifford W KolmetzJapan2025-05-12Rangoni Of Florence RENEWAL68Asiya Javayant
1014Nicolas W PoquetteAustralia2025-05-02Feiner Bros NEGOTIATION78Anna Fali
1015Faith B GlickJapan2025-04-18Benton, John B Jr PROPOSAL54Asiya Javayant
1016Aruna I OldroydArgentina2025-04-22Morlong Associates NEGOTIATION66Xuxue Feng
1017Murillo E MacleadFrance2025-04-21King, Christopher A Esq NEGOTIATION3Bernardo Dominic
1018Mayumi J PaprockiSpain2025-04-26Morlong Associates RENEWAL61Ivan Magalhaes
1019Ricardo U BowleyRussia2025-04-26Feiner Bros QUALIFIED26Ivan Magalhaes
1020Maria K TollnerUnited Kingdom2025-04-29Buckley Miller Wright UNQUALIFIED89Amy Elsner
1021Aika Y DarakjyJapan2025-04-16Commercial Press UNQUALIFIED35Ivan Magalhaes
1022Arvin X ChuiGermany2025-04-25King, Christopher A Esq QUALIFIED53Elwin Sharvill
1023Misaki O MaletAustralia2025-04-30Printing Dimensions QUALIFIED68Xuxue Feng
1024Kadeem H BologniaUnited Kingdom2025-05-10Chapman, Ross E Esq RENEWAL87Ioni Bowcher
1025Juan H CaldareraUnited Kingdom2025-05-11Truhlar And Truhlar Attys QUALIFIED26Asiya Javayant
1026Salvatore M IturbideCanada2025-05-11Benton, John B Jr UNQUALIFIED68Elwin Sharvill
1027Darci W PerinCanada2025-04-17Chanay, Jeffrey A Esq UNQUALIFIED43Bernardo Dominic
1028Chavez W WieserBrazil2025-05-07Truhlar And Truhlar Attys RENEWAL62Xuxue Feng
1029Mujtaba B RutaRussia2025-05-05Rangoni Of Florence NEGOTIATION35Ioni Bowcher
1030Sinclair B GarufiRussia2025-04-16Benton, John B Jr QUALIFIED21Stephen Shaw
1031Murillo V SaylorsGermany2025-04-17Printing Dimensions RENEWAL81Anna Fali
1032Misaki O RulapaughItaly2025-05-05Rangoni Of Florence NEGOTIATION27Elwin Sharvill
1033Costa O BologniaArgentina2025-04-16Commercial Press QUALIFIED39Elwin Sharvill
1034Julie H OstroskyJapan2025-04-15Dorl, James J Esq NEGOTIATION23Ioni Bowcher
1035James G RimSpain2025-05-04Rangoni Of Florence PROPOSAL8Onyama Limba
1036Sinclair S RimBrazil2025-05-12Dorl, James J Esq RENEWAL93Asiya Javayant
1037Wickens L TollnerItaly2025-04-19Feltz Printing Service NEGOTIATION61Xuxue Feng
1038Faith F StockhamGermany2025-04-27Benton, John B Jr NEGOTIATION36Stephen Shaw
1039Munro Q KuskoBrazil2025-05-07Rousseaux, Michael Esq NEW0Anna Fali
1040Ivar B PaprockiItaly2025-05-07Feiner Bros NEGOTIATION44Amy Elsner
1041Chavez C SaylorsFrance2025-05-12Chanay, Jeffrey A Esq NEGOTIATION52Bernardo Dominic
1042Smith R WaycottSpain2025-04-24Dorl, James J Esq NEW43Stephen Shaw
1043Isabel F IturbideItaly2025-05-03Dorl, James J Esq RENEWAL71Anna Fali
1044Chavez N BowleySpain2025-05-11Benton, John B Jr NEW3Elwin Sharvill
1045Morrow M BriddickCanada2025-05-06Truhlar And Truhlar Attys NEW13Stephen Shaw
1046Misaki O PerinUnited Kingdom2025-05-08Printing Dimensions RENEWAL70Xuxue Feng
1047Julie X WhobreyBrazil2025-04-20Chemel, James L Cpa RENEWAL61Elwin Sharvill
1048Ashley N ShinkoItaly2025-05-05Chemel, James L Cpa RENEWAL79Amy Elsner
1049Antonio O WhobreyIndia2025-05-12Benton, John B Jr PROPOSAL76Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony S OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson Q WieserIndiaAmy Elsner NEW
Greenwood Y KuskoItalyAnna Fali PROPOSAL
Chavez H DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Chavez J FlosiCanadaAsiya Javayant NEW
Leja Y FlosiBrazilIoni Bowcher PROPOSAL
Silvio P RulapaughFranceAsiya Javayant NEGOTIATION
Maria V ButtUnited KingdomIoni Bowcher NEW
Maria Q SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Tony X FlosiFranceElwin Sharvill QUALIFIED
Morrow O MaletUnited KingdomElwin Sharvill RENEWAL
Ricardo N GlickIndiaOnyama Limba UNQUALIFIED
Juan G AmigonBrazilIoni Bowcher NEW
Kaitlin M AmigonArgentinaElwin Sharvill NEGOTIATION
Leon G OstroskyAustraliaAnna Fali NEW
Murillo E GlickFranceOnyama Limba NEW
Aika E RoysterCanadaElwin Sharvill UNQUALIFIED
Munro V NestleUnited KingdomXuxue Feng QUALIFIED
Aruna C GauchoAustraliaElwin Sharvill NEGOTIATION
Juan M SlusarskiRussiaOnyama Limba UNQUALIFIED
Stacey M SchemmerJapanBernardo Dominic NEW
Antonio G RimJapanAmy Elsner QUALIFIED
Juan N VenereAustraliaOnyama Limba RENEWAL
Morrow G MaletGermanyAnna Fali NEW
Ricardo K SaylorsFranceStephen Shaw UNQUALIFIED
Rodrigues I DilliardCanadaStephen Shaw RENEWAL
Aruna A RimRussiaElwin Sharvill PROPOSAL
Faith K StockhamJapanXuxue Feng QUALIFIED
Silvio L OldroydArgentinaStephen Shaw NEW
Emily B NestleCanadaAsiya Javayant RENEWAL
Aditya Q NickaGermanyElwin Sharvill RENEWAL
Jefferson N ShinkoIndiaIoni Bowcher PROPOSAL
Ricardo G SaylorsGermanyAsiya Javayant UNQUALIFIED
Juan L IturbideBrazilStephen Shaw PROPOSAL
Jones T StensethGermanyOnyama Limba RENEWAL
Aruna Z ShinkoRussiaBernardo Dominic NEW
Claire P PoquetteCanadaIoni Bowcher RENEWAL
Jeanfrancois Q BriddickArgentinaOnyama Limba RENEWAL
Clifford C IturbideAustraliaIoni Bowcher NEW
Kaitlin D StockhamCanadaIoni Bowcher QUALIFIED
Faith K SchemmerCanadaAmy Elsner NEW
Darci D FlosiCanadaOnyama Limba PROPOSAL
Greenwood B KuskoIndiaAnna Fali NEGOTIATION
Mayumi X ShinkoItalyElwin Sharvill UNQUALIFIED
Maria N VocelkaFranceAnna Fali NEW
Tony C StockhamRussiaStephen Shaw QUALIFIED
Antonio P AlbaresGermanyXuxue Feng PROPOSAL
Octavia Z PoquetteArgentinaAnna Fali NEW
Darci A BowleyBrazilStephen Shaw QUALIFIED
Munro R VenereFranceBernardo Dominic QUALIFIED
Frozen Columns
Name
Munro M Albares
Arvin K Chui
Kaitlin I Paprocki
Isabel H Campain
James T Caldarera
Smith Y Ruta
David V Whobrey
David N Marrier
Jones W Dilliard
Clifford T Shinko
Maria C Glick
Ricardo L Campain
Deepesh A Venere
Darci W Albares
Wickens B Campain
Cody O Doe
Maisha B Caudy
Stacey U Stockham
David L Ferencz
Isabel D Bowley
Francesco A Darakjy
Rodrigues E Amigon
Nicolas E Bolognia
Ricardo G Paprocki
Emily L Stockham
Nicolas V Ferencz
Deepesh H Oldroyd
Juan O Royster
Isabel D Shinko
Alejandro K Rulapaugh
Maisha J Marrier
Ricardo I Dilliard
Izzy S Tollner
Silvio W Figeroa
Nicolas U Figeroa
Morrow N Briddick
Kaitlin W Tollner
Cody I Inouye
Munro K Caldarera
Tony M Ruta
Maria Q Iturbide
Jefferson F Tollner
Misaki T Marrier
Sinclair E Shinko
Kadeem J Caudy
Silvio D Sergi
Clifford D Albares
Francesco J Malet
Aruna J Ruta
Murillo P Nestle
IdCountryDate
1000Italy2025-05-08
1001Argentina2025-04-28
1002Japan2025-05-14
1003Germany2025-05-08
1004India2025-04-16
1005India2025-04-25
1006India2025-05-04
1007United Kingdom2025-04-27
1008Australia2025-05-08
1009Canada2025-04-21
1010Russia2025-04-28
1011Italy2025-04-16
1012Australia2025-04-24
1013Japan2025-04-23
1014Japan2025-05-07
1015Australia2025-05-07
1016Canada2025-04-19
1017India2025-04-20
1018Russia2025-04-25
1019Argentina2025-04-23
1020Italy2025-05-10
1021United Kingdom2025-04-29
1022Brazil2025-04-16
1023India2025-05-07
1024Italy2025-05-05
1025India2025-04-27
1026France2025-04-17
1027Australia2025-04-27
1028Argentina2025-04-22
1029India2025-05-07
1030Argentina2025-04-15
1031United Kingdom2025-05-06
1032Spain2025-04-25
1033India2025-05-04
1034Canada2025-04-17
1035Canada2025-05-03
1036Germany2025-04-30
1037Spain2025-05-01
1038India2025-04-29
1039Brazil2025-05-09
1040Germany2025-04-30
1041Brazil2025-05-01
1042France2025-05-12
1043Russia2025-05-11
1044Australia2025-04-27
1045Russia2025-05-04
1046Argentina2025-04-27
1047India2025-05-10
1048United Kingdom2025-04-17
1049Germany2025-04-17

On-Demand Data

NameIdCountryDate
Maria U Schemmer1000Australia2025-04-24
Sinclair Q Perin1001Brazil2025-05-12
Ashley M Caudy1002Italy2025-05-03
Silvio U Darakjy1003Brazil2025-04-26
Ivar Q Oldroyd1004India2025-05-06
Claire Q Dilliard1005Germany2025-04-15
Salvatore R Oldroyd1006Canada2025-04-19
Johnson D Malet1007Spain2025-05-04
Greenwood H Gaucho1008Italy2025-04-30
James I Schemmer1009Canada2025-05-06
Darci Y Caudy1010Germany2025-05-12
Mayumi S Darakjy1011France2025-05-04
Aditya V Caudy1012Argentina2025-05-04
Jeanfrancois A Flosi1013Germany2025-04-21
Tony Y Nestle1014Russia2025-05-05
Arvin U Marrier1015Italy2025-05-02
Costa T Malet1016Argentina2025-05-03
Jeanfrancois I Stenseth1017Australia2025-04-16
Kaitlin B Doe1018Japan2025-05-01
Nicolas X Paprocki1019Brazil2025-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire U VenereArgentinaIoni Bowcher RENEWAL
Tony M CaldareraUnited KingdomAsiya Javayant QUALIFIED
Julie K StockhamRussiaStephen Shaw UNQUALIFIED
Maria J CampainGermanyElwin Sharvill RENEWAL
Faith R MacleadArgentinaElwin Sharvill NEGOTIATION
Kaitlin L GauchoCanadaXuxue Feng QUALIFIED
Kadeem S OldroydItalyIoni Bowcher NEW
Jefferson Y FlosiRussiaElwin Sharvill NEW
Ashley R NickaSpainStephen Shaw NEW
David S WieserCanadaAsiya Javayant NEW
Misaki R IturbideItalyAmy Elsner UNQUALIFIED
Kadeem K DarakjyUnited KingdomStephen Shaw NEW
David W AlbaresUnited KingdomIoni Bowcher RENEWAL
Munro R VocelkaIndiaStephen Shaw PROPOSAL
Johnson K NickaCanadaIvan Magalhaes RENEWAL
Adams J GauchoItalyAmy Elsner NEGOTIATION
Jefferson K OstroskyIndiaAnna Fali RENEWAL
Emily M NestleIndiaIvan Magalhaes NEW
Deepesh C DarakjyArgentinaAsiya Javayant QUALIFIED
Nicolas X FollerIndiaAmy Elsner QUALIFIED
Deepesh A StensethSpainIoni Bowcher UNQUALIFIED
Adams A IturbideAustraliaIvan Magalhaes UNQUALIFIED
James B CaldareraAustraliaIoni Bowcher RENEWAL
Jones C GlickAustraliaIvan Magalhaes PROPOSAL
Darci B StockhamIndiaElwin Sharvill PROPOSAL
Jones J MarrierFranceAsiya Javayant RENEWAL
James N DoeArgentinaOnyama Limba PROPOSAL
Smith U WhobreyRussiaOnyama Limba NEGOTIATION
Jefferson W AmigonIndiaOnyama Limba QUALIFIED
Silvio H PaprockiGermanyBernardo Dominic NEW
Silvio P DoeIndiaIvan Magalhaes NEW
Greenwood T CampainGermanyIoni Bowcher UNQUALIFIED
Adams L RutaGermanyElwin Sharvill RENEWAL
Maria L DoeGermanyAmy Elsner RENEWAL
Jefferson Z TollnerIndiaOnyama Limba NEW
Claire B WhobreyCanadaOnyama Limba RENEWAL
Stacey E FlosiUnited KingdomElwin Sharvill NEGOTIATION
Faith D BologniaCanadaAmy Elsner PROPOSAL
Ashley O SergiJapanIvan Magalhaes NEW
Kadeem L BriddickJapanElwin Sharvill 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>