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
Kaitlin V GillianAustraliaStephen Shaw NEGOTIATION
Darci T GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Tony F RulapaughBrazilBernardo Dominic NEGOTIATION
Salvatore O FollerSpainElwin Sharvill QUALIFIED
Misaki H OldroydArgentinaElwin Sharvill UNQUALIFIED
Aruna M PoquetteArgentinaBernardo Dominic NEW
Claire V TollnerIndiaElwin Sharvill PROPOSAL
Julie H OstroskyGermanyElwin Sharvill QUALIFIED
Maria E StockhamBrazilAmy Elsner QUALIFIED
Isabel W FlosiIndiaStephen Shaw UNQUALIFIED
Misaki J AlbaresAustraliaStephen Shaw QUALIFIED
Ricardo L BriddickAustraliaBernardo Dominic RENEWAL
Octavia G ButtGermanyIvan Magalhaes RENEWAL
Claire A PerinItalyXuxue Feng QUALIFIED
Adams Y CaldareraUnited KingdomAmy Elsner QUALIFIED
Antonio M IturbideItalyIvan Magalhaes NEGOTIATION
Greenwood G RutaFranceAnna Fali UNQUALIFIED
Aditya I FlosiAustraliaAmy Elsner NEW
James T ShinkoAustraliaStephen Shaw NEGOTIATION
Aditya F StockhamJapanBernardo Dominic RENEWAL
Maria Y MarrierFranceAsiya Javayant NEGOTIATION
Juan W GlickGermanyAmy Elsner RENEWAL
Sinclair J MaletJapanXuxue Feng PROPOSAL
Mujtaba R ButtArgentinaXuxue Feng NEW
Jennifer I FlosiAustraliaXuxue Feng RENEWAL
Maria U VenereGermanyOnyama Limba PROPOSAL
Kaitlin G ButtBrazilIvan Magalhaes NEGOTIATION
Ashley I PaprockiRussiaIvan Magalhaes NEW
Nicolas Z MacleadArgentinaIoni Bowcher PROPOSAL
Greenwood Z VenereUnited KingdomXuxue Feng NEGOTIATION
Kaitlin U MarrierGermanyIoni Bowcher QUALIFIED
James H OstroskyRussiaOnyama Limba NEW
Kadeem G DarakjyCanadaBernardo Dominic UNQUALIFIED
Julie T FollerJapanElwin Sharvill QUALIFIED
Ashley H RimFranceXuxue Feng UNQUALIFIED
Greenwood R ButtJapanAmy Elsner NEGOTIATION
Misaki S PaprockiRussiaIoni Bowcher RENEWAL
David U SergiJapanAmy Elsner PROPOSAL
Maisha O RimCanadaXuxue Feng RENEWAL
Francesco X VenereArgentinaIoni Bowcher UNQUALIFIED
Stacey N FigeroaUnited KingdomIoni Bowcher QUALIFIED
Munro I MaletAustraliaBernardo Dominic PROPOSAL
Wickens X DarakjyAustraliaIvan Magalhaes PROPOSAL
Costa Y SergiRussiaAsiya Javayant PROPOSAL
Arvin V AlbaresItalyBernardo Dominic NEGOTIATION
Nicolas Z GauchoSpainBernardo Dominic PROPOSAL
Costa C DarakjyItalyElwin Sharvill QUALIFIED
Tony E FigeroaItalyXuxue Feng NEGOTIATION
David H MorascaBrazilBernardo Dominic NEW
Wickens G FerenczItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro I NestleGermanyAsiya Javayant PROPOSAL
Izzy D VocelkaJapanOnyama Limba RENEWAL
Costa M StensethSpainXuxue Feng RENEWAL
Jones Y RulapaughUnited KingdomOnyama Limba RENEWAL
Smith F VocelkaRussiaBernardo Dominic UNQUALIFIED
Kadeem G DoeIndiaBernardo Dominic PROPOSAL
Izzy D TollnerAustraliaStephen Shaw QUALIFIED
Jeanfrancois S MacleadSpainElwin Sharvill QUALIFIED
Silvio U CampainUnited KingdomIoni Bowcher RENEWAL
Mayumi R GillianGermanyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan K ChuiFrance2025-06-07Commercial Press PROPOSAL95Asiya Javayant
1001Tony A KuskoCanada2025-06-12Chapman, Ross E Esq RENEWAL42Ivan Magalhaes
1002Izzy J RimBrazil2025-06-07Buckley Miller Wright NEGOTIATION46Stephen Shaw
1003Jones E BowleyIndia2025-05-22Dorl, James J Esq RENEWAL62Anna Fali
1004Jones T DilliardJapan2025-06-06Commercial Press RENEWAL17Amy Elsner
1005Kadeem Y WhobreyArgentina2025-06-01King, Christopher A Esq NEGOTIATION60Bernardo Dominic
1006Cody V WieserArgentina2025-05-23Chapman, Ross E Esq UNQUALIFIED61Bernardo Dominic
1007Kaitlin U VocelkaFrance2025-06-11Rangoni Of Florence RENEWAL53Asiya Javayant
1008Mayumi R ButtIndia2025-05-18Feltz Printing Service NEGOTIATION33Anna Fali
1009Johnson Y ChuiBrazil2025-06-06Dorl, James J Esq PROPOSAL35Ivan Magalhaes
1010Maria T SergiRussia2025-05-26Feltz Printing Service QUALIFIED59Xuxue Feng
1011Izzy Y WieserFrance2025-06-04Commercial Press RENEWAL47Asiya Javayant
1012Tony Z CampainRussia2025-05-26Feiner Bros RENEWAL75Stephen Shaw
1013Aika O IturbideArgentina2025-05-23Commercial Press QUALIFIED63Xuxue Feng
1014Greenwood I NickaRussia2025-05-31Chemel, James L Cpa QUALIFIED59Asiya Javayant
1015Adams M MaletSpain2025-05-27Truhlar And Truhlar Attys PROPOSAL16Ioni Bowcher
1016David P ShinkoJapan2025-05-29Chanay, Jeffrey A Esq PROPOSAL0Ioni Bowcher
1017Johnson C ChuiUnited Kingdom2025-05-27Printing Dimensions UNQUALIFIED22Ioni Bowcher
1018Clifford L GauchoRussia2025-05-17Chapman, Ross E Esq QUALIFIED17Ivan Magalhaes
1019Silvio X KolmetzSpain2025-06-09Morlong Associates NEGOTIATION99Stephen Shaw
1020Salvatore T FollerSpain2025-06-04King, Christopher A Esq PROPOSAL10Ioni Bowcher
1021Stacey D FerenczRussia2025-06-08Benton, John B Jr PROPOSAL31Onyama Limba
1022Leon A WieserAustralia2025-05-16Commercial Press PROPOSAL21Stephen Shaw
1023Maisha R StockhamArgentina2025-06-08Rousseaux, Michael Esq UNQUALIFIED0Bernardo Dominic
1024Octavia E AlbaresBrazil2025-06-01Feltz Printing Service NEGOTIATION37Anna Fali
1025Ashley R FollerRussia2025-05-24Morlong Associates UNQUALIFIED69Bernardo Dominic
1026Adams Q WieserIndia2025-05-17Rangoni Of Florence NEGOTIATION11Xuxue Feng
1027David B DoeFrance2025-05-16Chapman, Ross E Esq RENEWAL35Stephen Shaw
1028Francesco R WhobreyJapan2025-05-21Dorl, James J Esq NEGOTIATION15Ivan Magalhaes
1029Murillo V CaudyFrance2025-05-19Printing Dimensions NEGOTIATION43Bernardo Dominic
1030Emily A SaylorsSpain2025-05-17Truhlar And Truhlar Attys PROPOSAL17Ioni Bowcher
1031Costa V KuskoAustralia2025-06-04Dorl, James J Esq RENEWAL44Ioni Bowcher
1032Mayumi V AlbaresBrazil2025-06-07Benton, John B Jr PROPOSAL5Ioni Bowcher
1033Tony S TollnerIndia2025-05-25Morlong Associates RENEWAL57Xuxue Feng
1034Juan S IturbideFrance2025-06-10Chapman, Ross E Esq PROPOSAL16Xuxue Feng
1035Johnson R ShinkoArgentina2025-06-10Rousseaux, Michael Esq UNQUALIFIED8Xuxue Feng
1036Jennifer U GlickBrazil2025-05-26Dorl, James J Esq QUALIFIED96Xuxue Feng
1037Jeanfrancois Z GillianItaly2025-05-19Benton, John B Jr QUALIFIED72Elwin Sharvill
1038Nicolas J DoeFrance2025-06-03Rangoni Of Florence RENEWAL12Anna Fali
1039Sinclair M SergiRussia2025-06-12Chapman, Ross E Esq QUALIFIED62Ivan Magalhaes
1040Rodrigues W RimIndia2025-06-06Commercial Press RENEWAL40Amy Elsner
1041Mujtaba L InouyeJapan2025-06-12Chapman, Ross E Esq UNQUALIFIED32Anna Fali
1042Leja S WieserArgentina2025-05-21Rousseaux, Michael Esq PROPOSAL64Amy Elsner
1043Sinclair H WhobreyJapan2025-06-03Buckley Miller Wright UNQUALIFIED38Amy Elsner
1044Rodrigues S GlickGermany2025-06-14Feiner Bros UNQUALIFIED89Amy Elsner
1045Ricardo H GillianJapan2025-06-01Benton, John B Jr UNQUALIFIED35Amy Elsner
1046Chavez A DoeRussia2025-05-17Dorl, James J Esq NEGOTIATION40Anna Fali
1047Cody L KolmetzItaly2025-06-02Rousseaux, Michael Esq NEW57Amy Elsner
1048Rodrigues I StockhamGermany2025-06-08Commercial Press UNQUALIFIED17Elwin Sharvill
1049Cody C ShinkoBrazil2025-05-24Chanay, Jeffrey A Esq RENEWAL0Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Emily S PaprockiIndiaOnyama Limba QUALIFIED
Julie T SlusarskiJapanAsiya Javayant UNQUALIFIED
Leon I PoquetteSpainAmy Elsner QUALIFIED
Kadeem L SchemmerArgentinaElwin Sharvill PROPOSAL
Maisha U AmigonFranceElwin Sharvill QUALIFIED
Morrow R NestleGermanyXuxue Feng QUALIFIED
Leon O OstroskyCanadaAsiya Javayant NEGOTIATION
Chavez J NickaCanadaIoni Bowcher UNQUALIFIED
Ivar J OstroskyAustraliaXuxue Feng NEW
Nicolas N FollerRussiaAsiya Javayant NEW
Costa B PaprockiJapanOnyama Limba QUALIFIED
Ashley J FollerBrazilElwin Sharvill NEW
Leja X BriddickCanadaIoni Bowcher PROPOSAL
Julie D GauchoGermanyAnna Fali PROPOSAL
Darci U ButtSpainElwin Sharvill RENEWAL
Jennifer A DoeUnited KingdomBernardo Dominic QUALIFIED
Munro O DilliardArgentinaStephen Shaw NEGOTIATION
Misaki O MarrierItalyXuxue Feng QUALIFIED
Emily K DoeAustraliaAnna Fali QUALIFIED
Mayumi K VenereFranceBernardo Dominic NEW
Mujtaba G CampainFranceXuxue Feng PROPOSAL
Salvatore M SchemmerIndiaOnyama Limba QUALIFIED
Greenwood Z SaylorsIndiaStephen Shaw PROPOSAL
Munro N KuskoAustraliaStephen Shaw PROPOSAL
Chavez U GarufiCanadaElwin Sharvill UNQUALIFIED
Tony Q RulapaughUnited KingdomElwin Sharvill QUALIFIED
Aditya F RutaBrazilElwin Sharvill NEW
Mayumi J VenereFranceOnyama Limba NEW
Cody P GarufiSpainAsiya Javayant RENEWAL
Murillo V VenereArgentinaXuxue Feng NEW
Johnson V ButtAustraliaAnna Fali QUALIFIED
Maria Z SchemmerJapanOnyama Limba UNQUALIFIED
Maisha M KolmetzArgentinaOnyama Limba UNQUALIFIED
Leon O KuskoCanadaOnyama Limba PROPOSAL
Wickens I PerinCanadaAmy Elsner QUALIFIED
Claire H RutaIndiaElwin Sharvill PROPOSAL
Isabel B WieserJapanIvan Magalhaes RENEWAL
Silvio X MarrierRussiaOnyama Limba NEGOTIATION
Emily N OstroskyBrazilAmy Elsner NEGOTIATION
Maisha G NestleIndiaElwin Sharvill PROPOSAL
Morrow D BowleySpainElwin Sharvill RENEWAL
Jennifer B MaletArgentinaAnna Fali QUALIFIED
Leon M RutaAustraliaAnna Fali NEW
Nicolas N NickaSpainBernardo Dominic PROPOSAL
Deepesh I RoysterSpainOnyama Limba RENEWAL
Jefferson P OstroskyArgentinaAmy Elsner RENEWAL
Adams F SchemmerUnited KingdomBernardo Dominic NEW
Aruna K KolmetzCanadaIvan Magalhaes PROPOSAL
Silvio L KuskoBrazilOnyama Limba NEGOTIATION
Jones R PaprockiArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Johnson L Perin
Maria Y Iturbide
Adams V Stenseth
Stacey R Bolognia
Adams F Royster
Misaki V Nicka
Jefferson W Vocelka
Costa H Ferencz
Leon C Bolognia
Isabel I Slusarski
Morrow B Chui
Maria D Inouye
Wickens K Inouye
Salvatore F Marrier
Ashley F Vocelka
Adams R Kusko
Tony W Darakjy
Cody B Malet
Maisha N Bolognia
Jennifer T Garufi
Chavez J Butt
Ashley E Iturbide
Deepesh N Figeroa
Jennifer W Waycott
Johnson V Vocelka
Aruna O Shinko
Aika N Rim
Kaitlin E Rulapaugh
Misaki Q Foller
Francesco H Bolognia
Isabel W Paprocki
Francesco Y Dilliard
Faith Z Figeroa
David K Inouye
James Q Shinko
Munro Q Inouye
Rodrigues Q Malet
Aruna I Nestle
Izzy B Venere
Claire V Flosi
Alejandro X Whobrey
Izzy R Saylors
Chavez I Campain
James P Vocelka
Aditya F Sergi
Ivar S Maclead
Ashley R Morasca
Cody K Campain
Mayumi B Sergi
Octavia X Wieser
IdCountryDate
1000India2025-05-20
1001Brazil2025-05-29
1002United Kingdom2025-05-31
1003Argentina2025-06-06
1004Spain2025-06-04
1005Argentina2025-05-25
1006Germany2025-05-18
1007Russia2025-06-05
1008Brazil2025-06-07
1009Australia2025-06-09
1010Australia2025-06-13
1011Spain2025-05-27
1012France2025-06-04
1013India2025-05-31
1014Argentina2025-05-18
1015France2025-05-24
1016Canada2025-06-06
1017India2025-05-31
1018United Kingdom2025-06-11
1019United Kingdom2025-05-24
1020Japan2025-05-30
1021Brazil2025-05-18
1022Germany2025-05-17
1023Spain2025-06-08
1024Brazil2025-06-06
1025Russia2025-06-07
1026Germany2025-05-20
1027Italy2025-05-26
1028Canada2025-06-02
1029Argentina2025-05-28
1030India2025-06-05
1031France2025-06-07
1032Italy2025-06-10
1033Brazil2025-05-27
1034Argentina2025-06-01
1035Germany2025-06-11
1036Argentina2025-05-31
1037Germany2025-05-23
1038Spain2025-05-25
1039Germany2025-05-18
1040Japan2025-05-21
1041France2025-06-10
1042Argentina2025-05-17
1043France2025-05-20
1044Spain2025-05-17
1045Russia2025-05-18
1046France2025-05-28
1047Spain2025-05-30
1048Japan2025-05-30
1049Italy2025-05-26

