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
Emily M RutaUnited KingdomIoni Bowcher UNQUALIFIED
Aditya K ChuiIndiaIoni Bowcher UNQUALIFIED
Clifford P MarrierCanadaXuxue Feng RENEWAL
Aika C WieserSpainXuxue Feng NEW
James K MaletAustraliaBernardo Dominic PROPOSAL
Juan U PerinUnited KingdomStephen Shaw PROPOSAL
Arvin W DilliardAustraliaOnyama Limba NEW
Tony Y MaletJapanOnyama Limba PROPOSAL
Clifford E RutaItalyAmy Elsner QUALIFIED
Silvio V RoysterRussiaIoni Bowcher UNQUALIFIED
Arvin Y StensethCanadaIvan Magalhaes UNQUALIFIED
Faith F VocelkaAustraliaAsiya Javayant RENEWAL
Ashley F DilliardFranceIvan Magalhaes UNQUALIFIED
Sinclair U FerenczFranceIoni Bowcher RENEWAL
Chavez I WhobreySpainOnyama Limba NEW
Mujtaba E CampainRussiaAnna Fali NEGOTIATION
Kaitlin Z KolmetzItalyAsiya Javayant PROPOSAL
Nicolas G SchemmerRussiaAmy Elsner QUALIFIED
Munro V WaycottSpainIoni Bowcher UNQUALIFIED
Cody S GlickItalyIoni Bowcher QUALIFIED
Jeanfrancois Y SergiBrazilAsiya Javayant PROPOSAL
Maisha F WieserAustraliaXuxue Feng NEGOTIATION
Munro R StensethRussiaIoni Bowcher NEGOTIATION
Adams B RoysterBrazilIvan Magalhaes RENEWAL
Sinclair G KolmetzArgentinaXuxue Feng RENEWAL
Wickens J MorascaRussiaAmy Elsner PROPOSAL
Greenwood P SergiSpainAsiya Javayant NEW
Jones R IturbideAustraliaElwin Sharvill UNQUALIFIED
Arvin V ChuiRussiaElwin Sharvill NEGOTIATION
Ashley V PaprockiItalyAmy Elsner NEGOTIATION
Nicolas M SaylorsRussiaAnna Fali NEW
Nicolas L FollerIndiaAnna Fali QUALIFIED
Darci V InouyeArgentinaIvan Magalhaes UNQUALIFIED
Salvatore K MorascaArgentinaAmy Elsner NEW
Ashley A VenereAustraliaAsiya Javayant PROPOSAL
Johnson Z KolmetzIndiaAnna Fali UNQUALIFIED
Clifford X WieserCanadaElwin Sharvill UNQUALIFIED
James Q RulapaughAustraliaElwin Sharvill NEGOTIATION
Faith W FigeroaUnited KingdomXuxue Feng NEW
Salvatore H RimBrazilAmy Elsner NEW
Morrow M ShinkoFranceIoni Bowcher QUALIFIED
Leon F RutaBrazilAmy Elsner RENEWAL
Deepesh A GillianGermanyAnna Fali NEW
Juan Y WaycottBrazilAsiya Javayant RENEWAL
Isabel R DarakjyFranceElwin Sharvill QUALIFIED
Aika Z ButtFranceStephen Shaw NEW
Mujtaba S KolmetzAustraliaAmy Elsner RENEWAL
Jones B SaylorsFranceIoni Bowcher RENEWAL
Tony U FollerBrazilStephen Shaw PROPOSAL
Kadeem I PerinCanadaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams Z RoysterRussiaAmy Elsner PROPOSAL
Kaitlin C MaletFranceBernardo Dominic UNQUALIFIED
Smith U GlickAustraliaIvan Magalhaes NEGOTIATION
Mujtaba F PaprockiJapanStephen Shaw NEGOTIATION
Mayumi O SchemmerJapanOnyama Limba NEGOTIATION
Greenwood A OstroskyRussiaStephen Shaw NEW
Greenwood F PaprockiFranceAsiya Javayant QUALIFIED
Aika L OstroskyItalyStephen Shaw PROPOSAL
Munro W RimIndiaElwin Sharvill QUALIFIED
Murillo F WhobreyCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Y DoeFrance2026-06-10Buckley Miller Wright RENEWAL43Bernardo Dominic
1001Leon P FollerAustralia2026-06-10Feltz Printing Service UNQUALIFIED93Xuxue Feng
1002Murillo T PaprockiIndia2026-07-02Feltz Printing Service UNQUALIFIED44Ivan Magalhaes
1003Faith J BriddickAustralia2026-06-09Commercial Press PROPOSAL81Xuxue Feng
1004Claire I WieserRussia2026-06-19Feiner Bros PROPOSAL97Ioni Bowcher
1005Izzy O IturbideGermany2026-07-01Truhlar And Truhlar Attys RENEWAL58Ivan Magalhaes
1006Nicolas X CampainSpain2026-06-23Benton, John B Jr RENEWAL19Xuxue Feng
1007Aika M RutaBrazil2026-06-12Rousseaux, Michael Esq RENEWAL7Stephen Shaw
1008Leon B MorascaSpain2026-07-02Truhlar And Truhlar Attys NEGOTIATION58Ioni Bowcher
1009Silvio L BowleyUnited Kingdom2026-06-22Chanay, Jeffrey A Esq NEW54Amy Elsner
1010Octavia M ChuiJapan2026-06-13Morlong Associates NEW98Ioni Bowcher
1011Izzy U KolmetzBrazil2026-06-25Rangoni Of Florence PROPOSAL77Anna Fali
1012Smith X ChuiUnited Kingdom2026-06-17Chanay, Jeffrey A Esq UNQUALIFIED33Asiya Javayant
1013Munro D MarrierArgentina2026-06-21Benton, John B Jr PROPOSAL87Anna Fali
1014Aruna A PerinUnited Kingdom2026-06-13Chanay, Jeffrey A Esq UNQUALIFIED25Stephen Shaw
1015Kaitlin Q AmigonRussia2026-06-16Dorl, James J Esq RENEWAL42Xuxue Feng
1016Jeanfrancois D OstroskyGermany2026-07-06Feiner Bros UNQUALIFIED1Ioni Bowcher
1017Ivar I VocelkaArgentina2026-06-18Buckley Miller Wright UNQUALIFIED7Bernardo Dominic
1018Jones M StensethArgentina2026-06-09Buckley Miller Wright NEW34Ioni Bowcher
1019Salvatore L DoeRussia2026-07-06King, Christopher A Esq NEW74Amy Elsner
1020Ashley P SergiGermany2026-06-18Rousseaux, Michael Esq RENEWAL82Elwin Sharvill
1021Jefferson O InouyeAustralia2026-06-26Feltz Printing Service NEW98Anna Fali
1022Jennifer T WaycottArgentina2026-06-23Feiner Bros NEGOTIATION43Onyama Limba
1023Aruna S RutaIndia2026-06-17Rousseaux, Michael Esq NEGOTIATION55Xuxue Feng
1024Silvio N ShinkoGermany2026-07-07Chemel, James L Cpa PROPOSAL20Ioni Bowcher
1025Octavia E MarrierFrance2026-06-18Benton, John B Jr QUALIFIED57Anna Fali
1026Jefferson H RimArgentina2026-06-18Buckley Miller Wright NEGOTIATION79Xuxue Feng
1027Chavez S CaldareraItaly2026-06-10Rousseaux, Michael Esq QUALIFIED2Asiya Javayant
1028Sinclair E CampainAustralia2026-06-22Printing Dimensions QUALIFIED21Ioni Bowcher
1029Rodrigues Z FerenczItaly2026-06-28Chemel, James L Cpa UNQUALIFIED98Ivan Magalhaes
1030Costa Z OldroydBrazil2026-06-10Dorl, James J Esq NEGOTIATION91Onyama Limba
1031Jefferson V StensethGermany2026-06-21King, Christopher A Esq NEW16Bernardo Dominic
1032James Y StensethGermany2026-06-21Chemel, James L Cpa UNQUALIFIED78Stephen Shaw
1033Juan D AmigonSpain2026-07-03Morlong Associates PROPOSAL98Bernardo Dominic
1034Arvin H StockhamIndia2026-06-27Rangoni Of Florence PROPOSAL69Anna Fali
1035Salvatore Q ShinkoGermany2026-06-29Chemel, James L Cpa PROPOSAL97Bernardo Dominic
1036Munro U AmigonArgentina2026-06-27Buckley Miller Wright UNQUALIFIED34Ivan Magalhaes
1037Darci K KolmetzJapan2026-07-05Commercial Press NEW4Bernardo Dominic
1038David G GauchoGermany2026-06-25Commercial Press RENEWAL60Xuxue Feng
1039David K BriddickJapan2026-07-02Chapman, Ross E Esq UNQUALIFIED70Elwin Sharvill
1040Julie G SaylorsCanada2026-07-05Chemel, James L Cpa QUALIFIED35Anna Fali
1041Aruna D PaprockiIndia2026-07-05Printing Dimensions NEGOTIATION47Onyama Limba
1042Tony H ShinkoBrazil2026-07-01Feltz Printing Service QUALIFIED63Ioni Bowcher
1043Kadeem F SaylorsGermany2026-06-27Morlong Associates QUALIFIED33Ioni Bowcher
1044James L VenereRussia2026-06-28Benton, John B Jr NEGOTIATION29Elwin Sharvill
1045Nicolas N MarrierCanada2026-06-19King, Christopher A Esq NEGOTIATION59Stephen Shaw
1046Isabel P KolmetzItaly2026-07-05Benton, John B Jr PROPOSAL57Elwin Sharvill
1047Kaitlin P ChuiUnited Kingdom2026-07-04Dorl, James J Esq RENEWAL22Xuxue Feng
1048Mayumi Z FollerAustralia2026-06-17Chanay, Jeffrey A Esq NEW13Ioni Bowcher
1049Smith F FollerIndia2026-07-04Feiner Bros QUALIFIED38Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leja E CampainUnited KingdomXuxue Feng NEW
Isabel F IturbideRussiaAnna Fali NEW
Isabel S ChuiIndiaAsiya Javayant NEGOTIATION
Mayumi I RulapaughItalyAsiya Javayant RENEWAL
Tony A FollerSpainBernardo Dominic NEGOTIATION
Darci T KuskoGermanyAnna Fali NEGOTIATION
Wickens S WhobreyJapanXuxue Feng QUALIFIED
Clifford G SlusarskiIndiaBernardo Dominic NEGOTIATION
Johnson O MarrierIndiaBernardo Dominic NEW
Alejandro E AmigonSpainStephen Shaw PROPOSAL
James V MacleadFranceAsiya Javayant PROPOSAL
Kadeem T DilliardIndiaXuxue Feng UNQUALIFIED
David M ChuiAustraliaElwin Sharvill QUALIFIED
Mayumi B PaprockiFranceStephen Shaw NEGOTIATION
Octavia N SaylorsItalyAnna Fali NEGOTIATION
Aditya C FerenczFranceIvan Magalhaes PROPOSAL
Jennifer O WaycottFranceIvan Magalhaes NEW
Chavez E MacleadArgentinaIoni Bowcher PROPOSAL
Tony D GlickIndiaAmy Elsner QUALIFIED
Morrow B DoeRussiaAsiya Javayant NEGOTIATION
Emily W ButtAustraliaIoni Bowcher NEW
Mujtaba T StockhamSpainIoni Bowcher PROPOSAL
Leja Y ShinkoIndiaAsiya Javayant QUALIFIED
Silvio F BowleyGermanyAsiya Javayant PROPOSAL
Clifford G StensethSpainOnyama Limba RENEWAL
Greenwood J StensethItalyIoni Bowcher QUALIFIED
Clifford Z BriddickRussiaIoni Bowcher PROPOSAL
Darci O StensethAustraliaStephen Shaw NEGOTIATION
Claire X KolmetzSpainOnyama Limba NEW
Costa U OstroskyItalyElwin Sharvill UNQUALIFIED
Maria D KolmetzJapanElwin Sharvill NEGOTIATION
Isabel C VocelkaBrazilAsiya Javayant UNQUALIFIED
Nicolas X RoysterIndiaXuxue Feng QUALIFIED
Costa N WieserAustraliaIvan Magalhaes PROPOSAL
Francesco N ShinkoIndiaAsiya Javayant NEW
Maria Z NestleItalyXuxue Feng UNQUALIFIED
Ashley O StensethJapanXuxue Feng NEGOTIATION
Greenwood L GarufiGermanyIoni Bowcher NEW
Antonio W OstroskyArgentinaOnyama Limba UNQUALIFIED
Izzy K CaldareraItalyIoni Bowcher PROPOSAL
Rodrigues C RulapaughIndiaStephen Shaw NEGOTIATION
Arvin L KolmetzCanadaBernardo Dominic NEGOTIATION
Stacey Q GarufiGermanyElwin Sharvill NEGOTIATION
Aika N SaylorsArgentinaIvan Magalhaes QUALIFIED
Kaitlin U CaldareraJapanIvan Magalhaes NEGOTIATION
Smith A ShinkoGermanyBernardo Dominic RENEWAL
Mujtaba T MaletAustraliaIoni Bowcher UNQUALIFIED
Darci P PaprockiGermanyAnna Fali RENEWAL
Darci N WhobreyGermanyAmy Elsner RENEWAL
Cody I KuskoRussiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Juan N Rulapaugh
Aditya L Kusko
Juan F Albares
Johnson N Amigon
Greenwood R Dilliard
Antonio K Kolmetz
Octavia K Ruta
Rodrigues A Amigon
Jefferson Z Marrier
David O Ruta
Aruna R Vocelka
Leon L Morasca
Kaitlin Z Tollner
Aika Z Albares
Octavia S Vocelka
Deepesh B Gillian
Munro E Ostrosky
Claire Q Saylors
Ricardo A Maclead
Izzy K Slusarski
Kaitlin E Vocelka
Jennifer A Poquette
Clifford B Gillian
Adams Z Perin
Juan T Schemmer
Ashley H Nicka
Silvio Q Nestle
Misaki A Vocelka
Morrow X Maclead
Izzy U Malet
Darci L Garufi
Stacey Y Nestle
Maria V Caudy
Maisha H Shinko
Jeanfrancois E Butt
Isabel V Marrier
Mujtaba N Oldroyd
Maria L Briddick
Greenwood O Flosi
Deepesh O Poquette
Francesco L Royster
Costa I Inouye
Morrow Z Ostrosky
Ricardo S Perin
Deepesh A Gaucho
Antonio I Stockham
Mayumi N Foller
James E Bolognia
Stacey E Glick
David E Inouye
IdCountryDate
1000India2026-07-04
1001Brazil2026-06-08
1002Brazil2026-06-23
1003Russia2026-07-04
1004Brazil2026-07-03
1005France2026-06-08
1006Australia2026-06-30
1007Brazil2026-06-30
1008Russia2026-06-13
1009Spain2026-06-20
1010Italy2026-06-25
1011Canada2026-06-27
1012Italy2026-06-10
1013Argentina2026-06-25
1014France2026-06-10
1015Canada2026-07-02
1016Italy2026-06-09
1017Spain2026-06-18
1018India2026-06-09
1019Canada2026-06-24
1020Australia2026-06-08
1021India2026-07-06
1022India2026-07-02
1023Russia2026-07-04
1024Canada2026-06-13
1025Australia2026-06-23
1026Canada2026-07-01
1027Canada2026-07-07
1028Germany2026-06-16
1029Brazil2026-06-29
1030Spain2026-06-09
1031France2026-06-14
1032Spain2026-06-22
1033France2026-06-23
1034Spain2026-06-24
1035Brazil2026-06-22
1036Russia2026-06-22
1037India2026-06-23
1038Brazil2026-07-04
1039Italy2026-07-02
1040United Kingdom2026-06-17
1041Russia2026-07-07
1042France2026-06-12
1043Germany2026-06-22
1044Italy2026-06-11
1045Canada2026-06-27
1046Japan2026-07-02
1047Japan2026-06-12
1048Japan2026-06-10
1049Japan2026-06-23

