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
Darci C GarufiIndiaIvan Magalhaes QUALIFIED
Misaki F FigeroaRussiaAnna Fali NEGOTIATION
Greenwood Z GlickUnited KingdomIvan Magalhaes NEW
Aruna P DarakjyCanadaAsiya Javayant NEGOTIATION
David T GauchoJapanAnna Fali PROPOSAL
Greenwood O ButtFranceIvan Magalhaes QUALIFIED
Ricardo Q SaylorsItalyElwin Sharvill QUALIFIED
Leon S DilliardGermanyOnyama Limba PROPOSAL
Costa P BriddickArgentinaAnna Fali QUALIFIED
Misaki E PerinArgentinaBernardo Dominic RENEWAL
Deepesh J DarakjyUnited KingdomXuxue Feng QUALIFIED
Leja S ChuiFranceStephen Shaw NEW
Antonio P VocelkaItalyAmy Elsner RENEWAL
Mayumi W KuskoSpainBernardo Dominic NEW
Wickens T InouyeJapanIoni Bowcher PROPOSAL
Munro M ButtIndiaElwin Sharvill NEGOTIATION
Nicolas E TollnerGermanyIvan Magalhaes PROPOSAL
Francesco I FollerCanadaXuxue Feng QUALIFIED
Francesco R GlickFranceBernardo Dominic UNQUALIFIED
Jeanfrancois R CaldareraCanadaAsiya Javayant QUALIFIED
Ashley Y IturbideFranceOnyama Limba PROPOSAL
Stacey X StockhamIndiaIvan Magalhaes NEW
Tony D ButtIndiaBernardo Dominic QUALIFIED
Jefferson Y TollnerIndiaIoni Bowcher QUALIFIED
Juan S OldroydBrazilOnyama Limba PROPOSAL
Juan D ChuiItalyStephen Shaw PROPOSAL
Mujtaba S BriddickJapanBernardo Dominic NEW
Sinclair H SaylorsItalyOnyama Limba QUALIFIED
Aika O PaprockiJapanElwin Sharvill NEGOTIATION
Adams H AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Izzy A CaldareraFranceXuxue Feng UNQUALIFIED
Deepesh E MacleadJapanAnna Fali UNQUALIFIED
Darci H CaldareraAustraliaXuxue Feng RENEWAL
Jennifer X KuskoArgentinaBernardo Dominic UNQUALIFIED
Faith J NestleAustraliaAnna Fali NEGOTIATION
Salvatore C MaletUnited KingdomElwin Sharvill PROPOSAL
Claire Y FerenczRussiaXuxue Feng NEW
Kaitlin A WieserJapanAsiya Javayant PROPOSAL
Nicolas O ButtGermanyAmy Elsner RENEWAL
Adams U OldroydIndiaElwin Sharvill UNQUALIFIED
Juan I DilliardRussiaOnyama Limba UNQUALIFIED
Cody U TollnerArgentinaXuxue Feng RENEWAL
Murillo F FigeroaAustraliaIvan Magalhaes QUALIFIED
Nicolas U BriddickAustraliaStephen Shaw QUALIFIED
Ivar R CaudyArgentinaOnyama Limba RENEWAL
Aika S WhobreyRussiaIoni Bowcher QUALIFIED
Munro J SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
James T WaycottBrazilBernardo Dominic PROPOSAL
Aruna L StensethFranceStephen Shaw NEGOTIATION
Deepesh T FigeroaArgentinaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire L KuskoRussiaIvan Magalhaes PROPOSAL
Greenwood M GlickArgentinaXuxue Feng NEW
Juan Y DarakjyItalyOnyama Limba QUALIFIED
Jones W KuskoUnited KingdomAmy Elsner PROPOSAL
Cody J OldroydFranceElwin Sharvill NEW
Chavez P StensethFranceOnyama Limba UNQUALIFIED
Darci E OldroydJapanAmy Elsner QUALIFIED
David W GarufiFranceIvan Magalhaes NEGOTIATION
Nicolas C MorascaRussiaAnna Fali PROPOSAL
Munro X StensethArgentinaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba S MaletItaly2025-04-23King, Christopher A Esq UNQUALIFIED10Stephen Shaw
1001Izzy A NestleJapan2025-04-27Chanay, Jeffrey A Esq PROPOSAL72Amy Elsner
1002Adams C PaprockiSpain2025-04-18Commercial Press RENEWAL86Amy Elsner
1003Aika I CaldareraRussia2025-04-09Feiner Bros NEGOTIATION74Amy Elsner
1004Tony Q GauchoJapan2025-04-07Printing Dimensions NEW83Onyama Limba
1005Chavez G PerinGermany2025-04-25Feltz Printing Service RENEWAL47Elwin Sharvill
1006Ivar Z BologniaSpain2025-04-14Chapman, Ross E Esq UNQUALIFIED13Xuxue Feng
1007Stacey T PerinArgentina2025-04-09Dorl, James J Esq RENEWAL8Elwin Sharvill
1008Darci K KolmetzFrance2025-04-25Feiner Bros NEW48Asiya Javayant
1009Jennifer Z RoysterSpain2025-04-16Truhlar And Truhlar Attys NEGOTIATION18Ivan Magalhaes
1010Mayumi T MaletRussia2025-04-02Rousseaux, Michael Esq RENEWAL44Anna Fali
1011Arvin Q MorascaGermany2025-04-23Chemel, James L Cpa QUALIFIED42Xuxue Feng
1012Julie L RoysterGermany2025-04-25King, Christopher A Esq UNQUALIFIED35Ivan Magalhaes
1013Sinclair J ShinkoIndia2025-04-28King, Christopher A Esq PROPOSAL37Bernardo Dominic
1014Wickens D BologniaRussia2025-04-12King, Christopher A Esq UNQUALIFIED60Amy Elsner
1015Aditya I SchemmerItaly2025-04-14Chapman, Ross E Esq UNQUALIFIED44Stephen Shaw
1016Octavia H ButtUnited Kingdom2025-04-13Benton, John B Jr NEGOTIATION36Ivan Magalhaes
1017Jeanfrancois D GauchoCanada2025-04-11Chemel, James L Cpa RENEWAL11Bernardo Dominic
1018James Q CaldareraIndia2025-04-16Dorl, James J Esq NEW72Xuxue Feng
1019Stacey S GillianItaly2025-04-30Printing Dimensions RENEWAL33Asiya Javayant
1020Octavia O ButtSpain2025-04-06Rousseaux, Michael Esq UNQUALIFIED73Ioni Bowcher
1021Silvio U KolmetzJapan2025-04-10Dorl, James J Esq RENEWAL5Amy Elsner
1022Kaitlin B PerinArgentina2025-04-02Truhlar And Truhlar Attys NEGOTIATION54Ivan Magalhaes
1023Claire M CaudyItaly2025-04-17Morlong Associates QUALIFIED85Onyama Limba
1024Juan P GillianSpain2025-04-03Benton, John B Jr RENEWAL59Anna Fali
1025Faith E StensethUnited Kingdom2025-04-08Benton, John B Jr NEW64Onyama Limba
1026Izzy D CampainJapan2025-04-24Dorl, James J Esq PROPOSAL14Anna Fali
1027Kaitlin I CampainCanada2025-04-08Rousseaux, Michael Esq QUALIFIED15Elwin Sharvill
1028Ashley L RoysterBrazil2025-04-26King, Christopher A Esq NEGOTIATION56Onyama Limba
1029Emily E VocelkaBrazil2025-04-13King, Christopher A Esq RENEWAL38Amy Elsner
1030Clifford O MorascaCanada2025-04-13Truhlar And Truhlar Attys RENEWAL75Ivan Magalhaes
1031Ivar N GlickCanada2025-04-13Truhlar And Truhlar Attys NEGOTIATION75Ivan Magalhaes
1032Aditya P GillianArgentina2025-04-07Buckley Miller Wright QUALIFIED27Xuxue Feng
1033Deepesh Q DilliardRussia2025-04-28Feltz Printing Service UNQUALIFIED10Stephen Shaw
1034Deepesh P KuskoIndia2025-04-06Morlong Associates PROPOSAL61Ioni Bowcher
1035Alejandro S DarakjyGermany2025-04-18Feltz Printing Service QUALIFIED16Elwin Sharvill
1036Sinclair E WaycottUnited Kingdom2025-04-08Rangoni Of Florence RENEWAL92Ivan Magalhaes
1037Aika G NickaItaly2025-04-21Feiner Bros RENEWAL50Bernardo Dominic
1038Mujtaba U FigeroaFrance2025-04-29Feltz Printing Service UNQUALIFIED34Amy Elsner
1039Munro R GauchoBrazil2025-04-25Chemel, James L Cpa RENEWAL17Asiya Javayant
1040Izzy N PerinFrance2025-04-19Dorl, James J Esq NEW1Ivan Magalhaes
1041David X CaldareraItaly2025-04-15Chapman, Ross E Esq QUALIFIED15Asiya Javayant
1042Aika F SchemmerRussia2025-04-13Printing Dimensions PROPOSAL72Elwin Sharvill
1043Salvatore W NestleAustralia2025-04-27Rangoni Of Florence RENEWAL72Stephen Shaw
1044Leja R PoquetteJapan2025-04-29Commercial Press RENEWAL55Xuxue Feng
1045Jeanfrancois I BriddickJapan2025-04-27Morlong Associates PROPOSAL17Elwin Sharvill
1046Maria X BriddickGermany2025-04-17Rousseaux, Michael Esq UNQUALIFIED19Ioni Bowcher
1047Mujtaba H FigeroaCanada2025-04-28Rousseaux, Michael Esq NEGOTIATION20Bernardo Dominic
1048Aruna P SergiSpain2025-04-12Buckley Miller Wright QUALIFIED68Stephen Shaw
1049Clifford W ChuiBrazil2025-04-21Chanay, Jeffrey A Esq NEW42Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Greenwood P MaletFranceIvan Magalhaes UNQUALIFIED
Aditya Y WhobreySpainStephen Shaw RENEWAL
Rodrigues J FollerIndiaAnna Fali UNQUALIFIED
Tony M BologniaCanadaIoni Bowcher PROPOSAL
James B DilliardArgentinaIoni Bowcher NEW
Aditya Z CampainItalyBernardo Dominic NEW
Alejandro D RoysterArgentinaAnna Fali QUALIFIED
Greenwood S SchemmerUnited KingdomXuxue Feng QUALIFIED
Aruna W WaycottJapanAsiya Javayant RENEWAL
Jeanfrancois S CampainIndiaIvan Magalhaes RENEWAL
James U WieserArgentinaAsiya Javayant UNQUALIFIED
Johnson P CaldareraArgentinaAmy Elsner UNQUALIFIED
Aruna M DilliardUnited KingdomStephen Shaw NEGOTIATION
Izzy D SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Maria P RutaRussiaBernardo Dominic PROPOSAL
Julie W FlosiArgentinaBernardo Dominic PROPOSAL
Stacey K StensethItalyBernardo Dominic UNQUALIFIED
Kaitlin T GillianItalyBernardo Dominic QUALIFIED
Rodrigues R WhobreyRussiaAmy Elsner UNQUALIFIED
Salvatore A RoysterJapanIoni Bowcher RENEWAL
Costa O BowleyCanadaOnyama Limba RENEWAL
Alejandro Z TollnerFranceAsiya Javayant NEW
Tony S MarrierArgentinaOnyama Limba NEW
Ashley F ButtGermanyOnyama Limba PROPOSAL
Jones W StensethIndiaOnyama Limba QUALIFIED
Morrow W FlosiIndiaOnyama Limba QUALIFIED
Adams M NickaFranceAmy Elsner RENEWAL
Cody U AmigonBrazilIoni Bowcher NEW
Murillo O MarrierRussiaStephen Shaw NEW
Morrow U ButtBrazilOnyama Limba QUALIFIED
Aika Y FollerBrazilStephen Shaw QUALIFIED
Rodrigues A CampainIndiaOnyama Limba NEGOTIATION
Adams N VocelkaSpainStephen Shaw QUALIFIED
Claire A ChuiFranceIvan Magalhaes PROPOSAL
Francesco T IturbideItalyXuxue Feng UNQUALIFIED
Julie H VenereArgentinaIvan Magalhaes UNQUALIFIED
Maria Z WieserJapanOnyama Limba QUALIFIED
Misaki B GauchoFranceAmy Elsner NEGOTIATION
Tony Q SergiBrazilAnna Fali PROPOSAL
Jeanfrancois Z RulapaughItalyXuxue Feng NEGOTIATION
Cody F ButtAustraliaXuxue Feng QUALIFIED
Deepesh D BriddickBrazilAnna Fali RENEWAL
Adams J RulapaughJapanElwin Sharvill NEGOTIATION
Leja W StockhamCanadaStephen Shaw NEGOTIATION
Chavez U MaletCanadaXuxue Feng PROPOSAL
Mujtaba M CampainAustraliaBernardo Dominic NEW
Murillo F AmigonUnited KingdomOnyama Limba RENEWAL
Sinclair I MaletUnited KingdomIoni Bowcher UNQUALIFIED
Johnson O MaletFranceIoni Bowcher QUALIFIED
Aditya R WhobreyItalyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Julie D Schemmer
Octavia S Oldroyd
Maisha L Bowley
Claire R Kusko
David H Stockham
Leon T Gaucho
Costa K Maclead
Costa V Ruta
Stacey A Nestle
Jeanfrancois E Caldarera
Arvin H Briddick
Nicolas E Sergi
Kaitlin D Ferencz
Jefferson S Oldroyd
Maria Z Gaucho
Izzy I Gaucho
Wickens Y Kolmetz
Deepesh Q Rulapaugh
Mayumi I Marrier
Ivar D Glick
Kaitlin S Rim
Aruna Y Oldroyd
David X Marrier
Misaki M Bowley
Izzy Z Maclead
Costa T Sergi
Darci D Saylors
Smith J Morasca
Jeanfrancois J Morasca
Juan U Glick
Isabel R Slusarski
Rodrigues C Nicka
Salvatore S Amigon
Rodrigues L Saylors
Aika M Campain
Ashley H Darakjy
Kadeem S Paprocki
Jefferson W Malet
Alejandro E Tollner
Jennifer M Saylors
Leon G Royster
Francesco I Shinko
Jones I Vocelka
Octavia M Bolognia
James V Ostrosky
Greenwood O Kusko
Greenwood W Wieser
Kadeem E Wieser
Munro X Wieser
Mujtaba W Caldarera
IdCountryDate
1000India2025-04-26
1001Australia2025-04-07
1002Germany2025-04-11
1003United Kingdom2025-04-06
1004Brazil2025-04-06
1005Canada2025-04-13
1006Spain2025-04-14
1007India2025-04-07
1008France2025-04-27
1009Germany2025-04-08
1010India2025-04-03
1011Brazil2025-04-21
1012United Kingdom2025-04-24
1013India2025-04-28
1014Italy2025-04-14
1015Russia2025-04-23
1016Spain2025-04-29
1017Canada2025-04-30
1018Australia2025-04-21
1019India2025-04-10
1020Japan2025-04-05
1021Canada2025-04-19
1022India2025-04-11
1023Japan2025-04-25
1024Spain2025-04-28
1025Brazil2025-04-28
1026France2025-04-29
1027France2025-04-27
1028Germany2025-04-27
1029Japan2025-04-22
1030France2025-04-30
1031France2025-04-16
1032France2025-04-29
1033Argentina2025-04-09
1034United Kingdom2025-04-13
1035Germany2025-04-18
1036Italy2025-04-25
1037Germany2025-04-13
1038United Kingdom2025-04-17
1039France2025-04-16
1040Australia2025-04-15
1041United Kingdom2025-04-20
1042Russia2025-04-22
1043Japan2025-04-02
1044Germany2025-04-03
1045Brazil2025-04-02
1046Russia2025-04-10
1047Brazil2025-04-06
1048Germany2025-04-21
1049Australia2025-04-11

