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
Darci U VocelkaAustraliaElwin Sharvill RENEWAL
Arvin M DoeSpainAnna Fali PROPOSAL
Deepesh O KolmetzBrazilElwin Sharvill RENEWAL
Isabel C FlosiIndiaIoni Bowcher RENEWAL
Ricardo D NestleCanadaAnna Fali RENEWAL
Jefferson O OstroskyFranceStephen Shaw QUALIFIED
Misaki J PaprockiUnited KingdomOnyama Limba NEW
Francesco L BologniaArgentinaOnyama Limba NEW
Munro B RoysterCanadaElwin Sharvill NEGOTIATION
Wickens H CaldareraItalyIvan Magalhaes QUALIFIED
Munro F DarakjyArgentinaAnna Fali PROPOSAL
Aruna Q DilliardGermanyStephen Shaw UNQUALIFIED
Adams P WieserSpainIoni Bowcher NEW
Jennifer H RutaUnited KingdomBernardo Dominic QUALIFIED
Wickens P SergiBrazilXuxue Feng QUALIFIED
Johnson Y MaletItalyStephen Shaw UNQUALIFIED
Octavia M FigeroaJapanAsiya Javayant PROPOSAL
Arvin O InouyeGermanyBernardo Dominic UNQUALIFIED
Rodrigues Y RutaJapanElwin Sharvill QUALIFIED
Sinclair Z CaudyIndiaBernardo Dominic PROPOSAL
Francesco J CampainUnited KingdomAmy Elsner NEGOTIATION
Morrow R BologniaBrazilElwin Sharvill QUALIFIED
Nicolas Z WaycottBrazilIvan Magalhaes UNQUALIFIED
Chavez W MaletRussiaIoni Bowcher UNQUALIFIED
Jennifer W NestleRussiaElwin Sharvill RENEWAL
Isabel Y ShinkoAustraliaIoni Bowcher NEGOTIATION
Mujtaba A StensethFranceElwin Sharvill NEGOTIATION
Alejandro R BologniaRussiaOnyama Limba NEGOTIATION
Maisha V GlickArgentinaIoni Bowcher NEGOTIATION
Francesco O InouyeCanadaAmy Elsner NEGOTIATION
Kadeem Y DarakjyIndiaIvan Magalhaes UNQUALIFIED
Rodrigues Y OstroskyRussiaIoni Bowcher NEW
Darci M PerinAustraliaElwin Sharvill QUALIFIED
Misaki M TollnerItalyAmy Elsner UNQUALIFIED
David S RimSpainIvan Magalhaes PROPOSAL
Claire K ChuiBrazilStephen Shaw RENEWAL
Ivar S GillianCanadaElwin Sharvill PROPOSAL
Faith B ShinkoCanadaAsiya Javayant UNQUALIFIED
Jones U SaylorsGermanyIvan Magalhaes QUALIFIED
Julie G BriddickUnited KingdomIoni Bowcher QUALIFIED
Mujtaba G SaylorsAustraliaElwin Sharvill NEGOTIATION
Jennifer E GauchoRussiaStephen Shaw NEGOTIATION
Rodrigues W SchemmerGermanyStephen Shaw PROPOSAL
Leon P BowleyJapanIvan Magalhaes RENEWAL
Nicolas G CaudyAustraliaIvan Magalhaes QUALIFIED
Clifford B VocelkaGermanyElwin Sharvill PROPOSAL
Stacey S VocelkaRussiaIvan Magalhaes NEW
Mayumi K AlbaresAustraliaIvan Magalhaes PROPOSAL
Salvatore S WaycottCanadaElwin Sharvill NEW
Mujtaba K GauchoBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro M GarufiArgentinaIvan Magalhaes PROPOSAL
Arvin J NickaBrazilIoni Bowcher UNQUALIFIED
Octavia P MaletRussiaAsiya Javayant NEW
Maisha W MacleadRussiaAsiya Javayant NEW
Leja U StensethItalyStephen Shaw PROPOSAL
Aruna L CampainJapanElwin Sharvill NEGOTIATION
Kaitlin W GlickBrazilOnyama Limba NEGOTIATION
Kaitlin E NestleBrazilBernardo Dominic UNQUALIFIED
Cody Q GillianRussiaBernardo Dominic RENEWAL
Arvin X CampainUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo H DilliardAustralia2026-06-14Feltz Printing Service PROPOSAL45Elwin Sharvill
1001Julie V AmigonAustralia2026-06-24Commercial Press NEW35Onyama Limba
1002Misaki Y InouyeRussia2026-06-20Feltz Printing Service PROPOSAL72Ivan Magalhaes
1003Jones J WieserJapan2026-06-09Rangoni Of Florence RENEWAL28Bernardo Dominic
1004Jennifer A StockhamUnited Kingdom2026-06-17Chapman, Ross E Esq UNQUALIFIED67Anna Fali
1005Alejandro I RimGermany2026-06-06Morlong Associates RENEWAL14Anna Fali
1006Julie L ButtIndia2026-06-26Dorl, James J Esq NEW51Ioni Bowcher
1007Leon S RutaGermany2026-06-24Chemel, James L Cpa NEW51Asiya Javayant
1008Jones D GillianIndia2026-06-27Chapman, Ross E Esq RENEWAL15Amy Elsner
1009Greenwood P DarakjyCanada2026-06-30King, Christopher A Esq NEGOTIATION21Ioni Bowcher
1010Silvio M MaletFrance2026-06-12Chapman, Ross E Esq RENEWAL45Asiya Javayant
1011Emily Q FollerFrance2026-06-14Benton, John B Jr PROPOSAL25Bernardo Dominic
1012Ricardo X FollerSpain2026-06-06Truhlar And Truhlar Attys RENEWAL10Onyama Limba
1013Antonio K GauchoIndia2026-07-04Chapman, Ross E Esq UNQUALIFIED90Ivan Magalhaes
1014Clifford H OstroskyAustralia2026-06-17Chapman, Ross E Esq NEW66Stephen Shaw
1015Smith P GlickJapan2026-06-13Feiner Bros NEGOTIATION85Xuxue Feng
1016Clifford R BriddickBrazil2026-06-22Rangoni Of Florence UNQUALIFIED33Onyama Limba
1017Jones E MacleadCanada2026-06-10Buckley Miller Wright NEW79Elwin Sharvill
1018Jennifer R PoquetteRussia2026-06-06Chapman, Ross E Esq RENEWAL43Ivan Magalhaes
1019Mayumi F MaletFrance2026-06-09Chanay, Jeffrey A Esq RENEWAL46Ioni Bowcher
1020Stacey Z AlbaresItaly2026-06-18Chapman, Ross E Esq RENEWAL51Asiya Javayant
1021Sinclair O WhobreyRussia2026-06-19Truhlar And Truhlar Attys NEW93Stephen Shaw
1022Jones I FlosiCanada2026-07-04Feiner Bros NEGOTIATION23Xuxue Feng
1023Cody B GlickJapan2026-06-24Chemel, James L Cpa UNQUALIFIED41Ioni Bowcher
1024Kaitlin O SergiItaly2026-06-07Buckley Miller Wright QUALIFIED88Amy Elsner
1025Maisha E MarrierFrance2026-06-30Feltz Printing Service PROPOSAL51Stephen Shaw
1026James Z CampainFrance2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED44Anna Fali
1027Jeanfrancois Q KolmetzRussia2026-06-06Rangoni Of Florence NEGOTIATION85Bernardo Dominic
1028Salvatore I FollerUnited Kingdom2026-06-21Truhlar And Truhlar Attys QUALIFIED42Elwin Sharvill
1029Rodrigues W SlusarskiUnited Kingdom2026-06-18Chanay, Jeffrey A Esq NEGOTIATION68Bernardo Dominic
1030Silvio W GarufiGermany2026-06-18Feiner Bros QUALIFIED85Xuxue Feng
1031Juan K SchemmerArgentina2026-06-28Printing Dimensions UNQUALIFIED72Amy Elsner
1032Leon X KolmetzGermany2026-07-04Feltz Printing Service NEGOTIATION48Anna Fali
1033Aditya G VocelkaItaly2026-06-14Commercial Press NEW24Stephen Shaw
1034Arvin T FigeroaUnited Kingdom2026-06-08Chemel, James L Cpa NEW15Ivan Magalhaes
1035Greenwood M VocelkaSpain2026-07-01Benton, John B Jr PROPOSAL69Elwin Sharvill
1036Cody Z BowleyGermany2026-06-29Chemel, James L Cpa NEGOTIATION23Asiya Javayant
1037Claire H NestleFrance2026-06-15Truhlar And Truhlar Attys NEW42Anna Fali
1038Clifford U MacleadRussia2026-07-04Truhlar And Truhlar Attys UNQUALIFIED99Anna Fali
1039Rodrigues I SlusarskiCanada2026-06-06Benton, John B Jr RENEWAL93Anna Fali
1040Rodrigues Z GauchoRussia2026-07-05Benton, John B Jr PROPOSAL90Asiya Javayant
1041Mujtaba J KolmetzSpain2026-07-01Rangoni Of Florence QUALIFIED41Amy Elsner
1042James Q BologniaFrance2026-06-25Chemel, James L Cpa QUALIFIED22Anna Fali
1043Aruna S AlbaresBrazil2026-06-24Chanay, Jeffrey A Esq NEGOTIATION90Onyama Limba
1044Kadeem J MorascaFrance2026-06-21Feltz Printing Service NEGOTIATION12Elwin Sharvill
1045Leja J CaldareraGermany2026-06-29Commercial Press NEGOTIATION91Xuxue Feng
1046Stacey L RulapaughItaly2026-06-23Chapman, Ross E Esq RENEWAL52Amy Elsner
1047Kadeem Y TollnerRussia2026-06-08Dorl, James J Esq RENEWAL95Ivan Magalhaes
1048Adams E DoeArgentina2026-06-18Morlong Associates RENEWAL28Xuxue Feng
1049Julie D GillianFrance2026-06-23Rangoni Of Florence QUALIFIED3Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony X ChuiItalyBernardo Dominic RENEWAL
Misaki D WaycottItalyOnyama Limba NEW
Misaki C KuskoUnited KingdomStephen Shaw UNQUALIFIED
Wickens T RulapaughItalyBernardo Dominic QUALIFIED
Darci K BologniaCanadaXuxue Feng RENEWAL
Aika R SchemmerUnited KingdomXuxue Feng RENEWAL
Nicolas C ShinkoIndiaIoni Bowcher PROPOSAL
Octavia J StensethBrazilAmy Elsner QUALIFIED
Maisha F MorascaBrazilOnyama Limba RENEWAL
Cody P PerinUnited KingdomIvan Magalhaes RENEWAL
Costa M MacleadArgentinaBernardo Dominic UNQUALIFIED
Murillo E NickaFranceIoni Bowcher UNQUALIFIED
Stacey M IturbideJapanIoni Bowcher QUALIFIED
Alejandro N StockhamGermanyIoni Bowcher RENEWAL
Alejandro M WieserJapanIoni Bowcher PROPOSAL
Faith F SchemmerAustraliaIoni Bowcher UNQUALIFIED
Izzy T KuskoIndiaStephen Shaw RENEWAL
David F GauchoCanadaIvan Magalhaes RENEWAL
Julie V GillianGermanyStephen Shaw UNQUALIFIED
Stacey O PaprockiCanadaElwin Sharvill UNQUALIFIED
Kaitlin W GlickIndiaAmy Elsner NEW
Murillo H AmigonGermanyAmy Elsner RENEWAL
Maria W IturbideRussiaElwin Sharvill PROPOSAL
Salvatore V PoquetteUnited KingdomElwin Sharvill QUALIFIED
Jones X TollnerBrazilXuxue Feng RENEWAL
Stacey T InouyeArgentinaIvan Magalhaes PROPOSAL
Sinclair Y KolmetzItalyOnyama Limba QUALIFIED
Clifford Z SlusarskiItalyIvan Magalhaes QUALIFIED
Sinclair J ShinkoBrazilStephen Shaw UNQUALIFIED
Jeanfrancois T RutaGermanyIvan Magalhaes RENEWAL
Wickens Z PoquetteBrazilXuxue Feng NEGOTIATION
Cody Y ShinkoBrazilAnna Fali PROPOSAL
Aruna E StockhamAustraliaIoni Bowcher QUALIFIED
Deepesh Z VocelkaIndiaIoni Bowcher UNQUALIFIED
Aruna S StensethCanadaAmy Elsner NEGOTIATION
Chavez G BriddickItalyIoni Bowcher PROPOSAL
Chavez B WaycottGermanyAmy Elsner PROPOSAL
Claire I CaldareraArgentinaStephen Shaw NEW
Alejandro H CaldareraRussiaElwin Sharvill RENEWAL
Aika U CampainRussiaStephen Shaw PROPOSAL
Isabel F VocelkaJapanStephen Shaw RENEWAL
Aditya A CaldareraCanadaElwin Sharvill UNQUALIFIED
Sinclair Z CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Clifford I MaletItalyAmy Elsner NEGOTIATION
Julie D ButtAustraliaAmy Elsner UNQUALIFIED
Kadeem U BologniaUnited KingdomBernardo Dominic QUALIFIED
Leja C GillianCanadaAsiya Javayant UNQUALIFIED
Darci K RimBrazilAsiya Javayant NEW
Rodrigues Y CaudySpainIvan Magalhaes QUALIFIED
Juan L RoysterFranceBernardo Dominic QUALIFIED
Frozen Columns
Name
Salvatore D Sergi
Tony O Shinko
Mayumi N Figeroa
Nicolas C Maclead
Claire E Ruta
Silvio A Glick
Francesco M Bolognia
Izzy X Bowley
Adams L Doe
Aditya D Campain
Costa Q Wieser
Adams J Venere
Aika V Waycott
Nicolas I Darakjy
Wickens N Saylors
Juan P Waycott
Francesco J Nicka
Silvio N Garufi
Arvin C Chui
Kadeem O Kolmetz
Sinclair Y Rulapaugh
Mujtaba R Albares
Claire A Flosi
Jennifer R Whobrey
Maria D Marrier
Maria Y Saylors
Morrow A Campain
Alejandro M Wieser
Clifford F Wieser
Salvatore N Garufi
Izzy D Whobrey
Adams C Waycott
Izzy A Marrier
Maisha J Waycott
Isabel F Whobrey
Adams P Stockham
Leja Z Marrier
Smith O Kusko
Julie Z Kusko
Silvio E Rim
Clifford V Bowley
David J Ostrosky
Francesco W Morasca
James R Inouye
Jefferson B Stenseth
Izzy F Paprocki
Sinclair N Stockham
Arvin T Caudy
Sinclair N Glick
Cody F Foller
IdCountryDate
1000Australia2026-06-27
1001Argentina2026-06-15
1002Japan2026-06-23
1003Russia2026-06-16
1004Russia2026-06-26
1005Australia2026-06-30
1006Germany2026-07-02
1007Germany2026-07-03
1008India2026-06-29
1009Italy2026-06-11
1010Japan2026-07-03
1011Russia2026-06-27
1012Germany2026-06-13
1013France2026-06-13
1014Japan2026-07-03
1015Germany2026-06-13
1016Spain2026-06-18
1017Russia2026-06-15
1018Australia2026-06-25
1019Russia2026-06-17
1020Brazil2026-06-15
1021France2026-06-22
1022Russia2026-07-02
1023United Kingdom2026-06-26
1024United Kingdom2026-06-30
1025Germany2026-07-01
1026Russia2026-06-17
1027India2026-06-11
1028Russia2026-06-20
1029Spain2026-06-30
1030France2026-06-24
1031India2026-06-30
1032Argentina2026-06-11
1033Russia2026-06-22
1034United Kingdom2026-06-19
1035United Kingdom2026-06-14
1036United Kingdom2026-07-05
1037India2026-06-26
1038Germany2026-06-21
1039Spain2026-06-08
1040Germany2026-06-22
1041Japan2026-06-13
1042France2026-07-05
1043Spain2026-06-11
1044Italy2026-06-16
1045Germany2026-07-04
1046Russia2026-06-28
1047Italy2026-07-05
1048Argentina2026-06-24
1049Germany2026-06-24

