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 S GauchoSpainIoni Bowcher RENEWAL
Arvin N ButtSpainIoni Bowcher UNQUALIFIED
Emily C VenereGermanyAsiya Javayant QUALIFIED
Clifford K FigeroaAustraliaIvan Magalhaes QUALIFIED
Murillo J GarufiUnited KingdomStephen Shaw RENEWAL
Sinclair M NestleSpainOnyama Limba QUALIFIED
Antonio N MorascaSpainAnna Fali NEGOTIATION
Misaki D CampainCanadaStephen Shaw UNQUALIFIED
Stacey K AmigonBrazilAmy Elsner NEGOTIATION
Isabel M MorascaBrazilIvan Magalhaes UNQUALIFIED
Jones K RoysterCanadaStephen Shaw RENEWAL
Chavez I GauchoSpainIvan Magalhaes RENEWAL
Isabel N FerenczGermanyAmy Elsner NEGOTIATION
Juan T VocelkaJapanAsiya Javayant NEGOTIATION
Emily V MorascaJapanElwin Sharvill RENEWAL
Kadeem M InouyeIndiaBernardo Dominic RENEWAL
Ivar J BologniaGermanyXuxue Feng NEGOTIATION
Sinclair U AlbaresJapanOnyama Limba PROPOSAL
Rodrigues D BowleyBrazilAmy Elsner UNQUALIFIED
Stacey V CaudyGermanyIvan Magalhaes UNQUALIFIED
Cody S FigeroaGermanyBernardo Dominic NEW
Aruna G FigeroaJapanAmy Elsner QUALIFIED
Juan A KolmetzJapanAmy Elsner RENEWAL
Jefferson S DoeCanadaXuxue Feng UNQUALIFIED
Juan K CampainFranceAsiya Javayant PROPOSAL
Chavez S DarakjyFranceAnna Fali RENEWAL
Antonio X RoysterGermanyStephen Shaw PROPOSAL
Morrow W MaletAustraliaAsiya Javayant RENEWAL
Jones X SchemmerSpainElwin Sharvill UNQUALIFIED
Faith X WhobreyRussiaAmy Elsner PROPOSAL
Julie Y RimAustraliaBernardo Dominic UNQUALIFIED
Jones P BologniaUnited KingdomOnyama Limba PROPOSAL
Izzy G CampainGermanyIoni Bowcher PROPOSAL
Silvio V RutaArgentinaAmy Elsner QUALIFIED
Misaki S PaprockiUnited KingdomBernardo Dominic RENEWAL
Wickens Y VocelkaCanadaAnna Fali NEGOTIATION
Julie Y SchemmerJapanBernardo Dominic QUALIFIED
Leon W SaylorsIndiaOnyama Limba PROPOSAL
Clifford C CampainRussiaStephen Shaw UNQUALIFIED
Kaitlin Y StockhamIndiaAnna Fali NEGOTIATION
Kadeem J RutaRussiaIoni Bowcher RENEWAL
Silvio R FollerArgentinaOnyama Limba NEGOTIATION
Tony K ChuiIndiaBernardo Dominic RENEWAL
Wickens V PoquetteJapanIoni Bowcher RENEWAL
Silvio G SaylorsGermanyOnyama Limba NEW
Maria X AmigonRussiaIvan Magalhaes NEW
Leon U GauchoGermanyElwin Sharvill NEW
Munro D StockhamAustraliaBernardo Dominic UNQUALIFIED
Greenwood E AmigonRussiaXuxue Feng QUALIFIED
Claire W ChuiSpainStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja Y MacleadFranceAsiya Javayant UNQUALIFIED
Ivar V WhobreyAustraliaStephen Shaw RENEWAL
Kaitlin Y FigeroaAustraliaIvan Magalhaes RENEWAL
Kaitlin Q SergiArgentinaOnyama Limba QUALIFIED
Claire M MacleadItalyIvan Magalhaes UNQUALIFIED
Maisha R StensethCanadaAnna Fali NEW
Izzy Q StensethSpainAnna Fali PROPOSAL
Clifford I PerinRussiaStephen Shaw NEGOTIATION
Misaki O MaletArgentinaBernardo Dominic NEW
Munro E CaudyUnited KingdomOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy M VocelkaBrazil2026-06-22Dorl, James J Esq RENEWAL62Amy Elsner
1001Julie U MacleadCanada2026-06-26Chapman, Ross E Esq NEW43Ioni Bowcher
1002Cody B AlbaresItaly2026-06-30Benton, John B Jr QUALIFIED51Ivan Magalhaes
1003Octavia C InouyeAustralia2026-06-19Morlong Associates UNQUALIFIED98Ioni Bowcher
1004Octavia H FigeroaBrazil2026-06-12Feiner Bros UNQUALIFIED27Xuxue Feng
1005Johnson K DarakjyIndia2026-06-17Chanay, Jeffrey A Esq UNQUALIFIED96Asiya Javayant
1006Izzy O VenereUnited Kingdom2026-07-08Morlong Associates UNQUALIFIED16Amy Elsner
1007Maisha Z CampainItaly2026-06-10Printing Dimensions UNQUALIFIED47Ioni Bowcher
1008Jeanfrancois J GauchoGermany2026-06-15Commercial Press QUALIFIED17Ivan Magalhaes
1009Arvin Y GarufiFrance2026-06-30King, Christopher A Esq UNQUALIFIED10Bernardo Dominic
1010Leon K BologniaCanada2026-06-23Rangoni Of Florence QUALIFIED23Onyama Limba
1011Johnson X FigeroaArgentina2026-06-12Feiner Bros UNQUALIFIED27Xuxue Feng
1012Costa Y RimRussia2026-07-01Rousseaux, Michael Esq NEGOTIATION81Amy Elsner
1013Izzy I FerenczSpain2026-06-12Dorl, James J Esq UNQUALIFIED39Onyama Limba
1014Darci A SaylorsFrance2026-06-24Morlong Associates QUALIFIED45Onyama Limba
1015Jeanfrancois L MarrierArgentina2026-07-01Benton, John B Jr UNQUALIFIED58Ioni Bowcher
1016Smith E OstroskyItaly2026-07-06Chapman, Ross E Esq RENEWAL65Onyama Limba
1017Munro T MacleadBrazil2026-06-26Chapman, Ross E Esq QUALIFIED10Ioni Bowcher
1018Mujtaba C GauchoIndia2026-06-11King, Christopher A Esq NEGOTIATION81Bernardo Dominic
1019Kadeem B NickaUnited Kingdom2026-06-24Truhlar And Truhlar Attys QUALIFIED29Elwin Sharvill
1020Ricardo U MorascaBrazil2026-06-17Chapman, Ross E Esq UNQUALIFIED13Asiya Javayant
1021Silvio Q KuskoGermany2026-06-21Benton, John B Jr NEGOTIATION24Bernardo Dominic
1022Nicolas H NestleIndia2026-06-21Rousseaux, Michael Esq RENEWAL17Xuxue Feng
1023Maria F CampainIndia2026-06-18Truhlar And Truhlar Attys QUALIFIED59Bernardo Dominic
1024Stacey F SergiBrazil2026-06-22Chapman, Ross E Esq UNQUALIFIED71Bernardo Dominic
1025Deepesh S RoysterGermany2026-06-23Chemel, James L Cpa UNQUALIFIED29Amy Elsner
1026Maisha Z BowleyArgentina2026-07-05Dorl, James J Esq NEGOTIATION80Bernardo Dominic
1027Francesco P MaletAustralia2026-06-21Buckley Miller Wright UNQUALIFIED1Xuxue Feng
1028Claire J WieserBrazil2026-06-26Chapman, Ross E Esq NEW34Amy Elsner
1029Izzy S ChuiUnited Kingdom2026-07-05Chanay, Jeffrey A Esq NEW89Amy Elsner
1030Isabel Q IturbideIndia2026-07-06Dorl, James J Esq QUALIFIED59Onyama Limba
1031Adams N NickaArgentina2026-07-08Feltz Printing Service PROPOSAL91Elwin Sharvill
1032Jones D RimRussia2026-06-16Rangoni Of Florence NEW98Xuxue Feng
1033Smith V RulapaughAustralia2026-06-17Benton, John B Jr PROPOSAL80Elwin Sharvill
1034Octavia M ChuiSpain2026-06-11Feltz Printing Service QUALIFIED38Bernardo Dominic
1035Izzy O ChuiCanada2026-06-15Printing Dimensions QUALIFIED47Stephen Shaw
1036Darci E WieserGermany2026-06-19Feltz Printing Service NEW47Anna Fali
1037Silvio A PoquetteJapan2026-06-11Rangoni Of Florence NEW40Ivan Magalhaes
1038Clifford L AlbaresBrazil2026-06-26Commercial Press PROPOSAL47Anna Fali
1039Ashley W WaycottGermany2026-06-18Truhlar And Truhlar Attys PROPOSAL37Elwin Sharvill
1040Aika B PerinSpain2026-07-01Benton, John B Jr NEW24Elwin Sharvill
1041Ricardo Y AmigonSpain2026-07-04Truhlar And Truhlar Attys RENEWAL30Ioni Bowcher
1042Nicolas D WhobreyFrance2026-07-06Morlong Associates QUALIFIED10Onyama Limba
1043Mayumi U WaycottArgentina2026-06-10Feltz Printing Service UNQUALIFIED87Elwin Sharvill
1044Johnson Q GillianIndia2026-06-14Benton, John B Jr QUALIFIED9Ivan Magalhaes
1045Claire C MaletIndia2026-07-03Commercial Press PROPOSAL12Stephen Shaw
1046Wickens D WhobreyIndia2026-06-10Morlong Associates NEGOTIATION89Amy Elsner
1047Juan Z CampainSpain2026-06-20Rousseaux, Michael Esq UNQUALIFIED5Asiya Javayant
1048Chavez D WhobreyUnited Kingdom2026-06-11Chapman, Ross E Esq NEW48Asiya Javayant
1049Morrow T WaycottUnited Kingdom2026-07-08Feiner Bros UNQUALIFIED54Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Octavia D PaprockiJapanBernardo Dominic PROPOSAL
Claire Y VocelkaCanadaAmy Elsner PROPOSAL
Adams G WaycottIndiaIvan Magalhaes NEGOTIATION
Kaitlin D SaylorsJapanAnna Fali PROPOSAL
Smith S IturbideCanadaBernardo Dominic QUALIFIED
Octavia I RulapaughRussiaOnyama Limba QUALIFIED
James S GauchoRussiaIvan Magalhaes PROPOSAL
Maria O ChuiJapanAsiya Javayant RENEWAL
Leon Y VocelkaArgentinaXuxue Feng NEGOTIATION
Aika E WieserRussiaOnyama Limba NEGOTIATION
Johnson Q NickaRussiaAnna Fali QUALIFIED
Misaki D FollerSpainAsiya Javayant RENEWAL
Nicolas L MorascaCanadaOnyama Limba UNQUALIFIED
Mujtaba K BowleySpainAnna Fali RENEWAL
Kadeem R MaletIndiaStephen Shaw QUALIFIED
Johnson U DarakjyUnited KingdomIoni Bowcher NEW
Costa R ChuiCanadaElwin Sharvill NEW
Jones I SchemmerJapanBernardo Dominic NEW
Sinclair M RutaBrazilElwin Sharvill RENEWAL
Wickens B RimArgentinaXuxue Feng NEGOTIATION
Tony A CampainArgentinaElwin Sharvill NEGOTIATION
Maria M BowleyFranceOnyama Limba PROPOSAL
Misaki P TollnerJapanBernardo Dominic NEW
Jefferson W AlbaresFranceAsiya Javayant PROPOSAL
Sinclair S PaprockiGermanyStephen Shaw NEW
Johnson J GarufiUnited KingdomOnyama Limba NEW
Darci O KolmetzCanadaElwin Sharvill PROPOSAL
Leon X StockhamCanadaXuxue Feng NEW
Adams E VocelkaBrazilBernardo Dominic NEW
Nicolas Z BologniaFranceStephen Shaw NEGOTIATION
Jones Q FigeroaSpainAnna Fali NEGOTIATION
Mujtaba S BriddickCanadaElwin Sharvill PROPOSAL
Morrow H SergiFranceElwin Sharvill PROPOSAL
David C VenereItalyIoni Bowcher UNQUALIFIED
Antonio H GlickSpainAmy Elsner UNQUALIFIED
Isabel L SlusarskiAustraliaAnna Fali NEGOTIATION
Greenwood S KuskoBrazilAsiya Javayant UNQUALIFIED
Arvin P CaudyItalyAmy Elsner UNQUALIFIED
Aruna O SchemmerGermanyStephen Shaw QUALIFIED
Julie V WieserGermanyIvan Magalhaes QUALIFIED
Antonio U PoquetteJapanOnyama Limba QUALIFIED
Clifford W CaudyAustraliaIoni Bowcher NEGOTIATION
Antonio H BowleySpainBernardo Dominic QUALIFIED
Jeanfrancois A RimUnited KingdomElwin Sharvill RENEWAL
Murillo E SchemmerSpainXuxue Feng PROPOSAL
Stacey Q DoeFranceXuxue Feng PROPOSAL
Deepesh R AlbaresRussiaStephen Shaw NEW
Johnson P DarakjyJapanAsiya Javayant PROPOSAL
Silvio R AmigonRussiaStephen Shaw RENEWAL
James P KuskoItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Salvatore W Ostrosky
Isabel P Caudy
Deepesh R Malet
Munro V Chui
David I Amigon
Munro K Paprocki
Maisha X Foller
Greenwood S Bolognia
Izzy G Gillian
Stacey G Kusko
Tony H Rim
Misaki K Royster
Francesco Y Iturbide
Greenwood L Saylors
Julie W Gillian
Sinclair V Caudy
Francesco J Whobrey
Tony G Schemmer
Murillo O Kusko
Jefferson B Marrier
Aruna B Gaucho
Juan O Ostrosky
Adams I Slusarski
Alejandro P Rim
Leon M Gillian
Ashley A Foller
Aika P Stockham
Chavez N Campain
Isabel Q Stockham
Salvatore L Chui
Chavez A Briddick
Clifford H Chui
Aditya O Doe
Salvatore I Kolmetz
Costa U Flosi
Munro G Caldarera
Clifford K Kusko
Kaitlin P Morasca
Deepesh X Gillian
Francesco T Garufi
Ricardo X Stenseth
Maisha A Oldroyd
Ivar I Poquette
Alejandro Y Foller
Maisha M Kusko
Jefferson E Poquette
Deepesh W Malet
Jefferson P Waycott
Greenwood Z Doe
Morrow G Ferencz
IdCountryDate
1000Spain2026-06-27
1001Spain2026-07-03
1002Japan2026-06-21
1003Russia2026-06-26
1004Brazil2026-07-04
1005Germany2026-06-25
1006Italy2026-07-05
1007India2026-07-04
1008Russia2026-06-25
1009Germany2026-06-22
1010France2026-06-29
1011Canada2026-06-30
1012United Kingdom2026-06-16
1013France2026-06-17
1014Argentina2026-07-02
1015Argentina2026-07-01
1016India2026-06-21
1017Brazil2026-06-13
1018India2026-06-25
1019Russia2026-06-14
1020Australia2026-06-20
1021Russia2026-06-28
1022Brazil2026-06-10
1023Canada2026-06-27
1024India2026-07-01
1025India2026-06-09
1026Italy2026-06-15
1027Canada2026-07-04
1028Germany2026-07-01
1029Canada2026-06-10
1030Argentina2026-07-07
1031France2026-06-19
1032Spain2026-07-08
1033Australia2026-06-13
1034India2026-06-09
1035Japan2026-06-22
1036Italy2026-07-06
1037Brazil2026-06-14
1038Canada2026-07-04
1039Australia2026-06-21
1040Brazil2026-06-11
1041Germany2026-06-24
1042Japan2026-06-12
1043Spain2026-06-10
1044Australia2026-06-15
1045Japan2026-07-08
1046Italy2026-06-29
1047Japan2026-07-03
1048Russia2026-06-26
1049Argentina2026-06-13

