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
Munro Z PoquetteItalyBernardo Dominic UNQUALIFIED
Ashley Q VenereArgentinaIvan Magalhaes NEGOTIATION
Antonio J PerinArgentinaAmy Elsner NEW
Aruna C BowleyArgentinaBernardo Dominic NEGOTIATION
David C SlusarskiRussiaBernardo Dominic QUALIFIED
Francesco T WaycottRussiaAnna Fali NEGOTIATION
Aditya O TollnerAustraliaOnyama Limba NEGOTIATION
Francesco Z MacleadItalyAnna Fali UNQUALIFIED
Deepesh E FigeroaAustraliaElwin Sharvill RENEWAL
Sinclair C MaletBrazilOnyama Limba QUALIFIED
Alejandro T RutaJapanBernardo Dominic NEW
Smith T GlickBrazilAnna Fali UNQUALIFIED
Greenwood Q FollerCanadaOnyama Limba UNQUALIFIED
Salvatore O WieserCanadaStephen Shaw PROPOSAL
Isabel H RulapaughSpainAsiya Javayant PROPOSAL
Arvin I CaudyArgentinaXuxue Feng UNQUALIFIED
Jones C MorascaIndiaAnna Fali RENEWAL
Aika K FerenczUnited KingdomXuxue Feng UNQUALIFIED
Adams R WhobreyAustraliaAmy Elsner PROPOSAL
Nicolas V DilliardCanadaIoni Bowcher NEW
Johnson W StockhamSpainStephen Shaw NEGOTIATION
Sinclair Q AlbaresSpainAmy Elsner PROPOSAL
Ricardo X DoeCanadaAsiya Javayant RENEWAL
Maria H GarufiArgentinaBernardo Dominic RENEWAL
Morrow D BologniaArgentinaStephen Shaw PROPOSAL
Salvatore V MaletGermanyAmy Elsner QUALIFIED
Ricardo J RulapaughArgentinaStephen Shaw PROPOSAL
Aditya G KolmetzBrazilXuxue Feng UNQUALIFIED
Juan K OstroskyFranceBernardo Dominic RENEWAL
Salvatore E GillianBrazilXuxue Feng NEGOTIATION
Aditya A NestleSpainIoni Bowcher UNQUALIFIED
Leon X MaletJapanAmy Elsner NEW
Johnson U TollnerSpainBernardo Dominic RENEWAL
Salvatore G PoquetteFranceAsiya Javayant PROPOSAL
Izzy M RimSpainAnna Fali UNQUALIFIED
Sinclair N FerenczJapanAsiya Javayant RENEWAL
Julie I FollerFranceBernardo Dominic NEW
Antonio M MacleadRussiaStephen Shaw UNQUALIFIED
Faith D GauchoItalyBernardo Dominic PROPOSAL
Mujtaba O ShinkoBrazilAmy Elsner NEGOTIATION
Adams P FerenczCanadaIoni Bowcher NEW
James W ShinkoJapanIoni Bowcher NEW
Leja A GillianArgentinaStephen Shaw RENEWAL
Darci I GillianFranceElwin Sharvill UNQUALIFIED
Munro A RimAustraliaXuxue Feng RENEWAL
Mujtaba M DarakjyGermanyBernardo Dominic NEW
Darci Y PerinCanadaAnna Fali PROPOSAL
Costa C StockhamSpainIvan Magalhaes PROPOSAL
Ivar Q BologniaItalyBernardo Dominic NEW
Tony S PoquetteGermanyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel V RulapaughFranceAnna Fali PROPOSAL
Misaki A KolmetzRussiaAsiya Javayant NEW
Kaitlin X StockhamGermanyIoni Bowcher QUALIFIED
David L PoquetteArgentinaIvan Magalhaes PROPOSAL
Isabel C NickaArgentinaIoni Bowcher PROPOSAL
Jeanfrancois G AmigonFranceAmy Elsner QUALIFIED
Francesco C KolmetzSpainIvan Magalhaes RENEWAL
James A ShinkoArgentinaBernardo Dominic QUALIFIED
Misaki V SchemmerRussiaStephen Shaw UNQUALIFIED
Wickens G KuskoItalyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie C KuskoJapan2025-05-28Chemel, James L Cpa QUALIFIED20Bernardo Dominic
1001Jones B SergiBrazil2025-06-15Feiner Bros NEGOTIATION35Xuxue Feng
1002Johnson O BriddickIndia2025-06-07Benton, John B Jr RENEWAL21Xuxue Feng
1003Izzy R MaletGermany2025-06-07Printing Dimensions NEW60Ivan Magalhaes
1004Stacey W KuskoAustralia2025-05-29Dorl, James J Esq NEGOTIATION80Elwin Sharvill
1005Tony F MaletGermany2025-05-28Chemel, James L Cpa NEGOTIATION71Onyama Limba
1006Misaki E AmigonSpain2025-05-24Dorl, James J Esq UNQUALIFIED56Anna Fali
1007Kadeem G MaletFrance2025-06-09Benton, John B Jr NEGOTIATION39Onyama Limba
1008Munro T OldroydIndia2025-05-20King, Christopher A Esq PROPOSAL74Ivan Magalhaes
1009Deepesh Q StensethItaly2025-05-29Chemel, James L Cpa UNQUALIFIED62Onyama Limba
1010Wickens P OstroskyIndia2025-06-08Commercial Press NEGOTIATION27Ivan Magalhaes
1011Claire I OstroskyFrance2025-05-21Chemel, James L Cpa RENEWAL69Onyama Limba
1012Rodrigues A SaylorsAustralia2025-05-26Buckley Miller Wright UNQUALIFIED42Asiya Javayant
1013Faith K StockhamGermany2025-05-27Chapman, Ross E Esq UNQUALIFIED47Ioni Bowcher
1014Maria X PaprockiIndia2025-05-28Morlong Associates NEGOTIATION89Onyama Limba
1015David Q KolmetzJapan2025-06-14Feiner Bros PROPOSAL23Asiya Javayant
1016Mujtaba M WaycottCanada2025-06-06Dorl, James J Esq QUALIFIED53Elwin Sharvill
1017Clifford W MacleadArgentina2025-05-22Commercial Press QUALIFIED97Asiya Javayant
1018Claire J RimItaly2025-06-07Truhlar And Truhlar Attys PROPOSAL0Elwin Sharvill
1019Johnson X MarrierAustralia2025-05-25Truhlar And Truhlar Attys PROPOSAL15Amy Elsner
1020Chavez Z GauchoAustralia2025-06-05Chemel, James L Cpa PROPOSAL38Ivan Magalhaes
1021Octavia R FigeroaGermany2025-06-05Rangoni Of Florence RENEWAL17Xuxue Feng
1022Ricardo F AmigonJapan2025-05-20Buckley Miller Wright UNQUALIFIED38Anna Fali
1023Kadeem G TollnerJapan2025-05-24Chemel, James L Cpa RENEWAL47Onyama Limba
1024Jones D AlbaresAustralia2025-05-20Rangoni Of Florence UNQUALIFIED6Ivan Magalhaes
1025Julie V PaprockiIndia2025-05-29Morlong Associates QUALIFIED96Elwin Sharvill
1026Leja I KuskoArgentina2025-05-18Rousseaux, Michael Esq UNQUALIFIED83Xuxue Feng
1027Emily T SlusarskiIndia2025-06-14Feiner Bros RENEWAL73Xuxue Feng
1028Maria O PerinGermany2025-06-12Chapman, Ross E Esq QUALIFIED25Asiya Javayant
1029Greenwood T OstroskyJapan2025-06-01Feltz Printing Service NEW6Ioni Bowcher
1030Stacey F VenereItaly2025-05-21King, Christopher A Esq UNQUALIFIED19Ioni Bowcher
1031Ricardo A MaletBrazil2025-05-29Feltz Printing Service QUALIFIED1Stephen Shaw
1032Ricardo P GlickIndia2025-05-27Morlong Associates PROPOSAL67Bernardo Dominic
1033Isabel F GauchoRussia2025-05-21Morlong Associates RENEWAL37Xuxue Feng
1034Clifford Q InouyeIndia2025-05-23Commercial Press NEW89Elwin Sharvill
1035Sinclair K GauchoIndia2025-06-10Benton, John B Jr RENEWAL84Elwin Sharvill
1036Jeanfrancois R RoysterItaly2025-05-22Morlong Associates QUALIFIED86Stephen Shaw
1037Ivar H FigeroaSpain2025-06-07Commercial Press PROPOSAL3Xuxue Feng
1038Wickens C WieserRussia2025-06-16Feiner Bros NEGOTIATION5Ioni Bowcher
1039Ivar S ChuiItaly2025-06-09Feiner Bros RENEWAL78Anna Fali
1040Ricardo I MarrierArgentina2025-05-25Feltz Printing Service NEW10Onyama Limba
1041Costa Z BriddickCanada2025-06-08Dorl, James J Esq NEGOTIATION78Asiya Javayant
1042Jeanfrancois L CampainAustralia2025-05-30King, Christopher A Esq NEW63Ioni Bowcher
1043Munro E PerinRussia2025-05-30Buckley Miller Wright UNQUALIFIED9Ioni Bowcher
1044Chavez T OldroydIndia2025-05-27Printing Dimensions NEGOTIATION27Xuxue Feng
1045Jefferson J MacleadCanada2025-05-19Commercial Press UNQUALIFIED12Ioni Bowcher
1046Jefferson Z RulapaughUnited Kingdom2025-05-31Chemel, James L Cpa QUALIFIED42Elwin Sharvill
1047Ivar P FollerFrance2025-06-09Chemel, James L Cpa UNQUALIFIED82Xuxue Feng
1048Costa D NickaBrazil2025-05-30Feiner Bros QUALIFIED81Bernardo Dominic
1049Jefferson I DoeArgentina2025-05-26Feiner Bros QUALIFIED7Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi N SergiItalyOnyama Limba PROPOSAL
Isabel V VenereJapanAmy Elsner QUALIFIED
Sinclair A CaldareraAustraliaBernardo Dominic UNQUALIFIED
Wickens Q IturbideBrazilAsiya Javayant QUALIFIED
Stacey V VenereUnited KingdomAsiya Javayant QUALIFIED
Alejandro R NickaGermanyAsiya Javayant RENEWAL
David P NestleCanadaIoni Bowcher QUALIFIED
Misaki L FigeroaUnited KingdomElwin Sharvill PROPOSAL
Jones U ChuiIndiaAnna Fali NEW
Costa H RimUnited KingdomAmy Elsner NEW
Ivar U PaprockiBrazilBernardo Dominic PROPOSAL
Mujtaba N KuskoFranceAmy Elsner RENEWAL
Salvatore C KolmetzRussiaBernardo Dominic PROPOSAL
Arvin J MorascaArgentinaAmy Elsner RENEWAL
Jefferson Y PoquetteRussiaAmy Elsner NEGOTIATION
Silvio Y KolmetzGermanyIoni Bowcher NEGOTIATION
Faith D MarrierJapanOnyama Limba RENEWAL
Darci V RulapaughSpainIvan Magalhaes NEW
Alejandro Y DilliardItalyAnna Fali NEW
Kadeem O CaldareraUnited KingdomElwin Sharvill RENEWAL
Jennifer N ButtIndiaXuxue Feng UNQUALIFIED
Izzy W RulapaughAustraliaOnyama Limba NEGOTIATION
Wickens P StockhamArgentinaStephen Shaw UNQUALIFIED
Salvatore W FerenczIndiaAsiya Javayant QUALIFIED
Stacey O CaudyIndiaIvan Magalhaes QUALIFIED
Jefferson E NestleBrazilAnna Fali NEW
Jeanfrancois U AmigonArgentinaAmy Elsner NEW
Juan A TollnerRussiaAsiya Javayant QUALIFIED
Maisha F OldroydFranceIoni Bowcher UNQUALIFIED
Stacey Y VenereUnited KingdomAnna Fali RENEWAL
Ashley D NestleUnited KingdomIvan Magalhaes NEGOTIATION
Clifford P RimBrazilIoni Bowcher RENEWAL
Aruna V SaylorsJapanIoni Bowcher RENEWAL
Rodrigues M CampainUnited KingdomAnna Fali PROPOSAL
Emily G DilliardArgentinaAnna Fali UNQUALIFIED
Claire A WieserArgentinaXuxue Feng RENEWAL
Mayumi H CaldareraCanadaIvan Magalhaes NEGOTIATION
Aditya U GillianIndiaIoni Bowcher RENEWAL
Adams Y CaudyItalyIoni Bowcher UNQUALIFIED
Morrow M VocelkaFranceAmy Elsner PROPOSAL
Maisha U StensethArgentinaIoni Bowcher NEW
Adams D IturbideArgentinaAsiya Javayant UNQUALIFIED
Rodrigues Y VocelkaIndiaElwin Sharvill NEGOTIATION
Maria D VenereRussiaElwin Sharvill RENEWAL
Faith E StensethAustraliaIoni Bowcher UNQUALIFIED
Tony Z StensethSpainXuxue Feng NEW
Misaki Z FollerUnited KingdomXuxue Feng UNQUALIFIED
Julie R VenereRussiaStephen Shaw NEW
Juan V SlusarskiBrazilElwin Sharvill PROPOSAL
Tony B FlosiItalyStephen Shaw PROPOSAL
Frozen Columns
Name
Leon J Iturbide
Deepesh X Rulapaugh
Kaitlin L Sergi
Arvin M Malet
Octavia C Marrier
Juan S Flosi
Antonio G Oldroyd
Nicolas P Foller
Aruna M Campain
Jeanfrancois D Bolognia
Jones P Kolmetz
Faith R Paprocki
Arvin K Doe
David K Darakjy
Claire F Bolognia
Ashley V Butt
Maisha X Marrier
Leon T Briddick
Ivar T Figeroa
Arvin W Bolognia
Stacey Q Sergi
Aditya B Schemmer
Morrow H Ferencz
Jennifer R Garufi
Juan Z Figeroa
Stacey T Sergi
Kadeem B Morasca
James W Albares
Mujtaba S Caldarera
Aika P Maclead
Isabel Y Paprocki
Costa T Whobrey
Adams M Figeroa
Juan G Bolognia
Johnson G Maclead
Cody E Butt
Julie I Tollner
Murillo Q Shinko
Jones K Sergi
Tony P Shinko
Arvin H Briddick
Greenwood K Dilliard
Jones Z Gillian
Jennifer B Rim
Morrow C Inouye
James P Foller
Adams W Iturbide
Chavez M Shinko
Leon W Ostrosky
Izzy W Sergi
IdCountryDate
1000Italy2025-05-19
1001Argentina2025-05-21
1002United Kingdom2025-06-04
1003United Kingdom2025-05-29
1004Germany2025-06-05
1005India2025-06-09
1006India2025-06-01
1007United Kingdom2025-06-02
1008Germany2025-06-14
1009Brazil2025-05-18
1010Spain2025-05-25
1011Japan2025-06-05
1012Spain2025-05-29
1013India2025-05-24
1014Argentina2025-06-04
1015Argentina2025-06-09
1016France2025-05-29
1017Germany2025-06-16
1018Germany2025-06-15
1019Australia2025-06-10
1020Japan2025-06-11
1021Japan2025-06-10
1022Japan2025-05-23
1023Australia2025-06-03
1024Russia2025-06-14
1025Argentina2025-05-19
1026Argentina2025-06-04
1027India2025-05-29
1028Spain2025-05-20
1029Germany2025-06-15
1030France2025-06-07
1031Italy2025-06-16
1032Spain2025-06-12
1033Brazil2025-06-04
1034Canada2025-05-22
1035Germany2025-06-05
1036India2025-05-20
1037Australia2025-05-23
1038India2025-05-31
1039India2025-06-14
1040India2025-06-09
1041Russia2025-05-31
1042France2025-06-06
1043India2025-06-12
1044Russia2025-05-30
1045Argentina2025-05-27
1046Argentina2025-05-19
1047Russia2025-05-19
1048Japan2025-05-25
1049France2025-06-09

