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
Octavia S DilliardItalyIvan Magalhaes NEGOTIATION
Octavia H MaletSpainStephen Shaw UNQUALIFIED
Claire E AmigonRussiaIvan Magalhaes RENEWAL
Mujtaba U WieserUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi P MarrierRussiaAnna Fali UNQUALIFIED
Julie N SaylorsCanadaStephen Shaw UNQUALIFIED
Mayumi K VocelkaFranceAnna Fali NEW
Aditya X IturbideArgentinaAsiya Javayant PROPOSAL
Mujtaba R WhobreyIndiaIoni Bowcher PROPOSAL
Salvatore H RutaFranceXuxue Feng NEW
Munro V DarakjySpainAsiya Javayant RENEWAL
Francesco P GillianIndiaAmy Elsner QUALIFIED
Maria G StockhamItalyXuxue Feng NEW
Nicolas R InouyeUnited KingdomIoni Bowcher RENEWAL
James S SlusarskiIndiaIvan Magalhaes RENEWAL
Rodrigues V VenereUnited KingdomXuxue Feng NEW
Maria W DilliardItalyAsiya Javayant UNQUALIFIED
Alejandro P VenereArgentinaAnna Fali RENEWAL
David A BriddickIndiaStephen Shaw NEGOTIATION
Ricardo M FollerBrazilAmy Elsner PROPOSAL
Salvatore O AlbaresRussiaAsiya Javayant UNQUALIFIED
Kadeem Z GillianCanadaXuxue Feng PROPOSAL
Mujtaba O WhobreyIndiaAmy Elsner UNQUALIFIED
Kaitlin Z BriddickCanadaElwin Sharvill NEW
Jones U InouyeAustraliaIvan Magalhaes NEGOTIATION
Ricardo R StensethSpainStephen Shaw NEW
Alejandro C TollnerUnited KingdomAnna Fali UNQUALIFIED
Tony T GlickBrazilBernardo Dominic QUALIFIED
Misaki W BologniaGermanyAsiya Javayant NEGOTIATION
Jones K CampainSpainOnyama Limba RENEWAL
Maria L OldroydItalyXuxue Feng UNQUALIFIED
Izzy Z ChuiUnited KingdomAmy Elsner RENEWAL
Kaitlin O BriddickAustraliaBernardo Dominic UNQUALIFIED
Maria W DilliardGermanyIvan Magalhaes QUALIFIED
Morrow L MorascaIndiaAsiya Javayant NEGOTIATION
Izzy M GarufiFranceOnyama Limba NEGOTIATION
Julie C GarufiIndiaOnyama Limba PROPOSAL
Mayumi T CaldareraItalyXuxue Feng UNQUALIFIED
Jennifer Z FerenczRussiaIoni Bowcher RENEWAL
Clifford Y CaudyCanadaAsiya Javayant NEGOTIATION
Alejandro D SaylorsArgentinaAsiya Javayant NEGOTIATION
Morrow F VenereSpainElwin Sharvill UNQUALIFIED
Jefferson O FigeroaAustraliaAsiya Javayant NEGOTIATION
Ashley S OldroydSpainXuxue Feng QUALIFIED
Aditya K MorascaJapanIvan Magalhaes RENEWAL
Aditya O FigeroaRussiaAmy Elsner NEW
Johnson P GauchoJapanAnna Fali NEGOTIATION
Julie P StockhamJapanElwin Sharvill NEGOTIATION
Mujtaba E NickaFranceXuxue Feng UNQUALIFIED
Claire T ButtIndiaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro C RoysterAustraliaIvan Magalhaes PROPOSAL
Rodrigues M VenereAustraliaAmy Elsner NEGOTIATION
Mujtaba L ShinkoGermanyElwin Sharvill UNQUALIFIED
Maria Z SergiGermanyAsiya Javayant QUALIFIED
Clifford K FerenczFranceStephen Shaw NEW
Chavez M WhobreyAustraliaBernardo Dominic RENEWAL
Clifford Y DoeGermanyAnna Fali UNQUALIFIED
David Y BowleyAustraliaXuxue Feng UNQUALIFIED
Aika P WaycottCanadaIvan Magalhaes PROPOSAL
Alejandro A DilliardFranceBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio T BologniaFrance2024-05-27Chapman, Ross E Esq NEGOTIATION95Ivan Magalhaes
1001Mayumi O MaletItaly2024-06-02Rousseaux, Michael Esq NEW0Amy Elsner
1002Misaki H WaycottFrance2024-06-02Dorl, James J Esq NEW66Xuxue Feng
1003Claire N WaycottSpain2024-06-02Benton, John B Jr NEW95Stephen Shaw
1004Munro O ButtFrance2024-06-18Morlong Associates RENEWAL36Asiya Javayant
1005Faith U CaudySpain2024-05-26Truhlar And Truhlar Attys PROPOSAL95Amy Elsner
1006Clifford K GauchoArgentina2024-06-20Printing Dimensions QUALIFIED64Xuxue Feng
1007Darci T VocelkaCanada2024-06-20Morlong Associates UNQUALIFIED63Xuxue Feng
1008Sinclair F CaudyAustralia2024-06-15Truhlar And Truhlar Attys QUALIFIED41Onyama Limba
1009Johnson I SlusarskiGermany2024-05-23Feltz Printing Service PROPOSAL63Ivan Magalhaes
1010Mujtaba G FigeroaJapan2024-05-27Truhlar And Truhlar Attys UNQUALIFIED36Ioni Bowcher
1011Kadeem D RimFrance2024-05-22Printing Dimensions PROPOSAL69Ivan Magalhaes
1012Alejandro U CaudyArgentina2024-06-02Morlong Associates RENEWAL47Elwin Sharvill
1013Costa R PerinBrazil2024-06-13Benton, John B Jr UNQUALIFIED44Ivan Magalhaes
1014Chavez E BriddickRussia2024-05-24Dorl, James J Esq UNQUALIFIED8Ivan Magalhaes
1015Juan D OstroskyCanada2024-06-15Feltz Printing Service NEGOTIATION58Bernardo Dominic
1016Chavez C DoeFrance2024-06-12Commercial Press NEGOTIATION0Amy Elsner
1017Darci F VenereJapan2024-05-30Rangoni Of Florence NEGOTIATION99Onyama Limba
1018Clifford L TollnerRussia2024-05-27Chanay, Jeffrey A Esq NEGOTIATION40Amy Elsner
1019Emily P DarakjyIndia2024-06-18King, Christopher A Esq NEGOTIATION53Ioni Bowcher
1020Clifford C DoeBrazil2024-06-14Rangoni Of Florence NEW52Ioni Bowcher
1021Faith J VocelkaIndia2024-06-14Rangoni Of Florence UNQUALIFIED47Ivan Magalhaes
1022Silvio P WieserAustralia2024-06-08Dorl, James J Esq NEW27Xuxue Feng
1023Izzy I MaletBrazil2024-06-01Dorl, James J Esq NEW62Amy Elsner
1024Izzy G SlusarskiArgentina2024-06-18Rangoni Of Florence UNQUALIFIED70Stephen Shaw
1025Morrow A ButtAustralia2024-06-08Commercial Press RENEWAL35Anna Fali
1026Francesco I FlosiFrance2024-06-11Truhlar And Truhlar Attys PROPOSAL97Ioni Bowcher
1027Kaitlin N SlusarskiIndia2024-06-10Chanay, Jeffrey A Esq RENEWAL17Asiya Javayant
1028Ashley G KolmetzCanada2024-05-26Buckley Miller Wright UNQUALIFIED37Bernardo Dominic
1029Clifford D GlickJapan2024-06-20Chanay, Jeffrey A Esq NEW44Ivan Magalhaes
1030Mayumi S MaletUnited Kingdom2024-06-07Chemel, James L Cpa NEW92Anna Fali
1031Mujtaba G NestleSpain2024-05-25Morlong Associates RENEWAL64Amy Elsner
1032Octavia H NestleBrazil2024-06-11Truhlar And Truhlar Attys NEW2Stephen Shaw
1033Arvin E VocelkaBrazil2024-06-04Feltz Printing Service UNQUALIFIED57Xuxue Feng
1034Stacey C GlickUnited Kingdom2024-06-12Rousseaux, Michael Esq PROPOSAL74Onyama Limba
1035Costa J ShinkoGermany2024-05-29King, Christopher A Esq PROPOSAL21Bernardo Dominic
1036Costa V PerinUnited Kingdom2024-06-09Dorl, James J Esq NEW70Elwin Sharvill
1037Munro S MorascaJapan2024-06-13Chanay, Jeffrey A Esq PROPOSAL84Ivan Magalhaes
1038Deepesh N SlusarskiBrazil2024-06-15Chemel, James L Cpa NEGOTIATION78Elwin Sharvill
1039Ashley B DilliardArgentina2024-05-23Chanay, Jeffrey A Esq NEW10Asiya Javayant
1040Jennifer Q SergiSpain2024-06-10Chanay, Jeffrey A Esq NEGOTIATION36Ivan Magalhaes
1041James S FlosiAustralia2024-06-10Benton, John B Jr NEGOTIATION28Ioni Bowcher
1042Sinclair Z RoysterFrance2024-06-02Dorl, James J Esq UNQUALIFIED78Ivan Magalhaes
1043Greenwood V SaylorsSpain2024-05-27Chanay, Jeffrey A Esq NEGOTIATION69Xuxue Feng
1044Francesco N FollerJapan2024-06-12Printing Dimensions QUALIFIED76Stephen Shaw
1045Darci B DoeFrance2024-06-15King, Christopher A Esq PROPOSAL60Ivan Magalhaes
1046Juan T GarufiJapan2024-06-06Buckley Miller Wright QUALIFIED48Stephen Shaw
1047Stacey B RimCanada2024-06-10Truhlar And Truhlar Attys RENEWAL82Ioni Bowcher
1048Kadeem M BowleyJapan2024-06-18King, Christopher A Esq RENEWAL86Xuxue Feng
1049Emily L MacleadCanada2024-05-30Rousseaux, Michael Esq QUALIFIED94Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow F DilliardRussiaAnna Fali PROPOSAL
Greenwood H AmigonCanadaOnyama Limba RENEWAL
Jones Z StockhamIndiaAmy Elsner NEGOTIATION
Kaitlin M NestleSpainStephen Shaw PROPOSAL
Julie O AlbaresArgentinaXuxue Feng PROPOSAL
Munro R FlosiItalyBernardo Dominic UNQUALIFIED
Silvio E ChuiArgentinaXuxue Feng UNQUALIFIED
Jennifer F GauchoUnited KingdomAmy Elsner PROPOSAL
Octavia G FollerUnited KingdomAmy Elsner QUALIFIED
Juan C FollerFranceIoni Bowcher UNQUALIFIED
Maria E GlickItalyIvan Magalhaes QUALIFIED
Munro S ButtGermanyAmy Elsner NEW
Arvin E AmigonSpainElwin Sharvill QUALIFIED
Mujtaba D BologniaFranceAnna Fali UNQUALIFIED
Jennifer W WaycottGermanyIoni Bowcher UNQUALIFIED
Morrow T PaprockiBrazilBernardo Dominic UNQUALIFIED
Cody Q RoysterFranceBernardo Dominic UNQUALIFIED
Mujtaba B PoquetteFranceIoni Bowcher RENEWAL
Costa L MaletRussiaXuxue Feng UNQUALIFIED
Francesco T StensethCanadaAmy Elsner NEGOTIATION
Jefferson L OstroskySpainXuxue Feng NEW
Jeanfrancois Z DarakjyCanadaBernardo Dominic PROPOSAL
Stacey O RulapaughSpainIoni Bowcher UNQUALIFIED
Ivar U StensethAustraliaAmy Elsner QUALIFIED
Leja E BowleyItalyXuxue Feng QUALIFIED
Ashley H RulapaughGermanyXuxue Feng RENEWAL
Stacey W TollnerSpainXuxue Feng NEW
Salvatore V SaylorsArgentinaXuxue Feng NEGOTIATION
Salvatore Q MarrierRussiaIvan Magalhaes NEW
Adams T GillianIndiaIvan Magalhaes QUALIFIED
Kadeem Y RutaFranceElwin Sharvill NEGOTIATION
Maisha J WhobreyArgentinaAnna Fali NEW
James C RimSpainElwin Sharvill PROPOSAL
Smith O CaudyBrazilIvan Magalhaes UNQUALIFIED
Costa A WaycottItalyAnna Fali NEGOTIATION
Julie N OstroskyItalyXuxue Feng NEW
Jennifer I GarufiIndiaIoni Bowcher UNQUALIFIED
Aditya S FollerFranceBernardo Dominic NEW
Adams A AmigonSpainBernardo Dominic QUALIFIED
Arvin M NestleUnited KingdomStephen Shaw PROPOSAL
Kadeem P NickaItalyIvan Magalhaes NEGOTIATION
Greenwood Y StensethGermanyElwin Sharvill RENEWAL
Ashley G KolmetzSpainIvan Magalhaes PROPOSAL
Kadeem Z BologniaSpainAmy Elsner RENEWAL
Ashley V StockhamJapanAsiya Javayant QUALIFIED
Munro E NestleRussiaAsiya Javayant UNQUALIFIED
Costa V SchemmerItalyIvan Magalhaes QUALIFIED
Murillo K RimJapanAmy Elsner QUALIFIED
Salvatore Q FlosiGermanyAmy Elsner NEGOTIATION
James N ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Frozen Columns
Name
Adams E Slusarski
Morrow D Morasca
Maisha W Doe
Smith T Caldarera
Silvio O Maclead
Salvatore J Waycott
Sinclair E Foller
Ashley X Ruta
Smith O Amigon
Greenwood A Whobrey
Octavia Z Malet
Rodrigues F Waycott
Octavia V Amigon
Nicolas X Perin
Maisha L Venere
Emily T Gillian
Wickens C Slusarski
Misaki D Foller
Arvin X Stenseth
Smith N Morasca
Jefferson G Malet
Sinclair T Malet
Ashley A Stockham
Kadeem W Foller
Murillo I Whobrey
Adams L Figeroa
Tony S Bowley
Leja V Venere
Deepesh B Malet
Kaitlin J Foller
Aika J Kusko
Sinclair R Sergi
Claire H Bolognia
Clifford P Chui
Arvin P Gillian
Ivar F Malet
Ivar Q Kusko
Smith Y Royster
James I Maclead
Jefferson A Tollner
Mujtaba D Oldroyd
Emily H Kusko
Rodrigues Z Flosi
Antonio Z Shinko
Munro O Slusarski
Misaki Z Iturbide
Aditya R Gillian
Aruna K Campain
Greenwood Y Ruta
Clifford X Vocelka
IdCountryDate
1000Spain2024-06-19
1001Russia2024-06-12
1002France2024-06-11
1003Australia2024-06-10
1004Italy2024-05-23
1005France2024-05-24
1006Italy2024-06-11
1007Argentina2024-06-15
1008Russia2024-05-22
1009Australia2024-05-31
1010Germany2024-06-02
1011Australia2024-06-03
1012Italy2024-06-02
1013Germany2024-06-05
1014Russia2024-06-08
1015India2024-06-08
1016Argentina2024-06-15
1017Argentina2024-06-14
1018Italy2024-06-07
1019Spain2024-06-15
1020Germany2024-06-17
1021United Kingdom2024-06-11
1022Brazil2024-06-06
1023Argentina2024-06-09
1024Spain2024-06-17
1025Russia2024-05-27
1026Russia2024-06-10
1027Brazil2024-06-20
1028Canada2024-05-26
1029United Kingdom2024-06-14
1030France2024-05-26
1031Brazil2024-06-16
1032United Kingdom2024-06-08
1033United Kingdom2024-06-14
1034Brazil2024-05-30
1035France2024-05-26
1036France2024-06-07
1037Argentina2024-05-24
1038Argentina2024-06-01
1039Japan2024-06-14
1040Argentina2024-06-04
1041France2024-06-13
1042United Kingdom2024-06-02
1043France2024-05-24
1044Brazil2024-05-26
1045India2024-06-05
1046Canada2024-06-12
1047Italy2024-06-11
1048Germany2024-06-11
1049Japan2024-06-01

