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
Mujtaba V MaletArgentinaIvan Magalhaes UNQUALIFIED
Johnson Q FerenczUnited KingdomBernardo Dominic QUALIFIED
Arvin Z AlbaresJapanOnyama Limba QUALIFIED
Johnson U SergiIndiaAnna Fali QUALIFIED
Mayumi U NestleUnited KingdomAsiya Javayant NEW
Salvatore E CaudyGermanyBernardo Dominic NEW
Kaitlin Z FerenczUnited KingdomElwin Sharvill NEW
Salvatore Z NestleArgentinaAmy Elsner NEGOTIATION
Silvio E CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Arvin U WieserSpainIvan Magalhaes PROPOSAL
Julie N BriddickRussiaStephen Shaw NEGOTIATION
Nicolas Q GillianFranceElwin Sharvill PROPOSAL
Munro V GarufiRussiaAnna Fali PROPOSAL
Jennifer K GarufiArgentinaBernardo Dominic NEW
Jennifer M DilliardAustraliaElwin Sharvill NEGOTIATION
Ricardo G BriddickRussiaAnna Fali RENEWAL
Greenwood Z CaldareraSpainOnyama Limba QUALIFIED
Aditya H GlickBrazilStephen Shaw NEW
Octavia Z WhobreySpainXuxue Feng QUALIFIED
Murillo Z CaudyArgentinaAmy Elsner UNQUALIFIED
James L NestleGermanyXuxue Feng QUALIFIED
Aditya R StockhamFranceXuxue Feng RENEWAL
Mayumi D WaycottItalyAnna Fali NEGOTIATION
Costa N BologniaArgentinaAmy Elsner NEGOTIATION
Cody V OldroydCanadaXuxue Feng PROPOSAL
James M SlusarskiGermanyIoni Bowcher NEW
Sinclair J FerenczArgentinaAnna Fali NEGOTIATION
Silvio R ButtRussiaOnyama Limba NEW
Alejandro P IturbideUnited KingdomXuxue Feng NEGOTIATION
Ashley R AmigonBrazilIvan Magalhaes RENEWAL
Salvatore P BriddickBrazilIvan Magalhaes QUALIFIED
Chavez S ButtAustraliaXuxue Feng QUALIFIED
Leja Z RimBrazilStephen Shaw PROPOSAL
Octavia T TollnerCanadaAsiya Javayant UNQUALIFIED
Julie I ShinkoAustraliaXuxue Feng RENEWAL
Stacey D DilliardBrazilOnyama Limba PROPOSAL
Stacey C IturbideUnited KingdomXuxue Feng UNQUALIFIED
Aika V DarakjyGermanyAnna Fali QUALIFIED
Mujtaba Y GauchoBrazilElwin Sharvill PROPOSAL
Jones N NickaAustraliaIoni Bowcher RENEWAL
Aditya O IturbideArgentinaAsiya Javayant QUALIFIED
Jeanfrancois E DarakjyRussiaElwin Sharvill NEGOTIATION
Jefferson P RoysterUnited KingdomIoni Bowcher RENEWAL
Leja P GarufiJapanIoni Bowcher NEW
Izzy Q RoysterArgentinaStephen Shaw NEGOTIATION
Johnson J StockhamIndiaIoni Bowcher QUALIFIED
Stacey E DilliardBrazilElwin Sharvill NEGOTIATION
Kaitlin E MacleadCanadaIvan Magalhaes NEW
Leja T GillianBrazilBernardo Dominic UNQUALIFIED
Francesco O ChuiAustraliaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow J MorascaGermanyAnna Fali UNQUALIFIED
Darci Y IturbideJapanAsiya Javayant RENEWAL
Stacey Q InouyeSpainElwin Sharvill UNQUALIFIED
Aditya Y DarakjySpainBernardo Dominic NEGOTIATION
Jones V CaudyFranceIoni Bowcher RENEWAL
Maria B MorascaJapanAmy Elsner PROPOSAL
Salvatore E MaletIndiaAnna Fali NEW
Jeanfrancois O StensethArgentinaStephen Shaw RENEWAL
Wickens E FigeroaCanadaElwin Sharvill RENEWAL
Aruna X OldroydGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria Z MacleadArgentina2025-06-10Printing Dimensions QUALIFIED8Amy Elsner
1001Clifford R MarrierSpain2025-06-01Chemel, James L Cpa QUALIFIED16Bernardo Dominic
1002Greenwood F FlosiIndia2025-06-07Buckley Miller Wright RENEWAL87Anna Fali
1003Adams Q MorascaRussia2025-06-05Morlong Associates QUALIFIED58Elwin Sharvill
1004Sinclair E NestleJapan2025-05-30Chemel, James L Cpa NEGOTIATION16Elwin Sharvill
1005Jones Q RoysterBrazil2025-06-09Buckley Miller Wright QUALIFIED12Amy Elsner
1006Isabel O WaycottArgentina2025-05-29Printing Dimensions QUALIFIED49Anna Fali
1007Faith X KolmetzUnited Kingdom2025-05-24Buckley Miller Wright NEGOTIATION9Anna Fali
1008Isabel K DarakjyBrazil2025-06-07Chanay, Jeffrey A Esq NEW69Ioni Bowcher
1009Antonio G ButtFrance2025-06-03Rousseaux, Michael Esq RENEWAL23Ivan Magalhaes
1010Aditya R PerinItaly2025-06-03Buckley Miller Wright PROPOSAL28Bernardo Dominic
1011Aditya W InouyeFrance2025-05-27Dorl, James J Esq NEGOTIATION98Xuxue Feng
1012Rodrigues K MaletIndia2025-06-13Printing Dimensions NEGOTIATION64Amy Elsner
1013James V SaylorsGermany2025-05-21Chanay, Jeffrey A Esq PROPOSAL19Asiya Javayant
1014Maria V FigeroaUnited Kingdom2025-06-07Printing Dimensions QUALIFIED75Amy Elsner
1015Misaki O PaprockiGermany2025-06-10Chemel, James L Cpa NEGOTIATION51Asiya Javayant
1016Greenwood S MarrierGermany2025-05-21Chapman, Ross E Esq UNQUALIFIED48Bernardo Dominic
1017Jeanfrancois K ShinkoUnited Kingdom2025-05-30Chapman, Ross E Esq NEGOTIATION34Xuxue Feng
1018Ivar V WaycottIndia2025-05-18Commercial Press PROPOSAL26Asiya Javayant
1019Mujtaba F GillianSpain2025-06-01Dorl, James J Esq PROPOSAL52Stephen Shaw
1020Tony S SergiIndia2025-05-23Feiner Bros NEW68Ivan Magalhaes
1021Alejandro W MaletItaly2025-06-04Dorl, James J Esq NEW98Elwin Sharvill
1022Deepesh P WaycottRussia2025-05-16Feiner Bros NEW7Bernardo Dominic
1023Darci Q AmigonRussia2025-05-16Dorl, James J Esq QUALIFIED64Asiya Javayant
1024Sinclair Q NickaItaly2025-06-01King, Christopher A Esq RENEWAL1Amy Elsner
1025Izzy Q SlusarskiArgentina2025-05-26King, Christopher A Esq UNQUALIFIED67Onyama Limba
1026Stacey J TollnerItaly2025-05-22Feiner Bros PROPOSAL61Bernardo Dominic
1027Morrow Z VocelkaUnited Kingdom2025-05-21Dorl, James J Esq RENEWAL58Asiya Javayant
1028Jones Q PoquetteArgentina2025-06-12King, Christopher A Esq UNQUALIFIED4Onyama Limba
1029Stacey D GillianBrazil2025-06-08Chapman, Ross E Esq NEGOTIATION6Stephen Shaw
1030Sinclair W CaldareraArgentina2025-05-28Rousseaux, Michael Esq RENEWAL45Asiya Javayant
1031Leon A RoysterItaly2025-05-27Rangoni Of Florence UNQUALIFIED60Ivan Magalhaes
1032Silvio P ShinkoAustralia2025-06-12King, Christopher A Esq RENEWAL0Onyama Limba
1033Jennifer G MacleadFrance2025-05-16Chanay, Jeffrey A Esq RENEWAL0Anna Fali
1034Alejandro E MorascaUnited Kingdom2025-06-10Morlong Associates PROPOSAL4Stephen Shaw
1035Aruna V OstroskyJapan2025-05-29Chemel, James L Cpa PROPOSAL26Stephen Shaw
1036Jeanfrancois J WieserGermany2025-05-19Printing Dimensions UNQUALIFIED43Onyama Limba
1037Chavez P BriddickArgentina2025-06-14Printing Dimensions NEW54Asiya Javayant
1038Jefferson L MacleadArgentina2025-05-16Benton, John B Jr PROPOSAL81Xuxue Feng
1039Adams G CaudyArgentina2025-05-27Truhlar And Truhlar Attys RENEWAL45Onyama Limba
1040Arvin V PoquetteJapan2025-06-07Feltz Printing Service PROPOSAL8Bernardo Dominic
1041Greenwood X SaylorsIndia2025-06-12Feltz Printing Service UNQUALIFIED6Bernardo Dominic
1042Aditya Z SchemmerRussia2025-06-14Truhlar And Truhlar Attys PROPOSAL10Ioni Bowcher
1043Deepesh J ButtBrazil2025-06-07Rousseaux, Michael Esq PROPOSAL34Amy Elsner
1044Leon X WieserGermany2025-06-09Dorl, James J Esq UNQUALIFIED99Ivan Magalhaes
1045Nicolas F VocelkaIndia2025-05-19Truhlar And Truhlar Attys PROPOSAL20Onyama Limba
1046Salvatore A OldroydItaly2025-06-09Rangoni Of Florence NEGOTIATION87Xuxue Feng
1047Leja E AmigonRussia2025-05-30King, Christopher A Esq PROPOSAL74Onyama Limba
1048Ivar F GauchoRussia2025-05-20Morlong Associates NEGOTIATION40Ioni Bowcher
1049Deepesh I GillianAustralia2025-06-10Feiner Bros QUALIFIED5Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Munro R RutaBrazilIoni Bowcher NEGOTIATION
Costa B CaudyItalyIoni Bowcher NEW
Isabel Z SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Antonio Y NickaSpainElwin Sharvill RENEWAL
Sinclair T SchemmerJapanOnyama Limba UNQUALIFIED
Antonio X MarrierAustraliaAmy Elsner RENEWAL
Juan T GillianRussiaStephen Shaw QUALIFIED
Ashley S KolmetzSpainAsiya Javayant QUALIFIED
Rodrigues O ShinkoAustraliaElwin Sharvill RENEWAL
Francesco Z InouyeSpainBernardo Dominic NEGOTIATION
Smith L OldroydJapanStephen Shaw NEGOTIATION
Nicolas G CaldareraRussiaAnna Fali QUALIFIED
Costa D FollerBrazilXuxue Feng NEW
Jones V GauchoGermanyOnyama Limba QUALIFIED
Leja U RulapaughRussiaAsiya Javayant UNQUALIFIED
Chavez K MacleadJapanAmy Elsner QUALIFIED
Salvatore V RutaFranceOnyama Limba NEGOTIATION
Leon H OstroskyJapanIvan Magalhaes UNQUALIFIED
Nicolas G InouyeIndiaElwin Sharvill NEGOTIATION
Deepesh H NestleJapanIvan Magalhaes UNQUALIFIED
Greenwood X FlosiArgentinaIvan Magalhaes RENEWAL
Kaitlin N FigeroaItalyAmy Elsner NEW
Murillo V ChuiItalyStephen Shaw NEGOTIATION
Morrow V ButtJapanElwin Sharvill PROPOSAL
Jennifer V AmigonIndiaIoni Bowcher NEGOTIATION
Chavez M RutaBrazilIvan Magalhaes RENEWAL
Aika N RutaJapanAsiya Javayant PROPOSAL
Johnson N MorascaIndiaOnyama Limba RENEWAL
Maria J VocelkaUnited KingdomIvan Magalhaes RENEWAL
Kadeem E DilliardItalyIvan Magalhaes UNQUALIFIED
Mujtaba Z ShinkoSpainBernardo Dominic UNQUALIFIED
Rodrigues U WieserJapanIoni Bowcher RENEWAL
Darci C RutaFranceIvan Magalhaes QUALIFIED
Jeanfrancois K FlosiItalyIoni Bowcher RENEWAL
Juan Q GarufiRussiaAmy Elsner NEGOTIATION
Jeanfrancois M SchemmerBrazilAsiya Javayant PROPOSAL
Ivar K GauchoJapanIvan Magalhaes RENEWAL
Emily X MaletFranceAmy Elsner PROPOSAL
Johnson B DoeJapanStephen Shaw NEW
Juan W IturbideCanadaAmy Elsner NEW
David K FollerGermanyBernardo Dominic NEW
Silvio K InouyeArgentinaAsiya Javayant PROPOSAL
Chavez J AlbaresIndiaOnyama Limba PROPOSAL
Juan E SaylorsBrazilElwin Sharvill UNQUALIFIED
Aditya N FerenczCanadaBernardo Dominic NEGOTIATION
Sinclair P DoeRussiaOnyama Limba RENEWAL
Aditya D DarakjyBrazilBernardo Dominic UNQUALIFIED
Maria U CaldareraCanadaIvan Magalhaes RENEWAL
Isabel K GauchoGermanyElwin Sharvill UNQUALIFIED
Claire C MaletArgentinaIvan Magalhaes NEW
Frozen Columns
Name
Antonio V Paprocki
Aika S Stenseth
Maria E Garufi
Ricardo I Rim
Tony L Iturbide
Leon I Stenseth
Salvatore V Poquette
Tony F Gaucho
Juan P Gaucho
Smith K Albares
Jones B Rim
Stacey V Vocelka
James M Butt
Maisha X Bowley
Misaki K Caudy
Aruna H Doe
James K Doe
Claire Q Wieser
Misaki K Waycott
Arvin S Wieser
Jones M Briddick
Emily N Albares
Leon P Wieser
Rodrigues F Paprocki
Adams O Oldroyd
Morrow R Wieser
Emily A Iturbide
Murillo W Rulapaugh
Arvin G Kusko
Emily L Royster
Antonio A Stenseth
Claire B Oldroyd
Tony X Bowley
Ashley P Vocelka
Cody W Whobrey
Mayumi E Oldroyd
Silvio T Albares
Kaitlin G Kusko
Wickens T Ostrosky
Darci T Gillian
Alejandro J Saylors
Chavez O Darakjy
Leon Z Caldarera
Darci I Butt
Misaki G Figeroa
Arvin N Slusarski
Silvio R Waycott
Alejandro K Marrier
Clifford P Butt
Clifford T Iturbide
IdCountryDate
1000India2025-05-26
1001Argentina2025-06-12
1002United Kingdom2025-05-16
1003Italy2025-06-04
1004United Kingdom2025-05-28
1005Russia2025-06-13
1006Spain2025-06-07
1007India2025-05-27
1008Argentina2025-06-01
1009Brazil2025-05-22
1010Germany2025-05-26
1011Spain2025-06-10
1012United Kingdom2025-06-10
1013Italy2025-05-26
1014United Kingdom2025-06-11
1015Australia2025-06-01
1016Brazil2025-06-11
1017Japan2025-06-06
1018Argentina2025-05-27
1019Argentina2025-05-21
1020India2025-05-23
1021United Kingdom2025-06-14
1022United Kingdom2025-05-22
1023Brazil2025-06-06
1024Germany2025-05-18
1025Japan2025-05-29
1026Russia2025-06-08
1027France2025-05-27
1028Italy2025-05-26
1029India2025-05-17
1030Spain2025-06-09
1031United Kingdom2025-05-16
1032Spain2025-05-16
1033Argentina2025-05-28
1034Argentina2025-06-08
1035United Kingdom2025-05-29
1036United Kingdom2025-06-07
1037Russia2025-06-05
1038India2025-05-30
1039Russia2025-05-27
1040Brazil2025-05-24
1041Japan2025-05-17
1042United Kingdom2025-06-08
1043Italy2025-06-05
1044France2025-05-22
1045Australia2025-06-06
1046Canada2025-06-13
1047France2025-06-03
1048United Kingdom2025-05-22
1049Argentina2025-05-29

