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
Deepesh G KuskoArgentinaXuxue Feng QUALIFIED
Jones P SaylorsGermanyIvan Magalhaes UNQUALIFIED
Rodrigues P DilliardGermanyIoni Bowcher NEW
Darci P GauchoFranceBernardo Dominic PROPOSAL
Kaitlin U FlosiFranceAmy Elsner NEGOTIATION
Emily K TollnerArgentinaBernardo Dominic QUALIFIED
Aika J FollerArgentinaAmy Elsner RENEWAL
Kadeem E KuskoBrazilIvan Magalhaes NEW
Leja G MacleadUnited KingdomBernardo Dominic QUALIFIED
Francesco S GillianIndiaAmy Elsner RENEWAL
Leja V NestleAustraliaBernardo Dominic QUALIFIED
Maisha T ButtGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois T RutaUnited KingdomAnna Fali RENEWAL
Mujtaba K FlosiJapanAnna Fali PROPOSAL
Costa T InouyeBrazilAmy Elsner PROPOSAL
Leon O SlusarskiJapanXuxue Feng PROPOSAL
Adams A RutaRussiaAmy Elsner NEGOTIATION
Aika J InouyeAustraliaIoni Bowcher UNQUALIFIED
Maisha T GillianGermanyOnyama Limba NEGOTIATION
Misaki X VocelkaBrazilStephen Shaw NEW
Kadeem A WaycottCanadaIoni Bowcher PROPOSAL
Kadeem D SaylorsRussiaXuxue Feng QUALIFIED
Darci E ChuiIndiaIoni Bowcher PROPOSAL
Munro P IturbideFranceStephen Shaw UNQUALIFIED
Maria F SchemmerArgentinaBernardo Dominic NEGOTIATION
Johnson P GillianRussiaOnyama Limba QUALIFIED
Alejandro Q RimArgentinaElwin Sharvill UNQUALIFIED
Ricardo J PoquetteRussiaIoni Bowcher NEW
Leja B NestleCanadaStephen Shaw RENEWAL
Maisha K WieserAustraliaOnyama Limba NEGOTIATION
Misaki S OstroskyBrazilXuxue Feng NEW
Ricardo Q VocelkaCanadaIoni Bowcher RENEWAL
Kaitlin R ChuiJapanIoni Bowcher QUALIFIED
Jones U VocelkaRussiaAnna Fali NEGOTIATION
Jeanfrancois N WaycottIndiaAmy Elsner NEGOTIATION
Wickens R ChuiUnited KingdomBernardo Dominic RENEWAL
Murillo X SergiAustraliaIoni Bowcher NEGOTIATION
Sinclair C StensethRussiaIvan Magalhaes RENEWAL
Leja U PerinGermanyAmy Elsner RENEWAL
Darci C GarufiUnited KingdomAsiya Javayant RENEWAL
James Z DoeRussiaStephen Shaw NEGOTIATION
Maisha H MaletAustraliaAnna Fali PROPOSAL
Arvin K OldroydJapanAnna Fali NEGOTIATION
Ashley W MaletFranceIvan Magalhaes UNQUALIFIED
Ivar I StensethGermanyIoni Bowcher PROPOSAL
Mujtaba S MarrierBrazilOnyama Limba PROPOSAL
Antonio X WhobreyRussiaStephen Shaw UNQUALIFIED
Francesco K RoysterItalyBernardo Dominic NEGOTIATION
Leja X BriddickBrazilAmy Elsner NEW
Stacey D MarrierIndiaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa A PerinRussiaBernardo Dominic NEW
David E OldroydItalyElwin Sharvill UNQUALIFIED
Alejandro M FerenczItalyAsiya Javayant UNQUALIFIED
Mujtaba T MaletJapanElwin Sharvill RENEWAL
Emily X CaldareraRussiaStephen Shaw UNQUALIFIED
Mayumi U DarakjyBrazilAmy Elsner NEW
Darci F WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Ricardo V FigeroaIndiaAnna Fali PROPOSAL
Jeanfrancois R WhobreyArgentinaBernardo Dominic NEW
Morrow B SchemmerGermanyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson R IturbideBrazil2026-07-20Rangoni Of Florence NEW24Ivan Magalhaes
1001Kadeem E BowleySpain2026-08-04Chemel, James L Cpa QUALIFIED96Stephen Shaw
1002Francesco I RutaFrance2026-07-23Rousseaux, Michael Esq PROPOSAL65Amy Elsner
1003Chavez G SchemmerSpain2026-07-29Dorl, James J Esq RENEWAL56Ivan Magalhaes
1004Aditya E BriddickItaly2026-08-05Morlong Associates PROPOSAL47Stephen Shaw
1005Ashley M ButtFrance2026-07-28Truhlar And Truhlar Attys NEW42Ioni Bowcher
1006Murillo A CaldareraIndia2026-08-06Rousseaux, Michael Esq NEW97Bernardo Dominic
1007Maisha C DilliardItaly2026-08-13Chapman, Ross E Esq NEW92Bernardo Dominic
1008James E TollnerIndia2026-08-07Truhlar And Truhlar Attys UNQUALIFIED86Stephen Shaw
1009James B MorascaIndia2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED61Ioni Bowcher
1010Maisha V InouyeBrazil2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED19Anna Fali
1011Francesco K RutaCanada2026-07-19Feltz Printing Service NEW48Ivan Magalhaes
1012Arvin H CaldareraRussia2026-07-31Feiner Bros NEGOTIATION94Asiya Javayant
1013Jennifer N WaycottIndia2026-07-28Chapman, Ross E Esq UNQUALIFIED20Anna Fali
1014Munro J BologniaUnited Kingdom2026-07-25Benton, John B Jr UNQUALIFIED79Anna Fali
1015Wickens V MacleadArgentina2026-07-21King, Christopher A Esq NEW55Stephen Shaw
1016Julie A PerinGermany2026-08-09Chanay, Jeffrey A Esq QUALIFIED84Onyama Limba
1017Smith F SlusarskiFrance2026-07-22Rousseaux, Michael Esq QUALIFIED81Asiya Javayant
1018Jeanfrancois S ButtAustralia2026-08-10Printing Dimensions RENEWAL76Stephen Shaw
1019Smith T SlusarskiItaly2026-08-09Rangoni Of Florence QUALIFIED19Anna Fali
1020Ashley J RutaRussia2026-08-08Truhlar And Truhlar Attys PROPOSAL99Asiya Javayant
1021Ashley B MorascaGermany2026-08-10Feiner Bros PROPOSAL40Stephen Shaw
1022Murillo G SergiJapan2026-07-20Dorl, James J Esq NEW48Xuxue Feng
1023Smith Y KolmetzFrance2026-07-28Feltz Printing Service PROPOSAL13Bernardo Dominic
1024Deepesh D ShinkoArgentina2026-08-03Feltz Printing Service NEW13Anna Fali
1025Murillo W GillianArgentina2026-08-02Morlong Associates QUALIFIED51Xuxue Feng
1026Darci M RulapaughSpain2026-08-11Commercial Press PROPOSAL70Asiya Javayant
1027Claire Z MarrierSpain2026-08-10Feltz Printing Service NEW8Elwin Sharvill
1028Claire A SchemmerCanada2026-07-20Benton, John B Jr RENEWAL48Elwin Sharvill
1029Mujtaba X GlickAustralia2026-08-09Dorl, James J Esq PROPOSAL39Amy Elsner
1030Tony X PerinJapan2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED64Ioni Bowcher
1031Francesco W RutaArgentina2026-08-12Truhlar And Truhlar Attys NEGOTIATION57Xuxue Feng
1032Cody P SergiIndia2026-08-10Dorl, James J Esq QUALIFIED10Bernardo Dominic
1033Deepesh R BriddickAustralia2026-08-07Buckley Miller Wright QUALIFIED99Stephen Shaw
1034Arvin H NestleUnited Kingdom2026-07-31King, Christopher A Esq QUALIFIED5Xuxue Feng
1035Aika Z SchemmerSpain2026-08-05Chemel, James L Cpa PROPOSAL99Anna Fali
1036Arvin Z RoysterIndia2026-08-15Feltz Printing Service QUALIFIED70Onyama Limba
1037Nicolas P FollerCanada2026-08-05Feiner Bros NEW83Asiya Javayant
1038Jeanfrancois J MaletJapan2026-08-11Chapman, Ross E Esq RENEWAL44Asiya Javayant
1039Salvatore K FlosiJapan2026-08-15Chanay, Jeffrey A Esq PROPOSAL73Ivan Magalhaes
1040James T GillianSpain2026-07-31Dorl, James J Esq NEW13Ivan Magalhaes
1041Jennifer P InouyeBrazil2026-07-26Chanay, Jeffrey A Esq NEW0Ioni Bowcher
1042Stacey S InouyeItaly2026-07-27Dorl, James J Esq NEW77Xuxue Feng
1043Cody O DoeBrazil2026-08-09Morlong Associates PROPOSAL38Asiya Javayant
1044Mujtaba H DoeUnited Kingdom2026-07-24Feiner Bros NEW37Ioni Bowcher
1045Costa A MorascaArgentina2026-07-27Truhlar And Truhlar Attys QUALIFIED5Onyama Limba
1046Ashley Y MorascaFrance2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED77Ivan Magalhaes
1047Aika W VocelkaGermany2026-08-09Buckley Miller Wright QUALIFIED79Onyama Limba
1048Cody T BriddickCanada2026-07-27Chemel, James L Cpa QUALIFIED78Amy Elsner
1049Rodrigues P SergiArgentina2026-08-06Printing Dimensions PROPOSAL65Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Tony D KuskoFranceIvan Magalhaes PROPOSAL
Leja I VocelkaAustraliaElwin Sharvill UNQUALIFIED
Alejandro W StensethRussiaAsiya Javayant RENEWAL
Jefferson Q VocelkaItalyIvan Magalhaes PROPOSAL
Jeanfrancois Y MarrierRussiaAnna Fali UNQUALIFIED
Antonio Z KolmetzFranceAsiya Javayant NEW
Aditya B OstroskyArgentinaIvan Magalhaes RENEWAL
Emily Q GarufiSpainIvan Magalhaes NEGOTIATION
David F RimJapanAmy Elsner QUALIFIED
Kadeem L VocelkaArgentinaElwin Sharvill NEW
Adams N NickaRussiaAsiya Javayant UNQUALIFIED
Jones N PaprockiArgentinaAnna Fali QUALIFIED
Rodrigues F StockhamBrazilBernardo Dominic PROPOSAL
David J GarufiSpainElwin Sharvill UNQUALIFIED
Misaki T DilliardGermanyAsiya Javayant UNQUALIFIED
Aditya D VenereFranceXuxue Feng UNQUALIFIED
Maria M BriddickUnited KingdomStephen Shaw RENEWAL
Aika P StensethAustraliaBernardo Dominic NEGOTIATION
Francesco K WaycottSpainAnna Fali PROPOSAL
Jones V RutaSpainAsiya Javayant RENEWAL
Chavez I InouyeBrazilElwin Sharvill PROPOSAL
Costa Q CampainItalyElwin Sharvill UNQUALIFIED
Aditya J RulapaughUnited KingdomElwin Sharvill PROPOSAL
Johnson T RimBrazilOnyama Limba PROPOSAL
David Q OstroskyGermanyXuxue Feng RENEWAL
Cody A CampainSpainIoni Bowcher NEW
Ricardo K SchemmerUnited KingdomAmy Elsner QUALIFIED
Sinclair S PerinFranceAnna Fali UNQUALIFIED
Tony Q PaprockiJapanIvan Magalhaes NEW
Mujtaba N GlickCanadaIoni Bowcher UNQUALIFIED
Ricardo Z RulapaughGermanyOnyama Limba PROPOSAL
Octavia Z SchemmerAustraliaXuxue Feng NEGOTIATION
James Y InouyeSpainIoni Bowcher RENEWAL
Stacey H AmigonUnited KingdomOnyama Limba RENEWAL
Aika S WieserCanadaAsiya Javayant QUALIFIED
Jefferson S WaycottCanadaAnna Fali UNQUALIFIED
James G DoeAustraliaElwin Sharvill NEGOTIATION
Wickens Z OldroydSpainIvan Magalhaes NEW
Arvin B VenereItalyIvan Magalhaes UNQUALIFIED
Clifford T GillianIndiaXuxue Feng PROPOSAL
Izzy S GillianCanadaAmy Elsner NEGOTIATION
Kadeem Z SlusarskiRussiaAmy Elsner UNQUALIFIED
Maisha J FerenczSpainAnna Fali NEW
Chavez V CampainAustraliaXuxue Feng NEW
Smith E CaldareraArgentinaElwin Sharvill NEGOTIATION
David X SergiFranceAnna Fali RENEWAL
Emily S FigeroaArgentinaIoni Bowcher NEW
Salvatore R DarakjyJapanIvan Magalhaes NEW
Jeanfrancois L GarufiIndiaOnyama Limba NEW
Jeanfrancois P SergiAustraliaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Costa S Nestle
Aika P Oldroyd
Ashley G Bowley
Munro K Garufi
Aika J Stenseth
Nicolas Z Foller
Nicolas M Wieser
Mayumi T Shinko
Deepesh C Sergi
Salvatore J Iturbide
Ricardo B Flosi
Izzy F Nicka
Sinclair C Oldroyd
Aika U Kusko
Mujtaba W Kolmetz
Maria S Darakjy
James O Malet
Johnson O Bowley
Mujtaba T Bolognia
Wickens T Caudy
Johnson P Gaucho
Cody Y Darakjy
Jefferson F Campain
Darci U Caudy
Aditya M Iturbide
Misaki Z Inouye
Izzy K Ruta
Ashley F Bolognia
Salvatore P Butt
Jones C Stockham
Costa B Campain
Mayumi N Ostrosky
Clifford E Sergi
Johnson F Marrier
Jeanfrancois L Wieser
James J Wieser
David T Bolognia
Greenwood E Poquette
Morrow O Iturbide
Jeanfrancois T Kusko
Greenwood O Slusarski
Aditya F Venere
Kaitlin S Royster
Tony L Stenseth
Kaitlin Y Campain
Claire B Kolmetz
Smith B Marrier
Ivar N Wieser
Greenwood Y Nicka
Faith L Caudy
IdCountryDate
1000India2026-07-23
1001Argentina2026-07-25
1002Argentina2026-07-28
1003Brazil2026-07-24
1004Brazil2026-07-26
1005Germany2026-07-23
1006Australia2026-08-15
1007Germany2026-08-16
1008Argentina2026-08-17
1009Russia2026-07-31
1010France2026-07-27
1011Brazil2026-07-30
1012Russia2026-08-14
1013Spain2026-07-22
1014Argentina2026-08-08
1015Japan2026-08-08
1016United Kingdom2026-07-29
1017Brazil2026-08-14
1018India2026-08-12
1019Italy2026-07-27
1020Australia2026-08-11
1021Italy2026-07-30
1022Argentina2026-08-03
1023Argentina2026-08-02
1024Spain2026-08-07
1025United Kingdom2026-08-13
1026France2026-08-13
1027Germany2026-07-26
1028Canada2026-08-12
1029Brazil2026-08-05
1030India2026-07-22
1031Argentina2026-08-17
1032Germany2026-08-03
1033Japan2026-08-15
1034United Kingdom2026-08-15
1035United Kingdom2026-07-28
1036India2026-08-07
1037France2026-08-06
1038Italy2026-08-06
1039Japan2026-07-31
1040India2026-08-14
1041Italy2026-07-20
1042India2026-08-05
1043India2026-08-16
1044United Kingdom2026-07-28
1045United Kingdom2026-08-09
1046Japan2026-07-19
1047United Kingdom2026-08-16
1048India2026-08-15
1049Russia2026-08-14