On-Demand Data

NameIdCountryDate
Juan L Maclead1000Italy2024-06-15
Ashley K Marrier1001Canada2024-06-11
Clifford U Bowley1002Argentina2024-06-07
Ricardo C Iturbide1003Germany2024-06-14
Jones C Campain1004Australia2024-06-11
James A Sergi1005Australia2024-06-10
Darci S Darakjy1006Spain2024-06-08
Stacey U Bowley1007Russia2024-05-31
Aruna V Ostrosky1008United Kingdom2024-06-06
Ivar S Bowley1009Russia2024-05-27
Nicolas Q Dilliard1010France2024-06-06
Clifford X Shinko1011United Kingdom2024-06-20
Leja T Malet1012India2024-06-18
Chavez D Oldroyd1013Brazil2024-05-30
Misaki B Nestle1014Japan2024-06-17
Misaki J Stockham1015France2024-06-09
Faith J Darakjy1016United Kingdom2024-06-10
Arvin Z Perin1017Russia2024-06-16
Deepesh J Ostrosky1018United Kingdom2024-05-23
Sinclair W Ostrosky1019United Kingdom2024-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar X NickaBrazilXuxue Feng QUALIFIED
Emily W KolmetzItalyStephen Shaw UNQUALIFIED
Kaitlin X KolmetzGermanyAsiya Javayant RENEWAL
Kadeem N StockhamGermanyIvan Magalhaes PROPOSAL
David A MaletJapanOnyama Limba QUALIFIED
Morrow I DarakjyItalyAsiya Javayant NEW
Sinclair Y MarrierArgentinaIoni Bowcher NEW
Greenwood U MorascaCanadaIvan Magalhaes NEGOTIATION
Tony T PoquetteSpainAmy Elsner NEGOTIATION
Ashley S NestleIndiaStephen Shaw NEGOTIATION
Salvatore U FlosiRussiaAmy Elsner UNQUALIFIED
Costa W PerinSpainXuxue Feng RENEWAL
Aditya M ShinkoItalyAsiya Javayant NEW
Jennifer O DoeAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois E DoeCanadaAsiya Javayant NEW
Claire S SchemmerRussiaIoni Bowcher UNQUALIFIED
Murillo O FollerRussiaBernardo Dominic RENEWAL
Maisha Z WhobreyIndiaIoni Bowcher NEW
Kaitlin G AlbaresItalyElwin Sharvill UNQUALIFIED
Leja K TollnerIndiaAmy Elsner QUALIFIED
Tony K VenereIndiaAnna Fali PROPOSAL
Jefferson J FerenczJapanAnna Fali QUALIFIED
Aruna O RimFranceIvan Magalhaes RENEWAL
Faith O BologniaRussiaAsiya Javayant NEW
Jefferson O FigeroaSpainIoni Bowcher RENEWAL
Julie P AlbaresJapanIvan Magalhaes PROPOSAL
Chavez N RoysterItalyAmy Elsner UNQUALIFIED
Wickens F DarakjyArgentinaElwin Sharvill QUALIFIED
Alejandro R CampainAustraliaElwin Sharvill NEGOTIATION
Jennifer R PoquetteGermanyAsiya Javayant UNQUALIFIED
Izzy I GlickCanadaIvan Magalhaes RENEWAL
Aditya S VenereBrazilIvan Magalhaes QUALIFIED
Mayumi Z VenereItalyAmy Elsner PROPOSAL
Jennifer M InouyeIndiaOnyama Limba UNQUALIFIED
Jones U KuskoBrazilAnna Fali QUALIFIED
Ashley H SaylorsCanadaStephen Shaw UNQUALIFIED
Sinclair R InouyeArgentinaIoni Bowcher NEGOTIATION
Aditya C PoquetteBrazilOnyama Limba RENEWAL
Stacey X AmigonRussiaElwin Sharvill NEW
Francesco Q MorascaItalyOnyama Limba NEW

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