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
Chavez S PaprockiItalyXuxue Feng PROPOSAL
Octavia C ButtArgentinaElwin Sharvill PROPOSAL
Alejandro I SchemmerBrazilAnna Fali PROPOSAL
Aditya V SlusarskiRussiaElwin Sharvill RENEWAL
David W GauchoFranceAsiya Javayant NEGOTIATION
Sinclair A SaylorsRussiaIvan Magalhaes UNQUALIFIED
Maisha Q RimBrazilStephen Shaw PROPOSAL
Emily W KolmetzJapanStephen Shaw NEW
Morrow T AmigonGermanyAnna Fali RENEWAL
Ricardo R KolmetzBrazilAnna Fali NEGOTIATION
Wickens F MacleadUnited KingdomBernardo Dominic RENEWAL
Claire W NickaGermanyAmy Elsner NEW
Silvio R GauchoItalyElwin Sharvill UNQUALIFIED
Misaki M ShinkoIndiaIoni Bowcher QUALIFIED
Mujtaba O OldroydIndiaAnna Fali QUALIFIED
Aika G RoysterBrazilAsiya Javayant UNQUALIFIED
Maisha Q PoquetteItalyOnyama Limba RENEWAL
Ricardo C PoquetteJapanXuxue Feng UNQUALIFIED
Morrow G DoeIndiaIvan Magalhaes NEW
Ashley T DoeCanadaIoni Bowcher NEGOTIATION
Ivar J BriddickArgentinaAsiya Javayant RENEWAL
Smith I FigeroaJapanElwin Sharvill NEW
Leja Z StockhamBrazilStephen Shaw NEW
Deepesh K CaldareraBrazilElwin Sharvill QUALIFIED
Murillo G NestleFranceXuxue Feng NEGOTIATION
Aruna M StockhamSpainIoni Bowcher QUALIFIED
Jones H RulapaughItalyElwin Sharvill NEGOTIATION
Maisha J FerenczAustraliaIoni Bowcher PROPOSAL
Chavez S StockhamRussiaBernardo Dominic UNQUALIFIED
Aruna X StockhamFranceAnna Fali NEW
Juan Z SchemmerFranceBernardo Dominic RENEWAL
Johnson C PerinFranceIoni Bowcher QUALIFIED
Jones K FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Wickens G CaudyBrazilXuxue Feng NEW
Isabel S NickaItalyAmy Elsner RENEWAL
Faith Y NestleUnited KingdomStephen Shaw NEW
Greenwood V WaycottSpainBernardo Dominic PROPOSAL
Mayumi P RutaAustraliaOnyama Limba NEW
Misaki H GarufiGermanyIoni Bowcher NEW
Jones I PerinArgentinaAmy Elsner NEGOTIATION
Cody O GlickSpainElwin Sharvill UNQUALIFIED
Salvatore B InouyeUnited KingdomAsiya Javayant QUALIFIED
Chavez A StensethGermanyAsiya Javayant NEGOTIATION
Francesco C OldroydFranceOnyama Limba PROPOSAL
Aditya Y MarrierSpainXuxue Feng PROPOSAL
Deepesh Q DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Aruna Z CampainFranceAsiya Javayant NEGOTIATION
Julie J FlosiBrazilIvan Magalhaes PROPOSAL
Adams L RimCanadaStephen Shaw QUALIFIED
Wickens G InouyeGermanyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Jones G ShinkoArgentinaAnna Fali NEGOTIATION
Salvatore S StockhamUnited KingdomXuxue Feng NEW
Aruna K VenereItalyAnna Fali RENEWAL
Chavez V StockhamSpainXuxue Feng RENEWAL
Aruna C DarakjyAustraliaBernardo Dominic NEW
Arvin Y GauchoItalyElwin Sharvill NEW
Aika P FlosiGermanyIoni Bowcher NEW
Izzy Q SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Jones W DoeRussiaStephen Shaw QUALIFIED
Claire D SchemmerItalyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones O RoysterSpain2026-08-14Feiner Bros PROPOSAL27Anna Fali
1001Claire V FlosiArgentina2026-07-29Benton, John B Jr UNQUALIFIED88Ioni Bowcher
1002David J OstroskyCanada2026-08-01Dorl, James J Esq NEW75Onyama Limba
1003Morrow H VenereFrance2026-08-05Printing Dimensions QUALIFIED72Ivan Magalhaes
1004Leon Q NickaIndia2026-07-22Benton, John B Jr NEW16Anna Fali
1005Aditya R KuskoBrazil2026-08-10Truhlar And Truhlar Attys UNQUALIFIED55Elwin Sharvill
1006Isabel S KuskoUnited Kingdom2026-08-19Rangoni Of Florence RENEWAL84Onyama Limba
1007Kadeem B OstroskyJapan2026-08-16Commercial Press NEGOTIATION22Bernardo Dominic
1008Leja I ButtJapan2026-08-03Dorl, James J Esq NEGOTIATION91Ivan Magalhaes
1009Maria J MacleadRussia2026-08-11King, Christopher A Esq PROPOSAL82Stephen Shaw
1010Greenwood C RimSpain2026-08-10Dorl, James J Esq PROPOSAL58Ivan Magalhaes
1011Claire B PoquetteItaly2026-07-30Chapman, Ross E Esq NEW11Ivan Magalhaes
1012Ivar T RoysterItaly2026-08-09Printing Dimensions UNQUALIFIED91Ioni Bowcher
1013Munro U DoeUnited Kingdom2026-08-08Truhlar And Truhlar Attys PROPOSAL48Ivan Magalhaes
1014Juan V OldroydGermany2026-08-08Commercial Press QUALIFIED17Bernardo Dominic
1015Maisha M SaylorsBrazil2026-07-23Rangoni Of Florence RENEWAL82Ivan Magalhaes
1016Chavez L BowleySpain2026-08-15Dorl, James J Esq QUALIFIED79Ioni Bowcher
1017Murillo K InouyeJapan2026-08-07Benton, John B Jr QUALIFIED13Stephen Shaw
1018Ivar N MacleadGermany2026-07-28Feiner Bros NEGOTIATION5Onyama Limba
1019Darci U StockhamIndia2026-08-08Chapman, Ross E Esq UNQUALIFIED87Elwin Sharvill
1020Jefferson X FigeroaIndia2026-07-27King, Christopher A Esq PROPOSAL51Onyama Limba
1021Octavia V RulapaughBrazil2026-07-22Chapman, Ross E Esq PROPOSAL74Stephen Shaw
1022Mujtaba B StockhamRussia2026-08-09Chemel, James L Cpa QUALIFIED73Elwin Sharvill
1023Maisha M SchemmerUnited Kingdom2026-07-24Rangoni Of Florence PROPOSAL12Onyama Limba
1024Tony I BowleyAustralia2026-08-19King, Christopher A Esq NEW8Xuxue Feng
1025Costa K PaprockiCanada2026-08-02Printing Dimensions RENEWAL93Onyama Limba
1026Ricardo G GarufiBrazil2026-08-05Chapman, Ross E Esq NEW18Stephen Shaw
1027Chavez R IturbideGermany2026-08-12Commercial Press RENEWAL92Stephen Shaw
1028Tony B ButtAustralia2026-07-22Chemel, James L Cpa UNQUALIFIED29Ivan Magalhaes
1029Juan W SergiJapan2026-08-08Buckley Miller Wright PROPOSAL11Elwin Sharvill
1030David Q ShinkoGermany2026-07-24Rousseaux, Michael Esq NEW8Stephen Shaw
1031Juan X SaylorsIndia2026-08-08Feiner Bros PROPOSAL64Xuxue Feng
1032Nicolas S ShinkoBrazil2026-08-02Feiner Bros UNQUALIFIED84Bernardo Dominic
1033Silvio S AlbaresFrance2026-08-16Chemel, James L Cpa NEW84Asiya Javayant
1034Juan P GillianAustralia2026-08-11Feltz Printing Service UNQUALIFIED42Ivan Magalhaes
1035Isabel Q MaletArgentina2026-08-05Rangoni Of Florence UNQUALIFIED90Ivan Magalhaes
1036Jefferson Y FollerGermany2026-08-06Chapman, Ross E Esq PROPOSAL26Amy Elsner
1037Jennifer P TollnerItaly2026-07-22Morlong Associates PROPOSAL94Bernardo Dominic
1038Johnson H KuskoGermany2026-08-15Printing Dimensions NEGOTIATION27Ioni Bowcher
1039Cody C AlbaresSpain2026-08-05Printing Dimensions RENEWAL45Xuxue Feng
1040Juan I FigeroaItaly2026-08-05Printing Dimensions UNQUALIFIED24Onyama Limba
1041Jeanfrancois C SlusarskiGermany2026-08-08Truhlar And Truhlar Attys QUALIFIED28Anna Fali
1042Jennifer V PerinArgentina2026-08-04Morlong Associates PROPOSAL90Asiya Javayant
1043Rodrigues N CampainRussia2026-08-08King, Christopher A Esq UNQUALIFIED89Onyama Limba
1044Francesco J DoeJapan2026-08-10King, Christopher A Esq PROPOSAL74Bernardo Dominic
1045Nicolas A KuskoGermany2026-08-11Chapman, Ross E Esq QUALIFIED26Bernardo Dominic
1046Aruna F ChuiCanada2026-08-03Truhlar And Truhlar Attys QUALIFIED21Ivan Magalhaes
1047Adams Z DilliardFrance2026-07-22Commercial Press QUALIFIED17Ivan Magalhaes
1048Juan O InouyeJapan2026-08-16Chemel, James L Cpa NEW24Xuxue Feng
1049Costa O DoeSpain2026-08-11King, Christopher A Esq QUALIFIED24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leon F AlbaresIndiaBernardo Dominic PROPOSAL
Murillo O BriddickSpainIvan Magalhaes QUALIFIED
Isabel O BowleyAustraliaBernardo Dominic PROPOSAL
Misaki K MaletCanadaElwin Sharvill NEGOTIATION
Smith J PerinGermanyBernardo Dominic RENEWAL
Aditya Y GauchoItalyIvan Magalhaes PROPOSAL
Rodrigues K CaldareraAustraliaStephen Shaw QUALIFIED
Wickens P RulapaughGermanyIoni Bowcher NEGOTIATION
Clifford G TollnerItalyIvan Magalhaes QUALIFIED
Munro I NickaCanadaStephen Shaw RENEWAL
Smith W RutaFranceOnyama Limba RENEWAL
Greenwood O StockhamIndiaElwin Sharvill UNQUALIFIED
Izzy G DilliardCanadaIoni Bowcher NEW
Jennifer S MorascaCanadaIoni Bowcher QUALIFIED
Emily S CampainIndiaAsiya Javayant QUALIFIED
Mujtaba G MacleadJapanAnna Fali UNQUALIFIED
Clifford F GillianItalyAmy Elsner PROPOSAL
Morrow H TollnerUnited KingdomElwin Sharvill NEGOTIATION
Ashley Z NestleGermanyXuxue Feng NEW
Jennifer X GillianItalyAsiya Javayant UNQUALIFIED
Antonio C CaudyCanadaIoni Bowcher QUALIFIED
Izzy D BowleyItalyStephen Shaw NEW
Arvin Z DilliardGermanyAsiya Javayant RENEWAL
Francesco G RoysterJapanIoni Bowcher UNQUALIFIED
Leon E TollnerBrazilStephen Shaw RENEWAL
Claire A KolmetzArgentinaIvan Magalhaes QUALIFIED
Adams N VocelkaIndiaOnyama Limba UNQUALIFIED
Jennifer Z RulapaughArgentinaAsiya Javayant RENEWAL
Johnson T PaprockiCanadaOnyama Limba NEW
Octavia N PoquetteBrazilAmy Elsner QUALIFIED
Maria G GlickCanadaOnyama Limba NEW
Misaki V OstroskySpainAsiya Javayant NEGOTIATION
Johnson N AmigonCanadaAmy Elsner PROPOSAL
Maria K NickaFranceAmy Elsner UNQUALIFIED
Rodrigues J RutaGermanyIvan Magalhaes RENEWAL
Kadeem A MaletJapanIvan Magalhaes PROPOSAL
Misaki R SaylorsSpainElwin Sharvill UNQUALIFIED
Wickens V OstroskyRussiaXuxue Feng UNQUALIFIED
Munro M MaletArgentinaIoni Bowcher PROPOSAL
Mayumi N RulapaughJapanAmy Elsner QUALIFIED
Juan I KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Cody J FlosiAustraliaStephen Shaw RENEWAL
Costa R KuskoArgentinaAmy Elsner NEW
Maria C GarufiIndiaBernardo Dominic NEGOTIATION
Ashley H GillianBrazilIvan Magalhaes NEW
Chavez E SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Leon V KuskoRussiaAmy Elsner UNQUALIFIED
Wickens B AmigonCanadaXuxue Feng PROPOSAL
Johnson X RimBrazilElwin Sharvill NEGOTIATION
David W BologniaItalyOnyama Limba RENEWAL
Frozen Columns
Name
Ivar N Nicka
Jefferson K Sergi
Faith Z Albares
Ashley U Figeroa
Smith P Chui
Adams F Inouye
Emily F Kolmetz
Stacey H Albares
Adams V Stockham
Wickens K Albares
Tony S Rulapaugh
Aika O Gaucho
Wickens H Ferencz
Antonio G Vocelka
Julie T Inouye
Kadeem R Gillian
Cody V Amigon
Nicolas F Wieser
Darci P Slusarski
Francesco G Ferencz
Isabel U Iturbide
Claire S Perin
Costa U Stenseth
Ivar K Schemmer
Smith V Ruta
Jeanfrancois J Nicka
Johnson J Ruta
Misaki D Kolmetz
Octavia Z Rulapaugh
Darci R Whobrey
Adams T Figeroa
Silvio W Slusarski
Isabel F Figeroa
Antonio Z Glick
Alejandro E Shinko
Claire R Bowley
Stacey A Malet
Mayumi P Stockham
Claire A Perin
Tony I Doe
Maria B Kolmetz
Misaki T Bowley
Antonio I Sergi
Darci Q Dilliard
Antonio E Bolognia
Jones A Inouye
Ashley R Nestle
Salvatore P Maclead
Darci Q Chui
Mujtaba K Glick
IdCountryDate
1000United Kingdom2026-08-15
1001Canada2026-08-10
1002France2026-08-20
1003Germany2026-07-23
1004Japan2026-08-19
1005Canada2026-07-22
1006Japan2026-08-04
1007Brazil2026-08-15
1008India2026-08-09
1009United Kingdom2026-08-20
1010United Kingdom2026-08-17
1011France2026-08-11
1012France2026-08-15
1013Australia2026-08-08
1014India2026-07-31
1015Spain2026-07-24
1016Brazil2026-08-11
1017France2026-07-24
1018United Kingdom2026-08-20
1019United Kingdom2026-08-10
1020Argentina2026-08-08
1021Russia2026-08-09
1022Germany2026-08-14
1023Argentina2026-08-08
1024Argentina2026-08-12
1025United Kingdom2026-07-31
1026Canada2026-08-12
1027United Kingdom2026-08-05
1028Australia2026-07-22
1029Australia2026-08-01
1030Australia2026-08-12
1031Canada2026-07-28
1032Brazil2026-08-14
1033Canada2026-07-28
1034France2026-08-16
1035Russia2026-08-05
1036United Kingdom2026-08-03
1037Brazil2026-08-07
1038Russia2026-08-20
1039Argentina2026-08-20
1040France2026-08-09
1041Australia2026-08-02
1042Spain2026-08-18
1043France2026-07-22
1044United Kingdom2026-07-31
1045Australia2026-07-30
1046Brazil2026-08-06
1047Argentina2026-07-25
1048Australia2026-07-30
1049France2026-08-14