On-Demand Data

NameIdCountryDate
Greenwood C Sergi1000Canada2025-04-24
Emily V Ostrosky1001Germany2025-04-27
Julie P Saylors1002Japan2025-04-25
Izzy K Ruta1003Brazil2025-04-29
Deepesh Q Caldarera1004Canada2025-04-11
Silvio P Royster1005Spain2025-04-30
Wickens J Malet1006Germany2025-04-14
Silvio F Gillian1007Germany2025-04-27
Nicolas L Caudy1008Spain2025-04-28
Nicolas R Albares1009Germany2025-04-21
Francesco S Nestle1010Russia2025-04-06
Arvin Z Ferencz1011Germany2025-04-15
Julie U Schemmer1012Japan2025-04-03
Jennifer N Bolognia1013United Kingdom2025-04-20
Antonio I Kusko1014Italy2025-04-13
Chavez R Slusarski1015Argentina2025-04-29
Mayumi S Saylors1016Russia2025-04-21
Murillo C Caldarera1017Spain2025-04-07
Stacey M Ostrosky1018Japan2025-04-14
Antonio K Ostrosky1019Argentina2025-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily J SchemmerIndiaBernardo Dominic UNQUALIFIED
Antonio P MorascaRussiaAnna Fali NEGOTIATION
Octavia P MacleadJapanBernardo Dominic NEW
Aditya T GauchoCanadaXuxue Feng QUALIFIED
Aditya X MorascaBrazilIoni Bowcher UNQUALIFIED
Kadeem T CaldareraBrazilAmy Elsner UNQUALIFIED
Maisha S GlickArgentinaIvan Magalhaes QUALIFIED
Salvatore K BriddickRussiaStephen Shaw UNQUALIFIED
David J RoysterRussiaElwin Sharvill QUALIFIED
Kadeem P StensethSpainBernardo Dominic NEW
Mujtaba M SergiAustraliaBernardo Dominic UNQUALIFIED
Darci S InouyeFranceIvan Magalhaes UNQUALIFIED
Darci B SchemmerBrazilBernardo Dominic NEGOTIATION
Mujtaba Y PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Cody Y VocelkaItalyElwin Sharvill RENEWAL
Isabel C AmigonBrazilOnyama Limba RENEWAL
Claire D NickaJapanElwin Sharvill NEGOTIATION
Alejandro D RimAustraliaIoni Bowcher PROPOSAL
Maisha X SergiIndiaIoni Bowcher NEGOTIATION
Jones X PaprockiAustraliaAnna Fali RENEWAL
Wickens M VenereJapanIvan Magalhaes PROPOSAL
Antonio L RimArgentinaBernardo Dominic PROPOSAL
Tony A NestleSpainIvan Magalhaes NEW
Julie L CampainUnited KingdomBernardo Dominic NEGOTIATION
Octavia P AmigonJapanOnyama Limba PROPOSAL
Maria U SaylorsJapanIvan Magalhaes NEGOTIATION
Jeanfrancois U WaycottUnited KingdomStephen Shaw PROPOSAL
Leja Q MarrierArgentinaAnna Fali NEW
Jennifer T RimFranceAnna Fali RENEWAL
Francesco D GillianUnited KingdomAmy Elsner PROPOSAL
Mayumi J RulapaughFranceXuxue Feng RENEWAL
Antonio H FerenczFranceElwin Sharvill RENEWAL
Mayumi B StensethRussiaStephen Shaw NEW
Costa U RulapaughCanadaElwin Sharvill NEGOTIATION
Tony I GillianUnited KingdomIoni Bowcher NEW
Stacey M PoquetteArgentinaAmy Elsner QUALIFIED
Antonio S GauchoUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois T CaudyFranceIoni Bowcher NEGOTIATION
Nicolas D PaprockiAustraliaXuxue Feng NEW
Mayumi E AlbaresArgentinaAnna Fali UNQUALIFIED

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