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
Misaki A WaycottJapanAnna Fali UNQUALIFIED
Costa F RimJapanStephen Shaw PROPOSAL
Leon S PaprockiBrazilIvan Magalhaes QUALIFIED
Aruna O GauchoArgentinaXuxue Feng RENEWAL
Ivar B SaylorsItalyIoni Bowcher UNQUALIFIED
Jones R ButtFranceElwin Sharvill PROPOSAL
Aika R PaprockiIndiaAmy Elsner UNQUALIFIED
Julie E MarrierRussiaAsiya Javayant RENEWAL
Jones B KolmetzArgentinaIoni Bowcher NEGOTIATION
Emily Q DarakjySpainAnna Fali NEGOTIATION
Alejandro D SchemmerCanadaStephen Shaw QUALIFIED
Aika D StensethBrazilIoni Bowcher NEGOTIATION
Misaki Z FollerIndiaOnyama Limba QUALIFIED
Emily T ChuiUnited KingdomXuxue Feng QUALIFIED
Aruna L FlosiRussiaIvan Magalhaes PROPOSAL
Nicolas S InouyeBrazilIoni Bowcher NEW
Stacey X MaletItalyStephen Shaw UNQUALIFIED
Jennifer G GauchoArgentinaBernardo Dominic QUALIFIED
Rodrigues R CaudySpainElwin Sharvill UNQUALIFIED
Stacey F ButtJapanOnyama Limba UNQUALIFIED
Costa B MorascaItalyIoni Bowcher RENEWAL
Misaki W ChuiJapanIoni Bowcher PROPOSAL
Aditya L MacleadIndiaAsiya Javayant NEGOTIATION
Faith M BologniaJapanStephen Shaw RENEWAL
Jefferson P DoeJapanAnna Fali QUALIFIED
Johnson Z PaprockiIndiaXuxue Feng NEGOTIATION
Jones V NickaRussiaIvan Magalhaes NEGOTIATION
Julie H DoeArgentinaBernardo Dominic QUALIFIED
Maria E VenereBrazilAmy Elsner UNQUALIFIED
Smith Y WhobreyGermanyXuxue Feng UNQUALIFIED
Francesco E FerenczFranceIoni Bowcher UNQUALIFIED
Mayumi X NestleCanadaStephen Shaw QUALIFIED
Cody Q WieserIndiaIoni Bowcher PROPOSAL
Clifford T GlickSpainXuxue Feng QUALIFIED
Salvatore B MarrierCanadaStephen Shaw RENEWAL
Jeanfrancois S RulapaughSpainIoni Bowcher NEGOTIATION
Jefferson T PoquetteUnited KingdomAmy Elsner QUALIFIED
Ashley I StockhamFranceBernardo Dominic PROPOSAL
Claire Z WieserCanadaElwin Sharvill NEW
Aruna C NickaBrazilStephen Shaw NEW
Leja E SchemmerBrazilXuxue Feng PROPOSAL
Kaitlin X KuskoIndiaXuxue Feng PROPOSAL
Emily K AmigonGermanyAnna Fali NEGOTIATION
Jeanfrancois H DoeJapanAsiya Javayant QUALIFIED
Izzy V ButtItalyBernardo Dominic NEGOTIATION
David O MaletJapanXuxue Feng NEW
Salvatore B GarufiRussiaElwin Sharvill PROPOSAL
Greenwood R SaylorsIndiaElwin Sharvill RENEWAL
Misaki Y GauchoGermanyStephen Shaw QUALIFIED
Deepesh M CaudySpainIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan G RoysterCanadaAmy Elsner NEW
Octavia J RulapaughArgentinaAsiya Javayant QUALIFIED
Darci L KolmetzAustraliaOnyama Limba NEW
Francesco A CampainRussiaStephen Shaw PROPOSAL
Aika F WieserCanadaIoni Bowcher RENEWAL
Mayumi I CaudyCanadaElwin Sharvill RENEWAL
Mujtaba C CaudyItalyElwin Sharvill QUALIFIED
Juan J FlosiSpainBernardo Dominic RENEWAL
Leon I CaudyArgentinaOnyama Limba PROPOSAL
Aruna H VenereCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones A MarrierArgentina2024-05-25Chapman, Ross E Esq PROPOSAL30Onyama Limba
1001Nicolas H MarrierIndia2024-06-10Dorl, James J Esq PROPOSAL91Bernardo Dominic
1002Ricardo D CaudyItaly2024-05-23Morlong Associates NEW94Ivan Magalhaes
1003Jeanfrancois T AlbaresCanada2024-05-29Dorl, James J Esq NEW48Bernardo Dominic
1004Ivar C MaletJapan2024-06-09Buckley Miller Wright NEW18Ivan Magalhaes
1005Mayumi Z PerinSpain2024-06-06Chapman, Ross E Esq NEW33Ivan Magalhaes
1006Claire D SergiCanada2024-05-23Feltz Printing Service RENEWAL38Elwin Sharvill
1007Stacey L DilliardCanada2024-05-22Buckley Miller Wright NEW25Elwin Sharvill
1008Misaki F GlickBrazil2024-06-10Chanay, Jeffrey A Esq RENEWAL14Anna Fali
1009Antonio G MaletArgentina2024-05-27Chapman, Ross E Esq QUALIFIED38Anna Fali
1010Aruna D StockhamBrazil2024-06-11Chanay, Jeffrey A Esq QUALIFIED47Ivan Magalhaes
1011Clifford D GarufiArgentina2024-06-04Rousseaux, Michael Esq QUALIFIED72Anna Fali
1012Jefferson Q CaudyFrance2024-05-30Benton, John B Jr QUALIFIED94Anna Fali
1013David J GarufiCanada2024-06-02Rousseaux, Michael Esq NEGOTIATION91Stephen Shaw
1014Jeanfrancois Q DoeItaly2024-05-27King, Christopher A Esq QUALIFIED4Onyama Limba
1015Johnson Y GarufiFrance2024-06-11Rangoni Of Florence NEGOTIATION58Amy Elsner
1016Morrow V FigeroaGermany2024-06-08Buckley Miller Wright PROPOSAL18Asiya Javayant
1017Murillo L RulapaughIndia2024-06-05Chanay, Jeffrey A Esq UNQUALIFIED82Elwin Sharvill
1018Kadeem X KuskoIndia2024-06-08Buckley Miller Wright RENEWAL79Xuxue Feng
1019Tony J PoquetteIndia2024-05-20Rangoni Of Florence QUALIFIED39Ivan Magalhaes
1020Ivar G MarrierIndia2024-06-12Commercial Press PROPOSAL21Xuxue Feng
1021Cody P PaprockiUnited Kingdom2024-06-05Rangoni Of Florence NEGOTIATION70Amy Elsner
1022Darci B TollnerUnited Kingdom2024-06-07Feltz Printing Service NEGOTIATION89Elwin Sharvill
1023Smith O InouyeCanada2024-06-06Commercial Press RENEWAL75Amy Elsner
1024Smith N KuskoArgentina2024-05-16Dorl, James J Esq NEW13Asiya Javayant
1025Kadeem Q CampainAustralia2024-06-13Chemel, James L Cpa NEW2Asiya Javayant
1026Misaki S ShinkoBrazil2024-05-18Rousseaux, Michael Esq QUALIFIED32Amy Elsner
1027Aika W RoysterIndia2024-05-20Feltz Printing Service NEGOTIATION22Amy Elsner
1028Faith M SergiBrazil2024-05-17Truhlar And Truhlar Attys NEW12Ioni Bowcher
1029Leon A WieserArgentina2024-06-07Chapman, Ross E Esq UNQUALIFIED20Xuxue Feng
1030Octavia T MorascaIndia2024-05-18Feltz Printing Service UNQUALIFIED23Onyama Limba
1031Kaitlin S VocelkaCanada2024-06-13Feiner Bros UNQUALIFIED70Asiya Javayant
1032Arvin X FigeroaGermany2024-05-18King, Christopher A Esq UNQUALIFIED87Bernardo Dominic
1033Morrow H GauchoUnited Kingdom2024-06-07Rangoni Of Florence NEW17Asiya Javayant
1034Ricardo I BowleyBrazil2024-05-19King, Christopher A Esq NEGOTIATION15Ioni Bowcher
1035Smith U RulapaughIndia2024-05-21Chapman, Ross E Esq UNQUALIFIED89Onyama Limba
1036Aika F FollerSpain2024-05-30Chemel, James L Cpa PROPOSAL11Ioni Bowcher
1037Kadeem X MacleadArgentina2024-06-01Buckley Miller Wright NEW54Amy Elsner
1038Jeanfrancois R BologniaItaly2024-06-09Buckley Miller Wright PROPOSAL47Onyama Limba
1039Mayumi C RoysterFrance2024-05-26Truhlar And Truhlar Attys PROPOSAL7Amy Elsner
1040Silvio S SergiRussia2024-05-21Printing Dimensions UNQUALIFIED95Stephen Shaw
1041Murillo C FerenczAustralia2024-05-23Rousseaux, Michael Esq UNQUALIFIED98Stephen Shaw
1042Jennifer L DarakjyItaly2024-06-14Benton, John B Jr NEGOTIATION83Ioni Bowcher
1043Ashley Q DarakjyFrance2024-06-01Morlong Associates NEW10Stephen Shaw
1044David H AmigonJapan2024-05-17Benton, John B Jr QUALIFIED99Ioni Bowcher
1045Alejandro F MaletCanada2024-06-06Benton, John B Jr NEW50Onyama Limba
1046Ivar C CaldareraBrazil2024-05-23Feiner Bros QUALIFIED42Xuxue Feng
1047Emily W ButtItaly2024-06-08Chapman, Ross E Esq NEW95Amy Elsner
1048Nicolas Q GauchoIndia2024-06-14Rangoni Of Florence UNQUALIFIED39Ioni Bowcher
1049Julie Y DoeCanada2024-06-07Feltz Printing Service UNQUALIFIED87Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens T MarrierJapanIoni Bowcher QUALIFIED
Cody N InouyeRussiaXuxue Feng PROPOSAL
Darci M IturbideIndiaIoni Bowcher PROPOSAL
Alejandro Y FlosiCanadaXuxue Feng NEW
Rodrigues L DoeFranceIvan Magalhaes NEGOTIATION
Ashley R VocelkaRussiaBernardo Dominic UNQUALIFIED
Murillo S AlbaresArgentinaOnyama Limba PROPOSAL
Leja O PoquetteAustraliaAsiya Javayant QUALIFIED
Alejandro X OstroskyIndiaOnyama Limba NEGOTIATION
Julie H RimAustraliaOnyama Limba NEGOTIATION
Jennifer Q PoquetteGermanyAsiya Javayant NEGOTIATION
Misaki W MaletArgentinaAmy Elsner PROPOSAL
Clifford J SergiCanadaIvan Magalhaes QUALIFIED
Morrow D KolmetzFranceStephen Shaw UNQUALIFIED
Nicolas X StensethArgentinaAnna Fali NEW
Aika S BriddickRussiaIoni Bowcher QUALIFIED
Clifford E FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson F AlbaresAustraliaBernardo Dominic PROPOSAL
Wickens N OldroydFranceAmy Elsner QUALIFIED
Isabel Q MorascaUnited KingdomIoni Bowcher NEW
Tony Y ChuiUnited KingdomAnna Fali RENEWAL
Rodrigues A CaldareraSpainElwin Sharvill QUALIFIED
Aika L RoysterAustraliaBernardo Dominic PROPOSAL
Misaki L AlbaresJapanAnna Fali QUALIFIED
Adams T IturbideItalyXuxue Feng UNQUALIFIED
Costa U AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo E VenereAustraliaAsiya Javayant RENEWAL
Smith L DoeSpainXuxue Feng QUALIFIED
Greenwood Q AlbaresAustraliaIvan Magalhaes NEGOTIATION
Johnson V PaprockiJapanOnyama Limba RENEWAL
Darci W StockhamIndiaAnna Fali QUALIFIED
Sinclair N GarufiArgentinaStephen Shaw PROPOSAL
Salvatore K MaletRussiaIvan Magalhaes NEW
Emily Q InouyeItalyBernardo Dominic PROPOSAL
Kadeem O KolmetzBrazilBernardo Dominic QUALIFIED
Aditya U PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Arvin Q RimBrazilXuxue Feng NEGOTIATION
Isabel Q RulapaughJapanIoni Bowcher RENEWAL
Mujtaba G VenereSpainXuxue Feng NEW
Jefferson V RulapaughGermanyAmy Elsner NEW
Jones V ChuiRussiaAsiya Javayant UNQUALIFIED
Maria P GauchoRussiaAnna Fali UNQUALIFIED
Jennifer O SaylorsSpainBernardo Dominic RENEWAL
Chavez K PoquetteBrazilIvan Magalhaes NEW
Juan T AmigonFranceOnyama Limba NEW
Leja U ButtAustraliaAnna Fali NEW
Jefferson H VocelkaFranceIvan Magalhaes NEW
Nicolas A MaletIndiaElwin Sharvill NEW
Isabel V NickaGermanyIvan Magalhaes NEW
Silvio N TollnerIndiaBernardo Dominic NEW
Frozen Columns
Name
David W Ostrosky
Stacey Y Poquette
Emily I Slusarski
Julie W Albares
Aika T Figeroa
Chavez M Doe
Johnson Z Amigon
David H Saylors
Jefferson V Briddick
James M Kolmetz
Mayumi H Saylors
Mujtaba V Gillian
Faith L Morasca
Costa L Royster
Murillo R Waycott
James W Ruta
Murillo X Royster
Antonio T Shinko
Aruna Z Butt
Maria B Bowley
Octavia L Venere
Alejandro Z Tollner
Ricardo F Stenseth
Jones B Bowley
Leon M Rulapaugh
Mayumi C Caldarera
Kaitlin X Royster
Mayumi H Poquette
Salvatore V Dilliard
Jennifer R Butt
Smith P Poquette
Octavia D Slusarski
Murillo H Amigon
Ricardo M Kolmetz
Maria U Slusarski
Alejandro B Oldroyd
Juan Y Bowley
Stacey W Poquette
Izzy E Nestle
Izzy E Garufi
Leja B Iturbide
Aika P Butt
Morrow F Ferencz
Leja L Sergi
Costa T Malet
Smith Y Foller
Izzy A Garufi
Deepesh H Rulapaugh
Adams C Ferencz
Mujtaba Q Rulapaugh
IdCountryDate
1000Brazil2024-06-09
1001Germany2024-05-22
1002Argentina2024-05-28
1003Brazil2024-05-19
1004India2024-05-31
1005Russia2024-06-04
1006Italy2024-06-08
1007Italy2024-05-20
1008United Kingdom2024-06-04
1009Brazil2024-06-10
1010Germany2024-06-03
1011Argentina2024-06-11
1012Japan2024-06-08
1013Japan2024-06-01
1014Canada2024-05-23
1015Japan2024-06-07
1016Spain2024-05-23
1017France2024-06-12
1018Argentina2024-06-13
1019Germany2024-05-30
1020Spain2024-05-25
1021United Kingdom2024-05-28
1022Spain2024-05-26
1023Spain2024-05-30
1024Japan2024-05-31
1025India2024-05-21
1026Japan2024-05-31
1027France2024-06-11
1028Russia2024-06-04
1029Italy2024-06-13
1030United Kingdom2024-06-02
1031Germany2024-06-14
1032Argentina2024-05-20
1033Canada2024-06-03
1034Canada2024-06-07
1035Spain2024-06-14
1036Spain2024-06-07
1037Argentina2024-05-28
1038Russia2024-05-22
1039Canada2024-05-20
1040Japan2024-05-29
1041France2024-06-05
1042France2024-05-24
1043Japan2024-06-04
1044Spain2024-05-18
1045Brazil2024-05-24
1046Russia2024-05-31
1047Argentina2024-05-27
1048Italy2024-06-01
1049Argentina2024-06-07

