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
Stacey I ButtItalyElwin Sharvill NEGOTIATION
Alejandro K SergiRussiaElwin Sharvill UNQUALIFIED
Maisha V DoeJapanStephen Shaw QUALIFIED
Kadeem N CaudyCanadaAnna Fali QUALIFIED
Francesco F WhobreySpainBernardo Dominic NEW
Greenwood B StockhamRussiaAmy Elsner NEGOTIATION
Munro N SlusarskiIndiaIoni Bowcher NEW
Clifford M FigeroaAustraliaIvan Magalhaes QUALIFIED
Faith B CaudyArgentinaOnyama Limba UNQUALIFIED
Francesco D CaldareraAustraliaIvan Magalhaes PROPOSAL
Leja O KuskoSpainStephen Shaw RENEWAL
Costa S RoysterSpainBernardo Dominic UNQUALIFIED
Mayumi L AlbaresAustraliaElwin Sharvill RENEWAL
Julie P MaletIndiaIoni Bowcher NEGOTIATION
Smith N RutaSpainAmy Elsner QUALIFIED
Greenwood Q VocelkaItalyIvan Magalhaes NEGOTIATION
James R DoeCanadaAnna Fali QUALIFIED
Chavez Y VocelkaRussiaAsiya Javayant UNQUALIFIED
Munro M GauchoItalyElwin Sharvill PROPOSAL
Deepesh W MarrierFranceOnyama Limba NEW
Deepesh Y FigeroaAustraliaXuxue Feng QUALIFIED
Ashley L CaldareraFranceBernardo Dominic PROPOSAL
Ivar T BriddickBrazilXuxue Feng PROPOSAL
Costa X VocelkaIndiaIoni Bowcher PROPOSAL
Clifford Y WaycottUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois C RoysterCanadaElwin Sharvill UNQUALIFIED
Morrow H OstroskyFranceElwin Sharvill NEW
Jennifer I TollnerArgentinaIvan Magalhaes UNQUALIFIED
Tony D AlbaresFranceAsiya Javayant NEW
Munro S DarakjyBrazilIvan Magalhaes PROPOSAL
Darci P DarakjyJapanIvan Magalhaes PROPOSAL
Juan X OldroydSpainIoni Bowcher PROPOSAL
Aika Q SergiUnited KingdomBernardo Dominic RENEWAL
Greenwood Z WaycottFranceXuxue Feng UNQUALIFIED
Smith L MacleadAustraliaAmy Elsner PROPOSAL
Jennifer B KolmetzFranceIoni Bowcher UNQUALIFIED
Octavia I RoysterIndiaStephen Shaw NEGOTIATION
Jennifer B BriddickGermanyElwin Sharvill UNQUALIFIED
Munro T ShinkoRussiaIoni Bowcher RENEWAL
Deepesh T GarufiJapanIvan Magalhaes PROPOSAL
Leja G BologniaBrazilElwin Sharvill UNQUALIFIED
Antonio O GarufiSpainIvan Magalhaes NEGOTIATION
Emily K BologniaArgentinaXuxue Feng QUALIFIED
Munro N VenereUnited KingdomIvan Magalhaes NEW
Ivar O GlickBrazilAsiya Javayant UNQUALIFIED
Julie H GillianUnited KingdomAsiya Javayant QUALIFIED
Julie W InouyeBrazilStephen Shaw UNQUALIFIED
Greenwood Q StensethBrazilElwin Sharvill NEGOTIATION
Juan T MacleadIndiaIoni Bowcher QUALIFIED
Sinclair T ShinkoBrazilAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro N NestleArgentinaBernardo Dominic PROPOSAL
Claire F StensethFranceAsiya Javayant RENEWAL
Kadeem P SergiUnited KingdomOnyama Limba UNQUALIFIED
Stacey V VenereSpainXuxue Feng UNQUALIFIED
Aruna I FerenczBrazilAnna Fali RENEWAL
Darci K KuskoRussiaIvan Magalhaes NEGOTIATION
Jennifer X DarakjyFranceOnyama Limba QUALIFIED
James O NestleSpainAmy Elsner RENEWAL
Claire R NestleFranceAnna Fali RENEWAL
Stacey C CaudyCanadaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro D NestleSpain2025-06-09Rousseaux, Michael Esq UNQUALIFIED19Ivan Magalhaes
1001Deepesh V DarakjySpain2025-06-01Printing Dimensions QUALIFIED24Bernardo Dominic
1002Kadeem F MaletFrance2025-06-10Chanay, Jeffrey A Esq PROPOSAL44Bernardo Dominic
1003Sinclair I MarrierBrazil2025-06-12Commercial Press PROPOSAL45Amy Elsner
1004Nicolas E PoquetteIndia2025-05-21Chapman, Ross E Esq QUALIFIED13Onyama Limba
1005Jefferson D FerenczAustralia2025-06-10Morlong Associates PROPOSAL81Ivan Magalhaes
1006Mujtaba A NestleRussia2025-06-06Morlong Associates PROPOSAL78Amy Elsner
1007Aruna H PaprockiIndia2025-06-06Rangoni Of Florence RENEWAL85Onyama Limba
1008Kadeem Q ShinkoSpain2025-05-20Morlong Associates QUALIFIED86Amy Elsner
1009Ricardo F NickaCanada2025-05-23Dorl, James J Esq QUALIFIED30Xuxue Feng
1010Costa N OstroskyRussia2025-06-08Chapman, Ross E Esq QUALIFIED57Ivan Magalhaes
1011Juan L SchemmerCanada2025-05-21Morlong Associates RENEWAL52Xuxue Feng
1012Chavez J FollerBrazil2025-05-31Chanay, Jeffrey A Esq NEW5Bernardo Dominic
1013Julie I ShinkoSpain2025-06-01King, Christopher A Esq NEGOTIATION38Ivan Magalhaes
1014Jeanfrancois P ButtGermany2025-06-04Feiner Bros RENEWAL33Amy Elsner
1015Greenwood J CaudyIndia2025-06-09Dorl, James J Esq RENEWAL8Ivan Magalhaes
1016Rodrigues R ShinkoBrazil2025-05-26Commercial Press NEW10Ioni Bowcher
1017Kaitlin Y GlickCanada2025-05-27Feltz Printing Service UNQUALIFIED76Amy Elsner
1018Aditya C GlickSpain2025-06-06Rangoni Of Florence NEGOTIATION31Anna Fali
1019Misaki Z BriddickUnited Kingdom2025-05-16Chemel, James L Cpa UNQUALIFIED68Stephen Shaw
1020Misaki M DilliardBrazil2025-05-22Feltz Printing Service NEGOTIATION22Elwin Sharvill
1021Arvin A RutaUnited Kingdom2025-06-01Feiner Bros UNQUALIFIED51Bernardo Dominic
1022Ricardo Q SaylorsFrance2025-06-07Feltz Printing Service QUALIFIED39Amy Elsner
1023Ricardo Q MaletUnited Kingdom2025-06-08Chanay, Jeffrey A Esq RENEWAL88Amy Elsner
1024Greenwood S KuskoIndia2025-05-23Feiner Bros RENEWAL92Xuxue Feng
1025Silvio M SchemmerUnited Kingdom2025-05-27Rousseaux, Michael Esq NEGOTIATION32Onyama Limba
1026Francesco A BowleyItaly2025-05-25Chapman, Ross E Esq UNQUALIFIED55Stephen Shaw
1027James W AmigonItaly2025-06-04King, Christopher A Esq PROPOSAL97Stephen Shaw
1028Leon W WhobreyItaly2025-05-20Rangoni Of Florence UNQUALIFIED39Onyama Limba
1029Greenwood O DoeCanada2025-05-20Truhlar And Truhlar Attys RENEWAL59Asiya Javayant
1030Clifford K WaycottJapan2025-06-01Morlong Associates PROPOSAL82Ioni Bowcher
1031Adams M MacleadGermany2025-05-26King, Christopher A Esq UNQUALIFIED7Elwin Sharvill
1032Emily J WhobreyJapan2025-06-04Feiner Bros PROPOSAL24Anna Fali
1033Tony T ChuiArgentina2025-06-03Truhlar And Truhlar Attys NEW8Bernardo Dominic
1034Tony O CaldareraGermany2025-05-19Printing Dimensions NEW69Ivan Magalhaes
1035Julie M AlbaresItaly2025-06-09King, Christopher A Esq RENEWAL56Onyama Limba
1036Kadeem X FlosiItaly2025-05-26King, Christopher A Esq NEGOTIATION63Amy Elsner
1037Stacey Y NickaAustralia2025-06-14Printing Dimensions UNQUALIFIED93Xuxue Feng
1038Julie I KuskoArgentina2025-05-30Chapman, Ross E Esq QUALIFIED85Stephen Shaw
1039Darci U TollnerBrazil2025-05-31Rousseaux, Michael Esq NEGOTIATION40Onyama Limba
1040Leon D GauchoCanada2025-05-27Chapman, Ross E Esq NEW48Ivan Magalhaes
1041Isabel R VocelkaBrazil2025-05-22Benton, John B Jr NEGOTIATION26Asiya Javayant
1042Francesco N RulapaughSpain2025-05-17Feltz Printing Service UNQUALIFIED39Xuxue Feng
1043Morrow W StensethUnited Kingdom2025-05-22Chemel, James L Cpa QUALIFIED16Anna Fali
1044Murillo T FlosiIndia2025-05-26Rangoni Of Florence UNQUALIFIED80Xuxue Feng
1045Stacey T SaylorsSpain2025-05-16Morlong Associates NEGOTIATION88Asiya Javayant
1046Darci O OldroydArgentina2025-05-16Morlong Associates RENEWAL28Elwin Sharvill
1047Silvio K RimJapan2025-06-12Dorl, James J Esq NEW35Bernardo Dominic
1048Antonio I PoquetteSpain2025-06-02Truhlar And Truhlar Attys QUALIFIED76Anna Fali
1049Adams V InouyeBrazil2025-05-31Chapman, Ross E Esq UNQUALIFIED70Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leon N StockhamBrazilAnna Fali NEGOTIATION
Jefferson C CaudyArgentinaStephen Shaw QUALIFIED
Kadeem V SaylorsBrazilStephen Shaw QUALIFIED
Jones B RoysterJapanStephen Shaw QUALIFIED
David H SchemmerArgentinaElwin Sharvill RENEWAL
Francesco Q MarrierSpainAnna Fali PROPOSAL
Murillo F FlosiRussiaBernardo Dominic UNQUALIFIED
Mujtaba P VocelkaGermanyBernardo Dominic NEGOTIATION
Faith X RoysterAustraliaXuxue Feng NEGOTIATION
Ricardo J InouyeItalyAsiya Javayant NEW
Juan E FigeroaIndiaAnna Fali NEGOTIATION
Clifford Y SergiArgentinaAsiya Javayant NEGOTIATION
Jennifer B VenereFranceElwin Sharvill QUALIFIED
Juan C FollerIndiaIvan Magalhaes RENEWAL
Cody D StockhamJapanIoni Bowcher NEGOTIATION
Ricardo H GauchoUnited KingdomStephen Shaw NEW
Jones E SchemmerArgentinaElwin Sharvill PROPOSAL
Arvin N InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Clifford I DarakjyFranceIoni Bowcher NEGOTIATION
David P ButtJapanIvan Magalhaes QUALIFIED
Cody D RutaCanadaElwin Sharvill PROPOSAL
Costa V DoeAustraliaAnna Fali NEGOTIATION
Munro G SchemmerFranceIoni Bowcher NEW
Nicolas A ShinkoJapanAmy Elsner QUALIFIED
Stacey S BriddickJapanAnna Fali NEW
Mayumi P WaycottCanadaBernardo Dominic PROPOSAL
David P BologniaItalyXuxue Feng RENEWAL
Octavia R MarrierBrazilXuxue Feng PROPOSAL
Julie M VenereIndiaOnyama Limba PROPOSAL
Juan D VocelkaItalyIoni Bowcher QUALIFIED
Costa R GillianArgentinaElwin Sharvill QUALIFIED
Faith W KolmetzGermanyIvan Magalhaes NEGOTIATION
Johnson X TollnerItalyOnyama Limba UNQUALIFIED
Mayumi Q FlosiUnited KingdomAnna Fali RENEWAL
Emily D StensethGermanyStephen Shaw UNQUALIFIED
Misaki B StockhamArgentinaXuxue Feng NEW
Chavez R VocelkaSpainBernardo Dominic NEW
Octavia Z WieserBrazilElwin Sharvill QUALIFIED
Smith F StensethIndiaOnyama Limba NEGOTIATION
Costa I SaylorsRussiaXuxue Feng RENEWAL
Kadeem K ButtBrazilBernardo Dominic NEW
Wickens K BriddickFranceIoni Bowcher NEW
Smith K ButtGermanyAnna Fali NEW
Octavia H AmigonBrazilBernardo Dominic NEGOTIATION
Greenwood T GauchoCanadaElwin Sharvill NEW
Antonio L FerenczArgentinaAnna Fali UNQUALIFIED
Smith F GlickRussiaIoni Bowcher UNQUALIFIED
Kadeem K GlickFranceStephen Shaw QUALIFIED
Darci A CampainRussiaElwin Sharvill QUALIFIED
Francesco W WaycottSpainBernardo Dominic NEW
Frozen Columns
Name
Mayumi I Bolognia
Emily D Caldarera
Leja X Malet
Juan Z Kusko
Mujtaba L Schemmer
Maria K Albares
Munro Y Kusko
Munro K Campain
Francesco A Dilliard
Ricardo N Garufi
Silvio A Chui
Munro X Kusko
Ivar X Slusarski
David O Paprocki
Smith C Marrier
Maisha U Sergi
Chavez X Darakjy
Darci A Caldarera
Smith W Malet
Ashley S Paprocki
Leon R Doe
Smith Q Waycott
Darci Q Gaucho
Ashley Z Stockham
Aditya L Slusarski
Claire V Campain
Maria P Garufi
Adams V Amigon
Alejandro E Saylors
Cody F Caldarera
Smith P Poquette
Jennifer B Stenseth
Murillo L Maclead
Isabel N Marrier
Sinclair I Waycott
Mujtaba D Caudy
Adams Z Poquette
Maisha P Paprocki
Faith P Gillian
Leon X Waycott
Julie Q Vocelka
Aruna K Schemmer
Maisha T Shinko
David Q Ruta
Smith Y Butt
Izzy J Shinko
Jones U Gillian
Leon K Venere
Sinclair W Campain
Mujtaba P Briddick
IdCountryDate
1000Brazil2025-05-31
1001Canada2025-06-05
1002Canada2025-06-14
1003Germany2025-05-27
1004Argentina2025-05-17
1005Japan2025-05-31
1006Italy2025-05-20
1007Japan2025-05-17
1008France2025-05-27
1009Canada2025-06-01
1010Canada2025-05-21
1011Russia2025-06-14
1012Argentina2025-06-05
1013France2025-06-09
1014United Kingdom2025-05-20
1015Spain2025-06-11
1016United Kingdom2025-06-01
1017Argentina2025-05-16
1018Germany2025-06-14
1019Germany2025-05-18
1020Australia2025-06-07
1021Argentina2025-06-03
1022Italy2025-05-23
1023Japan2025-06-12
1024Canada2025-05-16
1025Canada2025-05-26
1026Argentina2025-05-17
1027India2025-05-25
1028France2025-06-02
1029Italy2025-06-12
1030United Kingdom2025-05-31
1031Japan2025-05-19
1032United Kingdom2025-06-04
1033Italy2025-05-22
1034Spain2025-06-06
1035Russia2025-06-07
1036Canada2025-06-04
1037Italy2025-05-18
1038France2025-05-24
1039United Kingdom2025-06-08
1040Brazil2025-05-20
1041Argentina2025-06-10
1042Germany2025-05-25
1043Spain2025-06-13
1044Russia2025-06-05
1045Brazil2025-06-06
1046Italy2025-06-02
1047Russia2025-06-06
1048Australia2025-06-13
1049Russia2025-05-24

