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
Aditya R ShinkoItalyIvan Magalhaes RENEWAL
Silvio T GarufiSpainStephen Shaw NEW
Francesco P VenereFranceXuxue Feng QUALIFIED
Mujtaba S OstroskyArgentinaIvan Magalhaes NEGOTIATION
Chavez Q CaudyJapanAmy Elsner PROPOSAL
Costa U AlbaresAustraliaAmy Elsner PROPOSAL
Stacey D OstroskyAustraliaElwin Sharvill UNQUALIFIED
Jefferson V MaletAustraliaIoni Bowcher UNQUALIFIED
Rodrigues I KuskoUnited KingdomStephen Shaw UNQUALIFIED
Kadeem C GillianUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues G PoquetteUnited KingdomXuxue Feng NEW
Sinclair Z PoquetteFranceOnyama Limba NEGOTIATION
James Z StensethAustraliaIoni Bowcher QUALIFIED
Izzy U BriddickUnited KingdomBernardo Dominic NEW
Antonio C AmigonGermanyAmy Elsner QUALIFIED
Emily W FerenczArgentinaIoni Bowcher RENEWAL
Darci P ShinkoIndiaAsiya Javayant RENEWAL
Jefferson U StensethBrazilElwin Sharvill NEW
Maisha T WaycottJapanIvan Magalhaes RENEWAL
Julie N SergiIndiaAsiya Javayant NEW
Jefferson P RoysterSpainAsiya Javayant PROPOSAL
Murillo A PaprockiRussiaIoni Bowcher NEW
Jefferson V CaudyBrazilAnna Fali QUALIFIED
Jennifer A InouyeArgentinaAsiya Javayant NEGOTIATION
Murillo I CaldareraJapanOnyama Limba NEGOTIATION
Adams E ChuiRussiaStephen Shaw PROPOSAL
Rodrigues X MaletBrazilAmy Elsner RENEWAL
Claire X InouyeRussiaIvan Magalhaes RENEWAL
Adams O NestleSpainAmy Elsner QUALIFIED
James T BowleyItalyStephen Shaw PROPOSAL
Maria A RulapaughFranceIoni Bowcher QUALIFIED
Jefferson F SergiAustraliaStephen Shaw PROPOSAL
Adams W BologniaGermanyBernardo Dominic PROPOSAL
Morrow D NickaBrazilBernardo Dominic NEW
Francesco W FlosiFranceIoni Bowcher NEW
Clifford Q WhobreyAustraliaAnna Fali UNQUALIFIED
Aditya S GlickRussiaAmy Elsner PROPOSAL
Misaki G StockhamSpainAnna Fali RENEWAL
Wickens J KolmetzSpainStephen Shaw NEGOTIATION
Alejandro U DoeArgentinaOnyama Limba UNQUALIFIED
Nicolas N MarrierFranceElwin Sharvill QUALIFIED
Faith G IturbideFranceAsiya Javayant NEW
Morrow X FlosiFranceStephen Shaw UNQUALIFIED
Clifford H RutaJapanAnna Fali NEGOTIATION
Morrow K ChuiRussiaXuxue Feng NEGOTIATION
Costa O BowleyArgentinaOnyama Limba RENEWAL
Smith I MarrierBrazilAnna Fali UNQUALIFIED
Clifford H WhobreySpainIvan Magalhaes RENEWAL
Isabel X MacleadBrazilElwin Sharvill NEGOTIATION
Jennifer P VocelkaSpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel O SchemmerCanadaIvan Magalhaes PROPOSAL
Jennifer V PoquetteJapanOnyama Limba QUALIFIED
Costa D MarrierArgentinaXuxue Feng PROPOSAL
Sinclair F FollerIndiaElwin Sharvill QUALIFIED
Arvin R MaletGermanyAsiya Javayant UNQUALIFIED
Rodrigues E GauchoFranceElwin Sharvill UNQUALIFIED
Mujtaba S SchemmerAustraliaAmy Elsner QUALIFIED
Francesco L GlickCanadaOnyama Limba NEGOTIATION
Rodrigues P OldroydSpainIvan Magalhaes UNQUALIFIED
Clifford L KolmetzArgentinaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey E SchemmerJapan2026-08-22Rangoni Of Florence RENEWAL45Ivan Magalhaes
1001Julie T SlusarskiAustralia2026-07-30Morlong Associates NEGOTIATION68Bernardo Dominic
1002Octavia B ChuiSpain2026-08-14Morlong Associates QUALIFIED77Xuxue Feng
1003Emily W MaletGermany2026-08-01Morlong Associates NEGOTIATION0Asiya Javayant
1004Faith N VocelkaItaly2026-08-08Commercial Press QUALIFIED19Onyama Limba
1005Chavez B ShinkoItaly2026-08-22Buckley Miller Wright RENEWAL33Xuxue Feng
1006Johnson I SaylorsAustralia2026-08-22Rangoni Of Florence UNQUALIFIED80Amy Elsner
1007Munro X MarrierIndia2026-08-05Commercial Press UNQUALIFIED21Anna Fali
1008Smith E AlbaresUnited Kingdom2026-08-08Chanay, Jeffrey A Esq NEGOTIATION24Bernardo Dominic
1009Greenwood R ButtArgentina2026-08-08Chemel, James L Cpa NEGOTIATION44Amy Elsner
1010Aika M BowleyRussia2026-08-05Feltz Printing Service PROPOSAL4Asiya Javayant
1011Maria N StensethBrazil2026-08-03Rangoni Of Florence NEW36Ivan Magalhaes
1012Jones X SergiGermany2026-08-07Feiner Bros NEGOTIATION44Ioni Bowcher
1013Mujtaba L InouyeGermany2026-08-04Chemel, James L Cpa NEGOTIATION58Anna Fali
1014Maisha C CampainCanada2026-08-20Dorl, James J Esq QUALIFIED44Xuxue Feng
1015Leja V BriddickGermany2026-08-09Chapman, Ross E Esq NEGOTIATION47Stephen Shaw
1016Maisha L GlickCanada2026-08-03Rangoni Of Florence QUALIFIED45Asiya Javayant
1017Tony U BowleyCanada2026-08-07Morlong Associates NEGOTIATION66Anna Fali
1018Mayumi Q VenereJapan2026-08-08Benton, John B Jr PROPOSAL45Ivan Magalhaes
1019Claire L GlickUnited Kingdom2026-08-14Buckley Miller Wright NEW99Onyama Limba
1020Cody I DarakjyUnited Kingdom2026-08-21Feltz Printing Service NEGOTIATION74Elwin Sharvill
1021Johnson Y RimAustralia2026-07-31Truhlar And Truhlar Attys UNQUALIFIED8Asiya Javayant
1022Jones I TollnerIndia2026-08-25Feiner Bros QUALIFIED83Elwin Sharvill
1023Deepesh L CampainArgentina2026-08-17King, Christopher A Esq NEGOTIATION81Amy Elsner
1024Ricardo O PerinUnited Kingdom2026-08-13Printing Dimensions NEGOTIATION94Ivan Magalhaes
1025Chavez P SergiItaly2026-08-15Rangoni Of Florence NEW96Anna Fali
1026Costa I BowleyAustralia2026-07-30Feltz Printing Service QUALIFIED84Ioni Bowcher
1027Stacey S CaldareraBrazil2026-08-17Chemel, James L Cpa RENEWAL20Anna Fali
1028James B FollerGermany2026-08-06Truhlar And Truhlar Attys PROPOSAL46Ioni Bowcher
1029Maisha H BologniaUnited Kingdom2026-08-01Feiner Bros UNQUALIFIED8Stephen Shaw
1030Mayumi M WaycottIndia2026-07-30King, Christopher A Esq QUALIFIED30Bernardo Dominic
1031Emily S RulapaughAustralia2026-08-18Morlong Associates PROPOSAL24Onyama Limba
1032Aika N RutaItaly2026-07-30Chemel, James L Cpa PROPOSAL49Ivan Magalhaes
1033David H SchemmerGermany2026-07-31Dorl, James J Esq NEW2Asiya Javayant
1034Nicolas Z SaylorsRussia2026-08-17Chanay, Jeffrey A Esq UNQUALIFIED1Asiya Javayant
1035Antonio K CaudyArgentina2026-08-01Morlong Associates RENEWAL14Xuxue Feng
1036Deepesh W SchemmerItaly2026-08-10Benton, John B Jr QUALIFIED77Ioni Bowcher
1037Jones A FerenczBrazil2026-08-18Truhlar And Truhlar Attys NEW64Onyama Limba
1038Costa Y WhobreyAustralia2026-08-08Feiner Bros RENEWAL15Ivan Magalhaes
1039Mujtaba C BriddickSpain2026-08-07Chanay, Jeffrey A Esq NEGOTIATION55Ioni Bowcher
1040Adams E WieserSpain2026-08-10Truhlar And Truhlar Attys NEW75Xuxue Feng
1041Arvin V GarufiJapan2026-08-23Feltz Printing Service NEW92Anna Fali
1042Aruna E VocelkaItaly2026-08-20Feltz Printing Service UNQUALIFIED62Elwin Sharvill
1043Leja G GauchoGermany2026-08-03Chemel, James L Cpa QUALIFIED95Ioni Bowcher
1044Arvin V WieserBrazil2026-08-14Rangoni Of Florence NEGOTIATION9Ivan Magalhaes
1045David I TollnerRussia2026-08-17King, Christopher A Esq NEGOTIATION40Stephen Shaw
1046Aditya V InouyeBrazil2026-08-24Commercial Press NEW8Anna Fali
1047Nicolas F WaycottCanada2026-08-11Rangoni Of Florence UNQUALIFIED38Amy Elsner
1048Ashley R MaletCanada2026-08-21Benton, John B Jr NEGOTIATION15Ivan Magalhaes
1049Greenwood P GlickUnited Kingdom2026-08-02Dorl, James J Esq NEW92Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Z IturbideFranceOnyama Limba NEW
Jeanfrancois N MaletCanadaAmy Elsner PROPOSAL
Johnson M MaletBrazilStephen Shaw NEGOTIATION
Deepesh J PaprockiGermanyXuxue Feng RENEWAL
Ivar R StensethItalyOnyama Limba NEGOTIATION
Adams T RulapaughFranceIoni Bowcher RENEWAL
Maria X SergiGermanyStephen Shaw NEW
Deepesh M StockhamUnited KingdomOnyama Limba PROPOSAL
Izzy U SchemmerJapanIvan Magalhaes PROPOSAL
Kaitlin A BologniaSpainElwin Sharvill QUALIFIED
Stacey Q WieserRussiaIvan Magalhaes QUALIFIED
Faith Q FollerIndiaIvan Magalhaes UNQUALIFIED
Johnson M OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba G GauchoItalyAmy Elsner NEW
Cody O CaldareraAustraliaAnna Fali QUALIFIED
Rodrigues Q DarakjyItalyBernardo Dominic QUALIFIED
Octavia I IturbideCanadaStephen Shaw UNQUALIFIED
Emily C MorascaItalyAnna Fali NEGOTIATION
Faith I FollerBrazilAmy Elsner UNQUALIFIED
Ricardo C StockhamRussiaXuxue Feng NEGOTIATION
Greenwood X FigeroaBrazilXuxue Feng UNQUALIFIED
Tony D KolmetzBrazilXuxue Feng NEW
Silvio G SlusarskiJapanXuxue Feng NEGOTIATION
Juan G SchemmerCanadaElwin Sharvill PROPOSAL
Leon B MacleadBrazilAsiya Javayant QUALIFIED
Arvin M SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Claire T SlusarskiItalyAsiya Javayant NEW
Alejandro B RulapaughGermanyAnna Fali NEGOTIATION
Aika M ShinkoSpainElwin Sharvill RENEWAL
Clifford H InouyeBrazilIoni Bowcher NEGOTIATION
Adams Q RimFranceStephen Shaw QUALIFIED
Cody C CaudyFranceBernardo Dominic PROPOSAL
Aruna W InouyeIndiaBernardo Dominic NEW
Stacey I ShinkoCanadaAsiya Javayant NEW
Arvin O VenereCanadaOnyama Limba QUALIFIED
Darci L MorascaCanadaBernardo Dominic QUALIFIED
Murillo J PoquetteGermanyBernardo Dominic NEW
Rodrigues W FollerRussiaIvan Magalhaes NEW
Munro L SaylorsIndiaOnyama Limba NEGOTIATION
Arvin E GauchoAustraliaStephen Shaw QUALIFIED
Deepesh D ChuiIndiaXuxue Feng NEW
Jefferson E SchemmerRussiaAsiya Javayant PROPOSAL
Deepesh A GauchoIndiaIoni Bowcher RENEWAL
Murillo E CampainGermanyAsiya Javayant NEGOTIATION
Munro S ButtIndiaIoni Bowcher UNQUALIFIED
Stacey F MarrierItalyStephen Shaw PROPOSAL
Leja U MacleadAustraliaXuxue Feng NEW
Darci N OstroskyUnited KingdomXuxue Feng NEGOTIATION
Chavez M RulapaughJapanStephen Shaw RENEWAL
Chavez F RulapaughUnited KingdomAnna Fali NEGOTIATION
Frozen Columns
Name
Wickens U Maclead
Morrow H Wieser
Sinclair I Rim
Adams C Ostrosky
Leja S Iturbide
Emily B Shinko
Maria E Bolognia
Mayumi V Iturbide
Jennifer T Tollner
Aruna Z Wieser
Aditya N Ostrosky
Morrow Z Rim
Jennifer T Whobrey
Kadeem M Amigon
Aika Q Whobrey
Jeanfrancois G Sergi
Arvin B Malet
Emily B Paprocki
Smith D Oldroyd
Emily D Poquette
Emily F Perin
James G Foller
Chavez G Marrier
James S Garufi
Alejandro I Foller
Leja Q Tollner
Kadeem A Chui
Maisha W Caldarera
Kaitlin D Wieser
Greenwood O Oldroyd
Faith A Slusarski
David K Bowley
Kadeem C Flosi
Alejandro C Briddick
Maria G Royster
Munro Y Chui
Maria Y Rulapaugh
Octavia L Gaucho
Murillo K Tollner
Nicolas J Waycott
Isabel G Poquette
Faith F Glick
Ashley Y Rim
Darci S Paprocki
Aika E Dilliard
Silvio V Ruta
Greenwood J Rulapaugh
Julie A Rulapaugh
Jones C Foller
Jeanfrancois J Malet
IdCountryDate
1000Canada2026-08-13
1001United Kingdom2026-08-20
1002Germany2026-08-09
1003Japan2026-08-24
1004United Kingdom2026-08-12
1005Japan2026-07-30
1006Russia2026-08-19
1007Russia2026-08-24
1008France2026-08-25
1009Italy2026-08-03
1010Germany2026-08-21
1011Brazil2026-08-09
1012Russia2026-08-24
1013Italy2026-08-09
1014Canada2026-08-03
1015Japan2026-08-24
1016United Kingdom2026-08-17
1017Germany2026-08-24
1018Brazil2026-08-01
1019Germany2026-07-31
1020Argentina2026-08-10
1021United Kingdom2026-08-09
1022Australia2026-08-13
1023Canada2026-07-31
1024Japan2026-08-07
1025Australia2026-08-16
1026Canada2026-08-08
1027Argentina2026-08-08
1028Brazil2026-08-25
1029Germany2026-07-30
1030Russia2026-08-24
1031Canada2026-08-08
1032France2026-08-23
1033Australia2026-08-24
1034India2026-08-04
1035India2026-08-19
1036Spain2026-08-03
1037France2026-08-21
1038Argentina2026-08-11
1039United Kingdom2026-08-19
1040Argentina2026-08-21
1041Brazil2026-08-19
1042Germany2026-08-09
1043Germany2026-08-27
1044Italy2026-08-09
1045Australia2026-08-14
1046Russia2026-08-15
1047France2026-08-25
1048Italy2026-07-30
1049Italy2026-08-15

