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
Munro B CaldareraFranceAnna Fali NEGOTIATION
Kaitlin U SaylorsGermanyElwin Sharvill PROPOSAL
Jones Y CaldareraSpainAsiya Javayant PROPOSAL
Chavez O FollerSpainAnna Fali RENEWAL
James G GlickRussiaAnna Fali PROPOSAL
Smith N PaprockiItalyIoni Bowcher NEGOTIATION
Smith C SlusarskiRussiaIvan Magalhaes NEW
Octavia K CampainGermanyIvan Magalhaes NEW
Chavez U SchemmerGermanyElwin Sharvill RENEWAL
Julie G NestleIndiaOnyama Limba UNQUALIFIED
James R GillianJapanAnna Fali QUALIFIED
Rodrigues M CaldareraArgentinaAmy Elsner QUALIFIED
David J MorascaJapanElwin Sharvill NEGOTIATION
Morrow D GillianArgentinaElwin Sharvill PROPOSAL
Murillo A GarufiArgentinaIvan Magalhaes QUALIFIED
Adams T OstroskyBrazilAnna Fali NEGOTIATION
Kaitlin P KuskoUnited KingdomIvan Magalhaes RENEWAL
Cody D MorascaFranceIoni Bowcher PROPOSAL
Munro K GlickBrazilIvan Magalhaes NEGOTIATION
Cody D SergiJapanAnna Fali PROPOSAL
Maisha N MorascaBrazilXuxue Feng RENEWAL
Murillo W FigeroaFranceOnyama Limba UNQUALIFIED
Tony B AmigonItalyAnna Fali PROPOSAL
Munro H TollnerBrazilElwin Sharvill PROPOSAL
Aditya Z SchemmerIndiaElwin Sharvill QUALIFIED
Aika L InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood X VocelkaUnited KingdomStephen Shaw PROPOSAL
Silvio Y StensethItalyIvan Magalhaes RENEWAL
Octavia D GillianIndiaIoni Bowcher UNQUALIFIED
Leja P MaletBrazilBernardo Dominic QUALIFIED
Aika V MorascaCanadaIvan Magalhaes NEGOTIATION
Aditya S BowleyBrazilAmy Elsner NEGOTIATION
Rodrigues Q SaylorsItalyAnna Fali UNQUALIFIED
Smith P MaletAustraliaAsiya Javayant NEW
Juan Q StockhamBrazilStephen Shaw PROPOSAL
Cody E NestleJapanIvan Magalhaes UNQUALIFIED
Aika O FollerItalyIoni Bowcher PROPOSAL
Antonio P NestleUnited KingdomIoni Bowcher UNQUALIFIED
Cody R CampainArgentinaBernardo Dominic RENEWAL
Aruna W SchemmerJapanStephen Shaw NEGOTIATION
Munro T KolmetzFranceAnna Fali PROPOSAL
Deepesh S RulapaughIndiaAmy Elsner PROPOSAL
Maisha H CaudyBrazilElwin Sharvill QUALIFIED
James I MaletCanadaAmy Elsner NEW
Sinclair P GlickIndiaElwin Sharvill PROPOSAL
Ricardo E SchemmerIndiaAmy Elsner NEGOTIATION
Darci R PoquetteBrazilAmy Elsner QUALIFIED
Alejandro G MarrierRussiaOnyama Limba PROPOSAL
Jefferson S GauchoGermanyAsiya Javayant UNQUALIFIED
Alejandro P GlickUnited KingdomXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon H ButtCanadaAsiya Javayant UNQUALIFIED
Jones O SlusarskiItalyStephen Shaw NEGOTIATION
Ricardo Q FlosiAustraliaIvan Magalhaes RENEWAL
Izzy L BologniaItalyStephen Shaw QUALIFIED
Aditya J NickaCanadaAsiya Javayant QUALIFIED
Sinclair J NickaUnited KingdomStephen Shaw QUALIFIED
Ricardo J FigeroaJapanXuxue Feng QUALIFIED
Rodrigues T VocelkaJapanBernardo Dominic NEW
Claire F InouyeSpainXuxue Feng UNQUALIFIED
David W GillianAustraliaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey X BologniaUnited Kingdom2026-06-09Dorl, James J Esq PROPOSAL88Xuxue Feng
1001Leon C FollerFrance2026-06-23Rousseaux, Michael Esq NEW46Elwin Sharvill
1002Cody K IturbideCanada2026-06-07Chemel, James L Cpa UNQUALIFIED57Bernardo Dominic
1003Jefferson R WieserCanada2026-07-06Dorl, James J Esq PROPOSAL88Ivan Magalhaes
1004Isabel P AmigonBrazil2026-06-11Chapman, Ross E Esq RENEWAL74Bernardo Dominic
1005Sinclair O FigeroaAustralia2026-06-17Morlong Associates QUALIFIED5Ivan Magalhaes
1006Greenwood M DoeUnited Kingdom2026-06-07Chapman, Ross E Esq UNQUALIFIED20Anna Fali
1007Tony L BriddickJapan2026-06-28Buckley Miller Wright UNQUALIFIED38Anna Fali
1008Johnson C GarufiAustralia2026-06-23King, Christopher A Esq RENEWAL95Asiya Javayant
1009Morrow Y FigeroaAustralia2026-06-09Chapman, Ross E Esq UNQUALIFIED47Ioni Bowcher
1010Maisha F ButtArgentina2026-06-26Feiner Bros NEGOTIATION79Xuxue Feng
1011Silvio P DilliardIndia2026-07-04Benton, John B Jr PROPOSAL9Anna Fali
1012Cody K RutaAustralia2026-06-07Morlong Associates QUALIFIED57Onyama Limba
1013Juan G GlickFrance2026-06-20Chanay, Jeffrey A Esq NEGOTIATION99Asiya Javayant
1014Smith E RulapaughBrazil2026-06-22Commercial Press UNQUALIFIED5Stephen Shaw
1015Misaki V FerenczSpain2026-07-05Buckley Miller Wright NEW45Xuxue Feng
1016Mayumi E KolmetzJapan2026-06-09Rangoni Of Florence PROPOSAL33Bernardo Dominic
1017Costa O ChuiItaly2026-06-23Chanay, Jeffrey A Esq RENEWAL29Onyama Limba
1018David P GauchoArgentina2026-06-24Feiner Bros NEGOTIATION63Xuxue Feng
1019Cody N CampainUnited Kingdom2026-06-14Dorl, James J Esq PROPOSAL18Ioni Bowcher
1020Aruna H RutaArgentina2026-06-13Buckley Miller Wright UNQUALIFIED18Asiya Javayant
1021Alejandro K VocelkaArgentina2026-06-16Chemel, James L Cpa PROPOSAL13Ioni Bowcher
1022Silvio L SlusarskiGermany2026-06-10Truhlar And Truhlar Attys UNQUALIFIED4Ioni Bowcher
1023Mujtaba O PaprockiJapan2026-06-19Commercial Press UNQUALIFIED37Anna Fali
1024Murillo C DilliardJapan2026-06-28King, Christopher A Esq NEW69Ivan Magalhaes
1025Kaitlin K BologniaUnited Kingdom2026-06-19Rangoni Of Florence UNQUALIFIED11Xuxue Feng
1026Maisha K BriddickSpain2026-06-25Rousseaux, Michael Esq RENEWAL64Asiya Javayant
1027Alejandro T PoquetteJapan2026-07-06Truhlar And Truhlar Attys NEW88Ivan Magalhaes
1028Juan P PaprockiJapan2026-06-10Feiner Bros QUALIFIED77Ioni Bowcher
1029Antonio X BologniaSpain2026-06-20Truhlar And Truhlar Attys NEGOTIATION56Bernardo Dominic
1030Antonio L GauchoUnited Kingdom2026-06-26Chanay, Jeffrey A Esq NEW40Xuxue Feng
1031Octavia R KolmetzSpain2026-06-10Rangoni Of Florence QUALIFIED19Bernardo Dominic
1032David O BowleyUnited Kingdom2026-06-10Feiner Bros PROPOSAL80Xuxue Feng
1033Faith A SchemmerJapan2026-06-24Buckley Miller Wright RENEWAL52Asiya Javayant
1034Ashley M VenereArgentina2026-06-15Rangoni Of Florence QUALIFIED17Ioni Bowcher
1035James E CampainCanada2026-07-06Truhlar And Truhlar Attys NEW88Elwin Sharvill
1036Chavez P CampainUnited Kingdom2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED71Onyama Limba
1037James S OldroydItaly2026-07-06Chanay, Jeffrey A Esq PROPOSAL86Ivan Magalhaes
1038Kadeem C VenereAustralia2026-06-29Benton, John B Jr UNQUALIFIED39Ioni Bowcher
1039Jefferson U StockhamArgentina2026-06-14Rangoni Of Florence UNQUALIFIED6Xuxue Feng
1040Izzy S FollerAustralia2026-06-13Rousseaux, Michael Esq PROPOSAL79Onyama Limba
1041Izzy P BowleyBrazil2026-06-14King, Christopher A Esq NEGOTIATION75Bernardo Dominic
1042Octavia F KuskoCanada2026-06-29Morlong Associates QUALIFIED46Stephen Shaw
1043Kaitlin A NestleItaly2026-06-07Chanay, Jeffrey A Esq RENEWAL4Xuxue Feng
1044Munro S GauchoJapan2026-06-18Feiner Bros RENEWAL9Asiya Javayant
1045Aika D TollnerUnited Kingdom2026-06-11Chemel, James L Cpa UNQUALIFIED53Onyama Limba
1046Julie O SergiCanada2026-07-02Chanay, Jeffrey A Esq PROPOSAL60Bernardo Dominic
1047Jones E RutaGermany2026-07-04Commercial Press PROPOSAL16Bernardo Dominic
1048Misaki J ButtJapan2026-07-02Feiner Bros NEGOTIATION80Xuxue Feng
1049Smith Z BowleyCanada2026-06-20Chemel, James L Cpa RENEWAL47Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin J GarufiArgentinaIoni Bowcher QUALIFIED
Aruna C BowleyAustraliaOnyama Limba UNQUALIFIED
Greenwood J SlusarskiFranceStephen Shaw QUALIFIED
Kaitlin G MaletRussiaAsiya Javayant NEGOTIATION
Antonio O DilliardAustraliaAnna Fali NEW
Tony J ChuiCanadaStephen Shaw UNQUALIFIED
Wickens W DilliardJapanBernardo Dominic RENEWAL
Salvatore S OldroydJapanIvan Magalhaes NEW
Maisha M WaycottItalyOnyama Limba NEW
Isabel I ShinkoBrazilIoni Bowcher QUALIFIED
Smith G GarufiAustraliaIoni Bowcher NEW
Ashley B CampainBrazilStephen Shaw NEW
Julie S GlickArgentinaBernardo Dominic PROPOSAL
Ivar E DoeIndiaAsiya Javayant UNQUALIFIED
David V TollnerSpainStephen Shaw PROPOSAL
Kaitlin I SaylorsGermanyElwin Sharvill RENEWAL
Morrow Y GauchoBrazilAnna Fali RENEWAL
Jefferson G DilliardItalyAmy Elsner NEW
Misaki W FigeroaArgentinaIvan Magalhaes PROPOSAL
Misaki A BowleyItalyIvan Magalhaes PROPOSAL
Adams T KolmetzRussiaAsiya Javayant NEGOTIATION
Adams X BologniaJapanElwin Sharvill PROPOSAL
Mayumi X MacleadItalyIoni Bowcher RENEWAL
Stacey N SlusarskiCanadaIoni Bowcher NEW
Ivar Q GlickFranceElwin Sharvill NEGOTIATION
Costa W NickaItalyBernardo Dominic UNQUALIFIED
Costa I MaletSpainXuxue Feng NEGOTIATION
Wickens L MarrierBrazilStephen Shaw NEW
Arvin V VocelkaRussiaAnna Fali QUALIFIED
Jennifer D VenereCanadaAsiya Javayant QUALIFIED
Tony K FigeroaSpainXuxue Feng QUALIFIED
Stacey R BowleyItalyElwin Sharvill NEGOTIATION
Antonio Y KuskoArgentinaStephen Shaw QUALIFIED
James E RoysterCanadaXuxue Feng QUALIFIED
Izzy B KolmetzIndiaAsiya Javayant PROPOSAL
Arvin H InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh V DarakjyIndiaAmy Elsner UNQUALIFIED
Ivar S IturbideCanadaAsiya Javayant RENEWAL
Greenwood W NickaUnited KingdomOnyama Limba UNQUALIFIED
Octavia Y MarrierUnited KingdomBernardo Dominic RENEWAL
Isabel E SchemmerFranceIvan Magalhaes NEW
Adams U ButtArgentinaStephen Shaw QUALIFIED
Maisha J BowleyGermanyIvan Magalhaes NEGOTIATION
Ricardo E MaletArgentinaAmy Elsner UNQUALIFIED
Smith S MaletSpainAsiya Javayant RENEWAL
Alejandro M MacleadArgentinaStephen Shaw RENEWAL
Isabel D RoysterSpainIvan Magalhaes QUALIFIED
Wickens C GlickGermanyXuxue Feng NEGOTIATION
Arvin R DoeAustraliaOnyama Limba NEW
Cody J GauchoGermanyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Ashley J Caudy
Mayumi R Maclead
Leja U Darakjy
Julie Z Vocelka
Salvatore W Rulapaugh
Izzy O Albares
Aika H Foller
Chavez P Poquette
Silvio X Gaucho
Adams Z Perin
Murillo K Whobrey
Misaki I Amigon
Aditya L Whobrey
Greenwood Z Doe
Antonio Z Dilliard
Salvatore Q Garufi
Clifford N Venere
Misaki U Vocelka
Jones K Rulapaugh
Smith X Campain
Francesco W Caldarera
Ashley R Slusarski
Ivar A Paprocki
Octavia O Iturbide
Juan U Marrier
Misaki Y Figeroa
Smith M Doe
Alejandro V Venere
Antonio R Doe
Wickens X Paprocki
James I Foller
Johnson Q Rim
Aruna U Tollner
Maria N Maclead
Aika H Nestle
Juan O Briddick
Aditya A Inouye
Murillo X Malet
Chavez H Ruta
Munro R Iturbide
Nicolas V Albares
Darci S Bowley
Antonio R Malet
Leon G Stenseth
Ricardo M Amigon
Rodrigues I Ruta
Claire D Nicka
Emily O Foller
Ivar N Stenseth
Sinclair L Waycott
IdCountryDate
1000Australia2026-07-06
1001Japan2026-06-12
1002Japan2026-06-30
1003Brazil2026-06-23
1004Russia2026-06-27
1005Italy2026-06-29
1006Argentina2026-06-15
1007Italy2026-06-22
1008Canada2026-06-11
1009Italy2026-06-13
1010Australia2026-06-07
1011Germany2026-06-29
1012Brazil2026-06-19
1013France2026-06-24
1014Russia2026-06-21
1015Germany2026-06-18
1016Australia2026-06-25
1017Italy2026-06-24
1018Argentina2026-07-03
1019Japan2026-07-01
1020Germany2026-06-27
1021Japan2026-06-26
1022United Kingdom2026-07-06
1023France2026-06-14
1024India2026-06-26
1025Australia2026-06-15
1026Russia2026-06-19
1027Canada2026-06-22
1028Spain2026-06-21
1029Germany2026-06-29
1030France2026-06-07
1031Germany2026-06-07
1032Italy2026-07-06
1033Brazil2026-07-01
1034Canada2026-07-02
1035Argentina2026-06-20
1036Spain2026-06-30
1037Brazil2026-06-30
1038Spain2026-06-10
1039Russia2026-06-13
1040Argentina2026-06-19
1041Brazil2026-07-05
1042Russia2026-06-28
1043Germany2026-06-13
1044Spain2026-06-07
1045India2026-06-14
1046Germany2026-06-19
1047Canada2026-06-11
1048India2026-06-22
1049Argentina2026-06-14

