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
Greenwood L GauchoItalyBernardo Dominic NEGOTIATION
Leja H FigeroaJapanBernardo Dominic QUALIFIED
Izzy O FlosiArgentinaIoni Bowcher NEGOTIATION
Kadeem I VocelkaGermanyElwin Sharvill UNQUALIFIED
Tony Y CaudyUnited KingdomIoni Bowcher PROPOSAL
Ivar Z VenereAustraliaAsiya Javayant PROPOSAL
Leon O BologniaItalyIoni Bowcher UNQUALIFIED
Maria K MarrierItalyStephen Shaw NEGOTIATION
Chavez V PerinArgentinaAnna Fali PROPOSAL
Leon R CaldareraSpainXuxue Feng NEGOTIATION
Claire O CampainGermanyAmy Elsner NEGOTIATION
Adams V PoquetteGermanyBernardo Dominic UNQUALIFIED
Jefferson E PoquetteSpainBernardo Dominic RENEWAL
Adams B BriddickGermanyIoni Bowcher QUALIFIED
Ivar K RimItalyIvan Magalhaes QUALIFIED
Leon T FigeroaItalyStephen Shaw RENEWAL
Maisha I AlbaresIndiaAsiya Javayant RENEWAL
Faith Z AmigonJapanStephen Shaw QUALIFIED
Ashley F FigeroaRussiaAsiya Javayant QUALIFIED
Salvatore G OldroydCanadaIvan Magalhaes QUALIFIED
Salvatore L IturbideCanadaIoni Bowcher RENEWAL
Cody D SergiFranceOnyama Limba NEW
Faith U RulapaughJapanAnna Fali NEW
Leja W DilliardCanadaXuxue Feng UNQUALIFIED
Aditya L MacleadSpainAsiya Javayant QUALIFIED
Kaitlin D OstroskyIndiaBernardo Dominic QUALIFIED
Darci V DoeGermanyAnna Fali NEW
Murillo C IturbideCanadaStephen Shaw UNQUALIFIED
Isabel P RimGermanyBernardo Dominic NEW
Silvio M GarufiIndiaXuxue Feng NEW
Maria Y GlickFranceXuxue Feng RENEWAL
Munro F MaletJapanBernardo Dominic QUALIFIED
Johnson R MaletBrazilAsiya Javayant UNQUALIFIED
Ashley X MaletItalyAsiya Javayant RENEWAL
Ashley T IturbideFranceIvan Magalhaes NEW
Faith N KuskoCanadaOnyama Limba QUALIFIED
Munro Z VocelkaJapanAmy Elsner PROPOSAL
Maisha X GauchoRussiaElwin Sharvill NEW
Maisha B ChuiItalyStephen Shaw RENEWAL
Julie J VocelkaItalyIvan Magalhaes NEGOTIATION
Alejandro E BowleyItalyXuxue Feng PROPOSAL
Mujtaba F CampainSpainAmy Elsner NEW
Nicolas O RimAustraliaAmy Elsner QUALIFIED
Nicolas Q IturbideBrazilElwin Sharvill NEW
Ivar R AmigonBrazilIvan Magalhaes RENEWAL
Chavez R NickaItalyIvan Magalhaes QUALIFIED
Wickens Z FlosiItalyIoni Bowcher PROPOSAL
Jefferson E MaletJapanStephen Shaw QUALIFIED
Salvatore G ChuiIndiaXuxue Feng RENEWAL
Johnson E VenereFranceIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith V GarufiGermanyOnyama Limba UNQUALIFIED
Murillo W StensethIndiaAnna Fali PROPOSAL
Jeanfrancois K BriddickCanadaXuxue Feng NEGOTIATION
Cody C CaudyUnited KingdomAsiya Javayant NEGOTIATION
Claire M DoeItalyBernardo Dominic QUALIFIED
Arvin X ChuiGermanyAnna Fali PROPOSAL
Claire Z AlbaresUnited KingdomXuxue Feng NEW
Faith N WaycottItalyElwin Sharvill NEGOTIATION
Antonio A MacleadFranceIvan Magalhaes QUALIFIED
Cody K KuskoUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David Y PoquetteIndia2024-06-01Rangoni Of Florence NEW44Onyama Limba
1001Mayumi L MaletUnited Kingdom2024-06-17Printing Dimensions NEGOTIATION63Xuxue Feng
1002Silvio R InouyeRussia2024-05-29Feiner Bros NEGOTIATION88Xuxue Feng
1003Aika A MaletRussia2024-06-24Feiner Bros PROPOSAL85Bernardo Dominic
1004Salvatore V MarrierItaly2024-05-29Feltz Printing Service QUALIFIED43Ioni Bowcher
1005Leon X ButtRussia2024-06-17Buckley Miller Wright QUALIFIED4Ivan Magalhaes
1006Arvin I CampainCanada2024-06-10Printing Dimensions NEGOTIATION93Amy Elsner
1007Isabel H KuskoSpain2024-06-11Chapman, Ross E Esq NEW60Anna Fali
1008Jeanfrancois P FollerAustralia2024-06-02Chapman, Ross E Esq RENEWAL58Bernardo Dominic
1009Francesco R SaylorsAustralia2024-06-02Dorl, James J Esq UNQUALIFIED30Stephen Shaw
1010Ricardo L FigeroaCanada2024-05-29Morlong Associates UNQUALIFIED70Ivan Magalhaes
1011Johnson Z RoysterFrance2024-05-28Chemel, James L Cpa UNQUALIFIED12Amy Elsner
1012Darci Y WhobreyArgentina2024-06-17Commercial Press NEW27Stephen Shaw
1013Aditya T PaprockiGermany2024-06-18Feltz Printing Service PROPOSAL95Anna Fali
1014Mujtaba T FigeroaItaly2024-06-21Morlong Associates NEGOTIATION27Ivan Magalhaes
1015Juan Y TollnerFrance2024-05-27Dorl, James J Esq PROPOSAL44Amy Elsner
1016Jennifer G AmigonIndia2024-05-31Rangoni Of Florence NEGOTIATION81Stephen Shaw
1017Julie S ChuiArgentina2024-06-06Benton, John B Jr RENEWAL50Ivan Magalhaes
1018Alejandro R RimSpain2024-06-23Chemel, James L Cpa UNQUALIFIED51Asiya Javayant
1019Salvatore S BologniaRussia2024-06-14Buckley Miller Wright RENEWAL86Ivan Magalhaes
1020Clifford A PerinRussia2024-06-23Chemel, James L Cpa NEGOTIATION28Xuxue Feng
1021Munro G BologniaJapan2024-06-17Benton, John B Jr RENEWAL64Asiya Javayant
1022Aika S CaudyIndia2024-06-24Chemel, James L Cpa NEW97Anna Fali
1023Greenwood F MaletCanada2024-06-04King, Christopher A Esq NEW88Amy Elsner
1024Aika R InouyeAustralia2024-06-23Chanay, Jeffrey A Esq NEW97Amy Elsner
1025Ivar U CampainRussia2024-06-01Chemel, James L Cpa NEW93Ioni Bowcher
1026Jennifer R RimCanada2024-06-16Dorl, James J Esq QUALIFIED28Stephen Shaw
1027Aruna R PerinSpain2024-05-28Benton, John B Jr PROPOSAL10Bernardo Dominic
1028Greenwood Q WieserSpain2024-06-04Buckley Miller Wright RENEWAL79Stephen Shaw
1029Wickens B FerenczGermany2024-06-19Truhlar And Truhlar Attys NEW51Stephen Shaw
1030Arvin U FerenczUnited Kingdom2024-06-02Buckley Miller Wright QUALIFIED63Onyama Limba
1031Emily D KolmetzArgentina2024-06-18Commercial Press UNQUALIFIED45Elwin Sharvill
1032Greenwood H IturbideRussia2024-06-18Feltz Printing Service RENEWAL27Elwin Sharvill
1033Leja Q SergiJapan2024-06-13Feltz Printing Service UNQUALIFIED59Anna Fali
1034Kadeem N DarakjyJapan2024-06-02Chapman, Ross E Esq UNQUALIFIED39Stephen Shaw
1035Francesco P SlusarskiSpain2024-06-21Buckley Miller Wright RENEWAL24Xuxue Feng
1036Nicolas D GlickJapan2024-06-06Rangoni Of Florence PROPOSAL66Bernardo Dominic
1037Adams R DilliardGermany2024-06-14Truhlar And Truhlar Attys UNQUALIFIED83Xuxue Feng
1038Mujtaba F OldroydRussia2024-06-04Feltz Printing Service QUALIFIED89Anna Fali
1039Adams N GillianGermany2024-06-18Dorl, James J Esq NEW27Stephen Shaw
1040Munro P MacleadUnited Kingdom2024-05-26Chanay, Jeffrey A Esq RENEWAL3Elwin Sharvill
1041Faith D GlickJapan2024-05-29Benton, John B Jr QUALIFIED55Asiya Javayant
1042Rodrigues S CaudyFrance2024-06-13Commercial Press QUALIFIED92Stephen Shaw
1043Juan D NickaArgentina2024-06-14Printing Dimensions PROPOSAL40Ivan Magalhaes
1044Ricardo J BologniaJapan2024-06-24Commercial Press NEW72Elwin Sharvill
1045Arvin Y DilliardArgentina2024-06-04Benton, John B Jr NEW35Bernardo Dominic
1046Ivar U PaprockiRussia2024-05-26Commercial Press NEGOTIATION54Anna Fali
1047Jeanfrancois E BriddickGermany2024-06-13Truhlar And Truhlar Attys RENEWAL0Asiya Javayant
1048Aruna O WhobreyBrazil2024-06-18Truhlar And Truhlar Attys QUALIFIED58Amy Elsner
1049Mujtaba P CaudyBrazil2024-06-22Buckley Miller Wright QUALIFIED74Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aika C MacleadFranceElwin Sharvill QUALIFIED
Darci T AmigonGermanyAsiya Javayant RENEWAL
Juan L KuskoBrazilAnna Fali NEGOTIATION
Emily E PoquetteSpainAsiya Javayant PROPOSAL
Leon H GillianCanadaBernardo Dominic NEGOTIATION
Silvio I PoquetteFranceXuxue Feng RENEWAL
Darci D AmigonItalyBernardo Dominic PROPOSAL
Julie F PerinCanadaIvan Magalhaes PROPOSAL
Salvatore H KolmetzBrazilAnna Fali QUALIFIED
David Y BriddickGermanyAsiya Javayant QUALIFIED
Rodrigues A ButtUnited KingdomAsiya Javayant RENEWAL
James X RulapaughItalyIvan Magalhaes NEGOTIATION
Ricardo E WieserAustraliaBernardo Dominic QUALIFIED
Morrow U InouyeArgentinaXuxue Feng NEW
Misaki S ChuiRussiaIvan Magalhaes QUALIFIED
Izzy O ShinkoSpainStephen Shaw UNQUALIFIED
Kadeem U FlosiAustraliaAsiya Javayant UNQUALIFIED
Tony P WhobreyCanadaStephen Shaw QUALIFIED
Misaki A KuskoRussiaBernardo Dominic NEW
Smith L SaylorsGermanyIoni Bowcher UNQUALIFIED
Emily H GarufiItalyBernardo Dominic QUALIFIED
Salvatore K AmigonAustraliaAmy Elsner PROPOSAL
Izzy B SlusarskiArgentinaIoni Bowcher PROPOSAL
Leon D NestleUnited KingdomAmy Elsner QUALIFIED
Ashley S VocelkaAustraliaStephen Shaw UNQUALIFIED
Antonio Z GlickItalyXuxue Feng UNQUALIFIED
Aditya K AmigonCanadaOnyama Limba NEGOTIATION
Kadeem O VocelkaItalyOnyama Limba NEW
Faith E KolmetzArgentinaAnna Fali NEGOTIATION
Aika Y FerenczArgentinaOnyama Limba UNQUALIFIED
Misaki P ShinkoAustraliaStephen Shaw NEGOTIATION
Rodrigues W RutaJapanAsiya Javayant NEGOTIATION
Mujtaba L TollnerGermanyStephen Shaw UNQUALIFIED
Stacey Y OldroydSpainElwin Sharvill UNQUALIFIED
Kaitlin F StockhamAustraliaIoni Bowcher PROPOSAL
Juan B VenereJapanIvan Magalhaes RENEWAL
Leja Y OstroskyUnited KingdomAnna Fali PROPOSAL
Leon X OldroydUnited KingdomOnyama Limba PROPOSAL
Tony T PerinIndiaAmy Elsner PROPOSAL
Smith U MacleadAustraliaAmy Elsner NEGOTIATION
Jefferson L BowleyGermanyOnyama Limba NEW
Alejandro C SergiIndiaAmy Elsner RENEWAL
Rodrigues P BriddickAustraliaAmy Elsner UNQUALIFIED
Aditya Z SaylorsItalyAsiya Javayant UNQUALIFIED
Jennifer R CaldareraGermanyIvan Magalhaes NEGOTIATION
Kaitlin J RoysterIndiaIoni Bowcher UNQUALIFIED
Jefferson T BologniaRussiaAmy Elsner UNQUALIFIED
Clifford S GillianItalyElwin Sharvill RENEWAL
Mujtaba E AlbaresAustraliaElwin Sharvill UNQUALIFIED
Francesco A PaprockiUnited KingdomXuxue Feng NEW
Frozen Columns
Name
Murillo X Ferencz
James D Campain
Juan U Butt
Ricardo W Royster
Maisha B Royster
Izzy Y Rim
Arvin L Waycott
Clifford C Poquette
Faith J Maclead
Ashley R Tollner
Leon I Paprocki
Tony W Garufi
Izzy O Morasca
Deepesh N Amigon
Darci W Bowley
Sinclair K Shinko
Leon Z Albares
Murillo N Tollner
Cody U Glick
Morrow G Stenseth
Chavez K Oldroyd
James L Foller
Darci E Ruta
Kadeem E Figeroa
Mayumi O Waycott
Maria J Ostrosky
Jennifer N Royster
Maisha H Dilliard
Morrow H Bolognia
Nicolas C Vocelka
Maisha D Dilliard
Maria F Slusarski
Maria I Gaucho
Ashley K Nicka
Jefferson T Caudy
Leja Y Gaucho
Antonio N Gillian
James H Dilliard
Morrow J Amigon
Stacey K Stockham
Jeanfrancois R Poquette
Tony H Royster
Chavez B Sergi
Aditya C Dilliard
Isabel A Caudy
Francesco H Bowley
Murillo D Glick
Maisha Y Inouye
Antonio O Royster
Maisha C Nestle
IdCountryDate
1000India2024-06-16
1001Canada2024-06-20
1002Russia2024-06-12
1003India2024-06-14
1004Brazil2024-06-20
1005Italy2024-06-06
1006Argentina2024-06-24
1007France2024-06-04
1008France2024-06-13
1009Germany2024-06-17
1010Australia2024-06-15
1011Italy2024-06-16
1012Italy2024-06-23
1013Brazil2024-06-05
1014Argentina2024-06-23
1015Canada2024-06-12
1016Germany2024-06-20
1017India2024-06-22
1018Russia2024-05-27
1019Argentina2024-06-22
1020Italy2024-06-04
1021Brazil2024-06-04
1022Russia2024-06-22
1023Italy2024-06-13
1024France2024-06-14
1025Germany2024-06-06
1026Brazil2024-06-03
1027United Kingdom2024-06-24
1028Australia2024-06-17
1029Spain2024-05-27
1030Spain2024-06-01
1031Japan2024-05-28
1032Spain2024-06-15
1033Brazil2024-06-05
1034Germany2024-05-30
1035Canada2024-06-01
1036India2024-06-06
1037India2024-06-14
1038India2024-06-02
1039Brazil2024-06-02
1040France2024-06-16
1041Brazil2024-06-21
1042Japan2024-06-14
1043United Kingdom2024-06-24
1044Russia2024-06-12
1045France2024-06-01
1046France2024-06-17
1047Italy2024-06-09
1048Spain2024-06-16
1049Germany2024-06-12

