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
Izzy K ShinkoBrazilIvan Magalhaes UNQUALIFIED
James Z RutaBrazilStephen Shaw NEW
Jefferson Z GarufiIndiaStephen Shaw UNQUALIFIED
Costa W ButtRussiaIoni Bowcher NEGOTIATION
Tony P GarufiAustraliaOnyama Limba PROPOSAL
Murillo U MacleadIndiaAmy Elsner RENEWAL
Jeanfrancois Y GillianItalyAmy Elsner RENEWAL
Ivar D RutaGermanyAmy Elsner QUALIFIED
Tony A RulapaughCanadaAnna Fali NEW
Maisha Q BowleyGermanyAnna Fali RENEWAL
Mayumi J ChuiArgentinaAsiya Javayant NEW
Octavia I SchemmerSpainElwin Sharvill RENEWAL
Salvatore Q BologniaItalyXuxue Feng UNQUALIFIED
Wickens V RimArgentinaXuxue Feng NEW
Izzy N StensethFranceAmy Elsner UNQUALIFIED
Ashley U ShinkoItalyAsiya Javayant NEW
David Y CampainUnited KingdomAsiya Javayant QUALIFIED
Ashley E FlosiArgentinaOnyama Limba QUALIFIED
Jeanfrancois N ShinkoIndiaIvan Magalhaes QUALIFIED
Johnson D AmigonGermanyAmy Elsner PROPOSAL
Jeanfrancois S ShinkoSpainAsiya Javayant UNQUALIFIED
Juan W GlickSpainBernardo Dominic NEW
Ashley V PerinRussiaAnna Fali UNQUALIFIED
Leja N CampainAustraliaAnna Fali PROPOSAL
Jeanfrancois X PoquetteAustraliaXuxue Feng UNQUALIFIED
Alejandro N CaldareraArgentinaBernardo Dominic NEW
Alejandro A RimAustraliaAmy Elsner NEGOTIATION
Cody B CampainArgentinaStephen Shaw NEW
David E GlickRussiaIvan Magalhaes PROPOSAL
Cody K VenereJapanOnyama Limba RENEWAL
Ashley Z GarufiUnited KingdomOnyama Limba UNQUALIFIED
Kadeem Z BowleyAustraliaStephen Shaw UNQUALIFIED
Jefferson G OldroydCanadaElwin Sharvill NEGOTIATION
Aika P AlbaresIndiaIoni Bowcher UNQUALIFIED
Kaitlin E DilliardAustraliaIvan Magalhaes RENEWAL
Leon Y GarufiUnited KingdomOnyama Limba QUALIFIED
Johnson F AlbaresRussiaBernardo Dominic NEW
Misaki X VocelkaGermanyOnyama Limba NEW
Jefferson S FollerUnited KingdomAnna Fali NEW
Octavia Y VenereAustraliaIvan Magalhaes NEGOTIATION
Chavez N WieserAustraliaElwin Sharvill PROPOSAL
Mayumi B FigeroaArgentinaAsiya Javayant RENEWAL
Faith S SergiJapanElwin Sharvill PROPOSAL
Greenwood P DarakjyCanadaXuxue Feng PROPOSAL
Stacey Z OstroskyGermanyStephen Shaw PROPOSAL
Adams W InouyeFranceAnna Fali QUALIFIED
Misaki E MaletRussiaIoni Bowcher RENEWAL
Greenwood F ButtAustraliaXuxue Feng PROPOSAL
Julie W KuskoAustraliaAmy Elsner PROPOSAL
Morrow B SaylorsItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika D ShinkoIndiaXuxue Feng UNQUALIFIED
Stacey Y PerinAustraliaXuxue Feng NEW
Ricardo D OldroydJapanBernardo Dominic QUALIFIED
Aditya G BriddickItalyIvan Magalhaes RENEWAL
Ricardo X PerinArgentinaAnna Fali NEGOTIATION
Aditya K FollerSpainIvan Magalhaes NEW
Ashley Y BowleyCanadaIoni Bowcher UNQUALIFIED
Jennifer N AlbaresArgentinaIvan Magalhaes QUALIFIED
Arvin W BowleyRussiaAsiya Javayant UNQUALIFIED
Izzy C GillianBrazilElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley W WaycottAustralia2025-05-24Feiner Bros NEW90Bernardo Dominic
1001Costa K StensethCanada2025-05-19Chapman, Ross E Esq QUALIFIED45Elwin Sharvill
1002Clifford J FerenczArgentina2025-06-13Chapman, Ross E Esq RENEWAL95Ivan Magalhaes
1003Jeanfrancois I FlosiFrance2025-06-12Chanay, Jeffrey A Esq PROPOSAL31Ioni Bowcher
1004Claire Z KolmetzIndia2025-05-25Chanay, Jeffrey A Esq NEGOTIATION54Asiya Javayant
1005Ashley A AlbaresJapan2025-05-26Chemel, James L Cpa PROPOSAL37Anna Fali
1006Morrow M PerinRussia2025-05-28King, Christopher A Esq QUALIFIED51Anna Fali
1007Aika W WieserIndia2025-06-11Chemel, James L Cpa QUALIFIED30Amy Elsner
1008Julie Y RutaJapan2025-05-22Benton, John B Jr NEGOTIATION84Asiya Javayant
1009Claire F BowleyJapan2025-05-22Chemel, James L Cpa NEW96Anna Fali
1010Francesco Q BologniaAustralia2025-05-19Morlong Associates PROPOSAL96Asiya Javayant
1011Kaitlin D NickaSpain2025-06-09Chanay, Jeffrey A Esq PROPOSAL57Stephen Shaw
1012Jennifer B ChuiCanada2025-05-19Chemel, James L Cpa NEW46Asiya Javayant
1013Jones J PerinFrance2025-05-25Truhlar And Truhlar Attys PROPOSAL36Stephen Shaw
1014Darci V TollnerSpain2025-05-29Chapman, Ross E Esq NEW49Bernardo Dominic
1015Clifford S RulapaughJapan2025-06-14Chemel, James L Cpa NEW8Amy Elsner
1016Jefferson Q RimGermany2025-06-14Chapman, Ross E Esq NEGOTIATION58Stephen Shaw
1017Izzy D ChuiJapan2025-06-07Benton, John B Jr PROPOSAL44Stephen Shaw
1018James J FlosiBrazil2025-05-26Truhlar And Truhlar Attys QUALIFIED37Ivan Magalhaes
1019Salvatore L DoeUnited Kingdom2025-06-14Truhlar And Truhlar Attys UNQUALIFIED61Amy Elsner
1020Juan N BowleyFrance2025-05-22Chanay, Jeffrey A Esq PROPOSAL50Ioni Bowcher
1021Smith J MacleadGermany2025-06-11Feiner Bros NEW43Onyama Limba
1022Leon N GillianSpain2025-06-05King, Christopher A Esq RENEWAL50Elwin Sharvill
1023Leon K SchemmerArgentina2025-06-06Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1024Costa C NickaJapan2025-06-14Chapman, Ross E Esq NEW12Ivan Magalhaes
1025Nicolas W FlosiSpain2025-05-30Rangoni Of Florence PROPOSAL43Ivan Magalhaes
1026Sinclair R KuskoIndia2025-06-16Buckley Miller Wright NEW98Xuxue Feng
1027Murillo K GlickBrazil2025-05-25Morlong Associates PROPOSAL83Ioni Bowcher
1028Julie H GarufiAustralia2025-06-08King, Christopher A Esq RENEWAL85Amy Elsner
1029Wickens Z BologniaSpain2025-06-01Commercial Press NEW62Stephen Shaw
1030Wickens J FerenczCanada2025-05-21Truhlar And Truhlar Attys PROPOSAL78Anna Fali
1031Aruna E SlusarskiAustralia2025-06-08Buckley Miller Wright NEGOTIATION9Amy Elsner
1032Claire G KuskoSpain2025-05-20Buckley Miller Wright NEW38Onyama Limba
1033Aditya A RutaSpain2025-05-19Rangoni Of Florence UNQUALIFIED77Onyama Limba
1034Nicolas W RulapaughCanada2025-05-30Truhlar And Truhlar Attys QUALIFIED28Xuxue Feng
1035Francesco J WaycottSpain2025-06-16Printing Dimensions PROPOSAL14Onyama Limba
1036David J VocelkaGermany2025-05-25Feltz Printing Service QUALIFIED30Anna Fali
1037Salvatore N WhobreyGermany2025-05-20Feltz Printing Service NEGOTIATION78Bernardo Dominic
1038Maisha S WhobreyFrance2025-05-25Morlong Associates UNQUALIFIED92Asiya Javayant
1039Murillo S CaudyArgentina2025-05-25Commercial Press QUALIFIED18Xuxue Feng
1040Sinclair L AlbaresCanada2025-05-25Rangoni Of Florence QUALIFIED7Ioni Bowcher
1041Aika R ChuiBrazil2025-06-15Truhlar And Truhlar Attys PROPOSAL57Ioni Bowcher
1042Francesco F BowleyUnited Kingdom2025-06-13Printing Dimensions NEGOTIATION85Stephen Shaw
1043Kaitlin N VocelkaGermany2025-06-05Commercial Press NEW36Anna Fali
1044David H RulapaughFrance2025-06-03Dorl, James J Esq QUALIFIED57Onyama Limba
1045Ricardo E FerenczUnited Kingdom2025-05-27Chapman, Ross E Esq QUALIFIED65Onyama Limba
1046Wickens Y MarrierItaly2025-05-28King, Christopher A Esq RENEWAL41Bernardo Dominic
1047Kaitlin G FollerJapan2025-05-20Commercial Press NEW50Anna Fali
1048Mujtaba M AlbaresArgentina2025-06-12Printing Dimensions NEW63Bernardo Dominic
1049Tony L PerinUnited Kingdom2025-05-25Feltz Printing Service PROPOSAL61Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Darci O NestleRussiaXuxue Feng PROPOSAL
Antonio U PoquetteUnited KingdomOnyama Limba NEW
Mujtaba R DilliardAustraliaAmy Elsner PROPOSAL
Ashley N RutaCanadaAsiya Javayant UNQUALIFIED
Jennifer V BologniaGermanyXuxue Feng RENEWAL
Jeanfrancois V ButtItalyAsiya Javayant RENEWAL
Maisha D DilliardGermanyOnyama Limba NEW
Kaitlin I ShinkoSpainIvan Magalhaes QUALIFIED
James O GauchoFranceOnyama Limba QUALIFIED
Deepesh R RutaArgentinaXuxue Feng NEGOTIATION
Aditya R MarrierGermanyIvan Magalhaes RENEWAL
Faith Y MaletArgentinaXuxue Feng UNQUALIFIED
Deepesh K InouyeAustraliaStephen Shaw NEGOTIATION
Jefferson K BologniaItalyIvan Magalhaes UNQUALIFIED
Murillo H FollerUnited KingdomOnyama Limba PROPOSAL
Jefferson X WaycottRussiaStephen Shaw NEGOTIATION
Darci K SlusarskiGermanyIoni Bowcher NEGOTIATION
Tony G IturbideIndiaIoni Bowcher NEW
Kadeem Q RimSpainBernardo Dominic QUALIFIED
Clifford A WaycottFranceXuxue Feng NEGOTIATION
Munro Y SergiCanadaIvan Magalhaes PROPOSAL
Leon F WieserUnited KingdomElwin Sharvill PROPOSAL
Jefferson M GauchoSpainIoni Bowcher PROPOSAL
Mujtaba A AlbaresArgentinaStephen Shaw QUALIFIED
David E VocelkaGermanyAnna Fali NEW
Aditya U WaycottIndiaIvan Magalhaes UNQUALIFIED
Arvin V GauchoArgentinaAmy Elsner NEGOTIATION
David B OstroskyAustraliaAsiya Javayant NEW
Deepesh S RulapaughAustraliaOnyama Limba PROPOSAL
Claire T RoysterItalyIvan Magalhaes RENEWAL
Antonio M ButtUnited KingdomElwin Sharvill QUALIFIED
Maria F ChuiArgentinaXuxue Feng RENEWAL
Jefferson M CaldareraGermanyBernardo Dominic NEGOTIATION
Deepesh W NickaAustraliaElwin Sharvill QUALIFIED
Arvin N ButtFranceAsiya Javayant NEGOTIATION
Jennifer D RulapaughIndiaOnyama Limba QUALIFIED
Chavez W IturbideArgentinaAnna Fali NEW
Arvin H StockhamUnited KingdomAmy Elsner NEW
Salvatore W OstroskyGermanyAsiya Javayant RENEWAL
Arvin U KolmetzCanadaStephen Shaw NEGOTIATION
Murillo N CaudyGermanyAnna Fali NEGOTIATION
Jeanfrancois N PaprockiItalyBernardo Dominic QUALIFIED
Jeanfrancois Y RimRussiaAsiya Javayant RENEWAL
Ricardo T RulapaughAustraliaAmy Elsner NEGOTIATION
Chavez H KuskoGermanyStephen Shaw RENEWAL
Costa Q PerinItalyAmy Elsner QUALIFIED
James B StockhamUnited KingdomOnyama Limba NEW
Faith J RimUnited KingdomStephen Shaw NEGOTIATION
Ricardo B RoysterBrazilIoni Bowcher QUALIFIED
Adams M GlickBrazilOnyama Limba QUALIFIED
Frozen Columns
Name
James J Kolmetz
Salvatore D Stockham
Izzy F Paprocki
Leon B Albares
Leja L Flosi
Juan K Gillian
Stacey G Paprocki
Jones D Briddick
Octavia G Ostrosky
Izzy X Caudy
Jones O Kusko
Aika Q Malet
Salvatore N Venere
Silvio C Schemmer
Mujtaba X Nestle
Alejandro H Inouye
Misaki B Nicka
Wickens B Slusarski
Costa E Tollner
Arvin O Oldroyd
Darci U Stenseth
Clifford R Gaucho
Smith M Ostrosky
Costa D Foller
Leon Q Doe
Murillo H Stockham
Stacey M Wieser
Morrow A Saylors
Ivar V Briddick
Maisha U Ferencz
Misaki A Campain
Francesco P Garufi
Silvio C Waycott
Silvio C Nestle
Claire W Tollner
Stacey B Caldarera
Octavia W Bolognia
Stacey Y Flosi
Leja W Campain
Arvin L Inouye
Nicolas C Bolognia
Mujtaba N Schemmer
Aruna C Flosi
Izzy Y Butt
Aika O Flosi
Ashley P Amigon
Aika Z Caudy
Maisha B Bowley
Octavia F Butt
Stacey V Caudy
IdCountryDate
1000Argentina2025-05-22
1001Russia2025-05-19
1002United Kingdom2025-05-18
1003Australia2025-05-19
1004India2025-06-14
1005Brazil2025-06-12
1006France2025-06-04
1007Germany2025-06-07
1008France2025-05-25
1009Spain2025-05-22
1010Japan2025-05-21
1011Canada2025-05-27
1012Argentina2025-06-10
1013United Kingdom2025-06-01
1014India2025-05-22
1015Brazil2025-05-26
1016Argentina2025-06-04
1017Argentina2025-06-07
1018Argentina2025-06-02
1019Australia2025-06-15
1020Brazil2025-05-21
1021France2025-05-22
1022Spain2025-05-22
1023Germany2025-06-01
1024Japan2025-05-30
1025Argentina2025-06-16
1026Australia2025-06-03
1027Japan2025-06-07
1028Italy2025-06-16
1029Brazil2025-06-03
1030Italy2025-06-14
1031Argentina2025-05-21
1032Italy2025-06-13
1033Argentina2025-05-31
1034Canada2025-06-16
1035Russia2025-05-22
1036United Kingdom2025-06-07
1037Argentina2025-06-09
1038France2025-06-06
1039Italy2025-06-08
1040Russia2025-05-20
1041Argentina2025-06-01
1042Australia2025-05-21
1043Brazil2025-06-01
1044Brazil2025-06-01
1045United Kingdom2025-06-06
1046India2025-05-26
1047United Kingdom2025-06-10
1048Japan2025-05-28
1049Germany2025-05-19

