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
Kadeem Z FerenczArgentinaAmy Elsner NEGOTIATION
Kadeem F SlusarskiIndiaOnyama Limba PROPOSAL
Cody U KuskoUnited KingdomAnna Fali QUALIFIED
Isabel R RimUnited KingdomIoni Bowcher RENEWAL
Smith Y BologniaUnited KingdomElwin Sharvill NEGOTIATION
Maisha G BowleyFranceIvan Magalhaes NEW
Jefferson R BologniaRussiaElwin Sharvill PROPOSAL
Costa D GarufiAustraliaAnna Fali UNQUALIFIED
Francesco X MaletJapanIvan Magalhaes NEGOTIATION
Smith O VocelkaArgentinaOnyama Limba PROPOSAL
Nicolas T WaycottRussiaOnyama Limba UNQUALIFIED
Jennifer S SergiJapanStephen Shaw NEGOTIATION
Wickens O RutaBrazilAmy Elsner RENEWAL
Antonio J BowleyAustraliaAnna Fali UNQUALIFIED
Jones P OstroskyJapanAsiya Javayant UNQUALIFIED
Cody P AmigonGermanyStephen Shaw NEW
Ashley N DoeArgentinaAnna Fali RENEWAL
Rodrigues Q WieserSpainAnna Fali RENEWAL
Misaki V GarufiUnited KingdomAsiya Javayant RENEWAL
Antonio X SaylorsFranceIvan Magalhaes NEW
Rodrigues J RulapaughIndiaBernardo Dominic UNQUALIFIED
Murillo B TollnerSpainStephen Shaw NEGOTIATION
Salvatore E CampainCanadaAnna Fali PROPOSAL
Leon V RoysterAustraliaOnyama Limba UNQUALIFIED
Octavia Z GauchoIndiaAsiya Javayant QUALIFIED
Aika F ButtSpainElwin Sharvill NEW
Nicolas B RulapaughIndiaAsiya Javayant PROPOSAL
James C TollnerItalyBernardo Dominic PROPOSAL
Murillo D NickaIndiaIvan Magalhaes UNQUALIFIED
Kaitlin W WieserSpainAmy Elsner UNQUALIFIED
Mayumi E SchemmerRussiaElwin Sharvill UNQUALIFIED
Leja R SaylorsGermanyAnna Fali RENEWAL
Arvin Z SaylorsJapanBernardo Dominic RENEWAL
Izzy L ButtGermanyStephen Shaw NEGOTIATION
Aruna D WieserJapanIvan Magalhaes PROPOSAL
Nicolas K PerinGermanyElwin Sharvill QUALIFIED
Maria B VenereArgentinaElwin Sharvill UNQUALIFIED
Alejandro X MaletBrazilElwin Sharvill NEGOTIATION
Murillo I VocelkaJapanXuxue Feng RENEWAL
Clifford N StensethGermanyStephen Shaw PROPOSAL
Ashley C NickaBrazilElwin Sharvill RENEWAL
Jones H SchemmerAustraliaAnna Fali NEGOTIATION
Stacey N MaletArgentinaStephen Shaw QUALIFIED
Jefferson Z GlickJapanAnna Fali PROPOSAL
Isabel M MacleadSpainOnyama Limba UNQUALIFIED
Costa D RulapaughIndiaOnyama Limba NEGOTIATION
Sinclair O GlickItalyStephen Shaw QUALIFIED
Maria Z FollerFranceBernardo Dominic UNQUALIFIED
Ricardo I FigeroaItalyBernardo Dominic PROPOSAL
Octavia E PoquetteRussiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Adams H RimIndiaStephen Shaw NEW
Misaki A GillianJapanAnna Fali UNQUALIFIED
Kaitlin L ChuiUnited KingdomOnyama Limba RENEWAL
Aditya H RoysterGermanyAsiya Javayant PROPOSAL
Morrow C PaprockiArgentinaElwin Sharvill RENEWAL
Mujtaba Q MacleadIndiaIoni Bowcher NEGOTIATION
Kaitlin Z FollerIndiaAnna Fali QUALIFIED
Ricardo V KolmetzFranceOnyama Limba QUALIFIED
Murillo Y PerinAustraliaAnna Fali UNQUALIFIED
Silvio F OstroskyFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo M PaprockiJapan2026-07-09Rangoni Of Florence UNQUALIFIED52Xuxue Feng
1001Isabel L WieserIndia2026-07-09Buckley Miller Wright RENEWAL21Anna Fali
1002Maisha M OstroskyFrance2026-07-11Printing Dimensions UNQUALIFIED62Anna Fali
1003Morrow Y WieserRussia2026-07-12Feltz Printing Service NEW89Asiya Javayant
1004Stacey W DarakjyUnited Kingdom2026-07-31Chemel, James L Cpa RENEWAL15Ivan Magalhaes
1005Stacey E GlickUnited Kingdom2026-07-30Feiner Bros NEGOTIATION5Asiya Javayant
1006Wickens L RulapaughCanada2026-07-21King, Christopher A Esq UNQUALIFIED54Stephen Shaw
1007Rodrigues M GlickArgentina2026-07-16Chapman, Ross E Esq NEW76Anna Fali
1008David B MarrierJapan2026-07-09King, Christopher A Esq PROPOSAL12Ivan Magalhaes
1009Jeanfrancois W RimBrazil2026-07-19Dorl, James J Esq RENEWAL74Amy Elsner
1010Deepesh S PoquetteGermany2026-07-31Benton, John B Jr NEW88Onyama Limba
1011Kadeem D RoysterItaly2026-07-28Feiner Bros UNQUALIFIED14Ioni Bowcher
1012Johnson E BowleyJapan2026-08-05Buckley Miller Wright PROPOSAL25Amy Elsner
1013Maria N NickaRussia2026-07-29Chanay, Jeffrey A Esq PROPOSAL87Xuxue Feng
1014Misaki J KolmetzArgentina2026-07-23Rangoni Of Florence NEW16Xuxue Feng
1015Costa X MacleadIndia2026-07-23Feltz Printing Service NEW76Ivan Magalhaes
1016Mayumi A GauchoBrazil2026-07-20Buckley Miller Wright NEGOTIATION65Ioni Bowcher
1017Octavia N DarakjyArgentina2026-07-10Feltz Printing Service QUALIFIED30Ivan Magalhaes
1018Johnson V NickaIndia2026-07-31Printing Dimensions PROPOSAL71Elwin Sharvill
1019Salvatore U NickaArgentina2026-08-02Printing Dimensions QUALIFIED33Amy Elsner
1020Salvatore I KuskoItaly2026-07-10Feiner Bros UNQUALIFIED95Xuxue Feng
1021Jefferson N FollerCanada2026-07-26Commercial Press NEW23Xuxue Feng
1022Darci Z StockhamSpain2026-07-24Feltz Printing Service UNQUALIFIED4Elwin Sharvill
1023Maria T MaletGermany2026-07-27Feltz Printing Service NEGOTIATION62Anna Fali
1024Ashley C PerinItaly2026-07-16Feltz Printing Service NEW45Ivan Magalhaes
1025Rodrigues P BologniaFrance2026-08-04Dorl, James J Esq RENEWAL2Anna Fali
1026Jefferson W GillianIndia2026-07-14Buckley Miller Wright NEGOTIATION84Elwin Sharvill
1027Octavia Q InouyeGermany2026-07-23Feiner Bros NEW14Elwin Sharvill
1028Octavia D SergiSpain2026-07-27Feltz Printing Service RENEWAL54Asiya Javayant
1029Kadeem E TollnerAustralia2026-07-16Feiner Bros PROPOSAL17Anna Fali
1030Rodrigues H StockhamGermany2026-08-01Chemel, James L Cpa UNQUALIFIED32Anna Fali
1031Greenwood Z PerinFrance2026-07-11Chanay, Jeffrey A Esq RENEWAL99Bernardo Dominic
1032Leja Y AmigonIndia2026-08-02Chapman, Ross E Esq NEW50Bernardo Dominic
1033Morrow G MaletSpain2026-08-03Rangoni Of Florence PROPOSAL86Amy Elsner
1034Izzy X CaldareraBrazil2026-08-04Dorl, James J Esq RENEWAL24Anna Fali
1035Jeanfrancois M StockhamJapan2026-07-17Benton, John B Jr NEGOTIATION97Amy Elsner
1036Claire F RulapaughArgentina2026-07-14Morlong Associates NEGOTIATION86Xuxue Feng
1037Juan G MaletSpain2026-07-11Feltz Printing Service UNQUALIFIED35Ivan Magalhaes
1038Nicolas Q BologniaBrazil2026-07-13King, Christopher A Esq QUALIFIED52Ivan Magalhaes
1039Aika Z PaprockiRussia2026-08-02Rousseaux, Michael Esq RENEWAL62Onyama Limba
1040Aika R SaylorsRussia2026-07-28Commercial Press RENEWAL29Anna Fali
1041James J StockhamGermany2026-07-21Printing Dimensions NEW52Ioni Bowcher
1042Cody P WhobreyIndia2026-07-12Rangoni Of Florence UNQUALIFIED21Ioni Bowcher
1043Jeanfrancois T MorascaCanada2026-07-31Truhlar And Truhlar Attys UNQUALIFIED18Asiya Javayant
1044Wickens P GauchoBrazil2026-07-17Chemel, James L Cpa RENEWAL13Xuxue Feng
1045Murillo B MarrierArgentina2026-07-13Rangoni Of Florence PROPOSAL40Ioni Bowcher
1046Nicolas Y NickaRussia2026-07-10Buckley Miller Wright RENEWAL28Stephen Shaw
1047Adams B WhobreyJapan2026-07-27Chemel, James L Cpa RENEWAL19Ivan Magalhaes
1048Aditya O TollnerJapan2026-07-18Printing Dimensions QUALIFIED97Xuxue Feng
1049Chavez G MarrierJapan2026-07-22Buckley Miller Wright QUALIFIED73Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ricardo W FollerIndiaAnna Fali QUALIFIED
David L TollnerUnited KingdomElwin Sharvill RENEWAL
Kaitlin N FerenczFranceIvan Magalhaes QUALIFIED
Deepesh U RulapaughAustraliaOnyama Limba NEW
Mayumi U GarufiGermanyElwin Sharvill UNQUALIFIED
James E MaletGermanyAnna Fali RENEWAL
Antonio R GillianRussiaAnna Fali UNQUALIFIED
Salvatore S StockhamIndiaIvan Magalhaes PROPOSAL
Tony Y BologniaRussiaIvan Magalhaes UNQUALIFIED
Costa K ShinkoSpainOnyama Limba UNQUALIFIED
Greenwood R KuskoItalyIoni Bowcher NEGOTIATION
Rodrigues O FlosiFranceElwin Sharvill NEGOTIATION
Misaki V MacleadIndiaIoni Bowcher RENEWAL
Jennifer R RoysterSpainIvan Magalhaes QUALIFIED
Julie J KuskoFranceOnyama Limba QUALIFIED
Mayumi P WaycottBrazilIvan Magalhaes PROPOSAL
David J OstroskyBrazilAsiya Javayant PROPOSAL
Alejandro H RulapaughArgentinaXuxue Feng NEGOTIATION
Mayumi R BologniaGermanyIvan Magalhaes QUALIFIED
Alejandro L MarrierUnited KingdomBernardo Dominic RENEWAL
David O SergiFranceIoni Bowcher NEGOTIATION
Johnson I DilliardCanadaElwin Sharvill RENEWAL
Darci Z KuskoItalyStephen Shaw NEW
Antonio O SergiRussiaAmy Elsner RENEWAL
Smith U AlbaresAustraliaBernardo Dominic PROPOSAL
Aditya O RutaItalyAmy Elsner RENEWAL
Nicolas K RutaRussiaOnyama Limba QUALIFIED
Leon M SergiUnited KingdomIvan Magalhaes NEW
Murillo A InouyeSpainAmy Elsner UNQUALIFIED
Jeanfrancois K GarufiBrazilAsiya Javayant QUALIFIED
Adams C MorascaUnited KingdomStephen Shaw NEW
Leon X WieserGermanyElwin Sharvill RENEWAL
Mayumi M InouyeCanadaXuxue Feng PROPOSAL
Juan L WaycottFranceStephen Shaw UNQUALIFIED
Ricardo T OstroskyIndiaBernardo Dominic NEGOTIATION
Mujtaba A RimGermanyOnyama Limba UNQUALIFIED
Isabel N MaletUnited KingdomAnna Fali RENEWAL
Rodrigues B SlusarskiAustraliaElwin Sharvill RENEWAL
Alejandro Q NestleItalyIoni Bowcher PROPOSAL
Jefferson L FlosiGermanyAsiya Javayant QUALIFIED
Jefferson O DilliardSpainIoni Bowcher NEW
Izzy O GarufiFranceStephen Shaw UNQUALIFIED
Alejandro F BologniaBrazilAsiya Javayant RENEWAL
Aika Y GlickSpainXuxue Feng QUALIFIED
Ashley J KolmetzAustraliaElwin Sharvill RENEWAL
Emily Q RimFranceAnna Fali QUALIFIED
Greenwood P WaycottAustraliaXuxue Feng PROPOSAL
Julie B AmigonRussiaAsiya Javayant NEGOTIATION
Jennifer C AlbaresArgentinaIoni Bowcher PROPOSAL
Misaki S GauchoGermanyAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Deepesh B Malet
Jones F Marrier
Alejandro V Nicka
Misaki K Darakjy
Morrow U Bowley
Leja H Gillian
David M Bowley
Leja R Chui
Faith H Sergi
Smith B Malet
Jefferson S Wieser
James Q Sergi
Morrow A Kolmetz
Ashley B Nicka
Francesco J Nestle
Morrow P Wieser
Aika L Marrier
Julie F Saylors
Nicolas W Amigon
Jefferson W Shinko
Francesco T Venere
Octavia H Foller
Jeanfrancois Q Poquette
Francesco A Bowley
Kaitlin G Venere
Greenwood P Sergi
Leon D Slusarski
Emily F Malet
Isabel M Perin
Sinclair T Gillian
Smith N Stockham
Jeanfrancois Q Figeroa
Silvio X Maclead
Stacey Y Campain
Octavia L Venere
Jennifer Y Wieser
Stacey T Wieser
Jennifer P Campain
Munro A Albares
Adams Y Wieser
David U Sergi
Izzy T Kusko
Sinclair K Ostrosky
Aditya U Caudy
Kaitlin B Ostrosky
Silvio C Gaucho
Cody M Ostrosky
Johnson V Doe
Darci M Poquette
Izzy J Poquette
IdCountryDate
1000Brazil2026-07-27
1001Russia2026-08-06
1002Italy2026-07-14
1003France2026-07-13
1004Italy2026-07-08
1005United Kingdom2026-07-21
1006Germany2026-07-19
1007Japan2026-07-15
1008Argentina2026-07-28
1009Germany2026-07-23
1010Australia2026-07-11
1011Russia2026-08-01
1012Japan2026-08-06
1013United Kingdom2026-07-16
1014Australia2026-07-28
1015Germany2026-07-20
1016Japan2026-07-08
1017Russia2026-08-01
1018Brazil2026-07-08
1019Canada2026-07-11
1020France2026-08-06
1021India2026-07-13
1022France2026-08-05
1023Italy2026-07-11
1024Brazil2026-07-13
1025Spain2026-08-01
1026Japan2026-07-26
1027France2026-07-08
1028Brazil2026-08-04
1029Australia2026-07-28
1030Canada2026-08-05
1031Spain2026-07-20
1032France2026-07-19
1033Japan2026-07-13
1034Spain2026-07-17
1035Brazil2026-08-03
1036Russia2026-07-12
1037Spain2026-08-05
1038India2026-07-26
1039Spain2026-07-09
1040Russia2026-07-29
1041Japan2026-07-09
1042Brazil2026-08-02
1043Canada2026-07-16
1044India2026-08-05
1045Germany2026-07-14
1046India2026-07-21
1047Germany2026-07-09
1048Japan2026-08-01
1049United Kingdom2026-07-18

