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
Chavez S TollnerFranceOnyama Limba RENEWAL
Faith Z OldroydItalyIoni Bowcher NEW
Sinclair Z NestleCanadaIvan Magalhaes RENEWAL
Aruna I CampainBrazilStephen Shaw NEW
Cody U FlosiFranceXuxue Feng NEW
Ashley Y SlusarskiCanadaBernardo Dominic NEGOTIATION
Costa K NestleGermanyElwin Sharvill RENEWAL
Aditya O PaprockiBrazilStephen Shaw QUALIFIED
Munro Z NestleRussiaXuxue Feng UNQUALIFIED
Juan F WieserArgentinaAsiya Javayant NEGOTIATION
Kaitlin U RulapaughUnited KingdomAsiya Javayant QUALIFIED
Kaitlin G ShinkoAustraliaIoni Bowcher UNQUALIFIED
James X InouyeJapanOnyama Limba PROPOSAL
Nicolas L NickaCanadaIoni Bowcher UNQUALIFIED
Ivar S VenereAustraliaAsiya Javayant RENEWAL
Alejandro G DarakjyArgentinaBernardo Dominic UNQUALIFIED
Sinclair N DilliardUnited KingdomStephen Shaw RENEWAL
Misaki Q GlickArgentinaElwin Sharvill QUALIFIED
Leja K AmigonItalyOnyama Limba UNQUALIFIED
Alejandro O GillianAustraliaOnyama Limba PROPOSAL
Aruna Q PerinIndiaAnna Fali RENEWAL
Costa U BowleyAustraliaAnna Fali NEW
Mujtaba V MorascaGermanyBernardo Dominic NEW
James Q NestleBrazilStephen Shaw RENEWAL
Ashley H WhobreyJapanElwin Sharvill QUALIFIED
Cody P MorascaGermanyAmy Elsner NEGOTIATION
Julie X PerinArgentinaStephen Shaw UNQUALIFIED
Octavia H FollerArgentinaIoni Bowcher UNQUALIFIED
Julie E RoysterItalyXuxue Feng PROPOSAL
Tony G SergiItalyXuxue Feng NEW
Tony C RutaArgentinaIoni Bowcher NEGOTIATION
Maisha A BologniaArgentinaAsiya Javayant NEGOTIATION
Maria R GlickRussiaOnyama Limba RENEWAL
Kadeem C SaylorsSpainIvan Magalhaes QUALIFIED
Izzy K GauchoRussiaStephen Shaw PROPOSAL
Jeanfrancois S RulapaughBrazilIoni Bowcher UNQUALIFIED
Stacey F PaprockiItalyOnyama Limba RENEWAL
Ashley Y OstroskyArgentinaAmy Elsner PROPOSAL
Ricardo U TollnerUnited KingdomElwin Sharvill PROPOSAL
Tony L FlosiArgentinaStephen Shaw NEW
Aditya D CaudyRussiaElwin Sharvill PROPOSAL
David N VocelkaAustraliaBernardo Dominic NEGOTIATION
Maria W CaudyArgentinaIvan Magalhaes NEGOTIATION
Emily Y MorascaIndiaOnyama Limba PROPOSAL
Silvio P FollerArgentinaAsiya Javayant NEW
Deepesh W WaycottRussiaXuxue Feng RENEWAL
Ashley Z GillianCanadaIoni Bowcher QUALIFIED
Ricardo I FlosiUnited KingdomOnyama Limba NEW
Sinclair T MarrierBrazilAmy Elsner QUALIFIED
Faith E MacleadItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin O GillianBrazilAsiya Javayant NEGOTIATION
Maria J WaycottRussiaIvan Magalhaes RENEWAL
Aditya X OstroskyBrazilElwin Sharvill NEGOTIATION
Leon O NickaItalyAsiya Javayant UNQUALIFIED
Octavia T WieserIndiaElwin Sharvill NEGOTIATION
Kaitlin C CaldareraJapanXuxue Feng UNQUALIFIED
Ivar B WhobreyCanadaIvan Magalhaes PROPOSAL
Isabel Q BowleyBrazilIvan Magalhaes PROPOSAL
Juan Q PoquetteAustraliaBernardo Dominic NEGOTIATION
Isabel I KuskoSpainBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo F StensethUnited Kingdom2026-07-16Truhlar And Truhlar Attys PROPOSAL7Asiya Javayant
1001Costa A BowleyJapan2026-07-08Chapman, Ross E Esq NEW97Amy Elsner
1002Alejandro Q GarufiCanada2026-07-13Chapman, Ross E Esq PROPOSAL85Ioni Bowcher
1003Darci D RutaAustralia2026-07-01Dorl, James J Esq NEW83Amy Elsner
1004Adams H StensethRussia2026-07-10Chanay, Jeffrey A Esq QUALIFIED9Ivan Magalhaes
1005Arvin V NickaJapan2026-07-09Dorl, James J Esq UNQUALIFIED5Amy Elsner
1006Antonio Z InouyeArgentina2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED86Elwin Sharvill
1007Maisha P FigeroaRussia2026-07-02Truhlar And Truhlar Attys QUALIFIED32Elwin Sharvill
1008Jeanfrancois W TollnerUnited Kingdom2026-06-28Chemel, James L Cpa NEW45Onyama Limba
1009Maria O VenereGermany2026-07-22Buckley Miller Wright PROPOSAL29Amy Elsner
1010Cody I RulapaughCanada2026-06-27Rousseaux, Michael Esq RENEWAL44Asiya Javayant
1011Ivar Q IturbideJapan2026-07-09Feiner Bros QUALIFIED60Elwin Sharvill
1012Aditya C OldroydBrazil2026-07-01Morlong Associates RENEWAL43Ioni Bowcher
1013Leja N NestleItaly2026-06-29Feltz Printing Service QUALIFIED9Bernardo Dominic
1014Octavia S FlosiUnited Kingdom2026-07-06Truhlar And Truhlar Attys RENEWAL31Amy Elsner
1015Faith R KuskoGermany2026-07-15Chemel, James L Cpa QUALIFIED46Elwin Sharvill
1016Claire T SlusarskiFrance2026-07-08Commercial Press RENEWAL81Asiya Javayant
1017Arvin J PerinRussia2026-07-04Commercial Press NEGOTIATION62Ivan Magalhaes
1018Morrow N NestleUnited Kingdom2026-07-08Dorl, James J Esq PROPOSAL59Ioni Bowcher
1019Octavia R OldroydRussia2026-07-18Chapman, Ross E Esq NEGOTIATION60Amy Elsner
1020Ivar A NickaArgentina2026-06-28Rangoni Of Florence UNQUALIFIED62Stephen Shaw
1021Smith R IturbideItaly2026-07-11Rousseaux, Michael Esq NEW7Elwin Sharvill
1022Izzy X CaldareraAustralia2026-07-15Dorl, James J Esq RENEWAL2Bernardo Dominic
1023Darci O PoquetteItaly2026-07-02Truhlar And Truhlar Attys NEW89Ioni Bowcher
1024Ricardo U AmigonSpain2026-07-09King, Christopher A Esq QUALIFIED32Elwin Sharvill
1025David V MorascaJapan2026-07-07Benton, John B Jr QUALIFIED23Onyama Limba
1026Greenwood C MorascaIndia2026-07-01Dorl, James J Esq PROPOSAL5Xuxue Feng
1027Misaki X GillianJapan2026-07-19Commercial Press QUALIFIED22Bernardo Dominic
1028Sinclair U DilliardCanada2026-07-18Commercial Press PROPOSAL37Asiya Javayant
1029Alejandro Q NickaAustralia2026-07-14Commercial Press PROPOSAL63Anna Fali
1030Stacey L KuskoRussia2026-06-26Buckley Miller Wright NEW86Xuxue Feng
1031Izzy X BologniaCanada2026-07-11Commercial Press QUALIFIED97Bernardo Dominic
1032Ivar E DoeRussia2026-07-22Morlong Associates UNQUALIFIED67Xuxue Feng
1033Darci K KuskoRussia2026-06-26Chemel, James L Cpa NEGOTIATION8Ioni Bowcher
1034Mayumi U DarakjyBrazil2026-07-02Benton, John B Jr NEGOTIATION71Elwin Sharvill
1035Jennifer I BowleyBrazil2026-07-12Printing Dimensions QUALIFIED87Bernardo Dominic
1036Juan Q SchemmerIndia2026-07-10Buckley Miller Wright RENEWAL59Stephen Shaw
1037Aditya A OstroskyAustralia2026-07-14Feltz Printing Service QUALIFIED13Xuxue Feng
1038Izzy Y GauchoRussia2026-07-21Dorl, James J Esq NEGOTIATION44Stephen Shaw
1039Claire L PerinBrazil2026-07-23Rousseaux, Michael Esq NEW19Stephen Shaw
1040Leon A RoysterJapan2026-06-28Rousseaux, Michael Esq QUALIFIED59Ivan Magalhaes
1041Adams X GarufiJapan2026-07-19Commercial Press RENEWAL72Asiya Javayant
1042Isabel F SergiBrazil2026-07-23Rangoni Of Florence RENEWAL36Elwin Sharvill
1043Kaitlin E FollerFrance2026-07-25Commercial Press QUALIFIED67Bernardo Dominic
1044Rodrigues A PoquetteJapan2026-07-13Rousseaux, Michael Esq PROPOSAL49Bernardo Dominic
1045Misaki Z FollerCanada2026-07-15Feiner Bros RENEWAL79Anna Fali
1046Aika O GauchoItaly2026-07-12Chapman, Ross E Esq PROPOSAL75Asiya Javayant
1047Adams Y WieserRussia2026-06-29Dorl, James J Esq QUALIFIED55Anna Fali
1048Maria M IturbideAustralia2026-07-14Buckley Miller Wright UNQUALIFIED8Anna Fali
1049Claire G BologniaJapan2026-07-12Rousseaux, Michael Esq NEW2Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Sinclair K TollnerRussiaAnna Fali RENEWAL
Costa B NickaItalyIoni Bowcher NEW
Morrow W VocelkaUnited KingdomStephen Shaw NEGOTIATION
Octavia I NickaIndiaStephen Shaw PROPOSAL
Salvatore U GarufiUnited KingdomOnyama Limba RENEWAL
Wickens D CampainUnited KingdomIoni Bowcher RENEWAL
Deepesh E FollerIndiaElwin Sharvill QUALIFIED
Francesco Q WhobreyGermanyXuxue Feng NEGOTIATION
Aruna M MaletArgentinaXuxue Feng QUALIFIED
Stacey M SchemmerSpainAsiya Javayant NEGOTIATION
Tony E InouyeRussiaXuxue Feng PROPOSAL
Misaki N VocelkaIndiaElwin Sharvill RENEWAL
Munro Q CampainFranceOnyama Limba UNQUALIFIED
Smith S NickaArgentinaElwin Sharvill UNQUALIFIED
Jefferson W MacleadBrazilAmy Elsner NEGOTIATION
Smith W RoysterSpainIoni Bowcher NEW
Jefferson O AlbaresCanadaXuxue Feng RENEWAL
Alejandro H IturbideJapanOnyama Limba PROPOSAL
Ashley C CampainJapanStephen Shaw UNQUALIFIED
Juan B CampainAustraliaStephen Shaw QUALIFIED
Mujtaba I FerenczItalyAsiya Javayant RENEWAL
Nicolas V GarufiArgentinaStephen Shaw PROPOSAL
Deepesh O ButtIndiaOnyama Limba RENEWAL
Leon D DoeCanadaIvan Magalhaes NEGOTIATION
Ricardo K MorascaItalyIoni Bowcher QUALIFIED
Aditya B RimCanadaAmy Elsner NEGOTIATION
Greenwood I ButtGermanyAmy Elsner RENEWAL
Maria Z MaletIndiaXuxue Feng RENEWAL
Mayumi M GauchoSpainAmy Elsner PROPOSAL
Morrow N FollerSpainAnna Fali NEW
Mayumi J StensethUnited KingdomIoni Bowcher NEW
Juan A MaletArgentinaIvan Magalhaes UNQUALIFIED
Smith D MorascaFranceBernardo Dominic NEW
Jeanfrancois Y PoquetteGermanyIvan Magalhaes NEGOTIATION
Tony D ShinkoIndiaIvan Magalhaes UNQUALIFIED
Salvatore M DoeSpainOnyama Limba PROPOSAL
Stacey W ButtSpainAsiya Javayant QUALIFIED
Darci U GlickJapanIvan Magalhaes RENEWAL
Murillo Q CaldareraCanadaAmy Elsner NEGOTIATION
Antonio J FigeroaIndiaOnyama Limba NEW
Francesco S CaudyBrazilAnna Fali NEGOTIATION
Maria K VenereRussiaStephen Shaw PROPOSAL
Kaitlin I SaylorsJapanAsiya Javayant UNQUALIFIED
Alejandro T CaldareraFranceAsiya Javayant QUALIFIED
Claire V RulapaughArgentinaXuxue Feng UNQUALIFIED
Arvin U NickaArgentinaXuxue Feng QUALIFIED
Ricardo B KuskoAustraliaIoni Bowcher QUALIFIED
Kaitlin I StensethSpainXuxue Feng UNQUALIFIED
Smith O AlbaresCanadaOnyama Limba QUALIFIED
Mayumi V OldroydCanadaIvan Magalhaes NEW
Frozen Columns
Name
Maria E Waycott
Smith P Ferencz
Salvatore P Slusarski
Kadeem V Perin
Kadeem S Maclead
Juan D Ferencz
Adams E Maclead
Johnson M Nicka
Cody E Caldarera
Johnson U Tollner
Johnson M Vocelka
Ricardo B Nestle
Stacey U Inouye
Claire U Butt
Darci G Caudy
Francesco I Iturbide
Costa K Gillian
Jennifer U Saylors
Isabel T Garufi
Sinclair J Rim
Johnson D Shinko
Ivar K Rim
Kadeem T Ferencz
Adams V Garufi
Deepesh T Rulapaugh
Cody N Nicka
Ivar Z Malet
Ashley Y Maclead
Juan X Ferencz
Deepesh W Kusko
Ashley D Ostrosky
Ricardo L Inouye
Nicolas U Gillian
Aruna L Maclead
Costa S Gaucho
James N Iturbide
Ricardo O Slusarski
Antonio U Tollner
Aruna N Albares
Emily O Saylors
Murillo B Albares
Leon H Ostrosky
Ricardo E Campain
Isabel Q Vocelka
Rodrigues J Darakjy
Francesco A Kolmetz
Aika E Darakjy
Darci A Iturbide
Jefferson R Nestle
Octavia V Oldroyd
IdCountryDate
1000Australia2026-06-29
1001United Kingdom2026-06-28
1002France2026-07-02
1003United Kingdom2026-07-24
1004France2026-07-15
1005France2026-07-17
1006Brazil2026-07-08
1007Canada2026-07-22
1008Argentina2026-07-12
1009Russia2026-07-20
1010Russia2026-07-18
1011Brazil2026-07-24
1012Spain2026-07-19
1013Argentina2026-07-11
1014Italy2026-07-07
1015Argentina2026-07-15
1016Japan2026-07-15
1017Spain2026-07-04
1018United Kingdom2026-06-26
1019France2026-07-18
1020Spain2026-07-01
1021United Kingdom2026-07-24
1022United Kingdom2026-07-07
1023Argentina2026-07-15
1024France2026-06-30
1025Germany2026-06-27
1026Japan2026-07-02
1027Brazil2026-07-19
1028United Kingdom2026-07-23
1029France2026-07-10
1030Argentina2026-07-18
1031United Kingdom2026-07-15
1032Germany2026-06-30
1033Japan2026-06-26
1034Spain2026-07-03
1035Canada2026-07-11
1036Australia2026-07-21
1037India2026-06-30
1038Italy2026-07-17
1039Italy2026-07-07
1040Japan2026-07-16
1041Germany2026-07-14
1042Germany2026-07-08
1043Brazil2026-07-10
1044Argentina2026-07-07
1045Australia2026-07-12
1046India2026-07-18
1047India2026-07-06
1048Argentina2026-07-12
1049Germany2026-06-27

