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
Juan B StensethSpainElwin Sharvill NEGOTIATION
Kadeem Y RimItalyXuxue Feng QUALIFIED
Jeanfrancois A RimUnited KingdomStephen Shaw UNQUALIFIED
Silvio Q BriddickIndiaIoni Bowcher QUALIFIED
Kadeem O SaylorsJapanBernardo Dominic NEGOTIATION
Adams K BowleyAustraliaOnyama Limba RENEWAL
Chavez T TollnerSpainXuxue Feng NEGOTIATION
Kaitlin P VenereAustraliaAnna Fali NEW
Aruna X RutaSpainIoni Bowcher UNQUALIFIED
Juan U CampainArgentinaAnna Fali NEW
Wickens W FollerFranceAsiya Javayant NEW
Adams O MorascaUnited KingdomAsiya Javayant QUALIFIED
Murillo F MarrierSpainOnyama Limba RENEWAL
Maria N GlickItalyAmy Elsner QUALIFIED
Leja T MorascaItalyAnna Fali NEW
Aruna N InouyeSpainStephen Shaw QUALIFIED
Jefferson K OstroskyBrazilIvan Magalhaes PROPOSAL
Jeanfrancois P DoeBrazilOnyama Limba PROPOSAL
Francesco T ButtFranceOnyama Limba QUALIFIED
Salvatore N SaylorsSpainIvan Magalhaes RENEWAL
Murillo O KuskoBrazilIvan Magalhaes PROPOSAL
Arvin N PoquetteBrazilAmy Elsner RENEWAL
Claire Y MarrierCanadaOnyama Limba PROPOSAL
Octavia J PerinGermanyAnna Fali RENEWAL
Maisha W RutaUnited KingdomIoni Bowcher QUALIFIED
Antonio Y DoeCanadaXuxue Feng UNQUALIFIED
Aditya V CaldareraAustraliaOnyama Limba QUALIFIED
Kaitlin Q OldroydJapanElwin Sharvill RENEWAL
Wickens S FollerSpainStephen Shaw NEGOTIATION
Alejandro R NickaJapanAsiya Javayant UNQUALIFIED
Isabel K IturbideRussiaIvan Magalhaes QUALIFIED
Darci H SaylorsAustraliaAmy Elsner PROPOSAL
Jeanfrancois U SaylorsJapanAsiya Javayant QUALIFIED
Francesco F StensethGermanyOnyama Limba UNQUALIFIED
Ricardo G SchemmerCanadaBernardo Dominic UNQUALIFIED
Ivar N GillianCanadaStephen Shaw RENEWAL
Stacey Y FigeroaArgentinaIvan Magalhaes QUALIFIED
Costa J OldroydItalyOnyama Limba UNQUALIFIED
Alejandro C GillianSpainStephen Shaw UNQUALIFIED
Munro T VocelkaIndiaIoni Bowcher QUALIFIED
Smith V MacleadIndiaAsiya Javayant RENEWAL
Aditya Y OldroydArgentinaOnyama Limba PROPOSAL
Maria D DoeUnited KingdomBernardo Dominic RENEWAL
Sinclair Z SchemmerRussiaOnyama Limba PROPOSAL
Claire Z FlosiItalyElwin Sharvill NEGOTIATION
Adams E GlickJapanStephen Shaw NEW
Salvatore O SchemmerCanadaIvan Magalhaes QUALIFIED
Leja T NickaFranceOnyama Limba PROPOSAL
Alejandro M OstroskyItalyAmy Elsner QUALIFIED
Francesco N FollerArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio T DoeCanadaBernardo Dominic RENEWAL
Jones B ButtSpainOnyama Limba NEGOTIATION
Nicolas R DoeRussiaElwin Sharvill NEW
Darci A SaylorsJapanXuxue Feng UNQUALIFIED
Misaki A BowleyArgentinaIvan Magalhaes NEW
Clifford S MacleadCanadaAmy Elsner NEW
Darci G DilliardCanadaAmy Elsner QUALIFIED
Misaki Z RoysterCanadaIvan Magalhaes NEW
Leon V AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo X WhobreyGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna R BriddickAustralia2025-04-23Morlong Associates RENEWAL41Amy Elsner
1001Wickens Q IturbideGermany2025-04-24Feltz Printing Service RENEWAL90Amy Elsner
1002Chavez Z DoeItaly2025-04-23Feiner Bros QUALIFIED68Asiya Javayant
1003Salvatore X SaylorsCanada2025-04-06King, Christopher A Esq NEW19Bernardo Dominic
1004Alejandro V ButtJapan2025-04-25King, Christopher A Esq PROPOSAL70Amy Elsner
1005Leja S MaletRussia2025-04-11Feiner Bros NEW49Onyama Limba
1006Julie B RulapaughGermany2025-04-22Truhlar And Truhlar Attys PROPOSAL18Xuxue Feng
1007Aika P OstroskyBrazil2025-04-04Morlong Associates PROPOSAL41Ivan Magalhaes
1008David J AmigonFrance2025-04-19Rangoni Of Florence NEW30Asiya Javayant
1009Rodrigues C GlickArgentina2025-04-23Dorl, James J Esq PROPOSAL37Asiya Javayant
1010Salvatore P AlbaresArgentina2025-04-18King, Christopher A Esq UNQUALIFIED72Xuxue Feng
1011Aika H OstroskyItaly2025-04-11Chemel, James L Cpa PROPOSAL14Onyama Limba
1012Jones W FigeroaSpain2025-04-07Truhlar And Truhlar Attys NEGOTIATION7Elwin Sharvill
1013Munro V MaletFrance2025-04-07Chapman, Ross E Esq NEGOTIATION58Anna Fali
1014Aika V WhobreyItaly2025-04-13Morlong Associates UNQUALIFIED15Amy Elsner
1015Kaitlin Z MacleadGermany2025-04-11Benton, John B Jr PROPOSAL43Asiya Javayant
1016Emily A StockhamUnited Kingdom2025-04-25Truhlar And Truhlar Attys PROPOSAL32Elwin Sharvill
1017Isabel K SaylorsFrance2025-04-09Chemel, James L Cpa NEGOTIATION20Asiya Javayant
1018Antonio Q SaylorsItaly2025-04-13Truhlar And Truhlar Attys NEGOTIATION98Stephen Shaw
1019Aditya A AlbaresBrazil2025-04-24Printing Dimensions UNQUALIFIED44Elwin Sharvill
1020Leon R IturbideArgentina2025-04-12Buckley Miller Wright RENEWAL15Ioni Bowcher
1021Emily O FollerItaly2025-04-04Chapman, Ross E Esq NEW93Xuxue Feng
1022Aruna V InouyeRussia2025-04-28Buckley Miller Wright NEW75Onyama Limba
1023Emily V GillianIndia2025-04-05Printing Dimensions RENEWAL89Bernardo Dominic
1024Isabel L BowleyIndia2025-04-20King, Christopher A Esq NEW51Asiya Javayant
1025Claire Y VenereRussia2025-04-11Chapman, Ross E Esq RENEWAL10Stephen Shaw
1026Morrow F InouyeFrance2025-04-18Morlong Associates NEW33Xuxue Feng
1027Aika D GillianArgentina2025-04-11Commercial Press PROPOSAL48Asiya Javayant
1028Murillo S FigeroaIndia2025-04-14Buckley Miller Wright NEW37Elwin Sharvill
1029Leja C ShinkoUnited Kingdom2025-04-07Chapman, Ross E Esq RENEWAL34Ioni Bowcher
1030Clifford S OstroskyIndia2025-04-06King, Christopher A Esq PROPOSAL63Bernardo Dominic
1031Cody T RimSpain2025-04-08Dorl, James J Esq RENEWAL64Ioni Bowcher
1032Deepesh S BowleyArgentina2025-04-21Chapman, Ross E Esq QUALIFIED57Ivan Magalhaes
1033Antonio H RutaSpain2025-04-17Rousseaux, Michael Esq NEGOTIATION25Onyama Limba
1034Mujtaba J StockhamAustralia2025-04-06Benton, John B Jr NEGOTIATION67Asiya Javayant
1035Jefferson F BowleyCanada2025-04-07Benton, John B Jr UNQUALIFIED83Asiya Javayant
1036Munro J GarufiItaly2025-04-26King, Christopher A Esq RENEWAL46Ioni Bowcher
1037Alejandro J DilliardFrance2025-04-18King, Christopher A Esq QUALIFIED21Ioni Bowcher
1038David K RulapaughUnited Kingdom2025-04-03King, Christopher A Esq NEGOTIATION51Xuxue Feng
1039Ashley J StensethJapan2025-04-03Printing Dimensions NEGOTIATION29Anna Fali
1040Stacey K AmigonAustralia2025-04-15Rousseaux, Michael Esq NEW40Bernardo Dominic
1041Jones X BriddickItaly2025-04-12Feiner Bros NEW76Asiya Javayant
1042Greenwood C MorascaFrance2025-04-09Chemel, James L Cpa NEW59Ioni Bowcher
1043Greenwood H StensethUnited Kingdom2025-04-04Chemel, James L Cpa NEW62Stephen Shaw
1044Misaki L GarufiArgentina2025-04-12Printing Dimensions QUALIFIED78Bernardo Dominic
1045Jeanfrancois A StensethCanada2025-04-25Benton, John B Jr NEW87Onyama Limba
1046Isabel K FollerCanada2025-04-14Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1047Silvio B FollerRussia2025-04-15Buckley Miller Wright PROPOSAL96Bernardo Dominic
1048Kadeem J StensethItaly2025-04-11Chapman, Ross E Esq QUALIFIED19Asiya Javayant
1049Faith A ButtFrance2025-04-07Morlong Associates PROPOSAL37Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Alejandro O OldroydJapanBernardo Dominic NEW
Nicolas V IturbideItalyXuxue Feng NEW
Claire P FerenczAustraliaOnyama Limba RENEWAL
Emily V InouyeIndiaIvan Magalhaes RENEWAL
Sinclair P VocelkaBrazilIvan Magalhaes NEGOTIATION
Rodrigues X WhobreyJapanXuxue Feng UNQUALIFIED
Chavez O RulapaughItalyXuxue Feng RENEWAL
Jones Y PaprockiJapanAnna Fali PROPOSAL
Claire V FigeroaItalyAnna Fali NEW
Faith V TollnerSpainBernardo Dominic RENEWAL
Deepesh Y KolmetzJapanAmy Elsner NEGOTIATION
Mayumi T NickaBrazilOnyama Limba RENEWAL
Stacey X WieserCanadaAsiya Javayant RENEWAL
Silvio H FlosiIndiaXuxue Feng QUALIFIED
Ashley K SlusarskiUnited KingdomAsiya Javayant RENEWAL
Juan Z ChuiFranceBernardo Dominic QUALIFIED
Silvio V SchemmerRussiaElwin Sharvill NEGOTIATION
Leja Z FerenczCanadaBernardo Dominic PROPOSAL
Costa F RimRussiaXuxue Feng QUALIFIED
Misaki N TollnerAustraliaXuxue Feng PROPOSAL
David M MarrierArgentinaXuxue Feng RENEWAL
Jones Q RutaBrazilStephen Shaw QUALIFIED
Jeanfrancois X StensethGermanyAsiya Javayant NEGOTIATION
Jefferson F CaldareraJapanXuxue Feng UNQUALIFIED
Ashley K AlbaresCanadaElwin Sharvill QUALIFIED
Ricardo V ButtUnited KingdomOnyama Limba PROPOSAL
Jennifer O VocelkaItalyIvan Magalhaes NEW
Jeanfrancois L BowleyBrazilXuxue Feng QUALIFIED
Adams B DarakjyItalyAmy Elsner NEW
Kaitlin E PerinJapanAnna Fali RENEWAL
Juan F KuskoItalyXuxue Feng PROPOSAL
Deepesh K SlusarskiSpainAnna Fali RENEWAL
James E RimCanadaOnyama Limba RENEWAL
Nicolas O VenereRussiaAsiya Javayant RENEWAL
Stacey T StensethArgentinaIoni Bowcher UNQUALIFIED
Jefferson S StockhamJapanAnna Fali NEGOTIATION
Isabel X CaldareraFranceOnyama Limba QUALIFIED
Ricardo J StensethIndiaAmy Elsner RENEWAL
Leon K GillianArgentinaBernardo Dominic PROPOSAL
Silvio V CaudyGermanyBernardo Dominic RENEWAL
Alejandro Y RoysterJapanAsiya Javayant NEGOTIATION
Ivar X FollerItalyElwin Sharvill QUALIFIED
Jeanfrancois E SchemmerItalyIoni Bowcher QUALIFIED
Stacey W NickaCanadaAsiya Javayant NEW
Francesco E StensethSpainElwin Sharvill QUALIFIED
Wickens H DarakjySpainAmy Elsner UNQUALIFIED
Silvio G PaprockiArgentinaAsiya Javayant QUALIFIED
Leon L RutaBrazilElwin Sharvill UNQUALIFIED
Aika Z OstroskyCanadaIoni Bowcher NEGOTIATION
Maisha W BriddickArgentinaAnna Fali NEW
Frozen Columns
Name
Aditya S Tollner
Mayumi P Rim
Arvin V Albares
Izzy I Slusarski
Salvatore T Gaucho
Julie K Waycott
Mujtaba F Doe
Nicolas W Iturbide
Nicolas B Perin
Mujtaba K Bolognia
Chavez E Briddick
Arvin X Sergi
Maria A Glick
Octavia U Morasca
Greenwood Q Kusko
Izzy L Bolognia
Claire J Perin
Jefferson A Royster
Silvio G Figeroa
Deepesh P Oldroyd
Izzy T Malet
Adams T Sergi
Smith U Ruta
Claire A Stockham
Alejandro J Briddick
Ivar U Ostrosky
Leja N Venere
Wickens L Stockham
Maisha V Gaucho
Claire M Bolognia
Morrow G Marrier
Arvin D Saylors
Maisha P Figeroa
Morrow D Waycott
Murillo L Stenseth
Morrow Z Butt
Cody W Flosi
Emily N Garufi
Deepesh B Doe
Chavez B Rulapaugh
Rodrigues H Malet
Murillo R Rim
Chavez Q Shinko
Nicolas O Ruta
Francesco W Royster
Maisha O Slusarski
Silvio B Perin
Isabel T Perin
Claire E Nestle
Silvio A Doe
IdCountryDate
1000France2025-04-02
1001Germany2025-04-27
1002Germany2025-04-23
1003Japan2025-04-03
1004India2025-04-29
1005Japan2025-04-26
1006United Kingdom2025-04-01
1007Italy2025-04-14
1008Germany2025-04-25
1009Italy2025-04-21
1010Russia2025-04-01
1011Australia2025-04-29
1012Japan2025-04-17
1013France2025-04-25
1014Spain2025-04-27
1015Russia2025-04-12
1016France2025-04-01
1017Japan2025-04-13
1018Argentina2025-04-18
1019Russia2025-04-17
1020Italy2025-04-18
1021India2025-04-25
1022France2025-04-25
1023United Kingdom2025-04-28
1024Germany2025-04-12
1025India2025-04-10
1026Russia2025-04-20
1027Australia2025-04-24
1028Japan2025-04-27
1029Canada2025-04-08
1030Brazil2025-04-26
1031Brazil2025-04-20
1032Japan2025-04-10
1033Italy2025-04-26
1034United Kingdom2025-04-18
1035United Kingdom2025-04-27
1036Argentina2025-04-10
1037Japan2025-04-16
1038Brazil2025-04-18
1039Brazil2025-04-25
1040Australia2025-04-16
1041India2025-04-30
1042Spain2025-04-26
1043Russia2025-04-20
1044Russia2025-04-28
1045France2025-04-15
1046Canada2025-04-03
1047Brazil2025-04-24
1048Brazil2025-04-21
1049Canada2025-04-07

