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
Jefferson H MorascaArgentinaIvan Magalhaes PROPOSAL
Mujtaba Y BriddickItalyAnna Fali QUALIFIED
Jones H InouyeSpainOnyama Limba QUALIFIED
Kadeem N FerenczItalyOnyama Limba PROPOSAL
Mayumi P StockhamJapanAnna Fali UNQUALIFIED
Ivar J RutaItalyStephen Shaw NEW
Leon M GarufiCanadaIoni Bowcher NEW
Ashley M WieserArgentinaXuxue Feng RENEWAL
Johnson Q KuskoCanadaBernardo Dominic RENEWAL
Jeanfrancois S BowleyJapanXuxue Feng NEGOTIATION
Nicolas H WaycottAustraliaIoni Bowcher RENEWAL
Wickens Y DarakjyFranceBernardo Dominic PROPOSAL
Izzy L PoquetteUnited KingdomAmy Elsner QUALIFIED
Wickens P RimAustraliaAnna Fali RENEWAL
Salvatore H FlosiUnited KingdomIvan Magalhaes QUALIFIED
Kadeem L OldroydCanadaXuxue Feng UNQUALIFIED
Wickens R DarakjyCanadaAnna Fali UNQUALIFIED
Salvatore R BowleySpainOnyama Limba UNQUALIFIED
Antonio Z CampainJapanIoni Bowcher NEW
Aditya U ChuiGermanyXuxue Feng NEGOTIATION
Francesco P BriddickIndiaStephen Shaw UNQUALIFIED
Greenwood W ShinkoItalyAsiya Javayant NEGOTIATION
Kaitlin V ShinkoBrazilXuxue Feng NEW
Munro Y OstroskyUnited KingdomElwin Sharvill NEW
Leja L MarrierArgentinaBernardo Dominic UNQUALIFIED
Kaitlin A RutaUnited KingdomOnyama Limba PROPOSAL
Cody V MacleadGermanyAnna Fali PROPOSAL
Kaitlin P NickaFranceAnna Fali RENEWAL
Nicolas E MacleadSpainAnna Fali NEGOTIATION
Maria C SaylorsUnited KingdomStephen Shaw RENEWAL
Greenwood B MorascaArgentinaBernardo Dominic UNQUALIFIED
Salvatore R MaletGermanyAmy Elsner NEW
Cody Z OstroskyJapanStephen Shaw UNQUALIFIED
James C PaprockiIndiaAnna Fali NEW
Nicolas B OstroskyBrazilOnyama Limba NEGOTIATION
Nicolas E GlickJapanIoni Bowcher NEW
Ashley J StockhamSpainOnyama Limba RENEWAL
Octavia M BriddickArgentinaIoni Bowcher QUALIFIED
Rodrigues R NestleIndiaStephen Shaw NEW
Cody W FigeroaJapanIoni Bowcher NEW
Kaitlin U CaudyFranceBernardo Dominic RENEWAL
Nicolas M CaudyGermanyElwin Sharvill RENEWAL
Leja H RimJapanIoni Bowcher PROPOSAL
Alejandro F InouyeArgentinaIvan Magalhaes NEW
Tony E WieserJapanXuxue Feng QUALIFIED
James O VocelkaBrazilXuxue Feng PROPOSAL
Octavia P GlickArgentinaStephen Shaw PROPOSAL
David X BriddickBrazilOnyama Limba PROPOSAL
Nicolas M MarrierBrazilElwin Sharvill PROPOSAL
Mayumi L PerinBrazilElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy E SergiSpainBernardo Dominic NEW
Munro V ChuiItalyIvan Magalhaes NEW
Arvin Z FigeroaFranceAmy Elsner UNQUALIFIED
Octavia T MaletAustraliaXuxue Feng QUALIFIED
Maisha G SergiGermanyStephen Shaw UNQUALIFIED
Juan I WhobreyIndiaIoni Bowcher NEW
Johnson X NestleSpainOnyama Limba UNQUALIFIED
Antonio M MaletIndiaXuxue Feng QUALIFIED
Claire Z CaldareraItalyAsiya Javayant QUALIFIED
David W ButtRussiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie Y RoysterCanada2026-07-18Printing Dimensions QUALIFIED80Ivan Magalhaes
1001Antonio J BologniaBrazil2026-07-28Feltz Printing Service NEGOTIATION44Asiya Javayant
1002Julie V CaldareraFrance2026-07-31Printing Dimensions RENEWAL43Asiya Javayant
1003Mayumi E ChuiRussia2026-07-11Chemel, James L Cpa NEW90Onyama Limba
1004Rodrigues I CaldareraIndia2026-08-01Rangoni Of Florence NEW12Amy Elsner
1005Jeanfrancois Z DilliardFrance2026-07-31Chemel, James L Cpa NEGOTIATION50Onyama Limba
1006Ashley Z PaprockiIndia2026-07-14Chanay, Jeffrey A Esq RENEWAL33Ioni Bowcher
1007Claire K ButtCanada2026-07-18King, Christopher A Esq UNQUALIFIED54Onyama Limba
1008Chavez X AmigonRussia2026-07-29Benton, John B Jr UNQUALIFIED75Amy Elsner
1009Aditya H SchemmerIndia2026-07-10Printing Dimensions RENEWAL56Ioni Bowcher
1010Deepesh C DoeCanada2026-08-08Buckley Miller Wright NEW79Ivan Magalhaes
1011Emily O TollnerArgentina2026-07-29Rousseaux, Michael Esq NEGOTIATION13Onyama Limba
1012Wickens U CaldareraAustralia2026-07-29Rangoni Of Florence NEGOTIATION41Amy Elsner
1013Johnson Y VocelkaJapan2026-07-31Dorl, James J Esq RENEWAL17Asiya Javayant
1014Greenwood L DarakjyCanada2026-07-27Chapman, Ross E Esq UNQUALIFIED95Anna Fali
1015Mujtaba N OldroydCanada2026-07-23Rousseaux, Michael Esq NEW57Asiya Javayant
1016Salvatore N GauchoArgentina2026-07-11Feiner Bros NEW51Elwin Sharvill
1017Jefferson H AmigonAustralia2026-07-23Rousseaux, Michael Esq NEW99Elwin Sharvill
1018Johnson L ShinkoGermany2026-08-08Rousseaux, Michael Esq RENEWAL16Elwin Sharvill
1019Smith D FerenczFrance2026-07-18Commercial Press QUALIFIED90Elwin Sharvill
1020Stacey A NickaItaly2026-07-13Buckley Miller Wright UNQUALIFIED23Anna Fali
1021Julie X PerinRussia2026-07-12Chanay, Jeffrey A Esq PROPOSAL61Onyama Limba
1022Smith X RulapaughRussia2026-07-29King, Christopher A Esq NEGOTIATION97Bernardo Dominic
1023Alejandro J StockhamJapan2026-07-20Chapman, Ross E Esq NEW24Ivan Magalhaes
1024Maisha Q RulapaughArgentina2026-08-02King, Christopher A Esq NEW6Ioni Bowcher
1025James H RulapaughUnited Kingdom2026-08-03Feiner Bros RENEWAL98Xuxue Feng
1026Ivar A PoquetteGermany2026-07-10Printing Dimensions RENEWAL2Anna Fali
1027Morrow R DilliardIndia2026-07-21King, Christopher A Esq NEW36Stephen Shaw
1028Misaki F RoysterItaly2026-07-29Benton, John B Jr RENEWAL81Ioni Bowcher
1029Octavia H AmigonIndia2026-07-25King, Christopher A Esq RENEWAL66Stephen Shaw
1030Emily L OstroskySpain2026-08-06Dorl, James J Esq RENEWAL48Ivan Magalhaes
1031Ivar Y GarufiSpain2026-07-15King, Christopher A Esq QUALIFIED99Onyama Limba
1032Leja L FollerJapan2026-07-17Benton, John B Jr PROPOSAL3Bernardo Dominic
1033Leon S CaudyGermany2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED30Elwin Sharvill
1034Mayumi J DarakjyBrazil2026-07-12Buckley Miller Wright QUALIFIED99Anna Fali
1035Jones S DilliardArgentina2026-08-02Chemel, James L Cpa NEW0Ivan Magalhaes
1036Munro D MarrierArgentina2026-07-31Truhlar And Truhlar Attys NEW34Elwin Sharvill
1037Ashley N BologniaArgentina2026-08-08Rousseaux, Michael Esq QUALIFIED44Anna Fali
1038Cody X TollnerJapan2026-07-18Rousseaux, Michael Esq NEGOTIATION95Xuxue Feng
1039Arvin K DoeJapan2026-07-22Feltz Printing Service NEW58Elwin Sharvill
1040Aruna O OstroskySpain2026-07-25Commercial Press RENEWAL30Xuxue Feng
1041Claire I StensethSpain2026-08-03Rangoni Of Florence NEGOTIATION21Ioni Bowcher
1042Emily H ButtFrance2026-08-04Feltz Printing Service QUALIFIED41Xuxue Feng
1043James H VenereAustralia2026-07-12Commercial Press NEW91Bernardo Dominic
1044Clifford J CaldareraGermany2026-08-04Commercial Press PROPOSAL6Bernardo Dominic
1045Costa P IturbideUnited Kingdom2026-07-13Morlong Associates PROPOSAL14Onyama Limba
1046Sinclair I NestleUnited Kingdom2026-08-03Rangoni Of Florence QUALIFIED8Onyama Limba
1047Octavia J WieserIndia2026-07-23Rousseaux, Michael Esq NEW7Asiya Javayant
1048Stacey E GauchoSpain2026-08-01Truhlar And Truhlar Attys NEGOTIATION49Stephen Shaw
1049Juan Q BowleyItaly2026-08-06Rousseaux, Michael Esq PROPOSAL25Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba H KolmetzIndiaElwin Sharvill QUALIFIED
Leon E SergiAustraliaStephen Shaw NEGOTIATION
Mayumi Q FerenczItalyXuxue Feng RENEWAL
Izzy A RulapaughRussiaAnna Fali QUALIFIED
Julie Q GlickJapanXuxue Feng RENEWAL
David X SchemmerFranceXuxue Feng NEGOTIATION
Cody I TollnerSpainElwin Sharvill PROPOSAL
Wickens A FlosiJapanElwin Sharvill UNQUALIFIED
Morrow K MarrierIndiaAmy Elsner NEGOTIATION
Faith O GarufiAustraliaElwin Sharvill UNQUALIFIED
Aditya W AlbaresUnited KingdomAsiya Javayant QUALIFIED
Arvin F AlbaresFranceBernardo Dominic PROPOSAL
Alejandro L SaylorsIndiaXuxue Feng NEW
Francesco R RimIndiaOnyama Limba RENEWAL
Juan X VocelkaSpainAnna Fali RENEWAL
Faith Z WieserJapanIvan Magalhaes PROPOSAL
Tony M DoeGermanyBernardo Dominic NEGOTIATION
Antonio Z MacleadAustraliaIvan Magalhaes PROPOSAL
Ivar L FerenczAustraliaIvan Magalhaes NEW
Ricardo W DoeItalyIvan Magalhaes PROPOSAL
Ricardo D RulapaughUnited KingdomXuxue Feng RENEWAL
Leja E BologniaSpainIvan Magalhaes PROPOSAL
Smith V FlosiRussiaOnyama Limba NEW
Deepesh D FigeroaBrazilAnna Fali NEGOTIATION
Deepesh T StockhamFranceStephen Shaw NEW
Emily V NestleGermanyAmy Elsner NEW
Faith F SergiUnited KingdomIoni Bowcher NEW
Maria S NickaSpainStephen Shaw UNQUALIFIED
Octavia F StensethCanadaAsiya Javayant RENEWAL
Morrow Z IturbideCanadaAnna Fali QUALIFIED
Munro D DilliardJapanBernardo Dominic NEW
Juan O GlickFranceElwin Sharvill QUALIFIED
Juan O PoquetteGermanyIvan Magalhaes NEW
Antonio X VocelkaCanadaStephen Shaw RENEWAL
Aditya W AmigonItalyAsiya Javayant NEW
Smith U RoysterBrazilOnyama Limba PROPOSAL
Jeanfrancois R GlickCanadaXuxue Feng RENEWAL
Leon K CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Kadeem G GarufiItalyElwin Sharvill RENEWAL
Faith U GauchoSpainAsiya Javayant QUALIFIED
Jennifer L InouyeItalyAsiya Javayant RENEWAL
Maisha I TollnerFranceIoni Bowcher NEGOTIATION
Maisha S MorascaItalyIoni Bowcher UNQUALIFIED
Claire V FlosiIndiaOnyama Limba QUALIFIED
Emily F GillianSpainAmy Elsner QUALIFIED
Alejandro Y CaldareraCanadaElwin Sharvill NEW
Wickens K TollnerBrazilIoni Bowcher NEW
David V WhobreyBrazilElwin Sharvill UNQUALIFIED
Izzy K MaletJapanIoni Bowcher PROPOSAL
Claire B StensethCanadaStephen Shaw NEGOTIATION
Frozen Columns
Name
Aika B Vocelka
Izzy T Whobrey
Rodrigues D Saylors
Johnson A Darakjy
Murillo B Bowley
Juan Z Foller
Mujtaba J Oldroyd
Greenwood S Bowley
Alejandro I Doe
Cody P Amigon
Munro Q Briddick
Greenwood F Nicka
Ricardo L Shinko
Maria D Nestle
James B Inouye
Deepesh N Gillian
Wickens Z Darakjy
Smith P Nicka
Cody X Waycott
Clifford L Doe
Jeanfrancois Y Perin
Mayumi T Rulapaugh
Mayumi F Ruta
Octavia A Briddick
Faith W Briddick
Cody Y Darakjy
Julie U Ostrosky
Francesco W Figeroa
Leja F Slusarski
Kaitlin B Rulapaugh
Kaitlin D Marrier
Smith J Caudy
Murillo N Saylors
Kaitlin H Royster
Leon O Nestle
Clifford S Briddick
Leja J Tollner
Jeanfrancois I Royster
Leja J Darakjy
Mujtaba V Bolognia
Emily N Schemmer
Misaki Z Nicka
Ricardo I Iturbide
Rodrigues T Amigon
Costa T Saylors
Mujtaba S Ruta
Isabel C Caudy
Maria Q Ostrosky
Rodrigues Z Nicka
Tony D Briddick
IdCountryDate
1000Canada2026-07-12
1001Brazil2026-07-12
1002France2026-08-07
1003Spain2026-08-05
1004Spain2026-07-30
1005Germany2026-08-04
1006Russia2026-08-06
1007Australia2026-07-12
1008Germany2026-07-21
1009Australia2026-07-20
1010India2026-07-29
1011Italy2026-07-25
1012United Kingdom2026-08-03
1013Canada2026-07-21
1014Spain2026-07-14
1015Spain2026-07-22
1016Argentina2026-07-20
1017Spain2026-08-02
1018India2026-07-24
1019Spain2026-07-11
1020Japan2026-08-02
1021Germany2026-07-12
1022Australia2026-08-01
1023France2026-07-20
1024Russia2026-07-29
1025Italy2026-07-28
1026United Kingdom2026-08-08
1027Canada2026-07-21
1028Russia2026-07-30
1029Japan2026-08-08
1030Russia2026-07-24
1031Germany2026-07-17
1032Australia2026-07-12
1033Argentina2026-08-04
1034Italy2026-07-17
1035France2026-07-24
1036Russia2026-07-10
1037Brazil2026-07-11
1038Germany2026-08-06
1039Russia2026-07-17
1040Russia2026-07-15
1041Canada2026-08-03
1042United Kingdom2026-07-14
1043Argentina2026-07-14
1044Italy2026-08-03
1045Japan2026-08-05
1046United Kingdom2026-08-06
1047Russia2026-07-10
1048United Kingdom2026-08-01
1049Japan2026-07-11

