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
Darci L IturbideArgentinaIoni Bowcher NEW
Arvin K RoysterBrazilAnna Fali NEGOTIATION
Misaki C AmigonIndiaStephen Shaw PROPOSAL
Jeanfrancois C MaletItalyXuxue Feng UNQUALIFIED
Smith T CaldareraItalyAmy Elsner PROPOSAL
Nicolas R SaylorsGermanyAmy Elsner RENEWAL
Deepesh J MarrierFranceBernardo Dominic PROPOSAL
Misaki V MarrierGermanyAnna Fali UNQUALIFIED
Aditya K MacleadFranceAsiya Javayant UNQUALIFIED
Cody M RutaSpainAnna Fali UNQUALIFIED
Kaitlin K NestleSpainStephen Shaw PROPOSAL
Morrow G RimBrazilElwin Sharvill NEGOTIATION
Jefferson Z MaletArgentinaAsiya Javayant NEW
Misaki N MarrierFranceXuxue Feng UNQUALIFIED
Darci T MacleadCanadaAsiya Javayant QUALIFIED
Mayumi X FerenczArgentinaAnna Fali PROPOSAL
Silvio X CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Emily R VenereGermanyIoni Bowcher UNQUALIFIED
Juan Y MacleadBrazilStephen Shaw QUALIFIED
Claire S BowleyBrazilAsiya Javayant RENEWAL
Johnson A NickaUnited KingdomXuxue Feng UNQUALIFIED
Morrow I CampainSpainAsiya Javayant PROPOSAL
Jeanfrancois Z SergiJapanIoni Bowcher UNQUALIFIED
Francesco W PoquetteGermanyAmy Elsner RENEWAL
Chavez F GarufiSpainBernardo Dominic PROPOSAL
Sinclair R DarakjyBrazilOnyama Limba PROPOSAL
Francesco S PerinFranceOnyama Limba RENEWAL
Faith K RimFranceXuxue Feng RENEWAL
Aika R FigeroaIndiaOnyama Limba QUALIFIED
Murillo V PoquetteSpainStephen Shaw PROPOSAL
Salvatore P SergiCanadaOnyama Limba UNQUALIFIED
Cody Y StensethUnited KingdomOnyama Limba RENEWAL
Morrow I MaletAustraliaElwin Sharvill PROPOSAL
Murillo P MorascaFranceXuxue Feng RENEWAL
Darci J FerenczAustraliaAmy Elsner UNQUALIFIED
Deepesh F FollerAustraliaElwin Sharvill NEW
Kaitlin T AmigonSpainOnyama Limba NEGOTIATION
Antonio F StockhamCanadaIvan Magalhaes NEW
Deepesh E BologniaRussiaBernardo Dominic NEGOTIATION
Costa X ChuiSpainAmy Elsner NEGOTIATION
Johnson H MarrierAustraliaElwin Sharvill NEW
Isabel I PaprockiGermanyAmy Elsner NEGOTIATION
Julie F PaprockiRussiaBernardo Dominic PROPOSAL
Silvio T OstroskyCanadaStephen Shaw UNQUALIFIED
Morrow U FollerIndiaIvan Magalhaes RENEWAL
Stacey D CaldareraArgentinaXuxue Feng UNQUALIFIED
Salvatore B RulapaughIndiaIoni Bowcher QUALIFIED
Antonio J PoquetteAustraliaOnyama Limba NEGOTIATION
Jones B TollnerFranceAsiya Javayant NEGOTIATION
Misaki R PoquetteRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow W MacleadSpainIoni Bowcher UNQUALIFIED
Ricardo L ButtAustraliaXuxue Feng PROPOSAL
Kaitlin Q MacleadSpainElwin Sharvill NEW
Stacey V CaudyBrazilIoni Bowcher QUALIFIED
Alejandro O StensethCanadaOnyama Limba RENEWAL
Aruna G StensethJapanOnyama Limba PROPOSAL
Jennifer M MacleadJapanAsiya Javayant NEW
Salvatore G ButtBrazilOnyama Limba UNQUALIFIED
Maria P MaletArgentinaXuxue Feng RENEWAL
Francesco M GillianJapanElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois M WieserItaly2026-07-10Truhlar And Truhlar Attys NEGOTIATION72Asiya Javayant
1001Leja N MarrierIndia2026-07-23Printing Dimensions NEGOTIATION55Elwin Sharvill
1002Maisha I MaletBrazil2026-07-13Rousseaux, Michael Esq NEW51Ivan Magalhaes
1003Emily Q MaletUnited Kingdom2026-07-30Rousseaux, Michael Esq PROPOSAL11Xuxue Feng
1004Isabel F FollerJapan2026-07-13Feltz Printing Service NEW78Anna Fali
1005Isabel O GarufiItaly2026-07-30Feiner Bros PROPOSAL44Xuxue Feng
1006Leja P CaldareraSpain2026-07-03Commercial Press QUALIFIED93Asiya Javayant
1007Sinclair B DoeItaly2026-07-11King, Christopher A Esq NEGOTIATION67Xuxue Feng
1008Misaki B GlickAustralia2026-07-18Rousseaux, Michael Esq NEGOTIATION28Ioni Bowcher
1009Jeanfrancois P DilliardArgentina2026-07-04Chemel, James L Cpa RENEWAL6Ivan Magalhaes
1010Ricardo A StensethUnited Kingdom2026-07-29King, Christopher A Esq QUALIFIED80Anna Fali
1011Clifford F SergiGermany2026-07-08Printing Dimensions QUALIFIED50Stephen Shaw
1012Ashley D MaletUnited Kingdom2026-07-10Rousseaux, Michael Esq UNQUALIFIED4Stephen Shaw
1013Chavez T MorascaIndia2026-07-08Chemel, James L Cpa RENEWAL2Bernardo Dominic
1014Clifford O SaylorsGermany2026-07-17Printing Dimensions NEGOTIATION46Anna Fali
1015Mujtaba U SchemmerCanada2026-07-25Chapman, Ross E Esq RENEWAL28Bernardo Dominic
1016Aika E PerinArgentina2026-07-12Buckley Miller Wright PROPOSAL59Amy Elsner
1017Deepesh M FigeroaSpain2026-07-20Feiner Bros NEGOTIATION40Ioni Bowcher
1018Ricardo R RoysterAustralia2026-07-10Buckley Miller Wright UNQUALIFIED16Onyama Limba
1019Arvin L NickaArgentina2026-07-05Truhlar And Truhlar Attys PROPOSAL64Elwin Sharvill
1020Alejandro Z RulapaughIndia2026-07-15Benton, John B Jr UNQUALIFIED98Anna Fali
1021Jefferson H SaylorsAustralia2026-07-29Truhlar And Truhlar Attys UNQUALIFIED17Amy Elsner
1022Isabel Q TollnerRussia2026-07-28Buckley Miller Wright RENEWAL78Onyama Limba
1023Munro O PaprockiAustralia2026-07-04Commercial Press PROPOSAL30Ioni Bowcher
1024James N ShinkoIndia2026-07-04Morlong Associates UNQUALIFIED45Amy Elsner
1025Izzy K NestleRussia2026-07-26Chanay, Jeffrey A Esq NEW21Onyama Limba
1026Munro T IturbideFrance2026-07-24Truhlar And Truhlar Attys QUALIFIED34Stephen Shaw
1027Greenwood S WhobreySpain2026-07-17Chapman, Ross E Esq QUALIFIED55Ivan Magalhaes
1028Izzy H SlusarskiFrance2026-07-22Printing Dimensions QUALIFIED61Asiya Javayant
1029Wickens W InouyeUnited Kingdom2026-07-21Feltz Printing Service UNQUALIFIED78Ivan Magalhaes
1030Arvin K SchemmerBrazil2026-07-21Buckley Miller Wright UNQUALIFIED90Ivan Magalhaes
1031Wickens O KuskoJapan2026-07-09Chapman, Ross E Esq RENEWAL56Onyama Limba
1032Ivar G SlusarskiBrazil2026-07-07Rangoni Of Florence QUALIFIED82Bernardo Dominic
1033Mujtaba T GillianAustralia2026-07-22Feltz Printing Service NEW50Xuxue Feng
1034Clifford W VenereAustralia2026-07-14Chemel, James L Cpa UNQUALIFIED65Asiya Javayant
1035Ashley J BriddickGermany2026-07-31Benton, John B Jr NEW25Elwin Sharvill
1036Misaki V OldroydFrance2026-07-28Chapman, Ross E Esq NEGOTIATION34Onyama Limba
1037Munro W BriddickSpain2026-07-04Rangoni Of Florence PROPOSAL41Asiya Javayant
1038Antonio O NestleGermany2026-07-14Benton, John B Jr NEW13Elwin Sharvill
1039Sinclair H FerenczRussia2026-07-18Chanay, Jeffrey A Esq NEW28Bernardo Dominic
1040Ivar N NestleRussia2026-07-04Benton, John B Jr RENEWAL56Stephen Shaw
1041Greenwood C PoquetteArgentina2026-07-15Feiner Bros NEGOTIATION91Ioni Bowcher
1042Antonio X SlusarskiIndia2026-07-19King, Christopher A Esq NEW99Asiya Javayant
1043Salvatore Z RoysterAustralia2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED25Asiya Javayant
1044Francesco O SchemmerIndia2026-07-30Dorl, James J Esq NEGOTIATION57Xuxue Feng
1045Tony Y OldroydIndia2026-07-09Commercial Press UNQUALIFIED14Ivan Magalhaes
1046Kadeem G NickaItaly2026-07-31Commercial Press PROPOSAL27Ivan Magalhaes
1047Costa S GillianSpain2026-07-20Dorl, James J Esq NEGOTIATION57Amy Elsner
1048Wickens G OstroskyBrazil2026-07-11Truhlar And Truhlar Attys QUALIFIED0Anna Fali
1049Costa H MacleadGermany2026-07-16Commercial Press NEW34Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Deepesh G ChuiGermanyIoni Bowcher RENEWAL
Salvatore J ChuiUnited KingdomXuxue Feng QUALIFIED
Claire J OldroydAustraliaStephen Shaw QUALIFIED
Cody R MaletUnited KingdomElwin Sharvill PROPOSAL
Stacey X RoysterArgentinaAsiya Javayant UNQUALIFIED
Mujtaba T VocelkaSpainAmy Elsner NEW
Darci E IturbideJapanBernardo Dominic RENEWAL
Maria U IturbideCanadaBernardo Dominic RENEWAL
Tony G MorascaArgentinaStephen Shaw UNQUALIFIED
Rodrigues E FollerCanadaXuxue Feng NEW
Arvin H RulapaughBrazilElwin Sharvill NEGOTIATION
Aditya G CaldareraFranceAnna Fali UNQUALIFIED
Julie V CampainBrazilStephen Shaw PROPOSAL
Octavia J GauchoIndiaAnna Fali NEW
Leon W PoquetteIndiaXuxue Feng NEGOTIATION
Ashley S FerenczUnited KingdomBernardo Dominic PROPOSAL
Sinclair S ChuiSpainAsiya Javayant PROPOSAL
Aditya A DarakjyBrazilOnyama Limba QUALIFIED
Maria X WaycottBrazilXuxue Feng NEGOTIATION
Kaitlin N InouyeArgentinaIvan Magalhaes RENEWAL
Greenwood E RutaSpainIvan Magalhaes PROPOSAL
Mujtaba K AlbaresItalyAnna Fali QUALIFIED
Francesco O MaletGermanyXuxue Feng QUALIFIED
Francesco D KolmetzArgentinaAsiya Javayant NEGOTIATION
Aditya Q RoysterAustraliaAnna Fali PROPOSAL
Tony B DarakjyUnited KingdomOnyama Limba NEGOTIATION
Faith E MaletUnited KingdomAnna Fali UNQUALIFIED
David H PerinRussiaAmy Elsner QUALIFIED
Munro E GauchoCanadaOnyama Limba RENEWAL
Mayumi V RutaIndiaElwin Sharvill NEGOTIATION
Alejandro H RulapaughCanadaBernardo Dominic RENEWAL
Jones E NickaAustraliaBernardo Dominic UNQUALIFIED
Francesco C CampainArgentinaElwin Sharvill RENEWAL
Murillo Y OldroydRussiaAmy Elsner RENEWAL
Adams P CaudyFranceAsiya Javayant RENEWAL
Deepesh R BologniaCanadaIoni Bowcher PROPOSAL
Wickens J MorascaJapanBernardo Dominic UNQUALIFIED
Chavez N ButtGermanyIvan Magalhaes PROPOSAL
Aika E PoquetteFranceAmy Elsner NEGOTIATION
Arvin X DoeBrazilAsiya Javayant NEW
Mayumi A FlosiFranceAmy Elsner NEGOTIATION
Misaki G KolmetzArgentinaStephen Shaw UNQUALIFIED
Clifford M IturbideAustraliaBernardo Dominic NEGOTIATION
Jefferson F SchemmerUnited KingdomAmy Elsner QUALIFIED
Darci H NickaJapanAsiya Javayant QUALIFIED
Johnson O GlickSpainAmy Elsner PROPOSAL
Silvio R ChuiArgentinaIoni Bowcher NEW
Greenwood V GlickUnited KingdomXuxue Feng UNQUALIFIED
Aruna B BologniaBrazilAnna Fali QUALIFIED
Ashley U MarrierFranceStephen Shaw RENEWAL
Frozen Columns
Name
Misaki Y Paprocki
Francesco B Figeroa
Julie M Poquette
Emily H Shinko
Claire N Gillian
Claire M Gillian
Leja C Dilliard
Greenwood O Schemmer
Claire Z Nicka
Claire A Morasca
Darci I Iturbide
Leja G Stockham
Mayumi J Sergi
James R Iturbide
Ashley I Whobrey
Greenwood G Rim
Emily I Perin
Darci V Tollner
Alejandro R Butt
Aditya Q Chui
Alejandro K Malet
Mayumi C Figeroa
Misaki E Rulapaugh
Clifford F Gillian
Smith Q Whobrey
Mayumi H Chui
Leon O Caldarera
Munro V Campain
Ivar I Stenseth
Aika J Morasca
Antonio Q Iturbide
Izzy C Tollner
Claire M Paprocki
Leja I Campain
Jennifer I Ostrosky
Octavia M Figeroa
Faith H Tollner
Claire C Flosi
Arvin B Darakjy
Greenwood X Sergi
Wickens T Waycott
Isabel U Malet
Greenwood F Rulapaugh
Jones D Malet
Aruna T Sergi
Jeanfrancois Z Gaucho
Claire I Amigon
David X Darakjy
Antonio H Butt
Maria H Campain
IdCountryDate
1000United Kingdom2026-07-29
1001India2026-07-26
1002France2026-07-03
1003Germany2026-07-23
1004Australia2026-07-25
1005Canada2026-07-05
1006Canada2026-07-08
1007Russia2026-07-23
1008Canada2026-07-09
1009Canada2026-07-31
1010United Kingdom2026-07-16
1011Japan2026-07-17
1012France2026-07-31
1013Australia2026-08-01
1014Italy2026-07-24
1015Brazil2026-07-13
1016Australia2026-07-12
1017Italy2026-07-11
1018France2026-07-30
1019India2026-07-05
1020Brazil2026-07-14
1021Russia2026-07-30
1022India2026-07-15
1023India2026-07-14
1024Canada2026-07-22
1025Canada2026-07-16
1026Japan2026-07-19
1027United Kingdom2026-07-13
1028Spain2026-07-07
1029Japan2026-08-01
1030Japan2026-07-24
1031India2026-07-17
1032Australia2026-07-06
1033France2026-07-07
1034India2026-07-10
1035Japan2026-07-16
1036Spain2026-07-11
1037Brazil2026-07-12
1038Italy2026-07-16
1039Argentina2026-07-14
1040Brazil2026-07-19
1041Germany2026-07-19
1042Canada2026-07-12
1043Australia2026-07-31
1044India2026-07-10
1045India2026-07-17
1046Japan2026-07-04
1047Germany2026-07-26
1048United Kingdom2026-07-22
1049Canada2026-07-11

