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
Cody F SlusarskiAustraliaXuxue Feng NEGOTIATION
Sinclair S KuskoRussiaOnyama Limba RENEWAL
Maisha K FigeroaArgentinaElwin Sharvill UNQUALIFIED
Wickens Z GillianSpainAnna Fali PROPOSAL
Chavez T MaletRussiaStephen Shaw UNQUALIFIED
Aika O OstroskyFranceAmy Elsner NEGOTIATION
Misaki C ChuiAustraliaStephen Shaw PROPOSAL
Cody M VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
James Z MorascaBrazilStephen Shaw QUALIFIED
David X OstroskyIndiaOnyama Limba PROPOSAL
Jones N MarrierRussiaIoni Bowcher NEW
Sinclair A PaprockiFranceIvan Magalhaes QUALIFIED
Darci S VocelkaIndiaElwin Sharvill RENEWAL
Kaitlin N MorascaItalyAnna Fali NEW
Stacey H MarrierBrazilAmy Elsner QUALIFIED
Claire M WieserSpainXuxue Feng QUALIFIED
Francesco B ChuiJapanIvan Magalhaes UNQUALIFIED
Isabel Y SaylorsFranceIvan Magalhaes PROPOSAL
Arvin C MarrierCanadaOnyama Limba RENEWAL
Kadeem A IturbideIndiaElwin Sharvill NEW
Smith V FerenczUnited KingdomStephen Shaw NEW
Julie V ButtCanadaIvan Magalhaes PROPOSAL
Cody C PoquetteGermanyIvan Magalhaes NEGOTIATION
Maria K ChuiIndiaElwin Sharvill QUALIFIED
Maria A DarakjyCanadaBernardo Dominic QUALIFIED
Salvatore Y FlosiBrazilAmy Elsner UNQUALIFIED
Deepesh D NestleItalyOnyama Limba QUALIFIED
Chavez H FlosiArgentinaElwin Sharvill UNQUALIFIED
Smith C FigeroaGermanyAmy Elsner RENEWAL
Johnson H GarufiBrazilBernardo Dominic NEW
Ashley O NickaIndiaIvan Magalhaes PROPOSAL
Alejandro I SaylorsCanadaElwin Sharvill PROPOSAL
Alejandro B DarakjyArgentinaElwin Sharvill QUALIFIED
Emily A RutaIndiaAsiya Javayant RENEWAL
Mayumi A PaprockiRussiaIoni Bowcher UNQUALIFIED
Claire M RoysterRussiaIoni Bowcher NEW
Octavia M DoeArgentinaXuxue Feng NEW
Smith A StockhamItalyIoni Bowcher PROPOSAL
Tony P GarufiArgentinaStephen Shaw NEW
Antonio R CaudyItalyStephen Shaw NEGOTIATION
Mujtaba W BriddickJapanAnna Fali QUALIFIED
Isabel Z CaudyIndiaBernardo Dominic NEGOTIATION
Izzy Y AmigonJapanIvan Magalhaes NEGOTIATION
Alejandro Z DilliardItalyIoni Bowcher PROPOSAL
James I GlickAustraliaStephen Shaw QUALIFIED
Isabel U SchemmerItalyAnna Fali NEGOTIATION
Jefferson P RimBrazilAmy Elsner NEW
Murillo U FlosiBrazilAnna Fali RENEWAL
Wickens K OstroskyBrazilAnna Fali NEGOTIATION
James T FerenczItalyAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas O GillianCanadaBernardo Dominic NEGOTIATION
Francesco V ChuiSpainStephen Shaw PROPOSAL
Tony X ChuiSpainOnyama Limba PROPOSAL
Cody E FollerArgentinaXuxue Feng NEGOTIATION
Francesco N GarufiAustraliaElwin Sharvill QUALIFIED
Costa Y RimItalyOnyama Limba RENEWAL
Aditya M RoysterItalyAnna Fali NEGOTIATION
Mujtaba L ShinkoRussiaStephen Shaw UNQUALIFIED
Nicolas K SchemmerJapanIvan Magalhaes RENEWAL
Alejandro H WaycottIndiaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi H GillianJapan2026-06-20Chanay, Jeffrey A Esq NEW95Asiya Javayant
1001David B SergiRussia2026-06-06King, Christopher A Esq QUALIFIED43Xuxue Feng
1002Julie Z ChuiJapan2026-06-08Chanay, Jeffrey A Esq QUALIFIED89Stephen Shaw
1003Smith B SergiCanada2026-06-23Printing Dimensions NEGOTIATION67Asiya Javayant
1004Antonio Q RoysterItaly2026-06-22Chanay, Jeffrey A Esq RENEWAL1Amy Elsner
1005Chavez K SergiSpain2026-06-02Morlong Associates QUALIFIED62Xuxue Feng
1006Deepesh J VocelkaUnited Kingdom2026-06-11Commercial Press UNQUALIFIED43Stephen Shaw
1007Munro J GillianFrance2026-06-15Chemel, James L Cpa NEW11Xuxue Feng
1008Ricardo Z StensethIndia2026-06-20Chemel, James L Cpa RENEWAL54Anna Fali
1009Munro E VocelkaRussia2026-06-12Feltz Printing Service RENEWAL27Ivan Magalhaes
1010Greenwood L BowleyJapan2026-06-27Printing Dimensions RENEWAL81Ivan Magalhaes
1011Silvio E WhobreyBrazil2026-06-27Chemel, James L Cpa PROPOSAL47Asiya Javayant
1012Mayumi O BowleyGermany2026-06-13Benton, John B Jr QUALIFIED54Bernardo Dominic
1013Emily V IturbideBrazil2026-06-11Feiner Bros UNQUALIFIED82Xuxue Feng
1014Tony K WaycottUnited Kingdom2026-06-03Commercial Press UNQUALIFIED64Onyama Limba
1015Maria U VenereBrazil2026-06-22Benton, John B Jr UNQUALIFIED89Xuxue Feng
1016Smith R KolmetzUnited Kingdom2026-06-15Truhlar And Truhlar Attys NEW22Xuxue Feng
1017Jefferson H SaylorsJapan2026-06-22King, Christopher A Esq NEW32Elwin Sharvill
1018Arvin F FollerUnited Kingdom2026-06-29Rousseaux, Michael Esq QUALIFIED9Onyama Limba
1019Adams H FlosiIndia2026-06-07Morlong Associates QUALIFIED85Amy Elsner
1020Ricardo J FerenczCanada2026-06-23Truhlar And Truhlar Attys QUALIFIED2Anna Fali
1021Nicolas N TollnerUnited Kingdom2026-06-06King, Christopher A Esq RENEWAL37Ivan Magalhaes
1022Aruna Q SlusarskiGermany2026-06-24Buckley Miller Wright NEGOTIATION12Anna Fali
1023Murillo G FollerRussia2026-06-17Printing Dimensions QUALIFIED29Stephen Shaw
1024Ivar Y RimJapan2026-06-21Feltz Printing Service PROPOSAL65Asiya Javayant
1025Ashley R MaletUnited Kingdom2026-06-20Truhlar And Truhlar Attys NEW30Anna Fali
1026Francesco X ShinkoItaly2026-06-06Printing Dimensions NEW73Ivan Magalhaes
1027Julie D BologniaSpain2026-06-26Dorl, James J Esq PROPOSAL55Xuxue Feng
1028Rodrigues C MarrierAustralia2026-06-04Feltz Printing Service PROPOSAL20Onyama Limba
1029Costa B RulapaughBrazil2026-06-07Morlong Associates NEW27Elwin Sharvill
1030Morrow U MacleadFrance2026-06-06King, Christopher A Esq RENEWAL74Amy Elsner
1031Jefferson G AlbaresBrazil2026-06-25Commercial Press PROPOSAL40Anna Fali
1032Kadeem Q BologniaCanada2026-06-16Feltz Printing Service UNQUALIFIED15Asiya Javayant
1033Leon M RoysterFrance2026-06-21Truhlar And Truhlar Attys PROPOSAL83Xuxue Feng
1034Greenwood T VocelkaAustralia2026-06-14Commercial Press PROPOSAL70Anna Fali
1035Izzy I TollnerIndia2026-06-12Rangoni Of Florence UNQUALIFIED70Ivan Magalhaes
1036Darci F GlickIndia2026-06-05Commercial Press NEW82Xuxue Feng
1037Munro I CampainIndia2026-06-28Truhlar And Truhlar Attys PROPOSAL83Amy Elsner
1038Isabel Z ChuiRussia2026-06-18Morlong Associates NEW6Anna Fali
1039Jennifer X StockhamRussia2026-06-15Morlong Associates NEGOTIATION53Elwin Sharvill
1040Aruna N PerinGermany2026-06-27Feiner Bros PROPOSAL47Ioni Bowcher
1041Antonio V AlbaresIndia2026-06-08Chemel, James L Cpa PROPOSAL93Bernardo Dominic
1042Arvin Y WieserAustralia2026-06-18Benton, John B Jr PROPOSAL27Asiya Javayant
1043Alejandro X MaletRussia2026-06-05Feiner Bros QUALIFIED66Stephen Shaw
1044Aika W PaprockiArgentina2026-06-02Dorl, James J Esq NEW51Ioni Bowcher
1045Rodrigues L KuskoIndia2026-06-13Morlong Associates PROPOSAL50Onyama Limba
1046Octavia S GarufiArgentina2026-06-27King, Christopher A Esq NEW96Amy Elsner
1047Juan C MarrierItaly2026-06-04King, Christopher A Esq RENEWAL59Onyama Limba
1048Misaki E DarakjyJapan2026-06-07Morlong Associates NEGOTIATION55Anna Fali
1049Kadeem Q NickaIndia2026-06-22Benton, John B Jr NEGOTIATION27Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Morrow Y PerinItalyIvan Magalhaes RENEWAL
Cody J RoysterAustraliaIoni Bowcher QUALIFIED
Johnson L MarrierItalyOnyama Limba UNQUALIFIED
Deepesh W ButtIndiaIvan Magalhaes NEGOTIATION
Julie O DilliardSpainStephen Shaw QUALIFIED
Nicolas J RulapaughAustraliaIoni Bowcher NEGOTIATION
Faith W AmigonArgentinaStephen Shaw NEW
Mujtaba A BriddickBrazilIoni Bowcher RENEWAL
Smith K FollerJapanAnna Fali QUALIFIED
Mayumi U MacleadFranceOnyama Limba UNQUALIFIED
Antonio S MacleadUnited KingdomAnna Fali UNQUALIFIED
Stacey O BologniaItalyStephen Shaw NEGOTIATION
Ivar T NickaCanadaIvan Magalhaes PROPOSAL
Cody N SlusarskiBrazilBernardo Dominic NEGOTIATION
Kadeem L CaldareraFranceElwin Sharvill UNQUALIFIED
Deepesh F AmigonSpainIvan Magalhaes QUALIFIED
Cody N FerenczItalyAsiya Javayant UNQUALIFIED
Octavia O ShinkoGermanyAmy Elsner QUALIFIED
Stacey W PerinArgentinaAnna Fali RENEWAL
Jones Y FerenczUnited KingdomAnna Fali QUALIFIED
Ivar W VocelkaSpainOnyama Limba PROPOSAL
Claire V SergiAustraliaAmy Elsner UNQUALIFIED
Ivar J SergiItalyAmy Elsner UNQUALIFIED
Jefferson Y CaudyCanadaXuxue Feng NEGOTIATION
Kadeem U GauchoJapanXuxue Feng PROPOSAL
Arvin H DoeRussiaBernardo Dominic UNQUALIFIED
Chavez U MaletJapanOnyama Limba PROPOSAL
Faith Z KuskoBrazilElwin Sharvill RENEWAL
Mujtaba Q NickaArgentinaOnyama Limba QUALIFIED
Isabel H FigeroaBrazilAsiya Javayant NEW
Sinclair J ButtUnited KingdomXuxue Feng QUALIFIED
Deepesh A BowleyGermanyIoni Bowcher UNQUALIFIED
Jennifer I OldroydItalyXuxue Feng UNQUALIFIED
James R ChuiJapanElwin Sharvill PROPOSAL
Maisha I NestleGermanyStephen Shaw UNQUALIFIED
Aika L DilliardGermanyOnyama Limba NEW
Emily L NickaItalyIoni Bowcher RENEWAL
Mujtaba B PaprockiCanadaAnna Fali UNQUALIFIED
Maria F PerinGermanyStephen Shaw RENEWAL
Maisha J VocelkaRussiaXuxue Feng PROPOSAL
Faith R OldroydBrazilAmy Elsner PROPOSAL
Maria A SaylorsUnited KingdomBernardo Dominic NEW
Costa V DilliardJapanAsiya Javayant QUALIFIED
Jeanfrancois A BowleyAustraliaIoni Bowcher NEW
David E StockhamItalyXuxue Feng PROPOSAL
Jennifer S FerenczSpainIoni Bowcher NEGOTIATION
Jeanfrancois H StensethRussiaElwin Sharvill NEGOTIATION
Silvio H IturbideFranceAnna Fali PROPOSAL
Clifford N RimBrazilElwin Sharvill QUALIFIED
Chavez S RimItalyAmy Elsner NEW
Frozen Columns
Name
Greenwood E Butt
Nicolas W Paprocki
Jeanfrancois G Chui
Aditya L Perin
Ricardo T Marrier
Maria Z Garufi
Mayumi R Wieser
Cody S Flosi
Deepesh W Glick
Mujtaba J Shinko
Silvio W Bowley
Mayumi G Gillian
Darci I Butt
Aruna H Perin
Francesco V Chui
Kaitlin F Stockham
Jeanfrancois W Rulapaugh
Izzy Z Venere
Munro O Slusarski
Darci A Inouye
Juan I Poquette
Aditya V Tollner
Antonio X Nestle
Antonio Z Campain
Nicolas X Glick
Ricardo B Rim
Misaki R Dilliard
Antonio S Kolmetz
Jefferson Y Flosi
Tony G Campain
Sinclair G Bolognia
Sinclair U Royster
Claire S Doe
Costa K Inouye
Antonio D Perin
Alejandro H Ostrosky
Aditya B Figeroa
Faith M Saylors
Antonio Z Garufi
Mayumi D Stockham
Claire L Oldroyd
James S Iturbide
Smith R Stockham
Aika L Inouye
Octavia O Morasca
Salvatore I Kolmetz
Isabel D Royster
Rodrigues W Iturbide
Aditya U Garufi
Leon P Shinko
IdCountryDate
1000France2026-06-02
1001United Kingdom2026-06-23
1002Brazil2026-06-30
1003Japan2026-06-15
1004India2026-06-27
1005Canada2026-06-12
1006Australia2026-06-16
1007United Kingdom2026-06-07
1008Japan2026-06-30
1009Spain2026-06-22
1010Brazil2026-06-17
1011Japan2026-06-27
1012Argentina2026-06-22
1013Canada2026-06-03
1014Argentina2026-06-05
1015Argentina2026-06-05
1016India2026-06-04
1017Brazil2026-06-13
1018United Kingdom2026-06-15
1019India2026-06-12
1020Russia2026-06-14
1021Brazil2026-06-30
1022Argentina2026-06-24
1023Spain2026-06-19
1024Australia2026-06-13
1025Brazil2026-06-25
1026India2026-06-03
1027Russia2026-06-10
1028India2026-06-11
1029Canada2026-06-19
1030Brazil2026-06-21
1031Spain2026-06-18
1032France2026-06-26
1033Germany2026-06-09
1034Russia2026-06-12
1035Russia2026-06-26
1036Spain2026-06-02
1037Australia2026-06-25
1038India2026-06-16
1039Australia2026-06-18
1040Brazil2026-06-14
1041Canada2026-06-17
1042Japan2026-06-30
1043Brazil2026-06-05
1044France2026-06-21
1045Japan2026-06-06
1046Russia2026-06-23
1047France2026-06-16
1048Brazil2026-06-02
1049Canada2026-06-27

