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 V TollnerCanadaIoni Bowcher UNQUALIFIED
Nicolas O OldroydRussiaIvan Magalhaes NEW
Sinclair P FigeroaCanadaElwin Sharvill RENEWAL
Isabel I OstroskyUnited KingdomOnyama Limba NEGOTIATION
David I AmigonItalyAnna Fali NEGOTIATION
Murillo J DilliardArgentinaAsiya Javayant QUALIFIED
Octavia L OldroydItalyAmy Elsner UNQUALIFIED
Greenwood L MacleadCanadaBernardo Dominic NEGOTIATION
Silvio R TollnerBrazilIvan Magalhaes PROPOSAL
Izzy U AlbaresAustraliaAmy Elsner UNQUALIFIED
Johnson Q MaletGermanyStephen Shaw RENEWAL
Stacey W SchemmerCanadaBernardo Dominic RENEWAL
Greenwood G ChuiBrazilAmy Elsner NEGOTIATION
Misaki H OstroskyJapanAmy Elsner NEW
Maria N FerenczItalyIvan Magalhaes RENEWAL
Emily U StensethRussiaStephen Shaw QUALIFIED
Izzy M ButtUnited KingdomElwin Sharvill NEW
Mayumi X SchemmerArgentinaElwin Sharvill PROPOSAL
Jeanfrancois N StockhamIndiaElwin Sharvill UNQUALIFIED
Mayumi U MaletFranceIvan Magalhaes QUALIFIED
Aruna O SchemmerRussiaElwin Sharvill UNQUALIFIED
Salvatore T GauchoUnited KingdomAmy Elsner NEGOTIATION
Francesco H StensethSpainElwin Sharvill RENEWAL
Maria R AlbaresCanadaElwin Sharvill QUALIFIED
Mujtaba N NickaFranceIvan Magalhaes QUALIFIED
Julie V SchemmerJapanXuxue Feng NEGOTIATION
Juan K FerenczArgentinaIvan Magalhaes QUALIFIED
Julie J FlosiSpainOnyama Limba PROPOSAL
Cody F GlickArgentinaIoni Bowcher NEW
Cody U ChuiRussiaIoni Bowcher UNQUALIFIED
Leja N GarufiJapanIvan Magalhaes NEGOTIATION
Nicolas O MaletRussiaBernardo Dominic NEW
Kaitlin M NestleBrazilBernardo Dominic PROPOSAL
Arvin U OstroskyFranceIoni Bowcher NEGOTIATION
Stacey U SchemmerIndiaIvan Magalhaes UNQUALIFIED
James O PoquetteFranceAnna Fali NEW
Antonio K StensethArgentinaXuxue Feng NEW
Kaitlin E OstroskyJapanIvan Magalhaes PROPOSAL
Leja P GillianAustraliaIoni Bowcher PROPOSAL
Antonio N FollerGermanyStephen Shaw RENEWAL
Octavia R MarrierIndiaXuxue Feng QUALIFIED
Leon W RutaRussiaXuxue Feng NEW
Deepesh Q TollnerAustraliaAmy Elsner PROPOSAL
Octavia D RoysterJapanAsiya Javayant PROPOSAL
Chavez H FlosiRussiaStephen Shaw RENEWAL
Ricardo H MacleadAustraliaOnyama Limba RENEWAL
Aruna K GlickItalyIoni Bowcher PROPOSAL
Jeanfrancois N RulapaughCanadaAnna Fali NEW
Maisha P WhobreyFranceElwin Sharvill PROPOSAL
Mayumi I GauchoFranceIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson G NickaIndiaAmy Elsner RENEWAL
Jennifer G GillianIndiaBernardo Dominic PROPOSAL
Mujtaba G GauchoFranceStephen Shaw PROPOSAL
Faith S PoquetteCanadaAnna Fali NEW
Chavez B PerinFranceStephen Shaw PROPOSAL
Claire S InouyeItalyIvan Magalhaes PROPOSAL
Rodrigues U ButtCanadaIvan Magalhaes NEGOTIATION
Tony X CaldareraCanadaAnna Fali PROPOSAL
Izzy X FerenczItalyElwin Sharvill PROPOSAL
Claire J SlusarskiArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens T IturbideUnited Kingdom2024-06-04King, Christopher A Esq QUALIFIED57Bernardo Dominic
1001Mayumi E TollnerItaly2024-05-24Rangoni Of Florence QUALIFIED15Bernardo Dominic
1002Arvin R GarufiArgentina2024-05-28Rangoni Of Florence RENEWAL19Bernardo Dominic
1003Maisha W InouyeJapan2024-06-10King, Christopher A Esq NEGOTIATION92Xuxue Feng
1004Alejandro P PerinFrance2024-06-11Chanay, Jeffrey A Esq QUALIFIED37Anna Fali
1005Octavia M MaletItaly2024-06-13Feiner Bros UNQUALIFIED36Elwin Sharvill
1006Greenwood N IturbideJapan2024-05-24Rangoni Of Florence QUALIFIED54Amy Elsner
1007Munro H PaprockiCanada2024-06-16King, Christopher A Esq QUALIFIED71Xuxue Feng
1008Darci W NickaUnited Kingdom2024-06-18Rousseaux, Michael Esq NEGOTIATION49Amy Elsner
1009Costa Q MarrierFrance2024-06-09Dorl, James J Esq PROPOSAL19Xuxue Feng
1010Francesco I MarrierIndia2024-05-23Commercial Press QUALIFIED69Amy Elsner
1011Morrow O SergiGermany2024-06-12Truhlar And Truhlar Attys PROPOSAL45Amy Elsner
1012Kadeem K GillianBrazil2024-05-31King, Christopher A Esq NEGOTIATION30Amy Elsner
1013Francesco V MorascaIndia2024-05-27Rangoni Of Florence QUALIFIED51Onyama Limba
1014Aditya H MaletUnited Kingdom2024-05-20Dorl, James J Esq UNQUALIFIED98Anna Fali
1015Jeanfrancois U FollerJapan2024-05-30Rousseaux, Michael Esq UNQUALIFIED58Stephen Shaw
1016Sinclair G RoysterIndia2024-06-06Printing Dimensions PROPOSAL5Asiya Javayant
1017Adams J PoquetteSpain2024-05-31Printing Dimensions UNQUALIFIED75Elwin Sharvill
1018Greenwood H NickaCanada2024-05-24Rousseaux, Michael Esq NEW4Stephen Shaw
1019Antonio H AlbaresCanada2024-06-15King, Christopher A Esq RENEWAL22Bernardo Dominic
1020Maria T PerinBrazil2024-05-21Rousseaux, Michael Esq UNQUALIFIED36Stephen Shaw
1021Darci H NickaArgentina2024-06-16Chapman, Ross E Esq QUALIFIED54Amy Elsner
1022Arvin X InouyeBrazil2024-06-04Rousseaux, Michael Esq RENEWAL17Asiya Javayant
1023Silvio I MarrierArgentina2024-05-28Buckley Miller Wright UNQUALIFIED27Onyama Limba
1024Kadeem W NestleIndia2024-06-02Rangoni Of Florence NEGOTIATION90Anna Fali
1025James Q BologniaGermany2024-05-20Dorl, James J Esq NEGOTIATION63Asiya Javayant
1026Ashley H SlusarskiFrance2024-06-13Feiner Bros PROPOSAL61Bernardo Dominic
1027Chavez X FollerFrance2024-05-29Rousseaux, Michael Esq RENEWAL13Xuxue Feng
1028Tony T BologniaArgentina2024-06-08Chapman, Ross E Esq QUALIFIED5Anna Fali
1029Francesco A StockhamArgentina2024-06-15Chemel, James L Cpa NEW66Ioni Bowcher
1030Adams G TollnerBrazil2024-05-21Dorl, James J Esq NEGOTIATION39Ioni Bowcher
1031Ivar T MorascaJapan2024-06-09Commercial Press QUALIFIED26Amy Elsner
1032Arvin D WhobreyCanada2024-05-30Printing Dimensions NEW31Amy Elsner
1033Leja R VenereJapan2024-05-21Printing Dimensions PROPOSAL86Xuxue Feng
1034Maria D KolmetzAustralia2024-06-16Feiner Bros NEW27Stephen Shaw
1035Mayumi Z RoysterItaly2024-06-15Chapman, Ross E Esq NEGOTIATION52Amy Elsner
1036Darci V GarufiRussia2024-06-09Rousseaux, Michael Esq QUALIFIED56Asiya Javayant
1037Emily H StensethUnited Kingdom2024-06-01Chapman, Ross E Esq PROPOSAL90Xuxue Feng
1038Smith L CaldareraAustralia2024-05-24Feiner Bros NEGOTIATION76Anna Fali
1039Greenwood R CampainSpain2024-06-11Buckley Miller Wright NEGOTIATION47Amy Elsner
1040Izzy H FlosiGermany2024-06-10Feltz Printing Service NEGOTIATION17Anna Fali
1041Alejandro J PoquetteSpain2024-05-26Chanay, Jeffrey A Esq RENEWAL11Onyama Limba
1042Salvatore F FlosiRussia2024-06-12Chemel, James L Cpa PROPOSAL73Elwin Sharvill
1043Wickens K StensethBrazil2024-06-10Printing Dimensions UNQUALIFIED29Bernardo Dominic
1044Izzy H BologniaGermany2024-06-12Truhlar And Truhlar Attys QUALIFIED25Asiya Javayant
1045Salvatore Y SlusarskiCanada2024-06-16Feltz Printing Service NEGOTIATION66Elwin Sharvill
1046Octavia T SaylorsJapan2024-06-05Chanay, Jeffrey A Esq UNQUALIFIED1Anna Fali
1047Ashley P StockhamJapan2024-06-07Feiner Bros QUALIFIED87Onyama Limba
1048Aruna C SchemmerArgentina2024-06-17Buckley Miller Wright NEGOTIATION25Anna Fali
1049Leon C FlosiRussia2024-06-16Dorl, James J Esq UNQUALIFIED6Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Johnson E DoeAustraliaElwin Sharvill QUALIFIED
Chavez X ShinkoRussiaAmy Elsner UNQUALIFIED
Mujtaba O WhobreySpainOnyama Limba UNQUALIFIED
Deepesh F PaprockiArgentinaAsiya Javayant PROPOSAL
Smith A WhobreyJapanAmy Elsner RENEWAL
Salvatore Q ChuiItalyStephen Shaw UNQUALIFIED
Julie H CaldareraRussiaIvan Magalhaes RENEWAL
Leja O BowleyIndiaAsiya Javayant UNQUALIFIED
Deepesh N BologniaAustraliaAmy Elsner RENEWAL
Aruna E RimItalyIoni Bowcher QUALIFIED
Julie W VocelkaCanadaStephen Shaw NEW
Julie V PaprockiJapanAmy Elsner PROPOSAL
Jefferson H GauchoJapanXuxue Feng NEW
Francesco X FlosiGermanyAmy Elsner PROPOSAL
Johnson Q RimUnited KingdomBernardo Dominic NEW
Smith K RulapaughIndiaElwin Sharvill NEW
Aditya X RulapaughItalyAnna Fali UNQUALIFIED
Misaki H CaudyFranceOnyama Limba NEW
Nicolas U FlosiRussiaAmy Elsner PROPOSAL
Stacey D FollerCanadaBernardo Dominic RENEWAL
Munro Y CaudyFranceIvan Magalhaes PROPOSAL
Johnson D SchemmerJapanOnyama Limba UNQUALIFIED
Darci Z SchemmerGermanyStephen Shaw QUALIFIED
Nicolas D OldroydGermanyXuxue Feng RENEWAL
Mujtaba P VocelkaBrazilStephen Shaw RENEWAL
Kadeem R GarufiBrazilAsiya Javayant RENEWAL
Wickens Z WaycottArgentinaIvan Magalhaes NEGOTIATION
Johnson I KolmetzBrazilElwin Sharvill PROPOSAL
Aika Q FerenczCanadaAsiya Javayant PROPOSAL
Leja P RimArgentinaElwin Sharvill RENEWAL
Silvio Y ChuiItalyAnna Fali UNQUALIFIED
Adams O FollerIndiaXuxue Feng PROPOSAL
Ashley B RoysterItalyBernardo Dominic QUALIFIED
Chavez L NickaSpainIoni Bowcher UNQUALIFIED
Chavez M CaldareraBrazilStephen Shaw NEGOTIATION
Kaitlin K NestleRussiaElwin Sharvill NEW
Faith T ChuiItalyElwin Sharvill RENEWAL
Rodrigues W MarrierItalyIvan Magalhaes RENEWAL
Francesco L VocelkaGermanyOnyama Limba NEW
Sinclair R MaletJapanIvan Magalhaes RENEWAL
Clifford N WieserJapanIoni Bowcher PROPOSAL
Jennifer T OstroskyRussiaStephen Shaw QUALIFIED
Emily F RutaJapanAnna Fali RENEWAL
Chavez T PerinRussiaAmy Elsner NEGOTIATION
Maria E AlbaresRussiaIoni Bowcher PROPOSAL
Mujtaba X FlosiGermanyAmy Elsner RENEWAL
Tony H GauchoGermanyIoni Bowcher UNQUALIFIED
Tony O WieserGermanyStephen Shaw QUALIFIED
Emily S GarufiAustraliaIoni Bowcher NEW
Jones B GarufiGermanyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Smith Z Stockham
Ashley Q Slusarski
Alejandro S Iturbide
Cody F Inouye
Kaitlin J Rim
Adams N Amigon
David G Royster
Stacey Z Stenseth
Ivar T Whobrey
Maria S Saylors
Adams Y Caudy
Arvin T Darakjy
Deepesh K Perin
Kadeem N Tollner
Aditya N Morasca
Silvio I Rulapaugh
Arvin M Iturbide
Costa E Malet
Aruna W Ferencz
Deepesh L Glick
Faith E Bolognia
Jeanfrancois U Caudy
Darci A Inouye
Octavia L Poquette
Jones V Waycott
Ashley H Ferencz
Munro S Nestle
Rodrigues N Kolmetz
Morrow V Stockham
Ricardo O Malet
Jennifer E Malet
Juan W Foller
Ricardo O Morasca
Misaki W Nestle
Misaki G Doe
Faith V Caldarera
Maria Q Briddick
Wickens C Schemmer
Maria Z Flosi
Octavia P Campain
Cody W Malet
Arvin B Ostrosky
Aruna K Foller
Kadeem D Gillian
Kaitlin D Garufi
Murillo F Kusko
Emily N Vocelka
Ricardo K Stenseth
Misaki G Inouye
Aika T Vocelka
IdCountryDate
1000Russia2024-06-18
1001Germany2024-06-12
1002India2024-05-24
1003United Kingdom2024-05-23
1004Italy2024-05-23
1005Canada2024-05-28
1006United Kingdom2024-06-13
1007Japan2024-06-02
1008Japan2024-06-12
1009France2024-06-18
1010France2024-06-14
1011Australia2024-05-25
1012France2024-05-24
1013Argentina2024-06-08
1014Spain2024-06-07
1015Argentina2024-06-18
1016Russia2024-06-05
1017Italy2024-06-07
1018Germany2024-06-06
1019India2024-05-31
1020Australia2024-06-03
1021Italy2024-06-10
1022Australia2024-06-08
1023Brazil2024-06-07
1024Spain2024-06-01
1025Japan2024-05-28
1026Brazil2024-06-04
1027Spain2024-06-16
1028Spain2024-05-25
1029Argentina2024-05-22
1030Brazil2024-05-27
1031Japan2024-05-25
1032India2024-05-23
1033Japan2024-06-06
1034Canada2024-05-31
1035Russia2024-06-15
1036Spain2024-06-01
1037Japan2024-05-24
1038Japan2024-06-11
1039Russia2024-06-04
1040United Kingdom2024-06-14
1041Spain2024-06-16
1042United Kingdom2024-06-07
1043Russia2024-05-26
1044Russia2024-06-04
1045Japan2024-06-14
1046Germany2024-06-17
1047France2024-06-01
1048United Kingdom2024-05-26
1049Australia2024-06-16

