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
Tony W MacleadAustraliaElwin Sharvill RENEWAL
Stacey G ChuiUnited KingdomStephen Shaw NEGOTIATION
Alejandro N CaldareraFranceIoni Bowcher UNQUALIFIED
Claire Q RutaUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois M VenereCanadaBernardo Dominic NEGOTIATION
Tony L StensethGermanyAnna Fali PROPOSAL
Silvio F GarufiArgentinaXuxue Feng QUALIFIED
Wickens C GauchoBrazilBernardo Dominic UNQUALIFIED
Smith X AmigonRussiaAnna Fali QUALIFIED
Francesco L GlickItalyOnyama Limba NEW
Sinclair S StockhamArgentinaAsiya Javayant QUALIFIED
Mujtaba U BriddickCanadaAsiya Javayant NEGOTIATION
Nicolas A ShinkoAustraliaAnna Fali RENEWAL
Jennifer D VocelkaBrazilOnyama Limba RENEWAL
Antonio S RimJapanXuxue Feng PROPOSAL
Jones S FigeroaRussiaAmy Elsner NEGOTIATION
Aika L RimUnited KingdomXuxue Feng NEW
Smith W ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Aruna S CampainJapanXuxue Feng NEGOTIATION
Jennifer U MaletArgentinaElwin Sharvill NEW
Mujtaba A GillianIndiaAnna Fali QUALIFIED
Mujtaba A FlosiArgentinaIvan Magalhaes NEGOTIATION
Kaitlin Q DarakjyGermanyIoni Bowcher RENEWAL
Murillo N BologniaSpainStephen Shaw RENEWAL
Cody X DarakjyAustraliaElwin Sharvill PROPOSAL
Darci Y PaprockiCanadaElwin Sharvill NEGOTIATION
Aruna I AlbaresSpainIoni Bowcher NEGOTIATION
Nicolas U StockhamAustraliaAnna Fali QUALIFIED
Tony K DilliardJapanElwin Sharvill PROPOSAL
Munro B WhobreyRussiaIvan Magalhaes NEGOTIATION
Leon F BowleyArgentinaBernardo Dominic NEW
Clifford A KolmetzSpainIvan Magalhaes NEW
Francesco P GauchoSpainAnna Fali PROPOSAL
Leja L MacleadArgentinaStephen Shaw NEW
Jennifer O FollerJapanAmy Elsner QUALIFIED
Kaitlin V GlickAustraliaAmy Elsner NEGOTIATION
Jennifer P FigeroaArgentinaAnna Fali NEGOTIATION
Salvatore A PaprockiCanadaElwin Sharvill UNQUALIFIED
Emily G ChuiFranceBernardo Dominic NEGOTIATION
David B OldroydIndiaIoni Bowcher UNQUALIFIED
Octavia Z WhobreyBrazilStephen Shaw UNQUALIFIED
Munro K FollerRussiaStephen Shaw NEW
Faith Q OldroydAustraliaBernardo Dominic PROPOSAL
Silvio B RimAustraliaAsiya Javayant UNQUALIFIED
Kaitlin H WhobreyCanadaIoni Bowcher NEGOTIATION
Salvatore C OldroydIndiaIoni Bowcher QUALIFIED
Izzy N AlbaresAustraliaAsiya Javayant RENEWAL
Emily L FerenczArgentinaBernardo Dominic NEW
Costa M IturbideAustraliaIoni Bowcher QUALIFIED
Munro P ShinkoBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer W GarufiSpainAmy Elsner UNQUALIFIED
Faith R WhobreyAustraliaStephen Shaw NEGOTIATION
Leja K WaycottItalyIvan Magalhaes PROPOSAL
Isabel K SaylorsRussiaStephen Shaw QUALIFIED
Juan E BologniaRussiaIoni Bowcher NEGOTIATION
Francesco Q GillianAustraliaOnyama Limba NEW
Stacey B KolmetzBrazilIoni Bowcher QUALIFIED
Costa M SlusarskiArgentinaIoni Bowcher QUALIFIED
Jefferson P PoquetteIndiaAsiya Javayant UNQUALIFIED
Aika C OstroskyIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba O VenereItaly2025-06-09Feiner Bros PROPOSAL76Xuxue Feng
1001Aika N GauchoRussia2025-06-07Chanay, Jeffrey A Esq UNQUALIFIED78Amy Elsner
1002Jeanfrancois C IturbideRussia2025-06-12Buckley Miller Wright NEW29Ivan Magalhaes
1003Faith N GillianFrance2025-05-29Rousseaux, Michael Esq NEGOTIATION40Xuxue Feng
1004Costa S VenereRussia2025-06-14Dorl, James J Esq UNQUALIFIED65Amy Elsner
1005Antonio K DilliardAustralia2025-05-28Benton, John B Jr PROPOSAL75Amy Elsner
1006Leon Z VenereUnited Kingdom2025-05-18Feiner Bros QUALIFIED69Amy Elsner
1007Silvio D AmigonFrance2025-05-22Benton, John B Jr PROPOSAL75Ioni Bowcher
1008Johnson I MaletItaly2025-05-29Rousseaux, Michael Esq PROPOSAL44Bernardo Dominic
1009Octavia C SchemmerIndia2025-05-31Chemel, James L Cpa PROPOSAL96Anna Fali
1010Maria K CaudyFrance2025-06-07Benton, John B Jr NEW28Xuxue Feng
1011Francesco E MaletIndia2025-05-19King, Christopher A Esq UNQUALIFIED11Bernardo Dominic
1012Smith G MaletArgentina2025-05-21Chapman, Ross E Esq UNQUALIFIED54Stephen Shaw
1013Aruna X ButtGermany2025-06-06Rangoni Of Florence UNQUALIFIED30Xuxue Feng
1014Arvin X PerinCanada2025-06-03Chapman, Ross E Esq NEGOTIATION16Elwin Sharvill
1015Isabel B VocelkaCanada2025-06-14Truhlar And Truhlar Attys NEW28Xuxue Feng
1016Francesco Z IturbideJapan2025-06-03Buckley Miller Wright UNQUALIFIED6Xuxue Feng
1017Isabel S WaycottFrance2025-06-14Printing Dimensions QUALIFIED72Asiya Javayant
1018Antonio U ChuiSpain2025-06-08Feltz Printing Service NEW38Anna Fali
1019Rodrigues G StockhamArgentina2025-06-07Rangoni Of Florence RENEWAL37Anna Fali
1020Misaki W NickaJapan2025-05-26Chemel, James L Cpa RENEWAL31Ivan Magalhaes
1021Izzy Y WaycottSpain2025-05-21King, Christopher A Esq NEW45Stephen Shaw
1022Julie R RimIndia2025-05-22Rousseaux, Michael Esq RENEWAL89Ivan Magalhaes
1023Antonio B IturbideArgentina2025-06-13Benton, John B Jr QUALIFIED49Elwin Sharvill
1024Silvio I PoquetteJapan2025-06-05King, Christopher A Esq RENEWAL58Ioni Bowcher
1025Maisha W FollerItaly2025-05-19Feltz Printing Service NEW93Bernardo Dominic
1026Kaitlin X BologniaGermany2025-06-11Chapman, Ross E Esq RENEWAL74Xuxue Feng
1027Aditya X OldroydSpain2025-06-06Dorl, James J Esq PROPOSAL31Ivan Magalhaes
1028Darci R SchemmerArgentina2025-05-17Feiner Bros NEGOTIATION68Ioni Bowcher
1029Silvio S GauchoGermany2025-05-18Chanay, Jeffrey A Esq RENEWAL43Stephen Shaw
1030Smith J FollerItaly2025-06-08Commercial Press NEW70Ioni Bowcher
1031Juan K MacleadArgentina2025-05-16Feiner Bros QUALIFIED57Amy Elsner
1032Sinclair P GillianFrance2025-05-30Chemel, James L Cpa NEGOTIATION83Amy Elsner
1033Misaki U InouyeArgentina2025-05-16Chemel, James L Cpa NEW26Anna Fali
1034Emily O BowleyAustralia2025-06-02King, Christopher A Esq PROPOSAL54Ioni Bowcher
1035Stacey R BowleyFrance2025-05-23Rangoni Of Florence RENEWAL87Amy Elsner
1036Johnson C FollerAustralia2025-05-17Chemel, James L Cpa QUALIFIED77Onyama Limba
1037Smith D ChuiRussia2025-05-17Rousseaux, Michael Esq RENEWAL43Ioni Bowcher
1038Ricardo O ChuiSpain2025-06-12Chemel, James L Cpa PROPOSAL85Bernardo Dominic
1039Deepesh E RimSpain2025-05-27Chapman, Ross E Esq UNQUALIFIED16Bernardo Dominic
1040Clifford Z DarakjyRussia2025-05-23Chanay, Jeffrey A Esq NEGOTIATION37Xuxue Feng
1041Ivar R DoeCanada2025-06-14King, Christopher A Esq UNQUALIFIED64Amy Elsner
1042Leon P DoeArgentina2025-05-31Feiner Bros UNQUALIFIED97Amy Elsner
1043Nicolas Q RimRussia2025-06-10Truhlar And Truhlar Attys PROPOSAL64Amy Elsner
1044Ivar O CampainIndia2025-05-31Morlong Associates NEGOTIATION11Asiya Javayant
1045Mujtaba M GauchoJapan2025-06-05Benton, John B Jr UNQUALIFIED23Asiya Javayant
1046Misaki R KuskoItaly2025-05-27Feltz Printing Service PROPOSAL2Amy Elsner
1047Jones Y MacleadAustralia2025-06-01Feltz Printing Service NEGOTIATION51Stephen Shaw
1048Emily J VocelkaCanada2025-05-17Dorl, James J Esq UNQUALIFIED90Stephen Shaw
1049Greenwood D StockhamArgentina2025-05-28Feltz Printing Service NEGOTIATION41Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Darci T StockhamIndiaAmy Elsner PROPOSAL
Ivar R ChuiRussiaAmy Elsner PROPOSAL
Juan K ChuiJapanIoni Bowcher UNQUALIFIED
Julie I DoeSpainStephen Shaw NEW
Adams G FlosiCanadaStephen Shaw NEW
Morrow B MaletRussiaBernardo Dominic NEGOTIATION
Cody T MorascaBrazilAnna Fali NEGOTIATION
Munro Q TollnerIndiaIoni Bowcher RENEWAL
Kadeem H VenereJapanAsiya Javayant QUALIFIED
Rodrigues O VenereSpainAnna Fali PROPOSAL
Antonio C PerinSpainElwin Sharvill UNQUALIFIED
Aditya A KolmetzArgentinaBernardo Dominic NEW
Greenwood E NickaItalyBernardo Dominic UNQUALIFIED
Jeanfrancois B KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Smith M MarrierCanadaBernardo Dominic NEGOTIATION
Jeanfrancois K StockhamArgentinaElwin Sharvill QUALIFIED
Clifford P AlbaresArgentinaAnna Fali NEGOTIATION
Izzy K SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Jennifer A BowleyCanadaBernardo Dominic UNQUALIFIED
Aika R RimSpainAsiya Javayant NEW
Ivar I RoysterCanadaIvan Magalhaes PROPOSAL
Tony C FerenczJapanAnna Fali NEW
Mayumi R SergiAustraliaAnna Fali NEGOTIATION
Adams Y DoeJapanIoni Bowcher NEGOTIATION
Antonio A ShinkoIndiaElwin Sharvill NEW
Cody I PerinItalyIoni Bowcher QUALIFIED
Leja I PoquetteBrazilBernardo Dominic QUALIFIED
Salvatore W GauchoJapanElwin Sharvill RENEWAL
Ricardo C ButtIndiaElwin Sharvill RENEWAL
Aika L SlusarskiGermanyXuxue Feng QUALIFIED
Kadeem K SchemmerBrazilAnna Fali QUALIFIED
Greenwood O CaldareraAustraliaIoni Bowcher UNQUALIFIED
Deepesh H KuskoCanadaXuxue Feng QUALIFIED
Francesco V OldroydFranceIvan Magalhaes NEGOTIATION
Deepesh D MorascaSpainXuxue Feng UNQUALIFIED
Sinclair O RutaJapanAmy Elsner RENEWAL
Faith R SchemmerFranceAmy Elsner PROPOSAL
Greenwood L ChuiFranceStephen Shaw UNQUALIFIED
Misaki D TollnerArgentinaAsiya Javayant PROPOSAL
Isabel D PerinAustraliaAsiya Javayant QUALIFIED
Kadeem Y SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer B WhobreyCanadaOnyama Limba QUALIFIED
Deepesh A FollerUnited KingdomAnna Fali UNQUALIFIED
Misaki B MaletRussiaIoni Bowcher NEW
Tony Z BriddickIndiaAmy Elsner UNQUALIFIED
Arvin E StensethIndiaStephen Shaw QUALIFIED
Kadeem L FlosiArgentinaAnna Fali PROPOSAL
Adams U WaycottRussiaStephen Shaw PROPOSAL
Faith I FigeroaFranceStephen Shaw RENEWAL
Jennifer H ShinkoFranceIvan Magalhaes RENEWAL
Frozen Columns
Name
Francesco N Ruta
Murillo N Vocelka
Silvio J Marrier
Stacey J Gillian
Misaki H Shinko
Alejandro Y Glick
Alejandro M Dilliard
Claire A Caudy
Greenwood V Foller
Alejandro N Perin
Aika L Darakjy
Tony V Briddick
Sinclair Z Iturbide
Ivar E Kusko
Ivar Z Slusarski
Faith Z Iturbide
Darci U Stenseth
Jennifer W Oldroyd
Julie V Bolognia
Nicolas T Wieser
Aditya R Figeroa
Misaki G Sergi
Sinclair E Slusarski
Clifford C Royster
Nicolas E Slusarski
Rodrigues S Kusko
Costa E Kusko
Aditya W Rulapaugh
Maria K Vocelka
Salvatore I Schemmer
Antonio Z Royster
Kadeem M Chui
Jennifer S Foller
Munro B Kusko
Johnson B Bowley
James Y Vocelka
Murillo Z Tollner
Munro Q Whobrey
Kaitlin Z Morasca
Francesco M Gaucho
Jefferson K Darakjy
Mayumi D Dilliard
David P Poquette
Wickens T Royster
Munro Q Bowley
Kaitlin S Oldroyd
Antonio G Foller
Rodrigues T Dilliard
Aruna D Campain
Emily Z Rim
IdCountryDate
1000Argentina2025-06-03
1001India2025-05-18
1002Spain2025-05-18
1003United Kingdom2025-05-30
1004Spain2025-06-01
1005Germany2025-05-30
1006Japan2025-05-30
1007India2025-06-04
1008Italy2025-06-04
1009Japan2025-05-16
1010Argentina2025-06-08
1011India2025-05-24
1012United Kingdom2025-05-31
1013Japan2025-06-12
1014Australia2025-05-21
1015Japan2025-05-24
1016Argentina2025-05-30
1017Australia2025-05-16
1018Italy2025-06-02
1019Argentina2025-05-30
1020Argentina2025-05-25
1021Australia2025-06-08
1022India2025-06-12
1023Italy2025-05-16
1024Germany2025-05-24
1025Spain2025-06-08
1026Japan2025-05-17
1027Brazil2025-05-18
1028Spain2025-06-06
1029United Kingdom2025-05-23
1030Japan2025-05-27
1031Australia2025-06-13
1032United Kingdom2025-06-12
1033Argentina2025-05-18
1034Australia2025-05-26
1035United Kingdom2025-06-12
1036Canada2025-05-25
1037Australia2025-06-04
1038Australia2025-06-10
1039Russia2025-06-08
1040Japan2025-06-11
1041Brazil2025-06-02
1042Spain2025-06-03
1043Italy2025-06-05
1044Russia2025-06-10
1045Australia2025-05-17
1046Japan2025-06-14
1047Spain2025-06-02
1048Brazil2025-06-10
1049United Kingdom2025-05-30

