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
Smith D WieserBrazilIvan Magalhaes RENEWAL
Leon M CaudyItalyAmy Elsner UNQUALIFIED
Greenwood U PaprockiGermanyStephen Shaw NEGOTIATION
Aruna A MorascaFranceAmy Elsner NEW
Arvin W ShinkoBrazilIoni Bowcher NEGOTIATION
Deepesh Y MaletFranceBernardo Dominic RENEWAL
Smith D SaylorsArgentinaIoni Bowcher NEW
Salvatore D CaudyCanadaXuxue Feng QUALIFIED
Silvio B DilliardBrazilAsiya Javayant QUALIFIED
Ivar G RimArgentinaElwin Sharvill NEW
Jones L SchemmerCanadaBernardo Dominic RENEWAL
Jennifer O FollerSpainOnyama Limba NEGOTIATION
Mujtaba Q MacleadCanadaElwin Sharvill PROPOSAL
Francesco G KuskoFranceStephen Shaw QUALIFIED
Munro U RoysterRussiaIoni Bowcher UNQUALIFIED
Arvin A MacleadBrazilBernardo Dominic UNQUALIFIED
Ivar M FigeroaItalyStephen Shaw NEW
Aruna R ButtCanadaIoni Bowcher RENEWAL
Aruna Q VocelkaAustraliaOnyama Limba NEW
Kaitlin O VocelkaBrazilElwin Sharvill QUALIFIED
Wickens E GillianItalyIoni Bowcher NEW
Mujtaba M RulapaughAustraliaBernardo Dominic UNQUALIFIED
Smith F RutaArgentinaBernardo Dominic UNQUALIFIED
Salvatore E DilliardBrazilIvan Magalhaes UNQUALIFIED
Juan Y RulapaughIndiaOnyama Limba NEGOTIATION
Aditya Q MaletAustraliaIvan Magalhaes NEW
Ashley Z BriddickCanadaAmy Elsner UNQUALIFIED
Wickens F KolmetzCanadaIvan Magalhaes NEGOTIATION
Wickens S PoquetteRussiaXuxue Feng NEW
Jennifer K FollerRussiaIoni Bowcher PROPOSAL
Munro S DilliardRussiaStephen Shaw PROPOSAL
Rodrigues D MorascaItalyAmy Elsner UNQUALIFIED
Adams W PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Ashley T GlickRussiaStephen Shaw PROPOSAL
Ivar P PaprockiJapanAsiya Javayant RENEWAL
Munro V DoeSpainIoni Bowcher RENEWAL
Cody F AlbaresAustraliaBernardo Dominic QUALIFIED
Mujtaba G MacleadSpainOnyama Limba QUALIFIED
Jones J KuskoBrazilElwin Sharvill UNQUALIFIED
Ivar S PoquetteCanadaIvan Magalhaes NEGOTIATION
Octavia F CaudyUnited KingdomIvan Magalhaes PROPOSAL
Jennifer S FigeroaArgentinaOnyama Limba NEGOTIATION
Salvatore T DilliardJapanAsiya Javayant NEGOTIATION
Faith C AlbaresSpainAsiya Javayant RENEWAL
Greenwood P NestleUnited KingdomAmy Elsner NEGOTIATION
Costa Z MaletItalyIvan Magalhaes QUALIFIED
Maria X CaudyRussiaXuxue Feng RENEWAL
Antonio H ShinkoUnited KingdomElwin Sharvill NEW
Kadeem V MorascaCanadaIoni Bowcher NEW
Adams T OstroskyGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo S PoquetteItalyAmy Elsner NEGOTIATION
Clifford P PaprockiGermanyStephen Shaw NEGOTIATION
Aruna P PaprockiItalyXuxue Feng NEW
Ashley P OldroydSpainIvan Magalhaes NEGOTIATION
Mujtaba Y SergiJapanElwin Sharvill QUALIFIED
Maisha C FollerItalyIvan Magalhaes PROPOSAL
Darci M GauchoCanadaXuxue Feng NEW
Ricardo U WhobreyGermanyOnyama Limba NEW
Octavia C KolmetzJapanOnyama Limba NEGOTIATION
Murillo G BowleyBrazilOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Q BowleyBrazil2026-08-17King, Christopher A Esq NEW10Stephen Shaw
1001Misaki I TollnerItaly2026-08-01Feltz Printing Service PROPOSAL91Elwin Sharvill
1002Ivar S InouyeFrance2026-07-20Chemel, James L Cpa RENEWAL79Amy Elsner
1003Morrow G VocelkaGermany2026-08-14Truhlar And Truhlar Attys NEW49Xuxue Feng
1004Mujtaba M SaylorsItaly2026-07-28Morlong Associates NEW18Anna Fali
1005Johnson A AlbaresIndia2026-08-04Benton, John B Jr QUALIFIED48Elwin Sharvill
1006Nicolas X WhobreyGermany2026-07-22Feiner Bros QUALIFIED16Anna Fali
1007Jefferson N MarrierSpain2026-07-20Buckley Miller Wright NEW36Onyama Limba
1008Francesco N RutaCanada2026-08-16Chapman, Ross E Esq NEW12Xuxue Feng
1009Faith B CaudyRussia2026-08-03Commercial Press QUALIFIED41Asiya Javayant
1010Aruna B PerinIndia2026-07-28Chapman, Ross E Esq NEGOTIATION64Onyama Limba
1011Chavez R VocelkaIndia2026-07-30Printing Dimensions UNQUALIFIED70Bernardo Dominic
1012Jennifer Q GlickUnited Kingdom2026-08-12King, Christopher A Esq QUALIFIED38Ioni Bowcher
1013Maisha W StensethGermany2026-07-20Rangoni Of Florence RENEWAL2Asiya Javayant
1014Adams V CampainSpain2026-07-22Truhlar And Truhlar Attys NEW79Elwin Sharvill
1015Faith X WieserGermany2026-08-06Morlong Associates PROPOSAL38Anna Fali
1016Munro P FollerArgentina2026-08-10Chemel, James L Cpa NEGOTIATION71Ivan Magalhaes
1017Mayumi C StockhamFrance2026-08-16Buckley Miller Wright NEGOTIATION26Onyama Limba
1018Alejandro Z GarufiAustralia2026-08-03Rousseaux, Michael Esq NEW10Bernardo Dominic
1019Kadeem G FlosiRussia2026-08-15Chapman, Ross E Esq NEGOTIATION44Asiya Javayant
1020Chavez V DoeFrance2026-08-16Chemel, James L Cpa PROPOSAL45Bernardo Dominic
1021Ashley N MorascaGermany2026-08-17Truhlar And Truhlar Attys PROPOSAL47Asiya Javayant
1022Deepesh S WhobreyRussia2026-08-15Feltz Printing Service UNQUALIFIED1Ivan Magalhaes
1023Octavia C WhobreySpain2026-07-29Chapman, Ross E Esq UNQUALIFIED18Stephen Shaw
1024Wickens G GarufiJapan2026-07-31Feltz Printing Service RENEWAL23Ioni Bowcher
1025Smith S SergiIndia2026-07-25Chanay, Jeffrey A Esq NEW58Stephen Shaw
1026Ashley P FigeroaCanada2026-07-22Benton, John B Jr RENEWAL44Amy Elsner
1027Isabel J FollerJapan2026-08-09Rousseaux, Michael Esq PROPOSAL83Ioni Bowcher
1028Johnson Z PerinAustralia2026-08-12Rousseaux, Michael Esq RENEWAL85Elwin Sharvill
1029Emily U VocelkaItaly2026-07-30King, Christopher A Esq NEGOTIATION58Xuxue Feng
1030Maisha Z AmigonArgentina2026-08-04Truhlar And Truhlar Attys NEW60Ioni Bowcher
1031Aika N MacleadCanada2026-08-01Truhlar And Truhlar Attys NEGOTIATION50Amy Elsner
1032Murillo N RimJapan2026-07-26Benton, John B Jr NEW38Onyama Limba
1033Johnson H DarakjyItaly2026-08-11Chanay, Jeffrey A Esq NEW4Bernardo Dominic
1034Isabel V MaletCanada2026-08-12Chapman, Ross E Esq PROPOSAL61Asiya Javayant
1035Jones S BologniaItaly2026-08-13Morlong Associates UNQUALIFIED34Stephen Shaw
1036Kaitlin U FigeroaGermany2026-07-21Buckley Miller Wright QUALIFIED84Bernardo Dominic
1037Francesco M OldroydGermany2026-07-22Chemel, James L Cpa NEGOTIATION63Anna Fali
1038Johnson R GillianRussia2026-08-02Morlong Associates UNQUALIFIED80Onyama Limba
1039Aditya W GarufiGermany2026-07-22Commercial Press RENEWAL68Ivan Magalhaes
1040Darci R SlusarskiArgentina2026-08-12Rangoni Of Florence PROPOSAL86Xuxue Feng
1041Chavez G VenereSpain2026-08-12Feiner Bros PROPOSAL45Asiya Javayant
1042Aika J InouyeSpain2026-07-31Rousseaux, Michael Esq RENEWAL6Bernardo Dominic
1043James L SaylorsFrance2026-07-20Feiner Bros NEGOTIATION41Asiya Javayant
1044Salvatore W MorascaItaly2026-07-27Rangoni Of Florence RENEWAL89Bernardo Dominic
1045Sinclair E FerenczArgentina2026-07-23Printing Dimensions PROPOSAL50Ioni Bowcher
1046Leon P NestleArgentina2026-08-07Feiner Bros QUALIFIED53Onyama Limba
1047Rodrigues W MaletSpain2026-07-21Rousseaux, Michael Esq UNQUALIFIED68Stephen Shaw
1048Chavez K ChuiJapan2026-08-13Buckley Miller Wright UNQUALIFIED3Asiya Javayant
1049Deepesh L RutaFrance2026-07-23King, Christopher A Esq NEGOTIATION5Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Arvin R KolmetzArgentinaAnna Fali RENEWAL
Ricardo K PerinFranceIvan Magalhaes PROPOSAL
Leja H BologniaAustraliaBernardo Dominic NEW
Maria M ButtArgentinaBernardo Dominic QUALIFIED
Faith B ChuiCanadaAnna Fali UNQUALIFIED
Salvatore A AlbaresItalyElwin Sharvill NEGOTIATION
Costa E PoquetteCanadaAmy Elsner QUALIFIED
Ivar N WhobreyCanadaElwin Sharvill NEW
Rodrigues J RutaArgentinaStephen Shaw PROPOSAL
Kaitlin S PerinCanadaIoni Bowcher QUALIFIED
Greenwood M MaletSpainIvan Magalhaes NEGOTIATION
Alejandro Y VenereBrazilAmy Elsner RENEWAL
Tony Z DilliardRussiaStephen Shaw RENEWAL
Antonio F TollnerBrazilAmy Elsner NEW
Alejandro I GillianIndiaAnna Fali NEGOTIATION
Isabel T BologniaJapanAmy Elsner UNQUALIFIED
Costa H MaletCanadaAnna Fali RENEWAL
Emily G MaletCanadaAnna Fali QUALIFIED
Faith C MacleadIndiaIoni Bowcher NEGOTIATION
Antonio R FlosiUnited KingdomAnna Fali PROPOSAL
Salvatore K GauchoArgentinaOnyama Limba NEGOTIATION
Leon T MarrierIndiaOnyama Limba NEW
James Y GillianBrazilIoni Bowcher NEGOTIATION
Leja F DilliardBrazilBernardo Dominic PROPOSAL
Jennifer S MacleadArgentinaStephen Shaw QUALIFIED
Maisha S NestleBrazilIvan Magalhaes UNQUALIFIED
Johnson L ShinkoRussiaBernardo Dominic NEGOTIATION
Stacey C ChuiAustraliaElwin Sharvill NEW
Jefferson F DilliardCanadaIoni Bowcher PROPOSAL
Ashley I WhobreyUnited KingdomStephen Shaw PROPOSAL
Juan Q GauchoItalyXuxue Feng NEW
Costa Q NestleItalyIvan Magalhaes NEGOTIATION
Octavia D IturbideFranceIvan Magalhaes UNQUALIFIED
Misaki Z DarakjyItalyElwin Sharvill QUALIFIED
Jones I PaprockiUnited KingdomBernardo Dominic RENEWAL
Izzy W PoquetteIndiaAmy Elsner NEW
Ashley J DarakjyIndiaAmy Elsner QUALIFIED
Jeanfrancois J RimIndiaAsiya Javayant QUALIFIED
Alejandro V CaudyUnited KingdomIvan Magalhaes RENEWAL
Claire R RulapaughUnited KingdomAsiya Javayant QUALIFIED
Chavez A FerenczSpainAsiya Javayant RENEWAL
Nicolas R FerenczJapanAsiya Javayant UNQUALIFIED
Mujtaba N BriddickAustraliaAmy Elsner UNQUALIFIED
Arvin E BologniaArgentinaElwin Sharvill PROPOSAL
Jeanfrancois G DoeGermanyElwin Sharvill QUALIFIED
Jefferson A NestleRussiaIvan Magalhaes NEGOTIATION
Aditya P OldroydItalyIoni Bowcher NEGOTIATION
Wickens M CaldareraJapanIoni Bowcher RENEWAL
Jeanfrancois F BologniaGermanyXuxue Feng UNQUALIFIED
Murillo R MaletRussiaOnyama Limba NEW
Frozen Columns
Name
Aika J Oldroyd
Munro L Chui
Ricardo Y Albares
Juan X Tollner
Nicolas S Poquette
Morrow Y Darakjy
Ashley C Malet
Salvatore V Flosi
Juan B Ferencz
David H Nicka
Aika S Bowley
Adams X Caudy
Misaki H Bolognia
Maisha H Gaucho
Jefferson Y Waycott
Ricardo Z Malet
Jennifer C Ferencz
Jennifer Q Doe
Leja D Bowley
Faith P Rim
Rodrigues Y Stenseth
Tony P Garufi
Mayumi Y Doe
James G Tollner
Chavez P Ostrosky
Clifford B Flosi
Kaitlin M Bowley
Jones D Caldarera
Leon C Nestle
Aruna V Darakjy
Rodrigues E Albares
Emily D Flosi
Maria R Bowley
Misaki V Oldroyd
Octavia C Waycott
Greenwood X Malet
Jennifer E Kusko
Maisha O Shinko
Aika J Caldarera
Salvatore F Briddick
Aruna A Tollner
Murillo I Albares
Ivar C Whobrey
Deepesh I Nestle
Octavia U Tollner
Maria S Campain
Johnson R Saylors
Stacey Q Venere
Costa U Chui
Cody L Stenseth
IdCountryDate
1000Italy2026-07-31
1001Argentina2026-08-04
1002Japan2026-08-01
1003Canada2026-08-05
1004Germany2026-07-21
1005Japan2026-08-06
1006United Kingdom2026-07-26
1007Canada2026-08-06
1008Germany2026-08-16
1009Japan2026-08-11
1010Japan2026-08-16
1011Germany2026-07-22
1012Italy2026-07-30
1013Italy2026-08-09
1014Italy2026-08-09
1015Italy2026-08-16
1016Germany2026-08-04
1017Australia2026-08-02
1018Canada2026-08-15
1019Australia2026-08-07
1020Spain2026-08-05
1021Italy2026-07-26
1022Canada2026-08-09
1023Brazil2026-07-28
1024Brazil2026-08-15
1025Italy2026-07-21
1026Canada2026-08-01
1027United Kingdom2026-07-26
1028Russia2026-08-03
1029Italy2026-08-09
1030Germany2026-07-20
1031United Kingdom2026-07-19
1032Argentina2026-08-16
1033United Kingdom2026-08-17
1034Argentina2026-07-30
1035Australia2026-08-06
1036Canada2026-07-19
1037Germany2026-08-12
1038Japan2026-07-23
1039United Kingdom2026-08-08
1040Brazil2026-07-29
1041Japan2026-08-16
1042India2026-07-22
1043India2026-07-21
1044Brazil2026-07-29
1045France2026-07-25
1046Australia2026-08-01
1047India2026-07-23
1048Russia2026-07-26
1049United Kingdom2026-07-23

