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
Stacey L DoeCanadaBernardo Dominic NEGOTIATION
Ashley G NickaArgentinaAsiya Javayant RENEWAL
Emily W DilliardIndiaIvan Magalhaes QUALIFIED
Leja E VenereBrazilXuxue Feng NEW
Ricardo Z FollerUnited KingdomXuxue Feng UNQUALIFIED
Juan E MacleadFranceBernardo Dominic QUALIFIED
Greenwood W StockhamItalyAsiya Javayant NEGOTIATION
Mujtaba N SlusarskiRussiaElwin Sharvill QUALIFIED
Mujtaba Z RimAustraliaAsiya Javayant QUALIFIED
Kaitlin N SchemmerFranceIvan Magalhaes QUALIFIED
Cody A VenereJapanOnyama Limba PROPOSAL
Leja S TollnerSpainAsiya Javayant QUALIFIED
Jennifer E FigeroaItalyAsiya Javayant RENEWAL
Octavia V PerinAustraliaAsiya Javayant RENEWAL
Kaitlin H OstroskySpainAmy Elsner NEGOTIATION
Jennifer W GauchoIndiaOnyama Limba UNQUALIFIED
Tony H FigeroaIndiaStephen Shaw QUALIFIED
Sinclair R SergiGermanyXuxue Feng RENEWAL
Jeanfrancois V TollnerAustraliaXuxue Feng QUALIFIED
Smith I FlosiIndiaAmy Elsner QUALIFIED
Jones M ShinkoSpainElwin Sharvill NEGOTIATION
Ivar F PerinRussiaAsiya Javayant NEGOTIATION
Arvin P CaudySpainAsiya Javayant NEGOTIATION
Alejandro Z CampainJapanAmy Elsner UNQUALIFIED
Morrow F AlbaresCanadaBernardo Dominic UNQUALIFIED
Izzy I GauchoUnited KingdomIoni Bowcher QUALIFIED
Misaki A RulapaughCanadaAnna Fali QUALIFIED
Antonio H ShinkoFranceElwin Sharvill PROPOSAL
Cody L InouyeIndiaAnna Fali UNQUALIFIED
Sinclair Z VenereGermanyOnyama Limba PROPOSAL
Aika M RutaRussiaElwin Sharvill UNQUALIFIED
Costa N RutaGermanyElwin Sharvill UNQUALIFIED
Ashley H ChuiJapanElwin Sharvill QUALIFIED
Nicolas R NickaJapanOnyama Limba QUALIFIED
Francesco A GauchoJapanIvan Magalhaes NEGOTIATION
Salvatore V DoeFranceIoni Bowcher NEW
Smith P PoquetteItalyAnna Fali RENEWAL
Misaki I MacleadGermanyAmy Elsner RENEWAL
Greenwood L PoquetteItalyStephen Shaw NEGOTIATION
Izzy C AlbaresFranceAmy Elsner NEGOTIATION
Murillo B GarufiItalyBernardo Dominic NEW
James R WhobreyBrazilElwin Sharvill UNQUALIFIED
Mayumi U WaycottBrazilAsiya Javayant NEGOTIATION
Kadeem M CampainCanadaAmy Elsner PROPOSAL
Johnson Z SaylorsAustraliaAmy Elsner QUALIFIED
Rodrigues F FigeroaFranceIoni Bowcher QUALIFIED
Rodrigues E BologniaJapanElwin Sharvill UNQUALIFIED
Silvio M NestleRussiaAmy Elsner NEGOTIATION
Smith F CaldareraFranceBernardo Dominic QUALIFIED
Jefferson N SchemmerArgentinaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas L RimArgentinaIoni Bowcher UNQUALIFIED
Aruna J PerinSpainAsiya Javayant UNQUALIFIED
Murillo R WhobreySpainElwin Sharvill NEGOTIATION
Tony H SchemmerAustraliaIvan Magalhaes PROPOSAL
Kadeem M SlusarskiSpainIoni Bowcher RENEWAL
Maisha E GarufiRussiaIvan Magalhaes NEGOTIATION
Aika J SergiCanadaElwin Sharvill PROPOSAL
Maisha R ShinkoAustraliaIvan Magalhaes UNQUALIFIED
Juan H RulapaughCanadaAsiya Javayant PROPOSAL
Morrow S WhobreyRussiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon C FlosiIndia2026-08-14Chapman, Ross E Esq PROPOSAL60Xuxue Feng
1001Darci G MorascaSpain2026-07-18Truhlar And Truhlar Attys NEGOTIATION79Ivan Magalhaes
1002Silvio L PerinItaly2026-08-10Truhlar And Truhlar Attys PROPOSAL18Ivan Magalhaes
1003Darci D SlusarskiSpain2026-08-11Buckley Miller Wright NEW17Ioni Bowcher
1004Ivar O WieserUnited Kingdom2026-08-09Morlong Associates RENEWAL85Elwin Sharvill
1005Morrow Q PaprockiRussia2026-07-30Truhlar And Truhlar Attys NEGOTIATION89Xuxue Feng
1006Faith C GauchoItaly2026-08-15Chapman, Ross E Esq QUALIFIED49Amy Elsner
1007Stacey O CaldareraAustralia2026-08-07Buckley Miller Wright PROPOSAL82Elwin Sharvill
1008Costa N SaylorsUnited Kingdom2026-08-13Printing Dimensions QUALIFIED82Ioni Bowcher
1009Alejandro B GlickArgentina2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED71Anna Fali
1010Costa Q DarakjyArgentina2026-08-08Feiner Bros UNQUALIFIED50Amy Elsner
1011Stacey O DilliardCanada2026-08-03Rousseaux, Michael Esq NEW72Ioni Bowcher
1012Aruna R FollerBrazil2026-07-28Chapman, Ross E Esq PROPOSAL48Onyama Limba
1013Aruna X InouyeAustralia2026-08-07Rousseaux, Michael Esq PROPOSAL59Bernardo Dominic
1014Mujtaba J WieserArgentina2026-08-08Chapman, Ross E Esq QUALIFIED64Xuxue Feng
1015Misaki U MaletIndia2026-07-21Benton, John B Jr QUALIFIED99Anna Fali
1016Murillo R DoeFrance2026-08-16Rousseaux, Michael Esq QUALIFIED54Ioni Bowcher
1017Deepesh J BologniaRussia2026-07-31King, Christopher A Esq QUALIFIED78Bernardo Dominic
1018Ricardo S CampainArgentina2026-07-24Feiner Bros UNQUALIFIED22Stephen Shaw
1019Cody D FlosiJapan2026-07-18Rousseaux, Michael Esq PROPOSAL23Ivan Magalhaes
1020Greenwood D SlusarskiFrance2026-08-04Printing Dimensions NEGOTIATION34Elwin Sharvill
1021Deepesh V MaletFrance2026-08-07Dorl, James J Esq QUALIFIED51Asiya Javayant
1022Octavia Z ButtFrance2026-08-14Benton, John B Jr QUALIFIED81Amy Elsner
1023Leja K AlbaresGermany2026-08-11Morlong Associates NEW44Bernardo Dominic
1024Jefferson I InouyeAustralia2026-07-29Chemel, James L Cpa UNQUALIFIED83Anna Fali
1025Adams W WaycottRussia2026-07-24Commercial Press RENEWAL85Ivan Magalhaes
1026Adams D MaletRussia2026-07-24Commercial Press UNQUALIFIED34Stephen Shaw
1027Julie Q FerenczItaly2026-08-04Commercial Press QUALIFIED27Elwin Sharvill
1028Faith S NestleArgentina2026-08-09Rangoni Of Florence UNQUALIFIED82Asiya Javayant
1029Greenwood R DarakjyCanada2026-08-04Printing Dimensions NEW59Bernardo Dominic
1030Faith E WieserBrazil2026-07-23Chapman, Ross E Esq NEGOTIATION81Ivan Magalhaes
1031Clifford Q GillianItaly2026-07-28Chemel, James L Cpa RENEWAL72Ioni Bowcher
1032Leon P SaylorsUnited Kingdom2026-08-08Benton, John B Jr NEGOTIATION50Amy Elsner
1033Stacey M AmigonGermany2026-08-14Chapman, Ross E Esq PROPOSAL63Asiya Javayant
1034Silvio N StockhamUnited Kingdom2026-08-09Morlong Associates QUALIFIED52Bernardo Dominic
1035Mujtaba U KuskoGermany2026-07-22Feltz Printing Service PROPOSAL88Anna Fali
1036James P BologniaRussia2026-07-27King, Christopher A Esq NEW64Amy Elsner
1037Jeanfrancois W MacleadIndia2026-08-03Printing Dimensions RENEWAL78Ivan Magalhaes
1038Murillo E PerinUnited Kingdom2026-08-15King, Christopher A Esq UNQUALIFIED67Stephen Shaw
1039Deepesh I MacleadSpain2026-07-25Feltz Printing Service UNQUALIFIED20Ivan Magalhaes
1040Tony S RoysterCanada2026-07-18Printing Dimensions NEW47Elwin Sharvill
1041Arvin W RutaArgentina2026-07-26Dorl, James J Esq NEGOTIATION54Ivan Magalhaes
1042Maisha L GillianAustralia2026-08-01Rousseaux, Michael Esq QUALIFIED15Asiya Javayant
1043Costa K VenereRussia2026-07-22Feltz Printing Service NEW51Onyama Limba
1044Juan Q NestleUnited Kingdom2026-08-02Truhlar And Truhlar Attys QUALIFIED44Amy Elsner
1045Smith J AmigonJapan2026-07-29Dorl, James J Esq PROPOSAL34Stephen Shaw
1046Wickens C SergiFrance2026-07-18Rangoni Of Florence QUALIFIED94Ivan Magalhaes
1047Sinclair M BowleyFrance2026-08-10Truhlar And Truhlar Attys NEW31Elwin Sharvill
1048Julie W WhobreyFrance2026-07-22Morlong Associates NEGOTIATION4Bernardo Dominic
1049Murillo F RimGermany2026-07-29Buckley Miller Wright UNQUALIFIED91Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Claire E DilliardSpainAsiya Javayant UNQUALIFIED
Isabel U AmigonAustraliaIoni Bowcher UNQUALIFIED
Murillo H VocelkaAustraliaXuxue Feng RENEWAL
Ivar N DoeRussiaElwin Sharvill NEGOTIATION
Maisha Z GarufiRussiaBernardo Dominic NEW
Octavia I VocelkaItalyStephen Shaw UNQUALIFIED
Stacey E PerinArgentinaIvan Magalhaes NEW
Julie L CaldareraBrazilIoni Bowcher RENEWAL
Deepesh E BowleyCanadaStephen Shaw PROPOSAL
James A PerinJapanIoni Bowcher PROPOSAL
Stacey L SaylorsAustraliaIoni Bowcher QUALIFIED
Aika I SergiBrazilAnna Fali RENEWAL
David T RutaRussiaIoni Bowcher NEW
Rodrigues F CaudyUnited KingdomBernardo Dominic RENEWAL
Jefferson E KuskoSpainAmy Elsner NEGOTIATION
Kaitlin V WieserRussiaStephen Shaw UNQUALIFIED
Kaitlin S VocelkaRussiaAmy Elsner PROPOSAL
Clifford Z InouyeJapanAsiya Javayant QUALIFIED
Aditya B BowleySpainIoni Bowcher UNQUALIFIED
Aditya H FollerCanadaIoni Bowcher QUALIFIED
David W ChuiRussiaBernardo Dominic PROPOSAL
Arvin Z CaudyBrazilAsiya Javayant PROPOSAL
Jennifer T IturbideUnited KingdomOnyama Limba UNQUALIFIED
Salvatore H SergiAustraliaOnyama Limba PROPOSAL
Antonio Q SergiItalyOnyama Limba RENEWAL
Sinclair K StensethUnited KingdomElwin Sharvill PROPOSAL
Salvatore G FollerCanadaAnna Fali QUALIFIED
Izzy C TollnerAustraliaAmy Elsner UNQUALIFIED
Sinclair S MacleadGermanyIoni Bowcher RENEWAL
Julie N MarrierArgentinaBernardo Dominic QUALIFIED
Misaki G InouyeJapanAsiya Javayant PROPOSAL
Arvin M KuskoGermanyAsiya Javayant NEW
Jefferson P MarrierIndiaAnna Fali PROPOSAL
Jones N SaylorsFranceAsiya Javayant NEGOTIATION
Tony J WieserGermanyIvan Magalhaes QUALIFIED
Morrow O ButtBrazilIoni Bowcher NEGOTIATION
Ivar P BriddickCanadaAmy Elsner NEW
Kaitlin A StensethBrazilElwin Sharvill NEW
Alejandro D MarrierBrazilAnna Fali NEW
Isabel H MacleadItalyIoni Bowcher PROPOSAL
Jennifer U WhobreyFranceOnyama Limba QUALIFIED
Cody J SaylorsItalyAnna Fali RENEWAL
Aika H DarakjyFranceOnyama Limba RENEWAL
Tony E CampainIndiaBernardo Dominic NEGOTIATION
Chavez D MarrierJapanBernardo Dominic PROPOSAL
Alejandro J PoquetteJapanIvan Magalhaes RENEWAL
James E FerenczItalyAmy Elsner QUALIFIED
Aditya B SchemmerFranceAsiya Javayant NEW
Claire M StensethIndiaBernardo Dominic PROPOSAL
Aika A MaletArgentinaOnyama Limba NEGOTIATION
Frozen Columns
Name
Juan U Shinko
Jones U Bowley
Jennifer L Wieser
Izzy N Darakjy
Arvin U Briddick
Smith D Stenseth
Maisha V Maclead
Aruna L Briddick
Chavez Q Dilliard
Jefferson F Sergi
Tony M Foller
Munro E Flosi
Jennifer O Gaucho
Kaitlin N Briddick
Rodrigues X Saylors
Greenwood G Poquette
Darci I Amigon
Juan U Garufi
Silvio D Kusko
Ricardo M Paprocki
Aruna V Bolognia
Aditya K Ostrosky
Misaki F Malet
David D Venere
Kadeem D Ruta
Alejandro B Ruta
Mujtaba L Ostrosky
Jefferson R Bowley
Ivar A Kusko
Darci C Figeroa
Arvin K Ferencz
Clifford U Glick
Leon Z Caldarera
Mayumi M Chui
Munro U Whobrey
Francesco R Butt
Izzy V Figeroa
Johnson D Malet
Aika W Bolognia
Mayumi Q Saylors
Costa L Saylors
Silvio K Ferencz
Deepesh V Oldroyd
Adams C Maclead
Smith O Oldroyd
Morrow Q Chui
Izzy D Campain
Adams O Poquette
Antonio A Sergi
David J Stenseth
IdCountryDate
1000Germany2026-08-14
1001Italy2026-08-13
1002Japan2026-07-20
1003Italy2026-08-10
1004Spain2026-07-27
1005France2026-07-29
1006India2026-07-30
1007Canada2026-08-09
1008United Kingdom2026-07-20
1009Brazil2026-07-22
1010Spain2026-07-19
1011France2026-07-18
1012India2026-07-31
1013Russia2026-08-11
1014Canada2026-08-12
1015Brazil2026-07-29
1016France2026-08-05
1017United Kingdom2026-07-21
1018Italy2026-07-28
1019Argentina2026-08-16
1020Argentina2026-07-30
1021Canada2026-08-06
1022Russia2026-08-01
1023France2026-07-23
1024Canada2026-07-18
1025Australia2026-07-24
1026Russia2026-07-29
1027Germany2026-08-04
1028Japan2026-08-06
1029India2026-08-12
1030Canada2026-08-01
1031Brazil2026-07-29
1032United Kingdom2026-08-06
1033Germany2026-08-06
1034Brazil2026-08-01
1035Russia2026-08-12
1036Canada2026-07-28
1037Germany2026-08-08
1038Canada2026-08-09
1039Italy2026-07-31
1040Russia2026-07-27
1041Italy2026-08-13
1042Spain2026-07-27
1043Italy2026-08-09
1044Italy2026-07-28
1045Germany2026-07-26
1046United Kingdom2026-07-28
1047Spain2026-08-02
1048Canada2026-07-27
1049Spain2026-08-09

