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
Smith E NestleIndiaAsiya Javayant NEGOTIATION
Clifford Y NickaCanadaElwin Sharvill NEW
Leja B KolmetzAustraliaIoni Bowcher UNQUALIFIED
Kaitlin E KolmetzGermanyIoni Bowcher NEGOTIATION
Alejandro R DilliardBrazilElwin Sharvill PROPOSAL
Maisha I NickaCanadaStephen Shaw NEW
Emily O PerinFranceAmy Elsner UNQUALIFIED
Mayumi S CaudyAustraliaXuxue Feng UNQUALIFIED
Stacey J PaprockiAustraliaAsiya Javayant RENEWAL
Mayumi V MaletBrazilStephen Shaw QUALIFIED
Jeanfrancois T PerinArgentinaBernardo Dominic UNQUALIFIED
Leon Z IturbideBrazilXuxue Feng RENEWAL
Leja B GarufiAustraliaOnyama Limba QUALIFIED
Aditya J InouyeBrazilIvan Magalhaes NEGOTIATION
Chavez M VocelkaItalyAsiya Javayant UNQUALIFIED
Kadeem D VenereUnited KingdomXuxue Feng NEW
Sinclair D SchemmerSpainXuxue Feng RENEWAL
Salvatore X WieserCanadaIoni Bowcher PROPOSAL
Maria Z SergiGermanyXuxue Feng NEGOTIATION
Greenwood H OstroskyRussiaBernardo Dominic NEW
Adams E NestleArgentinaStephen Shaw NEGOTIATION
Rodrigues X VenereJapanIoni Bowcher NEW
Izzy G MorascaItalyOnyama Limba NEW
Costa Q AlbaresAustraliaAnna Fali PROPOSAL
Greenwood E MarrierArgentinaStephen Shaw NEGOTIATION
Johnson I StensethCanadaXuxue Feng UNQUALIFIED
Leja T FigeroaRussiaIvan Magalhaes UNQUALIFIED
Leja V BowleyJapanAmy Elsner UNQUALIFIED
Stacey K IturbideItalyAmy Elsner NEGOTIATION
Clifford G GlickGermanyStephen Shaw NEW
Octavia C OldroydIndiaOnyama Limba PROPOSAL
Nicolas P RutaAustraliaAsiya Javayant NEW
Juan N RutaBrazilStephen Shaw NEGOTIATION
Stacey G FlosiJapanIoni Bowcher NEGOTIATION
Johnson X OldroydIndiaAmy Elsner NEW
Arvin A MacleadGermanyStephen Shaw NEGOTIATION
Claire O VenereCanadaXuxue Feng RENEWAL
Mayumi C IturbideGermanyIoni Bowcher PROPOSAL
Costa Q RoysterSpainStephen Shaw QUALIFIED
Alejandro V AlbaresUnited KingdomElwin Sharvill RENEWAL
Leon Y SergiJapanIoni Bowcher QUALIFIED
Leja V NestleIndiaAsiya Javayant PROPOSAL
Ashley G VocelkaItalyIoni Bowcher NEGOTIATION
James R GarufiRussiaStephen Shaw PROPOSAL
Munro R PaprockiFranceStephen Shaw PROPOSAL
Ashley S BriddickItalyXuxue Feng QUALIFIED
Jeanfrancois W VocelkaAustraliaElwin Sharvill QUALIFIED
Morrow P AlbaresCanadaXuxue Feng RENEWAL
Mayumi O DoeUnited KingdomElwin Sharvill QUALIFIED
Johnson G MacleadItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin S DarakjySpainAmy Elsner RENEWAL
Silvio H NickaBrazilAmy Elsner PROPOSAL
David D PerinAustraliaAnna Fali NEW
Juan W BriddickCanadaAnna Fali RENEWAL
Clifford K RulapaughBrazilAsiya Javayant UNQUALIFIED
Ivar S CampainBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois S DoeBrazilStephen Shaw NEGOTIATION
Smith X RulapaughSpainAsiya Javayant QUALIFIED
Tony Z StockhamUnited KingdomBernardo Dominic PROPOSAL
Mayumi H MorascaRussiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon V WieserRussia2025-04-29Truhlar And Truhlar Attys UNQUALIFIED70Bernardo Dominic
1001Misaki B MorascaBrazil2025-04-13Benton, John B Jr RENEWAL14Ioni Bowcher
1002Jennifer O MacleadGermany2025-04-25Buckley Miller Wright RENEWAL11Stephen Shaw
1003Aditya V KuskoRussia2025-04-13Feiner Bros PROPOSAL54Xuxue Feng
1004Chavez C NestleJapan2025-04-15Rangoni Of Florence QUALIFIED79Bernardo Dominic
1005Darci G TollnerIndia2025-04-20Commercial Press RENEWAL82Stephen Shaw
1006Darci H SaylorsFrance2025-04-13Dorl, James J Esq UNQUALIFIED30Elwin Sharvill
1007Misaki U AmigonIndia2025-04-13Chemel, James L Cpa NEGOTIATION79Elwin Sharvill
1008James L SaylorsFrance2025-04-01Rousseaux, Michael Esq RENEWAL43Elwin Sharvill
1009Murillo Y DarakjyAustralia2025-04-21Dorl, James J Esq NEGOTIATION18Anna Fali
1010Isabel A FollerRussia2025-04-20King, Christopher A Esq NEGOTIATION79Ioni Bowcher
1011Costa M SaylorsUnited Kingdom2025-04-15Dorl, James J Esq NEW16Anna Fali
1012Costa L TollnerUnited Kingdom2025-04-08Feiner Bros NEW4Asiya Javayant
1013Francesco W StockhamItaly2025-04-20Chemel, James L Cpa RENEWAL30Ioni Bowcher
1014James C SlusarskiArgentina2025-04-27Feiner Bros UNQUALIFIED71Bernardo Dominic
1015Jones D SchemmerSpain2025-04-18Dorl, James J Esq UNQUALIFIED99Anna Fali
1016Salvatore T ShinkoItaly2025-04-01Truhlar And Truhlar Attys NEW37Onyama Limba
1017Mayumi O FigeroaBrazil2025-04-20Dorl, James J Esq QUALIFIED60Elwin Sharvill
1018Kadeem S OstroskyJapan2025-04-27Truhlar And Truhlar Attys PROPOSAL26Bernardo Dominic
1019Cody S CaldareraBrazil2025-04-14Morlong Associates NEW50Onyama Limba
1020Smith S ButtGermany2025-04-27Commercial Press UNQUALIFIED64Ivan Magalhaes
1021Julie V RulapaughAustralia2025-04-11Feiner Bros QUALIFIED93Ivan Magalhaes
1022Smith E FerenczRussia2025-04-05Rangoni Of Florence UNQUALIFIED42Stephen Shaw
1023Emily S PoquetteItaly2025-04-10Rangoni Of Florence NEW62Onyama Limba
1024Sinclair Y RulapaughAustralia2025-04-10Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1025Cody M BologniaAustralia2025-04-07Buckley Miller Wright RENEWAL69Bernardo Dominic
1026Ivar B MaletFrance2025-04-27Dorl, James J Esq RENEWAL13Ioni Bowcher
1027Juan Y MorascaGermany2025-04-22Chapman, Ross E Esq RENEWAL80Stephen Shaw
1028Morrow V SlusarskiCanada2025-04-22Printing Dimensions NEW11Anna Fali
1029Ivar X GlickRussia2025-04-10Feltz Printing Service NEGOTIATION59Xuxue Feng
1030Faith H SlusarskiJapan2025-03-31Feltz Printing Service NEW65Anna Fali
1031Antonio C BowleyGermany2025-04-11Feiner Bros NEGOTIATION46Bernardo Dominic
1032Murillo T StockhamFrance2025-04-15Rangoni Of Florence PROPOSAL20Bernardo Dominic
1033Costa T MacleadGermany2025-04-03Feiner Bros PROPOSAL76Bernardo Dominic
1034Adams F GarufiArgentina2025-04-23King, Christopher A Esq NEGOTIATION74Asiya Javayant
1035Julie A MarrierGermany2025-04-29Chemel, James L Cpa NEGOTIATION86Amy Elsner
1036Ashley H FollerFrance2025-04-24King, Christopher A Esq RENEWAL54Elwin Sharvill
1037Deepesh M AmigonJapan2025-04-08Rangoni Of Florence QUALIFIED50Ivan Magalhaes
1038Emily E PoquetteRussia2025-04-23Dorl, James J Esq PROPOSAL32Anna Fali
1039Alejandro V VenereBrazil2025-04-12Chemel, James L Cpa RENEWAL20Onyama Limba
1040Jeanfrancois G CampainRussia2025-04-18Commercial Press UNQUALIFIED85Ioni Bowcher
1041Nicolas H SchemmerGermany2025-04-09Rousseaux, Michael Esq RENEWAL49Ivan Magalhaes
1042James L KolmetzSpain2025-04-15Morlong Associates NEGOTIATION4Anna Fali
1043Antonio W StockhamIndia2025-04-19Commercial Press QUALIFIED47Onyama Limba
1044Smith F GillianSpain2025-04-18Chemel, James L Cpa RENEWAL51Anna Fali
1045Jones D GlickCanada2025-04-15Chapman, Ross E Esq PROPOSAL95Amy Elsner
1046Jennifer I PoquetteGermany2025-04-16Chapman, Ross E Esq NEGOTIATION98Bernardo Dominic
1047Arvin W SchemmerCanada2025-04-09Benton, John B Jr PROPOSAL44Ioni Bowcher
1048Jennifer P ChuiFrance2025-04-01Printing Dimensions RENEWAL3Bernardo Dominic
1049Salvatore F DoeArgentina2025-04-20Rangoni Of Florence PROPOSAL61Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio N MacleadCanadaXuxue Feng UNQUALIFIED
Juan E StensethBrazilOnyama Limba NEW
Ricardo Y MarrierGermanyIvan Magalhaes QUALIFIED
Aika H TollnerCanadaXuxue Feng RENEWAL
Darci Y FigeroaRussiaAsiya Javayant NEGOTIATION
Jeanfrancois H AlbaresJapanStephen Shaw UNQUALIFIED
Johnson R AmigonBrazilAsiya Javayant NEW
Wickens S DilliardItalyStephen Shaw QUALIFIED
Emily F InouyeUnited KingdomOnyama Limba UNQUALIFIED
Smith G GarufiGermanyOnyama Limba RENEWAL
Jennifer P CaldareraGermanyElwin Sharvill RENEWAL
Morrow M KolmetzIndiaXuxue Feng RENEWAL
Salvatore U ChuiGermanyXuxue Feng RENEWAL
Alejandro F KolmetzBrazilXuxue Feng NEGOTIATION
Sinclair O BologniaJapanAmy Elsner NEGOTIATION
Cody F StensethArgentinaXuxue Feng NEGOTIATION
Costa U CampainFranceBernardo Dominic UNQUALIFIED
Juan K SlusarskiFranceAmy Elsner NEGOTIATION
Chavez Z WhobreyItalyElwin Sharvill NEW
Stacey R DoeBrazilOnyama Limba PROPOSAL
Silvio J FerenczUnited KingdomBernardo Dominic NEGOTIATION
Silvio M StensethIndiaElwin Sharvill UNQUALIFIED
Ricardo N SlusarskiRussiaElwin Sharvill NEW
Leja X PoquetteJapanXuxue Feng QUALIFIED
Murillo S GauchoBrazilAsiya Javayant UNQUALIFIED
Aruna O CampainBrazilStephen Shaw QUALIFIED
Silvio X FigeroaUnited KingdomAnna Fali NEW
Smith B CaldareraFranceAsiya Javayant NEGOTIATION
Aika W FlosiCanadaBernardo Dominic NEGOTIATION
Greenwood F VenereRussiaAnna Fali NEGOTIATION
Ashley W MaletGermanyAsiya Javayant NEGOTIATION
Faith S SaylorsAustraliaBernardo Dominic UNQUALIFIED
Julie D InouyeCanadaAmy Elsner NEW
Leon P CampainUnited KingdomBernardo Dominic PROPOSAL
Silvio G StensethIndiaAmy Elsner QUALIFIED
Rodrigues Z ChuiItalyIvan Magalhaes NEGOTIATION
Rodrigues Z SchemmerItalyIvan Magalhaes NEW
Kaitlin W SergiArgentinaIvan Magalhaes NEGOTIATION
Julie R NickaCanadaIvan Magalhaes RENEWAL
Aditya N SlusarskiIndiaXuxue Feng NEW
Francesco L PerinCanadaIvan Magalhaes QUALIFIED
Ashley C MorascaSpainOnyama Limba NEW
Leja D PerinUnited KingdomStephen Shaw NEGOTIATION
Isabel R WaycottGermanyIvan Magalhaes NEW
Arvin R RoysterArgentinaIoni Bowcher NEW
Kaitlin I ChuiArgentinaXuxue Feng PROPOSAL
Ricardo F RulapaughJapanIvan Magalhaes UNQUALIFIED
Darci X KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Chavez H GillianGermanyIvan Magalhaes UNQUALIFIED
Maisha L GarufiUnited KingdomAmy Elsner RENEWAL
Frozen Columns
Name
Sinclair K Chui
Kadeem R Butt
Ivar J Schemmer
Adams D Kusko
David H Tollner
Julie X Malet
Juan U Garufi
Maria E Albares
Salvatore G Bolognia
Aditya F Chui
Jeanfrancois R Whobrey
Leja Y Nicka
Faith A Sergi
Claire A Wieser
Clifford V Rulapaugh
Tony D Flosi
Emily Z Oldroyd
Ivar S Glick
Juan U Flosi
Maisha I Chui
Octavia C Slusarski
Ashley H Wieser
Kaitlin R Marrier
Faith R Shinko
Jennifer Y Paprocki
Claire T Bowley
Silvio H Albares
Alejandro V Gaucho
Izzy Q Inouye
Maria Y Morasca
Kadeem E Wieser
Aika W Bowley
Costa B Morasca
Greenwood L Malet
Silvio A Garufi
Ashley X Tollner
Silvio L Malet
Greenwood C Slusarski
Julie L Glick
Morrow R Ferencz
Octavia D Waycott
Adams Z Schemmer
Clifford A Doe
Jeanfrancois S Briddick
Silvio J Nicka
Kaitlin J Ostrosky
Aditya F Perin
Jeanfrancois C Malet
Stacey L Shinko
Smith E Campain
IdCountryDate
1000India2025-04-23
1001Canada2025-04-15
1002India2025-04-25
1003United Kingdom2025-04-02
1004Australia2025-04-24
1005Russia2025-04-29
1006France2025-04-18
1007United Kingdom2025-04-14
1008France2025-04-12
1009Australia2025-04-09
1010Canada2025-04-06
1011India2025-04-07
1012Canada2025-04-06
1013Australia2025-04-20
1014India2025-04-14
1015Brazil2025-03-31
1016France2025-04-20
1017France2025-04-02
1018Japan2025-04-15
1019India2025-04-23
1020Japan2025-04-27
1021Japan2025-04-15
1022Canada2025-04-11
1023Argentina2025-04-11
1024India2025-04-05
1025Australia2025-04-27
1026Italy2025-04-14
1027India2025-04-10
1028Australia2025-04-10
1029Japan2025-04-11
1030Japan2025-04-22
1031Australia2025-04-23
1032India2025-04-28
1033Germany2025-04-19
1034United Kingdom2025-04-13
1035Australia2025-04-29
1036France2025-04-08
1037Italy2025-04-07
1038France2025-04-09
1039United Kingdom2025-04-11
1040Argentina2025-04-09
1041Japan2025-04-22
1042Germany2025-04-10
1043Russia2025-04-25
1044Argentina2025-04-29
1045France2025-04-05
1046United Kingdom2025-04-12
1047United Kingdom2025-04-03
1048Australia2025-04-12
1049France2025-04-06

