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
Faith A MaletAustraliaOnyama Limba NEW
Murillo N MacleadJapanOnyama Limba QUALIFIED
Ashley H ChuiFranceIoni Bowcher PROPOSAL
Juan S NickaCanadaElwin Sharvill RENEWAL
Isabel L GillianItalyAmy Elsner QUALIFIED
Salvatore X IturbideFranceXuxue Feng PROPOSAL
Maisha K VocelkaItalyElwin Sharvill NEGOTIATION
Sinclair R AmigonRussiaAsiya Javayant RENEWAL
Ivar O ButtRussiaAmy Elsner NEGOTIATION
Deepesh Q KolmetzBrazilAmy Elsner NEGOTIATION
Leja Z SlusarskiIndiaOnyama Limba PROPOSAL
Kadeem K VenereJapanAmy Elsner NEW
Emily Z SlusarskiGermanyElwin Sharvill RENEWAL
Greenwood H KuskoArgentinaIoni Bowcher UNQUALIFIED
Jennifer Z StockhamCanadaXuxue Feng UNQUALIFIED
Faith W DoeItalyIoni Bowcher UNQUALIFIED
Stacey X TollnerSpainAmy Elsner QUALIFIED
Deepesh Z NickaBrazilStephen Shaw UNQUALIFIED
Emily U GlickJapanAnna Fali QUALIFIED
Darci J StensethAustraliaIoni Bowcher RENEWAL
Adams A WieserIndiaOnyama Limba NEGOTIATION
Mujtaba J MaletUnited KingdomElwin Sharvill NEW
Mayumi I RulapaughFranceElwin Sharvill QUALIFIED
Greenwood L KuskoBrazilElwin Sharvill PROPOSAL
Greenwood O FollerIndiaAmy Elsner UNQUALIFIED
Aditya O PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Julie I IturbideItalyBernardo Dominic NEW
Maisha M OstroskyJapanOnyama Limba NEGOTIATION
Tony Y GlickCanadaAsiya Javayant RENEWAL
Jeanfrancois Q KolmetzFranceXuxue Feng UNQUALIFIED
Francesco G PerinFranceOnyama Limba PROPOSAL
Claire B CaldareraItalyIvan Magalhaes RENEWAL
Cody R NestleIndiaIoni Bowcher RENEWAL
Juan E BologniaItalyIoni Bowcher PROPOSAL
Juan W WieserRussiaAsiya Javayant UNQUALIFIED
Murillo K KuskoUnited KingdomAnna Fali PROPOSAL
Ashley Z PoquetteRussiaBernardo Dominic QUALIFIED
Kadeem W FlosiBrazilOnyama Limba NEGOTIATION
Greenwood B AlbaresCanadaIvan Magalhaes RENEWAL
Mayumi I VenereSpainBernardo Dominic RENEWAL
Aruna F PaprockiIndiaElwin Sharvill UNQUALIFIED
Faith K ChuiFranceAsiya Javayant NEW
Leja E BologniaAustraliaIoni Bowcher NEGOTIATION
Chavez A BologniaArgentinaElwin Sharvill QUALIFIED
Arvin M BologniaRussiaElwin Sharvill UNQUALIFIED
Kaitlin L TollnerAustraliaXuxue Feng QUALIFIED
Nicolas Q IturbideUnited KingdomBernardo Dominic NEW
Silvio E PaprockiItalyStephen Shaw UNQUALIFIED
Sinclair L PerinArgentinaXuxue Feng PROPOSAL
Faith B MaletAustraliaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams G OldroydSpainIoni Bowcher UNQUALIFIED
Arvin M NestleJapanStephen Shaw QUALIFIED
Maria K SlusarskiCanadaOnyama Limba UNQUALIFIED
Ashley W MaletAustraliaIvan Magalhaes QUALIFIED
Tony L MarrierAustraliaElwin Sharvill NEGOTIATION
Smith A AmigonSpainIvan Magalhaes NEGOTIATION
Misaki F StockhamRussiaIoni Bowcher UNQUALIFIED
Isabel R DarakjyItalyOnyama Limba RENEWAL
Chavez D ChuiJapanElwin Sharvill NEW
Ricardo I ShinkoArgentinaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan N RimItaly2025-06-05King, Christopher A Esq NEW11Elwin Sharvill
1001Aruna A MacleadJapan2025-05-29Rousseaux, Michael Esq PROPOSAL80Stephen Shaw
1002Jennifer W VenereArgentina2025-05-27Chemel, James L Cpa UNQUALIFIED38Onyama Limba
1003Aditya J BologniaJapan2025-06-13Benton, John B Jr NEGOTIATION30Stephen Shaw
1004Deepesh Q GlickSpain2025-05-22Rangoni Of Florence RENEWAL76Bernardo Dominic
1005Maria M WaycottBrazil2025-06-14Benton, John B Jr NEW95Onyama Limba
1006Murillo Z NickaItaly2025-06-01Truhlar And Truhlar Attys RENEWAL53Elwin Sharvill
1007Emily Z WhobreyBrazil2025-05-20King, Christopher A Esq NEGOTIATION72Onyama Limba
1008Wickens A NickaUnited Kingdom2025-06-03Buckley Miller Wright UNQUALIFIED30Ivan Magalhaes
1009Jeanfrancois H VocelkaIndia2025-05-28Chemel, James L Cpa NEW5Stephen Shaw
1010James Z StockhamIndia2025-05-20Truhlar And Truhlar Attys QUALIFIED34Asiya Javayant
1011Kadeem C DilliardItaly2025-05-17Printing Dimensions UNQUALIFIED78Elwin Sharvill
1012Chavez M OldroydUnited Kingdom2025-06-13Feiner Bros NEGOTIATION29Ioni Bowcher
1013Deepesh X IturbideSpain2025-06-04Dorl, James J Esq UNQUALIFIED59Amy Elsner
1014Francesco V BowleyBrazil2025-06-11Chapman, Ross E Esq QUALIFIED75Amy Elsner
1015Cody U RoysterBrazil2025-06-08Benton, John B Jr NEW75Elwin Sharvill
1016Clifford S StensethItaly2025-05-19Commercial Press QUALIFIED24Asiya Javayant
1017Jennifer P GauchoBrazil2025-06-12Rousseaux, Michael Esq UNQUALIFIED67Ioni Bowcher
1018Jones W FigeroaSpain2025-06-14Truhlar And Truhlar Attys RENEWAL93Bernardo Dominic
1019Murillo X PoquetteGermany2025-05-22Truhlar And Truhlar Attys RENEWAL16Xuxue Feng
1020Costa A GillianAustralia2025-06-03Chemel, James L Cpa QUALIFIED35Anna Fali
1021Ricardo B StensethGermany2025-05-27Benton, John B Jr PROPOSAL0Anna Fali
1022Salvatore M GillianSpain2025-06-03King, Christopher A Esq RENEWAL60Amy Elsner
1023Juan T SlusarskiFrance2025-05-18Truhlar And Truhlar Attys RENEWAL58Anna Fali
1024Rodrigues K PaprockiItaly2025-05-31Morlong Associates UNQUALIFIED50Bernardo Dominic
1025Greenwood F VocelkaUnited Kingdom2025-05-19Chapman, Ross E Esq RENEWAL17Onyama Limba
1026Aruna C RutaArgentina2025-05-31Buckley Miller Wright QUALIFIED55Amy Elsner
1027Munro K RutaBrazil2025-05-25Chapman, Ross E Esq PROPOSAL24Xuxue Feng
1028Johnson H WhobreyAustralia2025-06-05Morlong Associates NEGOTIATION62Xuxue Feng
1029Izzy K IturbideSpain2025-06-08Printing Dimensions NEGOTIATION54Ivan Magalhaes
1030Tony J GillianCanada2025-06-04Rangoni Of Florence NEW56Xuxue Feng
1031Wickens Z SlusarskiSpain2025-06-12King, Christopher A Esq RENEWAL45Anna Fali
1032Jefferson I InouyeJapan2025-06-04Truhlar And Truhlar Attys UNQUALIFIED5Onyama Limba
1033Kaitlin G InouyeIndia2025-05-23Dorl, James J Esq PROPOSAL47Stephen Shaw
1034Jennifer K OstroskySpain2025-06-11Chemel, James L Cpa NEGOTIATION18Amy Elsner
1035Nicolas S GlickGermany2025-06-04Chanay, Jeffrey A Esq QUALIFIED1Stephen Shaw
1036Smith D VenereGermany2025-06-01Buckley Miller Wright NEW16Elwin Sharvill
1037Misaki D CaldareraRussia2025-06-01Rousseaux, Michael Esq PROPOSAL92Anna Fali
1038Munro T BologniaGermany2025-05-27Chanay, Jeffrey A Esq NEGOTIATION79Ioni Bowcher
1039Ricardo H RimIndia2025-06-04Rangoni Of Florence PROPOSAL72Amy Elsner
1040Costa I DarakjySpain2025-05-30Buckley Miller Wright RENEWAL70Onyama Limba
1041Clifford B VenereArgentina2025-05-27Truhlar And Truhlar Attys NEW6Stephen Shaw
1042Chavez S FerenczSpain2025-05-16Chapman, Ross E Esq RENEWAL6Stephen Shaw
1043Greenwood R MaletSpain2025-05-23Chapman, Ross E Esq NEGOTIATION54Bernardo Dominic
1044Wickens J DilliardAustralia2025-05-26Dorl, James J Esq UNQUALIFIED98Amy Elsner
1045Deepesh Y PaprockiArgentina2025-05-18Truhlar And Truhlar Attys NEGOTIATION15Elwin Sharvill
1046Arvin I DilliardArgentina2025-06-07Morlong Associates PROPOSAL67Bernardo Dominic
1047Johnson E FerenczAustralia2025-06-13King, Christopher A Esq PROPOSAL29Anna Fali
1048Jefferson N FerenczArgentina2025-05-17Chanay, Jeffrey A Esq NEGOTIATION10Stephen Shaw
1049Kaitlin H BowleyIndia2025-05-19Chapman, Ross E Esq NEW46Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Misaki S KuskoIndiaAsiya Javayant UNQUALIFIED
Izzy X OstroskyRussiaIvan Magalhaes UNQUALIFIED
Misaki X StockhamFranceAsiya Javayant UNQUALIFIED
Johnson T RutaIndiaAnna Fali UNQUALIFIED
David N SlusarskiUnited KingdomXuxue Feng RENEWAL
Juan O FollerBrazilAmy Elsner PROPOSAL
Chavez U BowleySpainBernardo Dominic NEW
Murillo C MacleadJapanAmy Elsner NEW
Kadeem J NickaUnited KingdomIoni Bowcher NEW
Johnson O GillianSpainAnna Fali UNQUALIFIED
Smith H DarakjyRussiaXuxue Feng QUALIFIED
Johnson R GarufiRussiaAnna Fali QUALIFIED
Misaki F GauchoArgentinaBernardo Dominic NEGOTIATION
Antonio V KuskoRussiaBernardo Dominic RENEWAL
Jones L MaletArgentinaAmy Elsner PROPOSAL
Johnson T AlbaresGermanyAmy Elsner RENEWAL
Jennifer Y MarrierItalyElwin Sharvill QUALIFIED
Kaitlin A SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Greenwood V GlickCanadaBernardo Dominic QUALIFIED
Jeanfrancois O RulapaughSpainAmy Elsner PROPOSAL
Mayumi Q GlickIndiaAsiya Javayant UNQUALIFIED
Julie I BologniaItalyAsiya Javayant NEW
Costa S VocelkaIndiaStephen Shaw PROPOSAL
Tony J BowleyBrazilOnyama Limba UNQUALIFIED
Costa H VenereIndiaAnna Fali NEW
Julie R TollnerItalyXuxue Feng NEGOTIATION
Kaitlin T PoquetteBrazilIvan Magalhaes UNQUALIFIED
Aika Z MacleadSpainAnna Fali QUALIFIED
Isabel Y FollerArgentinaElwin Sharvill NEW
Jeanfrancois V FlosiBrazilStephen Shaw QUALIFIED
Leon N SaylorsItalyOnyama Limba NEW
Leja N CaudyBrazilAnna Fali PROPOSAL
Deepesh E MorascaBrazilIvan Magalhaes NEW
Nicolas T KuskoArgentinaBernardo Dominic NEGOTIATION
Antonio C FigeroaIndiaIvan Magalhaes PROPOSAL
Sinclair V SchemmerItalyStephen Shaw NEW
Juan D IturbideJapanStephen Shaw RENEWAL
Maisha S IturbideAustraliaAnna Fali PROPOSAL
Jefferson B GauchoIndiaXuxue Feng QUALIFIED
Stacey E WaycottCanadaIoni Bowcher PROPOSAL
Misaki J VocelkaGermanyIoni Bowcher UNQUALIFIED
Nicolas M FigeroaGermanyStephen Shaw NEW
Julie J DoeRussiaXuxue Feng NEW
Deepesh P OldroydSpainElwin Sharvill NEGOTIATION
Ivar D WhobreyAustraliaXuxue Feng NEGOTIATION
Clifford V GlickCanadaAnna Fali PROPOSAL
Cody V TollnerSpainAsiya Javayant NEGOTIATION
Smith H SergiIndiaAmy Elsner RENEWAL
Aruna C MorascaIndiaIoni Bowcher NEW
Antonio I PaprockiItalyXuxue Feng PROPOSAL
Frozen Columns
Name
Faith C Whobrey
Ashley R Rim
Tony L Dilliard
Sinclair B Doe
Tony S Venere
Claire M Paprocki
Adams A Caldarera
Costa U Sergi
Arvin W Slusarski
Salvatore F Poquette
Darci W Malet
Kadeem M Schemmer
Tony K Saylors
Silvio N Glick
Nicolas E Paprocki
Jennifer F Darakjy
Juan K Tollner
Smith L Stenseth
Johnson X Slusarski
Aika W Rulapaugh
Jennifer B Nestle
Morrow Q Darakjy
Aruna I Campain
Isabel D Venere
Aika C Ferencz
Jennifer D Kolmetz
Jeanfrancois N Tollner
Juan J Stockham
Chavez E Tollner
Silvio X Stenseth
James V Malet
Smith C Maclead
Adams Q Rulapaugh
Morrow G Darakjy
Faith Z Stenseth
Isabel P Waycott
Kaitlin K Stockham
Costa G Ostrosky
Rodrigues Z Darakjy
Jones P Albares
Chavez G Gaucho
Salvatore R Saylors
Clifford F Perin
Clifford F Stenseth
Munro M Venere
Alejandro N Butt
Maria M Slusarski
Kadeem Z Chui
Johnson L Morasca
Clifford H Kolmetz
IdCountryDate
1000Italy2025-05-31
1001Brazil2025-05-24
1002Canada2025-06-12
1003Russia2025-06-05
1004Russia2025-05-25
1005Brazil2025-05-17
1006France2025-05-29
1007Germany2025-06-03
1008Australia2025-05-30
1009United Kingdom2025-06-05
1010France2025-05-28
1011Germany2025-05-19
1012Brazil2025-05-22
1013India2025-06-01
1014Italy2025-06-03
1015Italy2025-05-23
1016Germany2025-06-05
1017United Kingdom2025-06-06
1018Italy2025-06-12
1019Italy2025-05-19
1020Argentina2025-05-18
1021Argentina2025-06-01
1022Australia2025-05-26
1023Australia2025-05-18
1024Spain2025-05-22
1025Spain2025-05-18
1026India2025-05-26
1027Argentina2025-05-27
1028Italy2025-06-01
1029India2025-05-25
1030Australia2025-05-26
1031Germany2025-06-08
1032Spain2025-06-13
1033India2025-05-26
1034France2025-05-28
1035United Kingdom2025-05-22
1036Canada2025-06-12
1037Russia2025-05-25
1038Russia2025-05-21
1039Spain2025-06-10
1040Brazil2025-05-31
1041Germany2025-06-03
1042United Kingdom2025-06-10
1043India2025-05-20
1044France2025-05-26
1045Germany2025-05-31
1046Japan2025-05-16
1047Russia2025-06-02
1048India2025-05-24
1049Italy2025-06-05

