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
Morrow Z BowleyRussiaIoni Bowcher NEGOTIATION
David L GauchoCanadaStephen Shaw NEW
Tony U IturbideRussiaXuxue Feng NEGOTIATION
Murillo U StensethSpainXuxue Feng UNQUALIFIED
Mujtaba Z BriddickRussiaBernardo Dominic NEGOTIATION
Alejandro B BriddickSpainIoni Bowcher NEW
Aditya Q PoquetteFranceAmy Elsner NEW
Alejandro M MaletArgentinaIoni Bowcher QUALIFIED
Mujtaba J CaudySpainBernardo Dominic UNQUALIFIED
Stacey J MarrierRussiaAnna Fali NEGOTIATION
Julie T OldroydSpainBernardo Dominic UNQUALIFIED
Aditya H VocelkaJapanBernardo Dominic UNQUALIFIED
Mayumi E StockhamAustraliaAsiya Javayant PROPOSAL
Mujtaba N RoysterJapanBernardo Dominic UNQUALIFIED
Wickens F NickaItalyStephen Shaw UNQUALIFIED
Octavia K GauchoArgentinaXuxue Feng RENEWAL
Antonio X CaudySpainAmy Elsner QUALIFIED
Izzy A GlickSpainAmy Elsner PROPOSAL
Smith N WaycottBrazilBernardo Dominic PROPOSAL
Greenwood K PoquetteBrazilStephen Shaw NEGOTIATION
Arvin W MaletGermanyStephen Shaw RENEWAL
Alejandro G InouyeIndiaBernardo Dominic UNQUALIFIED
Adams T GillianJapanOnyama Limba PROPOSAL
Silvio D WaycottCanadaAsiya Javayant PROPOSAL
Maisha T ShinkoArgentinaStephen Shaw UNQUALIFIED
Aruna Q RulapaughAustraliaAmy Elsner QUALIFIED
Munro R ButtArgentinaIvan Magalhaes UNQUALIFIED
Cody S InouyeRussiaAnna Fali NEW
Nicolas I VenereFranceIvan Magalhaes QUALIFIED
Sinclair V GlickSpainIoni Bowcher NEGOTIATION
Ivar F OldroydArgentinaXuxue Feng NEGOTIATION
Mujtaba O ShinkoBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois R BologniaJapanIvan Magalhaes QUALIFIED
Aditya K BriddickItalyAnna Fali NEGOTIATION
Salvatore D NestleCanadaXuxue Feng UNQUALIFIED
Leja Y AlbaresSpainBernardo Dominic NEW
Izzy V MaletCanadaIoni Bowcher QUALIFIED
Costa D FerenczCanadaIvan Magalhaes RENEWAL
Octavia M SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Chavez J RutaItalyStephen Shaw NEW
Jones I ChuiIndiaAnna Fali UNQUALIFIED
Silvio D RulapaughAustraliaElwin Sharvill RENEWAL
Isabel T SaylorsCanadaOnyama Limba RENEWAL
Julie F KolmetzIndiaIvan Magalhaes NEGOTIATION
Juan O GauchoIndiaAnna Fali RENEWAL
Smith N PaprockiBrazilXuxue Feng RENEWAL
Ashley L PoquetteSpainElwin Sharvill QUALIFIED
Emily S MaletSpainIoni Bowcher NEW
Claire H CaudyBrazilStephen Shaw QUALIFIED
Faith Q MorascaJapanBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair V GillianCanadaIvan Magalhaes PROPOSAL
Nicolas Z DoeGermanyXuxue Feng QUALIFIED
Antonio X GlickCanadaElwin Sharvill PROPOSAL
Clifford U DilliardJapanAnna Fali QUALIFIED
Greenwood H ButtArgentinaIvan Magalhaes UNQUALIFIED
Isabel V FerenczGermanyAmy Elsner QUALIFIED
James Z StensethUnited KingdomStephen Shaw NEW
Emily O BowleyRussiaAmy Elsner RENEWAL
Arvin M WaycottRussiaBernardo Dominic QUALIFIED
Octavia M OstroskyGermanyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo B StockhamGermany2026-06-17King, Christopher A Esq PROPOSAL96Elwin Sharvill
1001Misaki T TollnerItaly2026-06-22Printing Dimensions NEW71Ivan Magalhaes
1002Antonio G GarufiGermany2026-06-26Printing Dimensions RENEWAL89Ivan Magalhaes
1003Aruna W DoeFrance2026-06-06Feiner Bros QUALIFIED84Onyama Limba
1004Arvin W CampainArgentina2026-06-15Commercial Press NEGOTIATION5Asiya Javayant
1005Antonio P ShinkoFrance2026-06-07Chemel, James L Cpa UNQUALIFIED18Asiya Javayant
1006Smith C KuskoIndia2026-06-18Feltz Printing Service QUALIFIED37Ioni Bowcher
1007Stacey P ButtBrazil2026-06-13Feiner Bros NEGOTIATION30Stephen Shaw
1008Chavez G IturbideRussia2026-06-06King, Christopher A Esq NEGOTIATION84Bernardo Dominic
1009Greenwood A VocelkaAustralia2026-06-12Chanay, Jeffrey A Esq NEW42Stephen Shaw
1010Costa U WhobreyIndia2026-06-13Chapman, Ross E Esq NEW55Xuxue Feng
1011Julie T GarufiAustralia2026-06-15Chanay, Jeffrey A Esq RENEWAL54Ioni Bowcher
1012Ricardo A OldroydRussia2026-06-06King, Christopher A Esq RENEWAL97Amy Elsner
1013James S NickaUnited Kingdom2026-06-25King, Christopher A Esq NEGOTIATION87Anna Fali
1014Ricardo A SlusarskiFrance2026-06-09Feiner Bros NEGOTIATION57Xuxue Feng
1015Kadeem I RoysterJapan2026-06-12Chanay, Jeffrey A Esq PROPOSAL2Amy Elsner
1016Nicolas J DarakjyCanada2026-06-12Truhlar And Truhlar Attys NEW44Asiya Javayant
1017Ashley L CaldareraRussia2026-06-09Chemel, James L Cpa RENEWAL89Anna Fali
1018Silvio E StockhamItaly2026-06-19Chapman, Ross E Esq PROPOSAL76Ivan Magalhaes
1019Arvin T GillianAustralia2026-06-10Chapman, Ross E Esq PROPOSAL72Amy Elsner
1020Maisha M TollnerItaly2026-06-10Chemel, James L Cpa NEW97Bernardo Dominic
1021Aruna I SaylorsAustralia2026-06-12Feltz Printing Service QUALIFIED1Ioni Bowcher
1022Alejandro V OstroskyCanada2026-06-26Feiner Bros NEW65Onyama Limba
1023Murillo E VenereItaly2026-06-14Morlong Associates PROPOSAL49Asiya Javayant
1024Alejandro U PaprockiCanada2026-06-07Feltz Printing Service QUALIFIED29Onyama Limba
1025Maisha F CampainFrance2026-06-07Morlong Associates NEW54Xuxue Feng
1026Stacey T PerinItaly2026-06-19King, Christopher A Esq UNQUALIFIED6Asiya Javayant
1027Jefferson D SergiCanada2026-06-18Dorl, James J Esq NEW99Bernardo Dominic
1028Costa M RutaArgentina2026-06-13Commercial Press NEW20Anna Fali
1029Alejandro S MarrierFrance2026-06-25Dorl, James J Esq NEGOTIATION25Ioni Bowcher
1030Darci U ShinkoUnited Kingdom2026-06-12Dorl, James J Esq QUALIFIED75Elwin Sharvill
1031Rodrigues O SergiIndia2026-06-03Buckley Miller Wright RENEWAL92Ivan Magalhaes
1032David C DilliardSpain2026-06-14Commercial Press RENEWAL42Ioni Bowcher
1033Murillo N MaletFrance2026-06-21Chapman, Ross E Esq QUALIFIED83Anna Fali
1034Aruna P TollnerJapan2026-06-28Morlong Associates UNQUALIFIED38Amy Elsner
1035Clifford S GauchoGermany2026-06-30Feltz Printing Service NEW93Amy Elsner
1036Emily W DilliardBrazil2026-06-25Rousseaux, Michael Esq RENEWAL18Asiya Javayant
1037Mujtaba X MaletCanada2026-06-06Feiner Bros NEW88Ioni Bowcher
1038Maisha Z VenereGermany2026-06-07Dorl, James J Esq NEW46Anna Fali
1039Ashley O CaudyFrance2026-06-01Feiner Bros NEW58Ivan Magalhaes
1040Johnson K RimBrazil2026-06-20Feltz Printing Service NEW67Xuxue Feng
1041Morrow Z VocelkaItaly2026-06-07Feiner Bros NEGOTIATION86Asiya Javayant
1042Leja Q FlosiCanada2026-06-14Feiner Bros RENEWAL98Ioni Bowcher
1043Leja M BriddickArgentina2026-06-05Feiner Bros QUALIFIED10Xuxue Feng
1044Alejandro N NestleFrance2026-06-02Commercial Press NEW26Asiya Javayant
1045Sinclair H FigeroaCanada2026-06-05Printing Dimensions NEW20Amy Elsner
1046Jennifer L StockhamSpain2026-06-22Feiner Bros NEGOTIATION70Asiya Javayant
1047Jeanfrancois R WaycottRussia2026-06-25Chapman, Ross E Esq RENEWAL26Anna Fali
1048Mujtaba G WaycottRussia2026-06-16Dorl, James J Esq PROPOSAL37Bernardo Dominic
1049Aditya R FerenczGermany2026-06-27Morlong Associates PROPOSAL8Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Costa Y MaletCanadaOnyama Limba NEW
Leon G OstroskyCanadaIvan Magalhaes PROPOSAL
Antonio H RimCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois I KolmetzIndiaOnyama Limba RENEWAL
Munro F VenereArgentinaXuxue Feng PROPOSAL
Maisha A GlickBrazilStephen Shaw PROPOSAL
Stacey R FigeroaCanadaIoni Bowcher PROPOSAL
Izzy N VenereItalyIoni Bowcher RENEWAL
Leja Y MorascaItalyOnyama Limba NEGOTIATION
Salvatore W SlusarskiGermanyAmy Elsner PROPOSAL
Salvatore G DilliardRussiaElwin Sharvill NEGOTIATION
Clifford F RutaItalyAsiya Javayant PROPOSAL
Morrow A VenereUnited KingdomXuxue Feng RENEWAL
Smith Q VocelkaAustraliaAmy Elsner NEGOTIATION
Morrow Q CampainIndiaElwin Sharvill UNQUALIFIED
Izzy L KuskoRussiaElwin Sharvill UNQUALIFIED
Jones R GarufiJapanAsiya Javayant QUALIFIED
Ivar K CaudyCanadaOnyama Limba RENEWAL
Tony O SlusarskiIndiaAnna Fali NEGOTIATION
Jennifer I MaletUnited KingdomAnna Fali UNQUALIFIED
Ricardo N GillianBrazilAmy Elsner PROPOSAL
Mayumi F KolmetzUnited KingdomXuxue Feng QUALIFIED
Misaki T RulapaughSpainAsiya Javayant PROPOSAL
Munro F BologniaItalyXuxue Feng NEW
Alejandro L TollnerRussiaXuxue Feng UNQUALIFIED
Mujtaba B IturbideFranceOnyama Limba UNQUALIFIED
Misaki U FerenczAustraliaOnyama Limba PROPOSAL
Kadeem K PaprockiGermanyBernardo Dominic NEGOTIATION
Adams E GillianAustraliaIoni Bowcher QUALIFIED
Sinclair F ButtRussiaAnna Fali RENEWAL
Johnson E VenereJapanIoni Bowcher UNQUALIFIED
Claire L MacleadBrazilBernardo Dominic PROPOSAL
Maisha Y DarakjyBrazilAmy Elsner UNQUALIFIED
Aika K RutaSpainIvan Magalhaes PROPOSAL
Costa D AmigonIndiaAmy Elsner PROPOSAL
Misaki O TollnerJapanAmy Elsner PROPOSAL
Adams W StockhamRussiaIvan Magalhaes NEGOTIATION
Cody F MarrierRussiaBernardo Dominic QUALIFIED
Claire G StockhamCanadaAnna Fali NEGOTIATION
Juan H SlusarskiArgentinaElwin Sharvill NEW
Leon C MarrierIndiaAmy Elsner QUALIFIED
Jefferson A SaylorsAustraliaIvan Magalhaes QUALIFIED
Aruna K FigeroaIndiaStephen Shaw PROPOSAL
Nicolas P WieserCanadaElwin Sharvill NEW
Wickens A ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Isabel G VocelkaRussiaAsiya Javayant RENEWAL
Emily Z GauchoUnited KingdomBernardo Dominic NEGOTIATION
Cody O MorascaRussiaStephen Shaw UNQUALIFIED
Julie D WieserSpainXuxue Feng QUALIFIED
Silvio E WieserGermanyAmy Elsner RENEWAL
Frozen Columns
Name
Leja V Maclead
Clifford C Rulapaugh
Munro T Figeroa
James O Rim
Wickens R Venere
Clifford F Sergi
Mayumi V Gaucho
Deepesh E Ostrosky
Kaitlin N Venere
Izzy T Waycott
Claire A Bolognia
James N Ruta
Morrow B Caldarera
Arvin B Campain
Chavez H Garufi
Clifford K Paprocki
Maria U Darakjy
Mujtaba S Malet
Morrow X Slusarski
Ashley N Butt
Julie C Schemmer
Kaitlin K Nicka
Misaki V Malet
Ivar H Garufi
Ashley X Garufi
Morrow T Vocelka
Maisha S Stockham
Francesco R Malet
Costa M Ferencz
Mayumi A Perin
Jeanfrancois H Butt
Ivar G Maclead
Isabel Y Inouye
Maisha T Schemmer
Misaki V Darakjy
Mujtaba D Dilliard
Salvatore H Dilliard
Julie Y Whobrey
Kadeem X Garufi
Jennifer R Maclead
Costa Z Oldroyd
Kaitlin I Nicka
David W Amigon
Alejandro K Slusarski
Faith B Caldarera
Antonio V Chui
Murillo J Sergi
Sinclair I Nestle
Murillo T Flosi
Arvin M Paprocki
IdCountryDate
1000Australia2026-06-29
1001India2026-06-18
1002Australia2026-06-16
1003Australia2026-06-21
1004France2026-06-10
1005Germany2026-06-24
1006Russia2026-06-11
1007Spain2026-06-10
1008France2026-06-13
1009Japan2026-06-05
1010France2026-06-08
1011United Kingdom2026-06-25
1012Argentina2026-06-26
1013France2026-06-15
1014India2026-06-09
1015France2026-06-23
1016France2026-06-28
1017Brazil2026-06-11
1018France2026-06-19
1019Russia2026-06-28
1020Canada2026-06-02
1021Canada2026-06-16
1022United Kingdom2026-06-24
1023Spain2026-06-30
1024Italy2026-06-18
1025Japan2026-06-23
1026Australia2026-06-29
1027Japan2026-06-29
1028Canada2026-06-15
1029Germany2026-06-03
1030India2026-06-30
1031Brazil2026-06-12
1032United Kingdom2026-06-14
1033Japan2026-06-20
1034Russia2026-06-28
1035Spain2026-06-14
1036Japan2026-06-01
1037Italy2026-06-19
1038France2026-06-22
1039India2026-06-29
1040Japan2026-06-07
1041Russia2026-06-07
1042Argentina2026-06-03
1043Italy2026-06-19
1044India2026-06-28
1045Spain2026-06-29
1046Russia2026-06-19
1047Australia2026-06-03
1048France2026-06-28
1049France2026-06-24