On-Demand Data

NameIdCountryDate
Mujtaba Y Morasca1000Italy2026-07-28
Mayumi G Stenseth1001India2026-07-12
Francesco M Perin1002Germany2026-07-20
Chavez Z Saylors1003Italy2026-07-19
Antonio H Paprocki1004Germany2026-08-01
Munro O Malet1005Japan2026-08-05
Silvio U Briddick1006Germany2026-07-20
Rodrigues T Inouye1007Japan2026-08-06
Kaitlin A Foller1008Russia2026-08-05
Ashley T Waycott1009Spain2026-08-02
Aditya Y Oldroyd1010France2026-07-29
Silvio T Gaucho1011Germany2026-07-24
Jones I Vocelka1012Australia2026-07-19
Salvatore I Flosi1013Russia2026-08-01
Stacey O Ostrosky1014Argentina2026-08-03
Alejandro K Gaucho1015France2026-07-20
Smith Y Garufi1016Japan2026-07-28
Leja D Iturbide1017Brazil2026-07-23
Ivar W Ostrosky1018India2026-07-25
Leja V Bolognia1019India2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki I GarufiFranceBernardo Dominic QUALIFIED
Johnson K IturbideAustraliaAnna Fali UNQUALIFIED
Francesco X FerenczItalyAmy Elsner RENEWAL
Ricardo N GarufiArgentinaIvan Magalhaes UNQUALIFIED
Leon Q SergiArgentinaXuxue Feng PROPOSAL
Greenwood F StensethGermanyBernardo Dominic QUALIFIED
Leja B PaprockiArgentinaAmy Elsner PROPOSAL
Mayumi J MaletUnited KingdomIoni Bowcher NEGOTIATION
David M SchemmerItalyAsiya Javayant NEW
Misaki V SergiGermanyAsiya Javayant NEW
Darci M GarufiIndiaOnyama Limba PROPOSAL
Clifford Z WaycottCanadaIoni Bowcher QUALIFIED
Mayumi R GlickCanadaIvan Magalhaes QUALIFIED
James D ShinkoFranceAsiya Javayant QUALIFIED
Silvio D SlusarskiIndiaAnna Fali NEW
Wickens D MorascaRussiaStephen Shaw RENEWAL
Sinclair J FerenczUnited KingdomAsiya Javayant NEW
Chavez C WaycottArgentinaXuxue Feng QUALIFIED
Octavia U TollnerSpainAsiya Javayant PROPOSAL
Deepesh R NickaGermanyIvan Magalhaes PROPOSAL
Emily B PaprockiUnited KingdomBernardo Dominic PROPOSAL
David U DoeBrazilOnyama Limba NEGOTIATION
Deepesh G IturbideGermanyIoni Bowcher NEW
Kaitlin R ChuiAustraliaIoni Bowcher QUALIFIED
Antonio W StensethCanadaXuxue Feng NEW
Aditya R FollerGermanyStephen Shaw UNQUALIFIED
Clifford Z FigeroaSpainAsiya Javayant UNQUALIFIED
Johnson J GarufiGermanyElwin Sharvill NEW
Mujtaba Z MorascaSpainOnyama Limba QUALIFIED
Cody Z SlusarskiGermanyAmy Elsner RENEWAL
Clifford U GauchoIndiaBernardo Dominic QUALIFIED
Greenwood A InouyeIndiaIoni Bowcher NEW
Julie Y FlosiIndiaStephen Shaw PROPOSAL
Antonio N GarufiSpainIoni Bowcher RENEWAL
Isabel B SlusarskiJapanAmy Elsner NEW
Kadeem D KolmetzRussiaAsiya Javayant NEW
Munro D PerinCanadaBernardo Dominic RENEWAL
Salvatore Y AlbaresItalyAnna Fali UNQUALIFIED
Claire P FollerArgentinaAmy Elsner RENEWAL
Claire L VenereSpainIvan Magalhaes 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>