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
Claire L StockhamJapanIvan Magalhaes NEGOTIATION
Johnson B GlickFranceStephen Shaw QUALIFIED
Murillo H GarufiJapanElwin Sharvill NEGOTIATION
Stacey G MarrierIndiaStephen Shaw UNQUALIFIED
Izzy P VenereItalyOnyama Limba PROPOSAL
Jones B ButtGermanyOnyama Limba UNQUALIFIED
Jefferson Q GlickIndiaIoni Bowcher NEW
Ashley S SlusarskiGermanyAnna Fali NEGOTIATION
James G CaudyItalyIvan Magalhaes NEGOTIATION
Salvatore D IturbideSpainStephen Shaw RENEWAL
Arvin Y KuskoCanadaIoni Bowcher PROPOSAL
Cody W SlusarskiGermanyBernardo Dominic QUALIFIED
James D ButtFranceIvan Magalhaes NEGOTIATION
Alejandro T BriddickItalyXuxue Feng NEGOTIATION
Maisha Z MarrierSpainStephen Shaw RENEWAL
Aditya X ChuiUnited KingdomIvan Magalhaes PROPOSAL
Maria Y PaprockiSpainAmy Elsner QUALIFIED
Aditya J MorascaGermanyBernardo Dominic NEW
Misaki V OstroskyCanadaBernardo Dominic RENEWAL
Ivar W VocelkaSpainAnna Fali NEGOTIATION
Jennifer N IturbideItalyOnyama Limba QUALIFIED
Silvio T ChuiAustraliaIvan Magalhaes QUALIFIED
Murillo S OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Misaki R DilliardIndiaElwin Sharvill RENEWAL
Faith R WaycottRussiaOnyama Limba NEGOTIATION
Wickens J GarufiGermanyStephen Shaw RENEWAL
Cody I VocelkaItalyElwin Sharvill NEGOTIATION
Kadeem F ButtGermanyAmy Elsner NEW
Silvio Z OstroskyIndiaAsiya Javayant NEGOTIATION
Deepesh H StensethCanadaAnna Fali PROPOSAL
Munro U FigeroaIndiaAnna Fali PROPOSAL
Salvatore Q PaprockiRussiaIoni Bowcher PROPOSAL
Maria V MaletRussiaStephen Shaw NEGOTIATION
Francesco Y CaldareraRussiaAmy Elsner RENEWAL
Murillo Y CampainRussiaIoni Bowcher UNQUALIFIED
Smith O WaycottFranceOnyama Limba RENEWAL
Ricardo L StensethBrazilAsiya Javayant QUALIFIED
Munro A GauchoIndiaOnyama Limba QUALIFIED
Stacey I KolmetzAustraliaIoni Bowcher RENEWAL
Cody B RutaCanadaIvan Magalhaes RENEWAL
Ivar P GillianIndiaStephen Shaw UNQUALIFIED
Mayumi S BriddickFranceAsiya Javayant PROPOSAL
Ivar P RimAustraliaXuxue Feng RENEWAL
Sinclair Z GarufiIndiaAmy Elsner UNQUALIFIED
Faith A MaletArgentinaAmy Elsner RENEWAL
Maisha A MarrierFranceXuxue Feng NEW
Kadeem X NickaUnited KingdomAmy Elsner UNQUALIFIED
Jeanfrancois X FlosiAustraliaXuxue Feng NEGOTIATION
Stacey I GarufiJapanAmy Elsner PROPOSAL
Mayumi X RulapaughItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia U GauchoCanadaAsiya Javayant PROPOSAL
Wickens S PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Faith R FerenczFranceXuxue Feng RENEWAL
Misaki G KuskoGermanyElwin Sharvill RENEWAL
Leon G MaletArgentinaAnna Fali NEW
Jefferson S RoysterArgentinaAmy Elsner RENEWAL
David O RutaSpainIvan Magalhaes QUALIFIED
Morrow I BologniaCanadaIoni Bowcher NEGOTIATION
Greenwood R CampainCanadaIoni Bowcher NEGOTIATION
Silvio U DilliardCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson V FerenczArgentina2026-07-05Chapman, Ross E Esq PROPOSAL85Elwin Sharvill
1001Maria V GlickCanada2026-07-01Morlong Associates PROPOSAL34Onyama Limba
1002James S FollerBrazil2026-06-11Feiner Bros RENEWAL12Ioni Bowcher
1003Chavez L BologniaUnited Kingdom2026-07-01King, Christopher A Esq NEW37Onyama Limba
1004Munro I SchemmerCanada2026-06-08Dorl, James J Esq NEGOTIATION78Xuxue Feng
1005Murillo C StensethFrance2026-06-09Truhlar And Truhlar Attys QUALIFIED69Xuxue Feng
1006Octavia G KuskoJapan2026-07-06Truhlar And Truhlar Attys NEW7Ivan Magalhaes
1007Morrow B DoeRussia2026-06-27Rousseaux, Michael Esq NEGOTIATION6Asiya Javayant
1008Francesco T SergiItaly2026-07-02Benton, John B Jr QUALIFIED99Onyama Limba
1009Tony E MorascaArgentina2026-06-10Chanay, Jeffrey A Esq UNQUALIFIED2Ioni Bowcher
1010Mujtaba P DoeBrazil2026-06-19Chanay, Jeffrey A Esq NEGOTIATION82Elwin Sharvill
1011Cody Y MaletArgentina2026-06-28Morlong Associates NEGOTIATION65Anna Fali
1012Deepesh U GillianItaly2026-07-06Benton, John B Jr NEGOTIATION38Bernardo Dominic
1013Deepesh D SlusarskiGermany2026-06-09Printing Dimensions NEGOTIATION70Elwin Sharvill
1014Claire M PerinArgentina2026-06-15Benton, John B Jr NEGOTIATION21Stephen Shaw
1015Ivar C DilliardCanada2026-06-11Chemel, James L Cpa QUALIFIED48Amy Elsner
1016Murillo F SergiRussia2026-06-16Chapman, Ross E Esq NEW42Anna Fali
1017Rodrigues F FollerCanada2026-07-01Feiner Bros NEW31Onyama Limba
1018Morrow O ChuiGermany2026-07-04Feltz Printing Service NEW44Amy Elsner
1019Nicolas F DilliardFrance2026-06-23Rousseaux, Michael Esq UNQUALIFIED11Bernardo Dominic
1020Juan I KolmetzBrazil2026-06-09King, Christopher A Esq RENEWAL92Anna Fali
1021Francesco P StensethFrance2026-06-28Printing Dimensions PROPOSAL78Asiya Javayant
1022Munro E WieserAustralia2026-06-22Buckley Miller Wright UNQUALIFIED88Onyama Limba
1023Cody Z ShinkoAustralia2026-06-13Benton, John B Jr RENEWAL40Elwin Sharvill
1024Faith Z AlbaresSpain2026-06-07Chapman, Ross E Esq QUALIFIED93Anna Fali
1025Julie S RimUnited Kingdom2026-06-22Chapman, Ross E Esq UNQUALIFIED72Onyama Limba
1026Jones L WhobreyUnited Kingdom2026-06-27Dorl, James J Esq PROPOSAL70Ioni Bowcher
1027Johnson C BologniaFrance2026-06-15Rousseaux, Michael Esq NEW27Xuxue Feng
1028Misaki X NickaCanada2026-07-05Feiner Bros UNQUALIFIED79Stephen Shaw
1029Isabel C RulapaughIndia2026-07-06Dorl, James J Esq NEW63Xuxue Feng
1030Antonio V MarrierAustralia2026-06-17Commercial Press NEW12Ivan Magalhaes
1031Leon Q CampainSpain2026-06-29Benton, John B Jr RENEWAL62Bernardo Dominic
1032Faith F RoysterItaly2026-06-08Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1033Juan T RulapaughArgentina2026-06-22Benton, John B Jr UNQUALIFIED72Asiya Javayant
1034Jones D MaletSpain2026-06-16Chemel, James L Cpa PROPOSAL59Elwin Sharvill
1035Ashley R StockhamBrazil2026-07-06Benton, John B Jr PROPOSAL0Anna Fali
1036Clifford C AmigonAustralia2026-07-05Chapman, Ross E Esq NEW97Asiya Javayant
1037Maria S OldroydBrazil2026-06-22Truhlar And Truhlar Attys NEW5Ivan Magalhaes
1038James G BriddickRussia2026-06-10Rousseaux, Michael Esq PROPOSAL76Stephen Shaw
1039Deepesh V FigeroaRussia2026-06-09Rousseaux, Michael Esq UNQUALIFIED11Onyama Limba
1040Clifford K WhobreyAustralia2026-06-18Chapman, Ross E Esq NEGOTIATION81Xuxue Feng
1041Izzy N RimGermany2026-06-28Benton, John B Jr RENEWAL67Ivan Magalhaes
1042Mujtaba M AmigonJapan2026-06-14Morlong Associates RENEWAL23Stephen Shaw
1043Darci E GlickAustralia2026-06-13Chapman, Ross E Esq NEW33Asiya Javayant
1044Salvatore E MaletFrance2026-06-10Rousseaux, Michael Esq NEW13Ivan Magalhaes
1045Julie W MacleadRussia2026-06-14Rousseaux, Michael Esq PROPOSAL48Bernardo Dominic
1046Mujtaba I BriddickSpain2026-06-11Rangoni Of Florence UNQUALIFIED70Xuxue Feng
1047Sinclair G ChuiAustralia2026-07-06Chemel, James L Cpa QUALIFIED65Asiya Javayant
1048Julie M MorascaBrazil2026-07-01Chapman, Ross E Esq RENEWAL10Elwin Sharvill
1049Antonio C MarrierJapan2026-06-13Feiner Bros UNQUALIFIED90Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Salvatore R OldroydJapanIoni Bowcher UNQUALIFIED
Silvio R SchemmerBrazilIvan Magalhaes NEGOTIATION
Maria A AmigonBrazilElwin Sharvill PROPOSAL
Greenwood C PaprockiSpainAnna Fali RENEWAL
Leja J CampainSpainElwin Sharvill QUALIFIED
Leja D GlickRussiaOnyama Limba NEW
Mayumi Y WhobreyCanadaBernardo Dominic NEW
Claire C GarufiGermanyOnyama Limba RENEWAL
James F AlbaresItalyIoni Bowcher UNQUALIFIED
Chavez V FlosiGermanyElwin Sharvill UNQUALIFIED
Morrow O MorascaBrazilStephen Shaw PROPOSAL
Juan A MacleadAustraliaAmy Elsner NEW
Isabel H KuskoFranceAmy Elsner PROPOSAL
Misaki G MaletBrazilElwin Sharvill UNQUALIFIED
Ivar C AmigonUnited KingdomStephen Shaw NEW
James B ShinkoRussiaIvan Magalhaes NEGOTIATION
Maria G FollerAustraliaStephen Shaw PROPOSAL
Mayumi P DoeSpainAsiya Javayant NEGOTIATION
Jennifer G BriddickCanadaElwin Sharvill RENEWAL
Sinclair Q RulapaughSpainAmy Elsner UNQUALIFIED
Murillo X MacleadSpainAnna Fali RENEWAL
Aika A CaudyIndiaIoni Bowcher NEGOTIATION
Murillo C PaprockiRussiaStephen Shaw RENEWAL
Arvin V IturbideJapanAmy Elsner RENEWAL
Arvin V MarrierRussiaBernardo Dominic RENEWAL
Johnson T KuskoAustraliaXuxue Feng PROPOSAL
Smith F RulapaughSpainAsiya Javayant RENEWAL
Maria L ShinkoBrazilAsiya Javayant PROPOSAL
Aditya Y NestleGermanyBernardo Dominic RENEWAL
Alejandro L WhobreyJapanAmy Elsner NEW
Cody P TollnerSpainOnyama Limba PROPOSAL
Nicolas F GauchoIndiaStephen Shaw NEW
Emily I DilliardAustraliaIoni Bowcher UNQUALIFIED
Faith R MacleadIndiaIvan Magalhaes PROPOSAL
Aditya K DarakjyRussiaBernardo Dominic RENEWAL
Francesco P MaletCanadaIoni Bowcher NEGOTIATION
Chavez T FlosiFranceXuxue Feng RENEWAL
Jennifer V FollerArgentinaBernardo Dominic QUALIFIED
Smith Q PoquetteFranceIvan Magalhaes PROPOSAL
Octavia T ShinkoIndiaXuxue Feng NEW
Sinclair W CaldareraItalyStephen Shaw PROPOSAL
Ivar A RoysterJapanIvan Magalhaes UNQUALIFIED
Rodrigues N WieserBrazilBernardo Dominic RENEWAL
Salvatore Y SergiUnited KingdomAmy Elsner NEW
Faith L WieserCanadaXuxue Feng RENEWAL
Greenwood U FigeroaJapanOnyama Limba UNQUALIFIED
Misaki I GlickCanadaOnyama Limba QUALIFIED
Alejandro U FigeroaJapanStephen Shaw PROPOSAL
Munro W ChuiItalyAsiya Javayant QUALIFIED
Cody T RulapaughAustraliaAnna Fali RENEWAL
Frozen Columns
Name
Tony M Saylors
Tony I Maclead
Aruna B Saylors
Sinclair D Tollner
Isabel Y Tollner
Octavia J Vocelka
Leja U Saylors
David A Venere
James Z Rulapaugh
Jeanfrancois Q Wieser
Aruna Q Briddick
David Y Doe
Faith E Dilliard
Greenwood P Perin
Isabel J Garufi
Jefferson M Marrier
Chavez A Caudy
Jefferson S Saylors
Francesco Z Caldarera
Jones I Briddick
Antonio O Doe
Emily F Darakjy
Aika V Ferencz
Greenwood X Foller
Alejandro M Gaucho
Julie S Darakjy
Leja G Figeroa
Leja I Sergi
Wickens D Foller
Jennifer K Caudy
Maria H Dilliard
Adams M Perin
Francesco W Glick
Jones K Ruta
Maria J Chui
Aditya H Nicka
Jones U Caudy
Adams E Maclead
Maisha G Inouye
Wickens K Whobrey
Kaitlin D Waycott
Maisha P Darakjy
Emily Y Caudy
James V Sergi
Mayumi V Gillian
Smith C Tollner
Aditya Y Schemmer
Greenwood A Poquette
Rodrigues Y Marrier
Arvin H Inouye
IdCountryDate
1000Japan2026-06-21
1001Brazil2026-06-24
1002France2026-06-11
1003Argentina2026-06-12
1004Brazil2026-06-30
1005Russia2026-06-11
1006Germany2026-06-29
1007France2026-06-15
1008Japan2026-06-27
1009Canada2026-06-24
1010United Kingdom2026-06-24
1011Canada2026-06-17
1012Germany2026-06-28
1013Russia2026-06-07
1014Germany2026-06-25
1015India2026-06-19
1016Canada2026-07-05
1017United Kingdom2026-06-11
1018India2026-06-12
1019Germany2026-06-27
1020Spain2026-06-25
1021Italy2026-06-18
1022Japan2026-07-03
1023Germany2026-06-20
1024Argentina2026-07-06
1025Australia2026-06-18
1026Japan2026-06-25
1027Germany2026-06-30
1028Russia2026-06-19
1029Brazil2026-07-04
1030Australia2026-07-05
1031Argentina2026-06-22
1032Japan2026-07-04
1033Japan2026-06-09
1034Brazil2026-06-11
1035Germany2026-06-21
1036Russia2026-06-19
1037Argentina2026-06-22
1038Spain2026-06-09
1039France2026-06-28
1040Spain2026-06-25
1041Japan2026-07-03
1042Argentina2026-06-11
1043Australia2026-07-02
1044Japan2026-06-08
1045Argentina2026-06-23
1046Italy2026-06-29
1047Spain2026-06-29
1048France2026-06-27
1049Japan2026-06-16

