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
Kadeem N BologniaAustraliaAsiya Javayant UNQUALIFIED
Emily T AlbaresCanadaBernardo Dominic QUALIFIED
Isabel H PoquetteBrazilIoni Bowcher NEGOTIATION
Misaki V CaudyIndiaAsiya Javayant UNQUALIFIED
Greenwood M DarakjyRussiaAmy Elsner RENEWAL
Maria V CaldareraJapanIoni Bowcher NEGOTIATION
Smith D WhobreyRussiaStephen Shaw NEW
Misaki D OldroydAustraliaAmy Elsner PROPOSAL
Salvatore Y BriddickArgentinaBernardo Dominic RENEWAL
Rodrigues H ButtArgentinaXuxue Feng QUALIFIED
Tony L FlosiRussiaAnna Fali RENEWAL
Morrow P PaprockiJapanBernardo Dominic UNQUALIFIED
Darci B InouyeAustraliaBernardo Dominic NEGOTIATION
Darci W VenereIndiaAnna Fali UNQUALIFIED
Aditya P RulapaughGermanyXuxue Feng QUALIFIED
Wickens V IturbideItalyXuxue Feng QUALIFIED
Arvin N FerenczRussiaStephen Shaw RENEWAL
Salvatore D AlbaresRussiaAmy Elsner NEW
Rodrigues G InouyeIndiaXuxue Feng RENEWAL
Kaitlin U CaldareraJapanAsiya Javayant NEW
Adams V AlbaresIndiaAmy Elsner NEGOTIATION
Maria I KuskoSpainStephen Shaw QUALIFIED
Francesco K MaletSpainIvan Magalhaes NEW
Isabel E NickaJapanOnyama Limba UNQUALIFIED
Julie D SlusarskiItalyIvan Magalhaes UNQUALIFIED
Leon H DarakjySpainIoni Bowcher PROPOSAL
Mujtaba L SlusarskiGermanyOnyama Limba NEGOTIATION
Isabel B MorascaRussiaIoni Bowcher NEGOTIATION
Deepesh M MacleadAustraliaStephen Shaw NEGOTIATION
Jones T NestleIndiaXuxue Feng RENEWAL
Deepesh C GarufiArgentinaAnna Fali NEW
Juan C RimJapanOnyama Limba RENEWAL
Juan X ButtGermanyIvan Magalhaes NEGOTIATION
Kaitlin E RutaArgentinaIoni Bowcher NEGOTIATION
Emily N FollerSpainAsiya Javayant QUALIFIED
Izzy Q RimJapanAnna Fali QUALIFIED
Jones W StockhamIndiaAmy Elsner PROPOSAL
Kaitlin M WaycottUnited KingdomXuxue Feng QUALIFIED
Tony D StensethBrazilAsiya Javayant QUALIFIED
Costa A SlusarskiGermanyAmy Elsner RENEWAL
Tony S AlbaresCanadaAmy Elsner UNQUALIFIED
Octavia Z MaletItalyElwin Sharvill NEGOTIATION
Rodrigues T ChuiArgentinaAnna Fali QUALIFIED
Alejandro L MarrierRussiaStephen Shaw NEGOTIATION
Aditya S FollerArgentinaStephen Shaw QUALIFIED
Nicolas Y FollerCanadaIvan Magalhaes PROPOSAL
Wickens R DilliardFranceAsiya Javayant PROPOSAL
Faith N GillianIndiaOnyama Limba UNQUALIFIED
Antonio E VenereUnited KingdomStephen Shaw PROPOSAL
Aika B WieserUnited KingdomAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia N BriddickSpainAnna Fali NEW
Johnson K ShinkoSpainIvan Magalhaes PROPOSAL
Morrow R SaylorsCanadaAsiya Javayant NEW
Emily S KuskoCanadaOnyama Limba PROPOSAL
Mujtaba L IturbideAustraliaStephen Shaw UNQUALIFIED
Ivar B StensethAustraliaAmy Elsner UNQUALIFIED
Sinclair D IturbideCanadaAsiya Javayant QUALIFIED
Munro V GillianAustraliaAmy Elsner PROPOSAL
Ricardo B NestleItalyBernardo Dominic RENEWAL
Arvin C CaudyJapanBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh X DilliardGermany2025-06-13Feltz Printing Service PROPOSAL42Xuxue Feng
1001Wickens G WhobreyCanada2025-06-10Rousseaux, Michael Esq NEW89Onyama Limba
1002Aruna O StockhamUnited Kingdom2025-06-06King, Christopher A Esq NEGOTIATION14Asiya Javayant
1003Leon K GlickSpain2025-06-16Dorl, James J Esq UNQUALIFIED89Asiya Javayant
1004Ivar P RoysterCanada2025-06-16Morlong Associates UNQUALIFIED70Bernardo Dominic
1005Sinclair A GillianIndia2025-05-22Rangoni Of Florence UNQUALIFIED85Stephen Shaw
1006Leon V StensethArgentina2025-06-13Chapman, Ross E Esq PROPOSAL64Anna Fali
1007Kadeem D GauchoBrazil2025-06-14Chanay, Jeffrey A Esq NEW89Asiya Javayant
1008Nicolas S BowleyRussia2025-05-22Chapman, Ross E Esq UNQUALIFIED39Ioni Bowcher
1009Aika A SlusarskiGermany2025-05-25Feiner Bros NEGOTIATION12Stephen Shaw
1010Maria J DoeFrance2025-06-13King, Christopher A Esq RENEWAL22Elwin Sharvill
1011Aditya O MaletBrazil2025-05-28Buckley Miller Wright QUALIFIED41Ioni Bowcher
1012Chavez C WhobreyIndia2025-05-25Printing Dimensions NEW84Amy Elsner
1013Smith Q SlusarskiArgentina2025-06-05Rousseaux, Michael Esq UNQUALIFIED5Ioni Bowcher
1014Maisha G NickaCanada2025-06-12Chanay, Jeffrey A Esq PROPOSAL8Elwin Sharvill
1015Greenwood W IturbideUnited Kingdom2025-06-06Benton, John B Jr UNQUALIFIED78Xuxue Feng
1016Silvio Y CaldareraGermany2025-05-27Truhlar And Truhlar Attys PROPOSAL24Xuxue Feng
1017Salvatore Q FigeroaBrazil2025-06-15King, Christopher A Esq RENEWAL14Onyama Limba
1018Juan N SergiJapan2025-06-03Chemel, James L Cpa QUALIFIED18Onyama Limba
1019Costa P PaprockiBrazil2025-05-20Chemel, James L Cpa NEGOTIATION57Xuxue Feng
1020Claire N AmigonGermany2025-06-02Feltz Printing Service NEW27Anna Fali
1021Emily U OldroydJapan2025-06-05Chapman, Ross E Esq NEW46Bernardo Dominic
1022Sinclair U TollnerUnited Kingdom2025-06-15Feiner Bros QUALIFIED52Elwin Sharvill
1023Maisha Z SergiBrazil2025-06-10Feltz Printing Service NEGOTIATION95Anna Fali
1024Salvatore G CaldareraFrance2025-05-30Buckley Miller Wright NEGOTIATION9Ivan Magalhaes
1025Maisha I FigeroaItaly2025-06-08Rangoni Of Florence NEW41Bernardo Dominic
1026Francesco F GlickIndia2025-06-04Chanay, Jeffrey A Esq NEW75Stephen Shaw
1027Stacey Q FollerRussia2025-06-11Feltz Printing Service RENEWAL57Onyama Limba
1028Francesco V FerenczAustralia2025-06-08Benton, John B Jr NEGOTIATION98Onyama Limba
1029Francesco J FerenczSpain2025-05-20Chemel, James L Cpa NEW54Anna Fali
1030Kadeem S IturbideUnited Kingdom2025-06-01Dorl, James J Esq NEGOTIATION87Elwin Sharvill
1031Faith J AlbaresUnited Kingdom2025-06-01Benton, John B Jr UNQUALIFIED90Bernardo Dominic
1032Johnson J BriddickJapan2025-05-23Rousseaux, Michael Esq PROPOSAL31Onyama Limba
1033Nicolas A FerenczCanada2025-06-06Rangoni Of Florence NEGOTIATION55Stephen Shaw
1034Ricardo M StockhamUnited Kingdom2025-05-26Printing Dimensions RENEWAL69Xuxue Feng
1035Faith C SlusarskiItaly2025-05-19Rangoni Of Florence PROPOSAL28Xuxue Feng
1036Isabel O FollerFrance2025-06-03Feiner Bros PROPOSAL40Elwin Sharvill
1037Nicolas W AmigonJapan2025-05-20King, Christopher A Esq NEW91Ivan Magalhaes
1038Juan A RulapaughGermany2025-06-04Buckley Miller Wright UNQUALIFIED23Bernardo Dominic
1039Munro Z NickaArgentina2025-05-26Benton, John B Jr QUALIFIED4Elwin Sharvill
1040Kadeem M FlosiFrance2025-05-25Benton, John B Jr UNQUALIFIED21Elwin Sharvill
1041Costa H DoeUnited Kingdom2025-06-05Dorl, James J Esq PROPOSAL27Stephen Shaw
1042Aditya H PaprockiAustralia2025-06-07Rousseaux, Michael Esq RENEWAL14Anna Fali
1043Deepesh B ChuiCanada2025-06-07Morlong Associates QUALIFIED51Onyama Limba
1044Johnson K DilliardJapan2025-05-22Printing Dimensions NEW10Anna Fali
1045Octavia Y DarakjyAustralia2025-06-02Printing Dimensions QUALIFIED9Bernardo Dominic
1046Chavez F OldroydBrazil2025-06-14Dorl, James J Esq NEW17Bernardo Dominic
1047James Z PoquetteRussia2025-05-23Commercial Press QUALIFIED56Ioni Bowcher
1048Adams X OstroskyArgentina2025-05-21Dorl, James J Esq NEGOTIATION56Xuxue Feng
1049Nicolas W SlusarskiSpain2025-05-23Feiner Bros PROPOSAL69Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues M BowleyGermanyElwin Sharvill UNQUALIFIED
Tony K VocelkaFranceIoni Bowcher QUALIFIED
Costa Z KolmetzIndiaElwin Sharvill QUALIFIED
Costa S FlosiArgentinaOnyama Limba QUALIFIED
Smith S RoysterCanadaBernardo Dominic NEW
Aditya S StockhamRussiaAsiya Javayant UNQUALIFIED
Emily J CaudyRussiaIoni Bowcher QUALIFIED
Antonio I SlusarskiRussiaStephen Shaw NEW
Johnson G ButtFranceAmy Elsner UNQUALIFIED
Ricardo S PoquetteAustraliaIvan Magalhaes NEGOTIATION
Stacey G ChuiAustraliaOnyama Limba NEW
Jones I MorascaItalyXuxue Feng QUALIFIED
Ivar U RimCanadaIvan Magalhaes PROPOSAL
James S RoysterArgentinaXuxue Feng RENEWAL
Jones B StensethBrazilAmy Elsner UNQUALIFIED
Salvatore S CaudyFranceStephen Shaw PROPOSAL
Salvatore R GlickArgentinaIvan Magalhaes RENEWAL
Kaitlin G ButtIndiaAsiya Javayant UNQUALIFIED
Leja Y InouyeUnited KingdomStephen Shaw QUALIFIED
Aika X NestleBrazilBernardo Dominic QUALIFIED
Antonio X OstroskyRussiaIvan Magalhaes QUALIFIED
Rodrigues A DilliardBrazilAnna Fali NEW
David F RutaUnited KingdomIoni Bowcher PROPOSAL
Rodrigues K RulapaughCanadaAmy Elsner RENEWAL
Octavia M BriddickAustraliaStephen Shaw QUALIFIED
Aditya D GauchoGermanyBernardo Dominic NEGOTIATION
Jeanfrancois K KolmetzUnited KingdomXuxue Feng QUALIFIED
Smith K AlbaresBrazilIvan Magalhaes NEW
Sinclair V PaprockiGermanyAsiya Javayant QUALIFIED
Johnson N MorascaAustraliaXuxue Feng PROPOSAL
Arvin Z ButtAustraliaOnyama Limba NEGOTIATION
Mayumi D RulapaughBrazilAsiya Javayant NEGOTIATION
Ricardo R VenereIndiaBernardo Dominic QUALIFIED
Murillo U MaletCanadaAsiya Javayant UNQUALIFIED
Mayumi Y SergiUnited KingdomStephen Shaw PROPOSAL
Maisha K FerenczCanadaElwin Sharvill NEGOTIATION
Jennifer T BologniaIndiaAnna Fali RENEWAL
Antonio F OldroydFranceStephen Shaw UNQUALIFIED
Julie Y NickaSpainIoni Bowcher RENEWAL
Morrow D GarufiBrazilStephen Shaw NEGOTIATION
Sinclair S MarrierArgentinaAmy Elsner NEGOTIATION
Jones E OstroskyJapanXuxue Feng UNQUALIFIED
Smith Y GlickItalyIoni Bowcher RENEWAL
Julie G DoeGermanyBernardo Dominic UNQUALIFIED
Maisha U SaylorsBrazilStephen Shaw UNQUALIFIED
Munro S CaldareraJapanStephen Shaw NEW
Mujtaba T KuskoRussiaIoni Bowcher RENEWAL
Silvio S SchemmerCanadaAmy Elsner RENEWAL
Salvatore P FollerSpainStephen Shaw NEGOTIATION
Tony S SergiGermanyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Arvin X Ruta
Ivar G Bowley
Leja K Kolmetz
Chavez I Briddick
Juan B Albares
Alejandro K Wieser
Isabel D Garufi
Salvatore U Marrier
Arvin W Perin
Murillo L Kusko
Misaki M Stockham
Julie M Briddick
Jeanfrancois J Campain
Jones S Waycott
Jeanfrancois W Doe
Jeanfrancois N Darakjy
Juan N Ostrosky
Morrow L Wieser
Izzy K Garufi
Isabel W Bolognia
Deepesh L Whobrey
James E Ruta
Faith M Butt
Darci O Dilliard
Maria V Venere
Nicolas I Whobrey
Jefferson U Campain
Greenwood U Albares
Ricardo Y Chui
Mujtaba V Iturbide
Smith L Doe
Cody O Venere
Faith T Malet
Isabel D Waycott
Rodrigues O Ostrosky
Stacey W Slusarski
Deepesh T Oldroyd
Murillo Q Campain
Claire U Wieser
Silvio Z Ruta
Stacey L Nicka
Julie W Nicka
Munro Z Nestle
Jennifer W Flosi
Leon G Gaucho
Ashley K Caldarera
Jefferson X Malet
Munro O Shinko
Smith F Gaucho
Kaitlin K Marrier
IdCountryDate
1000Canada2025-06-03
1001Australia2025-06-16
1002United Kingdom2025-05-24
1003India2025-05-19
1004Italy2025-05-31
1005Brazil2025-06-04
1006Spain2025-05-26
1007France2025-05-23
1008United Kingdom2025-05-31
1009Brazil2025-05-31
1010Germany2025-05-18
1011Australia2025-06-16
1012Spain2025-05-25
1013United Kingdom2025-05-27
1014France2025-05-19
1015Canada2025-05-29
1016Russia2025-05-18
1017Russia2025-05-31
1018Japan2025-05-19
1019India2025-05-18
1020Russia2025-05-30
1021France2025-05-24
1022Canada2025-06-11
1023Australia2025-06-05
1024United Kingdom2025-06-15
1025India2025-06-10
1026France2025-05-30
1027India2025-05-30
1028Spain2025-06-07
1029Spain2025-06-05
1030Russia2025-05-25
1031Canada2025-05-22
1032Spain2025-06-05
1033France2025-05-27
1034Australia2025-05-22
1035Canada2025-05-18
1036Brazil2025-06-16
1037Japan2025-05-27
1038Italy2025-05-22
1039Australia2025-05-22
1040Brazil2025-05-25
1041Canada2025-06-14
1042India2025-06-13
1043Australia2025-05-27
1044Japan2025-05-21
1045Italy2025-05-26
1046France2025-05-31
1047Russia2025-05-29
1048Japan2025-06-05
1049France2025-06-15