On-Demand Data

NameIdCountryDate
Aruna I Venere1000Japan2026-08-13
Antonio A Ferencz1001Australia2026-08-12
Aruna V Royster1002Italy2026-07-27
Julie W Venere1003Brazil2026-08-02
David L Foller1004Spain2026-07-26
Adams W Venere1005India2026-08-20
Jeanfrancois Y Maclead1006United Kingdom2026-07-27
Jefferson K Stockham1007Italy2026-08-03
Tony K Schemmer1008Italy2026-08-19
Aika T Garufi1009India2026-07-24
Izzy T Nestle1010Argentina2026-07-28
Cody M Whobrey1011Canada2026-08-02
Julie Z Morasca1012United Kingdom2026-08-07
Silvio E Kolmetz1013India2026-08-06
Smith S Amigon1014Italy2026-08-04
Johnson C Waycott1015United Kingdom2026-08-12
Salvatore T Shinko1016United Kingdom2026-07-29
Nicolas R Bowley1017Canada2026-08-10
Tony A Briddick1018Russia2026-08-08
Juan X Garufi1019Italy2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey J MorascaJapanAnna Fali QUALIFIED
Claire G KuskoFranceIvan Magalhaes UNQUALIFIED
James B GauchoSpainAmy Elsner UNQUALIFIED
Juan Q AlbaresGermanyIvan Magalhaes PROPOSAL
Adams H FlosiAustraliaStephen Shaw PROPOSAL
Ashley T StensethGermanyBernardo Dominic NEGOTIATION
Smith Y SlusarskiSpainElwin Sharvill PROPOSAL
Ashley W NestleCanadaElwin Sharvill NEGOTIATION
Salvatore Y FollerUnited KingdomAsiya Javayant PROPOSAL
David K SaylorsItalyOnyama Limba RENEWAL
Clifford L StensethRussiaIvan Magalhaes RENEWAL
Maria Q ShinkoUnited KingdomStephen Shaw PROPOSAL
Adams D StockhamRussiaAmy Elsner PROPOSAL
Aruna W AmigonCanadaXuxue Feng NEGOTIATION
Jefferson I NestleRussiaOnyama Limba QUALIFIED
Murillo O ShinkoAustraliaAmy Elsner PROPOSAL
Leon N RulapaughIndiaAmy Elsner QUALIFIED
James D TollnerCanadaAmy Elsner PROPOSAL
Rodrigues O InouyeSpainIvan Magalhaes NEGOTIATION
Isabel Q AlbaresBrazilBernardo Dominic NEGOTIATION
Octavia K VenereFranceStephen Shaw NEW
Jefferson A TollnerAustraliaIoni Bowcher NEW
Kaitlin W OstroskyAustraliaAsiya Javayant RENEWAL
Emily E WaycottArgentinaOnyama Limba NEGOTIATION
Aditya J CampainUnited KingdomAnna Fali NEW
Mayumi X AmigonJapanStephen Shaw PROPOSAL
Greenwood Q StockhamFranceAmy Elsner PROPOSAL
Deepesh J GarufiIndiaAmy Elsner QUALIFIED
Izzy X DoeAustraliaAmy Elsner UNQUALIFIED
Izzy G MacleadAustraliaXuxue Feng QUALIFIED
Arvin G OstroskyArgentinaElwin Sharvill NEW
Ivar L KuskoBrazilIvan Magalhaes PROPOSAL
Francesco P StensethFranceAmy Elsner UNQUALIFIED
Emily Z DilliardJapanAmy Elsner QUALIFIED
Deepesh U StockhamRussiaElwin Sharvill NEW
Greenwood Q NickaUnited KingdomAmy Elsner NEW
Aditya W MaletRussiaStephen Shaw QUALIFIED
Arvin P MarrierItalyAnna Fali PROPOSAL
Aika Y KuskoAustraliaIvan Magalhaes UNQUALIFIED
Misaki H DilliardAustraliaBernardo Dominic PROPOSAL

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