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
Mayumi F StensethArgentinaElwin Sharvill NEGOTIATION
Leon Y GlickFranceIoni Bowcher NEW
Leja K CaldareraBrazilBernardo Dominic RENEWAL
Stacey N SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh D VocelkaFranceStephen Shaw RENEWAL
Clifford W RimRussiaStephen Shaw NEGOTIATION
Clifford O WaycottBrazilAsiya Javayant PROPOSAL
Alejandro O CampainJapanIvan Magalhaes QUALIFIED
Tony A NickaJapanAmy Elsner PROPOSAL
Octavia X WaycottArgentinaElwin Sharvill NEGOTIATION
Kadeem Q VenereAustraliaElwin Sharvill NEGOTIATION
Salvatore Q MacleadFranceAnna Fali UNQUALIFIED
Jennifer P MaletBrazilStephen Shaw NEGOTIATION
Clifford H FollerArgentinaAnna Fali RENEWAL
Mayumi C FollerUnited KingdomOnyama Limba PROPOSAL
Ashley N SchemmerRussiaAmy Elsner PROPOSAL
James W DoeItalyIvan Magalhaes NEW
Stacey J StensethFranceBernardo Dominic PROPOSAL
Jones S GlickFranceIvan Magalhaes NEGOTIATION
Aruna P NestleJapanAnna Fali NEGOTIATION
Izzy T MarrierFranceStephen Shaw PROPOSAL
Tony H PoquetteRussiaStephen Shaw NEW
Aruna R PoquetteCanadaElwin Sharvill UNQUALIFIED
Leja T SergiJapanElwin Sharvill NEGOTIATION
Morrow C StensethFranceXuxue Feng NEW
Chavez B VocelkaIndiaStephen Shaw NEW
Ivar O MarrierIndiaElwin Sharvill QUALIFIED
Maisha K RoysterIndiaElwin Sharvill RENEWAL
Darci E GauchoBrazilBernardo Dominic PROPOSAL
Leja X CaldareraAustraliaOnyama Limba NEW
Ivar U MorascaBrazilAnna Fali RENEWAL
Morrow Y NickaGermanyAnna Fali NEGOTIATION
Juan Z BriddickArgentinaAsiya Javayant UNQUALIFIED
Salvatore L RoysterSpainXuxue Feng RENEWAL
Jones T BowleyArgentinaAnna Fali UNQUALIFIED
Johnson R MaletGermanyStephen Shaw PROPOSAL
Ivar P StensethFranceIvan Magalhaes PROPOSAL
Nicolas Q ShinkoJapanElwin Sharvill NEGOTIATION
Clifford E ButtCanadaOnyama Limba UNQUALIFIED
Jefferson E SlusarskiItalyStephen Shaw NEW
Ashley W AmigonJapanAnna Fali RENEWAL
Misaki M BologniaFranceOnyama Limba UNQUALIFIED
Faith F BologniaSpainElwin Sharvill UNQUALIFIED
Cody G PerinSpainIvan Magalhaes RENEWAL
Tony A FerenczSpainAnna Fali QUALIFIED
Johnson R SlusarskiSpainXuxue Feng RENEWAL
Kadeem S SchemmerAustraliaBernardo Dominic PROPOSAL
Silvio Z CaudyItalyAnna Fali NEGOTIATION
Greenwood V GarufiBrazilAsiya Javayant NEW
Ricardo R WaycottCanadaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley C KuskoIndiaStephen Shaw NEW
Munro Q MarrierUnited KingdomOnyama Limba QUALIFIED
Deepesh K SlusarskiSpainAnna Fali NEW
Johnson G GillianUnited KingdomAsiya Javayant PROPOSAL
Octavia C BriddickUnited KingdomXuxue Feng RENEWAL
Clifford Z WaycottUnited KingdomOnyama Limba QUALIFIED
Leon D ButtJapanOnyama Limba UNQUALIFIED
Kaitlin Y TollnerIndiaAnna Fali QUALIFIED
Aika K TollnerAustraliaAnna Fali NEW
Faith B GarufiIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith G VenereUnited Kingdom2026-07-27Morlong Associates RENEWAL43Stephen Shaw
1001Morrow E AlbaresGermany2026-07-28Buckley Miller Wright RENEWAL99Amy Elsner
1002Mujtaba Q DarakjyFrance2026-08-08Printing Dimensions NEGOTIATION26Bernardo Dominic
1003Tony V KolmetzIndia2026-08-15Rousseaux, Michael Esq PROPOSAL5Anna Fali
1004Kadeem W VenereJapan2026-07-30Chanay, Jeffrey A Esq NEGOTIATION36Elwin Sharvill
1005Isabel H MaletArgentina2026-07-21Feiner Bros QUALIFIED15Bernardo Dominic
1006Darci I PerinJapan2026-08-02Chanay, Jeffrey A Esq QUALIFIED64Onyama Limba
1007Maisha A WhobreyFrance2026-07-22Rangoni Of Florence PROPOSAL88Ioni Bowcher
1008Ashley G FollerGermany2026-08-04Commercial Press RENEWAL17Amy Elsner
1009Costa I MorascaBrazil2026-08-06Printing Dimensions NEGOTIATION7Amy Elsner
1010Jennifer H ShinkoUnited Kingdom2026-08-02Chapman, Ross E Esq QUALIFIED57Bernardo Dominic
1011Faith J WhobreySpain2026-08-14Feltz Printing Service QUALIFIED89Elwin Sharvill
1012Ashley A BowleyItaly2026-08-02Feiner Bros QUALIFIED91Onyama Limba
1013Leon G MaletGermany2026-08-14Chemel, James L Cpa UNQUALIFIED39Bernardo Dominic
1014Stacey R MorascaArgentina2026-07-21Commercial Press RENEWAL65Ivan Magalhaes
1015Tony M VenereGermany2026-08-06Commercial Press RENEWAL36Bernardo Dominic
1016Jones H NestleGermany2026-08-17Chanay, Jeffrey A Esq PROPOSAL10Ivan Magalhaes
1017Antonio S BriddickIndia2026-08-11Rangoni Of Florence NEGOTIATION20Stephen Shaw
1018Juan C ShinkoIndia2026-07-23Benton, John B Jr NEW60Anna Fali
1019Maisha D OldroydItaly2026-08-10Dorl, James J Esq UNQUALIFIED58Bernardo Dominic
1020Maria G KuskoIndia2026-08-05Chemel, James L Cpa UNQUALIFIED37Asiya Javayant
1021Stacey O PaprockiIndia2026-08-16Morlong Associates NEW39Amy Elsner
1022Jefferson O KolmetzRussia2026-07-30Rousseaux, Michael Esq UNQUALIFIED38Bernardo Dominic
1023Sinclair G CaldareraBrazil2026-08-18King, Christopher A Esq UNQUALIFIED48Ivan Magalhaes
1024Kadeem G IturbideSpain2026-08-10Commercial Press RENEWAL26Bernardo Dominic
1025Maisha S PerinUnited Kingdom2026-08-13Rousseaux, Michael Esq UNQUALIFIED9Xuxue Feng
1026Jefferson H DoeAustralia2026-08-03Buckley Miller Wright NEGOTIATION98Amy Elsner
1027Francesco K MaletArgentina2026-07-22Feiner Bros RENEWAL92Onyama Limba
1028Francesco P IturbideCanada2026-08-07King, Christopher A Esq PROPOSAL97Ioni Bowcher
1029Aditya R ButtBrazil2026-08-01Morlong Associates RENEWAL72Bernardo Dominic
1030Nicolas T FigeroaAustralia2026-08-01Chanay, Jeffrey A Esq RENEWAL52Asiya Javayant
1031Deepesh U NestleBrazil2026-08-18Rangoni Of Florence PROPOSAL16Amy Elsner
1032Cody C MarrierRussia2026-08-12Commercial Press RENEWAL42Amy Elsner
1033Misaki I ButtBrazil2026-08-03Truhlar And Truhlar Attys PROPOSAL79Xuxue Feng
1034Murillo G SergiSpain2026-08-13Benton, John B Jr NEGOTIATION32Amy Elsner
1035Jefferson X MaletRussia2026-07-27Chemel, James L Cpa QUALIFIED43Amy Elsner
1036Isabel P AmigonFrance2026-08-19Feiner Bros UNQUALIFIED23Ivan Magalhaes
1037Maisha I AlbaresCanada2026-07-24Buckley Miller Wright RENEWAL70Xuxue Feng
1038Johnson N DoeUnited Kingdom2026-08-12Dorl, James J Esq UNQUALIFIED30Stephen Shaw
1039Clifford R FlosiIndia2026-08-02Printing Dimensions NEW71Ivan Magalhaes
1040Mujtaba T SlusarskiGermany2026-08-04Printing Dimensions PROPOSAL44Stephen Shaw
1041Ricardo F DilliardJapan2026-07-23Rousseaux, Michael Esq UNQUALIFIED80Ivan Magalhaes
1042Alejandro F BriddickBrazil2026-08-13Truhlar And Truhlar Attys NEGOTIATION70Amy Elsner
1043Cody L CaudySpain2026-08-10Feltz Printing Service PROPOSAL10Ioni Bowcher
1044Ricardo C KolmetzItaly2026-07-28Feltz Printing Service NEGOTIATION52Amy Elsner
1045Greenwood J GauchoSpain2026-08-08Feiner Bros UNQUALIFIED27Ivan Magalhaes
1046Leon M GlickRussia2026-07-22Chanay, Jeffrey A Esq PROPOSAL78Stephen Shaw
1047Jones B SergiFrance2026-07-25Rangoni Of Florence NEW68Ivan Magalhaes
1048Emily T FerenczItaly2026-07-31Printing Dimensions QUALIFIED0Amy Elsner
1049Clifford L OldroydUnited Kingdom2026-07-23Truhlar And Truhlar Attys NEGOTIATION51Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Johnson L DilliardJapanElwin Sharvill UNQUALIFIED
Chavez O KuskoGermanyBernardo Dominic PROPOSAL
Wickens Q VocelkaIndiaAsiya Javayant RENEWAL
Salvatore M PerinUnited KingdomOnyama Limba RENEWAL
Aruna L OldroydAustraliaXuxue Feng RENEWAL
Wickens D RulapaughAustraliaIoni Bowcher PROPOSAL
Ricardo Z RimSpainAmy Elsner QUALIFIED
Ivar W FigeroaBrazilIvan Magalhaes UNQUALIFIED
Costa L KolmetzUnited KingdomElwin Sharvill QUALIFIED
Jefferson P StensethJapanXuxue Feng QUALIFIED
Chavez B MaletBrazilIoni Bowcher NEW
Francesco Z RutaItalyElwin Sharvill UNQUALIFIED
Julie Z OldroydBrazilStephen Shaw RENEWAL
Munro G KuskoIndiaStephen Shaw RENEWAL
Emily D DilliardJapanBernardo Dominic PROPOSAL
Misaki U StockhamArgentinaElwin Sharvill UNQUALIFIED
Misaki I StensethSpainXuxue Feng RENEWAL
Munro N KuskoArgentinaIvan Magalhaes NEW
Izzy Q OstroskyFranceElwin Sharvill UNQUALIFIED
Octavia A NickaItalyBernardo Dominic NEW
Jennifer E StockhamIndiaStephen Shaw PROPOSAL
Isabel S SaylorsItalyBernardo Dominic RENEWAL
Chavez D WhobreyFranceIoni Bowcher NEW
Claire P OldroydBrazilAmy Elsner RENEWAL
Octavia L BowleyJapanIvan Magalhaes QUALIFIED
Faith P IturbideRussiaElwin Sharvill RENEWAL
Salvatore E TollnerItalyIoni Bowcher PROPOSAL
Isabel A PerinRussiaAnna Fali NEW
Isabel A InouyeIndiaAsiya Javayant RENEWAL
Izzy R AlbaresIndiaStephen Shaw UNQUALIFIED
Mayumi L BowleyUnited KingdomAnna Fali NEGOTIATION
Nicolas K InouyeArgentinaStephen Shaw PROPOSAL
Deepesh H GillianUnited KingdomAmy Elsner QUALIFIED
Leja H NestleRussiaAmy Elsner RENEWAL
Kadeem R RoysterRussiaOnyama Limba QUALIFIED
Costa I NestleRussiaOnyama Limba QUALIFIED
Jeanfrancois Z MorascaIndiaIoni Bowcher NEGOTIATION
Emily F VocelkaSpainOnyama Limba RENEWAL
Wickens M MaletBrazilElwin Sharvill UNQUALIFIED
Francesco X CampainRussiaAmy Elsner QUALIFIED
Cody R ChuiCanadaXuxue Feng NEW
Kadeem Q GillianIndiaElwin Sharvill QUALIFIED
Emily Z BriddickGermanyAmy Elsner NEGOTIATION
Chavez U SergiArgentinaBernardo Dominic QUALIFIED
Francesco I PoquetteBrazilElwin Sharvill PROPOSAL
Alejandro E GlickItalyAsiya Javayant QUALIFIED
Leja F GillianArgentinaStephen Shaw RENEWAL
Murillo E MarrierUnited KingdomBernardo Dominic NEW
Ricardo H SlusarskiBrazilOnyama Limba NEGOTIATION
Salvatore A WaycottItalyBernardo Dominic RENEWAL
Frozen Columns
Name
Chavez N Stockham
Kadeem D Butt
Isabel T Albares
Arvin C Glick
Aika H Campain
Alejandro J Sergi
Juan G Doe
Kaitlin W Paprocki
Morrow P Doe
Cody Q Perin
Maisha R Rim
Costa R Glick
Claire S Kusko
Morrow Q Iturbide
Cody U Rulapaugh
Isabel B Perin
Darci P Flosi
Jennifer U Whobrey
Murillo W Doe
Kaitlin A Poquette
Izzy J Gillian
Antonio R Waycott
Chavez L Ruta
David I Stenseth
Arvin N Caudy
Jefferson U Campain
Johnson O Figeroa
Antonio B Perin
Julie M Morasca
Leon G Ostrosky
Chavez O Nestle
Ashley S Malet
Juan U Malet
Munro W Glick
James K Poquette
Costa W Ostrosky
Mayumi H Stenseth
David I Dilliard
Ivar V Ostrosky
Ashley O Nicka
Claire G Kolmetz
Morrow J Ostrosky
Morrow U Nestle
Darci G Shinko
Misaki N Sergi
Kadeem J Malet
Jeanfrancois S Stockham
Greenwood G Stockham
Jeanfrancois N Stockham
Mayumi B Poquette
IdCountryDate
1000United Kingdom2026-08-18
1001United Kingdom2026-08-14
1002United Kingdom2026-08-05
1003United Kingdom2026-07-21
1004Spain2026-08-16
1005India2026-08-19
1006Germany2026-08-17
1007Argentina2026-07-21
1008Australia2026-08-01
1009France2026-08-14
1010Brazil2026-08-18
1011United Kingdom2026-07-28
1012Canada2026-08-18
1013Italy2026-08-12
1014Japan2026-07-26
1015Australia2026-08-03
1016Russia2026-07-24
1017India2026-08-08
1018Brazil2026-07-25
1019Australia2026-08-01
1020Japan2026-08-01
1021Australia2026-08-13
1022Spain2026-08-10
1023Spain2026-07-24
1024Japan2026-08-14
1025United Kingdom2026-07-25
1026Argentina2026-07-31
1027Japan2026-08-17
1028Germany2026-07-26
1029India2026-08-11
1030Australia2026-08-05
1031Germany2026-08-13
1032Russia2026-08-15
1033India2026-07-24
1034Russia2026-08-15
1035Australia2026-07-27
1036Canada2026-08-18
1037Germany2026-07-22
1038Brazil2026-08-18
1039Russia2026-08-19
1040United Kingdom2026-07-22
1041India2026-07-26
1042Brazil2026-07-22
1043Brazil2026-07-21
1044India2026-08-16
1045United Kingdom2026-07-28
1046Canada2026-08-16
1047Spain2026-08-12
1048United Kingdom2026-08-07
1049Spain2026-08-03

