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
Aditya L StensethCanadaXuxue Feng RENEWAL
Leon Y AlbaresBrazilXuxue Feng NEGOTIATION
Julie A OldroydBrazilIoni Bowcher UNQUALIFIED
Ivar D ShinkoUnited KingdomAmy Elsner PROPOSAL
Clifford F SergiArgentinaXuxue Feng RENEWAL
Tony U BriddickUnited KingdomAmy Elsner NEW
Ashley X FlosiCanadaElwin Sharvill NEGOTIATION
Morrow I FollerUnited KingdomBernardo Dominic NEW
Leja T BowleyCanadaStephen Shaw QUALIFIED
Alejandro M BologniaCanadaXuxue Feng QUALIFIED
Leon I MaletFranceAmy Elsner RENEWAL
Stacey P ShinkoAustraliaStephen Shaw PROPOSAL
Juan D CampainFranceAmy Elsner UNQUALIFIED
Jefferson S MacleadIndiaAsiya Javayant QUALIFIED
Mujtaba V ButtJapanIoni Bowcher RENEWAL
Morrow R ButtIndiaIoni Bowcher NEGOTIATION
Salvatore J GlickJapanAmy Elsner UNQUALIFIED
Faith G GlickRussiaBernardo Dominic RENEWAL
Stacey R SaylorsRussiaIvan Magalhaes NEW
Octavia I DilliardIndiaAsiya Javayant UNQUALIFIED
Nicolas E GarufiBrazilOnyama Limba RENEWAL
Silvio F SergiGermanyElwin Sharvill RENEWAL
Claire F GillianIndiaAnna Fali RENEWAL
Leja T ShinkoArgentinaIvan Magalhaes PROPOSAL
Jones F TollnerArgentinaAnna Fali QUALIFIED
Juan B ChuiBrazilOnyama Limba RENEWAL
Francesco U FerenczBrazilIvan Magalhaes UNQUALIFIED
Morrow F CaldareraJapanIoni Bowcher UNQUALIFIED
Adams F GauchoIndiaAnna Fali PROPOSAL
Arvin C BowleyBrazilStephen Shaw NEGOTIATION
Antonio S CampainArgentinaXuxue Feng PROPOSAL
Aika P WhobreyJapanAnna Fali NEW
Claire F GlickRussiaStephen Shaw NEW
Alejandro L GlickJapanOnyama Limba NEGOTIATION
Stacey I MacleadGermanyIvan Magalhaes NEW
Julie U BriddickAustraliaAsiya Javayant UNQUALIFIED
Silvio U ShinkoBrazilAmy Elsner UNQUALIFIED
Rodrigues P SergiAustraliaBernardo Dominic UNQUALIFIED
Juan N PoquetteItalyElwin Sharvill QUALIFIED
Jefferson B DoeFranceAnna Fali PROPOSAL
Greenwood E TollnerSpainAsiya Javayant RENEWAL
Nicolas V SaylorsGermanyOnyama Limba UNQUALIFIED
Cody O RoysterUnited KingdomIvan Magalhaes PROPOSAL
Silvio I FlosiIndiaAmy Elsner NEGOTIATION
Arvin E WieserJapanIoni Bowcher NEGOTIATION
Ashley E GauchoAustraliaOnyama Limba RENEWAL
Munro F SlusarskiIndiaIoni Bowcher NEGOTIATION
Alejandro W RimItalyXuxue Feng NEW
Ashley P BologniaIndiaElwin Sharvill QUALIFIED
Salvatore D BologniaUnited KingdomAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki M KolmetzFranceElwin Sharvill UNQUALIFIED
Sinclair Q InouyeJapanStephen Shaw RENEWAL
Munro M WaycottJapanIvan Magalhaes NEGOTIATION
Stacey U SaylorsItalyStephen Shaw NEGOTIATION
Julie E RulapaughCanadaIvan Magalhaes NEGOTIATION
Jennifer W WieserCanadaAnna Fali UNQUALIFIED
Cody U GarufiArgentinaOnyama Limba PROPOSAL
Jefferson Z RutaBrazilXuxue Feng QUALIFIED
Morrow G FerenczIndiaStephen Shaw NEW
Faith O MaletRussiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Q StensethUnited Kingdom2025-06-03Rangoni Of Florence NEW30Stephen Shaw
1001Kadeem I CaldareraUnited Kingdom2025-05-30Feiner Bros QUALIFIED30Stephen Shaw
1002Emily U GarufiCanada2025-06-14Chanay, Jeffrey A Esq RENEWAL19Elwin Sharvill
1003Jones S GlickAustralia2025-06-03Morlong Associates PROPOSAL29Ioni Bowcher
1004Nicolas S IturbideIndia2025-06-03Rousseaux, Michael Esq QUALIFIED21Xuxue Feng
1005Ivar X WieserBrazil2025-05-22Printing Dimensions RENEWAL33Asiya Javayant
1006Smith V OldroydFrance2025-06-15Rangoni Of Florence NEW64Stephen Shaw
1007David F StockhamFrance2025-06-04Dorl, James J Esq NEW61Asiya Javayant
1008Faith P RutaIndia2025-06-03Rousseaux, Michael Esq UNQUALIFIED67Xuxue Feng
1009Sinclair C BologniaItaly2025-06-10Rousseaux, Michael Esq NEW61Onyama Limba
1010Stacey A MacleadCanada2025-05-29Commercial Press RENEWAL11Anna Fali
1011Jennifer G BologniaGermany2025-06-11Buckley Miller Wright RENEWAL46Amy Elsner
1012Clifford S SergiRussia2025-06-09Morlong Associates RENEWAL42Elwin Sharvill
1013Leon B OstroskyAustralia2025-05-26Rousseaux, Michael Esq NEW45Elwin Sharvill
1014Rodrigues J StensethSpain2025-05-23Chemel, James L Cpa NEGOTIATION69Stephen Shaw
1015Izzy E TollnerBrazil2025-06-13Rousseaux, Michael Esq QUALIFIED46Bernardo Dominic
1016Emily U KolmetzBrazil2025-06-15Commercial Press NEGOTIATION35Ioni Bowcher
1017Arvin D GarufiBrazil2025-05-30Benton, John B Jr UNQUALIFIED60Ivan Magalhaes
1018Costa Z GauchoAustralia2025-06-04Dorl, James J Esq UNQUALIFIED30Anna Fali
1019Kadeem E FigeroaIndia2025-06-08Rangoni Of Florence NEGOTIATION60Ivan Magalhaes
1020Claire Q RulapaughCanada2025-05-31King, Christopher A Esq QUALIFIED37Bernardo Dominic
1021Misaki I FlosiIndia2025-05-22Chanay, Jeffrey A Esq QUALIFIED11Asiya Javayant
1022Johnson B TollnerCanada2025-06-06King, Christopher A Esq NEGOTIATION59Ivan Magalhaes
1023Cody Q SchemmerGermany2025-05-28Benton, John B Jr NEW53Asiya Javayant
1024Maria N PerinGermany2025-06-07Printing Dimensions NEW75Ivan Magalhaes
1025Jefferson M ShinkoGermany2025-05-20Rousseaux, Michael Esq RENEWAL88Xuxue Feng
1026Tony G RimItaly2025-05-20Commercial Press NEW13Asiya Javayant
1027Cody B GarufiFrance2025-06-13Truhlar And Truhlar Attys UNQUALIFIED36Bernardo Dominic
1028Johnson B GarufiUnited Kingdom2025-06-10Truhlar And Truhlar Attys QUALIFIED94Ivan Magalhaes
1029Adams W GauchoRussia2025-05-26Truhlar And Truhlar Attys NEW56Onyama Limba
1030Mujtaba A WieserAustralia2025-05-22Buckley Miller Wright NEGOTIATION3Ioni Bowcher
1031Morrow H AmigonGermany2025-06-07Morlong Associates NEGOTIATION55Amy Elsner
1032Antonio P StockhamUnited Kingdom2025-06-06Commercial Press PROPOSAL43Ioni Bowcher
1033Salvatore P WaycottJapan2025-05-30Chemel, James L Cpa NEGOTIATION68Ioni Bowcher
1034David L KolmetzUnited Kingdom2025-06-15Chanay, Jeffrey A Esq UNQUALIFIED18Amy Elsner
1035Rodrigues X ShinkoSpain2025-06-01Commercial Press UNQUALIFIED41Stephen Shaw
1036Maisha Y PaprockiIndia2025-05-21Feiner Bros UNQUALIFIED46Asiya Javayant
1037Maria F VenereArgentina2025-05-22Dorl, James J Esq NEGOTIATION73Onyama Limba
1038Kadeem J SergiIndia2025-06-15Truhlar And Truhlar Attys NEW76Anna Fali
1039Nicolas H WaycottBrazil2025-06-04Morlong Associates QUALIFIED95Elwin Sharvill
1040Faith Q BowleyBrazil2025-06-02Commercial Press RENEWAL23Amy Elsner
1041Clifford G VocelkaItaly2025-05-26Truhlar And Truhlar Attys RENEWAL69Elwin Sharvill
1042Smith I InouyeIndia2025-05-23Rousseaux, Michael Esq QUALIFIED31Elwin Sharvill
1043Chavez E SaylorsIndia2025-06-14Chemel, James L Cpa RENEWAL31Ivan Magalhaes
1044Emily Q FlosiGermany2025-05-30Benton, John B Jr QUALIFIED19Amy Elsner
1045Aditya G CampainArgentina2025-06-14Feltz Printing Service PROPOSAL33Bernardo Dominic
1046Kaitlin V CampainIndia2025-05-22Truhlar And Truhlar Attys PROPOSAL64Ioni Bowcher
1047Cody K ChuiArgentina2025-05-19Printing Dimensions UNQUALIFIED56Xuxue Feng
1048Deepesh S MaletFrance2025-05-18Printing Dimensions RENEWAL54Stephen Shaw
1049Leon S VenereRussia2025-06-04Chanay, Jeffrey A Esq PROPOSAL45Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Misaki J FlosiBrazilOnyama Limba RENEWAL
Clifford A MorascaGermanyXuxue Feng QUALIFIED
Juan G SlusarskiGermanyXuxue Feng NEGOTIATION
Mujtaba O FollerIndiaStephen Shaw NEGOTIATION
Antonio X SaylorsIndiaBernardo Dominic QUALIFIED
Sinclair X MorascaItalyXuxue Feng RENEWAL
Rodrigues N SlusarskiAustraliaIvan Magalhaes NEW
Mujtaba P DilliardFranceElwin Sharvill NEW
Antonio D StensethCanadaStephen Shaw QUALIFIED
Jennifer B InouyeRussiaAmy Elsner PROPOSAL
Mujtaba C VenereSpainXuxue Feng NEW
Mujtaba D WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Ivar O DilliardFranceIoni Bowcher RENEWAL
Maria C IturbideArgentinaAmy Elsner UNQUALIFIED
Faith O MorascaCanadaBernardo Dominic QUALIFIED
Jeanfrancois U DoeItalyIvan Magalhaes UNQUALIFIED
Arvin I DoeGermanyXuxue Feng NEW
Antonio P MorascaAustraliaAmy Elsner PROPOSAL
Julie Q CaldareraAustraliaAmy Elsner RENEWAL
Johnson N GillianAustraliaElwin Sharvill RENEWAL
Isabel C VocelkaRussiaAnna Fali QUALIFIED
Deepesh P PoquetteRussiaXuxue Feng NEW
Wickens Y AlbaresRussiaIvan Magalhaes UNQUALIFIED
Jefferson Y OstroskyJapanElwin Sharvill PROPOSAL
Greenwood T VenereFranceIvan Magalhaes NEGOTIATION
Claire A MorascaArgentinaBernardo Dominic QUALIFIED
Ashley T FigeroaBrazilXuxue Feng QUALIFIED
Jefferson K CampainAustraliaBernardo Dominic PROPOSAL
Octavia Q VocelkaUnited KingdomStephen Shaw NEW
Francesco I NickaFranceXuxue Feng RENEWAL
Johnson U BriddickFranceIoni Bowcher NEGOTIATION
Isabel R ChuiIndiaBernardo Dominic UNQUALIFIED
Rodrigues Z StensethBrazilIoni Bowcher RENEWAL
Misaki N WhobreyCanadaStephen Shaw NEW
Stacey X PaprockiJapanXuxue Feng QUALIFIED
Rodrigues N MarrierItalyBernardo Dominic UNQUALIFIED
Ashley H WaycottArgentinaOnyama Limba UNQUALIFIED
Mayumi D KuskoIndiaStephen Shaw NEW
Claire C DilliardRussiaElwin Sharvill QUALIFIED
Jeanfrancois F FollerRussiaXuxue Feng QUALIFIED
David H BologniaJapanAnna Fali UNQUALIFIED
Claire Z WhobreySpainAmy Elsner QUALIFIED
Octavia H InouyeGermanyIoni Bowcher NEW
Maria O BriddickUnited KingdomIvan Magalhaes NEW
Stacey M CaudyJapanAnna Fali NEGOTIATION
Morrow Q FlosiCanadaBernardo Dominic QUALIFIED
Aika H ChuiFranceIvan Magalhaes UNQUALIFIED
Jones C WhobreyUnited KingdomBernardo Dominic RENEWAL
Alejandro D BowleyAustraliaXuxue Feng NEGOTIATION
Cody S WaycottIndiaIoni Bowcher NEW
Frozen Columns
Name
Deepesh N Vocelka
James K Rim
Antonio Y Shinko
Aika W Chui
Kaitlin G Rim
Emily C Glick
Jones T Wieser
Emily L Poquette
Emily U Slusarski
Clifford I Inouye
Greenwood X Bowley
Isabel G Gaucho
Darci W Albares
Murillo K Gaucho
James P Caudy
Kadeem A Vocelka
Ashley L Inouye
Leon N Shinko
Ivar V Bowley
Francesco G Bolognia
Darci Q Gillian
Clifford V Kolmetz
Costa X Amigon
David Y Vocelka
Aditya H Gillian
Sinclair G Sergi
Maisha S Figeroa
James K Glick
Rodrigues P Saylors
Greenwood Q Iturbide
Jefferson T Ruta
Tony S Darakjy
Juan V Waycott
Silvio H Bowley
Deepesh Q Wieser
Clifford S Albares
Ricardo U Kusko
Adams P Rim
Octavia B Schemmer
Munro B Campain
Juan P Darakjy
Leon J Glick
Mujtaba R Caudy
Silvio A Campain
Ashley M Shinko
Johnson X Garufi
Aika T Darakjy
Silvio T Briddick
Juan V Sergi
Ivar S Iturbide
IdCountryDate
1000Canada2025-06-09
1001Russia2025-06-09
1002India2025-05-26
1003Spain2025-06-02
1004Italy2025-05-23
1005Italy2025-05-31
1006Spain2025-06-03
1007Australia2025-05-28
1008Brazil2025-05-24
1009United Kingdom2025-05-27
1010Japan2025-05-31
1011Australia2025-05-22
1012Australia2025-05-24
1013Italy2025-05-27
1014Germany2025-06-12
1015Japan2025-06-11
1016Brazil2025-06-09
1017Brazil2025-06-12
1018United Kingdom2025-06-06
1019Argentina2025-06-06
1020United Kingdom2025-05-28
1021Japan2025-06-05
1022United Kingdom2025-05-29
1023France2025-06-07
1024India2025-05-28
1025Spain2025-06-14
1026Brazil2025-05-20
1027Australia2025-06-05
1028Canada2025-06-02
1029Argentina2025-05-19
1030Italy2025-05-30
1031France2025-06-08
1032Canada2025-06-11
1033United Kingdom2025-06-01
1034United Kingdom2025-05-25
1035Russia2025-06-14
1036Russia2025-06-04
1037Italy2025-06-10
1038Germany2025-05-29
1039Russia2025-05-29
1040France2025-06-06
1041France2025-06-15
1042United Kingdom2025-06-09
1043Brazil2025-05-22
1044Australia2025-06-08
1045Japan2025-06-10
1046Spain2025-05-22
1047France2025-05-19
1048Russia2025-06-05
1049India2025-05-22