On-Demand Data

NameIdCountryDate
Claire O Malet1000Italy2025-06-06
Leja Y Doe1001Spain2025-05-26
Julie D Bowley1002United Kingdom2025-06-08
Stacey F Butt1003Russia2025-06-01
Jennifer G Malet1004Brazil2025-05-17
Ricardo I Bowley1005France2025-06-02
Mayumi W Slusarski1006Argentina2025-06-14
Chavez Q Iturbide1007United Kingdom2025-05-19
Aruna T Wieser1008India2025-05-27
Leon L Nestle1009Italy2025-05-22
Cody P Rim1010India2025-06-03
Smith P Caudy1011India2025-06-13
Morrow N Poquette1012Italy2025-05-25
Faith V Rim1013Canada2025-05-24
Murillo E Figeroa1014Russia2025-06-02
Greenwood Y Doe1015Italy2025-05-31
Aditya Y Doe1016Brazil2025-06-04
Jeanfrancois X Saylors1017India2025-06-11
Maria Y Ferencz1018United Kingdom2025-05-26
Maisha R Bowley1019Italy2025-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika C BowleyJapanAnna Fali NEW
Isabel B RoysterSpainIoni Bowcher NEGOTIATION
Smith V ChuiIndiaIvan Magalhaes UNQUALIFIED
Cody V OstroskyIndiaIvan Magalhaes PROPOSAL
Ivar L FerenczRussiaStephen Shaw UNQUALIFIED
Misaki A MaletCanadaAsiya Javayant QUALIFIED
Adams J PerinBrazilStephen Shaw NEW
Munro A VenereSpainIoni Bowcher PROPOSAL
Maria M RulapaughJapanBernardo Dominic UNQUALIFIED
Aditya G PerinJapanIoni Bowcher RENEWAL
Octavia V KuskoCanadaIvan Magalhaes NEGOTIATION
Silvio K MarrierIndiaElwin Sharvill QUALIFIED
Sinclair O ChuiGermanyIvan Magalhaes NEGOTIATION
Nicolas W FlosiSpainIvan Magalhaes PROPOSAL
Francesco D RutaFranceOnyama Limba NEGOTIATION
Stacey I MorascaBrazilIoni Bowcher NEGOTIATION
Maisha V PaprockiAustraliaAmy Elsner NEGOTIATION
Mayumi B RutaFranceXuxue Feng PROPOSAL
Adams S SaylorsGermanyElwin Sharvill NEW
David K BologniaAustraliaAsiya Javayant UNQUALIFIED
Stacey I CampainUnited KingdomElwin Sharvill PROPOSAL
Tony S WieserUnited KingdomAsiya Javayant NEW
Aruna N SchemmerIndiaAmy Elsner RENEWAL
Jeanfrancois L MarrierItalyStephen Shaw NEGOTIATION
James B CaldareraCanadaElwin Sharvill NEGOTIATION
Ashley Y MaletIndiaAsiya Javayant NEGOTIATION
Murillo X GillianBrazilIvan Magalhaes QUALIFIED
James T GauchoJapanAmy Elsner NEGOTIATION
Cody T PaprockiJapanElwin Sharvill PROPOSAL
Alejandro E RoysterSpainOnyama Limba UNQUALIFIED
Julie Q WaycottFranceOnyama Limba PROPOSAL
Ivar W RutaFranceStephen Shaw UNQUALIFIED
Salvatore C NickaAustraliaXuxue Feng NEW
Octavia B OstroskyIndiaOnyama Limba UNQUALIFIED
Tony O CampainItalyOnyama Limba QUALIFIED
Cody J WieserAustraliaStephen Shaw NEGOTIATION
Stacey Z OstroskyAustraliaOnyama Limba NEW
Leon G FerenczUnited KingdomAmy Elsner NEW
Octavia J MorascaJapanOnyama Limba PROPOSAL
Arvin Y GlickBrazilIoni Bowcher 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>