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
Claire V ButtJapanIvan Magalhaes UNQUALIFIED
Silvio Q NestleFranceAsiya Javayant UNQUALIFIED
Faith V WhobreyCanadaIoni Bowcher PROPOSAL
Smith W FlosiBrazilIoni Bowcher UNQUALIFIED
Darci I BologniaItalyAnna Fali QUALIFIED
Johnson T DoeIndiaAnna Fali QUALIFIED
Maisha I FigeroaCanadaAmy Elsner NEGOTIATION
Ricardo W RulapaughArgentinaOnyama Limba UNQUALIFIED
Octavia L AmigonAustraliaXuxue Feng QUALIFIED
Rodrigues X RimGermanyBernardo Dominic PROPOSAL
Faith U SergiRussiaBernardo Dominic UNQUALIFIED
Deepesh G GauchoIndiaIvan Magalhaes NEGOTIATION
Jones K CaldareraBrazilIvan Magalhaes RENEWAL
Jefferson F AlbaresBrazilStephen Shaw PROPOSAL
Octavia P DarakjyIndiaElwin Sharvill UNQUALIFIED
Salvatore P CampainBrazilOnyama Limba NEW
Ashley I FerenczBrazilOnyama Limba PROPOSAL
Rodrigues W SergiRussiaAsiya Javayant PROPOSAL
Deepesh I ButtSpainBernardo Dominic NEGOTIATION
Maria G TollnerCanadaIoni Bowcher PROPOSAL
Maria L AmigonRussiaAnna Fali NEGOTIATION
Jeanfrancois P ChuiUnited KingdomOnyama Limba NEW
Murillo H BriddickIndiaOnyama Limba NEGOTIATION
Antonio Y MarrierAustraliaElwin Sharvill RENEWAL
Murillo S WhobreyAustraliaElwin Sharvill NEGOTIATION
Clifford R AlbaresSpainOnyama Limba PROPOSAL
Jones W RimArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois L NickaBrazilStephen Shaw UNQUALIFIED
Cody N InouyeGermanyOnyama Limba NEW
Munro V OldroydCanadaAnna Fali NEW
Julie Q CaldareraGermanyBernardo Dominic PROPOSAL
Francesco I MarrierUnited KingdomAsiya Javayant RENEWAL
Aika Y ButtCanadaElwin Sharvill QUALIFIED
Izzy I VenereGermanyIvan Magalhaes NEW
James C GillianItalyIvan Magalhaes UNQUALIFIED
Silvio Z FollerSpainElwin Sharvill UNQUALIFIED
Ricardo P MaletArgentinaElwin Sharvill QUALIFIED
Wickens O StensethAustraliaStephen Shaw UNQUALIFIED
Aruna O GauchoItalyIoni Bowcher NEW
Misaki U MorascaFranceIoni Bowcher UNQUALIFIED
Aruna B BriddickCanadaStephen Shaw UNQUALIFIED
Chavez X RoysterCanadaStephen Shaw NEGOTIATION
Arvin J RulapaughCanadaOnyama Limba NEGOTIATION
Aruna L CaldareraGermanyXuxue Feng NEGOTIATION
Octavia N AlbaresJapanIoni Bowcher NEW
Wickens D RutaBrazilAnna Fali PROPOSAL
Wickens Y CaudyBrazilElwin Sharvill NEW
Mujtaba R MacleadGermanyAsiya Javayant RENEWAL
Ivar W MarrierCanadaBernardo Dominic RENEWAL
Silvio K StensethCanadaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio B DarakjyFranceStephen Shaw QUALIFIED
Arvin L DarakjyArgentinaBernardo Dominic RENEWAL
Salvatore Z BowleyCanadaXuxue Feng RENEWAL
Izzy J NickaCanadaElwin Sharvill NEW
Ivar A InouyeSpainOnyama Limba QUALIFIED
Ashley I RulapaughIndiaAsiya Javayant NEW
Deepesh I CaldareraFranceIvan Magalhaes QUALIFIED
Arvin L StockhamIndiaBernardo Dominic NEW
Aika H RutaGermanyElwin Sharvill NEW
Jefferson X ShinkoRussiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Y GarufiIndia2026-07-04Chanay, Jeffrey A Esq NEGOTIATION45Amy Elsner
1001James Z VenereJapan2026-06-16Printing Dimensions PROPOSAL9Amy Elsner
1002Jefferson W BriddickJapan2026-06-08Morlong Associates RENEWAL85Elwin Sharvill
1003Faith C RimCanada2026-06-14Chanay, Jeffrey A Esq NEW27Anna Fali
1004Ashley X KolmetzIndia2026-07-03Benton, John B Jr NEGOTIATION51Amy Elsner
1005Aditya Z NestleBrazil2026-06-23Printing Dimensions RENEWAL56Onyama Limba
1006Arvin O DilliardItaly2026-07-04Buckley Miller Wright RENEWAL54Ivan Magalhaes
1007Ivar E BowleyFrance2026-06-15Benton, John B Jr NEW49Asiya Javayant
1008Tony U RoysterArgentina2026-06-10Rousseaux, Michael Esq UNQUALIFIED98Asiya Javayant
1009Tony I RimGermany2026-06-12Rousseaux, Michael Esq UNQUALIFIED80Onyama Limba
1010James L DilliardGermany2026-06-25Chemel, James L Cpa PROPOSAL93Bernardo Dominic
1011Izzy U NestleGermany2026-06-19King, Christopher A Esq NEGOTIATION93Anna Fali
1012Rodrigues R MorascaGermany2026-06-17Printing Dimensions QUALIFIED63Ioni Bowcher
1013Claire W SaylorsBrazil2026-06-29Printing Dimensions RENEWAL80Bernardo Dominic
1014Aruna Y MarrierCanada2026-06-12Buckley Miller Wright NEGOTIATION12Xuxue Feng
1015David D GauchoUnited Kingdom2026-07-04Feiner Bros QUALIFIED54Ioni Bowcher
1016Juan C TollnerCanada2026-06-10Buckley Miller Wright NEGOTIATION98Ivan Magalhaes
1017Aika K WhobreyIndia2026-06-10Dorl, James J Esq RENEWAL77Stephen Shaw
1018Ricardo T ShinkoJapan2026-07-01Chanay, Jeffrey A Esq PROPOSAL85Xuxue Feng
1019Salvatore T OstroskyGermany2026-06-08Truhlar And Truhlar Attys NEGOTIATION6Asiya Javayant
1020James B KolmetzFrance2026-06-29Buckley Miller Wright PROPOSAL85Elwin Sharvill
1021Nicolas E GillianIndia2026-06-17King, Christopher A Esq NEGOTIATION18Onyama Limba
1022Aditya V StockhamFrance2026-06-17Feiner Bros NEGOTIATION64Ivan Magalhaes
1023Jeanfrancois G KuskoArgentina2026-06-05Rousseaux, Michael Esq PROPOSAL57Bernardo Dominic
1024Munro V KuskoCanada2026-06-28Rousseaux, Michael Esq NEGOTIATION16Stephen Shaw
1025Salvatore F PaprockiGermany2026-06-13Commercial Press UNQUALIFIED86Asiya Javayant
1026Izzy Q FlosiArgentina2026-06-06Benton, John B Jr PROPOSAL11Anna Fali
1027Smith Z KolmetzSpain2026-06-08Feltz Printing Service RENEWAL94Xuxue Feng
1028Adams N NestleIndia2026-06-21Printing Dimensions UNQUALIFIED94Ioni Bowcher
1029Cody V BowleyRussia2026-06-08King, Christopher A Esq PROPOSAL50Xuxue Feng
1030Antonio I PaprockiBrazil2026-06-29Truhlar And Truhlar Attys NEGOTIATION87Ioni Bowcher
1031Rodrigues N AmigonJapan2026-06-29Buckley Miller Wright UNQUALIFIED69Bernardo Dominic
1032Kaitlin R MaletUnited Kingdom2026-06-06Commercial Press RENEWAL36Onyama Limba
1033Aditya J VenereCanada2026-06-28Feltz Printing Service UNQUALIFIED70Onyama Limba
1034Stacey Y GlickAustralia2026-06-24Feiner Bros PROPOSAL32Asiya Javayant
1035Claire T DarakjyUnited Kingdom2026-06-12Rangoni Of Florence RENEWAL91Anna Fali
1036Francesco E DilliardArgentina2026-06-19Morlong Associates RENEWAL55Anna Fali
1037Arvin Q MacleadSpain2026-06-28Feiner Bros PROPOSAL13Xuxue Feng
1038Sinclair Y MaletUnited Kingdom2026-06-09Feiner Bros QUALIFIED0Asiya Javayant
1039Octavia L SaylorsRussia2026-06-27Feiner Bros NEGOTIATION35Stephen Shaw
1040Jefferson M BologniaUnited Kingdom2026-06-11Printing Dimensions NEW60Bernardo Dominic
1041Jefferson K FlosiFrance2026-06-16Feiner Bros NEGOTIATION12Stephen Shaw
1042Faith F NestleJapan2026-06-26Buckley Miller Wright UNQUALIFIED98Bernardo Dominic
1043Leja Y AmigonGermany2026-06-11Buckley Miller Wright QUALIFIED96Ioni Bowcher
1044David I MacleadArgentina2026-06-12Chanay, Jeffrey A Esq NEGOTIATION79Ioni Bowcher
1045Leja D SchemmerSpain2026-06-17Buckley Miller Wright UNQUALIFIED49Asiya Javayant
1046Antonio T SchemmerAustralia2026-06-29Benton, John B Jr QUALIFIED59Elwin Sharvill
1047Darci B MaletGermany2026-07-04Commercial Press PROPOSAL82Anna Fali
1048Ivar S BowleyAustralia2026-06-28Buckley Miller Wright PROPOSAL99Amy Elsner
1049Cody L SaylorsIndia2026-06-16Truhlar And Truhlar Attys RENEWAL89Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie S AmigonAustraliaIoni Bowcher PROPOSAL
Stacey C VocelkaItalyAmy Elsner NEGOTIATION
Aditya U DoeFranceAsiya Javayant NEGOTIATION
Leon Z DarakjyBrazilIoni Bowcher PROPOSAL
Nicolas D RutaSpainIoni Bowcher PROPOSAL
Chavez G RimJapanIvan Magalhaes RENEWAL
Tony P ButtCanadaIvan Magalhaes UNQUALIFIED
Isabel O MorascaRussiaStephen Shaw NEGOTIATION
Stacey G CampainAustraliaAmy Elsner RENEWAL
Emily K DarakjySpainAnna Fali NEGOTIATION
Smith H MorascaRussiaXuxue Feng UNQUALIFIED
Mayumi O GlickSpainBernardo Dominic QUALIFIED
Arvin C RimRussiaAsiya Javayant PROPOSAL
Clifford H MarrierRussiaAnna Fali NEW
Jeanfrancois E SchemmerItalyIoni Bowcher NEGOTIATION
Juan F RimAustraliaIvan Magalhaes QUALIFIED
Antonio G VocelkaCanadaIvan Magalhaes RENEWAL
Johnson X CaldareraGermanyBernardo Dominic UNQUALIFIED
Greenwood C StensethAustraliaBernardo Dominic UNQUALIFIED
Munro L CampainBrazilBernardo Dominic QUALIFIED
James B IturbideCanadaIoni Bowcher RENEWAL
Aditya I InouyeBrazilOnyama Limba PROPOSAL
Claire M DoeJapanAnna Fali UNQUALIFIED
Jones K OstroskyAustraliaElwin Sharvill UNQUALIFIED
Deepesh Z SchemmerGermanyIoni Bowcher UNQUALIFIED
Greenwood G PaprockiIndiaIoni Bowcher NEGOTIATION
Isabel H VenereSpainIoni Bowcher NEW
Isabel L ChuiItalyAmy Elsner PROPOSAL
Octavia K GarufiJapanXuxue Feng UNQUALIFIED
Chavez B PerinRussiaElwin Sharvill NEGOTIATION
Leon H RulapaughSpainBernardo Dominic UNQUALIFIED
Kaitlin Z SchemmerFranceXuxue Feng RENEWAL
Jeanfrancois H RoysterRussiaBernardo Dominic NEGOTIATION
Misaki V FigeroaFranceAnna Fali PROPOSAL
Antonio V MorascaUnited KingdomBernardo Dominic PROPOSAL
Julie M KolmetzUnited KingdomOnyama Limba PROPOSAL
Aika F PerinItalyIvan Magalhaes PROPOSAL
Juan Z FerenczGermanyBernardo Dominic NEGOTIATION
Tony J KuskoUnited KingdomStephen Shaw QUALIFIED
Juan J GauchoGermanyIvan Magalhaes NEW
Misaki T RutaFranceBernardo Dominic QUALIFIED
Antonio I CaudyIndiaXuxue Feng NEW
Deepesh W StockhamRussiaAsiya Javayant PROPOSAL
Deepesh E MaletArgentinaAsiya Javayant RENEWAL
Greenwood T StensethArgentinaOnyama Limba NEW
Sinclair E IturbideArgentinaBernardo Dominic NEGOTIATION
David E KuskoFranceAmy Elsner NEGOTIATION
Jones M CampainRussiaBernardo Dominic NEGOTIATION
Misaki N GlickIndiaOnyama Limba NEGOTIATION
Octavia G TollnerIndiaAsiya Javayant RENEWAL
Frozen Columns
Name
David W Dilliard
Claire M Wieser
Aruna F Figeroa
Cody F Royster
Francesco D Inouye
James W Butt
Francesco B Perin
Silvio Q Sergi
Claire C Kolmetz
Juan J Schemmer
Darci I Stockham
Darci D Caudy
Aruna H Bowley
Octavia D Waycott
Kadeem C Kolmetz
Arvin H Slusarski
Rodrigues E Maclead
Munro N Amigon
Aika J Flosi
Johnson V Sergi
Cody B Ruta
Arvin V Glick
Wickens I Schemmer
Jeanfrancois I Iturbide
Mayumi Z Kolmetz
James U Perin
Maisha B Shinko
Antonio E Campain
Claire U Tollner
David U Saylors
Kadeem L Caudy
Aika G Gaucho
Leja V Iturbide
Nicolas Y Morasca
Claire V Ferencz
Cody J Malet
David A Albares
Deepesh A Amigon
Aika X Albares
Darci J Caudy
James U Caldarera
Smith E Ruta
Nicolas U Slusarski
Jeanfrancois T Marrier
Misaki S Morasca
Johnson E Malet
Leja M Saylors
Jennifer E Iturbide
Jennifer F Caudy
Stacey M Malet
IdCountryDate
1000Canada2026-06-06
1001Australia2026-06-08
1002Canada2026-06-06
1003Canada2026-06-08
1004Japan2026-06-25
1005Australia2026-06-24
1006Japan2026-06-09
1007Argentina2026-06-23
1008Brazil2026-06-15
1009Australia2026-06-24
1010France2026-06-24
1011Germany2026-06-24
1012United Kingdom2026-06-13
1013United Kingdom2026-06-15
1014Australia2026-06-17
1015Brazil2026-06-28
1016Spain2026-06-10
1017India2026-06-09
1018Italy2026-06-13
1019Brazil2026-07-04
1020Argentina2026-06-06
1021Germany2026-06-30
1022Spain2026-06-22
1023Argentina2026-06-14
1024Japan2026-07-04
1025Australia2026-06-30
1026India2026-07-01
1027Japan2026-06-18
1028Germany2026-06-13
1029Italy2026-06-11
1030United Kingdom2026-06-29
1031India2026-07-01
1032Canada2026-06-12
1033Argentina2026-06-12
1034United Kingdom2026-06-11
1035Russia2026-06-22
1036Argentina2026-06-14
1037Argentina2026-06-08
1038Italy2026-06-05
1039Australia2026-06-05
1040Argentina2026-07-04
1041Australia2026-06-09
1042Russia2026-06-11
1043Italy2026-06-10
1044France2026-06-15
1045Germany2026-06-25
1046France2026-06-12
1047Brazil2026-06-25
1048Germany2026-06-23
1049France2026-06-27

