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
Clifford M SergiRussiaIvan Magalhaes NEW
Smith Z AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Maria O DoeCanadaAsiya Javayant RENEWAL
Alejandro N MacleadBrazilAmy Elsner NEGOTIATION
Sinclair O ChuiGermanyElwin Sharvill QUALIFIED
Mujtaba C WhobreyIndiaElwin Sharvill UNQUALIFIED
Leon B BowleyRussiaIoni Bowcher PROPOSAL
Maria J MaletSpainBernardo Dominic NEW
Murillo J RutaArgentinaElwin Sharvill UNQUALIFIED
Ricardo B FerenczCanadaBernardo Dominic QUALIFIED
James T KolmetzFranceIoni Bowcher UNQUALIFIED
Arvin I OstroskyAustraliaStephen Shaw RENEWAL
Ivar N DoeRussiaIvan Magalhaes NEGOTIATION
Francesco T NickaBrazilIoni Bowcher QUALIFIED
Wickens C SchemmerSpainStephen Shaw UNQUALIFIED
Jennifer F OstroskyItalyAmy Elsner NEGOTIATION
Salvatore S NickaIndiaStephen Shaw NEW
Alejandro U SergiBrazilXuxue Feng NEGOTIATION
Deepesh V CampainJapanIvan Magalhaes NEW
Arvin A StensethGermanyIoni Bowcher NEGOTIATION
Antonio D GauchoRussiaOnyama Limba UNQUALIFIED
Francesco B AlbaresGermanyOnyama Limba NEW
Maisha G SaylorsCanadaIvan Magalhaes UNQUALIFIED
Alejandro K CaudyArgentinaAsiya Javayant QUALIFIED
Adams L OstroskyRussiaIoni Bowcher RENEWAL
Sinclair Y AlbaresItalyBernardo Dominic NEGOTIATION
Munro A MaletAustraliaIvan Magalhaes NEW
Silvio F OldroydUnited KingdomBernardo Dominic PROPOSAL
Jones C KuskoAustraliaAsiya Javayant RENEWAL
Jefferson Z TollnerSpainXuxue Feng NEGOTIATION
Costa J NestleCanadaAmy Elsner UNQUALIFIED
Izzy K RimArgentinaOnyama Limba RENEWAL
Alejandro D DarakjyFranceBernardo Dominic NEW
Jeanfrancois W AmigonRussiaElwin Sharvill QUALIFIED
Tony F NickaRussiaAnna Fali PROPOSAL
Claire O SergiFranceOnyama Limba NEGOTIATION
Jones G MacleadIndiaBernardo Dominic PROPOSAL
Maisha W CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Emily Q RutaSpainIvan Magalhaes QUALIFIED
Johnson E TollnerSpainAsiya Javayant NEW
Aruna O BologniaUnited KingdomStephen Shaw QUALIFIED
Stacey O SlusarskiGermanyStephen Shaw QUALIFIED
Adams L BriddickGermanyIoni Bowcher PROPOSAL
James H FigeroaUnited KingdomElwin Sharvill QUALIFIED
James K FigeroaSpainStephen Shaw NEW
Jones V RimGermanyIvan Magalhaes UNQUALIFIED
Isabel G MaletRussiaStephen Shaw NEGOTIATION
Julie F SchemmerSpainAmy Elsner NEW
Ivar U CaldareraCanadaAmy Elsner RENEWAL
Maria G FigeroaAustraliaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy M RimIndiaAmy Elsner RENEWAL
Izzy H MaletJapanBernardo Dominic UNQUALIFIED
Julie W PaprockiArgentinaIoni Bowcher NEGOTIATION
Aditya R PoquetteGermanyAmy Elsner UNQUALIFIED
Mujtaba R PaprockiArgentinaElwin Sharvill NEGOTIATION
Julie W NestleCanadaStephen Shaw UNQUALIFIED
Rodrigues N SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Munro C NestleGermanyIoni Bowcher UNQUALIFIED
Silvio R ShinkoFranceElwin Sharvill UNQUALIFIED
Costa K AmigonFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio R GarufiArgentina2025-04-21Buckley Miller Wright RENEWAL26Amy Elsner
1001Aditya E IturbideRussia2025-04-11Chanay, Jeffrey A Esq RENEWAL9Xuxue Feng
1002Morrow H BriddickAustralia2025-04-01Feiner Bros UNQUALIFIED40Anna Fali
1003Emily N GillianSpain2025-04-16Benton, John B Jr NEGOTIATION77Asiya Javayant
1004Adams I FerenczRussia2025-04-23Feiner Bros PROPOSAL88Amy Elsner
1005Ricardo U CampainFrance2025-04-29Rousseaux, Michael Esq RENEWAL69Ioni Bowcher
1006Munro C MorascaBrazil2025-04-10Chapman, Ross E Esq NEW10Xuxue Feng
1007Rodrigues U CaldareraIndia2025-04-04Dorl, James J Esq QUALIFIED97Xuxue Feng
1008Rodrigues K AmigonCanada2025-04-06Morlong Associates QUALIFIED11Anna Fali
1009Deepesh K ButtSpain2025-04-06Printing Dimensions RENEWAL65Asiya Javayant
1010Antonio X FerenczGermany2025-04-15Truhlar And Truhlar Attys PROPOSAL2Bernardo Dominic
1011Salvatore U RutaJapan2025-04-04King, Christopher A Esq UNQUALIFIED55Bernardo Dominic
1012Maisha Y RoysterUnited Kingdom2025-04-30Commercial Press RENEWAL13Stephen Shaw
1013Julie J RutaUnited Kingdom2025-04-17Buckley Miller Wright NEGOTIATION23Onyama Limba
1014Leon Q BologniaArgentina2025-04-12King, Christopher A Esq RENEWAL64Onyama Limba
1015Alejandro Y GauchoItaly2025-04-24Commercial Press QUALIFIED24Anna Fali
1016Leon P GauchoJapan2025-04-16Chapman, Ross E Esq NEGOTIATION48Bernardo Dominic
1017Antonio J OstroskyIndia2025-04-06Feltz Printing Service RENEWAL74Anna Fali
1018Arvin N GillianArgentina2025-04-04Chapman, Ross E Esq UNQUALIFIED1Elwin Sharvill
1019Jefferson U KuskoUnited Kingdom2025-04-05Printing Dimensions RENEWAL58Anna Fali
1020Antonio N KolmetzAustralia2025-04-15Chapman, Ross E Esq PROPOSAL6Anna Fali
1021Salvatore O CaudyGermany2025-04-25Rousseaux, Michael Esq NEW6Amy Elsner
1022Sinclair V WaycottSpain2025-04-18Dorl, James J Esq UNQUALIFIED97Stephen Shaw
1023Emily V BowleyCanada2025-04-03Printing Dimensions RENEWAL0Onyama Limba
1024Maria K IturbideArgentina2025-04-03Feiner Bros NEGOTIATION19Ivan Magalhaes
1025Wickens V SergiBrazil2025-04-27Rousseaux, Michael Esq QUALIFIED51Onyama Limba
1026Johnson B GlickItaly2025-04-03Chapman, Ross E Esq QUALIFIED20Onyama Limba
1027Misaki U SaylorsBrazil2025-04-17Commercial Press NEW64Ioni Bowcher
1028Ashley C OstroskyCanada2025-04-30Feltz Printing Service RENEWAL66Stephen Shaw
1029Leja Q NickaCanada2025-04-18Rousseaux, Michael Esq PROPOSAL37Onyama Limba
1030Sinclair Z WaycottRussia2025-04-16Chemel, James L Cpa NEW45Amy Elsner
1031Aditya A DilliardRussia2025-04-21Printing Dimensions NEGOTIATION5Amy Elsner
1032Misaki J DarakjyUnited Kingdom2025-04-01Chanay, Jeffrey A Esq RENEWAL74Stephen Shaw
1033Jeanfrancois I AlbaresCanada2025-04-09Benton, John B Jr NEGOTIATION91Asiya Javayant
1034Jeanfrancois S RulapaughGermany2025-04-20Buckley Miller Wright UNQUALIFIED28Amy Elsner
1035Jones O SlusarskiFrance2025-04-13Commercial Press QUALIFIED61Amy Elsner
1036David N NickaArgentina2025-04-02Rousseaux, Michael Esq RENEWAL7Ivan Magalhaes
1037Alejandro V VocelkaItaly2025-04-25Rousseaux, Michael Esq RENEWAL53Amy Elsner
1038Aika A NestleGermany2025-04-09Rangoni Of Florence PROPOSAL54Anna Fali
1039David U DarakjyAustralia2025-04-20Benton, John B Jr PROPOSAL11Bernardo Dominic
1040Isabel N PerinRussia2025-04-29Truhlar And Truhlar Attys QUALIFIED70Anna Fali
1041Jefferson E DarakjyBrazil2025-04-22Morlong Associates RENEWAL27Xuxue Feng
1042Claire L MaletCanada2025-04-11Commercial Press QUALIFIED14Ivan Magalhaes
1043James B AlbaresBrazil2025-04-19Truhlar And Truhlar Attys PROPOSAL98Ioni Bowcher
1044Isabel W SaylorsFrance2025-04-07Chanay, Jeffrey A Esq UNQUALIFIED4Stephen Shaw
1045Francesco P CaudyBrazil2025-04-27Feiner Bros UNQUALIFIED76Asiya Javayant
1046Deepesh P GlickGermany2025-04-24Truhlar And Truhlar Attys PROPOSAL41Bernardo Dominic
1047Aruna B OstroskyIndia2025-04-29Commercial Press NEW98Stephen Shaw
1048Mayumi W KolmetzAustralia2025-04-03Chapman, Ross E Esq NEW77Anna Fali
1049Ivar E PaprockiBrazil2025-04-10Chanay, Jeffrey A Esq NEW57Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony V AmigonSpainXuxue Feng PROPOSAL
Costa S VocelkaBrazilXuxue Feng NEGOTIATION
Alejandro Z DoeJapanIvan Magalhaes PROPOSAL
Francesco M FollerCanadaOnyama Limba PROPOSAL
Jeanfrancois Q CampainSpainElwin Sharvill RENEWAL
Claire U DarakjyArgentinaOnyama Limba UNQUALIFIED
Adams V VocelkaJapanXuxue Feng QUALIFIED
Claire Z BologniaItalyElwin Sharvill QUALIFIED
Deepesh Q VocelkaJapanXuxue Feng NEW
Munro C WaycottGermanyOnyama Limba QUALIFIED
Francesco C NickaIndiaOnyama Limba NEW
Kaitlin O DoeAustraliaIoni Bowcher NEW
Julie I RimRussiaAsiya Javayant NEW
Octavia K CaudyFranceElwin Sharvill NEW
Ricardo K NestleSpainIvan Magalhaes QUALIFIED
Alejandro K KolmetzSpainStephen Shaw NEW
Silvio V IturbideArgentinaStephen Shaw UNQUALIFIED
Salvatore Y BologniaRussiaElwin Sharvill NEGOTIATION
Morrow E InouyeFranceAmy Elsner NEW
James K VenereJapanOnyama Limba NEW
Deepesh S PaprockiArgentinaOnyama Limba NEGOTIATION
Jefferson X WhobreyIndiaAmy Elsner RENEWAL
Faith X CampainCanadaIvan Magalhaes RENEWAL
Clifford R FlosiAustraliaAnna Fali NEW
Kaitlin Y WieserBrazilAnna Fali PROPOSAL
Jefferson T PerinCanadaXuxue Feng UNQUALIFIED
Octavia M FigeroaAustraliaElwin Sharvill NEGOTIATION
Juan H FollerArgentinaBernardo Dominic NEW
Adams J FollerBrazilAnna Fali NEW
Chavez I CaudyUnited KingdomXuxue Feng PROPOSAL
Leja B WhobreySpainAsiya Javayant QUALIFIED
Izzy Y WhobreyIndiaBernardo Dominic UNQUALIFIED
Wickens N MaletJapanElwin Sharvill RENEWAL
Misaki K GlickJapanXuxue Feng UNQUALIFIED
Deepesh X VocelkaIndiaStephen Shaw QUALIFIED
Ricardo P NestleFranceElwin Sharvill PROPOSAL
Leon M WieserAustraliaAnna Fali PROPOSAL
Jones V BologniaCanadaXuxue Feng NEW
Arvin F WaycottArgentinaBernardo Dominic NEGOTIATION
Munro F RimRussiaIoni Bowcher PROPOSAL
Maisha J IturbideCanadaXuxue Feng UNQUALIFIED
Deepesh Q FigeroaArgentinaAmy Elsner RENEWAL
Tony D VocelkaArgentinaIoni Bowcher NEW
Antonio M RulapaughAustraliaOnyama Limba UNQUALIFIED
Ivar U GauchoGermanyXuxue Feng QUALIFIED
Juan I DoeGermanyAmy Elsner PROPOSAL
Jennifer O WaycottFranceElwin Sharvill NEGOTIATION
Kadeem Z KuskoGermanyAmy Elsner PROPOSAL
Morrow E KolmetzFranceAnna Fali QUALIFIED
Smith Y BologniaJapanAmy Elsner NEW
Frozen Columns
Name
Francesco X Figeroa
Ivar W Oldroyd
Francesco O Morasca
Kadeem G Malet
Faith B Chui
Cody J Glick
Jefferson T Rim
Leon A Dilliard
Murillo R Gillian
Alejandro D Ostrosky
Cody Z Butt
Arvin D Kusko
Leon O Wieser
Arvin K Malet
Antonio M Foller
Silvio C Sergi
Leon W Glick
Isabel V Shinko
Maisha C Schemmer
Ashley P Campain
Ashley I Ruta
James H Rim
Kadeem D Caldarera
Costa W Malet
Salvatore S Chui
Aditya E Nestle
Rodrigues K Royster
Murillo B Rulapaugh
Leon X Ruta
Morrow Y Briddick
Kadeem H Dilliard
Ricardo I Stockham
Aditya K Foller
David M Oldroyd
Jeanfrancois R Rulapaugh
Salvatore S Rim
Octavia T Darakjy
Smith W Glick
Leon M Oldroyd
Jeanfrancois L Schemmer
Misaki X Waycott
Salvatore W Wieser
Mujtaba E Ferencz
Stacey U Darakjy
Rodrigues I Schemmer
Greenwood K Whobrey
Kaitlin P Kolmetz
Sinclair H Oldroyd
Salvatore U Wieser
Smith Z Flosi
IdCountryDate
1000Canada2025-04-20
1001Russia2025-04-16
1002France2025-04-21
1003United Kingdom2025-04-07
1004France2025-04-25
1005Germany2025-04-29
1006Brazil2025-04-18
1007Japan2025-04-11
1008Canada2025-04-20
1009Russia2025-04-21
1010India2025-04-03
1011France2025-04-22
1012Argentina2025-04-29
1013Spain2025-04-02
1014Spain2025-04-05
1015Japan2025-04-10
1016Brazil2025-04-03
1017Russia2025-04-25
1018Germany2025-04-19
1019Argentina2025-04-22
1020Italy2025-04-24
1021Japan2025-04-15
1022France2025-04-26
1023France2025-04-20
1024Canada2025-04-15
1025Argentina2025-04-06
1026France2025-04-24
1027Russia2025-04-09
1028Brazil2025-04-27
1029Australia2025-04-26
1030Argentina2025-04-23
1031Brazil2025-04-19
1032India2025-04-03
1033Japan2025-04-20
1034Spain2025-04-18
1035Spain2025-04-09
1036Australia2025-04-04
1037France2025-04-19
1038India2025-04-13
1039Spain2025-04-26
1040Argentina2025-04-08
1041Russia2025-04-20
1042Brazil2025-04-24
1043Germany2025-04-05
1044Russia2025-04-07
1045Spain2025-04-26
1046Russia2025-04-27
1047France2025-04-04
1048Italy2025-04-29
1049Germany2025-04-15

