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
Silvio Q SchemmerRussiaBernardo Dominic PROPOSAL
Cody Y VocelkaCanadaXuxue Feng QUALIFIED
David E PaprockiArgentinaBernardo Dominic PROPOSAL
Kaitlin P IturbideCanadaStephen Shaw QUALIFIED
Antonio R PerinRussiaIvan Magalhaes PROPOSAL
Deepesh T AmigonIndiaIvan Magalhaes UNQUALIFIED
Costa M RoysterRussiaXuxue Feng RENEWAL
Leon Q FigeroaArgentinaAsiya Javayant UNQUALIFIED
Tony W RutaAustraliaXuxue Feng NEGOTIATION
Izzy D WaycottGermanyBernardo Dominic RENEWAL
Cody C CaudyArgentinaAmy Elsner NEGOTIATION
Aditya T MaletSpainOnyama Limba NEGOTIATION
Morrow B StensethAustraliaIoni Bowcher NEW
Ashley K MacleadArgentinaBernardo Dominic UNQUALIFIED
Antonio M ShinkoBrazilXuxue Feng NEW
Leja Z WieserGermanyOnyama Limba QUALIFIED
Arvin L InouyeJapanXuxue Feng UNQUALIFIED
Aika I TollnerRussiaAmy Elsner PROPOSAL
Greenwood D OldroydCanadaAmy Elsner NEGOTIATION
Isabel J WieserFranceElwin Sharvill NEGOTIATION
David Y OstroskySpainAsiya Javayant NEGOTIATION
Stacey H MaletSpainBernardo Dominic UNQUALIFIED
Chavez X DarakjyGermanyAnna Fali PROPOSAL
Nicolas F ShinkoFranceAnna Fali RENEWAL
Wickens C MarrierBrazilElwin Sharvill NEGOTIATION
Morrow J MarrierBrazilAsiya Javayant NEGOTIATION
Salvatore Q RulapaughBrazilAmy Elsner QUALIFIED
Aika E SchemmerCanadaIvan Magalhaes NEGOTIATION
Costa Z DarakjySpainAsiya Javayant UNQUALIFIED
Deepesh X GauchoItalyAsiya Javayant UNQUALIFIED
Antonio X ButtIndiaBernardo Dominic NEGOTIATION
Kaitlin H VenereFranceOnyama Limba UNQUALIFIED
Octavia Z GlickItalyStephen Shaw PROPOSAL
Munro E CampainGermanyAsiya Javayant UNQUALIFIED
Alejandro X InouyeArgentinaIvan Magalhaes RENEWAL
Octavia Q GillianGermanyAnna Fali QUALIFIED
Johnson H SlusarskiCanadaAnna Fali UNQUALIFIED
Isabel K MorascaIndiaIoni Bowcher RENEWAL
Emily H WaycottArgentinaAnna Fali UNQUALIFIED
Arvin P DoeGermanyElwin Sharvill QUALIFIED
Aruna U PerinCanadaAnna Fali NEW
Octavia D RutaSpainOnyama Limba NEGOTIATION
Leon W VenereJapanAnna Fali PROPOSAL
Deepesh T PoquetteRussiaStephen Shaw RENEWAL
Antonio Z FollerAustraliaOnyama Limba NEW
Claire R FigeroaRussiaAnna Fali NEGOTIATION
Juan F MarrierFranceAsiya Javayant RENEWAL
Arvin E KolmetzItalyIoni Bowcher QUALIFIED
Isabel G ShinkoSpainAsiya Javayant UNQUALIFIED
Smith X KuskoBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Deepesh F RutaBrazilXuxue Feng NEW
Kadeem M AmigonGermanyStephen Shaw NEW
Rodrigues Z StockhamFranceXuxue Feng UNQUALIFIED
Munro L BologniaItalyElwin Sharvill QUALIFIED
Murillo K NestleIndiaAsiya Javayant UNQUALIFIED
Clifford Z WieserItalyAsiya Javayant NEW
Wickens C CaudyAustraliaBernardo Dominic QUALIFIED
Kadeem W StensethFranceAsiya Javayant UNQUALIFIED
Nicolas E CaldareraAustraliaAsiya Javayant NEGOTIATION
Darci M WieserBrazilBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley A NickaSpain2025-06-15Rousseaux, Michael Esq NEW6Xuxue Feng
1001Munro T GlickSpain2025-06-05Dorl, James J Esq PROPOSAL24Ioni Bowcher
1002Costa T SlusarskiUnited Kingdom2025-05-20Rangoni Of Florence NEGOTIATION68Xuxue Feng
1003Leja S VocelkaItaly2025-05-25Truhlar And Truhlar Attys UNQUALIFIED12Elwin Sharvill
1004Maisha D GauchoCanada2025-05-19Chanay, Jeffrey A Esq NEGOTIATION24Bernardo Dominic
1005Ricardo Q WaycottBrazil2025-05-27Buckley Miller Wright PROPOSAL76Ioni Bowcher
1006Leon T PaprockiIndia2025-06-10Chanay, Jeffrey A Esq PROPOSAL35Ivan Magalhaes
1007Munro K WhobreyAustralia2025-06-07Feiner Bros UNQUALIFIED70Xuxue Feng
1008Smith D VocelkaCanada2025-06-06Feltz Printing Service NEW96Ivan Magalhaes
1009Claire X MaletFrance2025-05-22Feltz Printing Service PROPOSAL6Xuxue Feng
1010Isabel T AlbaresGermany2025-05-22Chanay, Jeffrey A Esq UNQUALIFIED70Asiya Javayant
1011Maria G SlusarskiItaly2025-06-06Chapman, Ross E Esq UNQUALIFIED37Asiya Javayant
1012Cody L SaylorsIndia2025-06-14Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1013Cody Z RimCanada2025-05-20Rousseaux, Michael Esq PROPOSAL92Asiya Javayant
1014Munro R VenereAustralia2025-05-23Buckley Miller Wright PROPOSAL88Bernardo Dominic
1015Sinclair N WhobreyIndia2025-05-24Rangoni Of Florence NEW2Elwin Sharvill
1016Claire S AlbaresBrazil2025-05-23King, Christopher A Esq PROPOSAL15Onyama Limba
1017Francesco K WieserBrazil2025-05-20King, Christopher A Esq PROPOSAL84Ivan Magalhaes
1018Rodrigues U StensethIndia2025-06-10Chemel, James L Cpa QUALIFIED59Ivan Magalhaes
1019Jennifer C MaletIndia2025-05-24Feiner Bros RENEWAL51Xuxue Feng
1020Jefferson A AlbaresAustralia2025-06-11Feltz Printing Service PROPOSAL15Onyama Limba
1021Francesco O FlosiGermany2025-06-15Dorl, James J Esq NEGOTIATION12Asiya Javayant
1022Mayumi F SchemmerCanada2025-05-22Rangoni Of Florence PROPOSAL58Amy Elsner
1023Aika S NestleIndia2025-05-29Truhlar And Truhlar Attys UNQUALIFIED11Bernardo Dominic
1024Rodrigues G GarufiBrazil2025-05-18Rousseaux, Michael Esq PROPOSAL18Bernardo Dominic
1025Misaki R StensethIndia2025-05-21Morlong Associates QUALIFIED67Elwin Sharvill
1026Aruna F SaylorsGermany2025-06-08Feltz Printing Service QUALIFIED85Ioni Bowcher
1027Arvin F DoeBrazil2025-05-23Feltz Printing Service QUALIFIED75Onyama Limba
1028Costa T WaycottJapan2025-06-04Buckley Miller Wright NEGOTIATION57Bernardo Dominic
1029Salvatore E GauchoJapan2025-06-01Commercial Press PROPOSAL51Anna Fali
1030Nicolas Y NestleRussia2025-06-07Rousseaux, Michael Esq UNQUALIFIED56Xuxue Feng
1031Maisha X DarakjyIndia2025-06-08Feiner Bros NEW0Onyama Limba
1032Leon F DoeFrance2025-05-19Morlong Associates QUALIFIED93Ioni Bowcher
1033Salvatore O FerenczCanada2025-05-24Chapman, Ross E Esq UNQUALIFIED46Amy Elsner
1034Aruna H TollnerItaly2025-06-07Chanay, Jeffrey A Esq RENEWAL87Stephen Shaw
1035Costa O RoysterFrance2025-05-19Printing Dimensions QUALIFIED26Stephen Shaw
1036Juan N NestleItaly2025-06-11Chemel, James L Cpa RENEWAL1Ioni Bowcher
1037Maria Z BriddickUnited Kingdom2025-05-18Feltz Printing Service PROPOSAL29Amy Elsner
1038Leja P PerinSpain2025-05-23Benton, John B Jr RENEWAL11Amy Elsner
1039Greenwood C RimGermany2025-05-18Truhlar And Truhlar Attys UNQUALIFIED46Xuxue Feng
1040Alejandro Y FlosiCanada2025-06-13Benton, John B Jr NEGOTIATION46Amy Elsner
1041Silvio O StensethCanada2025-06-12Benton, John B Jr NEW45Ivan Magalhaes
1042Greenwood D WhobreyAustralia2025-05-21Benton, John B Jr RENEWAL65Stephen Shaw
1043Aditya O WhobreyJapan2025-06-14Feltz Printing Service NEW2Elwin Sharvill
1044Nicolas G FigeroaCanada2025-05-20Chapman, Ross E Esq RENEWAL49Elwin Sharvill
1045Leon U FigeroaItaly2025-05-31Chanay, Jeffrey A Esq QUALIFIED80Elwin Sharvill
1046Mayumi S SergiIndia2025-05-20Dorl, James J Esq NEGOTIATION83Amy Elsner
1047Emily X CaudyItaly2025-05-23King, Christopher A Esq QUALIFIED49Elwin Sharvill
1048Wickens S TollnerRussia2025-05-26Printing Dimensions QUALIFIED23Elwin Sharvill
1049Munro T CaldareraUnited Kingdom2025-06-06Buckley Miller Wright NEGOTIATION2Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy W PoquetteGermanyBernardo Dominic QUALIFIED
Silvio F CampainArgentinaBernardo Dominic NEW
James X MacleadBrazilIvan Magalhaes QUALIFIED
Arvin V WhobreyAustraliaIoni Bowcher UNQUALIFIED
Nicolas F StensethGermanyIvan Magalhaes UNQUALIFIED
Murillo K PaprockiArgentinaAnna Fali UNQUALIFIED
Morrow M GarufiIndiaXuxue Feng NEW
Morrow B DarakjyArgentinaIvan Magalhaes PROPOSAL
Stacey P BriddickRussiaAnna Fali QUALIFIED
Arvin B ShinkoFranceXuxue Feng UNQUALIFIED
Munro A RoysterJapanIvan Magalhaes RENEWAL
Leon A ShinkoBrazilStephen Shaw NEGOTIATION
Jefferson U DilliardSpainStephen Shaw NEW
Silvio D RoysterJapanElwin Sharvill PROPOSAL
Claire G MacleadJapanAmy Elsner QUALIFIED
Antonio C DoeGermanyIoni Bowcher NEW
Silvio E MacleadBrazilElwin Sharvill RENEWAL
Francesco M InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro O MaletBrazilIoni Bowcher NEGOTIATION
James K NickaArgentinaOnyama Limba QUALIFIED
Stacey I MaletAustraliaIvan Magalhaes RENEWAL
Faith H GillianFranceIoni Bowcher UNQUALIFIED
Isabel K ButtBrazilAmy Elsner UNQUALIFIED
Deepesh D FlosiCanadaElwin Sharvill UNQUALIFIED
Costa F WieserUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore P IturbideArgentinaStephen Shaw UNQUALIFIED
Arvin W InouyeIndiaIoni Bowcher NEW
Antonio H OstroskyBrazilStephen Shaw UNQUALIFIED
Misaki O FerenczSpainXuxue Feng PROPOSAL
Isabel K FigeroaSpainAsiya Javayant UNQUALIFIED
David A GillianAustraliaAnna Fali PROPOSAL
Misaki O KolmetzUnited KingdomAnna Fali RENEWAL
Misaki T BologniaAustraliaAsiya Javayant NEGOTIATION
Murillo R GarufiAustraliaAmy Elsner NEGOTIATION
Costa Y RoysterArgentinaIvan Magalhaes QUALIFIED
Kadeem O ButtSpainOnyama Limba UNQUALIFIED
Claire Q ChuiIndiaIvan Magalhaes NEW
Octavia K OstroskyItalyXuxue Feng NEW
Octavia Q ButtUnited KingdomAnna Fali RENEWAL
Silvio V NestleUnited KingdomElwin Sharvill PROPOSAL
Mayumi F ShinkoItalyAsiya Javayant RENEWAL
Rodrigues G StensethItalyElwin Sharvill NEGOTIATION
Antonio H DoeJapanAmy Elsner UNQUALIFIED
Morrow G StensethUnited KingdomAmy Elsner RENEWAL
Stacey U ChuiGermanyAmy Elsner NEGOTIATION
Jefferson V NestleFranceIvan Magalhaes QUALIFIED
Aditya B AmigonBrazilXuxue Feng NEW
Rodrigues Y MaletItalyIoni Bowcher NEW
Kadeem I SlusarskiRussiaAnna Fali PROPOSAL
Kadeem I AmigonBrazilAnna Fali NEW
Frozen Columns
Name
Misaki C Shinko
Aruna Q Royster
Emily G Garufi
Cody C Sergi
Jeanfrancois U Maclead
Arvin H Whobrey
Octavia A Albares
Wickens L Caldarera
Rodrigues T Doe
Alejandro A Schemmer
Mujtaba L Wieser
Darci L Kusko
Clifford Q Vocelka
Maria L Venere
Deepesh H Gaucho
Silvio G Bowley
Munro V Figeroa
Jones X Chui
Ivar W Briddick
Izzy D Shinko
Maria U Foller
Claire V Gillian
Cody S Malet
Darci F Garufi
Ivar E Garufi
Faith A Maclead
Munro K Nestle
Silvio Q Flosi
Adams I Caudy
Jeanfrancois S Caudy
Deepesh X Caudy
Darci Z Gillian
Murillo C Ruta
Greenwood C Amigon
Costa Z Caldarera
Faith A Oldroyd
Johnson U Ostrosky
Kadeem X Marrier
Wickens E Vocelka
Jeanfrancois G Inouye
Jefferson K Poquette
Maisha K Vocelka
Costa L Dilliard
Smith X Malet
Salvatore T Marrier
Leja N Venere
Deepesh B Ruta
Salvatore H Malet
Juan O Ostrosky
Jeanfrancois K Foller
IdCountryDate
1000Japan2025-06-08
1001Japan2025-06-03
1002Germany2025-05-25
1003Japan2025-06-11
1004France2025-05-24
1005Germany2025-06-09
1006Spain2025-05-28
1007India2025-05-26
1008Germany2025-05-29
1009Canada2025-06-12
1010Australia2025-05-18
1011Italy2025-05-22
1012Australia2025-06-11
1013Australia2025-05-25
1014Brazil2025-06-09
1015Canada2025-06-03
1016India2025-05-20
1017Russia2025-06-08
1018United Kingdom2025-05-26
1019Germany2025-06-12
1020United Kingdom2025-06-05
1021Australia2025-05-20
1022Australia2025-06-08
1023Russia2025-05-20
1024United Kingdom2025-05-20
1025Russia2025-05-26
1026Japan2025-05-20
1027India2025-06-12
1028Italy2025-06-01
1029India2025-06-05
1030Spain2025-05-25
1031Argentina2025-05-21
1032Australia2025-06-03
1033United Kingdom2025-06-06
1034Spain2025-05-21
1035United Kingdom2025-05-24
1036India2025-06-07
1037Canada2025-06-14
1038Australia2025-06-04
1039Australia2025-06-12
1040Spain2025-06-04
1041Germany2025-05-21
1042France2025-05-18
1043Argentina2025-05-29
1044Russia2025-05-20
1045Australia2025-05-29
1046Japan2025-06-08
1047Canada2025-06-08
1048France2025-06-16
1049Canada2025-05-31