On-Demand Data

NameIdCountryDate
Ricardo T Chui1000Germany2026-07-04
Alejandro F Oldroyd1001Canada2026-07-03
Jefferson G Nestle1002Japan2026-06-07
Greenwood J Caudy1003Italy2026-06-26
Misaki E Caldarera1004Spain2026-06-25
Mujtaba F Kolmetz1005Italy2026-06-10
Aika O Bowley1006Japan2026-06-08
Costa O Foller1007Russia2026-06-24
Kaitlin W Inouye1008Argentina2026-06-08
Mujtaba G Butt1009Spain2026-06-25
Antonio G Venere1010France2026-06-23
Julie F Gillian1011Canada2026-06-13
Juan Q Saylors1012Germany2026-07-03
Octavia A Kusko1013United Kingdom2026-06-21
Emily X Perin1014Germany2026-07-03
Ivar B Stockham1015Germany2026-06-16
Kaitlin P Ruta1016Brazil2026-06-27
Silvio U Briddick1017Australia2026-07-03
Leon M Garufi1018Germany2026-07-03
David Y Caldarera1019France2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki F AlbaresFranceAmy Elsner NEW
Ivar N DilliardCanadaAnna Fali NEGOTIATION
Octavia W RimIndiaAnna Fali QUALIFIED
Alejandro N CaudyAustraliaStephen Shaw RENEWAL
Mayumi K AlbaresJapanElwin Sharvill UNQUALIFIED
Maisha V BologniaSpainAmy Elsner NEW
Johnson D GarufiJapanStephen Shaw PROPOSAL
Morrow V WieserUnited KingdomAnna Fali RENEWAL
Alejandro T PerinIndiaAsiya Javayant UNQUALIFIED
Silvio V ButtJapanIoni Bowcher NEW
Misaki Q OstroskyCanadaIvan Magalhaes NEGOTIATION
Ricardo H FigeroaArgentinaIvan Magalhaes RENEWAL
Jeanfrancois R TollnerArgentinaBernardo Dominic QUALIFIED
Octavia O SaylorsRussiaElwin Sharvill PROPOSAL
Ashley B DoeGermanyXuxue Feng QUALIFIED
Antonio H CaldareraAustraliaBernardo Dominic UNQUALIFIED
Mayumi A StockhamItalyBernardo Dominic PROPOSAL
Octavia J NickaJapanIvan Magalhaes UNQUALIFIED
Izzy F WieserSpainIoni Bowcher RENEWAL
Ricardo H SaylorsItalyAnna Fali RENEWAL
Francesco J SaylorsCanadaElwin Sharvill NEGOTIATION
Deepesh V KuskoBrazilOnyama Limba NEW
Jennifer L GillianJapanAsiya Javayant NEGOTIATION
Rodrigues U BriddickGermanyBernardo Dominic RENEWAL
Kaitlin A GlickFranceIoni Bowcher NEGOTIATION
Wickens R WieserRussiaAmy Elsner UNQUALIFIED
Stacey D RimAustraliaIvan Magalhaes NEGOTIATION
Rodrigues C CampainUnited KingdomIoni Bowcher QUALIFIED
Faith J WieserBrazilXuxue Feng RENEWAL
Izzy A BologniaArgentinaAsiya Javayant PROPOSAL
Jennifer F FollerRussiaAmy Elsner NEGOTIATION
Antonio W StensethRussiaIvan Magalhaes QUALIFIED
Ricardo Y StockhamJapanIvan Magalhaes PROPOSAL
Rodrigues G CaldareraArgentinaAsiya Javayant RENEWAL
Munro C StockhamFranceAnna Fali NEW
Mujtaba Y SergiGermanyStephen Shaw PROPOSAL
Nicolas Z ChuiBrazilAmy Elsner QUALIFIED
Alejandro R WaycottCanadaBernardo Dominic UNQUALIFIED
Claire P MorascaCanadaStephen Shaw RENEWAL
Aditya H InouyeCanadaElwin Sharvill 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>