On-Demand Data

NameIdCountryDate
Mayumi I Caudy1000Russia2026-07-24
Aika R Bolognia1001Italy2026-07-07
Claire J Shinko1002Brazil2026-07-11
Salvatore O Schemmer1003France2026-07-19
Isabel G Campain1004Australia2026-07-11
Smith Z Vocelka1005Canada2026-07-27
Kadeem I Venere1006Australia2026-07-23
Salvatore S Tollner1007France2026-07-10
Ricardo S Glick1008Argentina2026-07-09
Tony S Maclead1009Germany2026-07-11
Tony R Whobrey1010United Kingdom2026-07-26
David J Darakjy1011Argentina2026-07-31
Darci P Vocelka1012Spain2026-07-25
Claire M Kusko1013Germany2026-07-28
James L Amigon1014Australia2026-07-29
Jones R Oldroyd1015France2026-07-14
Arvin O Caudy1016Brazil2026-07-10
Faith C Campain1017Germany2026-07-26
Nicolas V Iturbide1018France2026-07-06
Jefferson Z Campain1019France2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson G FerenczGermanyIvan Magalhaes QUALIFIED
Izzy S RoysterUnited KingdomXuxue Feng QUALIFIED
Adams T StensethJapanXuxue Feng PROPOSAL
Misaki R MacleadFranceBernardo Dominic UNQUALIFIED
Misaki K PerinCanadaElwin Sharvill PROPOSAL
Leja V MacleadJapanIoni Bowcher NEGOTIATION
Morrow A FlosiArgentinaElwin Sharvill PROPOSAL
Aditya S StockhamSpainElwin Sharvill UNQUALIFIED
Chavez Z MorascaFranceXuxue Feng NEGOTIATION
Johnson P ButtArgentinaBernardo Dominic NEW
Jennifer J InouyeFranceIvan Magalhaes UNQUALIFIED
Leja C MaletFranceIvan Magalhaes NEGOTIATION
Chavez O KuskoCanadaAmy Elsner PROPOSAL
Darci K KuskoSpainStephen Shaw RENEWAL
Ashley X SchemmerRussiaStephen Shaw UNQUALIFIED
Darci X StensethGermanyIoni Bowcher UNQUALIFIED
Kadeem S NestleItalyXuxue Feng PROPOSAL
Jeanfrancois D SergiItalyStephen Shaw NEGOTIATION
Morrow L RimBrazilElwin Sharvill RENEWAL
Silvio R RimSpainStephen Shaw RENEWAL
Ashley U MaletArgentinaBernardo Dominic NEW
Emily E MarrierArgentinaXuxue Feng RENEWAL
Julie N PoquetteArgentinaIoni Bowcher RENEWAL
Kadeem D FerenczIndiaXuxue Feng NEW
Greenwood C IturbideAustraliaAsiya Javayant UNQUALIFIED
Munro X RulapaughArgentinaAmy Elsner PROPOSAL
Cody M WieserCanadaXuxue Feng NEW
Murillo A BologniaCanadaBernardo Dominic RENEWAL
Maisha T FigeroaSpainBernardo Dominic NEW
Morrow E RulapaughJapanOnyama Limba UNQUALIFIED
Leon G BowleyItalyXuxue Feng PROPOSAL
James H GauchoGermanyIvan Magalhaes NEGOTIATION
Greenwood I CaudyBrazilXuxue Feng QUALIFIED
Aruna N OldroydJapanAnna Fali UNQUALIFIED
Tony U BriddickIndiaAsiya Javayant NEGOTIATION
Jefferson I StensethAustraliaOnyama Limba NEW
Misaki C VenereJapanAsiya Javayant PROPOSAL
Francesco Q AmigonItalyElwin Sharvill NEW
Arvin K FollerSpainAmy Elsner RENEWAL
Maisha H InouyeArgentinaAnna Fali 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>