On-Demand Data

NameIdCountryDate
Emily Q Venere1000India2026-07-03
Salvatore R Royster1001Russia2026-06-28
James T Rim1002Canada2026-07-05
Jeanfrancois S Waycott1003Germany2026-06-08
Juan B Wieser1004Australia2026-06-16
Claire L Marrier1005Canada2026-06-28
Izzy Y Inouye1006Australia2026-07-01
Clifford S Morasca1007Spain2026-06-17
Alejandro F Gaucho1008Argentina2026-06-06
Julie E Stockham1009Brazil2026-06-24
Misaki L Darakjy1010Australia2026-06-24
Leja P Kolmetz1011Italy2026-06-07
Aika K Morasca1012France2026-07-05
Rodrigues R Inouye1013Australia2026-06-17
Arvin Q Gaucho1014United Kingdom2026-07-02
James Z Whobrey1015Germany2026-06-06
Smith C Doe1016France2026-06-24
Aditya A Dilliard1017India2026-06-24
Kadeem Y Sergi1018Russia2026-06-24
Salvatore P Stockham1019United Kingdom2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel U ChuiCanadaAnna Fali UNQUALIFIED
David S FollerBrazilAnna Fali NEGOTIATION
Mujtaba X VenereCanadaBernardo Dominic RENEWAL
Kadeem D ChuiIndiaBernardo Dominic NEGOTIATION
Jefferson Y CaldareraCanadaIvan Magalhaes QUALIFIED
Chavez M SergiSpainIoni Bowcher RENEWAL
Jeanfrancois U ShinkoAustraliaStephen Shaw RENEWAL
Darci Z BologniaAustraliaAmy Elsner PROPOSAL
Stacey X VenereRussiaOnyama Limba NEW
Smith O PoquetteArgentinaStephen Shaw QUALIFIED
Deepesh H FerenczFranceBernardo Dominic UNQUALIFIED
Tony Y MarrierRussiaStephen Shaw PROPOSAL
Jennifer G StockhamGermanyStephen Shaw RENEWAL
Adams R WieserUnited KingdomXuxue Feng NEGOTIATION
Francesco T KolmetzItalyAmy Elsner NEGOTIATION
Misaki M ChuiJapanAnna Fali UNQUALIFIED
Juan H TollnerFranceBernardo Dominic NEGOTIATION
Claire B BologniaBrazilIoni Bowcher QUALIFIED
James U InouyeRussiaBernardo Dominic UNQUALIFIED
Jones O ButtArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois E RoysterBrazilAsiya Javayant NEW
Izzy Z VocelkaUnited KingdomIvan Magalhaes NEW
Mayumi C GillianUnited KingdomAsiya Javayant NEW
Juan R FerenczFranceStephen Shaw NEW
Wickens S StensethBrazilXuxue Feng PROPOSAL
Munro H PerinGermanyAnna Fali PROPOSAL
Darci A RimGermanyStephen Shaw NEGOTIATION
Alejandro V StockhamFranceStephen Shaw PROPOSAL
Costa E MacleadArgentinaElwin Sharvill UNQUALIFIED
Faith R ShinkoBrazilAnna Fali PROPOSAL
Mayumi W InouyeArgentinaBernardo Dominic NEW
Alejandro E ShinkoRussiaElwin Sharvill NEW
Mujtaba U OstroskyAustraliaAnna Fali QUALIFIED
Julie Z StensethIndiaStephen Shaw NEW
Maisha Q SaylorsJapanAmy Elsner RENEWAL
Leon E NickaIndiaBernardo Dominic QUALIFIED
Maisha L SaylorsCanadaIvan Magalhaes QUALIFIED
Leja M AmigonGermanyIvan Magalhaes PROPOSAL
Johnson Z PoquetteArgentinaStephen Shaw PROPOSAL
Wickens G SaylorsFranceOnyama Limba 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>