On-Demand Data

NameIdCountryDate
Faith X Doe1000Argentina2026-06-29
Costa J Butt1001Brazil2026-07-16
Isabel M Rim1002France2026-07-21
Aditya Y Bowley1003India2026-07-21
Aruna D Wieser1004France2026-06-28
Mujtaba C Ruta1005France2026-07-19
Claire S Figeroa1006Australia2026-07-17
James G Whobrey1007Germany2026-07-16
Greenwood C Inouye1008India2026-06-29
Silvio X Butt1009France2026-07-01
Aika A Perin1010Australia2026-07-18
Aika E Bowley1011Italy2026-07-06
Sinclair D Saylors1012Canada2026-07-10
Aika U Sergi1013Argentina2026-07-06
David R Iturbide1014Spain2026-07-10
Ivar D Figeroa1015Germany2026-06-26
Johnson Q Butt1016Russia2026-07-19
Emily F Nestle1017Australia2026-07-14
Aruna S Malet1018India2026-07-20
Silvio E Ostrosky1019India2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo A ChuiItalyStephen Shaw QUALIFIED
Leja I StockhamSpainOnyama Limba NEW
Ricardo V ButtRussiaXuxue Feng QUALIFIED
Wickens A StensethCanadaIoni Bowcher NEGOTIATION
Morrow Z NickaSpainXuxue Feng NEW
Nicolas F KuskoArgentinaAmy Elsner PROPOSAL
Francesco R GlickGermanyOnyama Limba QUALIFIED
Ashley E RoysterSpainAsiya Javayant RENEWAL
Kadeem E TollnerUnited KingdomIvan Magalhaes PROPOSAL
Ashley S BologniaGermanyXuxue Feng QUALIFIED
Francesco N WhobreySpainAmy Elsner RENEWAL
Aruna O AlbaresSpainIoni Bowcher PROPOSAL
Mujtaba A RulapaughGermanyIoni Bowcher RENEWAL
Ricardo J KolmetzIndiaAsiya Javayant NEW
Smith Y DarakjyFranceStephen Shaw UNQUALIFIED
Silvio L BriddickFranceOnyama Limba NEW
David L OstroskyJapanBernardo Dominic NEW
Salvatore D CaldareraItalyElwin Sharvill PROPOSAL
Ricardo F GauchoSpainBernardo Dominic NEGOTIATION
Jeanfrancois J PoquetteBrazilAsiya Javayant RENEWAL
Maria J CampainSpainXuxue Feng NEW
Kadeem A FerenczSpainOnyama Limba NEW
Mujtaba D KuskoCanadaElwin Sharvill PROPOSAL
Leja D MacleadBrazilAsiya Javayant NEW
Jeanfrancois B RimFranceOnyama Limba RENEWAL
Misaki O DilliardRussiaXuxue Feng NEW
Morrow Y MorascaFranceStephen Shaw NEGOTIATION
Chavez O NickaSpainAsiya Javayant PROPOSAL
Maisha T FlosiBrazilIvan Magalhaes QUALIFIED
Arvin I CampainJapanOnyama Limba RENEWAL
Cody B IturbideAustraliaOnyama Limba QUALIFIED
Adams V VenereGermanyAmy Elsner NEGOTIATION
Tony A MaletFranceAmy Elsner PROPOSAL
Leja F PerinUnited KingdomIvan Magalhaes NEGOTIATION
Faith R WhobreyAustraliaStephen Shaw UNQUALIFIED
Rodrigues W DarakjyGermanyStephen Shaw UNQUALIFIED
Leja X MacleadRussiaStephen Shaw NEGOTIATION
Alejandro V FigeroaRussiaIoni Bowcher NEW
Costa A SlusarskiBrazilAnna Fali RENEWAL
Nicolas W PerinBrazilStephen Shaw QUALIFIED

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