On-Demand Data

NameIdCountryDate
Ivar N Amigon1000Brazil2025-06-06
Silvio G Venere1001Italy2025-06-12
Isabel Z Whobrey1002France2025-06-15
Stacey E Glick1003Italy2025-05-28
Costa I Foller1004Canada2025-06-15
Octavia T Paprocki1005India2025-05-31
Adams K Doe1006Argentina2025-06-11
Jeanfrancois N Shinko1007Spain2025-05-24
Greenwood K Inouye1008Germany2025-05-20
Smith A Stockham1009Russia2025-05-31
Cody Z Slusarski1010India2025-06-13
Antonio S Vocelka1011Canada2025-06-13
Costa C Royster1012United Kingdom2025-06-07
Stacey N Sergi1013Japan2025-05-20
Kadeem D Slusarski1014Spain2025-05-23
Silvio Z Rim1015France2025-05-24
Leon O Waycott1016Germany2025-05-20
Alejandro S Caldarera1017Australia2025-05-31
Salvatore S Perin1018Japan2025-06-12
Francesco Y Albares1019France2025-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika J BologniaAustraliaStephen Shaw NEGOTIATION
Morrow H InouyeFranceOnyama Limba PROPOSAL
James B StensethBrazilElwin Sharvill QUALIFIED
Greenwood S OstroskyIndiaElwin Sharvill RENEWAL
Aika J SchemmerGermanyIvan Magalhaes RENEWAL
Maisha M BologniaRussiaAsiya Javayant NEGOTIATION
Darci T VenereCanadaIvan Magalhaes NEW
Wickens G StockhamCanadaAsiya Javayant NEW
Mayumi D FollerRussiaAsiya Javayant NEGOTIATION
Chavez M SergiCanadaElwin Sharvill RENEWAL
Tony U GlickCanadaElwin Sharvill NEW
Leja S SaylorsJapanAsiya Javayant UNQUALIFIED
Cody W BriddickIndiaAsiya Javayant RENEWAL
Kadeem D IturbideAustraliaXuxue Feng RENEWAL
Leon Y OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Chavez Y MacleadBrazilElwin Sharvill NEW
Arvin V PerinIndiaAsiya Javayant QUALIFIED
Stacey H StockhamGermanyAsiya Javayant PROPOSAL
Jones L GarufiRussiaBernardo Dominic QUALIFIED
Izzy B MacleadBrazilIvan Magalhaes PROPOSAL
Deepesh P RulapaughSpainIoni Bowcher NEW
Ricardo C MarrierFranceElwin Sharvill NEW
Jeanfrancois Z MarrierJapanElwin Sharvill NEW
James X FlosiBrazilIvan Magalhaes QUALIFIED
Tony O AlbaresIndiaAnna Fali UNQUALIFIED
Silvio N CampainCanadaXuxue Feng PROPOSAL
Greenwood E VenereBrazilIvan Magalhaes UNQUALIFIED
Jennifer T AlbaresJapanAmy Elsner UNQUALIFIED
Deepesh A VocelkaFranceAsiya Javayant NEW
James X GauchoRussiaOnyama Limba PROPOSAL
Leon D RimIndiaIvan Magalhaes QUALIFIED
Julie K MaletUnited KingdomXuxue Feng NEW
Clifford W PaprockiRussiaAsiya Javayant UNQUALIFIED
Greenwood Q CaudyIndiaAmy Elsner QUALIFIED
David C MaletRussiaIvan Magalhaes NEW
Jennifer Z SchemmerUnited KingdomElwin Sharvill QUALIFIED
Costa P GauchoGermanyIvan Magalhaes NEW
Deepesh F VocelkaFranceIvan Magalhaes NEGOTIATION
David F RoysterCanadaStephen Shaw RENEWAL
Emily T RutaUnited KingdomOnyama Limba 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>