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
Misaki I MaletIndiaOnyama Limba RENEWAL
Faith Q DilliardBrazilOnyama Limba NEGOTIATION
Ashley C PerinGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois A RutaJapanBernardo Dominic PROPOSAL
Antonio S OldroydFranceXuxue Feng PROPOSAL
Murillo L ChuiUnited KingdomAnna Fali NEGOTIATION
Morrow R MarrierGermanyIoni Bowcher QUALIFIED
Faith H SergiFranceIvan Magalhaes RENEWAL
Munro I DarakjyArgentinaAmy Elsner NEGOTIATION
Silvio F ButtGermanyOnyama Limba NEW
Mayumi S NestleSpainAsiya Javayant RENEWAL
Darci K RulapaughFranceAnna Fali QUALIFIED
Deepesh M MaletItalyAmy Elsner PROPOSAL
Ricardo I DoeRussiaBernardo Dominic NEW
Ivar S PoquetteJapanIvan Magalhaes NEGOTIATION
Claire P NickaAustraliaOnyama Limba NEGOTIATION
Cody K CaldareraArgentinaBernardo Dominic PROPOSAL
Clifford T DoeJapanAsiya Javayant UNQUALIFIED
Mujtaba C InouyeSpainStephen Shaw UNQUALIFIED
Jennifer N MorascaIndiaAnna Fali PROPOSAL
Faith C MarrierCanadaOnyama Limba NEGOTIATION
Mujtaba P WieserGermanyAsiya Javayant QUALIFIED
Faith T FollerBrazilElwin Sharvill PROPOSAL
Mujtaba O AlbaresFranceXuxue Feng UNQUALIFIED
Aika Q KolmetzBrazilStephen Shaw UNQUALIFIED
Ivar W GauchoBrazilElwin Sharvill NEGOTIATION
Maisha K BowleySpainStephen Shaw RENEWAL
Aditya T VocelkaArgentinaIoni Bowcher PROPOSAL
Jeanfrancois N StockhamArgentinaIvan Magalhaes RENEWAL
Faith K AlbaresRussiaAnna Fali QUALIFIED
Greenwood F SergiUnited KingdomOnyama Limba QUALIFIED
Kadeem T WhobreyJapanAsiya Javayant UNQUALIFIED
Octavia L DilliardBrazilAnna Fali NEW
Mujtaba L RulapaughCanadaIoni Bowcher QUALIFIED
Ricardo G IturbideItalyBernardo Dominic QUALIFIED
Murillo M StockhamBrazilElwin Sharvill NEW
Claire Y AmigonIndiaAsiya Javayant QUALIFIED
Greenwood R MarrierArgentinaBernardo Dominic PROPOSAL
Claire V GillianGermanyIoni Bowcher NEGOTIATION
Stacey K MacleadRussiaAnna Fali QUALIFIED
Jeanfrancois N MacleadUnited KingdomIoni Bowcher NEW
Sinclair O AmigonBrazilIoni Bowcher PROPOSAL
Stacey I BriddickItalyAsiya Javayant NEW
Jeanfrancois L PerinJapanBernardo Dominic QUALIFIED
Murillo L SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore C StensethItalyElwin Sharvill QUALIFIED
Stacey Z StensethAustraliaIvan Magalhaes NEW
Rodrigues I PaprockiItalyStephen Shaw UNQUALIFIED
Deepesh M NickaBrazilStephen Shaw NEW
Morrow V AmigonJapanOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Arvin Z IturbideRussiaAmy Elsner NEGOTIATION
Claire M AlbaresJapanBernardo Dominic NEGOTIATION
Nicolas B FerenczArgentinaXuxue Feng NEGOTIATION
Murillo R GarufiRussiaBernardo Dominic RENEWAL
Morrow F StensethUnited KingdomXuxue Feng NEW
Aditya S VenereAustraliaAsiya Javayant PROPOSAL
Jefferson B BologniaAustraliaIvan Magalhaes UNQUALIFIED
Wickens J WaycottItalyAnna Fali NEW
Clifford Q SchemmerSpainIvan Magalhaes PROPOSAL
Adams V MorascaRussiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa I VenereBrazil2026-07-30Benton, John B Jr NEGOTIATION48Onyama Limba
1001Francesco W GillianIndia2026-07-29Feiner Bros QUALIFIED0Elwin Sharvill
1002Isabel Q KuskoArgentina2026-07-30Morlong Associates PROPOSAL40Amy Elsner
1003Deepesh D NickaRussia2026-08-08Feltz Printing Service QUALIFIED77Onyama Limba
1004Misaki R TollnerArgentina2026-08-11Rousseaux, Michael Esq UNQUALIFIED67Ioni Bowcher
1005Ricardo C ButtArgentina2026-08-05Printing Dimensions PROPOSAL46Ioni Bowcher
1006Claire J NestleIndia2026-08-06King, Christopher A Esq NEW85Bernardo Dominic
1007Izzy A DarakjyBrazil2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED84Elwin Sharvill
1008Maria T SchemmerItaly2026-08-04Rangoni Of Florence NEGOTIATION34Elwin Sharvill
1009Octavia V GillianAustralia2026-08-10Chemel, James L Cpa RENEWAL65Ivan Magalhaes
1010Chavez Q SaylorsArgentina2026-08-08Rousseaux, Michael Esq NEW49Ivan Magalhaes
1011Murillo X FlosiIndia2026-08-18Feiner Bros PROPOSAL21Ivan Magalhaes
1012Emily A OstroskyItaly2026-08-17Rangoni Of Florence UNQUALIFIED84Xuxue Feng
1013Leon B MarrierFrance2026-08-09Truhlar And Truhlar Attys RENEWAL34Xuxue Feng
1014Antonio X CampainRussia2026-07-27Truhlar And Truhlar Attys QUALIFIED21Ioni Bowcher
1015Salvatore P RulapaughGermany2026-07-25Printing Dimensions PROPOSAL9Asiya Javayant
1016James G MarrierSpain2026-08-05Dorl, James J Esq PROPOSAL64Ioni Bowcher
1017Rodrigues G SaylorsRussia2026-07-28Chemel, James L Cpa PROPOSAL27Xuxue Feng
1018David D NickaRussia2026-07-29Chemel, James L Cpa NEGOTIATION84Ivan Magalhaes
1019Jefferson I PaprockiUnited Kingdom2026-07-27Truhlar And Truhlar Attys NEGOTIATION24Xuxue Feng
1020Nicolas A ButtRussia2026-07-28King, Christopher A Esq RENEWAL23Amy Elsner
1021Jones Q AlbaresBrazil2026-08-02Dorl, James J Esq RENEWAL31Ivan Magalhaes
1022Mayumi T RutaIndia2026-08-12Feiner Bros UNQUALIFIED68Amy Elsner
1023David K DarakjyGermany2026-08-03Chapman, Ross E Esq PROPOSAL97Onyama Limba
1024Ashley M MarrierItaly2026-07-30Truhlar And Truhlar Attys PROPOSAL94Elwin Sharvill
1025Nicolas B MarrierCanada2026-08-07Feiner Bros NEW84Xuxue Feng
1026Costa Z WaycottFrance2026-07-31Printing Dimensions NEW89Onyama Limba
1027Nicolas D RimArgentina2026-08-10King, Christopher A Esq QUALIFIED96Asiya Javayant
1028Francesco U FigeroaBrazil2026-08-13Commercial Press PROPOSAL53Bernardo Dominic
1029Jeanfrancois C BologniaItaly2026-07-31Chemel, James L Cpa RENEWAL84Amy Elsner
1030Alejandro H GarufiSpain2026-07-25Feiner Bros NEW25Anna Fali
1031Emily R AlbaresBrazil2026-08-22Chanay, Jeffrey A Esq UNQUALIFIED27Stephen Shaw
1032Aruna T StockhamSpain2026-08-13Chapman, Ross E Esq QUALIFIED20Onyama Limba
1033Isabel Q ChuiFrance2026-08-05King, Christopher A Esq PROPOSAL28Anna Fali
1034Leon J SchemmerJapan2026-07-31Truhlar And Truhlar Attys QUALIFIED36Ivan Magalhaes
1035Nicolas X MorascaRussia2026-07-29Feiner Bros PROPOSAL39Asiya Javayant
1036Wickens J MorascaItaly2026-07-26Benton, John B Jr RENEWAL27Ioni Bowcher
1037Murillo E InouyeIndia2026-07-31Commercial Press PROPOSAL90Stephen Shaw
1038Maria E SergiIndia2026-07-31Feltz Printing Service RENEWAL49Amy Elsner
1039Francesco A BologniaCanada2026-07-28Morlong Associates NEGOTIATION65Stephen Shaw
1040Antonio M ShinkoCanada2026-07-27King, Christopher A Esq PROPOSAL91Stephen Shaw
1041Munro O MorascaArgentina2026-08-22Benton, John B Jr QUALIFIED56Xuxue Feng
1042Costa I WhobreyBrazil2026-07-26Buckley Miller Wright RENEWAL53Stephen Shaw
1043Faith L GillianArgentina2026-08-07Dorl, James J Esq PROPOSAL99Ivan Magalhaes
1044Johnson G FollerUnited Kingdom2026-08-19Feltz Printing Service QUALIFIED33Stephen Shaw
1045Antonio F RoysterArgentina2026-07-29Dorl, James J Esq PROPOSAL57Elwin Sharvill
1046Maria E FlosiGermany2026-08-11Rousseaux, Michael Esq NEW91Elwin Sharvill
1047Smith E RulapaughIndia2026-08-17Dorl, James J Esq NEW39Ivan Magalhaes
1048Johnson S RulapaughSpain2026-08-03Chanay, Jeffrey A Esq PROPOSAL91Asiya Javayant
1049Mayumi I VenereCanada2026-08-10Rousseaux, Michael Esq NEW61Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois T RimCanadaStephen Shaw NEGOTIATION
Murillo P AmigonFranceIvan Magalhaes NEW
Claire K TollnerGermanyStephen Shaw UNQUALIFIED
Jennifer T WaycottGermanyIoni Bowcher QUALIFIED
Jefferson G BologniaItalyAsiya Javayant PROPOSAL
Kaitlin T InouyeUnited KingdomAmy Elsner NEW
Misaki Y WhobreyUnited KingdomIoni Bowcher RENEWAL
Maria S DilliardJapanAsiya Javayant NEW
Jones A VenereArgentinaAsiya Javayant UNQUALIFIED
Morrow G WhobreyFranceAsiya Javayant PROPOSAL
Nicolas V DilliardCanadaAmy Elsner PROPOSAL
Greenwood Q MaletFranceStephen Shaw UNQUALIFIED
Faith M GlickFranceAmy Elsner UNQUALIFIED
Maria Y RoysterFranceAnna Fali NEW
Sinclair X CaudyRussiaXuxue Feng NEGOTIATION
Francesco K WaycottBrazilXuxue Feng NEW
Arvin B SchemmerFranceStephen Shaw NEGOTIATION
Aruna R IturbideIndiaXuxue Feng PROPOSAL
Greenwood D CaldareraRussiaIvan Magalhaes QUALIFIED
Antonio F PerinArgentinaXuxue Feng PROPOSAL
Arvin Q BowleyItalyAnna Fali RENEWAL
Aruna E WieserIndiaElwin Sharvill UNQUALIFIED
Ricardo S OldroydRussiaElwin Sharvill UNQUALIFIED
Stacey C NestleFranceAmy Elsner QUALIFIED
Smith Y ButtBrazilAsiya Javayant RENEWAL
Johnson P DarakjyGermanyXuxue Feng QUALIFIED
Mujtaba Z ChuiFranceIoni Bowcher UNQUALIFIED
David M RoysterAustraliaAmy Elsner PROPOSAL
Darci J ButtRussiaStephen Shaw QUALIFIED
Francesco V CaudyRussiaAmy Elsner QUALIFIED
Wickens H TollnerAustraliaAnna Fali PROPOSAL
Julie B DilliardSpainIoni Bowcher NEGOTIATION
Morrow Y MaletJapanAnna Fali NEGOTIATION
Sinclair Q NestleUnited KingdomBernardo Dominic NEW
Rodrigues M BriddickAustraliaBernardo Dominic NEW
Aruna Z VenereItalyIvan Magalhaes RENEWAL
Wickens V VocelkaRussiaIoni Bowcher NEW
Clifford X FollerAustraliaXuxue Feng UNQUALIFIED
Alejandro S WhobreyFranceXuxue Feng NEW
Ivar R DilliardJapanAmy Elsner NEGOTIATION
Nicolas T DarakjyJapanBernardo Dominic PROPOSAL
Jeanfrancois X SaylorsFranceStephen Shaw UNQUALIFIED
Greenwood F WieserFranceBernardo Dominic QUALIFIED
Deepesh R WaycottFranceStephen Shaw QUALIFIED
Jennifer H IturbideGermanyOnyama Limba QUALIFIED
Aruna N InouyeJapanIvan Magalhaes NEGOTIATION
Jeanfrancois T MacleadAustraliaIvan Magalhaes RENEWAL
Faith J InouyeBrazilAsiya Javayant QUALIFIED
Maria P SlusarskiSpainBernardo Dominic NEW
Chavez L StockhamAustraliaAmy Elsner NEW
Frozen Columns
Name
Jeanfrancois F Sergi
Izzy M Rim
James N Waycott
David S Maclead
Octavia W Marrier
Smith G Briddick
Mujtaba U Maclead
Murillo E Nestle
Adams U Oldroyd
Jones Y Chui
Julie J Rim
Antonio L Morasca
Antonio N Paprocki
Octavia E Flosi
Ashley M Briddick
Aruna D Glick
Jefferson I Rulapaugh
Clifford Y Malet
Murillo B Morasca
Leon T Wieser
Arvin B Doe
Alejandro X Gillian
Deepesh R Venere
Ivar W Malet
Murillo R Stockham
Kadeem N Oldroyd
Emily A Rulapaugh
Maisha K Stenseth
Greenwood J Oldroyd
Rodrigues N Campain
Francesco T Sergi
Chavez Z Waycott
Jennifer C Oldroyd
Arvin N Butt
Maisha S Oldroyd
James H Nestle
Stacey P Whobrey
Jennifer X Saylors
Juan Z Butt
Antonio C Figeroa
Claire J Schemmer
Misaki P Bowley
Chavez D Tollner
Mujtaba I Campain
Ricardo J Vocelka
Nicolas L Morasca
Adams K Schemmer
Leon E Perin
Ivar C Malet
Adams Q Nestle
IdCountryDate
1000Brazil2026-07-27
1001United Kingdom2026-07-29
1002Canada2026-08-07
1003Japan2026-08-08
1004India2026-08-13
1005United Kingdom2026-07-24
1006Italy2026-07-25
1007Australia2026-07-28
1008United Kingdom2026-08-12
1009Spain2026-08-19
1010Australia2026-08-22
1011India2026-07-31
1012United Kingdom2026-08-20
1013Canada2026-07-25
1014Germany2026-07-28
1015Italy2026-08-14
1016Germany2026-08-07
1017Russia2026-08-12
1018France2026-07-27
1019United Kingdom2026-08-03
1020Japan2026-08-11
1021Spain2026-08-20
1022Brazil2026-08-10
1023Canada2026-08-03
1024Australia2026-08-10
1025Argentina2026-07-24
1026Spain2026-07-28
1027Argentina2026-08-06
1028France2026-07-29
1029Germany2026-07-25
1030France2026-08-22
1031Japan2026-08-07
1032Italy2026-07-31
1033United Kingdom2026-07-29
1034Australia2026-08-17
1035Russia2026-07-25
1036United Kingdom2026-07-25
1037Japan2026-07-28
1038Germany2026-07-30
1039Brazil2026-07-29
1040France2026-07-29
1041Japan2026-08-22
1042Australia2026-07-30
1043Russia2026-07-26
1044Spain2026-08-22
1045Japan2026-08-11
1046Australia2026-07-26
1047Russia2026-08-18
1048Germany2026-07-27
1049Argentina2026-08-04

