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
James L GarufiGermanyOnyama Limba RENEWAL
Julie B DilliardIndiaElwin Sharvill RENEWAL
Jennifer V PerinSpainElwin Sharvill PROPOSAL
Clifford D VocelkaBrazilIvan Magalhaes NEGOTIATION
Octavia O InouyeSpainXuxue Feng NEW
Mujtaba L AmigonBrazilAmy Elsner QUALIFIED
Adams F VocelkaArgentinaXuxue Feng NEW
Ricardo G StockhamItalyOnyama Limba NEW
Maisha L FerenczRussiaIvan Magalhaes NEW
Ivar W FerenczCanadaIoni Bowcher UNQUALIFIED
Wickens T FollerItalyAsiya Javayant NEW
Mayumi P FigeroaSpainStephen Shaw RENEWAL
Stacey G ButtSpainAmy Elsner NEW
Costa C RutaRussiaOnyama Limba NEW
Mujtaba L OldroydRussiaAmy Elsner QUALIFIED
Munro C CaudySpainBernardo Dominic NEGOTIATION
Misaki N VocelkaRussiaAnna Fali NEW
Murillo R FlosiAustraliaIvan Magalhaes QUALIFIED
Emily X RutaAustraliaAnna Fali RENEWAL
Jennifer S MarrierSpainOnyama Limba NEW
Octavia P StockhamAustraliaAmy Elsner PROPOSAL
Jennifer K FollerArgentinaIvan Magalhaes NEGOTIATION
Octavia K VocelkaUnited KingdomElwin Sharvill PROPOSAL
Greenwood C OldroydArgentinaXuxue Feng NEGOTIATION
Leja G FlosiItalyElwin Sharvill PROPOSAL
Maria A MaletGermanyAnna Fali RENEWAL
Salvatore V SaylorsFranceIvan Magalhaes NEW
Munro I NickaRussiaOnyama Limba PROPOSAL
Costa M WieserItalyBernardo Dominic UNQUALIFIED
Mayumi T ChuiSpainBernardo Dominic NEGOTIATION
Nicolas N DarakjyFranceAsiya Javayant NEGOTIATION
James T DoeArgentinaXuxue Feng PROPOSAL
Emily Y FigeroaRussiaAmy Elsner NEGOTIATION
Alejandro Z GillianArgentinaAsiya Javayant RENEWAL
Aditya F BologniaCanadaIvan Magalhaes RENEWAL
Maisha T CaldareraGermanyOnyama Limba UNQUALIFIED
Ivar Z SlusarskiBrazilStephen Shaw RENEWAL
Juan H BriddickJapanElwin Sharvill QUALIFIED
Ivar R StensethRussiaOnyama Limba NEGOTIATION
Arvin X WhobreyItalyStephen Shaw NEW
James M GlickItalyIoni Bowcher PROPOSAL
Jefferson G WhobreyUnited KingdomXuxue Feng PROPOSAL
Greenwood R CaldareraRussiaXuxue Feng QUALIFIED
Aruna K StensethItalyBernardo Dominic PROPOSAL
Arvin T InouyeBrazilStephen Shaw NEW
Johnson B FigeroaIndiaElwin Sharvill NEGOTIATION
Mayumi K BowleyBrazilBernardo Dominic NEGOTIATION
Faith F ShinkoJapanAnna Fali PROPOSAL
Aruna G GauchoAustraliaOnyama Limba NEW
Jones B TollnerSpainIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Munro H IturbideArgentinaAsiya Javayant NEGOTIATION
Aika O PerinSpainOnyama Limba PROPOSAL
Faith R MorascaAustraliaBernardo Dominic QUALIFIED
Jones O InouyeJapanOnyama Limba NEGOTIATION
Octavia S ButtItalyIvan Magalhaes NEGOTIATION
Clifford E SergiRussiaElwin Sharvill NEW
Arvin G CaudyFranceIoni Bowcher QUALIFIED
Leon L BowleyJapanIvan Magalhaes QUALIFIED
Wickens S WhobreyRussiaIoni Bowcher PROPOSAL
Salvatore O DarakjyCanadaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson R KuskoSpain2026-06-16Printing Dimensions NEW30Bernardo Dominic
1001Jennifer J RutaIndia2026-06-12Chapman, Ross E Esq NEW71Xuxue Feng
1002Misaki B MaletJapan2026-07-02Benton, John B Jr NEW8Ioni Bowcher
1003Clifford C ButtFrance2026-06-22Rousseaux, Michael Esq NEGOTIATION88Xuxue Feng
1004Jeanfrancois M KuskoBrazil2026-06-20Truhlar And Truhlar Attys NEGOTIATION47Ivan Magalhaes
1005Sinclair H RutaItaly2026-06-08Commercial Press RENEWAL37Ivan Magalhaes
1006Ivar H GarufiJapan2026-07-04Truhlar And Truhlar Attys UNQUALIFIED33Ioni Bowcher
1007Octavia V OldroydBrazil2026-06-11Chapman, Ross E Esq RENEWAL34Amy Elsner
1008Wickens E ShinkoAustralia2026-06-26Feiner Bros QUALIFIED31Asiya Javayant
1009Johnson L OldroydJapan2026-06-06Chemel, James L Cpa NEGOTIATION90Ivan Magalhaes
1010Stacey T CaudyBrazil2026-06-09Rousseaux, Michael Esq QUALIFIED43Elwin Sharvill
1011Ashley U PoquetteArgentina2026-06-25Benton, John B Jr QUALIFIED9Xuxue Feng
1012Claire E DarakjyGermany2026-06-13Chapman, Ross E Esq NEW56Amy Elsner
1013Nicolas D GillianFrance2026-06-22Dorl, James J Esq UNQUALIFIED76Xuxue Feng
1014Jefferson K CaudyArgentina2026-06-28Printing Dimensions QUALIFIED90Bernardo Dominic
1015Sinclair F GauchoFrance2026-06-30Rousseaux, Michael Esq NEGOTIATION1Ioni Bowcher
1016Salvatore X MaletJapan2026-06-18Chemel, James L Cpa UNQUALIFIED56Asiya Javayant
1017Juan V ShinkoSpain2026-06-17Chanay, Jeffrey A Esq NEW25Stephen Shaw
1018Julie Z GarufiAustralia2026-07-04Morlong Associates PROPOSAL83Asiya Javayant
1019Aika E KolmetzCanada2026-06-23Truhlar And Truhlar Attys NEGOTIATION78Anna Fali
1020Mayumi Z RutaRussia2026-07-03Morlong Associates NEW17Ivan Magalhaes
1021Johnson B WhobreySpain2026-06-27King, Christopher A Esq NEW26Anna Fali
1022Jones M ShinkoRussia2026-07-03Chapman, Ross E Esq UNQUALIFIED74Bernardo Dominic
1023Faith W GauchoJapan2026-06-25Feiner Bros UNQUALIFIED36Stephen Shaw
1024Faith S SchemmerCanada2026-06-09Morlong Associates RENEWAL5Bernardo Dominic
1025Smith C NestleBrazil2026-06-26Commercial Press NEW16Elwin Sharvill
1026Chavez W SchemmerBrazil2026-06-24King, Christopher A Esq NEGOTIATION57Amy Elsner
1027Smith N TollnerItaly2026-06-10Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1028Tony A NickaRussia2026-06-29Feltz Printing Service PROPOSAL10Stephen Shaw
1029Rodrigues O OstroskyRussia2026-06-05Commercial Press PROPOSAL64Elwin Sharvill
1030Leja Q FollerJapan2026-06-07Printing Dimensions NEGOTIATION71Amy Elsner
1031Adams V StockhamJapan2026-06-26Chapman, Ross E Esq PROPOSAL85Onyama Limba
1032Jeanfrancois S KuskoArgentina2026-06-21Benton, John B Jr NEGOTIATION71Amy Elsner
1033Izzy Y MarrierIndia2026-06-30Benton, John B Jr NEGOTIATION84Asiya Javayant
1034Faith Z TollnerItaly2026-06-11Printing Dimensions NEW21Stephen Shaw
1035Clifford V VenereItaly2026-07-01Feiner Bros UNQUALIFIED16Elwin Sharvill
1036Silvio D FollerArgentina2026-06-26Chapman, Ross E Esq NEW76Stephen Shaw
1037Munro Z KuskoCanada2026-06-08Rangoni Of Florence PROPOSAL88Xuxue Feng
1038Murillo U KuskoGermany2026-06-22Truhlar And Truhlar Attys NEGOTIATION72Anna Fali
1039Kaitlin S BologniaCanada2026-06-15Rousseaux, Michael Esq NEGOTIATION36Bernardo Dominic
1040Arvin Q ShinkoAustralia2026-06-06Chanay, Jeffrey A Esq RENEWAL58Amy Elsner
1041Salvatore C MarrierItaly2026-06-09Buckley Miller Wright NEGOTIATION3Amy Elsner
1042Murillo V AmigonJapan2026-06-22Chapman, Ross E Esq NEW44Amy Elsner
1043Alejandro V OstroskyCanada2026-06-22Printing Dimensions PROPOSAL53Xuxue Feng
1044Emily T ShinkoFrance2026-06-26Morlong Associates NEGOTIATION13Stephen Shaw
1045Morrow D TollnerIndia2026-06-23Rangoni Of Florence UNQUALIFIED50Xuxue Feng
1046Leon N StockhamAustralia2026-06-28Feiner Bros RENEWAL23Onyama Limba
1047Greenwood Z WhobreyIndia2026-06-07Printing Dimensions RENEWAL73Xuxue Feng
1048Isabel Z NestleCanada2026-06-18Feltz Printing Service RENEWAL50Onyama Limba
1049Greenwood Y DoeRussia2026-06-19Truhlar And Truhlar Attys PROPOSAL56Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy I MaletJapanStephen Shaw QUALIFIED
Izzy A NickaGermanyIoni Bowcher QUALIFIED
Silvio J BriddickCanadaStephen Shaw NEGOTIATION
Nicolas O DilliardCanadaOnyama Limba RENEWAL
Adams L BologniaSpainIoni Bowcher UNQUALIFIED
Isabel X CaudySpainXuxue Feng NEW
Alejandro P FigeroaItalyElwin Sharvill UNQUALIFIED
Cody O ButtCanadaIoni Bowcher NEW
Cody D WhobreyAustraliaStephen Shaw QUALIFIED
Julie B ShinkoRussiaBernardo Dominic NEGOTIATION
Claire V BriddickJapanIvan Magalhaes NEGOTIATION
Juan I SchemmerIndiaStephen Shaw RENEWAL
Maria T FerenczFranceAmy Elsner NEGOTIATION
Ashley A RoysterIndiaAmy Elsner NEGOTIATION
Chavez V MarrierFranceAmy Elsner UNQUALIFIED
Rodrigues U SchemmerJapanIvan Magalhaes PROPOSAL
David A MorascaFranceStephen Shaw UNQUALIFIED
David P DoeFranceStephen Shaw NEW
Clifford I BowleyBrazilXuxue Feng NEW
Aruna Z WhobreySpainOnyama Limba UNQUALIFIED
Ivar P PerinUnited KingdomElwin Sharvill QUALIFIED
Arvin T GillianRussiaAmy Elsner QUALIFIED
Tony S FlosiAustraliaXuxue Feng NEGOTIATION
Jones W BriddickJapanOnyama Limba UNQUALIFIED
Rodrigues N ShinkoGermanyOnyama Limba UNQUALIFIED
Deepesh B VocelkaGermanyIoni Bowcher NEW
Claire X WieserAustraliaStephen Shaw RENEWAL
Deepesh I MaletItalyAmy Elsner NEGOTIATION
Alejandro K WaycottFranceIoni Bowcher NEW
Clifford Z VenereUnited KingdomAmy Elsner UNQUALIFIED
Clifford L RoysterCanadaAnna Fali QUALIFIED
Nicolas F FerenczCanadaIvan Magalhaes NEGOTIATION
Greenwood I CaldareraUnited KingdomAnna Fali RENEWAL
Juan F PoquetteAustraliaOnyama Limba NEGOTIATION
Rodrigues X ButtIndiaBernardo Dominic RENEWAL
Leja U BologniaRussiaIvan Magalhaes QUALIFIED
Maria I CaldareraUnited KingdomAnna Fali NEGOTIATION
Aruna O IturbideBrazilAsiya Javayant PROPOSAL
Francesco W FerenczItalyAmy Elsner RENEWAL
Izzy G BowleyIndiaXuxue Feng RENEWAL
Julie M DilliardArgentinaIoni Bowcher NEW
Johnson B DoeSpainXuxue Feng QUALIFIED
Octavia R WhobreyGermanyIoni Bowcher PROPOSAL
Julie B WieserItalyAmy Elsner NEGOTIATION
Chavez X PaprockiIndiaAsiya Javayant NEGOTIATION
Mayumi V CaudyItalyIoni Bowcher QUALIFIED
Adams W FigeroaItalyAmy Elsner RENEWAL
Leon K MacleadItalyIvan Magalhaes PROPOSAL
Francesco J NestleGermanyAsiya Javayant QUALIFIED
Francesco U SchemmerArgentinaAsiya Javayant QUALIFIED
Frozen Columns
Name
Mayumi B Rim
Izzy H Stockham
Leja B Gaucho
Faith Z Stenseth
Costa F Wieser
Kaitlin C Doe
Rodrigues R Malet
Ricardo M Figeroa
Jefferson E Rim
Jennifer M Garufi
Salvatore W Inouye
Francesco M Iturbide
Antonio I Shinko
Ricardo C Chui
Smith E Albares
Munro M Nestle
Leja O Gillian
Leon E Royster
James Q Venere
Kadeem E Venere
Salvatore I Iturbide
Arvin F Doe
Wickens G Poquette
Julie V Garufi
Clifford W Darakjy
Ivar V Darakjy
Darci P Ruta
James P Figeroa
Mayumi C Garufi
Stacey M Gillian
Isabel N Tollner
Octavia N Nestle
Smith E Butt
Alejandro U Poquette
Silvio S Bowley
James U Morasca
Murillo M Amigon
Mujtaba G Dilliard
Aika T Gillian
Izzy B Morasca
Maisha L Wieser
Chavez P Tollner
Johnson I Oldroyd
Adams N Maclead
James X Poquette
Mayumi B Butt
Izzy S Wieser
David E Paprocki
Rodrigues R Marrier
Jones F Rim
IdCountryDate
1000United Kingdom2026-06-28
1001Argentina2026-06-10
1002India2026-06-20
1003Canada2026-06-14
1004Australia2026-06-25
1005Australia2026-06-20
1006Germany2026-06-29
1007Japan2026-06-21
1008Italy2026-06-18
1009Germany2026-06-18
1010United Kingdom2026-06-24
1011Spain2026-06-18
1012Germany2026-06-19
1013Brazil2026-06-08
1014Germany2026-06-19
1015Spain2026-06-18
1016Argentina2026-06-25
1017Russia2026-07-01
1018United Kingdom2026-06-14
1019Russia2026-07-01
1020Japan2026-06-27
1021Argentina2026-06-13
1022France2026-06-14
1023Argentina2026-06-27
1024Italy2026-06-17
1025United Kingdom2026-06-18
1026Canada2026-06-14
1027Japan2026-07-02
1028Spain2026-06-27
1029Italy2026-06-26
1030India2026-06-14
1031Australia2026-06-13
1032Australia2026-06-17
1033Brazil2026-06-26
1034Australia2026-07-03
1035Argentina2026-06-17
1036Canada2026-07-01
1037Canada2026-06-11
1038Japan2026-06-24
1039Canada2026-06-19
1040Germany2026-06-14
1041Canada2026-06-22
1042Spain2026-06-14
1043Spain2026-06-08
1044France2026-06-10
1045Brazil2026-06-21
1046Russia2026-06-12
1047Australia2026-06-10
1048Germany2026-06-10
1049Brazil2026-06-07