On-Demand Data

NameIdCountryDate
Jones U Butt1000India2026-06-20
Greenwood E Shinko1001Japan2026-07-01
Izzy R Poquette1002Japan2026-06-12
Faith S Rim1003Italy2026-06-27
Jefferson H Oldroyd1004Australia2026-06-05
James S Stenseth1005Brazil2026-06-25
Jennifer G Darakjy1006Italy2026-06-13
Cody I Nestle1007India2026-06-20
Aika M Kolmetz1008Canada2026-06-03
Silvio R Briddick1009Spain2026-06-08
Clifford R Malet1010Germany2026-06-18
Tony D Nestle1011Russia2026-06-06
Maisha P Inouye1012Spain2026-06-04
Kaitlin O Flosi1013Russia2026-06-26
Ricardo Q Paprocki1014Japan2026-06-18
Wickens Y Wieser1015France2026-06-30
Leja T Slusarski1016Australia2026-06-30
Julie B Campain1017Brazil2026-06-25
Tony A Caudy1018Spain2026-06-19
Emily U Maclead1019Japan2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan L StockhamBrazilIoni Bowcher PROPOSAL
Stacey N FerenczIndiaAsiya Javayant NEGOTIATION
Juan F DarakjyJapanAnna Fali RENEWAL
Maisha I KolmetzUnited KingdomElwin Sharvill PROPOSAL
Deepesh J KolmetzRussiaStephen Shaw RENEWAL
Mujtaba Y CaudyArgentinaXuxue Feng QUALIFIED
Jones Z FerenczFranceAmy Elsner NEGOTIATION
Greenwood H KolmetzArgentinaBernardo Dominic NEGOTIATION
Chavez S MarrierGermanyStephen Shaw QUALIFIED
Deepesh U NestleUnited KingdomBernardo Dominic PROPOSAL
Munro G RoysterUnited KingdomAnna Fali PROPOSAL
Greenwood F ShinkoBrazilIvan Magalhaes QUALIFIED
Julie T ButtCanadaIvan Magalhaes PROPOSAL
Juan Q FollerItalyIvan Magalhaes NEGOTIATION
Claire R FigeroaArgentinaIoni Bowcher NEW
Murillo M BowleyCanadaIoni Bowcher PROPOSAL
Izzy X StensethArgentinaIoni Bowcher NEW
Aruna L StensethAustraliaIvan Magalhaes QUALIFIED
Jefferson Y DilliardAustraliaBernardo Dominic NEGOTIATION
Wickens X FollerAustraliaIoni Bowcher QUALIFIED
Leon Z DoeUnited KingdomIvan Magalhaes RENEWAL
Octavia M FigeroaIndiaIvan Magalhaes NEW
Jennifer E RutaUnited KingdomIoni Bowcher PROPOSAL
Francesco W RoysterSpainXuxue Feng NEGOTIATION
Izzy E SaylorsBrazilStephen Shaw UNQUALIFIED
Aika O ButtGermanyAmy Elsner NEGOTIATION
Isabel V SlusarskiSpainAmy Elsner NEGOTIATION
Silvio W GauchoIndiaStephen Shaw NEW
Misaki A FigeroaFranceAmy Elsner UNQUALIFIED
Aruna N NestleAustraliaBernardo Dominic NEGOTIATION
Stacey E InouyeBrazilIvan Magalhaes QUALIFIED
Costa H StensethArgentinaStephen Shaw PROPOSAL
David O BowleyCanadaBernardo Dominic RENEWAL
Jones L GarufiAustraliaOnyama Limba RENEWAL
James O InouyeAustraliaBernardo Dominic PROPOSAL
Darci Z GillianJapanAsiya Javayant NEGOTIATION
Leja X PoquetteItalyOnyama Limba NEW
Maisha U RulapaughFranceIoni Bowcher QUALIFIED
Costa J ShinkoCanadaOnyama Limba NEW
Sinclair B InouyeSpainIoni Bowcher 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>