On-Demand Data

NameIdCountryDate
Maisha W Vocelka1000Italy2025-04-17
Antonio F Nicka1001Argentina2025-04-23
Isabel D Glick1002Russia2025-04-12
Claire M Gillian1003Spain2025-04-18
Faith D Amigon1004Brazil2025-04-26
Emily A Malet1005Canada2025-04-20
Faith A Doe1006Brazil2025-04-11
Darci D Ferencz1007Italy2025-04-15
Cody R Poquette1008Brazil2025-04-05
Nicolas E Ruta1009Canada2025-04-25
Claire G Rulapaugh1010Japan2025-04-12
Clifford V Kolmetz1011Brazil2025-04-14
James N Campain1012Argentina2025-04-05
Wickens D Albares1013Argentina2025-04-06
Arvin P Shinko1014Germany2025-04-20
Stacey N Venere1015Spain2025-04-19
Darci C Glick1016United Kingdom2025-04-24
Deepesh I Vocelka1017United Kingdom2025-04-17
Nicolas Q Glick1018United Kingdom2025-04-22
Julie B Figeroa1019France2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna N FerenczIndiaOnyama Limba NEGOTIATION
Kadeem M SaylorsFranceAsiya Javayant NEW
Rodrigues P KuskoJapanIoni Bowcher NEW
Claire X FollerAustraliaIoni Bowcher QUALIFIED
Wickens S WieserItalyIoni Bowcher PROPOSAL
Munro W MacleadIndiaAnna Fali RENEWAL
David H PoquetteCanadaIvan Magalhaes PROPOSAL
Ivar Q PaprockiArgentinaElwin Sharvill RENEWAL
Maria O StensethCanadaBernardo Dominic RENEWAL
Aditya E DoeSpainAnna Fali QUALIFIED
Jeanfrancois B CampainBrazilAnna Fali QUALIFIED
Leon G DilliardUnited KingdomStephen Shaw NEW
Maria H RutaUnited KingdomAsiya Javayant UNQUALIFIED
Wickens C BriddickJapanOnyama Limba RENEWAL
Aruna P FigeroaBrazilBernardo Dominic RENEWAL
Chavez I FigeroaBrazilAmy Elsner NEGOTIATION
Claire A ChuiBrazilIoni Bowcher RENEWAL
Jefferson I InouyeCanadaAsiya Javayant QUALIFIED
Jeanfrancois U SlusarskiBrazilIoni Bowcher PROPOSAL
Morrow H KolmetzCanadaStephen Shaw PROPOSAL
Cody L CaudyGermanyIvan Magalhaes NEW
Emily G SergiSpainOnyama Limba UNQUALIFIED
Deepesh G FigeroaGermanyBernardo Dominic NEW
Mayumi C RutaIndiaElwin Sharvill UNQUALIFIED
Chavez G RutaRussiaAmy Elsner NEGOTIATION
Salvatore G RoysterItalyAnna Fali PROPOSAL
Salvatore W RimCanadaStephen Shaw UNQUALIFIED
Aruna A SlusarskiItalyBernardo Dominic NEW
Emily B KolmetzBrazilAmy Elsner NEW
Alejandro R CampainCanadaOnyama Limba PROPOSAL
Leon R BriddickArgentinaIoni Bowcher RENEWAL
Clifford C BowleyCanadaElwin Sharvill UNQUALIFIED
Maria E FerenczJapanAsiya Javayant NEGOTIATION
Antonio U MorascaItalyAsiya Javayant NEW
Costa E TollnerArgentinaXuxue Feng UNQUALIFIED
Antonio H SergiBrazilStephen Shaw RENEWAL
Jones F MorascaArgentinaElwin Sharvill QUALIFIED
Faith J FlosiUnited KingdomIvan Magalhaes QUALIFIED
Darci J FigeroaRussiaXuxue Feng PROPOSAL
Misaki T GarufiBrazilBernardo Dominic NEW

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