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
Julie P PerinBrazilAsiya Javayant RENEWAL
Mayumi I GauchoGermanyElwin Sharvill NEGOTIATION
Adams E MacleadJapanIoni Bowcher NEW
Jefferson N ButtAustraliaAsiya Javayant NEW
Clifford B GillianIndiaAsiya Javayant QUALIFIED
Juan T OstroskyJapanElwin Sharvill PROPOSAL
Wickens H DoeItalyXuxue Feng QUALIFIED
Leon D GauchoIndiaAmy Elsner NEGOTIATION
Munro Q SlusarskiIndiaAsiya Javayant NEW
Emily J MacleadBrazilElwin Sharvill QUALIFIED
Darci Z CampainGermanyAsiya Javayant UNQUALIFIED
Ivar O KuskoGermanyAmy Elsner NEW
Aditya C OstroskyRussiaAmy Elsner UNQUALIFIED
David G DarakjyAustraliaElwin Sharvill PROPOSAL
Smith Z RulapaughAustraliaAsiya Javayant PROPOSAL
Leja S TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Jeanfrancois H WaycottRussiaAsiya Javayant NEGOTIATION
Sinclair I DarakjyAustraliaElwin Sharvill NEW
Rodrigues Y CampainFranceIoni Bowcher QUALIFIED
James B VenereAustraliaIoni Bowcher NEW
Emily P IturbideIndiaXuxue Feng RENEWAL
Kadeem K KuskoSpainStephen Shaw QUALIFIED
Faith R SchemmerFranceAmy Elsner PROPOSAL
Jones D FerenczSpainAsiya Javayant NEGOTIATION
Leja B FerenczSpainXuxue Feng UNQUALIFIED
Mayumi L CampainCanadaStephen Shaw QUALIFIED
Isabel C MaletCanadaAmy Elsner UNQUALIFIED
Ricardo M RutaRussiaElwin Sharvill NEGOTIATION
Silvio W SergiGermanyElwin Sharvill NEW
Julie O DilliardBrazilIoni Bowcher QUALIFIED
Kaitlin I VocelkaIndiaStephen Shaw QUALIFIED
Isabel J StockhamCanadaAsiya Javayant NEGOTIATION
Adams M GauchoArgentinaIvan Magalhaes PROPOSAL
Silvio W SlusarskiIndiaOnyama Limba RENEWAL
Greenwood E OstroskyCanadaXuxue Feng NEGOTIATION
Costa C DilliardAustraliaXuxue Feng UNQUALIFIED
Clifford N BologniaCanadaBernardo Dominic NEGOTIATION
Kadeem B DoeBrazilIoni Bowcher PROPOSAL
Wickens W SaylorsAustraliaOnyama Limba RENEWAL
Arvin G DoeFranceStephen Shaw QUALIFIED
Mujtaba X NestleAustraliaOnyama Limba UNQUALIFIED
Salvatore Y RoysterSpainAnna Fali QUALIFIED
Octavia G BologniaRussiaIoni Bowcher PROPOSAL
Jefferson V StockhamCanadaXuxue Feng RENEWAL
Wickens R SlusarskiAustraliaAmy Elsner RENEWAL
Kadeem U SaylorsIndiaAnna Fali UNQUALIFIED
Johnson Y WieserSpainXuxue Feng NEGOTIATION
Stacey J VenereJapanAmy Elsner RENEWAL
Octavia F GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Izzy S BologniaAustraliaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem Y FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Johnson O AlbaresIndiaAnna Fali RENEWAL
Alejandro Q KolmetzIndiaIvan Magalhaes UNQUALIFIED
Morrow O GlickGermanyXuxue Feng NEGOTIATION
Ivar X KolmetzBrazilXuxue Feng NEGOTIATION
Adams Z KolmetzArgentinaIoni Bowcher NEGOTIATION
Juan Z ChuiGermanyIoni Bowcher UNQUALIFIED
Aika S BriddickGermanyXuxue Feng QUALIFIED
Misaki K RoysterUnited KingdomOnyama Limba RENEWAL
Cody C PoquetteUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia U RutaJapan2026-08-01Feiner Bros QUALIFIED44Anna Fali
1001Costa S RulapaughIndia2026-07-31Feiner Bros PROPOSAL3Amy Elsner
1002Tony P StockhamGermany2026-07-09Commercial Press NEGOTIATION53Anna Fali
1003Sinclair Y KolmetzArgentina2026-07-14Dorl, James J Esq RENEWAL67Asiya Javayant
1004Misaki M VenereItaly2026-07-23Chemel, James L Cpa NEW67Ivan Magalhaes
1005Jones A AmigonRussia2026-07-06Rangoni Of Florence PROPOSAL19Onyama Limba
1006Alejandro V FigeroaUnited Kingdom2026-07-10King, Christopher A Esq PROPOSAL86Xuxue Feng
1007Jefferson Z MaletIndia2026-07-13Feltz Printing Service PROPOSAL21Anna Fali
1008Aika A RutaGermany2026-07-09Commercial Press RENEWAL11Bernardo Dominic
1009Maria B MaletFrance2026-07-10Commercial Press UNQUALIFIED23Amy Elsner
1010Octavia H SlusarskiArgentina2026-07-07Commercial Press QUALIFIED39Anna Fali
1011Salvatore L FerenczRussia2026-07-18Truhlar And Truhlar Attys NEGOTIATION39Xuxue Feng
1012Sinclair K BowleyRussia2026-07-13Commercial Press RENEWAL22Anna Fali
1013Isabel Q ShinkoCanada2026-07-13Truhlar And Truhlar Attys NEW34Elwin Sharvill
1014Adams X RutaJapan2026-07-26Chapman, Ross E Esq UNQUALIFIED11Bernardo Dominic
1015Jones U WaycottArgentina2026-07-23Chanay, Jeffrey A Esq NEW85Elwin Sharvill
1016Kadeem O SchemmerItaly2026-07-23Feiner Bros PROPOSAL17Amy Elsner
1017Octavia C MaletGermany2026-07-30Morlong Associates UNQUALIFIED30Bernardo Dominic
1018Deepesh X PaprockiArgentina2026-07-12Dorl, James J Esq NEGOTIATION69Asiya Javayant
1019Sinclair M WhobreyBrazil2026-07-11Chemel, James L Cpa PROPOSAL25Elwin Sharvill
1020Maria I FerenczJapan2026-07-16Feiner Bros NEGOTIATION20Onyama Limba
1021Kaitlin C IturbideUnited Kingdom2026-07-18Truhlar And Truhlar Attys NEW75Onyama Limba
1022Rodrigues R SaylorsGermany2026-07-10Chapman, Ross E Esq QUALIFIED13Ioni Bowcher
1023James Z CaudyCanada2026-07-07King, Christopher A Esq QUALIFIED69Elwin Sharvill
1024Faith D RoysterRussia2026-07-24Chemel, James L Cpa RENEWAL54Anna Fali
1025David B MaletItaly2026-07-14Printing Dimensions NEGOTIATION55Onyama Limba
1026Smith V DoeAustralia2026-07-30Benton, John B Jr NEGOTIATION96Asiya Javayant
1027Leon L CaldareraItaly2026-07-13Rousseaux, Michael Esq UNQUALIFIED29Ivan Magalhaes
1028Clifford K WhobreyGermany2026-07-08Morlong Associates RENEWAL18Stephen Shaw
1029Costa K FollerFrance2026-07-30Morlong Associates PROPOSAL11Stephen Shaw
1030Kadeem S FigeroaSpain2026-07-04Rangoni Of Florence QUALIFIED56Xuxue Feng
1031James E MaletFrance2026-07-25Buckley Miller Wright PROPOSAL69Anna Fali
1032Ivar O PaprockiCanada2026-07-15Chanay, Jeffrey A Esq RENEWAL86Ivan Magalhaes
1033Francesco X TollnerFrance2026-07-28Benton, John B Jr RENEWAL8Xuxue Feng
1034Juan S GlickSpain2026-07-12Feltz Printing Service NEGOTIATION56Onyama Limba
1035Adams M OldroydIndia2026-07-14Dorl, James J Esq RENEWAL37Onyama Limba
1036Wickens G KuskoUnited Kingdom2026-07-07Rousseaux, Michael Esq NEGOTIATION97Stephen Shaw
1037Murillo M WieserCanada2026-07-26Morlong Associates RENEWAL87Amy Elsner
1038Jones I DilliardGermany2026-07-26Feiner Bros RENEWAL11Bernardo Dominic
1039Maria Z GauchoUnited Kingdom2026-07-26Chanay, Jeffrey A Esq RENEWAL85Asiya Javayant
1040Wickens D MaletCanada2026-07-17Feltz Printing Service NEW66Ivan Magalhaes
1041Tony I CampainRussia2026-07-29Feltz Printing Service NEW67Onyama Limba
1042Darci P BologniaItaly2026-07-14Benton, John B Jr PROPOSAL31Anna Fali
1043Alejandro Z BriddickGermany2026-07-25King, Christopher A Esq NEGOTIATION58Xuxue Feng
1044Deepesh Y WaycottCanada2026-07-27Feiner Bros RENEWAL80Ivan Magalhaes
1045Emily S GauchoAustralia2026-07-07Commercial Press NEGOTIATION91Elwin Sharvill
1046Cody I SlusarskiBrazil2026-07-12Commercial Press QUALIFIED73Bernardo Dominic
1047Silvio M RoysterSpain2026-07-20Truhlar And Truhlar Attys RENEWAL73Asiya Javayant
1048Aika D CaudyJapan2026-07-03Printing Dimensions PROPOSAL49Ioni Bowcher
1049Sinclair R MarrierIndia2026-07-21Printing Dimensions NEW94Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy K RulapaughJapanIvan Magalhaes QUALIFIED
Aika S MaletItalyAmy Elsner PROPOSAL
Faith L GarufiCanadaOnyama Limba PROPOSAL
Costa D OldroydBrazilBernardo Dominic PROPOSAL
Darci K MarrierBrazilAnna Fali RENEWAL
David C InouyeJapanAnna Fali NEGOTIATION
Salvatore E AmigonSpainIoni Bowcher NEGOTIATION
Leon S SchemmerCanadaAmy Elsner NEGOTIATION
Rodrigues U StensethJapanBernardo Dominic NEGOTIATION
Mayumi S SergiItalyAnna Fali RENEWAL
Adams E VenereFranceAnna Fali UNQUALIFIED
Rodrigues T WieserCanadaIoni Bowcher RENEWAL
Morrow R VocelkaCanadaOnyama Limba NEW
Octavia A GillianArgentinaBernardo Dominic PROPOSAL
Cody V KolmetzFranceOnyama Limba RENEWAL
Mujtaba L VocelkaIndiaAsiya Javayant NEGOTIATION
Kadeem J TollnerAustraliaElwin Sharvill QUALIFIED
Murillo V GauchoIndiaAmy Elsner QUALIFIED
Maisha X AmigonArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois J GarufiCanadaIoni Bowcher QUALIFIED
Kaitlin T PaprockiRussiaOnyama Limba NEW
Ashley S PoquetteItalyAnna Fali PROPOSAL
Morrow O OstroskyJapanIoni Bowcher NEW
Cody Q AlbaresBrazilXuxue Feng NEGOTIATION
Aruna D ButtJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois O SaylorsIndiaStephen Shaw NEGOTIATION
Antonio H KuskoCanadaIvan Magalhaes NEGOTIATION
Maria Q CampainCanadaOnyama Limba PROPOSAL
Francesco U FerenczUnited KingdomStephen Shaw NEW
Juan N SaylorsItalyBernardo Dominic PROPOSAL
Clifford U StensethCanadaAmy Elsner RENEWAL
Salvatore Y CampainSpainOnyama Limba UNQUALIFIED
Mayumi E SergiRussiaOnyama Limba NEGOTIATION
Arvin M FigeroaRussiaAmy Elsner UNQUALIFIED
Arvin L NestleFranceAsiya Javayant RENEWAL
Izzy N DilliardAustraliaAmy Elsner PROPOSAL
Clifford T TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro U BowleyGermanyAsiya Javayant RENEWAL
Stacey S ChuiJapanAsiya Javayant PROPOSAL
Tony B RutaCanadaBernardo Dominic RENEWAL
Jones D OstroskyItalyElwin Sharvill NEGOTIATION
Silvio T SergiSpainIvan Magalhaes RENEWAL
Juan P RutaArgentinaAsiya Javayant NEGOTIATION
Morrow W NickaArgentinaAmy Elsner QUALIFIED
Juan X FlosiSpainElwin Sharvill NEW
Ashley O PerinSpainBernardo Dominic NEGOTIATION
Jeanfrancois D FlosiAustraliaBernardo Dominic NEGOTIATION
Maisha E TollnerBrazilAnna Fali NEGOTIATION
Aditya T ChuiAustraliaAsiya Javayant NEW
Jennifer L VenereArgentinaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Ashley S Whobrey
Julie D Paprocki
Rodrigues S Perin
Deepesh B Royster
Mujtaba P Bolognia
Ivar D Caldarera
Misaki N Shinko
Mayumi P Rulapaugh
Nicolas R Bowley
Deepesh W Foller
Emily Z Doe
Munro B Butt
Isabel L Tollner
Ivar Y Perin
James Y Tollner
Leja W Ostrosky
Tony L Vocelka
Sinclair H Kolmetz
James T Vocelka
Leja M Tollner
Jones Q Gillian
Silvio Z Vocelka
Smith M Bolognia
Munro P Ostrosky
Kadeem T Briddick
Mayumi K Perin
Octavia G Ferencz
Izzy D Rulapaugh
Arvin W Bolognia
Ivar X Iturbide
Jennifer L Marrier
Aditya T Briddick
Greenwood H Briddick
Cody I Iturbide
Sinclair O Slusarski
Costa F Amigon
Greenwood V Royster
Wickens L Figeroa
Maisha X Poquette
Johnson Y Poquette
Jones I Wieser
Maisha Z Ostrosky
Maisha R Campain
Tony I Malet
Maisha R Kolmetz
Silvio K Iturbide
Izzy D Ferencz
James Z Campain
Ivar C Glick
Leon H Sergi
IdCountryDate
1000Russia2026-07-22
1001Japan2026-07-27
1002Russia2026-07-05
1003Australia2026-07-10
1004India2026-07-29
1005Russia2026-07-19
1006Spain2026-07-17
1007France2026-07-08
1008France2026-07-29
1009India2026-08-01
1010Canada2026-07-25
1011Canada2026-08-01
1012Canada2026-07-18
1013Australia2026-07-08
1014Brazil2026-07-29
1015Canada2026-07-04
1016India2026-07-17
1017Argentina2026-07-22
1018Japan2026-07-25
1019Canada2026-07-17
1020Canada2026-07-24
1021Germany2026-07-22
1022Canada2026-07-09
1023Argentina2026-07-19
1024France2026-07-18
1025United Kingdom2026-07-14
1026United Kingdom2026-07-17
1027Brazil2026-07-19
1028Germany2026-07-25
1029Brazil2026-07-31
1030Canada2026-07-08
1031Germany2026-07-12
1032Spain2026-07-19
1033Italy2026-07-19
1034Italy2026-07-14
1035Canada2026-07-27
1036Brazil2026-07-10
1037India2026-07-07
1038Australia2026-07-13
1039Australia2026-07-22
1040Russia2026-07-16
1041Argentina2026-08-01
1042Japan2026-07-06
1043Germany2026-07-29
1044France2026-07-24
1045Russia2026-07-31
1046France2026-07-27
1047Canada2026-07-09
1048France2026-07-24
1049Germany2026-07-03