On-Demand Data

NameIdCountryDate
Maria F Perin1000Spain2026-06-11
Mayumi D Paprocki1001Australia2026-07-06
Silvio C Butt1002France2026-06-13
Rodrigues R Saylors1003Spain2026-06-09
Mayumi K Bowley1004France2026-06-15
Deepesh P Waycott1005Australia2026-06-13
Julie X Malet1006Japan2026-06-14
Leja I Morasca1007United Kingdom2026-06-15
Tony M Royster1008Spain2026-06-19
Wickens F Butt1009Germany2026-06-21
Kaitlin V Kusko1010Argentina2026-06-23
David J Saylors1011United Kingdom2026-06-12
David H Foller1012Japan2026-07-02
James T Ostrosky1013India2026-07-04
Nicolas C Stenseth1014Australia2026-06-28
Leja R Dilliard1015Germany2026-06-12
Mujtaba E Paprocki1016France2026-06-08
Maisha H Malet1017India2026-06-12
Salvatore F Bolognia1018Russia2026-07-01
Jones K Saylors1019Russia2026-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya Z VocelkaItalyIvan Magalhaes PROPOSAL
Greenwood R GillianIndiaOnyama Limba UNQUALIFIED
Jefferson U ChuiUnited KingdomElwin Sharvill NEGOTIATION
Faith R GauchoAustraliaBernardo Dominic NEW
Ricardo G VocelkaBrazilAmy Elsner PROPOSAL
Murillo E RutaRussiaIoni Bowcher RENEWAL
Wickens B WaycottArgentinaAmy Elsner PROPOSAL
James G DoeGermanyAsiya Javayant NEW
Jennifer N FollerAustraliaAnna Fali QUALIFIED
Faith Y RulapaughItalyAsiya Javayant NEGOTIATION
Ashley H VenereArgentinaStephen Shaw UNQUALIFIED
Johnson I ChuiSpainAnna Fali UNQUALIFIED
Aditya Y RutaRussiaAsiya Javayant RENEWAL
Aruna H StensethBrazilAmy Elsner UNQUALIFIED
Kaitlin R PaprockiCanadaAnna Fali RENEWAL
Juan J TollnerGermanyXuxue Feng UNQUALIFIED
Isabel Z MorascaSpainElwin Sharvill PROPOSAL
Kadeem E BriddickAustraliaIvan Magalhaes NEW
Salvatore C CaudyUnited KingdomAmy Elsner NEW
Julie P OldroydSpainElwin Sharvill NEW
Leon W PoquetteArgentinaElwin Sharvill NEW
Munro E CampainArgentinaBernardo Dominic PROPOSAL
Faith Z StensethItalyIvan Magalhaes RENEWAL
Greenwood V MaletSpainXuxue Feng RENEWAL
Clifford X WaycottBrazilIoni Bowcher PROPOSAL
Misaki K MaletSpainIoni Bowcher QUALIFIED
Jefferson H MacleadGermanyIoni Bowcher QUALIFIED
David D KuskoArgentinaAsiya Javayant NEW
Leja I BologniaBrazilAsiya Javayant NEGOTIATION
Aditya G VenereJapanAsiya Javayant UNQUALIFIED
Deepesh M VenereArgentinaElwin Sharvill RENEWAL
Wickens B MaletArgentinaBernardo Dominic NEW
Wickens Z WieserIndiaAmy Elsner QUALIFIED
Salvatore N FollerItalyIoni Bowcher UNQUALIFIED
Jefferson L DilliardAustraliaOnyama Limba RENEWAL
Antonio Y GarufiArgentinaAnna Fali NEW
Kaitlin V DilliardFranceBernardo Dominic PROPOSAL
Deepesh J CampainGermanyBernardo Dominic UNQUALIFIED
Smith C OldroydArgentinaBernardo Dominic QUALIFIED
Aika T TollnerIndiaStephen Shaw 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>