On-Demand Data

NameIdCountryDate
Cody R Foller1000Japan2024-05-17
Ashley H Caldarera1001India2024-05-19
Clifford H Ruta1002India2024-05-29
Murillo D Campain1003Brazil2024-06-07
Sinclair T Kusko1004Germany2024-06-02
Greenwood I Wieser1005Australia2024-05-16
Johnson G Morasca1006United Kingdom2024-05-22
Darci X Ostrosky1007India2024-05-22
Aika Z Garufi1008United Kingdom2024-06-04
Silvio Y Nestle1009Germany2024-06-14
Alejandro S Ruta1010Spain2024-05-19
Munro F Slusarski1011Australia2024-06-09
Antonio W Wieser1012France2024-05-19
Rodrigues D Schemmer1013Italy2024-05-31
Clifford U Oldroyd1014Italy2024-06-07
Tony I Stockham1015Spain2024-05-27
Arvin F Poquette1016India2024-05-16
Aika A Stockham1017India2024-05-24
Ashley M Bolognia1018United Kingdom2024-06-01
Costa P Oldroyd1019Russia2024-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi S DilliardGermanyOnyama Limba UNQUALIFIED
David Z WaycottIndiaXuxue Feng QUALIFIED
Claire Z DilliardItalyAnna Fali NEW
Aruna Z MaletBrazilAmy Elsner RENEWAL
Clifford X VenereCanadaAsiya Javayant QUALIFIED
Izzy I GillianFranceBernardo Dominic UNQUALIFIED
Leon E DilliardSpainIvan Magalhaes PROPOSAL
Aika Z BologniaRussiaAnna Fali UNQUALIFIED
Leja W ChuiRussiaOnyama Limba NEGOTIATION
Maisha L GarufiArgentinaBernardo Dominic QUALIFIED
Izzy B RulapaughCanadaIoni Bowcher NEGOTIATION
Mujtaba K AmigonSpainIvan Magalhaes RENEWAL
Aruna D FigeroaAustraliaIvan Magalhaes NEGOTIATION
Kaitlin C AmigonJapanElwin Sharvill PROPOSAL
Mayumi Q StockhamIndiaBernardo Dominic NEW
Chavez T StockhamItalyXuxue Feng PROPOSAL
Leja N RimRussiaStephen Shaw NEW
Smith J SlusarskiAustraliaAnna Fali NEGOTIATION
Aika K RutaArgentinaIvan Magalhaes UNQUALIFIED
Adams J SergiRussiaIoni Bowcher NEGOTIATION
Salvatore I VocelkaSpainIvan Magalhaes NEGOTIATION
Leon O AmigonRussiaIvan Magalhaes UNQUALIFIED
Leja V OstroskyGermanyStephen Shaw QUALIFIED
Ivar T MaletAustraliaStephen Shaw NEW
Faith D FerenczGermanyAnna Fali UNQUALIFIED
Aditya G DilliardItalyBernardo Dominic PROPOSAL
Leja R StockhamAustraliaStephen Shaw NEW
Leon R VenereAustraliaBernardo Dominic NEW
Ashley Y WieserSpainElwin Sharvill NEW
Stacey J FollerSpainOnyama Limba PROPOSAL
Smith N PaprockiSpainOnyama Limba PROPOSAL
Julie G PaprockiIndiaBernardo Dominic RENEWAL
Darci B BowleyRussiaStephen Shaw QUALIFIED
James M SaylorsFranceIoni Bowcher NEGOTIATION
Emily F VocelkaSpainAmy Elsner NEGOTIATION
Tony G StensethUnited KingdomAnna Fali NEW
Mayumi Z FollerSpainBernardo Dominic RENEWAL
Kadeem M AlbaresUnited KingdomAmy Elsner NEW
Deepesh A SaylorsCanadaAnna Fali RENEWAL
Kaitlin N WhobreyJapanAnna Fali 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>