On-Demand Data

NameIdCountryDate
Izzy R Schemmer1000Spain2025-04-10
Rodrigues O Saylors1001United Kingdom2025-04-02
Silvio T Marrier1002Germany2025-03-31
Smith Z Morasca1003Italy2025-04-25
Rodrigues Z Garufi1004Italy2025-04-21
Smith R Rim1005Brazil2025-04-18
Juan O Darakjy1006Italy2025-04-09
Julie O Sergi1007Germany2025-04-25
Kadeem C Gaucho1008France2025-04-09
Ricardo Q Perin1009Spain2025-04-24
James W Figeroa1010India2025-04-12
Arvin S Gaucho1011Australia2025-04-06
Francesco S Shinko1012Germany2025-04-20
Jones F Doe1013Australia2025-04-09
Aditya A Darakjy1014United Kingdom2025-04-09
Tony L Bowley1015Italy2025-04-27
Maria F Poquette1016Australia2025-04-14
Cody H Kusko1017Germany2025-04-27
Izzy D Bolognia1018Canada2025-04-09
Kadeem D Garufi1019Italy2025-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore N ChuiRussiaStephen Shaw RENEWAL
Salvatore M StockhamSpainXuxue Feng UNQUALIFIED
Kaitlin Z RutaBrazilAmy Elsner QUALIFIED
Alejandro V VenereArgentinaAnna Fali RENEWAL
Jennifer A FollerJapanStephen Shaw PROPOSAL
Murillo Y BowleyCanadaIvan Magalhaes NEW
Misaki P RutaBrazilElwin Sharvill QUALIFIED
Juan W SaylorsJapanIvan Magalhaes NEGOTIATION
Cody Q DoeArgentinaAsiya Javayant UNQUALIFIED
Aruna D StensethUnited KingdomAmy Elsner QUALIFIED
Emily I MaletRussiaAnna Fali NEW
Arvin G OldroydAustraliaStephen Shaw PROPOSAL
Aika L RimFranceStephen Shaw UNQUALIFIED
Ricardo K RutaGermanyAsiya Javayant PROPOSAL
Silvio U DarakjyItalyAsiya Javayant PROPOSAL
Maisha N BowleyBrazilAsiya Javayant PROPOSAL
Salvatore W NestleArgentinaAnna Fali PROPOSAL
Tony T OldroydBrazilAmy Elsner UNQUALIFIED
Claire P GarufiJapanElwin Sharvill NEW
Francesco Q CaudyJapanOnyama Limba RENEWAL
Silvio X FigeroaArgentinaAnna Fali NEGOTIATION
Sinclair R InouyeRussiaOnyama Limba PROPOSAL
Leja I RoysterSpainIoni Bowcher PROPOSAL
Aika Z ShinkoRussiaIoni Bowcher PROPOSAL
Wickens M AmigonSpainAsiya Javayant RENEWAL
Chavez V AmigonRussiaBernardo Dominic PROPOSAL
Silvio A RimAustraliaElwin Sharvill RENEWAL
Smith G OldroydUnited KingdomAmy Elsner NEW
Kaitlin S GlickAustraliaAnna Fali NEW
Kaitlin E BowleyGermanyAnna Fali NEW
Silvio R RimJapanAmy Elsner NEGOTIATION
Silvio C WaycottJapanXuxue Feng UNQUALIFIED
Deepesh Q FollerGermanyXuxue Feng PROPOSAL
Antonio Q KolmetzCanadaIvan Magalhaes NEGOTIATION
Jones E IturbideSpainIvan Magalhaes UNQUALIFIED
Murillo Z BriddickGermanyIvan Magalhaes NEGOTIATION
Mayumi N KuskoFranceAsiya Javayant UNQUALIFIED
Cody H GillianBrazilIoni Bowcher NEW
Adams U PoquetteArgentinaElwin Sharvill NEW
Greenwood E BowleyIndiaStephen 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>