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
Jefferson K GarufiItalyIvan Magalhaes QUALIFIED
Juan B SchemmerIndiaAnna Fali QUALIFIED
Costa W RutaIndiaElwin Sharvill NEGOTIATION
Antonio D SergiSpainAmy Elsner RENEWAL
Arvin L ChuiGermanyElwin Sharvill QUALIFIED
Clifford H InouyeIndiaXuxue Feng NEW
Silvio B RimRussiaIvan Magalhaes NEW
Maria X MorascaGermanyAnna Fali UNQUALIFIED
Ricardo U FigeroaCanadaElwin Sharvill NEW
Mayumi J GauchoAustraliaOnyama Limba PROPOSAL
Mayumi W ShinkoCanadaIvan Magalhaes QUALIFIED
Faith T BowleySpainStephen Shaw RENEWAL
Silvio Q PaprockiArgentinaAsiya Javayant QUALIFIED
Leja N OstroskyBrazilXuxue Feng PROPOSAL
Antonio H OldroydJapanIoni Bowcher RENEWAL
Nicolas S AmigonArgentinaBernardo Dominic NEW
Maisha M ChuiItalyIvan Magalhaes RENEWAL
Juan J IturbideIndiaXuxue Feng RENEWAL
Munro E ShinkoIndiaAmy Elsner PROPOSAL
Jefferson A FerenczJapanAsiya Javayant PROPOSAL
Francesco F FigeroaSpainElwin Sharvill NEGOTIATION
Alejandro P SchemmerFranceIvan Magalhaes NEGOTIATION
Munro Q MaletArgentinaStephen Shaw PROPOSAL
David N IturbideGermanyStephen Shaw PROPOSAL
Arvin O NestleBrazilAsiya Javayant QUALIFIED
Stacey E SergiBrazilAnna Fali PROPOSAL
Adams Z StensethRussiaIoni Bowcher NEGOTIATION
Faith N MacleadJapanBernardo Dominic NEW
Leja Z MaletAustraliaAsiya Javayant QUALIFIED
Ashley V GauchoItalyBernardo Dominic NEW
Emily J NickaBrazilXuxue Feng NEW
Misaki Z VocelkaUnited KingdomIoni Bowcher NEGOTIATION
Emily J CampainAustraliaIoni Bowcher NEW
Greenwood G IturbideGermanyBernardo Dominic NEGOTIATION
Leja B GillianFranceOnyama Limba PROPOSAL
Francesco R SlusarskiFranceAnna Fali NEW
Leja X MaletGermanyAnna Fali NEGOTIATION
Darci G NestleRussiaIoni Bowcher RENEWAL
Jennifer Z FerenczJapanXuxue Feng UNQUALIFIED
Costa L MacleadIndiaAmy Elsner QUALIFIED
Leja X TollnerUnited KingdomStephen Shaw RENEWAL
James V FigeroaRussiaBernardo Dominic UNQUALIFIED
Jefferson U CampainFranceAmy Elsner UNQUALIFIED
Tony E RulapaughGermanyBernardo Dominic PROPOSAL
Smith H RimIndiaElwin Sharvill QUALIFIED
Ivar D CaldareraRussiaBernardo Dominic QUALIFIED
Claire Y VocelkaIndiaIoni Bowcher NEW
Octavia U ShinkoIndiaIoni Bowcher NEW
Rodrigues Y MaletFranceOnyama Limba QUALIFIED
James O KolmetzFranceXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Octavia P PoquetteFranceAsiya Javayant NEGOTIATION
Alejandro Q CaudyUnited KingdomBernardo Dominic UNQUALIFIED
James Y InouyeRussiaAnna Fali PROPOSAL
Juan C RulapaughAustraliaStephen Shaw UNQUALIFIED
Octavia H CaudyArgentinaIvan Magalhaes PROPOSAL
James F VocelkaFranceIvan Magalhaes NEGOTIATION
Isabel M KuskoGermanyXuxue Feng QUALIFIED
Arvin N FlosiItalyStephen Shaw QUALIFIED
Rodrigues I VocelkaIndiaElwin Sharvill PROPOSAL
Salvatore X MarrierSpainIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio T PoquetteAustralia2026-07-31Rousseaux, Michael Esq NEW27Asiya Javayant
1001Ivar Q WhobreyArgentina2026-08-12Buckley Miller Wright PROPOSAL75Onyama Limba
1002Isabel V VenereBrazil2026-07-26Printing Dimensions NEGOTIATION98Ioni Bowcher
1003Murillo H WaycottRussia2026-08-23Feiner Bros PROPOSAL26Asiya Javayant
1004Misaki B GillianJapan2026-08-01Buckley Miller Wright QUALIFIED47Ivan Magalhaes
1005Francesco N MacleadItaly2026-08-03Commercial Press UNQUALIFIED34Onyama Limba
1006Jeanfrancois J FlosiUnited Kingdom2026-08-04Chanay, Jeffrey A Esq RENEWAL79Asiya Javayant
1007Arvin P DilliardIndia2026-07-27Printing Dimensions RENEWAL25Elwin Sharvill
1008Wickens U VocelkaJapan2026-08-08Feltz Printing Service NEW54Anna Fali
1009Wickens O GlickUnited Kingdom2026-08-13Feiner Bros NEW5Ivan Magalhaes
1010Leon X DoeUnited Kingdom2026-08-05Dorl, James J Esq NEW67Stephen Shaw
1011Antonio L ShinkoItaly2026-08-22Printing Dimensions QUALIFIED81Stephen Shaw
1012Tony H OstroskyRussia2026-07-31Rangoni Of Florence NEGOTIATION40Stephen Shaw
1013Leon I CaudyJapan2026-08-08Feiner Bros NEGOTIATION63Bernardo Dominic
1014Emily Y OstroskyAustralia2026-08-23Chemel, James L Cpa UNQUALIFIED80Asiya Javayant
1015Jeanfrancois P SergiUnited Kingdom2026-07-26Buckley Miller Wright UNQUALIFIED85Amy Elsner
1016Aditya C MarrierFrance2026-08-09Chapman, Ross E Esq PROPOSAL84Ioni Bowcher
1017Darci B GarufiIndia2026-08-06Commercial Press QUALIFIED11Ivan Magalhaes
1018Darci E CaudySpain2026-08-12Dorl, James J Esq NEGOTIATION63Ivan Magalhaes
1019Smith A DoeGermany2026-08-18Feltz Printing Service PROPOSAL91Xuxue Feng
1020Julie P PoquetteJapan2026-08-20Feltz Printing Service NEW93Anna Fali
1021Murillo V AlbaresCanada2026-08-05Feltz Printing Service NEGOTIATION1Bernardo Dominic
1022Juan M SlusarskiFrance2026-07-25Dorl, James J Esq RENEWAL65Stephen Shaw
1023Antonio J ButtUnited Kingdom2026-08-12Chanay, Jeffrey A Esq RENEWAL75Xuxue Feng
1024Adams K OstroskyGermany2026-08-08Printing Dimensions UNQUALIFIED60Stephen Shaw
1025Darci M RutaCanada2026-07-31Buckley Miller Wright NEW15Anna Fali
1026Deepesh E KuskoAustralia2026-08-16Commercial Press UNQUALIFIED39Ivan Magalhaes
1027Alejandro R SaylorsItaly2026-08-13Truhlar And Truhlar Attys RENEWAL11Elwin Sharvill
1028Maria K PoquetteArgentina2026-08-21Chemel, James L Cpa UNQUALIFIED67Bernardo Dominic
1029Isabel B SaylorsArgentina2026-07-28Dorl, James J Esq PROPOSAL87Asiya Javayant
1030Juan V DoeSpain2026-08-20Benton, John B Jr QUALIFIED56Anna Fali
1031Jeanfrancois B DarakjyRussia2026-08-01Feiner Bros RENEWAL2Anna Fali
1032Sinclair C MarrierBrazil2026-08-01Feiner Bros RENEWAL31Bernardo Dominic
1033Octavia N VenereCanada2026-08-22King, Christopher A Esq RENEWAL22Bernardo Dominic
1034Leja O RutaSpain2026-08-15Feiner Bros UNQUALIFIED4Onyama Limba
1035Francesco T InouyeFrance2026-08-07Morlong Associates PROPOSAL30Asiya Javayant
1036Misaki V StensethCanada2026-07-31Dorl, James J Esq RENEWAL12Bernardo Dominic
1037Murillo J MaletCanada2026-08-06Chanay, Jeffrey A Esq RENEWAL88Xuxue Feng
1038Mayumi X MacleadBrazil2026-08-22Dorl, James J Esq NEW93Bernardo Dominic
1039Emily W MarrierCanada2026-08-06Buckley Miller Wright NEW95Anna Fali
1040Julie X GillianAustralia2026-08-09Feiner Bros PROPOSAL87Stephen Shaw
1041Ricardo Z MacleadSpain2026-08-04Rangoni Of Florence UNQUALIFIED59Elwin Sharvill
1042Isabel S BriddickGermany2026-07-26Commercial Press RENEWAL38Ioni Bowcher
1043Octavia R FigeroaItaly2026-08-23King, Christopher A Esq NEGOTIATION33Stephen Shaw
1044Aika B StensethJapan2026-08-17King, Christopher A Esq UNQUALIFIED59Amy Elsner
1045Morrow B SchemmerGermany2026-08-14Chanay, Jeffrey A Esq NEGOTIATION8Stephen Shaw
1046Aika S DarakjyGermany2026-08-22Truhlar And Truhlar Attys PROPOSAL37Ioni Bowcher
1047David D BologniaJapan2026-08-02Rousseaux, Michael Esq UNQUALIFIED32Ioni Bowcher
1048Nicolas A WaycottFrance2026-08-09Printing Dimensions RENEWAL62Amy Elsner
1049Leja Q RimGermany2026-08-11Benton, John B Jr UNQUALIFIED61Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ivar P SlusarskiGermanyAmy Elsner NEGOTIATION
Greenwood A OstroskySpainAmy Elsner NEGOTIATION
Darci S DarakjyAustraliaStephen Shaw NEW
Arvin F RutaItalyXuxue Feng NEW
Isabel P DoeCanadaAnna Fali PROPOSAL
Aika U RulapaughUnited KingdomAnna Fali NEGOTIATION
Faith K ChuiFranceElwin Sharvill NEGOTIATION
David U MarrierCanadaIoni Bowcher QUALIFIED
Greenwood U BriddickFranceAnna Fali NEW
Chavez E BowleyAustraliaAmy Elsner RENEWAL
Julie L FollerAustraliaStephen Shaw UNQUALIFIED
Aruna O OldroydFranceOnyama Limba QUALIFIED
Ivar F ShinkoBrazilIoni Bowcher PROPOSAL
Arvin S DarakjyArgentinaXuxue Feng QUALIFIED
Deepesh I GlickCanadaXuxue Feng NEW
Jeanfrancois A RulapaughGermanyAnna Fali NEW
Emily H NestleArgentinaAsiya Javayant NEW
Cody C StockhamSpainAsiya Javayant UNQUALIFIED
Isabel B GarufiRussiaAnna Fali UNQUALIFIED
Julie Y SaylorsCanadaXuxue Feng NEW
Nicolas Z AlbaresCanadaAmy Elsner PROPOSAL
Munro C OldroydAustraliaElwin Sharvill NEGOTIATION
David J TollnerSpainStephen Shaw NEW
Mayumi A MarrierGermanyBernardo Dominic NEGOTIATION
Maria I RulapaughCanadaElwin Sharvill NEGOTIATION
Murillo G DoeJapanStephen Shaw PROPOSAL
Nicolas O SchemmerUnited KingdomStephen Shaw NEGOTIATION
Stacey H MaletFranceBernardo Dominic NEW
Johnson K KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Tony Y NickaFranceIoni Bowcher UNQUALIFIED
Ivar Y SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Greenwood R WhobreyRussiaAsiya Javayant RENEWAL
Silvio G MaletIndiaIoni Bowcher UNQUALIFIED
Sinclair S SaylorsIndiaAmy Elsner QUALIFIED
Aika Z KolmetzItalyIoni Bowcher PROPOSAL
Mujtaba B MorascaAustraliaBernardo Dominic UNQUALIFIED
Sinclair I DilliardSpainAsiya Javayant NEW
Nicolas R NestleRussiaIoni Bowcher PROPOSAL
Munro W SaylorsRussiaOnyama Limba QUALIFIED
Arvin M ChuiItalyOnyama Limba NEGOTIATION
Munro V MaletAustraliaXuxue Feng PROPOSAL
Mujtaba J FigeroaJapanBernardo Dominic UNQUALIFIED
Isabel N CaldareraGermanyOnyama Limba UNQUALIFIED
Morrow L DoeSpainElwin Sharvill NEGOTIATION
Faith W CampainBrazilIvan Magalhaes QUALIFIED
Juan W CampainSpainAsiya Javayant PROPOSAL
Jennifer X ButtUnited KingdomOnyama Limba PROPOSAL
Ricardo L ShinkoJapanXuxue Feng NEGOTIATION
Cody U MarrierFranceBernardo Dominic NEW
Jefferson H RulapaughSpainIvan Magalhaes QUALIFIED
Frozen Columns
Name
Leon G Venere
Juan T Dilliard
Antonio C Bolognia
Jefferson U Iturbide
Aditya W Malet
Adams E Figeroa
Ashley O Doe
Faith C Chui
Mayumi A Tollner
Izzy T Kusko
Leon L Gaucho
Stacey C Nestle
Claire H Foller
Izzy W Rim
Mayumi M Figeroa
Emily F Whobrey
Ricardo X Whobrey
Ricardo W Dilliard
Cody N Paprocki
Mujtaba E Flosi
Cody X Nestle
Alejandro M Tollner
Darci O Ruta
Ivar X Caldarera
Octavia N Wieser
Octavia D Waycott
Stacey N Darakjy
Claire T Briddick
Tony I Gaucho
Alejandro A Chui
Darci V Shinko
Jefferson H Shinko
Aruna N Ruta
Stacey Q Gillian
Aruna J Slusarski
Emily S Schemmer
Jeanfrancois G Whobrey
Isabel H Rulapaugh
Francesco Z Oldroyd
Mujtaba C Kolmetz
Salvatore E Stenseth
James Y Glick
Aditya G Darakjy
Kadeem Z Bowley
Jefferson I Marrier
Faith T Shinko
Ashley B Wieser
Rodrigues K Kusko
Mayumi Y Saylors
Jeanfrancois W Kolmetz
IdCountryDate
1000Russia2026-08-01
1001Japan2026-08-10
1002Japan2026-08-14
1003France2026-08-02
1004United Kingdom2026-08-13
1005Japan2026-08-14
1006India2026-08-12
1007Russia2026-08-17
1008Italy2026-07-31
1009Spain2026-08-22
1010Germany2026-08-11
1011Brazil2026-08-16
1012Germany2026-07-31
1013Australia2026-07-29
1014Italy2026-08-15
1015Australia2026-08-05
1016Spain2026-08-19
1017France2026-08-17
1018France2026-08-15
1019Canada2026-08-17
1020Australia2026-08-21
1021Japan2026-08-23
1022Canada2026-08-22
1023Australia2026-08-12
1024Australia2026-07-31
1025Japan2026-07-30
1026Russia2026-08-09
1027Spain2026-08-16
1028Russia2026-07-31
1029United Kingdom2026-07-31
1030Argentina2026-08-02
1031Italy2026-08-15
1032Spain2026-08-19
1033Canada2026-08-06
1034United Kingdom2026-08-01
1035Australia2026-07-31
1036Argentina2026-08-02
1037Russia2026-08-15
1038Germany2026-08-13
1039Australia2026-08-21
1040Italy2026-08-01
1041Russia2026-07-28
1042Canada2026-08-04
1043Brazil2026-08-16
1044Australia2026-08-03
1045Canada2026-08-05
1046Japan2026-08-10
1047Brazil2026-07-27
1048France2026-07-26
1049Brazil2026-08-03