On-Demand Data

NameIdCountryDate
Johnson R Perin1000Germany2025-05-20
Stacey L Sergi1001Argentina2025-06-06
Tony U Campain1002Italy2025-06-15
Juan A Marrier1003Germany2025-05-22
Smith R Nicka1004Russia2025-06-05
Silvio L Ferencz1005Australia2025-06-09
Aika L Waycott1006France2025-06-15
Aditya E Schemmer1007Canada2025-06-06
Maisha G Tollner1008Japan2025-06-02
Munro G Malet1009Australia2025-06-13
Arvin V Campain1010India2025-06-01
Mayumi U Amigon1011Russia2025-06-16
Claire Z Sergi1012United Kingdom2025-05-23
Mayumi S Marrier1013Australia2025-06-08
Ivar X Dilliard1014Brazil2025-06-15
Claire Y Shinko1015Canada2025-05-29
Morrow Y Whobrey1016Germany2025-05-18
Jeanfrancois Y Rulapaugh1017India2025-06-16
Maria D Rulapaugh1018Japan2025-06-16
Greenwood L Morasca1019Canada2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh O WieserSpainIvan Magalhaes UNQUALIFIED
Morrow E SaylorsArgentinaAmy Elsner NEGOTIATION
Tony M MacleadJapanElwin Sharvill NEGOTIATION
Izzy L MarrierIndiaAmy Elsner PROPOSAL
Francesco C RulapaughBrazilOnyama Limba RENEWAL
Juan T SchemmerItalyStephen Shaw NEW
Jones C NickaIndiaAsiya Javayant QUALIFIED
Chavez C RimArgentinaXuxue Feng RENEWAL
Johnson F MaletRussiaAsiya Javayant UNQUALIFIED
Ricardo Q BowleyBrazilStephen Shaw PROPOSAL
Ivar N MarrierItalyBernardo Dominic NEW
James J WieserItalyOnyama Limba NEGOTIATION
Nicolas J IturbideIndiaXuxue Feng UNQUALIFIED
Faith E GillianGermanyIvan Magalhaes PROPOSAL
Alejandro J ChuiBrazilAnna Fali RENEWAL
Wickens Y FlosiFranceBernardo Dominic NEW
Mayumi M OldroydArgentinaStephen Shaw NEW
Ivar F RulapaughBrazilAmy Elsner UNQUALIFIED
James Z SchemmerArgentinaIvan Magalhaes NEW
Aruna A FigeroaRussiaAnna Fali NEW
Wickens C BriddickIndiaOnyama Limba NEGOTIATION
Ricardo I MorascaAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois I FollerFranceOnyama Limba UNQUALIFIED
Deepesh N OldroydGermanyStephen Shaw UNQUALIFIED
Izzy L GauchoRussiaBernardo Dominic QUALIFIED
Morrow Z KolmetzRussiaXuxue Feng NEW
Greenwood J RutaFranceIoni Bowcher NEGOTIATION
Murillo C MarrierRussiaIoni Bowcher PROPOSAL
Salvatore N WaycottGermanyAnna Fali UNQUALIFIED
James I GauchoFranceElwin Sharvill NEGOTIATION
Kaitlin K AmigonRussiaAnna Fali NEW
Greenwood Y StockhamBrazilAmy Elsner QUALIFIED
Jones K SaylorsCanadaIvan Magalhaes NEGOTIATION
Octavia T KuskoIndiaElwin Sharvill NEGOTIATION
Antonio D DoeItalyAmy Elsner RENEWAL
Maria S GillianIndiaAsiya Javayant PROPOSAL
Munro J PaprockiAustraliaElwin Sharvill NEGOTIATION
Francesco N GauchoAustraliaAsiya Javayant PROPOSAL
Julie G ButtIndiaIvan Magalhaes PROPOSAL
Smith F BriddickBrazilAnna Fali RENEWAL

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