On-Demand Data

NameIdCountryDate
Faith L Stockham1000Japan2026-07-01
Arvin X Kolmetz1001Russia2026-07-03
Maria Y Waycott1002United Kingdom2026-06-24
Jones W Malet1003Canada2026-06-29
Izzy S Maclead1004Australia2026-06-28
Cody G Royster1005Canada2026-06-14
Emily U Stenseth1006Germany2026-07-03
Chavez O Venere1007Canada2026-06-11
Faith K Garufi1008Japan2026-06-11
Salvatore Z Royster1009Brazil2026-06-13
Francesco L Oldroyd1010Russia2026-06-19
Nicolas D Gaucho1011Russia2026-07-01
Tony T Waycott1012Germany2026-07-08
Aruna X Poquette1013United Kingdom2026-06-09
Chavez Y Nestle1014Brazil2026-06-17
Nicolas C Caldarera1015Canada2026-06-20
Morrow J Sergi1016Japan2026-06-20
Aika A Darakjy1017Brazil2026-06-18
Darci L Ruta1018Russia2026-07-01
Kaitlin P Malet1019France2026-06-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya N RoysterRussiaIoni Bowcher RENEWAL
Aika I StensethCanadaStephen Shaw QUALIFIED
Darci C BowleySpainIoni Bowcher NEW
Izzy Z MarrierRussiaElwin Sharvill UNQUALIFIED
Mujtaba C AmigonUnited KingdomAnna Fali RENEWAL
Aditya B ChuiItalyBernardo Dominic NEW
Deepesh H IturbideJapanXuxue Feng QUALIFIED
Darci U KolmetzSpainBernardo Dominic NEW
Clifford C KolmetzGermanyElwin Sharvill RENEWAL
Isabel D AmigonSpainStephen Shaw PROPOSAL
Costa F BriddickFranceXuxue Feng UNQUALIFIED
Adams X SchemmerUnited KingdomXuxue Feng NEGOTIATION
Nicolas E BowleyItalyBernardo Dominic PROPOSAL
Misaki D FollerArgentinaAnna Fali NEGOTIATION
Faith I FigeroaFranceOnyama Limba NEGOTIATION
Adams I NestleAustraliaIoni Bowcher QUALIFIED
Maria S BologniaItalyIvan Magalhaes PROPOSAL
Maisha C ShinkoBrazilAnna Fali QUALIFIED
Leja N RulapaughGermanyIvan Magalhaes NEW
Maria N StensethItalyBernardo Dominic NEGOTIATION
Tony K MaletAustraliaOnyama Limba QUALIFIED
Octavia B CaldareraRussiaAsiya Javayant NEW
Ricardo I CampainBrazilAsiya Javayant RENEWAL
James W CaldareraUnited KingdomAmy Elsner RENEWAL
Juan N DoeCanadaStephen Shaw UNQUALIFIED
James F PerinItalyStephen Shaw NEGOTIATION
Jennifer X ChuiJapanElwin Sharvill RENEWAL
Mayumi L DarakjyGermanyIoni Bowcher PROPOSAL
Leja M NickaAustraliaAsiya Javayant QUALIFIED
Munro S RoysterAustraliaIoni Bowcher QUALIFIED
Isabel N FigeroaAustraliaAmy Elsner PROPOSAL
Deepesh K TollnerItalyStephen Shaw RENEWAL
Aditya E ButtGermanyIvan Magalhaes PROPOSAL
Maisha Q FerenczGermanyElwin Sharvill UNQUALIFIED
Sinclair T KuskoAustraliaBernardo Dominic NEW
Leon Q BowleyGermanyIvan Magalhaes NEW
Aika X GarufiJapanAsiya Javayant PROPOSAL
Maria V CaudyJapanAmy Elsner NEGOTIATION
Kaitlin P IturbideUnited KingdomStephen Shaw UNQUALIFIED
Octavia X MaletIndiaStephen 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>