On-Demand Data

NameIdCountryDate
Kadeem Z Schemmer1000Canada2026-08-06
Jefferson U Foller1001Spain2026-07-27
Maria J Rulapaugh1002France2026-08-08
Misaki A Whobrey1003United Kingdom2026-08-08
Smith L Darakjy1004United Kingdom2026-08-05
Salvatore C Malet1005Germany2026-07-26
Francesco F Darakjy1006Italy2026-08-11
Mujtaba X Figeroa1007Spain2026-07-31
Alejandro Y Ferencz1008Argentina2026-07-22
Francesco Y Iturbide1009India2026-08-05
Costa F Garufi1010Canada2026-08-07
Jones B Maclead1011Russia2026-07-19
Antonio S Vocelka1012Italy2026-08-06
Chavez I Flosi1013United Kingdom2026-07-24
Ricardo H Amigon1014Australia2026-07-26
Smith D Bolognia1015Japan2026-08-16
Deepesh K Kusko1016Russia2026-08-16
Chavez G Vocelka1017Italy2026-08-17
Chavez J Wieser1018Canada2026-07-25
Aika W Briddick1019Brazil2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire C FigeroaBrazilXuxue Feng NEGOTIATION
Ashley A IturbideRussiaXuxue Feng NEGOTIATION
David R OstroskyAustraliaStephen Shaw RENEWAL
Mayumi X SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Ashley A KolmetzJapanStephen Shaw PROPOSAL
Claire W MarrierJapanXuxue Feng PROPOSAL
Arvin G BologniaFranceAnna Fali NEW
Munro A RutaAustraliaAmy Elsner UNQUALIFIED
Francesco F WhobreyGermanyBernardo Dominic NEGOTIATION
Jeanfrancois S FollerRussiaOnyama Limba PROPOSAL
Wickens X GlickJapanAmy Elsner NEW
Nicolas J WhobreyJapanElwin Sharvill UNQUALIFIED
Francesco L PerinJapanElwin Sharvill NEGOTIATION
Jefferson N OldroydGermanyIoni Bowcher RENEWAL
Juan B ChuiFranceAmy Elsner PROPOSAL
Octavia V MacleadRussiaElwin Sharvill QUALIFIED
David H GarufiGermanyOnyama Limba QUALIFIED
Claire I WhobreyItalyIoni Bowcher RENEWAL
Ivar M MaletSpainAnna Fali NEW
Leon R MarrierIndiaBernardo Dominic UNQUALIFIED
Aruna R RulapaughCanadaIvan Magalhaes NEGOTIATION
Munro J RimFranceElwin Sharvill QUALIFIED
Jeanfrancois T KolmetzCanadaIoni Bowcher RENEWAL
Smith L SaylorsArgentinaBernardo Dominic UNQUALIFIED
Julie M TollnerJapanAmy Elsner NEGOTIATION
Silvio M BowleyArgentinaStephen Shaw QUALIFIED
Faith K OldroydUnited KingdomAmy Elsner NEW
Emily X StensethArgentinaAmy Elsner QUALIFIED
Morrow Z MacleadSpainIvan Magalhaes UNQUALIFIED
Munro I KolmetzCanadaIoni Bowcher NEGOTIATION
Jeanfrancois M RoysterIndiaIoni Bowcher RENEWAL
Nicolas X RutaRussiaIvan Magalhaes PROPOSAL
Munro B DoeItalyIoni Bowcher NEW
Leja V WieserGermanyXuxue Feng NEGOTIATION
Arvin V ChuiRussiaAmy Elsner NEGOTIATION
Rodrigues Q MarrierFranceAsiya Javayant NEW
Maisha N FigeroaItalyOnyama Limba NEW
Johnson U WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson Z WieserSpainOnyama Limba PROPOSAL
Leon Y FigeroaRussiaBernardo 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>