On-Demand Data

NameIdCountryDate
Leja T Figeroa1000France2026-08-05
Claire H Marrier1001Spain2026-08-06
Misaki W Nestle1002Japan2026-07-24
Jennifer O Nicka1003Germany2026-07-10
Jeanfrancois U Kolmetz1004France2026-08-05
Morrow W Amigon1005Canada2026-07-18
Costa C Whobrey1006Brazil2026-07-22
Misaki E Royster1007Spain2026-07-17
Misaki F Paprocki1008Canada2026-07-20
Silvio S Schemmer1009Spain2026-07-08
Alejandro V Stockham1010Russia2026-08-04
Rodrigues S Foller1011France2026-07-29
Morrow K Caudy1012Spain2026-07-14
Silvio F Vocelka1013India2026-07-14
Sinclair K Slusarski1014Argentina2026-07-17
Jones N Slusarski1015India2026-07-26
Octavia D Briddick1016Argentina2026-07-17
Greenwood M Royster1017Canada2026-07-22
Octavia O Caldarera1018Russia2026-07-22
Jennifer R Tollner1019Japan2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan T SlusarskiSpainStephen Shaw RENEWAL
Deepesh A VenereIndiaStephen Shaw QUALIFIED
Johnson B TollnerArgentinaStephen Shaw NEW
Munro K SlusarskiRussiaBernardo Dominic NEGOTIATION
Silvio P DilliardSpainBernardo Dominic PROPOSAL
Jones A PerinGermanyAnna Fali RENEWAL
Morrow E GarufiSpainOnyama Limba UNQUALIFIED
Francesco R WaycottCanadaStephen Shaw RENEWAL
Ivar P RutaCanadaStephen Shaw QUALIFIED
Alejandro G ButtCanadaBernardo Dominic UNQUALIFIED
Leja B SchemmerCanadaAmy Elsner NEW
Maisha H InouyeUnited KingdomAsiya Javayant NEW
Misaki C PaprockiBrazilElwin Sharvill RENEWAL
Murillo V VenereArgentinaAnna Fali RENEWAL
Leon T InouyeUnited KingdomStephen Shaw NEGOTIATION
Jefferson N CampainItalyAsiya Javayant PROPOSAL
Antonio Q SlusarskiGermanyBernardo Dominic QUALIFIED
Salvatore S PerinRussiaAmy Elsner RENEWAL
Cody M GlickCanadaElwin Sharvill UNQUALIFIED
Tony C IturbideArgentinaXuxue Feng UNQUALIFIED
Jennifer C FlosiSpainAmy Elsner PROPOSAL
Clifford M RutaGermanyStephen Shaw NEW
Stacey M CaldareraItalyIoni Bowcher QUALIFIED
Greenwood G OstroskyFranceAnna Fali NEGOTIATION
Mayumi J CampainBrazilIvan Magalhaes RENEWAL
Misaki K PaprockiUnited KingdomElwin Sharvill RENEWAL
Ashley H SaylorsGermanyAnna Fali RENEWAL
Jones Y MaletAustraliaBernardo Dominic NEGOTIATION
Tony L RoysterIndiaAsiya Javayant QUALIFIED
Mujtaba H FlosiJapanOnyama Limba UNQUALIFIED
Jefferson B MaletItalyAnna Fali UNQUALIFIED
Darci L RulapaughJapanAsiya Javayant PROPOSAL
Mujtaba N GauchoItalyElwin Sharvill QUALIFIED
Johnson Q FlosiItalyIoni Bowcher NEW
Ivar J StockhamBrazilOnyama Limba NEW
Clifford P FigeroaArgentinaIoni Bowcher RENEWAL
James R CaldareraBrazilIvan Magalhaes QUALIFIED
Emily Y AmigonUnited KingdomAsiya Javayant RENEWAL
Arvin M DarakjyArgentinaAnna Fali QUALIFIED
Jennifer W GlickRussiaIvan Magalhaes 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>