On-Demand Data

NameIdCountryDate
Mayumi H Gaucho1000Australia2026-07-19
Adams L Albares1001Japan2026-07-12
Claire X Amigon1002Spain2026-07-11
Wickens Z Perin1003Russia2026-07-14
Darci R Maclead1004United Kingdom2026-07-06
Alejandro R Nestle1005Germany2026-07-31
Jennifer M Bolognia1006India2026-07-12
Mayumi Z Gaucho1007Russia2026-07-23
Ivar W Wieser1008Japan2026-07-17
Stacey A Bowley1009Canada2026-07-05
Ivar F Albares1010Brazil2026-07-17
James I Foller1011Australia2026-07-31
Leon V Wieser1012Canada2026-07-11
Faith R Doe1013Canada2026-07-07
Aika O Slusarski1014Japan2026-07-22
Adams U Rim1015Brazil2026-08-01
Arvin K Bowley1016United Kingdom2026-07-20
Salvatore F Slusarski1017France2026-07-30
Nicolas J Doe1018Brazil2026-07-18
Darci G Shinko1019United Kingdom2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo K CaldareraSpainBernardo Dominic PROPOSAL
Jeanfrancois F SaylorsIndiaBernardo Dominic NEGOTIATION
Faith E DarakjyGermanyAnna Fali UNQUALIFIED
Sinclair Y VenereJapanIoni Bowcher QUALIFIED
Aruna K StockhamItalyAnna Fali PROPOSAL
Adams F OldroydJapanXuxue Feng NEW
Emily R GlickItalyXuxue Feng NEGOTIATION
James R RutaArgentinaBernardo Dominic UNQUALIFIED
Maria Q IturbideBrazilStephen Shaw NEGOTIATION
Kaitlin J VocelkaArgentinaStephen Shaw NEW
Aika A MaletFranceAnna Fali UNQUALIFIED
Greenwood J AlbaresAustraliaAmy Elsner UNQUALIFIED
Mujtaba X MaletBrazilAmy Elsner NEW
Aditya T ChuiIndiaAnna Fali RENEWAL
Stacey M ShinkoUnited KingdomAnna Fali NEGOTIATION
Sinclair A WieserAustraliaAsiya Javayant UNQUALIFIED
Misaki B SergiAustraliaAsiya Javayant RENEWAL
Francesco P WieserSpainIvan Magalhaes PROPOSAL
Salvatore W BologniaUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba R VenereBrazilAsiya Javayant PROPOSAL
Maria O TollnerCanadaXuxue Feng NEGOTIATION
Isabel A WhobreyFranceAnna Fali NEGOTIATION
Juan Z IturbideSpainXuxue Feng QUALIFIED
Izzy Z PoquetteArgentinaAsiya Javayant QUALIFIED
Sinclair A MorascaFranceIoni Bowcher UNQUALIFIED
Mayumi Z GauchoRussiaIvan Magalhaes PROPOSAL
Isabel R CampainSpainIoni Bowcher QUALIFIED
Octavia V RulapaughRussiaStephen Shaw UNQUALIFIED
Arvin N VocelkaGermanyStephen Shaw PROPOSAL
Alejandro G WhobreyFranceElwin Sharvill QUALIFIED
Isabel S ChuiCanadaElwin Sharvill UNQUALIFIED
Smith U GarufiItalyAsiya Javayant NEGOTIATION
Cody P SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro T AlbaresBrazilXuxue Feng UNQUALIFIED
Clifford O ChuiIndiaElwin Sharvill PROPOSAL
Arvin S ButtSpainAsiya Javayant QUALIFIED
Nicolas V MaletJapanOnyama Limba NEGOTIATION
Juan S VocelkaGermanyAnna Fali UNQUALIFIED
Ricardo O SaylorsIndiaAmy Elsner PROPOSAL
Sinclair R RulapaughIndiaOnyama Limba UNQUALIFIED

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