On-Demand Data

NameIdCountryDate
Murillo U Nestle1000Japan2026-07-22
Murillo Y Shinko1001France2026-08-01
Maisha R Gaucho1002Italy2026-07-29
Costa E Foller1003Australia2026-08-19
Tony P Dilliard1004France2026-08-08
Juan U Garufi1005Russia2026-07-31
Mayumi Z Butt1006India2026-08-08
David S Kolmetz1007Brazil2026-07-21
Tony O Foller1008United Kingdom2026-08-19
Mayumi Q Schemmer1009Japan2026-07-31
Munro H Butt1010India2026-08-13
Stacey W Malet1011Japan2026-08-15
Antonio U Darakjy1012Italy2026-08-11
Aruna W Kolmetz1013Russia2026-08-13
James H Royster1014Brazil2026-08-18
Tony C Flosi1015Brazil2026-08-16
Francesco Q Garufi1016Spain2026-07-24
James J Bowley1017United Kingdom2026-07-27
Claire U Flosi1018United Kingdom2026-07-25
Kaitlin I Sergi1019France2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa B GlickCanadaAmy Elsner NEW
Adams H WaycottGermanyAnna Fali NEGOTIATION
Claire T PoquetteBrazilIvan Magalhaes QUALIFIED
Smith F RulapaughBrazilBernardo Dominic NEW
Clifford G GillianCanadaAnna Fali UNQUALIFIED
David E KuskoArgentinaOnyama Limba RENEWAL
Nicolas Y TollnerArgentinaStephen Shaw PROPOSAL
Arvin L DilliardItalyAnna Fali NEW
Emily Z MarrierAustraliaAsiya Javayant UNQUALIFIED
Maria V KolmetzFranceAsiya Javayant RENEWAL
Morrow C WieserSpainElwin Sharvill QUALIFIED
Isabel U DilliardJapanAmy Elsner RENEWAL
Maisha U PoquetteCanadaAnna Fali QUALIFIED
Costa P RimSpainAsiya Javayant RENEWAL
Cody J AlbaresRussiaBernardo Dominic UNQUALIFIED
Faith D TollnerSpainBernardo Dominic PROPOSAL
Aruna O PoquetteArgentinaElwin Sharvill UNQUALIFIED
Alejandro Q CampainItalyAnna Fali NEW
Sinclair M OstroskyUnited KingdomXuxue Feng NEW
Clifford R SaylorsItalyAmy Elsner NEGOTIATION
Ricardo L KolmetzArgentinaXuxue Feng NEW
Kadeem R GarufiJapanIvan Magalhaes NEW
Antonio H PaprockiJapanAmy Elsner RENEWAL
Tony W IturbideCanadaXuxue Feng UNQUALIFIED
Aika U IturbideJapanIvan Magalhaes PROPOSAL
David D AmigonUnited KingdomAnna Fali NEGOTIATION
Izzy G RimItalyIoni Bowcher UNQUALIFIED
Mujtaba U MaletIndiaElwin Sharvill PROPOSAL
Deepesh F KolmetzBrazilElwin Sharvill PROPOSAL
Maisha P IturbideGermanyAmy Elsner RENEWAL
Ricardo L TollnerCanadaStephen Shaw NEW
Adams V SergiRussiaStephen Shaw NEW
Salvatore D AmigonJapanAnna Fali RENEWAL
Leja Y ShinkoArgentinaStephen Shaw NEGOTIATION
Murillo P StockhamCanadaIoni Bowcher UNQUALIFIED
Arvin I GlickIndiaAmy Elsner NEW
Silvio Z MarrierJapanAsiya Javayant NEW
Murillo L SaylorsArgentinaXuxue Feng PROPOSAL
Stacey U GauchoJapanAsiya Javayant NEW
Kaitlin B FollerIndiaStephen Shaw RENEWAL

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