On-Demand Data

NameIdCountryDate
Leon W Chui1000France2026-06-29
James C Ruta1001Brazil2026-06-26
Clifford L Vocelka1002Brazil2026-06-25
Tony O Rim1003Germany2026-06-08
Leja W Caldarera1004Russia2026-06-16
Jeanfrancois G Paprocki1005Germany2026-06-24
Darci C Marrier1006Spain2026-07-02
Arvin Z Inouye1007United Kingdom2026-06-25
James Y Perin1008Germany2026-06-19
Greenwood D Venere1009France2026-07-04
David N Vocelka1010India2026-06-15
Antonio N Malet1011France2026-06-15
Jennifer G Shinko1012Germany2026-06-17
Wickens A Waycott1013Germany2026-06-05
Antonio C Nicka1014Japan2026-07-03
Smith W Royster1015Japan2026-06-05
Juan I Vocelka1016Argentina2026-06-29
Adams J Stenseth1017Italy2026-06-14
Jones J Malet1018Argentina2026-06-17
Costa K Poquette1019Germany2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki C BologniaItalyBernardo Dominic NEW
Aika J CampainRussiaBernardo Dominic UNQUALIFIED
Greenwood L StockhamRussiaXuxue Feng RENEWAL
Darci D KolmetzCanadaAnna Fali NEW
Emily H RimUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer B GarufiIndiaXuxue Feng UNQUALIFIED
Clifford Q DoeCanadaOnyama Limba UNQUALIFIED
Juan V GlickRussiaElwin Sharvill RENEWAL
Misaki W WieserArgentinaXuxue Feng RENEWAL
Ricardo J IturbideSpainAsiya Javayant PROPOSAL
Clifford Q SchemmerItalyBernardo Dominic PROPOSAL
Tony P ButtRussiaAnna Fali UNQUALIFIED
Cody W FollerAustraliaAnna Fali QUALIFIED
Jones S FigeroaBrazilIoni Bowcher UNQUALIFIED
Chavez P MacleadJapanStephen Shaw PROPOSAL
Alejandro B MarrierArgentinaIvan Magalhaes NEW
Aruna U RutaFranceAnna Fali PROPOSAL
Claire C StensethUnited KingdomAnna Fali UNQUALIFIED
Murillo K PerinItalyAmy Elsner PROPOSAL
Maisha U WieserUnited KingdomOnyama Limba RENEWAL
Alejandro A VocelkaBrazilAnna Fali PROPOSAL
Mayumi G KuskoSpainElwin Sharvill PROPOSAL
Leon L AmigonSpainBernardo Dominic PROPOSAL
Mayumi P DarakjySpainXuxue Feng RENEWAL
Deepesh Y DoeCanadaOnyama Limba QUALIFIED
Mujtaba R RulapaughCanadaElwin Sharvill NEGOTIATION
David H PaprockiUnited KingdomBernardo Dominic NEW
Silvio L FollerGermanyAsiya Javayant RENEWAL
Darci J PaprockiJapanIoni Bowcher NEW
Ivar U FlosiCanadaAsiya Javayant RENEWAL
Johnson N DilliardJapanBernardo Dominic QUALIFIED
Aika F FigeroaRussiaElwin Sharvill NEGOTIATION
Tony N ShinkoFranceBernardo Dominic NEGOTIATION
Clifford E WhobreyUnited KingdomAnna Fali UNQUALIFIED
Mujtaba O StensethBrazilStephen Shaw PROPOSAL
David D DilliardFranceAnna Fali PROPOSAL
Adams M DoeAustraliaStephen Shaw NEW
Sinclair V SlusarskiGermanyIoni Bowcher UNQUALIFIED
Adams N OstroskyIndiaIvan Magalhaes PROPOSAL
David Z SlusarskiSpainBernardo Dominic 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>