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
Morrow Y BowleyUnited KingdomOnyama Limba QUALIFIED
Adams M GarufiItalyElwin Sharvill PROPOSAL
Ivar Y DarakjyUnited KingdomStephen Shaw NEW
Murillo R BriddickCanadaAnna Fali UNQUALIFIED
Rodrigues O MacleadItalyAmy Elsner QUALIFIED
Clifford S SaylorsIndiaElwin Sharvill NEGOTIATION
Munro X AlbaresJapanIvan Magalhaes UNQUALIFIED
Isabel C BriddickCanadaOnyama Limba UNQUALIFIED
Nicolas L MaletItalyElwin Sharvill RENEWAL
James F StockhamGermanyOnyama Limba NEGOTIATION
Claire M FigeroaAustraliaIoni Bowcher PROPOSAL
Wickens L AlbaresArgentinaOnyama Limba NEGOTIATION
Claire H MaletGermanyAsiya Javayant NEGOTIATION
Salvatore U GillianItalyElwin Sharvill NEGOTIATION
Kadeem W CaldareraRussiaIoni Bowcher NEW
James W CaudyCanadaIvan Magalhaes QUALIFIED
Rodrigues Z MaletUnited KingdomOnyama Limba QUALIFIED
Rodrigues X MacleadGermanyStephen Shaw QUALIFIED
Maria H FlosiCanadaXuxue Feng QUALIFIED
Chavez G KuskoBrazilXuxue Feng UNQUALIFIED
Julie L DoeSpainBernardo Dominic PROPOSAL
Jeanfrancois G StockhamIndiaOnyama Limba NEW
Kadeem W DarakjyArgentinaBernardo Dominic UNQUALIFIED
Juan Q WhobreyGermanyAmy Elsner QUALIFIED
Aika N MacleadArgentinaBernardo Dominic NEGOTIATION
Salvatore M MaletCanadaAsiya Javayant UNQUALIFIED
Faith X TollnerUnited KingdomAnna Fali UNQUALIFIED
Jennifer I TollnerGermanyStephen Shaw PROPOSAL
Cody N GauchoBrazilElwin Sharvill PROPOSAL
Antonio E SchemmerItalyAsiya Javayant RENEWAL
Leon W ShinkoItalyAmy Elsner PROPOSAL
Nicolas W GauchoBrazilAnna Fali RENEWAL
Julie Q InouyeIndiaStephen Shaw RENEWAL
Leja V TollnerGermanyXuxue Feng NEGOTIATION
Maria H VenereGermanyAmy Elsner RENEWAL
Ivar L GauchoArgentinaIoni Bowcher RENEWAL
Octavia S CaldareraFranceStephen Shaw QUALIFIED
Kaitlin R GlickUnited KingdomXuxue Feng RENEWAL
Jeanfrancois Z AmigonCanadaIvan Magalhaes UNQUALIFIED
Deepesh C FigeroaBrazilAnna Fali RENEWAL
Clifford G WaycottItalyBernardo Dominic RENEWAL
Isabel B KolmetzIndiaAsiya Javayant QUALIFIED
Emily C GlickArgentinaAmy Elsner QUALIFIED
Arvin M FlosiBrazilBernardo Dominic QUALIFIED
Aruna O PaprockiGermanyAmy Elsner QUALIFIED
Clifford E GarufiRussiaXuxue Feng PROPOSAL
Octavia K FlosiRussiaIvan Magalhaes UNQUALIFIED
Tony B SergiSpainAmy Elsner UNQUALIFIED
Smith K BowleyGermanyIvan Magalhaes QUALIFIED
Claire N ChuiJapanXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Faith L MarrierFranceIvan Magalhaes PROPOSAL
Faith X MorascaUnited KingdomIvan Magalhaes RENEWAL
Tony D ShinkoSpainStephen Shaw QUALIFIED
Isabel M ShinkoCanadaAsiya Javayant RENEWAL
Deepesh X RimItalyBernardo Dominic QUALIFIED
Smith V SlusarskiBrazilStephen Shaw UNQUALIFIED
Rodrigues K DoeBrazilIvan Magalhaes NEW
Nicolas J AmigonIndiaIoni Bowcher RENEWAL
Kaitlin C VenereRussiaIvan Magalhaes RENEWAL
Kadeem Y FollerFranceAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David Y ShinkoFrance2026-08-07Dorl, James J Esq NEW92Ioni Bowcher
1001Julie T GauchoUnited Kingdom2026-08-13King, Christopher A Esq PROPOSAL11Ivan Magalhaes
1002Octavia X GauchoFrance2026-08-07Buckley Miller Wright RENEWAL69Elwin Sharvill
1003Claire E TollnerIndia2026-08-12Buckley Miller Wright NEW29Asiya Javayant
1004Johnson S IturbideUnited Kingdom2026-08-17Commercial Press NEW43Ivan Magalhaes
1005Adams M NickaAustralia2026-07-26Buckley Miller Wright PROPOSAL82Elwin Sharvill
1006Cody O PaprockiSpain2026-07-26Truhlar And Truhlar Attys NEW97Xuxue Feng
1007Aika Y AmigonAustralia2026-08-20Rangoni Of Florence NEGOTIATION9Ioni Bowcher
1008Jefferson X PerinAustralia2026-08-16Printing Dimensions RENEWAL34Anna Fali
1009Isabel U IturbideBrazil2026-08-03Chanay, Jeffrey A Esq UNQUALIFIED40Ivan Magalhaes
1010Julie X SchemmerSpain2026-07-27Dorl, James J Esq NEGOTIATION30Amy Elsner
1011Tony O FlosiGermany2026-07-24Printing Dimensions QUALIFIED7Bernardo Dominic
1012Greenwood W MarrierSpain2026-08-18Printing Dimensions QUALIFIED37Anna Fali
1013Julie G StensethItaly2026-08-20Benton, John B Jr NEW46Anna Fali
1014Smith E KolmetzBrazil2026-08-15King, Christopher A Esq NEGOTIATION55Bernardo Dominic
1015Silvio O FlosiGermany2026-07-27Chapman, Ross E Esq UNQUALIFIED92Asiya Javayant
1016Juan A VocelkaJapan2026-08-13Printing Dimensions RENEWAL47Ioni Bowcher
1017David V OldroydUnited Kingdom2026-08-03Truhlar And Truhlar Attys NEGOTIATION87Stephen Shaw
1018Ashley U KuskoBrazil2026-08-20Chanay, Jeffrey A Esq UNQUALIFIED3Elwin Sharvill
1019Munro N VenereGermany2026-08-18Buckley Miller Wright QUALIFIED31Asiya Javayant
1020Isabel M RimAustralia2026-08-16Chanay, Jeffrey A Esq NEGOTIATION94Asiya Javayant
1021Mujtaba K ChuiUnited Kingdom2026-08-11Feiner Bros RENEWAL71Elwin Sharvill
1022Arvin O SchemmerJapan2026-08-09Buckley Miller Wright NEW17Anna Fali
1023Ricardo D AlbaresAustralia2026-08-20Feiner Bros PROPOSAL37Amy Elsner
1024Mujtaba L BologniaGermany2026-07-26Chapman, Ross E Esq QUALIFIED17Ivan Magalhaes
1025Aruna R AmigonItaly2026-08-01Truhlar And Truhlar Attys RENEWAL5Amy Elsner
1026Wickens W KolmetzCanada2026-07-30Chanay, Jeffrey A Esq NEW52Ivan Magalhaes
1027Cody Q NestleUnited Kingdom2026-08-03Rangoni Of Florence NEGOTIATION68Xuxue Feng
1028Izzy T OstroskyArgentina2026-08-14King, Christopher A Esq NEGOTIATION86Elwin Sharvill
1029Aditya G GauchoUnited Kingdom2026-07-24Morlong Associates QUALIFIED46Ioni Bowcher
1030Aika R StensethArgentina2026-08-20Buckley Miller Wright QUALIFIED32Elwin Sharvill
1031Izzy U StockhamRussia2026-08-14Chapman, Ross E Esq NEW18Ioni Bowcher
1032Jones G DoeArgentina2026-07-25Rousseaux, Michael Esq QUALIFIED21Ioni Bowcher
1033Greenwood C StensethAustralia2026-08-06Chanay, Jeffrey A Esq PROPOSAL73Ioni Bowcher
1034Francesco F PoquetteUnited Kingdom2026-08-11Morlong Associates UNQUALIFIED80Ivan Magalhaes
1035Munro G KuskoJapan2026-08-15Feltz Printing Service PROPOSAL21Anna Fali
1036Costa R DilliardJapan2026-08-08Printing Dimensions NEW19Bernardo Dominic
1037James P GarufiFrance2026-07-25Chemel, James L Cpa NEGOTIATION98Bernardo Dominic
1038Tony V OstroskyCanada2026-07-29Chapman, Ross E Esq QUALIFIED26Elwin Sharvill
1039Smith K StockhamItaly2026-07-30King, Christopher A Esq PROPOSAL70Xuxue Feng
1040Murillo C MorascaSpain2026-07-27Printing Dimensions PROPOSAL24Amy Elsner
1041Munro J AmigonFrance2026-08-05Feltz Printing Service RENEWAL27Elwin Sharvill
1042Murillo A GauchoCanada2026-07-23Feltz Printing Service NEW94Elwin Sharvill
1043Jefferson A FlosiUnited Kingdom2026-08-19Truhlar And Truhlar Attys UNQUALIFIED84Asiya Javayant
1044Smith R WieserArgentina2026-08-12Chanay, Jeffrey A Esq RENEWAL70Xuxue Feng
1045Jennifer U BologniaItaly2026-08-10Commercial Press QUALIFIED74Amy Elsner
1046Ivar C TollnerItaly2026-08-11Benton, John B Jr NEW65Anna Fali
1047Silvio C WhobreyItaly2026-07-25Chapman, Ross E Esq NEW66Xuxue Feng
1048Maria W SaylorsJapan2026-07-23Rangoni Of Florence RENEWAL39Onyama Limba
1049Silvio Q RimAustralia2026-08-18Chanay, Jeffrey A Esq NEGOTIATION56Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mayumi B TollnerItalyOnyama Limba RENEWAL
Alejandro K MaletIndiaElwin Sharvill NEW
Johnson X PoquetteUnited KingdomStephen Shaw RENEWAL
Sinclair K CaldareraFranceBernardo Dominic QUALIFIED
Nicolas K BowleyJapanAmy Elsner NEW
James R KuskoCanadaElwin Sharvill QUALIFIED
Adams X MacleadCanadaAnna Fali PROPOSAL
Mujtaba L GlickItalyOnyama Limba NEGOTIATION
Murillo N KuskoArgentinaIvan Magalhaes NEGOTIATION
Maisha C PaprockiBrazilStephen Shaw RENEWAL
Adams R IturbideGermanyIvan Magalhaes UNQUALIFIED
Aruna Z SaylorsBrazilOnyama Limba QUALIFIED
David M CampainItalyElwin Sharvill UNQUALIFIED
Faith L RimArgentinaIvan Magalhaes RENEWAL
Julie O BriddickItalyIoni Bowcher QUALIFIED
Murillo B CaldareraBrazilIoni Bowcher NEW
Morrow N KuskoFranceAnna Fali RENEWAL
Leja B PaprockiCanadaOnyama Limba QUALIFIED
Jefferson Z PoquetteIndiaOnyama Limba PROPOSAL
Darci O InouyeBrazilStephen Shaw QUALIFIED
Jones F AmigonRussiaIvan Magalhaes NEW
Misaki C KolmetzItalyAmy Elsner NEW
David O RutaJapanIvan Magalhaes NEGOTIATION
Jefferson Z FlosiJapanXuxue Feng QUALIFIED
Juan C AlbaresRussiaBernardo Dominic UNQUALIFIED
Murillo D ButtUnited KingdomIoni Bowcher NEGOTIATION
Cody D MorascaRussiaXuxue Feng NEW
Antonio V MacleadRussiaIoni Bowcher QUALIFIED
Isabel L OstroskyCanadaAsiya Javayant UNQUALIFIED
Darci I MarrierAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois R NestleRussiaIvan Magalhaes UNQUALIFIED
Julie J KolmetzUnited KingdomXuxue Feng PROPOSAL
Izzy V WaycottIndiaBernardo Dominic NEGOTIATION
Jones H VenereBrazilXuxue Feng UNQUALIFIED
Arvin K FigeroaIndiaIvan Magalhaes NEGOTIATION
Silvio S OldroydBrazilIvan Magalhaes NEW
Salvatore X MacleadCanadaStephen Shaw QUALIFIED
Leja H OstroskyUnited KingdomAsiya Javayant NEW
Leon Z WhobreyIndiaAmy Elsner QUALIFIED
Mayumi C MorascaBrazilAsiya Javayant UNQUALIFIED
Faith Q NickaItalyXuxue Feng QUALIFIED
Silvio P MacleadArgentinaStephen Shaw NEGOTIATION
Greenwood N PaprockiGermanyIvan Magalhaes RENEWAL
Deepesh R NickaBrazilAnna Fali NEW
Ashley J WaycottBrazilBernardo Dominic NEGOTIATION
Mujtaba F FollerGermanyStephen Shaw RENEWAL
Johnson R WaycottArgentinaAmy Elsner PROPOSAL
Arvin X WaycottGermanyIvan Magalhaes RENEWAL
Adams X RimJapanAsiya Javayant PROPOSAL
Wickens X RulapaughRussiaAnna Fali PROPOSAL
Frozen Columns
Name
Salvatore J Doe
Kadeem L Caldarera
Aditya Q Venere
Izzy B Flosi
Chavez C Kusko
Smith W Whobrey
Stacey H Poquette
Maria J Perin
Claire K Glick
Chavez G Ruta
Leja Q Nestle
Jones E Doe
Rodrigues B Amigon
Morrow I Foller
Smith N Garufi
Clifford E Chui
Kaitlin Z Waycott
Izzy X Morasca
Deepesh W Figeroa
Leon N Maclead
James R Stockham
Octavia R Tollner
Kaitlin S Caudy
Claire T Caudy
Misaki C Glick
Greenwood O Waycott
Sinclair A Ferencz
Mujtaba I Dilliard
Johnson B Caldarera
Jefferson C Dilliard
Faith J Darakjy
Morrow W Kusko
Leja N Stockham
Chavez G Inouye
Chavez Z Kolmetz
Stacey S Vocelka
Smith S Ferencz
Tony V Inouye
Costa I Schemmer
James H Glick
Francesco Y Dilliard
Ashley N Albares
Sinclair A Nestle
Rodrigues J Garufi
Francesco G Kolmetz
Darci B Briddick
Jeanfrancois A Kusko
Nicolas M Ferencz
Darci C Ferencz
Chavez A Bowley
IdCountryDate
1000Spain2026-07-31
1001Germany2026-07-24
1002United Kingdom2026-08-05
1003Japan2026-07-26
1004Australia2026-07-22
1005India2026-08-01
1006Russia2026-08-15
1007Germany2026-07-24
1008Argentina2026-08-09
1009Argentina2026-08-08
1010United Kingdom2026-08-16
1011Germany2026-08-02
1012Canada2026-08-19
1013Australia2026-08-05
1014Russia2026-08-05
1015Brazil2026-08-17
1016France2026-08-02
1017Germany2026-08-19
1018India2026-08-07
1019Australia2026-07-22
1020United Kingdom2026-08-01
1021Spain2026-08-16
1022Argentina2026-08-13
1023Argentina2026-08-16
1024Italy2026-08-13
1025Canada2026-08-16
1026Russia2026-07-27
1027Australia2026-07-27
1028Australia2026-08-13
1029Russia2026-08-02
1030Russia2026-08-09
1031Australia2026-08-03
1032Canada2026-08-20
1033Russia2026-08-15
1034Argentina2026-08-14
1035Germany2026-08-09
1036India2026-08-18
1037Canada2026-08-07
1038Argentina2026-08-18
1039Australia2026-07-30
1040Russia2026-08-19
1041Italy2026-08-11
1042Japan2026-08-17
1043Italy2026-08-20
1044Brazil2026-08-12
1045Germany2026-08-19
1046Argentina2026-08-09
1047United Kingdom2026-08-14
1048Italy2026-08-05
1049Spain2026-08-11