On-Demand Data

NameIdCountryDate
Tony U Rulapaugh1000Italy2026-08-04
Jefferson N Nicka1001India2026-08-07
Munro E Waycott1002Russia2026-07-30
Wickens S Shinko1003Brazil2026-08-08
Costa M Dilliard1004Japan2026-08-20
Misaki W Briddick1005Australia2026-08-04
Ricardo B Dilliard1006France2026-07-26
Costa J Schemmer1007Argentina2026-08-08
Mujtaba F Maclead1008Japan2026-08-09
Faith W Caldarera1009United Kingdom2026-07-27
Nicolas X Rulapaugh1010France2026-08-22
Misaki B Kusko1011Germany2026-08-20
Leja D Stockham1012Spain2026-08-03
Emily M Venere1013Australia2026-07-25
Murillo W Iturbide1014Brazil2026-08-09
Tony W Glick1015Italy2026-08-09
Adams E Foller1016Italy2026-08-05
Leon D Royster1017Australia2026-08-03
Leja X Iturbide1018India2026-08-21
Silvio M Oldroyd1019United Kingdom2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire E GarufiJapanAmy Elsner RENEWAL
Salvatore C MaletRussiaElwin Sharvill QUALIFIED
Isabel S ButtRussiaStephen Shaw NEGOTIATION
Isabel A RimRussiaXuxue Feng QUALIFIED
Greenwood X StensethJapanIoni Bowcher PROPOSAL
Greenwood P RutaUnited KingdomBernardo Dominic NEW
Adams B RoysterBrazilAsiya Javayant UNQUALIFIED
Antonio L SergiSpainElwin Sharvill NEGOTIATION
Francesco P GauchoItalyStephen Shaw NEGOTIATION
Aditya W DarakjyUnited KingdomStephen Shaw NEGOTIATION
James R VenereFranceIoni Bowcher PROPOSAL
Rodrigues X RutaFranceIoni Bowcher NEW
Deepesh J OldroydFranceAmy Elsner RENEWAL
Alejandro E MaletRussiaAmy Elsner NEW
Morrow U BriddickJapanIvan Magalhaes RENEWAL
Leon D MorascaGermanyIvan Magalhaes UNQUALIFIED
Leon U FigeroaArgentinaAnna Fali NEGOTIATION
Izzy N CaudyBrazilAnna Fali NEGOTIATION
Tony N RimItalyXuxue Feng NEGOTIATION
Francesco E PerinCanadaIvan Magalhaes PROPOSAL
Faith V DilliardCanadaAmy Elsner RENEWAL
Octavia Y PerinGermanyIoni Bowcher QUALIFIED
Rodrigues A MacleadSpainIvan Magalhaes PROPOSAL
Chavez U TollnerAustraliaIvan Magalhaes NEGOTIATION
Greenwood W MacleadArgentinaXuxue Feng PROPOSAL
Stacey F MarrierJapanXuxue Feng PROPOSAL
David U AmigonAustraliaIoni Bowcher PROPOSAL
Maisha C ButtRussiaAsiya Javayant UNQUALIFIED
Wickens Z InouyeItalyElwin Sharvill UNQUALIFIED
Smith R RulapaughIndiaStephen Shaw PROPOSAL
Greenwood D ShinkoJapanAmy Elsner UNQUALIFIED
Wickens Q SaylorsIndiaStephen Shaw RENEWAL
Leja N PerinBrazilAmy Elsner UNQUALIFIED
Cody C RutaUnited KingdomAnna Fali UNQUALIFIED
Tony C MarrierJapanElwin Sharvill RENEWAL
Stacey J FollerRussiaAmy Elsner NEW
Jennifer I VenereUnited KingdomAsiya Javayant UNQUALIFIED
Cody N FigeroaRussiaAnna Fali NEW
Jeanfrancois R GlickItalyIvan Magalhaes PROPOSAL
David Q GlickSpainAnna Fali UNQUALIFIED

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