On-Demand Data

NameIdCountryDate
Ashley G Darakjy1000Germany2025-06-03
Antonio V Venere1001Spain2025-05-28
Adams J Caudy1002Brazil2025-06-04
David B Darakjy1003Russia2025-05-18
Greenwood L Venere1004Argentina2025-06-09
Jones T Figeroa1005Argentina2025-06-13
James J Venere1006Germany2025-05-29
Silvio I Gaucho1007Canada2025-06-15
Leja K Poquette1008Spain2025-06-14
Greenwood M Garufi1009Germany2025-05-26
Ashley L Glick1010India2025-06-14
Aditya A Perin1011Australia2025-06-15
Aditya M Waycott1012Brazil2025-05-21
Munro E Royster1013Canada2025-06-01
Francesco N Maclead1014Germany2025-06-13
Jennifer J Briddick1015Germany2025-05-31
Murillo G Albares1016Canada2025-06-13
Morrow V Flosi1017Australia2025-05-19
Leja B Ostrosky1018Brazil2025-06-14
Ashley H Morasca1019United Kingdom2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja X DilliardBrazilAsiya Javayant RENEWAL
Francesco Q CampainBrazilBernardo Dominic NEW
Rodrigues Y RutaIndiaIoni Bowcher RENEWAL
Salvatore U OldroydAustraliaAmy Elsner NEW
Antonio L SlusarskiUnited KingdomAmy Elsner NEW
Kadeem K ChuiSpainOnyama Limba RENEWAL
Octavia P ButtGermanyIvan Magalhaes QUALIFIED
Johnson I MaletFranceStephen Shaw NEGOTIATION
Aruna I ChuiBrazilOnyama Limba UNQUALIFIED
Claire G VocelkaUnited KingdomElwin Sharvill PROPOSAL
Chavez X DilliardIndiaElwin Sharvill NEGOTIATION
Costa E StockhamGermanyXuxue Feng RENEWAL
Mujtaba V SlusarskiArgentinaOnyama Limba RENEWAL
Isabel J BriddickJapanAnna Fali RENEWAL
Aditya B StockhamBrazilAmy Elsner PROPOSAL
Clifford A PoquetteAustraliaXuxue Feng RENEWAL
Darci Y GlickBrazilXuxue Feng UNQUALIFIED
Clifford S GauchoItalyBernardo Dominic UNQUALIFIED
Salvatore C InouyeArgentinaAnna Fali RENEWAL
Greenwood X BowleyArgentinaAsiya Javayant UNQUALIFIED
Smith F RimGermanyIvan Magalhaes RENEWAL
Francesco E PoquetteItalyOnyama Limba NEW
Murillo D KuskoIndiaOnyama Limba UNQUALIFIED
Mujtaba X VenereUnited KingdomIvan Magalhaes NEW
Aika M BologniaIndiaAmy Elsner NEGOTIATION
Jones R DoeFranceAmy Elsner RENEWAL
Antonio V ChuiIndiaBernardo Dominic RENEWAL
Misaki Q SergiIndiaIvan Magalhaes NEW
Octavia A GlickJapanBernardo Dominic NEW
Alejandro C DoeIndiaAmy Elsner NEGOTIATION
Johnson Z CampainAustraliaElwin Sharvill QUALIFIED
Tony A ButtItalyAsiya Javayant NEW
Greenwood R MacleadIndiaXuxue Feng PROPOSAL
Antonio L MarrierSpainStephen Shaw PROPOSAL
Ricardo P GauchoIndiaAnna Fali NEW
Antonio Z SlusarskiAustraliaStephen Shaw RENEWAL
Claire V StockhamAustraliaOnyama Limba UNQUALIFIED
Morrow L ButtArgentinaAmy Elsner NEW
Aditya C DarakjyJapanOnyama Limba QUALIFIED
Ricardo B RutaIndiaAmy Elsner 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>