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
Wickens S FerenczFranceIoni Bowcher PROPOSAL
Aruna W PoquetteFranceElwin Sharvill NEGOTIATION
Nicolas E SergiBrazilIvan Magalhaes QUALIFIED
Claire X DoeFranceIoni Bowcher UNQUALIFIED
Johnson U CampainIndiaAsiya Javayant RENEWAL
Claire X SlusarskiFranceAnna Fali NEW
Kadeem E TollnerAustraliaIoni Bowcher UNQUALIFIED
Ashley C GlickSpainXuxue Feng UNQUALIFIED
Silvio N CampainRussiaAmy Elsner NEGOTIATION
Ricardo Y CampainBrazilAnna Fali QUALIFIED
Ivar B CaudyFranceIvan Magalhaes NEGOTIATION
Murillo B OstroskySpainIoni Bowcher PROPOSAL
Arvin Y DarakjyAustraliaIoni Bowcher QUALIFIED
Jennifer G PaprockiArgentinaAsiya Javayant RENEWAL
James R RulapaughSpainAmy Elsner UNQUALIFIED
Izzy V TollnerArgentinaAsiya Javayant RENEWAL
Smith K VocelkaRussiaXuxue Feng NEGOTIATION
Faith T GlickUnited KingdomAnna Fali RENEWAL
Emily O PaprockiCanadaStephen Shaw PROPOSAL
Darci U DarakjyUnited KingdomBernardo Dominic QUALIFIED
Antonio U InouyeRussiaIvan Magalhaes NEW
Ivar S OldroydRussiaIoni Bowcher NEGOTIATION
Murillo O IturbideGermanyAnna Fali PROPOSAL
Silvio F RoysterRussiaXuxue Feng RENEWAL
James R AmigonUnited KingdomStephen Shaw UNQUALIFIED
Stacey N MarrierSpainOnyama Limba NEGOTIATION
Mayumi D BologniaUnited KingdomBernardo Dominic NEW
Kadeem Z SaylorsItalyXuxue Feng NEW
Francesco T DarakjyUnited KingdomStephen Shaw NEGOTIATION
Arvin P CampainItalyAsiya Javayant UNQUALIFIED
Emily T StensethJapanIvan Magalhaes RENEWAL
Smith D InouyeSpainBernardo Dominic PROPOSAL
Isabel V FollerItalyAnna Fali NEW
Faith H GauchoItalyXuxue Feng RENEWAL
Claire Q WieserIndiaAsiya Javayant RENEWAL
Faith U WhobreyCanadaIvan Magalhaes PROPOSAL
Aditya A IturbideRussiaAmy Elsner QUALIFIED
Sinclair J OstroskyAustraliaIoni Bowcher PROPOSAL
Ivar L StockhamSpainAmy Elsner RENEWAL
Darci S NestleCanadaStephen Shaw PROPOSAL
James B MaletJapanAnna Fali NEW
Chavez O BowleyBrazilStephen Shaw UNQUALIFIED
Munro Z AlbaresCanadaIoni Bowcher PROPOSAL
Adams J FollerUnited KingdomIvan Magalhaes QUALIFIED
Maria Q FollerRussiaAnna Fali NEGOTIATION
Julie M BowleyCanadaElwin Sharvill RENEWAL
Kadeem W AmigonRussiaAnna Fali PROPOSAL
Kaitlin W MaletItalyAnna Fali UNQUALIFIED
Ivar Q RimCanadaStephen Shaw RENEWAL
Silvio G CaldareraArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow T VenereFranceStephen Shaw NEGOTIATION
Ricardo S StensethIndiaXuxue Feng PROPOSAL
Jones R MaletCanadaBernardo Dominic NEW
David B ChuiCanadaAsiya Javayant UNQUALIFIED
Greenwood E FigeroaJapanXuxue Feng PROPOSAL
James V MorascaJapanOnyama Limba NEW
Tony V PerinArgentinaOnyama Limba NEGOTIATION
Smith W CaldareraIndiaOnyama Limba RENEWAL
Nicolas M AlbaresSpainBernardo Dominic NEW
Smith V CaudyItalyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci S CaldareraJapan2026-07-09Truhlar And Truhlar Attys PROPOSAL52Ivan Magalhaes
1001James K SchemmerGermany2026-07-01Feltz Printing Service RENEWAL9Stephen Shaw
1002Morrow W GlickArgentina2026-06-20Printing Dimensions UNQUALIFIED98Elwin Sharvill
1003David B ShinkoIndia2026-06-15Feiner Bros UNQUALIFIED88Stephen Shaw
1004Misaki P GlickFrance2026-06-30King, Christopher A Esq NEGOTIATION51Onyama Limba
1005Nicolas Z SergiCanada2026-06-23Printing Dimensions RENEWAL68Amy Elsner
1006Kadeem N BologniaRussia2026-06-29Commercial Press QUALIFIED53Elwin Sharvill
1007Julie O StensethIndia2026-06-28Buckley Miller Wright RENEWAL55Onyama Limba
1008Jennifer P SlusarskiJapan2026-06-13Printing Dimensions NEW54Anna Fali
1009Mayumi T StockhamItaly2026-06-18Buckley Miller Wright UNQUALIFIED60Elwin Sharvill
1010Jefferson K StensethRussia2026-06-18Commercial Press QUALIFIED33Onyama Limba
1011Silvio R MarrierGermany2026-06-21Chapman, Ross E Esq RENEWAL58Xuxue Feng
1012James L PaprockiAustralia2026-06-11Printing Dimensions NEW29Stephen Shaw
1013Darci F SlusarskiBrazil2026-07-08Feltz Printing Service NEGOTIATION73Asiya Javayant
1014Juan Q OstroskyIndia2026-06-28Commercial Press PROPOSAL0Elwin Sharvill
1015Misaki C SaylorsAustralia2026-06-13Rangoni Of Florence QUALIFIED72Asiya Javayant
1016Salvatore Z StensethUnited Kingdom2026-07-05Truhlar And Truhlar Attys RENEWAL9Bernardo Dominic
1017Juan V GillianBrazil2026-07-05Chemel, James L Cpa QUALIFIED9Stephen Shaw
1018Cody H MacleadCanada2026-06-11Chemel, James L Cpa QUALIFIED31Xuxue Feng
1019Mujtaba O SaylorsSpain2026-06-21Buckley Miller Wright RENEWAL0Asiya Javayant
1020Francesco A WieserCanada2026-07-08Morlong Associates NEGOTIATION93Ioni Bowcher
1021Aruna Z SaylorsSpain2026-06-17Dorl, James J Esq UNQUALIFIED16Asiya Javayant
1022Izzy W VenereRussia2026-07-08Feltz Printing Service NEW35Ioni Bowcher
1023Johnson H MaletBrazil2026-06-27Rangoni Of Florence RENEWAL16Onyama Limba
1024Julie V BologniaIndia2026-07-04Dorl, James J Esq QUALIFIED91Bernardo Dominic
1025Smith P StockhamJapan2026-06-17Rangoni Of Florence NEW15Anna Fali
1026Morrow F FlosiGermany2026-06-14Morlong Associates UNQUALIFIED69Amy Elsner
1027Silvio G WaycottUnited Kingdom2026-06-24Commercial Press UNQUALIFIED69Onyama Limba
1028Aditya E ShinkoGermany2026-06-18Truhlar And Truhlar Attys UNQUALIFIED55Xuxue Feng
1029Cody J NickaBrazil2026-06-16Dorl, James J Esq RENEWAL78Asiya Javayant
1030Faith N BowleyBrazil2026-07-01Truhlar And Truhlar Attys QUALIFIED69Xuxue Feng
1031Chavez Q AlbaresIndia2026-07-01King, Christopher A Esq PROPOSAL42Bernardo Dominic
1032Octavia O MaletGermany2026-06-22Feltz Printing Service NEGOTIATION58Bernardo Dominic
1033Tony Q NickaIndia2026-07-08Commercial Press NEGOTIATION56Stephen Shaw
1034Silvio T AlbaresSpain2026-06-29Chapman, Ross E Esq NEGOTIATION69Stephen Shaw
1035Stacey Z CaldareraGermany2026-06-27King, Christopher A Esq QUALIFIED28Amy Elsner
1036Wickens I FollerItaly2026-06-11Dorl, James J Esq NEGOTIATION16Amy Elsner
1037Leja E FerenczArgentina2026-06-24Commercial Press UNQUALIFIED64Xuxue Feng
1038Morrow B SaylorsAustralia2026-06-27Benton, John B Jr NEGOTIATION52Xuxue Feng
1039Ivar S FigeroaUnited Kingdom2026-06-12Benton, John B Jr RENEWAL33Asiya Javayant
1040Mujtaba G BowleyItaly2026-06-17Rangoni Of Florence NEGOTIATION55Amy Elsner
1041Greenwood L TollnerAustralia2026-07-08Truhlar And Truhlar Attys PROPOSAL73Stephen Shaw
1042Jefferson O MorascaArgentina2026-06-22Dorl, James J Esq NEW45Elwin Sharvill
1043Rodrigues U MarrierUnited Kingdom2026-06-15Morlong Associates NEW4Onyama Limba
1044Faith K WhobreyArgentina2026-07-04Rousseaux, Michael Esq UNQUALIFIED29Stephen Shaw
1045David N WieserJapan2026-06-11King, Christopher A Esq RENEWAL86Onyama Limba
1046Aruna Q FerenczAustralia2026-06-14Chapman, Ross E Esq UNQUALIFIED57Anna Fali
1047Costa L RutaAustralia2026-06-23King, Christopher A Esq PROPOSAL35Stephen Shaw
1048Julie Y DarakjyArgentina2026-06-13Truhlar And Truhlar Attys RENEWAL9Xuxue Feng
1049Ivar Q ButtJapan2026-06-22Rousseaux, Michael Esq QUALIFIED15Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody Q KolmetzJapanIvan Magalhaes UNQUALIFIED
Munro B FerenczAustraliaIvan Magalhaes NEGOTIATION
Leon B GauchoJapanAnna Fali NEW
Kaitlin F RutaAustraliaStephen Shaw UNQUALIFIED
Johnson R PerinFranceAmy Elsner QUALIFIED
Nicolas P ShinkoJapanOnyama Limba NEGOTIATION
James E ChuiItalyIoni Bowcher PROPOSAL
Misaki C OstroskyFranceElwin Sharvill UNQUALIFIED
Deepesh B RutaBrazilElwin Sharvill PROPOSAL
Arvin J CaudyIndiaOnyama Limba RENEWAL
Sinclair Q SergiFranceElwin Sharvill NEW
Misaki B OstroskyRussiaXuxue Feng UNQUALIFIED
James T WieserItalyAnna Fali RENEWAL
Nicolas F NickaSpainAmy Elsner RENEWAL
Kaitlin B VocelkaUnited KingdomXuxue Feng NEW
Jones Z AlbaresRussiaXuxue Feng QUALIFIED
David G PaprockiRussiaIvan Magalhaes UNQUALIFIED
Jefferson V MacleadArgentinaBernardo Dominic QUALIFIED
Clifford D NickaFranceAsiya Javayant UNQUALIFIED
Kaitlin O SergiIndiaAnna Fali NEGOTIATION
Darci F MacleadIndiaIvan Magalhaes PROPOSAL
Chavez B BowleyArgentinaElwin Sharvill NEGOTIATION
Aruna X RoysterBrazilAsiya Javayant NEW
Smith T MaletArgentinaOnyama Limba PROPOSAL
Mayumi P InouyeJapanAnna Fali NEW
Morrow C IturbideAustraliaElwin Sharvill PROPOSAL
Octavia A MaletGermanyAnna Fali RENEWAL
Rodrigues Q WaycottArgentinaAmy Elsner NEW
Darci J CampainBrazilAmy Elsner UNQUALIFIED
Chavez X VenereRussiaXuxue Feng NEW
Jefferson X ButtArgentinaXuxue Feng PROPOSAL
James F StensethUnited KingdomOnyama Limba NEGOTIATION
Rodrigues I KuskoBrazilAmy Elsner PROPOSAL
Leja G IturbideFranceStephen Shaw QUALIFIED
Octavia O BowleyBrazilBernardo Dominic UNQUALIFIED
Emily P ButtBrazilIoni Bowcher NEW
Leon E PaprockiIndiaIoni Bowcher QUALIFIED
Salvatore X CampainArgentinaOnyama Limba UNQUALIFIED
Ricardo J RulapaughRussiaElwin Sharvill NEW
Octavia R StockhamBrazilIvan Magalhaes RENEWAL
Silvio G MorascaRussiaAsiya Javayant RENEWAL
Kaitlin N SlusarskiIndiaAmy Elsner RENEWAL
Jennifer B VenereUnited KingdomXuxue Feng PROPOSAL
Darci M MacleadCanadaElwin Sharvill NEGOTIATION
Chavez E DilliardIndiaAmy Elsner PROPOSAL
Tony N MorascaJapanElwin Sharvill UNQUALIFIED
Jennifer V WaycottItalyAnna Fali QUALIFIED
Leon X SlusarskiCanadaIoni Bowcher RENEWAL
Murillo V SchemmerBrazilElwin Sharvill UNQUALIFIED
Faith H KolmetzBrazilStephen Shaw UNQUALIFIED
Frozen Columns
Name
Juan J Paprocki
David P Darakjy
Leja P Doe
Emily O Nicka
Nicolas X Caudy
David P Figeroa
Kaitlin V Campain
Clifford W Sergi
Cody Q Darakjy
Antonio Z Amigon
Isabel N Ruta
Kadeem A Ruta
Julie E Tollner
Stacey O Bolognia
Murillo R Doe
Jeanfrancois K Sergi
Julie K Caldarera
Jefferson B Kusko
Nicolas O Shinko
Sinclair T Bowley
David R Saylors
Tony V Amigon
Adams H Figeroa
Kadeem K Saylors
Aika L Vocelka
James K Shinko
Deepesh A Inouye
Johnson O Venere
Octavia N Caudy
Ricardo I Ruta
Maisha H Caldarera
Francesco C Wieser
Arvin R Schemmer
Adams A Tollner
Greenwood N Schemmer
Jennifer A Tollner
Jeanfrancois Q Gaucho
Kaitlin E Malet
Nicolas L Royster
Claire H Foller
Maisha O Ruta
Sinclair M Saylors
Juan V Gaucho
Ivar M Wieser
Faith T Tollner
Murillo L Venere
Morrow U Caudy
Jones K Saylors
Adams T Stockham
Salvatore P Nicka
IdCountryDate
1000Australia2026-06-15
1001Australia2026-07-06
1002Australia2026-06-28
1003Spain2026-06-12
1004Japan2026-07-07
1005India2026-07-06
1006Argentina2026-06-20
1007Canada2026-06-13
1008Spain2026-06-29
1009France2026-06-14
1010Russia2026-07-06
1011Argentina2026-06-18
1012Italy2026-07-03
1013United Kingdom2026-06-28
1014Canada2026-07-10
1015France2026-07-02
1016Spain2026-06-16
1017Germany2026-07-08
1018Germany2026-07-08
1019Australia2026-06-24
1020Argentina2026-06-12
1021France2026-07-01
1022India2026-06-12
1023Brazil2026-06-28
1024India2026-06-17
1025India2026-06-22
1026United Kingdom2026-06-14
1027Australia2026-07-10
1028Spain2026-06-29
1029Russia2026-07-10
1030Spain2026-06-25
1031Spain2026-06-26
1032Canada2026-07-08
1033Spain2026-07-02
1034Italy2026-06-24
1035Italy2026-06-26
1036Canada2026-07-04
1037Russia2026-06-23
1038Spain2026-06-12
1039Spain2026-07-05
1040Japan2026-06-30
1041Australia2026-06-29
1042Germany2026-07-08
1043India2026-07-10
1044Japan2026-06-22
1045Brazil2026-06-15
1046Germany2026-06-27
1047Russia2026-06-30
1048Spain2026-06-13
1049United Kingdom2026-06-25