On-Demand Data

NameIdCountryDate
Costa U Figeroa1000France2025-05-30
Morrow H Nicka1001Japan2025-06-08
Morrow W Malet1002Canada2025-05-20
Mujtaba D Waycott1003Argentina2025-05-22
Adams F Rulapaugh1004Japan2025-05-29
Maria I Malet1005France2025-06-05
Misaki I Poquette1006Spain2025-06-12
Murillo C Butt1007Spain2025-06-13
Johnson U Doe1008Argentina2025-06-01
Silvio N Stenseth1009Japan2025-06-01
Arvin X Bolognia1010Brazil2025-05-19
Ashley M Nicka1011France2025-05-19
Aruna S Caldarera1012Brazil2025-05-30
Ashley R Briddick1013Russia2025-06-09
Wickens Z Kusko1014Australia2025-06-16
Leon K Darakjy1015Russia2025-06-07
Arvin J Ostrosky1016Japan2025-05-19
Clifford A Vocelka1017Russia2025-05-19
Rodrigues L Chui1018Japan2025-05-27
Adams T Vocelka1019India2025-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire Z FigeroaJapanIvan Magalhaes NEW
Mayumi F AmigonFranceXuxue Feng RENEWAL
Claire F BologniaCanadaIvan Magalhaes UNQUALIFIED
Salvatore U MorascaGermanyAsiya Javayant PROPOSAL
Izzy G GauchoSpainAnna Fali NEGOTIATION
Izzy R AlbaresJapanAnna Fali UNQUALIFIED
Aika Z FlosiJapanIvan Magalhaes RENEWAL
Rodrigues L KolmetzJapanAnna Fali RENEWAL
Stacey Q MarrierRussiaXuxue Feng UNQUALIFIED
Chavez A CaudyArgentinaStephen Shaw NEGOTIATION
Octavia P PoquetteFranceStephen Shaw NEGOTIATION
Leon F WaycottCanadaStephen Shaw UNQUALIFIED
Claire C PerinFranceXuxue Feng UNQUALIFIED
Morrow B BowleyAustraliaIoni Bowcher QUALIFIED
Ashley P ShinkoJapanBernardo Dominic QUALIFIED
Clifford K RoysterJapanAnna Fali UNQUALIFIED
David Y FerenczCanadaIvan Magalhaes PROPOSAL
Ashley T TollnerSpainOnyama Limba NEGOTIATION
Ricardo S WieserItalyAsiya Javayant NEW
Jeanfrancois M NickaUnited KingdomAmy Elsner NEW
David L GauchoFranceIvan Magalhaes NEGOTIATION
Sinclair H KuskoAustraliaIoni Bowcher UNQUALIFIED
Deepesh H RulapaughBrazilIvan Magalhaes NEW
Isabel E WaycottItalyStephen Shaw NEGOTIATION
Maria S ShinkoIndiaAnna Fali NEW
Deepesh Y SlusarskiFranceIvan Magalhaes PROPOSAL
Ashley Q MacleadRussiaXuxue Feng NEW
Leja T PerinCanadaAmy Elsner NEW
Cody M CaldareraAustraliaStephen Shaw NEGOTIATION
Chavez Q DilliardItalyIoni Bowcher QUALIFIED
Arvin X GauchoItalyElwin Sharvill UNQUALIFIED
Faith H MaletSpainIoni Bowcher NEW
Aditya J KolmetzAustraliaXuxue Feng UNQUALIFIED
Murillo V KuskoAustraliaIoni Bowcher QUALIFIED
James K VenereIndiaBernardo Dominic NEW
Ricardo Z MacleadGermanyIoni Bowcher RENEWAL
Cody G OstroskySpainBernardo Dominic RENEWAL
Misaki J RimUnited KingdomIvan Magalhaes NEW
Jefferson R VenereUnited KingdomXuxue Feng NEW
Misaki C CampainRussiaIvan Magalhaes 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>