On-Demand Data

NameIdCountryDate
David W Morasca1000India2025-06-14
Izzy U Wieser1001Canada2025-06-07
Rodrigues F Waycott1002Spain2025-06-07
Chavez K Caldarera1003Russia2025-05-31
Misaki G Schemmer1004Spain2025-06-10
Mujtaba M Ferencz1005Italy2025-06-06
Mujtaba O Chui1006France2025-05-26
Jeanfrancois Z Oldroyd1007France2025-06-01
Aruna A Darakjy1008Japan2025-05-29
Deepesh K Glick1009Australia2025-05-28
Misaki R Vocelka1010India2025-05-30
Jennifer D Marrier1011Germany2025-06-01
Cody D Marrier1012Canada2025-06-04
Leon M Stenseth1013India2025-05-24
Jennifer L Briddick1014France2025-06-11
Misaki K Marrier1015United Kingdom2025-05-17
Salvatore W Caudy1016India2025-06-10
Maria G Chui1017Italy2025-06-12
Wickens W Sergi1018Italy2025-05-23
Kadeem F Malet1019France2025-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily I WieserUnited KingdomBernardo Dominic RENEWAL
Emily T SergiUnited KingdomIoni Bowcher NEW
Murillo Q MorascaRussiaBernardo Dominic QUALIFIED
Wickens R ChuiBrazilAsiya Javayant PROPOSAL
Darci T KolmetzAustraliaElwin Sharvill RENEWAL
Maria W PaprockiCanadaStephen Shaw UNQUALIFIED
Darci Q PoquetteCanadaIvan Magalhaes RENEWAL
Jones W BriddickIndiaElwin Sharvill RENEWAL
Julie N GarufiArgentinaElwin Sharvill RENEWAL
Morrow Q WaycottFranceIvan Magalhaes NEGOTIATION
Maria Q StockhamJapanBernardo Dominic NEGOTIATION
Kaitlin U CaldareraIndiaXuxue Feng PROPOSAL
Munro P GauchoRussiaAnna Fali QUALIFIED
Wickens Y FlosiBrazilIoni Bowcher NEW
Leja W DoeUnited KingdomElwin Sharvill RENEWAL
Nicolas L DilliardBrazilAnna Fali UNQUALIFIED
Octavia K TollnerJapanAnna Fali NEGOTIATION
Francesco Q DoeArgentinaAsiya Javayant NEGOTIATION
Darci Q CaldareraFranceOnyama Limba PROPOSAL
Alejandro Q DilliardJapanStephen Shaw NEW
Rodrigues Y SaylorsJapanOnyama Limba PROPOSAL
Silvio B WaycottFranceElwin Sharvill NEGOTIATION
Claire X ShinkoUnited KingdomOnyama Limba QUALIFIED
Munro Y DoeFranceIoni Bowcher QUALIFIED
Salvatore L StockhamFranceIvan Magalhaes RENEWAL
Nicolas J FollerSpainAsiya Javayant NEGOTIATION
Francesco D SergiItalyBernardo Dominic UNQUALIFIED
Octavia H FigeroaRussiaAsiya Javayant UNQUALIFIED
Faith O BologniaBrazilIvan Magalhaes NEW
Greenwood D NickaRussiaAsiya Javayant NEGOTIATION
Salvatore A DoeSpainBernardo Dominic RENEWAL
Clifford I PerinUnited KingdomBernardo Dominic RENEWAL
Mujtaba A SlusarskiArgentinaXuxue Feng NEW
Costa A DarakjyCanadaAmy Elsner RENEWAL
Morrow P InouyeRussiaIoni Bowcher PROPOSAL
Leja F DarakjyJapanElwin Sharvill NEGOTIATION
Adams S FigeroaItalyAmy Elsner RENEWAL
Murillo L DilliardGermanyIvan Magalhaes NEW
Leon V NestleUnited KingdomOnyama Limba UNQUALIFIED
Ricardo A InouyeGermanyBernardo Dominic 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>