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
Kaitlin Y CampainArgentinaElwin Sharvill NEW
Cody Q RoysterJapanIoni Bowcher NEW
Rodrigues S GillianGermanyAmy Elsner PROPOSAL
Octavia O GillianJapanIvan Magalhaes RENEWAL
Ivar D AlbaresBrazilStephen Shaw PROPOSAL
Maisha P OstroskyFranceStephen Shaw NEW
Darci E BowleyArgentinaAsiya Javayant NEW
Leja G NickaCanadaElwin Sharvill RENEWAL
Salvatore H NestleItalyElwin Sharvill PROPOSAL
Munro Q DilliardJapanElwin Sharvill RENEWAL
Leon Q MaletIndiaAmy Elsner PROPOSAL
Smith I AmigonUnited KingdomIvan Magalhaes PROPOSAL
Izzy L WaycottGermanyIvan Magalhaes PROPOSAL
James O IturbideArgentinaStephen Shaw RENEWAL
Chavez R StockhamAustraliaIoni Bowcher QUALIFIED
Izzy N FerenczAustraliaIoni Bowcher QUALIFIED
Darci C CaldareraItalyAmy Elsner QUALIFIED
Morrow G WaycottJapanAsiya Javayant PROPOSAL
Isabel U BowleyUnited KingdomOnyama Limba RENEWAL
Ashley H DilliardIndiaXuxue Feng PROPOSAL
Deepesh S FlosiArgentinaStephen Shaw RENEWAL
Morrow J WaycottGermanyIoni Bowcher NEW
Jefferson F PaprockiGermanyStephen Shaw QUALIFIED
Ivar G MarrierJapanBernardo Dominic RENEWAL
Arvin J MarrierFranceAsiya Javayant RENEWAL
Clifford H ShinkoFranceStephen Shaw UNQUALIFIED
Silvio H NickaItalyIoni Bowcher PROPOSAL
Juan F AmigonBrazilAmy Elsner NEW
Morrow H FollerFranceStephen Shaw QUALIFIED
Darci R NickaGermanyXuxue Feng RENEWAL
Aruna N WaycottUnited KingdomAnna Fali PROPOSAL
Darci Z NickaFranceStephen Shaw RENEWAL
David J RutaGermanyIoni Bowcher UNQUALIFIED
Stacey A BriddickArgentinaStephen Shaw PROPOSAL
Tony F BowleyArgentinaElwin Sharvill NEW
James S WaycottCanadaStephen Shaw UNQUALIFIED
Claire F FlosiUnited KingdomOnyama Limba QUALIFIED
Wickens T BriddickJapanXuxue Feng NEGOTIATION
Mujtaba A RulapaughItalyXuxue Feng RENEWAL
Jeanfrancois G FigeroaIndiaBernardo Dominic PROPOSAL
Ashley K OstroskyGermanyXuxue Feng NEGOTIATION
Ashley F MaletGermanyIvan Magalhaes UNQUALIFIED
Tony E StensethAustraliaStephen Shaw UNQUALIFIED
Munro O IturbideFranceAsiya Javayant QUALIFIED
Wickens G NickaCanadaXuxue Feng UNQUALIFIED
Claire U ChuiCanadaOnyama Limba NEGOTIATION
Antonio Q SaylorsRussiaAsiya Javayant UNQUALIFIED
Salvatore E AlbaresSpainOnyama Limba UNQUALIFIED
Ivar P FerenczRussiaIoni Bowcher QUALIFIED
Salvatore E SlusarskiSpainElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Arvin Q GlickArgentinaAsiya Javayant UNQUALIFIED
Leon I ButtItalyElwin Sharvill RENEWAL
Alejandro L KolmetzAustraliaElwin Sharvill RENEWAL
Kaitlin Y GauchoBrazilXuxue Feng NEW
Nicolas E PaprockiItalyOnyama Limba QUALIFIED
Alejandro I FollerSpainAsiya Javayant UNQUALIFIED
Murillo B DoeIndiaAnna Fali NEGOTIATION
Jefferson M OldroydFranceAnna Fali PROPOSAL
Murillo K CaudyCanadaBernardo Dominic NEGOTIATION
Ricardo B RimAustraliaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh S NickaIndia2026-08-15Buckley Miller Wright PROPOSAL89Stephen Shaw
1001Sinclair Z CampainJapan2026-07-24King, Christopher A Esq PROPOSAL23Amy Elsner
1002Munro V FollerIndia2026-08-15Morlong Associates NEW2Xuxue Feng
1003Sinclair J BriddickIndia2026-08-12Commercial Press UNQUALIFIED11Anna Fali
1004Misaki W VocelkaUnited Kingdom2026-08-03Commercial Press PROPOSAL76Amy Elsner
1005Isabel P FigeroaSpain2026-08-07Chemel, James L Cpa RENEWAL51Ivan Magalhaes
1006Morrow P GarufiItaly2026-08-20Buckley Miller Wright PROPOSAL95Stephen Shaw
1007David Z PoquetteJapan2026-08-13Commercial Press QUALIFIED25Stephen Shaw
1008Clifford N VenereSpain2026-08-16Rangoni Of Florence NEGOTIATION8Asiya Javayant
1009Silvio A SergiItaly2026-07-27Truhlar And Truhlar Attys RENEWAL30Amy Elsner
1010Jeanfrancois O DarakjySpain2026-08-20Printing Dimensions QUALIFIED51Ioni Bowcher
1011Deepesh S OstroskyGermany2026-08-21Chanay, Jeffrey A Esq NEW81Onyama Limba
1012Misaki E KuskoGermany2026-08-21Buckley Miller Wright QUALIFIED13Ivan Magalhaes
1013Ashley Y SergiArgentina2026-08-09Rousseaux, Michael Esq NEW48Amy Elsner
1014Antonio S TollnerJapan2026-08-18Dorl, James J Esq NEW93Asiya Javayant
1015Aika N KolmetzUnited Kingdom2026-07-28Dorl, James J Esq UNQUALIFIED78Onyama Limba
1016David K WieserGermany2026-08-05Rangoni Of Florence QUALIFIED77Bernardo Dominic
1017Stacey V FerenczBrazil2026-08-07Truhlar And Truhlar Attys QUALIFIED33Asiya Javayant
1018Cody S MarrierItaly2026-08-10Dorl, James J Esq NEGOTIATION27Amy Elsner
1019Juan S FollerAustralia2026-08-01Morlong Associates UNQUALIFIED11Bernardo Dominic
1020Maria E OstroskyIndia2026-08-18King, Christopher A Esq PROPOSAL83Bernardo Dominic
1021Jefferson D DoeCanada2026-07-26Chemel, James L Cpa NEW19Ioni Bowcher
1022Jones U WaycottArgentina2026-08-21Dorl, James J Esq RENEWAL45Ivan Magalhaes
1023Ashley K ButtFrance2026-07-24Truhlar And Truhlar Attys QUALIFIED41Ivan Magalhaes
1024Smith F MaletJapan2026-08-07Buckley Miller Wright RENEWAL96Stephen Shaw
1025Jones Q DilliardGermany2026-08-14Rousseaux, Michael Esq RENEWAL96Onyama Limba
1026Ivar T PaprockiJapan2026-08-11Morlong Associates PROPOSAL60Elwin Sharvill
1027Wickens L SaylorsBrazil2026-08-16Chapman, Ross E Esq UNQUALIFIED31Ivan Magalhaes
1028Darci I GillianGermany2026-08-07Benton, John B Jr RENEWAL59Asiya Javayant
1029Leja F IturbideRussia2026-08-06Commercial Press NEW14Elwin Sharvill
1030Tony M DilliardItaly2026-08-09Rangoni Of Florence UNQUALIFIED84Asiya Javayant
1031Clifford N WhobreyFrance2026-08-09Dorl, James J Esq UNQUALIFIED30Onyama Limba
1032Adams G GauchoGermany2026-08-06Dorl, James J Esq PROPOSAL19Amy Elsner
1033Greenwood N KuskoCanada2026-07-24Truhlar And Truhlar Attys PROPOSAL41Xuxue Feng
1034Izzy G KuskoGermany2026-08-08Commercial Press NEGOTIATION42Elwin Sharvill
1035Darci Z ShinkoGermany2026-08-02Dorl, James J Esq QUALIFIED58Asiya Javayant
1036Mayumi W CaudyGermany2026-08-17Buckley Miller Wright PROPOSAL46Amy Elsner
1037Morrow B IturbideAustralia2026-07-27Printing Dimensions NEGOTIATION43Elwin Sharvill
1038Claire I CampainRussia2026-07-27Commercial Press RENEWAL65Elwin Sharvill
1039Izzy R WaycottRussia2026-08-19Printing Dimensions RENEWAL93Asiya Javayant
1040Darci Q GauchoGermany2026-08-11Feiner Bros NEW30Bernardo Dominic
1041David L BologniaCanada2026-08-10Feltz Printing Service QUALIFIED74Anna Fali
1042Ashley A GillianRussia2026-08-11Commercial Press RENEWAL52Xuxue Feng
1043Leon Q OldroydSpain2026-08-16King, Christopher A Esq NEW58Ioni Bowcher
1044Maisha R FollerAustralia2026-08-05Printing Dimensions NEGOTIATION12Ivan Magalhaes
1045Mayumi X GarufiFrance2026-07-29Feiner Bros QUALIFIED3Anna Fali
1046Aika I MarrierGermany2026-08-15Chapman, Ross E Esq RENEWAL66Xuxue Feng
1047Isabel W IturbideFrance2026-08-04Printing Dimensions PROPOSAL89Stephen Shaw
1048Tony B WaycottJapan2026-08-14Morlong Associates RENEWAL99Ivan Magalhaes
1049Jones B RoysterSpain2026-08-17Chemel, James L Cpa UNQUALIFIED26Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Alejandro G RoysterFranceIoni Bowcher QUALIFIED
Cody K DilliardGermanyAnna Fali NEW
Murillo L FollerCanadaIvan Magalhaes PROPOSAL
Izzy F FerenczItalyAnna Fali NEW
Cody O PaprockiSpainAmy Elsner QUALIFIED
Jefferson D PaprockiRussiaIoni Bowcher NEW
Darci U IturbideBrazilIoni Bowcher PROPOSAL
Murillo A FigeroaCanadaOnyama Limba UNQUALIFIED
Jennifer E ShinkoCanadaAmy Elsner PROPOSAL
Maria U ChuiUnited KingdomOnyama Limba RENEWAL
Costa Z AlbaresArgentinaBernardo Dominic PROPOSAL
Aruna Z KolmetzRussiaOnyama Limba NEW
Munro D MaletFranceIoni Bowcher RENEWAL
Morrow O InouyeCanadaIoni Bowcher UNQUALIFIED
Octavia N TollnerArgentinaStephen Shaw NEGOTIATION
Mayumi A PerinAustraliaOnyama Limba UNQUALIFIED
Murillo X RimArgentinaStephen Shaw QUALIFIED
Cody G AlbaresItalyOnyama Limba UNQUALIFIED
Cody Y MacleadItalyIvan Magalhaes QUALIFIED
Stacey H MaletIndiaElwin Sharvill PROPOSAL
Octavia J IturbideBrazilStephen Shaw RENEWAL
Jeanfrancois C KolmetzGermanyOnyama Limba PROPOSAL
Tony Y RutaSpainStephen Shaw NEGOTIATION
Leon Z CampainSpainIoni Bowcher NEW
Salvatore N RulapaughRussiaIoni Bowcher UNQUALIFIED
Isabel C WieserCanadaAmy Elsner QUALIFIED
Costa Z DilliardSpainIvan Magalhaes RENEWAL
David S StockhamFranceBernardo Dominic NEGOTIATION
Cody I FlosiCanadaOnyama Limba UNQUALIFIED
Misaki I ButtArgentinaBernardo Dominic PROPOSAL
Stacey A KuskoIndiaAsiya Javayant RENEWAL
Isabel Y OstroskyIndiaXuxue Feng PROPOSAL
Octavia W FigeroaRussiaStephen Shaw UNQUALIFIED
Salvatore J MaletIndiaIvan Magalhaes QUALIFIED
Jefferson A MorascaIndiaElwin Sharvill RENEWAL
Ivar N SlusarskiCanadaAsiya Javayant PROPOSAL
Leja U FerenczJapanAsiya Javayant UNQUALIFIED
Aruna I SlusarskiSpainAmy Elsner UNQUALIFIED
Tony I OstroskyJapanOnyama Limba QUALIFIED
Nicolas E NestleArgentinaXuxue Feng QUALIFIED
Mujtaba I CaldareraCanadaAmy Elsner NEW
Antonio R CaudyArgentinaBernardo Dominic RENEWAL
Misaki K MorascaBrazilBernardo Dominic NEW
Greenwood M AlbaresUnited KingdomXuxue Feng NEGOTIATION
Smith B RimFranceAsiya Javayant RENEWAL
Maria B VenereAustraliaXuxue Feng UNQUALIFIED
Ricardo J NickaRussiaAnna Fali PROPOSAL
Stacey Q VocelkaJapanOnyama Limba PROPOSAL
Aika G StensethItalyAsiya Javayant RENEWAL
Aruna A MaletSpainAmy Elsner UNQUALIFIED
Frozen Columns
Name
Aika D Stenseth
Rodrigues C Dilliard
Leon J Briddick
Juan K Tollner
Julie W Marrier
Juan S Maclead
Adams E Saylors
David A Kusko
Darci B Rulapaugh
Claire L Rim
Tony H Schemmer
Deepesh L Venere
Murillo R Inouye
Ricardo R Waycott
Mujtaba H Wieser
Adams K Caudy
Chavez X Caudy
Kaitlin W Inouye
Maisha M Morasca
Ricardo Y Malet
Darci W Venere
Octavia J Gillian
Johnson M Tollner
Aika A Briddick
Ricardo S Foller
Aruna W Butt
Murillo D Ruta
Mujtaba J Gaucho
Claire J Poquette
Jennifer K Ruta
Misaki L Caudy
Ricardo U Garufi
Aika J Flosi
Jennifer U Saylors
Octavia M Poquette
Smith V Malet
Clifford N Stockham
Misaki G Nicka
Maisha Y Butt
Deepesh X Amigon
Jones J Maclead
Costa S Wieser
Faith U Bolognia
Maria M Stenseth
Tony N Chui
Adams D Malet
Maisha Q Shinko
Salvatore Q Darakjy
Silvio P Morasca
Julie R Nestle
IdCountryDate
1000India2026-08-18
1001Brazil2026-07-29
1002Argentina2026-08-03
1003Germany2026-08-12
1004Italy2026-08-10
1005Italy2026-08-21
1006France2026-08-01
1007France2026-07-27
1008India2026-07-25
1009Argentina2026-08-14
1010Germany2026-08-06
1011Japan2026-08-14
1012Germany2026-07-31
1013Germany2026-08-06
1014France2026-08-18
1015Argentina2026-07-23
1016Argentina2026-08-13
1017Australia2026-07-28
1018Canada2026-08-01
1019Germany2026-08-13
1020France2026-08-05
1021Spain2026-07-29
1022Brazil2026-07-28
1023Australia2026-08-05
1024Brazil2026-08-10
1025Russia2026-08-14
1026Brazil2026-08-11
1027Brazil2026-08-09
1028Brazil2026-08-05
1029Germany2026-08-11
1030Argentina2026-08-08
1031United Kingdom2026-08-17
1032United Kingdom2026-08-15
1033United Kingdom2026-07-27
1034Canada2026-07-23
1035United Kingdom2026-07-24
1036Australia2026-08-05
1037Germany2026-08-18
1038France2026-08-11
1039Japan2026-08-20
1040Japan2026-08-15
1041Brazil2026-08-16
1042Spain2026-08-07
1043India2026-07-25
1044Brazil2026-08-05
1045Spain2026-08-10
1046Canada2026-08-21
1047India2026-08-12
1048Spain2026-08-16
1049Canada2026-08-04