On-Demand Data

NameIdCountryDate
Emily P Campain1000Russia2024-06-23
Wickens H Gillian1001United Kingdom2024-06-12
Wickens H Malet1002United Kingdom2024-06-11
Arvin A Oldroyd1003Japan2024-06-20
Isabel X Briddick1004Canada2024-06-23
Leja Q Paprocki1005Italy2024-06-08
Aika J Malet1006Brazil2024-06-07
Octavia Q Caudy1007Russia2024-05-27
Tony T Amigon1008United Kingdom2024-05-28
Rodrigues O Figeroa1009Italy2024-05-27
Mayumi I Morasca1010Canada2024-06-21
Arvin R Albares1011Spain2024-06-11
Murillo B Dilliard1012France2024-06-02
Greenwood C Dilliard1013Japan2024-06-05
Jeanfrancois L Nicka1014Argentina2024-06-17
Jones J Dilliard1015Spain2024-06-09
Darci G Gaucho1016Japan2024-05-26
Mayumi H Venere1017Brazil2024-06-24
Leja I Inouye1018Australia2024-06-13
Faith Z Campain1019Italy2024-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez L StockhamFranceIvan Magalhaes PROPOSAL
Nicolas E KolmetzRussiaAsiya Javayant UNQUALIFIED
Sinclair V MaletFranceOnyama Limba NEW
Salvatore G MarrierItalyAsiya Javayant RENEWAL
Chavez A PoquetteAustraliaIoni Bowcher RENEWAL
Costa T GillianArgentinaIvan Magalhaes NEW
Julie H SergiGermanyAnna Fali UNQUALIFIED
Faith I SergiRussiaBernardo Dominic NEGOTIATION
Salvatore M MacleadUnited KingdomBernardo Dominic NEW
Ivar W PoquetteBrazilIvan Magalhaes UNQUALIFIED
Kaitlin U DarakjyUnited KingdomBernardo Dominic PROPOSAL
Alejandro B ChuiUnited KingdomAnna Fali NEGOTIATION
Munro K TollnerGermanyOnyama Limba NEGOTIATION
Silvio D FerenczUnited KingdomBernardo Dominic RENEWAL
Aruna N InouyeBrazilAmy Elsner RENEWAL
Cody N MaletGermanyXuxue Feng RENEWAL
Jones X FlosiSpainStephen Shaw UNQUALIFIED
Octavia T OldroydSpainIoni Bowcher QUALIFIED
Claire C WaycottFranceAmy Elsner NEW
Ashley Q CaldareraUnited KingdomAmy Elsner NEGOTIATION
Chavez E GillianBrazilIoni Bowcher RENEWAL
Jeanfrancois E GarufiCanadaBernardo Dominic UNQUALIFIED
Leja V KuskoSpainBernardo Dominic RENEWAL
Aruna H CampainUnited KingdomOnyama Limba UNQUALIFIED
Ricardo R MarrierAustraliaBernardo Dominic NEGOTIATION
Munro P SaylorsUnited KingdomStephen Shaw QUALIFIED
Cody C DoeUnited KingdomOnyama Limba NEW
Aika C SergiSpainElwin Sharvill NEGOTIATION
Jones X ShinkoBrazilElwin Sharvill RENEWAL
Isabel J TollnerSpainIvan Magalhaes PROPOSAL
Silvio B WhobreyCanadaAsiya Javayant PROPOSAL
Alejandro H NickaFranceAmy Elsner RENEWAL
Salvatore L MaletSpainXuxue Feng PROPOSAL
Izzy U GillianItalyElwin Sharvill RENEWAL
Greenwood V KolmetzJapanIoni Bowcher QUALIFIED
Octavia X MaletGermanyXuxue Feng NEGOTIATION
Misaki B WhobreyBrazilBernardo Dominic NEW
Stacey M CaldareraGermanyXuxue Feng NEGOTIATION
Sinclair Q MorascaRussiaElwin Sharvill UNQUALIFIED
Chavez V VenereUnited KingdomStephen Shaw 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>