On-Demand Data

NameIdCountryDate
Wickens U Foller1000Canada2025-04-12
Kadeem V Nicka1001Spain2025-04-18
Mujtaba V Darakjy1002Germany2025-04-23
Silvio V Malet1003Germany2025-04-16
Izzy U Whobrey1004Germany2025-04-23
Greenwood I Shinko1005Italy2025-04-10
Claire M Caudy1006Spain2025-04-22
Jennifer K Gaucho1007India2025-04-04
Ashley A Garufi1008Spain2025-04-07
Salvatore H Butt1009Argentina2025-04-24
Greenwood I Tollner1010United Kingdom2025-04-26
Ashley E Perin1011Russia2025-04-18
Cody I Shinko1012Italy2025-04-05
Julie G Rulapaugh1013Japan2025-04-28
Morrow Q Foller1014India2025-04-05
Ivar Q Malet1015Spain2025-04-25
Munro P Royster1016France2025-04-10
Isabel V Saylors1017United Kingdom2025-04-15
Arvin Q Briddick1018Spain2025-04-16
Claire M Morasca1019India2025-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford A FigeroaFranceIvan Magalhaes PROPOSAL
Sinclair Q DarakjySpainIoni Bowcher RENEWAL
Isabel Y OstroskyItalyIvan Magalhaes QUALIFIED
Izzy X BowleyUnited KingdomStephen Shaw NEW
Kadeem M IturbideBrazilElwin Sharvill RENEWAL
Stacey I KuskoJapanOnyama Limba UNQUALIFIED
Silvio X BologniaAustraliaOnyama Limba QUALIFIED
Aika E PoquetteBrazilStephen Shaw QUALIFIED
Claire X SaylorsGermanyBernardo Dominic PROPOSAL
Aika X InouyeJapanElwin Sharvill NEGOTIATION
Leon A IturbideItalyOnyama Limba PROPOSAL
Chavez D GillianGermanyIvan Magalhaes QUALIFIED
Nicolas B ChuiUnited KingdomOnyama Limba UNQUALIFIED
Antonio X MaletArgentinaBernardo Dominic RENEWAL
Stacey X MacleadGermanyIoni Bowcher PROPOSAL
Alejandro E GillianArgentinaAmy Elsner PROPOSAL
Arvin C RulapaughArgentinaAnna Fali NEGOTIATION
Octavia O IturbideAustraliaStephen Shaw RENEWAL
Leon J OldroydFranceAnna Fali RENEWAL
Jones R MarrierItalyIoni Bowcher NEGOTIATION
Misaki Y WhobreyRussiaIvan Magalhaes QUALIFIED
Ivar M GarufiSpainOnyama Limba RENEWAL
Greenwood P RulapaughGermanyOnyama Limba RENEWAL
Cody C RutaArgentinaElwin Sharvill NEGOTIATION
Darci X SergiUnited KingdomBernardo Dominic QUALIFIED
Francesco A RoysterArgentinaAmy Elsner PROPOSAL
Juan Y ButtAustraliaAsiya Javayant NEGOTIATION
Wickens A StensethArgentinaIoni Bowcher NEW
David P KuskoCanadaStephen Shaw QUALIFIED
Salvatore B WhobreyUnited KingdomXuxue Feng NEW
Rodrigues T SlusarskiAustraliaAsiya Javayant NEW
Deepesh T KuskoUnited KingdomIvan Magalhaes QUALIFIED
James T FigeroaFranceOnyama Limba QUALIFIED
Aika J AmigonItalyAnna Fali PROPOSAL
Alejandro R MarrierItalyAmy Elsner QUALIFIED
Darci B FollerCanadaOnyama Limba UNQUALIFIED
Costa N GillianFranceElwin Sharvill RENEWAL
Maisha J OldroydSpainIvan Magalhaes UNQUALIFIED
Nicolas Q PoquetteBrazilOnyama Limba NEGOTIATION
James D OstroskyFranceAnna Fali 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>