On-Demand Data

NameIdCountryDate
Misaki H Shinko1000Canada2026-08-20
Deepesh V Oldroyd1001France2026-08-08
Kadeem I Waycott1002Germany2026-07-30
Faith T Rulapaugh1003Italy2026-07-27
Darci Q Stenseth1004Argentina2026-08-20
Ashley V Nestle1005Australia2026-08-11
Costa D Slusarski1006Russia2026-08-16
Julie N Caudy1007United Kingdom2026-08-12
Jones H Ostrosky1008Italy2026-08-14
Johnson L Darakjy1009Australia2026-08-13
Mujtaba F Rim1010Argentina2026-07-24
Morrow D Wieser1011Brazil2026-08-06
Mujtaba F Inouye1012Australia2026-08-01
Aditya E Figeroa1013France2026-08-03
Stacey Z Royster1014Italy2026-08-21
Aditya J Maclead1015India2026-08-10
Francesco U Flosi1016Japan2026-08-01
Leon O Iturbide1017Russia2026-08-09
Maisha L Marrier1018India2026-08-13
Greenwood R Vocelka1019Australia2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley N StockhamBrazilOnyama Limba RENEWAL
Jefferson W KuskoAustraliaStephen Shaw QUALIFIED
Maisha F CaudyJapanAsiya Javayant RENEWAL
Mujtaba R CampainCanadaXuxue Feng UNQUALIFIED
Aruna K WaycottSpainIvan Magalhaes NEW
Deepesh H WaycottUnited KingdomIoni Bowcher NEGOTIATION
Francesco E AmigonJapanStephen Shaw QUALIFIED
Jeanfrancois N SaylorsItalyAsiya Javayant PROPOSAL
Costa L GauchoIndiaIvan Magalhaes NEGOTIATION
James G WhobreyUnited KingdomStephen Shaw PROPOSAL
Adams X ButtCanadaIvan Magalhaes NEW
Emily C NestleArgentinaIvan Magalhaes UNQUALIFIED
Salvatore M ButtCanadaAmy Elsner NEGOTIATION
Greenwood F AmigonUnited KingdomOnyama Limba PROPOSAL
Misaki I NickaBrazilIoni Bowcher NEW
Julie G NestleJapanStephen Shaw UNQUALIFIED
Nicolas U NickaAustraliaStephen Shaw UNQUALIFIED
Kadeem U MacleadBrazilOnyama Limba PROPOSAL
Kaitlin T NickaItalyAmy Elsner NEW
David Z SergiJapanIvan Magalhaes UNQUALIFIED
Murillo X AmigonAustraliaXuxue Feng QUALIFIED
Claire N PerinFranceElwin Sharvill RENEWAL
Aruna U GauchoJapanBernardo Dominic NEGOTIATION
Kadeem Q AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Nicolas D CaudyFranceXuxue Feng RENEWAL
Aditya M StockhamSpainIoni Bowcher QUALIFIED
Sinclair W MarrierBrazilIvan Magalhaes QUALIFIED
Kadeem A StensethIndiaAmy Elsner UNQUALIFIED
Chavez F ButtFranceStephen Shaw PROPOSAL
Alejandro P BologniaAustraliaBernardo Dominic NEGOTIATION
Adams O VenereGermanyAsiya Javayant PROPOSAL
Rodrigues N SaylorsCanadaStephen Shaw PROPOSAL
Aruna O BriddickAustraliaXuxue Feng PROPOSAL
David Q TollnerJapanOnyama Limba UNQUALIFIED
Mujtaba Z DilliardFranceIoni Bowcher NEGOTIATION
Mayumi Z FerenczRussiaXuxue Feng PROPOSAL
Misaki F PoquetteRussiaIvan Magalhaes NEW
Chavez O BowleyItalyIoni Bowcher NEW
Kaitlin G MaletItalyStephen Shaw NEGOTIATION
Jennifer F MarrierItalyIoni Bowcher NEW

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