On-Demand Data

NameIdCountryDate
Jeanfrancois F Kusko1000Brazil2026-07-01
Sinclair B Vocelka1001Argentina2026-07-04
Silvio P Venere1002India2026-06-26
Jones G Gillian1003Japan2026-06-12
Maisha X Perin1004Spain2026-06-22
Faith J Figeroa1005Germany2026-06-17
Aruna R Dilliard1006Italy2026-06-21
Aruna O Stockham1007Japan2026-07-08
Julie M Stenseth1008Germany2026-06-19
James F Paprocki1009Brazil2026-06-26
Wickens G Tollner1010Russia2026-07-08
Jones G Figeroa1011Germany2026-06-21
Arvin E Caudy1012India2026-07-09
Maisha D Vocelka1013United Kingdom2026-06-24
Alejandro B Bowley1014Australia2026-06-19
Julie B Iturbide1015Japan2026-06-21
Claire P Tollner1016Germany2026-07-06
Arvin L Bolognia1017Canada2026-07-08
Julie R Garufi1018United Kingdom2026-06-24
Jeanfrancois T Caldarera1019Australia2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio X DilliardUnited KingdomOnyama Limba NEW
Adams N RulapaughFranceAmy Elsner NEW
Wickens P DoeArgentinaElwin Sharvill NEGOTIATION
Aika L AlbaresIndiaIvan Magalhaes PROPOSAL
Murillo C ChuiRussiaIvan Magalhaes PROPOSAL
Morrow H FigeroaAustraliaOnyama Limba QUALIFIED
Juan K ButtAustraliaAsiya Javayant PROPOSAL
Alejandro K WieserIndiaIvan Magalhaes NEGOTIATION
Darci N SergiRussiaXuxue Feng NEGOTIATION
Emily P SaylorsGermanyOnyama Limba QUALIFIED
Tony X MarrierJapanAmy Elsner NEGOTIATION
Greenwood H IturbideSpainAnna Fali NEW
Smith J DoeGermanyStephen Shaw UNQUALIFIED
Sinclair K VenereArgentinaAnna Fali UNQUALIFIED
Aditya T RoysterIndiaElwin Sharvill PROPOSAL
Alejandro S BriddickBrazilOnyama Limba UNQUALIFIED
Morrow X KuskoGermanyAsiya Javayant UNQUALIFIED
Darci L PaprockiItalyElwin Sharvill PROPOSAL
Costa L ButtFranceStephen Shaw UNQUALIFIED
Darci X KolmetzItalyAsiya Javayant PROPOSAL
Juan C BologniaCanadaElwin Sharvill RENEWAL
Deepesh U WieserCanadaElwin Sharvill RENEWAL
Aruna L MaletGermanyElwin Sharvill UNQUALIFIED
Faith T WhobreyAustraliaElwin Sharvill NEW
Jeanfrancois G PaprockiCanadaAmy Elsner PROPOSAL
Silvio H StockhamArgentinaOnyama Limba RENEWAL
Leja A DarakjyCanadaStephen Shaw PROPOSAL
Ivar R AlbaresRussiaBernardo Dominic NEW
Octavia I ChuiFranceIoni Bowcher UNQUALIFIED
Cody V KolmetzFranceElwin Sharvill PROPOSAL
Leon C GauchoFranceAnna Fali RENEWAL
Octavia K IturbideJapanIoni Bowcher QUALIFIED
Juan A VenereItalyIoni Bowcher QUALIFIED
Ivar N NestleItalyElwin Sharvill RENEWAL
Adams G GlickBrazilElwin Sharvill NEW
Cody Z PerinIndiaIvan Magalhaes QUALIFIED
Clifford Z DoeAustraliaElwin Sharvill NEW
Jennifer J GlickSpainXuxue Feng UNQUALIFIED
Jones U ChuiFranceIvan Magalhaes UNQUALIFIED
Faith U WhobreyJapanBernardo Dominic 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>