On-Demand Data

NameIdCountryDate
Deepesh A Darakjy1000Spain2026-08-06
James T Perin1001Japan2026-08-12
Smith H Sergi1002Germany2026-08-18
Julie L Glick1003Canada2026-08-16
Claire D Inouye1004Brazil2026-08-28
Chavez I Stockham1005Brazil2026-08-16
David Q Waycott1006United Kingdom2026-08-25
Francesco X Darakjy1007Japan2026-08-08
Costa N Waycott1008France2026-08-10
Maisha O Shinko1009Spain2026-07-31
Murillo K Chui1010Italy2026-08-15
Antonio Z Butt1011Argentina2026-08-01
Arvin L Rim1012India2026-08-01
Darci M Malet1013Argentina2026-07-31
James U Gillian1014Australia2026-07-31
Cody Z Nestle1015Japan2026-07-31
Alejandro S Garufi1016Germany2026-08-24
Clifford F Stenseth1017Australia2026-08-02
Faith X Dilliard1018Russia2026-08-14
Greenwood V Waycott1019Canada2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci Z ButtFranceAmy Elsner RENEWAL
Maria B FlosiAustraliaStephen Shaw QUALIFIED
Aruna I MarrierAustraliaOnyama Limba QUALIFIED
Murillo E PaprockiUnited KingdomAmy Elsner PROPOSAL
Murillo O StensethArgentinaElwin Sharvill NEGOTIATION
Aruna J RoysterBrazilOnyama Limba QUALIFIED
Leon F DoeArgentinaAsiya Javayant QUALIFIED
Tony Z CaudyAustraliaAmy Elsner UNQUALIFIED
Kadeem X AlbaresItalyBernardo Dominic NEW
Ivar U MorascaItalyOnyama Limba NEW
Aditya X MorascaGermanyStephen Shaw NEGOTIATION
James G VocelkaArgentinaOnyama Limba RENEWAL
Faith M NestleRussiaOnyama Limba NEW
Chavez O ShinkoBrazilAmy Elsner RENEWAL
Claire M IturbideBrazilElwin Sharvill NEGOTIATION
Ivar D DilliardAustraliaXuxue Feng UNQUALIFIED
Octavia B OstroskyIndiaAsiya Javayant NEGOTIATION
Izzy Z CampainBrazilAmy Elsner QUALIFIED
Wickens O DoeItalyStephen Shaw RENEWAL
Leja D TollnerRussiaAnna Fali UNQUALIFIED
Jennifer V PoquetteBrazilStephen Shaw UNQUALIFIED
Morrow R FlosiItalyOnyama Limba UNQUALIFIED
Izzy U RoysterFranceBernardo Dominic RENEWAL
Aika E GillianItalyXuxue Feng NEGOTIATION
Octavia V SlusarskiGermanyAsiya Javayant PROPOSAL
Antonio P KolmetzAustraliaAmy Elsner NEGOTIATION
Costa V MaletAustraliaIvan Magalhaes QUALIFIED
James B KolmetzFranceXuxue Feng PROPOSAL
Cody W PerinBrazilAsiya Javayant RENEWAL
Mayumi V IturbideCanadaAsiya Javayant UNQUALIFIED
Johnson D FlosiUnited KingdomOnyama Limba NEW
Isabel U WhobreyArgentinaIvan Magalhaes NEW
Francesco S PaprockiItalyOnyama Limba NEW
Maisha Q FerenczArgentinaElwin Sharvill RENEWAL
Julie G StensethAustraliaBernardo Dominic QUALIFIED
Izzy I KolmetzRussiaIvan Magalhaes NEGOTIATION
Adams O RulapaughSpainElwin Sharvill NEW
Nicolas X RimJapanElwin Sharvill PROPOSAL
Nicolas D BriddickCanadaXuxue Feng QUALIFIED
Mujtaba M RutaAustraliaStephen Shaw 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>