On-Demand Data

NameIdCountryDate
Morrow W Kolmetz1000Germany2026-06-05
Kaitlin G Glick1001France2026-06-23
Cody B Venere1002Germany2026-06-09
Leja R Caudy1003Brazil2026-06-22
Darci P Briddick1004Germany2026-06-18
Claire P Figeroa1005Spain2026-06-30
Aditya Y Ruta1006Canada2026-06-30
Juan F Marrier1007Canada2026-07-02
Smith U Marrier1008France2026-06-09
Alejandro K Stockham1009Australia2026-06-24
Mayumi N Poquette1010Spain2026-06-08
Mujtaba N Sergi1011India2026-06-13
Antonio H Rim1012India2026-06-20
Octavia T Rulapaugh1013Japan2026-06-14
Jefferson E Paprocki1014Argentina2026-06-21
Maria U Dilliard1015France2026-07-03
Mujtaba J Sergi1016Russia2026-07-01
Maria B Royster1017Brazil2026-07-01
Darci Q Doe1018France2026-06-30
James S Poquette1019Russia2026-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin V SaylorsRussiaAnna Fali UNQUALIFIED
Francesco L NestleArgentinaElwin Sharvill UNQUALIFIED
Clifford H OldroydFranceIvan Magalhaes NEGOTIATION
Arvin X MorascaFranceStephen Shaw RENEWAL
Francesco Z StockhamArgentinaXuxue Feng PROPOSAL
David C MarrierUnited KingdomAnna Fali PROPOSAL
Johnson K BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Smith V StockhamArgentinaOnyama Limba RENEWAL
Kadeem P WieserItalyXuxue Feng NEGOTIATION
Darci O DilliardAustraliaIoni Bowcher NEW
Nicolas V SaylorsItalyOnyama Limba NEGOTIATION
Juan S VenereAustraliaOnyama Limba PROPOSAL
Jennifer Z KolmetzJapanAnna Fali QUALIFIED
Adams L PaprockiCanadaAmy Elsner NEW
Jeanfrancois W ButtSpainIoni Bowcher NEGOTIATION
Jefferson N SergiCanadaAsiya Javayant UNQUALIFIED
Rodrigues P StockhamCanadaElwin Sharvill RENEWAL
Sinclair S BriddickArgentinaAmy Elsner RENEWAL
Izzy T SlusarskiFranceAsiya Javayant RENEWAL
Chavez M KolmetzBrazilOnyama Limba RENEWAL
Octavia V AlbaresBrazilIoni Bowcher NEW
Maria D WaycottCanadaAsiya Javayant NEGOTIATION
Jennifer C PerinBrazilBernardo Dominic UNQUALIFIED
Mujtaba A ChuiSpainAnna Fali UNQUALIFIED
Leja E RutaUnited KingdomIoni Bowcher RENEWAL
Wickens G ShinkoArgentinaOnyama Limba NEW
Ivar M AlbaresGermanyAsiya Javayant NEW
Jeanfrancois D CampainCanadaStephen Shaw UNQUALIFIED
Faith G CaudyArgentinaBernardo Dominic QUALIFIED
Emily C DilliardAustraliaXuxue Feng RENEWAL
Murillo P PoquetteBrazilIoni Bowcher RENEWAL
Faith F InouyeGermanyAmy Elsner PROPOSAL
Julie A StensethRussiaAnna Fali UNQUALIFIED
Morrow C StensethUnited KingdomAsiya Javayant UNQUALIFIED
David C GarufiIndiaStephen Shaw NEGOTIATION
Alejandro Z VenereUnited KingdomIoni Bowcher QUALIFIED
Emily W AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Antonio P MaletGermanyStephen Shaw NEGOTIATION
Aruna L InouyeRussiaElwin Sharvill NEW
Juan F StensethRussiaIoni 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>