On-Demand Data

NameIdCountryDate
Arvin C Shinko1000India2026-08-09
Deepesh I Sergi1001United Kingdom2026-08-09
Francesco C Figeroa1002France2026-07-31
Ricardo N Wieser1003Russia2026-08-11
Darci I Foller1004Australia2026-08-01
Aruna J Malet1005Italy2026-08-06
Jennifer P Sergi1006Germany2026-08-01
Murillo M Perin1007Brazil2026-07-20
Ricardo Y Rulapaugh1008Australia2026-07-29
Jeanfrancois A Campain1009Australia2026-08-13
Maisha U Nicka1010Brazil2026-08-13
Johnson U Iturbide1011Italy2026-08-17
Ashley A Ostrosky1012Canada2026-07-22
James O Venere1013Brazil2026-07-23
Juan X Dilliard1014United Kingdom2026-07-29
Wickens X Iturbide1015Australia2026-08-12
Costa R Saylors1016Italy2026-08-04
Clifford D Sergi1017United Kingdom2026-08-06
Juan U Inouye1018Argentina2026-08-16
Morrow I Rulapaugh1019Germany2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Y ShinkoCanadaAmy Elsner QUALIFIED
Stacey Y FerenczJapanElwin Sharvill QUALIFIED
Wickens V SchemmerArgentinaElwin Sharvill RENEWAL
Cody R WaycottItalyXuxue Feng UNQUALIFIED
Tony H ButtRussiaXuxue Feng NEGOTIATION
Arvin Y CampainJapanBernardo Dominic QUALIFIED
Ivar Y BologniaIndiaAsiya Javayant RENEWAL
Jones X PerinItalyBernardo Dominic NEGOTIATION
Francesco S CaudyItalyAnna Fali QUALIFIED
David O FerenczFranceAmy Elsner UNQUALIFIED
Johnson C StensethAustraliaOnyama Limba RENEWAL
Jefferson P FerenczItalyOnyama Limba RENEWAL
Salvatore R AmigonIndiaStephen Shaw RENEWAL
Jeanfrancois Q PaprockiGermanyOnyama Limba PROPOSAL
Ashley Z CaudyArgentinaAnna Fali QUALIFIED
Maria K RoysterItalyAsiya Javayant QUALIFIED
Deepesh U RulapaughArgentinaAmy Elsner UNQUALIFIED
Francesco H MacleadJapanElwin Sharvill RENEWAL
Misaki W GlickGermanyAmy Elsner QUALIFIED
Kadeem W MacleadCanadaElwin Sharvill PROPOSAL
Chavez Q NickaItalyElwin Sharvill UNQUALIFIED
Silvio N PoquetteAustraliaIoni Bowcher PROPOSAL
James H BriddickBrazilStephen Shaw QUALIFIED
Juan C PerinIndiaStephen Shaw NEGOTIATION
Nicolas O WhobreySpainElwin Sharvill PROPOSAL
Adams V FigeroaArgentinaOnyama Limba RENEWAL
Morrow G PaprockiAustraliaElwin Sharvill RENEWAL
Stacey U CaldareraJapanBernardo Dominic PROPOSAL
Adams G IturbideJapanXuxue Feng UNQUALIFIED
Smith V NickaSpainOnyama Limba QUALIFIED
Emily O FlosiRussiaXuxue Feng NEGOTIATION
Munro H WaycottItalyAmy Elsner PROPOSAL
Aruna L GarufiUnited KingdomIvan Magalhaes QUALIFIED
Arvin T BriddickFranceBernardo Dominic UNQUALIFIED
Nicolas S GauchoCanadaBernardo Dominic UNQUALIFIED
Stacey K SergiUnited KingdomIoni Bowcher NEGOTIATION
Octavia X WieserGermanyIoni Bowcher RENEWAL
Johnson K InouyeUnited KingdomAnna Fali PROPOSAL
Salvatore K StockhamAustraliaIoni Bowcher RENEWAL
Cody M SchemmerAustraliaStephen Shaw QUALIFIED

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