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
Adams J FerenczGermanyStephen Shaw NEW
Francesco B InouyeCanadaAsiya Javayant PROPOSAL
Isabel E TollnerGermanyBernardo Dominic QUALIFIED
Jefferson P MaletUnited KingdomBernardo Dominic NEW
Sinclair X GauchoCanadaBernardo Dominic NEGOTIATION
Maisha R OldroydAustraliaAmy Elsner UNQUALIFIED
Jennifer A OldroydBrazilStephen Shaw RENEWAL
Mayumi G FlosiFranceElwin Sharvill UNQUALIFIED
Ricardo C FerenczAustraliaAnna Fali NEGOTIATION
Rodrigues J PerinGermanyOnyama Limba UNQUALIFIED
Aditya W AlbaresBrazilAsiya Javayant NEGOTIATION
Munro Z ButtBrazilElwin Sharvill UNQUALIFIED
Faith Y FollerBrazilAnna Fali NEW
Isabel Z CaldareraAustraliaBernardo Dominic NEGOTIATION
Juan T DilliardGermanyElwin Sharvill PROPOSAL
Murillo D InouyeSpainAmy Elsner NEGOTIATION
Costa O InouyeItalyXuxue Feng PROPOSAL
Kaitlin X KuskoJapanIoni Bowcher UNQUALIFIED
Juan X GillianUnited KingdomIoni Bowcher UNQUALIFIED
Clifford U StockhamArgentinaElwin Sharvill NEGOTIATION
Emily X AlbaresJapanIvan Magalhaes PROPOSAL
Wickens R BriddickAustraliaOnyama Limba NEGOTIATION
Stacey K KolmetzFranceOnyama Limba RENEWAL
Octavia F SlusarskiArgentinaIvan Magalhaes RENEWAL
Smith Z InouyeArgentinaXuxue Feng PROPOSAL
Murillo U GarufiCanadaElwin Sharvill UNQUALIFIED
Cody E BologniaBrazilIoni Bowcher QUALIFIED
Cody T VenereArgentinaStephen Shaw NEW
Aika A MarrierIndiaStephen Shaw RENEWAL
Nicolas H DilliardRussiaOnyama Limba QUALIFIED
Jeanfrancois Q ShinkoCanadaElwin Sharvill QUALIFIED
Morrow B StensethAustraliaAnna Fali QUALIFIED
Arvin U InouyeRussiaOnyama Limba RENEWAL
Misaki T PaprockiFranceElwin Sharvill NEGOTIATION
Rodrigues Z OstroskyIndiaXuxue Feng PROPOSAL
Ivar P OstroskyJapanOnyama Limba PROPOSAL
Johnson W IturbideIndiaIoni Bowcher NEW
Antonio V NickaGermanyAsiya Javayant QUALIFIED
Alejandro S WaycottArgentinaElwin Sharvill PROPOSAL
Ivar K FlosiIndiaXuxue Feng PROPOSAL
Tony R MaletRussiaAmy Elsner PROPOSAL
Emily X ButtBrazilXuxue Feng RENEWAL
Julie L SlusarskiGermanyElwin Sharvill UNQUALIFIED
Leja R KolmetzSpainOnyama Limba UNQUALIFIED
Rodrigues A AlbaresCanadaAnna Fali QUALIFIED
Silvio R NestleJapanIvan Magalhaes PROPOSAL
Faith L PerinIndiaOnyama Limba PROPOSAL
Emily O CaudyCanadaAsiya Javayant QUALIFIED
Ivar S TollnerItalyStephen Shaw UNQUALIFIED
Greenwood N SergiIndiaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin V NestleJapanAnna Fali QUALIFIED
Maria T FlosiAustraliaIoni Bowcher QUALIFIED
Octavia J SlusarskiItalyAsiya Javayant UNQUALIFIED
Greenwood I NestleCanadaXuxue Feng NEGOTIATION
Isabel C InouyeFranceBernardo Dominic UNQUALIFIED
Clifford H ChuiAustraliaOnyama Limba QUALIFIED
Octavia O BriddickGermanyStephen Shaw NEW
Octavia E NickaBrazilIvan Magalhaes NEGOTIATION
Kaitlin L VocelkaFranceAsiya Javayant RENEWAL
Faith S OldroydUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem M InouyeCanada2025-04-12Printing Dimensions NEGOTIATION19Ioni Bowcher
1001Munro D SaylorsAustralia2025-04-18King, Christopher A Esq NEW21Onyama Limba
1002Alejandro D OstroskyJapan2025-05-04Rousseaux, Michael Esq NEW77Anna Fali
1003Kaitlin F MorascaUnited Kingdom2025-04-21Dorl, James J Esq PROPOSAL8Bernardo Dominic
1004Jefferson H ShinkoGermany2025-04-30Feiner Bros QUALIFIED62Amy Elsner
1005Claire J FollerBrazil2025-04-14Chanay, Jeffrey A Esq NEW97Bernardo Dominic
1006Murillo W DoeIndia2025-04-29King, Christopher A Esq QUALIFIED15Stephen Shaw
1007Faith G SaylorsBrazil2025-05-02King, Christopher A Esq PROPOSAL27Elwin Sharvill
1008Misaki M BologniaItaly2025-05-02Morlong Associates NEW23Onyama Limba
1009Salvatore D AlbaresFrance2025-04-17Truhlar And Truhlar Attys NEW11Ioni Bowcher
1010Isabel K AmigonItaly2025-04-16Feltz Printing Service RENEWAL96Onyama Limba
1011Cody Q OldroydRussia2025-04-20Rangoni Of Florence UNQUALIFIED90Ioni Bowcher
1012Smith Q WhobreyCanada2025-04-19King, Christopher A Esq NEGOTIATION8Amy Elsner
1013Adams S StensethGermany2025-04-13Benton, John B Jr NEGOTIATION16Elwin Sharvill
1014Nicolas O GauchoGermany2025-04-24Morlong Associates UNQUALIFIED50Amy Elsner
1015Costa P KuskoSpain2025-04-13Benton, John B Jr NEGOTIATION20Bernardo Dominic
1016David I SaylorsFrance2025-04-21Dorl, James J Esq NEW21Elwin Sharvill
1017Jeanfrancois C InouyeCanada2025-04-20Chanay, Jeffrey A Esq QUALIFIED13Amy Elsner
1018Johnson F CaldareraArgentina2025-04-30Feltz Printing Service NEW0Onyama Limba
1019Cody Z SlusarskiUnited Kingdom2025-04-13Chapman, Ross E Esq PROPOSAL83Elwin Sharvill
1020Leja X GauchoBrazil2025-04-27Morlong Associates UNQUALIFIED25Onyama Limba
1021Alejandro B TollnerJapan2025-04-18Commercial Press NEGOTIATION43Xuxue Feng
1022Sinclair M NestleIndia2025-04-10Buckley Miller Wright NEGOTIATION43Stephen Shaw
1023Jeanfrancois C BriddickItaly2025-05-01Benton, John B Jr NEGOTIATION92Elwin Sharvill
1024Clifford F MaletCanada2025-04-23Chapman, Ross E Esq NEGOTIATION83Anna Fali
1025Maisha F CaldareraFrance2025-04-20Morlong Associates QUALIFIED49Onyama Limba
1026Leja H BowleyCanada2025-04-25King, Christopher A Esq NEW84Ioni Bowcher
1027Jefferson J FollerGermany2025-05-01Rousseaux, Michael Esq UNQUALIFIED46Anna Fali
1028Murillo W AlbaresAustralia2025-04-19Feltz Printing Service UNQUALIFIED36Ivan Magalhaes
1029Aika W ButtSpain2025-05-03Feltz Printing Service QUALIFIED95Elwin Sharvill
1030Ashley R OldroydUnited Kingdom2025-04-17Chanay, Jeffrey A Esq NEGOTIATION84Anna Fali
1031Julie N GillianJapan2025-04-30Printing Dimensions UNQUALIFIED32Stephen Shaw
1032Julie U WhobreyJapan2025-04-18Rangoni Of Florence RENEWAL89Stephen Shaw
1033Francesco V GlickSpain2025-04-08Feltz Printing Service QUALIFIED22Bernardo Dominic
1034Morrow S RoysterGermany2025-04-15Feiner Bros NEGOTIATION86Xuxue Feng
1035Nicolas T OldroydUnited Kingdom2025-04-08Morlong Associates UNQUALIFIED13Bernardo Dominic
1036Silvio R SchemmerFrance2025-04-19Dorl, James J Esq UNQUALIFIED89Bernardo Dominic
1037Ivar F PerinGermany2025-04-17King, Christopher A Esq RENEWAL45Stephen Shaw
1038Wickens W RulapaughIndia2025-04-22Chapman, Ross E Esq UNQUALIFIED11Ivan Magalhaes
1039Aditya H OldroydBrazil2025-04-24Feiner Bros PROPOSAL95Asiya Javayant
1040Izzy D OstroskySpain2025-04-26Truhlar And Truhlar Attys PROPOSAL86Onyama Limba
1041Antonio D GillianCanada2025-04-26Rangoni Of Florence RENEWAL3Stephen Shaw
1042Greenwood H DoeRussia2025-04-06Dorl, James J Esq QUALIFIED78Amy Elsner
1043Chavez M RimRussia2025-04-28Commercial Press QUALIFIED26Asiya Javayant
1044Darci Q TollnerItaly2025-04-17Truhlar And Truhlar Attys NEW49Xuxue Feng
1045Kaitlin O MaletGermany2025-04-18Dorl, James J Esq NEW85Ioni Bowcher
1046Faith D MaletIndia2025-05-04Rangoni Of Florence NEW21Asiya Javayant
1047Nicolas T FigeroaUnited Kingdom2025-04-21Chanay, Jeffrey A Esq PROPOSAL6Stephen Shaw
1048Aika K OldroydAustralia2025-04-28Chanay, Jeffrey A Esq PROPOSAL54Elwin Sharvill
1049Deepesh W FerenczFrance2025-05-04Buckley Miller Wright PROPOSAL78Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mayumi G PaprockiSpainOnyama Limba NEW
Emily G WhobreyArgentinaXuxue Feng NEW
Tony I FerenczRussiaOnyama Limba RENEWAL
David W VocelkaGermanyIvan Magalhaes QUALIFIED
Aruna G WhobreyJapanIvan Magalhaes NEW
Tony S IturbideAustraliaIvan Magalhaes UNQUALIFIED
Antonio T GlickFranceAsiya Javayant NEGOTIATION
Jeanfrancois C SaylorsArgentinaAsiya Javayant QUALIFIED
Antonio P SergiJapanIvan Magalhaes QUALIFIED
Antonio P VocelkaIndiaOnyama Limba NEGOTIATION
Mayumi T BriddickCanadaXuxue Feng PROPOSAL
Silvio E GillianArgentinaAnna Fali NEW
Claire N GlickFranceIoni Bowcher RENEWAL
Sinclair A MarrierSpainElwin Sharvill UNQUALIFIED
Francesco G NickaBrazilAsiya Javayant RENEWAL
Jeanfrancois Q DilliardJapanIoni Bowcher RENEWAL
Deepesh M KolmetzAustraliaStephen Shaw UNQUALIFIED
Chavez Y OstroskyIndiaXuxue Feng NEW
Maisha F RutaItalyElwin Sharvill NEGOTIATION
Wickens D TollnerAustraliaBernardo Dominic UNQUALIFIED
Rodrigues S RulapaughAustraliaAnna Fali NEGOTIATION
Clifford O MorascaBrazilStephen Shaw NEW
Rodrigues P StensethUnited KingdomBernardo Dominic PROPOSAL
Silvio W VenereIndiaBernardo Dominic RENEWAL
Mayumi L MaletGermanyOnyama Limba NEW
Cody B TollnerGermanyAnna Fali RENEWAL
Izzy P GauchoFranceElwin Sharvill QUALIFIED
Alejandro L IturbideItalyOnyama Limba UNQUALIFIED
Munro V CaudySpainAnna Fali PROPOSAL
Mayumi X FerenczIndiaAsiya Javayant UNQUALIFIED
Johnson F MorascaIndiaAsiya Javayant PROPOSAL
Morrow J MorascaRussiaBernardo Dominic RENEWAL
Wickens T RoysterSpainElwin Sharvill QUALIFIED
Stacey N PoquetteBrazilAsiya Javayant QUALIFIED
Aika O FigeroaItalyBernardo Dominic UNQUALIFIED
Kadeem C InouyeRussiaIoni Bowcher UNQUALIFIED
Alejandro M WhobreyFranceElwin Sharvill PROPOSAL
Tony T MaletIndiaIvan Magalhaes NEW
Silvio K StockhamCanadaXuxue Feng RENEWAL
Darci Q TollnerItalyIvan Magalhaes NEW
Alejandro R RutaFranceStephen Shaw UNQUALIFIED
Johnson O KuskoFranceOnyama Limba RENEWAL
Silvio K WieserJapanAnna Fali NEW
Claire G SchemmerAustraliaAsiya Javayant NEGOTIATION
Juan V RimRussiaElwin Sharvill NEGOTIATION
Morrow A StensethJapanElwin Sharvill NEGOTIATION
Kadeem L BowleyArgentinaIoni Bowcher NEGOTIATION
Isabel J CaldareraAustraliaOnyama Limba RENEWAL
Mujtaba J WhobreyRussiaAsiya Javayant QUALIFIED
Misaki T MaletJapanAmy Elsner RENEWAL
Frozen Columns
Name
Izzy L Amigon
Aika Z Bolognia
Smith U Wieser
Jefferson G Whobrey
Jefferson N Briddick
Mujtaba R Flosi
David Q Gaucho
Johnson V Ferencz
Silvio H Shinko
Leon F Slusarski
Claire J Ferencz
Octavia P Malet
Morrow C Ruta
Mayumi G Malet
Adams C Caudy
Chavez G Malet
Izzy U Garufi
Morrow Y Oldroyd
Octavia M Caudy
Jeanfrancois T Schemmer
Isabel H Campain
Jones L Shinko
Wickens S Butt
Ashley U Inouye
Murillo T Paprocki
Ricardo G Sergi
Johnson D Sergi
David E Foller
Silvio O Rulapaugh
Smith B Malet
Faith W Shinko
Leja E Caldarera
Alejandro L Waycott
David T Wieser
Silvio G Schemmer
Darci V Inouye
Ashley Y Gaucho
Kaitlin Y Whobrey
Kaitlin Y Kolmetz
Kadeem Y Butt
Deepesh K Bolognia
Smith C Saylors
Tony Z Shinko
Alejandro C Venere
Jennifer U Gillian
Smith B Albares
Johnson Q Nestle
Aika A Rulapaugh
Jennifer U Garufi
Maria R Kolmetz
IdCountryDate
1000Australia2025-04-15
1001Italy2025-04-15
1002Canada2025-04-19
1003Spain2025-05-04
1004Argentina2025-04-08
1005Argentina2025-04-29
1006Germany2025-04-23
1007Russia2025-04-17
1008Japan2025-04-07
1009Australia2025-04-06
1010Germany2025-04-27
1011India2025-04-25
1012Russia2025-04-26
1013India2025-05-01
1014Japan2025-04-22
1015United Kingdom2025-04-29
1016Japan2025-04-15
1017United Kingdom2025-04-15
1018Italy2025-04-09
1019Brazil2025-04-18
1020Australia2025-05-02
1021India2025-04-24
1022India2025-04-16
1023Australia2025-04-26
1024Canada2025-04-10
1025Spain2025-04-07
1026India2025-04-13
1027Italy2025-04-27
1028Spain2025-04-28
1029Canada2025-04-16
1030Russia2025-04-29
1031Spain2025-04-09
1032India2025-04-21
1033Italy2025-04-26
1034India2025-04-28
1035Argentina2025-04-19
1036India2025-04-17
1037Australia2025-04-29
1038Australia2025-04-14
1039Canada2025-04-14
1040France2025-04-27
1041Brazil2025-05-04
1042Germany2025-04-24
1043Argentina2025-04-15
1044Australia2025-04-28
1045Canada2025-04-12
1046Spain2025-04-18
1047India2025-04-21
1048Spain2025-05-04
1049Spain2025-04-14