On-Demand Data

NameIdCountryDate
Darci A Darakjy1000Australia2026-08-03
Costa I Garufi1001Russia2026-08-06
Tony D Tollner1002Germany2026-07-24
Kaitlin R Royster1003Spain2026-08-16
Cody R Ruta1004Japan2026-08-11
Leon C Stockham1005Russia2026-08-14
Kadeem I Bowley1006Japan2026-08-06
Ashley G Kolmetz1007Japan2026-07-18
Emily U Bowley1008France2026-08-12
Aruna A Gillian1009Japan2026-08-03
Faith N Venere1010Italy2026-08-15
Murillo Z Saylors1011Italy2026-07-23
Misaki H Poquette1012India2026-08-06
James F Inouye1013France2026-08-10
Leja V Morasca1014Canada2026-08-13
Juan L Caldarera1015Australia2026-07-31
Francesco C Darakjy1016Spain2026-08-09
Rodrigues V Gaucho1017United Kingdom2026-08-01
Jefferson F Vocelka1018Japan2026-07-29
Chavez M Garufi1019Canada2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy V GlickArgentinaIoni Bowcher NEGOTIATION
Maisha O RoysterIndiaAsiya Javayant UNQUALIFIED
Murillo Y VenereBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois X PaprockiArgentinaIvan Magalhaes NEW
Johnson X DoeIndiaBernardo Dominic RENEWAL
Leon Q GauchoGermanyBernardo Dominic PROPOSAL
Mayumi G SergiIndiaAmy Elsner QUALIFIED
Izzy F OldroydGermanyIoni Bowcher UNQUALIFIED
David P FigeroaAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois Y DarakjyFranceOnyama Limba NEGOTIATION
Greenwood S AlbaresItalyIvan Magalhaes QUALIFIED
Arvin U VocelkaArgentinaBernardo Dominic NEW
Claire W GarufiItalyStephen Shaw NEGOTIATION
Mayumi P MaletIndiaAmy Elsner PROPOSAL
Cody G WhobreyAustraliaIvan Magalhaes NEW
Chavez T MarrierIndiaAnna Fali UNQUALIFIED
Nicolas E TollnerGermanyAsiya Javayant UNQUALIFIED
Rodrigues E TollnerArgentinaStephen Shaw NEGOTIATION
Silvio U NickaSpainStephen Shaw UNQUALIFIED
Darci W GauchoAustraliaXuxue Feng NEGOTIATION
Aika O KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Darci H AmigonAustraliaStephen Shaw NEW
Salvatore K MarrierJapanIvan Magalhaes UNQUALIFIED
Tony R PerinItalyXuxue Feng PROPOSAL
Aruna D NestleGermanyElwin Sharvill QUALIFIED
Adams C WhobreyFranceOnyama Limba QUALIFIED
Jefferson U AmigonBrazilStephen Shaw PROPOSAL
Misaki T BriddickBrazilStephen Shaw NEW
Arvin J GillianJapanAnna Fali NEW
Jones Z RutaFranceXuxue Feng RENEWAL
Munro L GauchoIndiaAmy Elsner RENEWAL
Morrow C DilliardItalyAnna Fali UNQUALIFIED
Jennifer M FigeroaJapanStephen Shaw UNQUALIFIED
Antonio C BowleyAustraliaIvan Magalhaes QUALIFIED
Faith L OstroskyItalyXuxue Feng QUALIFIED
Alejandro D OldroydAustraliaElwin Sharvill QUALIFIED
Kadeem P MarrierAustraliaStephen Shaw PROPOSAL
Smith A BologniaGermanyElwin Sharvill NEW
Arvin S FigeroaFranceAsiya Javayant NEGOTIATION
Darci J InouyeGermanyIvan Magalhaes RENEWAL

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