On-Demand Data

NameIdCountryDate
Sinclair O Ostrosky1000Argentina2026-06-29
Antonio C Darakjy1001Russia2026-06-05
Jennifer P Kolmetz1002Spain2026-06-07
Leon H Royster1003Germany2026-06-23
Smith Y Kolmetz1004Canada2026-06-14
Kaitlin D Rulapaugh1005Japan2026-06-17
Chavez I Nestle1006India2026-06-15
Ricardo Y Royster1007Canada2026-06-08
Izzy G Paprocki1008Brazil2026-06-27
Emily Y Gillian1009Australia2026-06-07
Ashley S Rulapaugh1010Japan2026-06-01
Greenwood E Gillian1011Germany2026-06-04
Maria H Darakjy1012France2026-06-15
Jennifer P Iturbide1013India2026-06-05
Misaki R Garufi1014Canada2026-06-02
Misaki I Doe1015Germany2026-06-22
Jones R Stenseth1016Italy2026-06-13
Johnson C Iturbide1017France2026-06-01
Chavez F Sergi1018United Kingdom2026-06-08
Aika E Gaucho1019Russia2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey W ChuiUnited KingdomStephen Shaw NEW
Ivar T FollerItalyElwin Sharvill NEW
Chavez X BologniaSpainAsiya Javayant QUALIFIED
Ivar A WieserBrazilElwin Sharvill NEGOTIATION
Maria X RutaBrazilAsiya Javayant QUALIFIED
Greenwood Z TollnerIndiaAsiya Javayant NEGOTIATION
Munro F RulapaughJapanStephen Shaw NEW
Julie S VocelkaItalyAnna Fali QUALIFIED
James P FigeroaGermanyAsiya Javayant PROPOSAL
Jennifer X BowleyRussiaIvan Magalhaes NEGOTIATION
Chavez Y FerenczBrazilStephen Shaw RENEWAL
Cody L WaycottFranceAmy Elsner QUALIFIED
Kadeem O IturbideBrazilAsiya Javayant NEW
Julie Z KolmetzIndiaIvan Magalhaes PROPOSAL
Greenwood M WieserRussiaIoni Bowcher NEGOTIATION
Antonio I RimGermanyStephen Shaw NEGOTIATION
Morrow P ButtBrazilElwin Sharvill RENEWAL
Smith H MarrierUnited KingdomIoni Bowcher QUALIFIED
David S AmigonCanadaAnna Fali UNQUALIFIED
Adams L KolmetzBrazilAsiya Javayant QUALIFIED
Kadeem U SchemmerSpainStephen Shaw QUALIFIED
Smith E PaprockiUnited KingdomIvan Magalhaes RENEWAL
Leon T GauchoGermanyAnna Fali PROPOSAL
Mujtaba V VenereAustraliaStephen Shaw RENEWAL
Ashley W ButtIndiaAmy Elsner QUALIFIED
Octavia P DilliardItalyStephen Shaw UNQUALIFIED
Jennifer X InouyeSpainAsiya Javayant NEGOTIATION
Antonio W SergiItalyAmy Elsner PROPOSAL
Mujtaba U VenereGermanyStephen Shaw PROPOSAL
Darci A RulapaughAustraliaBernardo Dominic PROPOSAL
Arvin E BologniaBrazilAmy Elsner UNQUALIFIED
Murillo W PaprockiUnited KingdomIvan Magalhaes RENEWAL
Salvatore T FlosiJapanAnna Fali RENEWAL
Munro F TollnerGermanyOnyama Limba RENEWAL
Murillo C GillianJapanStephen Shaw QUALIFIED
Misaki Q BowleyGermanyIoni Bowcher UNQUALIFIED
Ivar G SergiFranceBernardo Dominic NEGOTIATION
Silvio D RimIndiaAsiya Javayant QUALIFIED
Francesco I WhobreyIndiaStephen Shaw PROPOSAL
Morrow K RulapaughBrazilAnna Fali 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>