On-Demand Data

NameIdCountryDate
Leon D Ruta1000Russia2026-08-15
Greenwood U Bolognia1001United Kingdom2026-08-08
Salvatore R Morasca1002Spain2026-08-05
Salvatore Q Flosi1003Japan2026-07-26
Izzy J Foller1004Russia2026-08-08
Rodrigues Y Slusarski1005France2026-08-08
Stacey G Tollner1006Italy2026-08-15
Octavia H Royster1007Canada2026-07-22
Jones U Rim1008Australia2026-08-06
Kaitlin M Malet1009Germany2026-07-27
Izzy S Malet1010Japan2026-08-04
Tony P Malet1011Italy2026-08-11
Aika E Bolognia1012France2026-08-01
Maisha Q Bowley1013Italy2026-08-05
Juan L Gillian1014Australia2026-07-31
David Z Nicka1015Germany2026-08-01
Morrow W Foller1016Brazil2026-07-27
Alejandro Y Whobrey1017Argentina2026-08-03
Alejandro T Morasca1018France2026-08-15
Murillo Z Rim1019Brazil2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco S PaprockiSpainAmy Elsner UNQUALIFIED
Julie U StockhamItalyIoni Bowcher PROPOSAL
Wickens G FollerRussiaAnna Fali NEW
Nicolas Z SergiRussiaAsiya Javayant UNQUALIFIED
Arvin Y IturbideSpainAmy Elsner UNQUALIFIED
Deepesh U BologniaFranceOnyama Limba NEGOTIATION
Clifford H OstroskyItalyIoni Bowcher NEGOTIATION
Sinclair B FerenczBrazilOnyama Limba QUALIFIED
Maria F OstroskyArgentinaXuxue Feng NEGOTIATION
Cody T RoysterItalyStephen Shaw UNQUALIFIED
Ivar A RoysterUnited KingdomAnna Fali QUALIFIED
Izzy X AlbaresJapanBernardo Dominic PROPOSAL
Ivar K GlickCanadaOnyama Limba RENEWAL
Izzy K MorascaJapanAmy Elsner NEW
Aditya Y KuskoCanadaStephen Shaw PROPOSAL
Johnson E WhobreyArgentinaOnyama Limba UNQUALIFIED
Morrow R MaletIndiaIvan Magalhaes UNQUALIFIED
Darci L VenereJapanAnna Fali NEGOTIATION
Izzy T StensethRussiaXuxue Feng NEGOTIATION
Octavia W MarrierRussiaXuxue Feng UNQUALIFIED
Arvin T VocelkaItalyAnna Fali NEW
Jennifer E RutaItalyStephen Shaw PROPOSAL
Isabel O FlosiBrazilAsiya Javayant RENEWAL
Juan L MaletUnited KingdomXuxue Feng UNQUALIFIED
James X InouyeAustraliaIoni Bowcher RENEWAL
Ashley R OldroydUnited KingdomIoni Bowcher NEGOTIATION
Arvin C DoeUnited KingdomIoni Bowcher UNQUALIFIED
Emily B BologniaArgentinaAmy Elsner NEGOTIATION
David N MarrierArgentinaElwin Sharvill UNQUALIFIED
Juan Y VenereFranceAnna Fali QUALIFIED
Clifford T RoysterUnited KingdomStephen Shaw UNQUALIFIED
Maisha R PaprockiArgentinaIoni Bowcher PROPOSAL
Munro E IturbideCanadaAmy Elsner PROPOSAL
Jones P RimGermanyStephen Shaw NEGOTIATION
Maisha F SergiCanadaStephen Shaw PROPOSAL
Morrow Y AlbaresAustraliaAmy Elsner QUALIFIED
Antonio P FerenczGermanyStephen Shaw PROPOSAL
Sinclair B CampainItalyStephen Shaw QUALIFIED
Stacey H BriddickBrazilElwin Sharvill QUALIFIED
Stacey X SlusarskiSpainXuxue Feng 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>