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
Isabel C StockhamArgentinaAmy Elsner QUALIFIED
Maria D MaletAustraliaIoni Bowcher RENEWAL
Jennifer U RoysterUnited KingdomAmy Elsner NEGOTIATION
Cody J CaudyBrazilElwin Sharvill NEGOTIATION
Maria Q ShinkoAustraliaXuxue Feng UNQUALIFIED
Leja K GarufiIndiaAmy Elsner RENEWAL
Deepesh D InouyeFranceIoni Bowcher QUALIFIED
Faith I KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Maria N PoquetteGermanyStephen Shaw NEW
Aditya Q CaldareraFranceXuxue Feng NEW
Jennifer H InouyeRussiaBernardo Dominic NEW
David N ShinkoCanadaAmy Elsner NEW
Adams D AmigonItalyIvan Magalhaes PROPOSAL
Mujtaba I CaldareraAustraliaAsiya Javayant NEGOTIATION
Leja Y MorascaBrazilXuxue Feng NEGOTIATION
Julie V PaprockiCanadaOnyama Limba QUALIFIED
Sinclair J InouyeCanadaAsiya Javayant NEW
Kaitlin Z BowleyFranceBernardo Dominic RENEWAL
Octavia S KuskoGermanyIvan Magalhaes RENEWAL
Octavia A CaudyIndiaIvan Magalhaes PROPOSAL
Kaitlin C InouyeUnited KingdomStephen Shaw QUALIFIED
Kaitlin T BologniaCanadaAnna Fali RENEWAL
Sinclair B SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Stacey S DilliardItalyElwin Sharvill PROPOSAL
Greenwood F FerenczAustraliaStephen Shaw PROPOSAL
Wickens E KolmetzAustraliaIoni Bowcher NEGOTIATION
Jennifer C KuskoUnited KingdomElwin Sharvill PROPOSAL
Jones G RutaRussiaElwin Sharvill QUALIFIED
Morrow I GarufiCanadaElwin Sharvill NEGOTIATION
Ashley T SergiUnited KingdomIoni Bowcher NEW
Antonio S PoquetteAustraliaAnna Fali RENEWAL
Leja U InouyeFranceOnyama Limba NEW
Tony C NestleItalyBernardo Dominic QUALIFIED
Octavia R SaylorsCanadaXuxue Feng PROPOSAL
Ivar T ButtUnited KingdomIvan Magalhaes NEW
Alejandro B GauchoFranceElwin Sharvill PROPOSAL
Cody B OldroydGermanyStephen Shaw NEGOTIATION
Morrow J MarrierIndiaIvan Magalhaes PROPOSAL
Leja D RulapaughJapanIoni Bowcher PROPOSAL
Mayumi Z CaldareraItalyBernardo Dominic PROPOSAL
Darci H SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Aruna T OstroskyUnited KingdomElwin Sharvill QUALIFIED
Darci S BriddickBrazilStephen Shaw PROPOSAL
Adams E WhobreyRussiaIoni Bowcher QUALIFIED
Misaki O ChuiBrazilAnna Fali NEW
Kadeem U AmigonItalyAsiya Javayant PROPOSAL
Arvin W DarakjyItalyElwin Sharvill QUALIFIED
Antonio N DarakjyJapanAmy Elsner RENEWAL
Jeanfrancois Y DarakjyArgentinaIvan Magalhaes QUALIFIED
Aditya R MaletJapanElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas R SaylorsBrazilElwin Sharvill RENEWAL
Jeanfrancois X GarufiJapanIvan Magalhaes NEW
Silvio O WaycottAustraliaAnna Fali PROPOSAL
Johnson B SlusarskiJapanOnyama Limba UNQUALIFIED
Aditya F MorascaRussiaIoni Bowcher RENEWAL
Leon O OstroskyFranceXuxue Feng PROPOSAL
Leja V MorascaFranceIoni Bowcher NEGOTIATION
Aika Z WhobreyGermanyStephen Shaw PROPOSAL
Maisha L MarrierJapanBernardo Dominic NEGOTIATION
Antonio H ButtBrazilStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire U KolmetzIndia2026-07-13Feltz Printing Service NEGOTIATION9Amy Elsner
1001Ricardo T RulapaughIndia2026-07-29King, Christopher A Esq NEGOTIATION98Ivan Magalhaes
1002Leon R PoquetteCanada2026-08-02Morlong Associates QUALIFIED11Stephen Shaw
1003Costa D RoysterJapan2026-07-11Truhlar And Truhlar Attys NEGOTIATION11Onyama Limba
1004Faith L TollnerRussia2026-07-06Chanay, Jeffrey A Esq QUALIFIED97Stephen Shaw
1005Nicolas W CaudyUnited Kingdom2026-07-11Truhlar And Truhlar Attys PROPOSAL97Elwin Sharvill
1006Ricardo G IturbideFrance2026-07-29Morlong Associates PROPOSAL56Bernardo Dominic
1007David H SergiGermany2026-07-30Chemel, James L Cpa PROPOSAL19Anna Fali
1008Tony N CaudyItaly2026-07-20Rangoni Of Florence QUALIFIED91Ioni Bowcher
1009Ashley L PerinArgentina2026-07-19Chanay, Jeffrey A Esq NEGOTIATION24Ioni Bowcher
1010Stacey G BologniaAustralia2026-07-25Morlong Associates UNQUALIFIED50Ioni Bowcher
1011Deepesh H WaycottIndia2026-07-28Morlong Associates NEW25Amy Elsner
1012Izzy F StockhamItaly2026-07-31Chanay, Jeffrey A Esq PROPOSAL54Onyama Limba
1013Juan W InouyeBrazil2026-07-10Rangoni Of Florence NEGOTIATION2Anna Fali
1014Izzy Z MarrierUnited Kingdom2026-07-21Chanay, Jeffrey A Esq RENEWAL93Onyama Limba
1015Octavia E RimGermany2026-07-10Chapman, Ross E Esq PROPOSAL58Stephen Shaw
1016Ashley O InouyeRussia2026-07-12Chanay, Jeffrey A Esq NEW66Anna Fali
1017Misaki F RulapaughArgentina2026-07-19Printing Dimensions NEW16Asiya Javayant
1018Leja F SchemmerCanada2026-07-06Commercial Press UNQUALIFIED63Ivan Magalhaes
1019Octavia U GillianBrazil2026-07-21Chemel, James L Cpa UNQUALIFIED65Anna Fali
1020Ivar E CaldareraSpain2026-07-31Truhlar And Truhlar Attys RENEWAL69Elwin Sharvill
1021Clifford R StensethFrance2026-07-27Buckley Miller Wright QUALIFIED77Onyama Limba
1022Adams L FlosiItaly2026-07-24Benton, John B Jr PROPOSAL40Ioni Bowcher
1023Kaitlin U MarrierBrazil2026-07-05King, Christopher A Esq RENEWAL35Ioni Bowcher
1024Juan V VocelkaAustralia2026-07-11Chanay, Jeffrey A Esq NEGOTIATION21Bernardo Dominic
1025Kaitlin J SaylorsAustralia2026-07-17Commercial Press PROPOSAL39Ioni Bowcher
1026Stacey B CaldareraArgentina2026-07-13Rangoni Of Florence NEW47Anna Fali
1027Kadeem I CaldareraAustralia2026-08-02Buckley Miller Wright QUALIFIED91Stephen Shaw
1028Clifford Z AmigonSpain2026-07-16Rangoni Of Florence NEW83Amy Elsner
1029Antonio A VenereSpain2026-07-28Feltz Printing Service NEGOTIATION30Ioni Bowcher
1030Aruna A BriddickSpain2026-07-29Chanay, Jeffrey A Esq UNQUALIFIED54Asiya Javayant
1031Ashley U NickaRussia2026-07-13Chanay, Jeffrey A Esq NEGOTIATION24Xuxue Feng
1032Aruna Y PoquetteRussia2026-07-28Chapman, Ross E Esq NEW81Onyama Limba
1033Alejandro U OldroydFrance2026-08-02King, Christopher A Esq NEGOTIATION15Stephen Shaw
1034Morrow Y FollerIndia2026-07-14Chanay, Jeffrey A Esq PROPOSAL78Ioni Bowcher
1035Aditya U PerinCanada2026-07-25Commercial Press QUALIFIED79Onyama Limba
1036Kaitlin M OldroydSpain2026-07-10Feiner Bros NEGOTIATION58Anna Fali
1037Adams O VocelkaBrazil2026-07-16Chemel, James L Cpa UNQUALIFIED57Bernardo Dominic
1038Murillo X TollnerItaly2026-07-12Chemel, James L Cpa NEW41Stephen Shaw
1039Jefferson I SergiJapan2026-07-30Rousseaux, Michael Esq RENEWAL74Anna Fali
1040Cody Q FerenczJapan2026-07-24Feltz Printing Service NEGOTIATION16Onyama Limba
1041Aika F SergiSpain2026-07-29Buckley Miller Wright PROPOSAL77Amy Elsner
1042Costa K ButtItaly2026-07-30Rangoni Of Florence UNQUALIFIED47Stephen Shaw
1043Leon M KuskoArgentina2026-07-31Chemel, James L Cpa NEW65Xuxue Feng
1044Morrow J DarakjyUnited Kingdom2026-07-14Commercial Press PROPOSAL2Anna Fali
1045Ashley C BologniaRussia2026-07-15Dorl, James J Esq QUALIFIED64Asiya Javayant
1046Stacey J GlickGermany2026-07-11Printing Dimensions RENEWAL18Ivan Magalhaes
1047Kaitlin O NickaSpain2026-07-17Benton, John B Jr PROPOSAL63Ivan Magalhaes
1048Silvio Q BologniaBrazil2026-07-27Feltz Printing Service NEW21Elwin Sharvill
1049Johnson W SaylorsJapan2026-07-09Chanay, Jeffrey A Esq NEGOTIATION59Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria F SchemmerJapanIvan Magalhaes PROPOSAL
Julie H NestleJapanAsiya Javayant PROPOSAL
Kadeem U KuskoCanadaStephen Shaw QUALIFIED
David W PaprockiCanadaBernardo Dominic QUALIFIED
Misaki I FigeroaJapanAmy Elsner UNQUALIFIED
Ashley G ShinkoIndiaIvan Magalhaes QUALIFIED
Adams C BriddickUnited KingdomAmy Elsner NEGOTIATION
Cody M SlusarskiRussiaAnna Fali RENEWAL
Misaki Z PaprockiItalyOnyama Limba NEW
Stacey U InouyeSpainIvan Magalhaes UNQUALIFIED
Wickens Z SchemmerBrazilIvan Magalhaes RENEWAL
Rodrigues I PaprockiUnited KingdomAnna Fali RENEWAL
Silvio Y FigeroaSpainElwin Sharvill UNQUALIFIED
Salvatore D MaletCanadaAsiya Javayant NEGOTIATION
Arvin F WaycottSpainElwin Sharvill RENEWAL
Greenwood P KolmetzAustraliaAmy Elsner PROPOSAL
Wickens Y SaylorsArgentinaOnyama Limba NEGOTIATION
Julie Z IturbideArgentinaIoni Bowcher PROPOSAL
Stacey C PaprockiRussiaXuxue Feng NEGOTIATION
Antonio C KolmetzGermanyAmy Elsner PROPOSAL
Jefferson L VenereItalyXuxue Feng UNQUALIFIED
Jennifer I SergiGermanyOnyama Limba QUALIFIED
Greenwood P ChuiItalyAsiya Javayant PROPOSAL
Isabel K FlosiUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin G AlbaresAustraliaAmy Elsner NEW
Smith K WieserUnited KingdomIvan Magalhaes NEGOTIATION
Arvin N BriddickUnited KingdomAsiya Javayant NEW
Francesco L RimRussiaAmy Elsner RENEWAL
Izzy Y FerenczGermanyOnyama Limba RENEWAL
Aditya T RutaItalyAmy Elsner UNQUALIFIED
Aruna W CaldareraIndiaAnna Fali PROPOSAL
Chavez B RimFranceXuxue Feng UNQUALIFIED
Octavia T MaletCanadaBernardo Dominic PROPOSAL
Jennifer Q BowleyFranceOnyama Limba PROPOSAL
Maria E CaudyFranceIvan Magalhaes NEW
Juan C NestleGermanyAsiya Javayant QUALIFIED
Jones O ShinkoSpainAsiya Javayant NEGOTIATION
Alejandro F FlosiBrazilAnna Fali PROPOSAL
Maisha Z KuskoItalyElwin Sharvill NEGOTIATION
Claire P AmigonAustraliaIvan Magalhaes PROPOSAL
Murillo C BologniaCanadaStephen Shaw NEGOTIATION
Claire Q DilliardGermanyIoni Bowcher UNQUALIFIED
Izzy U IturbideIndiaElwin Sharvill QUALIFIED
Leon I MarrierUnited KingdomIvan Magalhaes RENEWAL
Wickens G ChuiGermanyAnna Fali QUALIFIED
Silvio C DilliardIndiaAmy Elsner RENEWAL
Cody R MarrierBrazilXuxue Feng QUALIFIED
Emily P InouyeUnited KingdomXuxue Feng NEW
Johnson K RoysterItalyStephen Shaw QUALIFIED
David P FlosiItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Claire X Garufi
Johnson V Sergi
Adams P Rulapaugh
Octavia A Rim
Nicolas R Paprocki
Mujtaba G Vocelka
Aruna T Shinko
Darci N Sergi
Sinclair Q Perin
Aika I Waycott
Adams Y Royster
Mayumi R Bolognia
Kadeem A Dilliard
Chavez K Ruta
Rodrigues J Dilliard
Aruna V Kusko
Faith L Nicka
Stacey S Royster
Kaitlin Y Ruta
James D Bolognia
Greenwood W Flosi
Izzy O Schemmer
Octavia X Malet
Ricardo J Albares
David R Kusko
Faith O Iturbide
Morrow G Paprocki
Silvio N Chui
Francesco I Chui
Kaitlin H Garufi
Francesco O Kusko
Murillo L Wieser
Kaitlin R Rim
Juan M Venere
Mayumi T Schemmer
Chavez J Marrier
Morrow T Albares
Tony S Gillian
Maisha F Ruta
Isabel U Schemmer
Ashley Q Doe
Clifford S Doe
Johnson A Albares
Maisha Z Foller
Wickens R Stockham
Ivar N Albares
Mujtaba L Dilliard
Aika B Poquette
Leon H Kusko
Ricardo Q Briddick
IdCountryDate
1000Canada2026-07-08
1001Australia2026-07-08
1002Italy2026-07-18
1003Germany2026-07-18
1004Germany2026-07-31
1005Argentina2026-07-08
1006Australia2026-07-07
1007Australia2026-07-25
1008Italy2026-07-16
1009France2026-07-05
1010Australia2026-07-10
1011Italy2026-07-19
1012Canada2026-07-27
1013Australia2026-08-02
1014Germany2026-07-10
1015France2026-07-19
1016United Kingdom2026-07-31
1017France2026-07-26
1018United Kingdom2026-07-19
1019Germany2026-08-02
1020France2026-07-08
1021United Kingdom2026-07-31
1022Japan2026-07-12
1023Russia2026-07-17
1024Argentina2026-07-28
1025Germany2026-07-17
1026France2026-07-19
1027Spain2026-07-20
1028Brazil2026-07-05
1029Japan2026-07-25
1030United Kingdom2026-07-19
1031Brazil2026-07-12
1032Argentina2026-08-02
1033India2026-07-21
1034Germany2026-07-19
1035Spain2026-07-08
1036Russia2026-07-09
1037India2026-07-24
1038Japan2026-07-31
1039Russia2026-07-27
1040Australia2026-07-07
1041Australia2026-08-03
1042Germany2026-08-01
1043France2026-07-11
1044United Kingdom2026-07-22
1045Australia2026-07-26
1046United Kingdom2026-07-05
1047Brazil2026-07-25
1048Germany2026-07-15
1049India2026-07-06