On-Demand Data

NameIdCountryDate
Sinclair J Tollner1000Australia2025-05-16
Salvatore B Doe1001Canada2025-06-09
Faith C Saylors1002Russia2025-05-19
Leon Z Malet1003Germany2025-05-22
Mujtaba C Doe1004United Kingdom2025-05-28
Maisha U Slusarski1005Spain2025-05-28
Leon K Glick1006Germany2025-05-31
Emily D Schemmer1007Russia2025-06-14
Cody Y Schemmer1008Germany2025-05-27
Faith L Wieser1009Japan2025-05-30
Greenwood T Amigon1010Spain2025-05-23
Smith I Briddick1011Russia2025-06-02
Darci N Kusko1012Spain2025-05-25
Nicolas L Wieser1013Brazil2025-06-05
Izzy A Stockham1014Brazil2025-06-13
Ricardo N Shinko1015Russia2025-05-25
Alejandro A Maclead1016Brazil2025-05-24
Stacey A Albares1017Australia2025-06-08
Jeanfrancois I Flosi1018Australia2025-05-29
Alejandro K Ostrosky1019Russia2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony J GillianBrazilBernardo Dominic NEW
Izzy A ButtGermanyXuxue Feng NEW
Silvio B PoquetteRussiaIoni Bowcher UNQUALIFIED
Mayumi S SergiUnited KingdomAsiya Javayant NEGOTIATION
Isabel W NestleArgentinaAnna Fali RENEWAL
Arvin S VocelkaBrazilStephen Shaw UNQUALIFIED
Sinclair C GillianSpainIvan Magalhaes NEGOTIATION
Isabel M CaldareraAustraliaAsiya Javayant PROPOSAL
Cody I PaprockiAustraliaAsiya Javayant NEW
James V WaycottArgentinaXuxue Feng NEGOTIATION
Salvatore M MaletFranceElwin Sharvill UNQUALIFIED
Jennifer D KolmetzCanadaAmy Elsner PROPOSAL
Francesco Z VenereJapanAnna Fali QUALIFIED
Johnson I GauchoUnited KingdomXuxue Feng QUALIFIED
Jennifer O VocelkaFranceOnyama Limba NEGOTIATION
Adams E FerenczRussiaIoni Bowcher PROPOSAL
Mayumi W WieserCanadaStephen Shaw RENEWAL
Morrow S FigeroaFranceStephen Shaw NEW
Stacey K GauchoBrazilBernardo Dominic UNQUALIFIED
Faith Z IturbideAustraliaAmy Elsner NEW
Maria V SergiGermanyAmy Elsner NEW
Greenwood X SergiJapanIvan Magalhaes QUALIFIED
Murillo G StockhamJapanIvan Magalhaes NEW
Darci Q FlosiRussiaBernardo Dominic NEW
Leja V GlickGermanyAsiya Javayant QUALIFIED
Aika T IturbideArgentinaIvan Magalhaes QUALIFIED
Alejandro Y WhobreyItalyElwin Sharvill PROPOSAL
Leja E GauchoFranceIoni Bowcher QUALIFIED
David I GlickUnited KingdomBernardo Dominic UNQUALIFIED
Murillo K PerinBrazilStephen Shaw PROPOSAL
Clifford F RimCanadaIvan Magalhaes NEW
Izzy F FlosiArgentinaIoni Bowcher NEGOTIATION
Darci M SergiItalyIoni Bowcher NEGOTIATION
Aditya U PoquetteJapanXuxue Feng NEW
Aruna Y WieserJapanAsiya Javayant UNQUALIFIED
Adams Q GauchoItalyAsiya Javayant UNQUALIFIED
Alejandro V MaletJapanElwin Sharvill NEGOTIATION
Jeanfrancois U CaldareraJapanXuxue Feng NEW
Kadeem Z GillianArgentinaBernardo Dominic PROPOSAL
Morrow F GauchoSpainAnna Fali QUALIFIED

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