On-Demand Data

NameIdCountryDate
Aika I Ruta1000Italy2025-06-13
James C Marrier1001United Kingdom2025-06-03
Mayumi T Amigon1002Argentina2025-06-04
Maria T Malet1003Japan2025-05-22
Leja E Glick1004Brazil2025-05-23
Adams B Albares1005Spain2025-05-22
James I Amigon1006Russia2025-06-05
David H Foller1007Canada2025-05-24
Munro A Glick1008Argentina2025-06-09
Octavia H Dilliard1009India2025-06-03
Aditya J Ruta1010United Kingdom2025-06-02
Leon C Malet1011France2025-05-29
Misaki A Poquette1012France2025-06-09
Aruna D Inouye1013Brazil2025-05-28
Antonio N Flosi1014India2025-06-01
Jones Q Marrier1015Canada2025-06-02
Maria I Vocelka1016Italy2025-05-31
Johnson S Vocelka1017Argentina2025-06-06
Salvatore X Ferencz1018Japan2025-05-22
Jefferson E Maclead1019Argentina2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson W GauchoGermanyAnna Fali UNQUALIFIED
Juan J VenereItalyOnyama Limba RENEWAL
Rodrigues L FerenczSpainElwin Sharvill UNQUALIFIED
Emily P OstroskyArgentinaStephen Shaw UNQUALIFIED
Maria M NickaRussiaStephen Shaw UNQUALIFIED
Faith G AlbaresFranceAnna Fali NEGOTIATION
Mayumi J WhobreyRussiaAsiya Javayant PROPOSAL
Tony O SchemmerItalyAmy Elsner NEGOTIATION
Deepesh E DoeAustraliaAmy Elsner PROPOSAL
Mujtaba G GauchoRussiaAmy Elsner RENEWAL
Mujtaba R WaycottFranceBernardo Dominic NEW
Jefferson I NickaGermanyIvan Magalhaes QUALIFIED
Wickens R MaletUnited KingdomAmy Elsner NEGOTIATION
Misaki G AlbaresBrazilIvan Magalhaes NEW
James O DarakjyCanadaBernardo Dominic PROPOSAL
Claire H SchemmerAustraliaIvan Magalhaes PROPOSAL
Claire H StensethRussiaOnyama Limba PROPOSAL
Nicolas C DilliardSpainElwin Sharvill RENEWAL
Wickens K DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Clifford A IturbideSpainAnna Fali NEGOTIATION
Stacey L FollerBrazilBernardo Dominic NEW
Antonio F KolmetzFranceBernardo Dominic RENEWAL
Greenwood W AlbaresBrazilIvan Magalhaes UNQUALIFIED
Tony H NickaRussiaBernardo Dominic RENEWAL
Adams Z DarakjyRussiaAnna Fali RENEWAL
James Y FigeroaBrazilAmy Elsner NEW
Jefferson P MaletItalyIvan Magalhaes QUALIFIED
Julie M InouyeUnited KingdomXuxue Feng RENEWAL
Munro U StockhamItalyOnyama Limba NEW
Tony U GlickItalyAnna Fali NEW
Antonio T IturbideGermanyAsiya Javayant PROPOSAL
David D OstroskyAustraliaIoni Bowcher RENEWAL
Wickens A GarufiArgentinaAmy Elsner QUALIFIED
Jeanfrancois Z PerinRussiaAmy Elsner NEGOTIATION
Aditya E ButtAustraliaAmy Elsner UNQUALIFIED
Ricardo X RimAustraliaAnna Fali UNQUALIFIED
Leon Z GarufiBrazilAsiya Javayant UNQUALIFIED
Octavia X GillianFranceAsiya Javayant PROPOSAL
Julie M WieserFranceElwin Sharvill NEW
Stacey Y KolmetzJapanAmy Elsner 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>