On-Demand Data

NameIdCountryDate
Adams Y Foller1000France2025-06-08
Mujtaba E Venere1001Japan2025-05-27
Antonio R Perin1002France2025-06-05
Greenwood A Perin1003Italy2025-05-27
Leja N Stockham1004Italy2025-06-03
Mayumi X Figeroa1005Argentina2025-06-01
Jefferson W Flosi1006United Kingdom2025-05-21
Kadeem Q Campain1007United Kingdom2025-05-19
Deepesh B Albares1008United Kingdom2025-06-08
Ashley A Briddick1009Japan2025-06-10
Rodrigues S Vocelka1010Canada2025-05-19
Claire Y Ruta1011France2025-05-20
Ricardo Y Caudy1012United Kingdom2025-05-23
Munro H Caudy1013United Kingdom2025-06-07
Juan U Maclead1014Canada2025-05-24
Francesco G Nicka1015Spain2025-05-19
Clifford M Chui1016Russia2025-05-31
Jennifer N Figeroa1017Japan2025-05-24
Juan P Paprocki1018Australia2025-05-30
Maisha O Slusarski1019Canada2025-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody W VocelkaBrazilOnyama Limba QUALIFIED
David K ButtCanadaOnyama Limba NEW
Jones L DilliardFranceXuxue Feng NEGOTIATION
Claire I IturbideFranceIoni Bowcher NEW
Costa R StockhamRussiaBernardo Dominic NEW
Kadeem D FlosiBrazilIoni Bowcher NEGOTIATION
Tony Q MarrierUnited KingdomXuxue Feng UNQUALIFIED
Aditya B InouyeUnited KingdomAsiya Javayant NEGOTIATION
Jennifer T FerenczFranceAsiya Javayant QUALIFIED
Clifford P ShinkoSpainAmy Elsner QUALIFIED
Octavia A WieserBrazilOnyama Limba RENEWAL
Claire G NickaCanadaElwin Sharvill RENEWAL
Costa Q RoysterItalyBernardo Dominic QUALIFIED
Johnson H RoysterCanadaAmy Elsner UNQUALIFIED
Izzy K PaprockiItalyXuxue Feng PROPOSAL
Salvatore D SaylorsUnited KingdomStephen Shaw QUALIFIED
Alejandro Y RutaArgentinaOnyama Limba QUALIFIED
Juan C VenereJapanAsiya Javayant UNQUALIFIED
Leja H StockhamSpainOnyama Limba RENEWAL
Maria S PoquetteItalyOnyama Limba NEW
Ricardo X OstroskyCanadaAmy Elsner QUALIFIED
Aika H WieserSpainAmy Elsner PROPOSAL
Kaitlin P FigeroaGermanyXuxue Feng RENEWAL
Maria C PaprockiRussiaAmy Elsner PROPOSAL
Mayumi Q SchemmerFranceStephen Shaw PROPOSAL
Costa I MorascaJapanAnna Fali UNQUALIFIED
Cody D MorascaCanadaAnna Fali RENEWAL
Chavez I GauchoArgentinaStephen Shaw NEGOTIATION
Aruna T FigeroaFranceAnna Fali UNQUALIFIED
Jennifer E SlusarskiCanadaIoni Bowcher NEGOTIATION
Sinclair V DarakjyFranceStephen Shaw QUALIFIED
Deepesh P ChuiIndiaIoni Bowcher RENEWAL
Ivar M CampainArgentinaIoni Bowcher QUALIFIED
Leja A FollerRussiaAsiya Javayant NEGOTIATION
Maisha T InouyeIndiaAmy Elsner PROPOSAL
Arvin R CampainRussiaAmy Elsner PROPOSAL
Isabel P StockhamAustraliaAnna Fali QUALIFIED
Faith K ButtGermanyIvan Magalhaes UNQUALIFIED
Ivar X BologniaBrazilBernardo Dominic PROPOSAL
Jefferson R WhobreyGermanyIoni Bowcher 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>