On-Demand Data

NameIdCountryDate
Johnson I Chui1000France2026-08-18
Kadeem Q Royster1001United Kingdom2026-08-14
Nicolas X Tollner1002Germany2026-08-05
Sinclair C Oldroyd1003France2026-07-29
Greenwood W Butt1004Russia2026-07-25
Cody L Waycott1005Germany2026-08-21
Deepesh U Shinko1006Spain2026-07-24
Juan M Caldarera1007Argentina2026-07-27
Emily X Figeroa1008Japan2026-07-31
Jones C Slusarski1009Germany2026-08-15
Maria J Perin1010India2026-07-26
Stacey Z Kusko1011Brazil2026-08-15
Arvin X Maclead1012India2026-08-11
Munro K Kolmetz1013Canada2026-07-26
Salvatore B Malet1014Russia2026-07-26
Aditya V Malet1015India2026-08-12
Claire N Malet1016Italy2026-07-30
Aika V Paprocki1017Brazil2026-08-07
Faith I Caldarera1018Argentina2026-08-09
Misaki F Dilliard1019Canada2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson E MorascaIndiaStephen Shaw PROPOSAL
Rodrigues F VocelkaItalyIvan Magalhaes RENEWAL
Rodrigues K VocelkaSpainAmy Elsner QUALIFIED
Julie W InouyeCanadaBernardo Dominic QUALIFIED
Nicolas F ChuiIndiaIoni Bowcher UNQUALIFIED
Kaitlin U KolmetzCanadaElwin Sharvill RENEWAL
Rodrigues J WieserFranceAmy Elsner PROPOSAL
Francesco W AlbaresJapanOnyama Limba NEW
Alejandro P BowleyItalyIoni Bowcher PROPOSAL
Aditya U VocelkaIndiaAmy Elsner PROPOSAL
Jefferson O WieserArgentinaElwin Sharvill PROPOSAL
Silvio I RutaJapanXuxue Feng QUALIFIED
Maisha W MaletArgentinaIoni Bowcher UNQUALIFIED
Darci B BowleyFranceXuxue Feng PROPOSAL
Octavia S SaylorsAustraliaBernardo Dominic PROPOSAL
Antonio T NestleArgentinaElwin Sharvill UNQUALIFIED
Chavez R CampainCanadaAnna Fali UNQUALIFIED
David J SergiIndiaAmy Elsner UNQUALIFIED
Juan V PaprockiItalyOnyama Limba QUALIFIED
Stacey A TollnerAustraliaOnyama Limba QUALIFIED
Clifford E MorascaSpainAmy Elsner UNQUALIFIED
Tony R FerenczItalyAsiya Javayant NEW
Ashley O DoeCanadaAnna Fali PROPOSAL
Julie X SlusarskiJapanOnyama Limba QUALIFIED
Alejandro A CampainArgentinaStephen Shaw NEGOTIATION
Costa M FollerSpainIvan Magalhaes QUALIFIED
Isabel M MorascaJapanIoni Bowcher QUALIFIED
Isabel C NickaRussiaElwin Sharvill UNQUALIFIED
Isabel L MaletFranceAmy Elsner PROPOSAL
Antonio C GlickAustraliaAnna Fali RENEWAL
Adams F NickaArgentinaStephen Shaw RENEWAL
David E AlbaresSpainBernardo Dominic QUALIFIED
Juan T VocelkaIndiaElwin Sharvill PROPOSAL
Kaitlin C InouyeItalyStephen Shaw UNQUALIFIED
Rodrigues X ChuiCanadaElwin Sharvill PROPOSAL
Chavez G DilliardFranceBernardo Dominic UNQUALIFIED
Silvio T InouyeRussiaAmy Elsner QUALIFIED
Maria C VenereRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois N RutaFranceAsiya Javayant NEGOTIATION
David Y RoysterFranceStephen Shaw NEGOTIATION

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