On-Demand Data

NameIdCountryDate
Jennifer J Slusarski1000Argentina2026-06-25
Maisha X Stockham1001Canada2026-07-05
Costa F Campain1002India2026-07-02
Jeanfrancois O Dilliard1003Russia2026-06-20
Juan E Caldarera1004Germany2026-06-25
Izzy J Iturbide1005Spain2026-06-16
Jefferson K Ruta1006Brazil2026-06-30
Izzy I Tollner1007Canada2026-06-30
Jeanfrancois X Doe1008Japan2026-06-28
Munro S Saylors1009India2026-06-07
Misaki C Amigon1010Russia2026-06-17
Aditya K Butt1011France2026-06-20
Adams R Nestle1012Russia2026-06-20
Francesco H Rim1013Canada2026-06-29
Aruna A Butt1014France2026-06-16
Jones S Ostrosky1015France2026-06-18
Ivar V Bolognia1016Germany2026-06-20
Sinclair G Shinko1017Argentina2026-06-23
Julie V Ruta1018Japan2026-07-05
Maisha U Malet1019Argentina2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey I BriddickGermanyIoni Bowcher UNQUALIFIED
Morrow I SchemmerGermanyBernardo Dominic RENEWAL
Smith R GlickGermanyElwin Sharvill NEW
Tony G WhobreySpainElwin Sharvill QUALIFIED
Juan M BologniaArgentinaIoni Bowcher RENEWAL
Darci I CaldareraBrazilBernardo Dominic NEGOTIATION
Kaitlin E SchemmerJapanAnna Fali NEGOTIATION
Smith Z FollerRussiaAnna Fali UNQUALIFIED
Maisha Z KolmetzBrazilXuxue Feng QUALIFIED
Octavia Q RutaArgentinaElwin Sharvill NEGOTIATION
Wickens J PerinBrazilBernardo Dominic RENEWAL
Jefferson V KolmetzUnited KingdomIoni Bowcher NEW
Aika V KolmetzRussiaElwin Sharvill NEGOTIATION
Aruna D OldroydRussiaIoni Bowcher QUALIFIED
Jeanfrancois N PaprockiAustraliaIoni Bowcher NEGOTIATION
David Z StockhamAustraliaAnna Fali NEW
Silvio L ShinkoRussiaIvan Magalhaes RENEWAL
Adams Q TollnerJapanAnna Fali QUALIFIED
Clifford H NestleGermanyAmy Elsner NEW
Leja U MacleadGermanyOnyama Limba UNQUALIFIED
Jeanfrancois L CaldareraCanadaElwin Sharvill PROPOSAL
Leon P PerinGermanyAsiya Javayant NEW
Aditya T GillianArgentinaIvan Magalhaes QUALIFIED
Claire C FlosiBrazilAmy Elsner RENEWAL
Johnson D WieserIndiaElwin Sharvill QUALIFIED
Deepesh F CampainSpainStephen Shaw RENEWAL
Aruna Q WhobreyBrazilStephen Shaw NEW
Silvio J FlosiRussiaStephen Shaw NEW
Julie U GarufiIndiaAnna Fali NEW
David K CaudySpainBernardo Dominic RENEWAL
Clifford I FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Salvatore Q WieserUnited KingdomElwin Sharvill RENEWAL
Silvio A FlosiRussiaXuxue Feng RENEWAL
Aika X InouyeFranceStephen Shaw PROPOSAL
Rodrigues J BowleyFranceIvan Magalhaes UNQUALIFIED
Rodrigues V FlosiJapanIvan Magalhaes NEGOTIATION
Aruna N PerinBrazilAsiya Javayant PROPOSAL
Nicolas K OldroydRussiaAmy Elsner PROPOSAL
Juan W StensethGermanyAmy Elsner NEW
Leja J GauchoItalyAnna Fali PROPOSAL

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