On-Demand Data

NameIdCountryDate
Wickens V Bowley1000Spain2025-06-04
Adams G Morasca1001Spain2025-05-30
Wickens Y Bowley1002France2025-06-12
Morrow F Stenseth1003Brazil2025-05-27
James O Malet1004United Kingdom2025-05-22
Aika H Vocelka1005France2025-06-11
Jennifer P Maclead1006Russia2025-05-28
Faith D Rim1007Germany2025-05-29
Antonio P Stockham1008Australia2025-06-12
David H Glick1009Australia2025-06-04
David D Kusko1010Brazil2025-06-11
Stacey M Schemmer1011United Kingdom2025-05-27
Juan R Slusarski1012Australia2025-05-23
Nicolas Q Poquette1013Germany2025-06-11
Sinclair S Malet1014Russia2025-05-19
Leon L Oldroyd1015India2025-06-15
Murillo U Darakjy1016India2025-05-20
Julie C Glick1017Argentina2025-06-11
Aika T Figeroa1018United Kingdom2025-05-28
Cody M Morasca1019Germany2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Z FigeroaAustraliaOnyama Limba NEGOTIATION
Mayumi M OstroskyCanadaStephen Shaw UNQUALIFIED
Leon A SaylorsAustraliaIoni Bowcher NEGOTIATION
Kaitlin B GlickRussiaXuxue Feng UNQUALIFIED
Murillo F RutaFranceBernardo Dominic QUALIFIED
Smith D PerinAustraliaStephen Shaw QUALIFIED
Isabel C DilliardIndiaIvan Magalhaes NEGOTIATION
Tony X CampainSpainElwin Sharvill NEGOTIATION
Octavia E ChuiItalyAmy Elsner RENEWAL
Izzy T RoysterArgentinaBernardo Dominic QUALIFIED
Munro D NickaCanadaAmy Elsner UNQUALIFIED
Wickens Z StockhamFranceAnna Fali QUALIFIED
Kaitlin S BriddickRussiaBernardo Dominic PROPOSAL
Greenwood L KolmetzAustraliaAnna Fali NEGOTIATION
Jennifer R VenereRussiaIvan Magalhaes UNQUALIFIED
Murillo M NestleUnited KingdomAmy Elsner RENEWAL
Tony L NickaUnited KingdomIvan Magalhaes NEW
Jeanfrancois V PoquetteArgentinaAsiya Javayant PROPOSAL
Kadeem P BriddickFranceIoni Bowcher NEW
Munro Y DilliardFranceBernardo Dominic RENEWAL
Cody J NickaRussiaOnyama Limba UNQUALIFIED
David B StensethAustraliaIvan Magalhaes RENEWAL
Aruna Z ButtItalyBernardo Dominic NEGOTIATION
Mayumi J OstroskyRussiaAmy Elsner NEW
Kaitlin S TollnerSpainXuxue Feng NEGOTIATION
Stacey M ChuiBrazilAsiya Javayant UNQUALIFIED
Costa I SlusarskiAustraliaBernardo Dominic RENEWAL
Alejandro X OstroskyBrazilAnna Fali PROPOSAL
Rodrigues Z DarakjyIndiaIvan Magalhaes UNQUALIFIED
Kaitlin Z FlosiFranceIoni Bowcher RENEWAL
Chavez T PaprockiAustraliaElwin Sharvill PROPOSAL
Jennifer G MarrierGermanyAsiya Javayant NEGOTIATION
Wickens Q FigeroaArgentinaAmy Elsner NEGOTIATION
Rodrigues N OldroydGermanyIoni Bowcher QUALIFIED
Munro A TollnerItalyAnna Fali NEW
Morrow P WaycottItalyIvan Magalhaes NEW
Antonio K OldroydAustraliaXuxue Feng NEW
Costa Y VenereRussiaXuxue Feng NEW
Adams P RimBrazilOnyama Limba QUALIFIED
Sinclair N DilliardFranceAsiya Javayant RENEWAL

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