On-Demand Data

NameIdCountryDate
Kaitlin P Gillian1000Italy2026-07-23
Kadeem E Albares1001Germany2026-07-31
Kadeem F Briddick1002Italy2026-07-24
Arvin E Ostrosky1003Spain2026-07-17
Deepesh L Perin1004Australia2026-07-11
Munro E Vocelka1005France2026-07-12
Maria T Paprocki1006Germany2026-07-10
Jones D Slusarski1007Canada2026-07-20
Johnson Y Inouye1008Italy2026-07-15
Jennifer M Gillian1009Russia2026-07-11
Kaitlin Z Inouye1010Brazil2026-07-09
Murillo L Rim1011Argentina2026-07-09
Jeanfrancois R Slusarski1012Japan2026-07-21
Cody B Morasca1013Australia2026-07-24
Francesco F Ferencz1014Japan2026-07-25
Maisha K Slusarski1015Russia2026-07-19
Claire B Foller1016Japan2026-07-17
Tony V Briddick1017Japan2026-07-15
Sinclair T Maclead1018Japan2026-07-17
Maria P Morasca1019Japan2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony Z RutaGermanyXuxue Feng QUALIFIED
Jefferson E GauchoAustraliaIoni Bowcher NEGOTIATION
Aditya Q PoquetteFranceXuxue Feng NEW
Murillo L DoeSpainXuxue Feng QUALIFIED
Murillo L GillianIndiaIoni Bowcher NEW
Salvatore W MacleadArgentinaAnna Fali NEW
Nicolas H PoquetteArgentinaAsiya Javayant RENEWAL
Cody W IturbideRussiaElwin Sharvill PROPOSAL
Adams L GarufiArgentinaIvan Magalhaes PROPOSAL
Cody W CaudyRussiaIvan Magalhaes UNQUALIFIED
Octavia X WhobreyArgentinaStephen Shaw NEW
Leon Y NickaCanadaStephen Shaw QUALIFIED
Jones N OldroydRussiaElwin Sharvill NEGOTIATION
Clifford G SergiArgentinaOnyama Limba NEW
Emily R AlbaresFranceAsiya Javayant PROPOSAL
Maisha Q MarrierSpainAmy Elsner NEW
Ricardo Y NestleCanadaBernardo Dominic UNQUALIFIED
Ivar S SlusarskiCanadaOnyama Limba PROPOSAL
Rodrigues U MaletCanadaBernardo Dominic RENEWAL
Mayumi E WieserGermanyElwin Sharvill NEW
Aruna K GlickIndiaStephen Shaw UNQUALIFIED
Aditya K FollerSpainElwin Sharvill NEW
Tony G AmigonUnited KingdomAnna Fali NEGOTIATION
Francesco T BowleyBrazilAmy Elsner RENEWAL
Jennifer L OldroydUnited KingdomIoni Bowcher NEW
Ricardo Q CaldareraFranceAsiya Javayant NEGOTIATION
Clifford O AmigonCanadaIvan Magalhaes QUALIFIED
Maria J GlickAustraliaStephen Shaw PROPOSAL
Ricardo Y WhobreyArgentinaXuxue Feng QUALIFIED
Mujtaba H GillianArgentinaStephen Shaw RENEWAL
Ivar O PaprockiSpainXuxue Feng NEW
Sinclair F OstroskyIndiaOnyama Limba UNQUALIFIED
Jones E ButtSpainXuxue Feng UNQUALIFIED
Tony U KuskoCanadaAnna Fali PROPOSAL
Isabel Q CampainSpainStephen Shaw QUALIFIED
Misaki K ChuiFranceBernardo Dominic NEW
Silvio G PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin G SaylorsCanadaIoni Bowcher UNQUALIFIED
Misaki T MorascaSpainIvan Magalhaes NEW
Aditya B CampainJapanIvan Magalhaes 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>