On-Demand Data

NameIdCountryDate
Rodrigues O Perin1000United Kingdom2025-05-04
Julie M Garufi1001Japan2025-04-15
Smith L Foller1002Australia2025-04-16
Francesco J Campain1003Argentina2025-04-26
Kadeem D Gaucho1004Russia2025-04-14
Julie L Inouye1005Italy2025-04-12
Ivar M Schemmer1006Spain2025-04-25
Silvio A Gaucho1007Spain2025-05-03
Jefferson P Garufi1008Spain2025-04-12
Salvatore Z Oldroyd1009India2025-04-26
Clifford M Waycott1010United Kingdom2025-05-04
Maria E Shinko1011Spain2025-05-04
Jeanfrancois Q Malet1012India2025-04-26
Smith P Vocelka1013United Kingdom2025-04-27
Aruna D Doe1014Germany2025-04-22
Murillo I Rulapaugh1015Spain2025-04-07
Maisha H Saylors1016Italy2025-04-17
Deepesh K Gaucho1017Russia2025-04-10
Silvio X Perin1018Russia2025-04-13
Jones F Figeroa1019Brazil2025-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair C RulapaughAustraliaOnyama Limba PROPOSAL
Adams H VocelkaUnited KingdomAsiya Javayant RENEWAL
Jefferson I MorascaUnited KingdomElwin Sharvill NEW
Faith C SchemmerRussiaElwin Sharvill NEW
Mujtaba R GlickFranceElwin Sharvill QUALIFIED
Jefferson S KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Johnson Y VocelkaRussiaXuxue Feng UNQUALIFIED
Kaitlin S MacleadJapanXuxue Feng QUALIFIED
Francesco L IturbideFranceElwin Sharvill RENEWAL
Morrow V RoysterCanadaAnna Fali NEW
Tony U DarakjyArgentinaBernardo Dominic UNQUALIFIED
Wickens F AmigonRussiaXuxue Feng RENEWAL
James W InouyeJapanIvan Magalhaes QUALIFIED
Clifford W DilliardGermanyStephen Shaw UNQUALIFIED
Wickens A TollnerCanadaXuxue Feng NEW
Jeanfrancois F StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Ashley E SchemmerAustraliaElwin Sharvill NEGOTIATION
Aika K WaycottFranceIvan Magalhaes NEGOTIATION
Maria Z ButtBrazilBernardo Dominic UNQUALIFIED
Kadeem R BologniaIndiaElwin Sharvill NEW
Arvin U SaylorsCanadaOnyama Limba PROPOSAL
Alejandro S RimBrazilOnyama Limba NEW
Kaitlin V RimIndiaXuxue Feng UNQUALIFIED
Ivar Q VocelkaSpainBernardo Dominic UNQUALIFIED
Kaitlin W GarufiArgentinaStephen Shaw NEGOTIATION
Leon C VenereGermanyIoni Bowcher RENEWAL
Arvin G NickaCanadaOnyama Limba UNQUALIFIED
Jennifer H PoquetteAustraliaIoni Bowcher NEGOTIATION
Tony D SchemmerIndiaAmy Elsner QUALIFIED
Munro T SchemmerCanadaElwin Sharvill NEW
Clifford X NestleFranceAsiya Javayant RENEWAL
Murillo U WhobreyBrazilIvan Magalhaes NEW
Jeanfrancois R AlbaresFranceElwin Sharvill UNQUALIFIED
Ashley Z FerenczUnited KingdomStephen Shaw NEW
Greenwood B GlickRussiaIoni Bowcher RENEWAL
Arvin M TollnerSpainElwin Sharvill NEGOTIATION
Johnson O ChuiUnited KingdomStephen Shaw NEW
Emily Q RulapaughGermanyAsiya Javayant UNQUALIFIED
Misaki U BowleyItalyOnyama Limba UNQUALIFIED
Ricardo H GlickJapanAmy Elsner UNQUALIFIED

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