On-Demand Data

NameIdCountryDate
Ashley Q Caudy1000Brazil2024-05-23
Clifford L Saylors1001Brazil2024-06-15
Nicolas O Kolmetz1002Russia2024-06-12
Antonio B Rim1003Australia2024-06-14
Clifford J Gillian1004France2024-06-14
Isabel X Paprocki1005United Kingdom2024-06-01
Aditya W Dilliard1006France2024-05-29
Aika R Rulapaugh1007Brazil2024-06-01
Ivar M Caudy1008Australia2024-06-13
Smith V Gillian1009Japan2024-05-31
Chavez A Schemmer1010Argentina2024-05-20
Kadeem N Poquette1011Russia2024-06-13
Antonio F Oldroyd1012Australia2024-06-06
Wickens X Figeroa1013Argentina2024-06-02
Leja A Stenseth1014Spain2024-06-08
Juan K Ostrosky1015France2024-06-14
Julie V Glick1016Brazil2024-05-21
Jefferson M Tollner1017Japan2024-06-11
Antonio H Bowley1018Australia2024-05-28
Jeanfrancois R Schemmer1019Brazil2024-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo J RulapaughIndiaAsiya Javayant RENEWAL
Mayumi A MaletUnited KingdomElwin Sharvill PROPOSAL
Francesco Y MaletFranceIvan Magalhaes NEGOTIATION
Jefferson K PoquetteRussiaIoni Bowcher NEGOTIATION
Aditya M VocelkaGermanyAmy Elsner UNQUALIFIED
Jones X GauchoArgentinaIvan Magalhaes NEW
Mujtaba E WaycottArgentinaAmy Elsner UNQUALIFIED
David G OldroydRussiaIoni Bowcher QUALIFIED
Smith Q CampainItalyBernardo Dominic QUALIFIED
Aditya M MacleadArgentinaOnyama Limba NEGOTIATION
Jones Y SlusarskiArgentinaAnna Fali RENEWAL
Julie F TollnerFranceAmy Elsner QUALIFIED
Ricardo X BologniaGermanyAnna Fali UNQUALIFIED
Claire E GlickCanadaAmy Elsner NEW
Misaki I KuskoBrazilAnna Fali QUALIFIED
Isabel W SergiSpainBernardo Dominic NEW
Costa P InouyeRussiaIvan Magalhaes UNQUALIFIED
Izzy J BologniaItalyElwin Sharvill UNQUALIFIED
Ricardo V GarufiBrazilIvan Magalhaes RENEWAL
Tony Z BriddickGermanyElwin Sharvill NEGOTIATION
Maisha O BowleyIndiaXuxue Feng PROPOSAL
Mayumi C SaylorsArgentinaStephen Shaw RENEWAL
Stacey Y MarrierCanadaStephen Shaw NEGOTIATION
Julie O RimRussiaXuxue Feng PROPOSAL
Costa A DoeItalyOnyama Limba UNQUALIFIED
Salvatore C SergiRussiaOnyama Limba NEGOTIATION
Ivar Y OldroydAustraliaOnyama Limba PROPOSAL
Salvatore D StensethFranceStephen Shaw RENEWAL
Ivar I RoysterRussiaIoni Bowcher RENEWAL
Isabel N ShinkoItalyElwin Sharvill PROPOSAL
Juan U FollerJapanAnna Fali PROPOSAL
Octavia Y SaylorsUnited KingdomAnna Fali NEGOTIATION
Aruna X KuskoIndiaElwin Sharvill RENEWAL
Kaitlin F MaletArgentinaAmy Elsner QUALIFIED
Francesco F OstroskyArgentinaAnna Fali PROPOSAL
Nicolas X InouyeItalyStephen Shaw NEW
Claire M CampainItalyAnna Fali NEW
James Q MacleadItalyXuxue Feng NEW
Julie Y ButtJapanAsiya Javayant RENEWAL
Greenwood T FigeroaIndiaAmy Elsner 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>