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
Arvin T CampainItalyBernardo Dominic QUALIFIED
Claire T StockhamCanadaAsiya Javayant RENEWAL
Sinclair F RutaRussiaIoni Bowcher QUALIFIED
Jefferson X DarakjyArgentinaIoni Bowcher UNQUALIFIED
Ashley J PaprockiAustraliaElwin Sharvill UNQUALIFIED
Leon O DilliardBrazilOnyama Limba UNQUALIFIED
Claire F CampainAustraliaXuxue Feng RENEWAL
Octavia Q RutaAustraliaStephen Shaw UNQUALIFIED
Aika R RoysterUnited KingdomXuxue Feng RENEWAL
Mayumi J WieserBrazilXuxue Feng UNQUALIFIED
Aruna Q MarrierItalyStephen Shaw UNQUALIFIED
Chavez G GlickBrazilAnna Fali UNQUALIFIED
Stacey X DoeArgentinaIoni Bowcher RENEWAL
Smith B KolmetzFranceAmy Elsner NEGOTIATION
Costa O NickaRussiaXuxue Feng PROPOSAL
Octavia S AlbaresIndiaIoni Bowcher UNQUALIFIED
Sinclair I WieserJapanAmy Elsner UNQUALIFIED
Faith E RutaRussiaIvan Magalhaes UNQUALIFIED
Clifford H PerinUnited KingdomIoni Bowcher NEW
Ashley S CampainUnited KingdomIoni Bowcher RENEWAL
Clifford P FlosiArgentinaAmy Elsner NEGOTIATION
Deepesh M ShinkoFranceElwin Sharvill QUALIFIED
Silvio H OldroydBrazilIvan Magalhaes NEW
Nicolas P MaletGermanyXuxue Feng QUALIFIED
Juan Z DarakjyAustraliaElwin Sharvill NEGOTIATION
Leon G CaudyCanadaAsiya Javayant UNQUALIFIED
Ivar R ShinkoAustraliaOnyama Limba RENEWAL
Ricardo N AlbaresIndiaOnyama Limba PROPOSAL
Cody S MacleadJapanIvan Magalhaes NEW
Jeanfrancois H SlusarskiIndiaIvan Magalhaes PROPOSAL
Leon V PoquetteUnited KingdomXuxue Feng RENEWAL
Julie B InouyeUnited KingdomAsiya Javayant RENEWAL
Izzy I GillianItalyElwin Sharvill NEGOTIATION
Greenwood U MorascaGermanyOnyama Limba NEGOTIATION
David M PoquetteSpainAsiya Javayant PROPOSAL
Johnson W MaletSpainIoni Bowcher QUALIFIED
Emily O MaletSpainIoni Bowcher UNQUALIFIED
Darci Y GarufiUnited KingdomStephen Shaw NEGOTIATION
Jeanfrancois N FigeroaJapanAmy Elsner UNQUALIFIED
Ricardo G OldroydBrazilAnna Fali UNQUALIFIED
Leja F GillianSpainBernardo Dominic RENEWAL
Misaki G PoquetteGermanyIvan Magalhaes NEW
Maria D PaprockiAustraliaOnyama Limba NEW
Morrow S SlusarskiBrazilAmy Elsner NEW
Darci P IturbideSpainAsiya Javayant PROPOSAL
Tony O StensethIndiaAnna Fali UNQUALIFIED
Deepesh M FollerFranceXuxue Feng NEW
Morrow V FerenczArgentinaXuxue Feng PROPOSAL
Ricardo O GauchoGermanyAsiya Javayant RENEWAL
Maria E FlosiBrazilBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James S DilliardRussiaElwin Sharvill PROPOSAL
Aditya K PoquetteRussiaStephen Shaw NEW
Rodrigues Q RimUnited KingdomBernardo Dominic UNQUALIFIED
Darci W RimFranceIvan Magalhaes NEW
Stacey W SlusarskiRussiaIoni Bowcher NEGOTIATION
Jennifer I FigeroaGermanyAnna Fali UNQUALIFIED
Julie Z WaycottIndiaStephen Shaw NEGOTIATION
Wickens Q SaylorsItalyOnyama Limba PROPOSAL
Smith J GlickGermanyAsiya Javayant PROPOSAL
Jennifer A MacleadJapanIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams D SlusarskiUnited Kingdom2026-06-26King, Christopher A Esq NEGOTIATION79Ivan Magalhaes
1001Munro P FerenczFrance2026-07-19Printing Dimensions NEGOTIATION88Ioni Bowcher
1002Francesco K RulapaughAustralia2026-07-22Truhlar And Truhlar Attys RENEWAL92Bernardo Dominic
1003Darci N FlosiUnited Kingdom2026-07-08Feiner Bros NEW16Elwin Sharvill
1004James M WieserBrazil2026-07-20Truhlar And Truhlar Attys NEGOTIATION33Stephen Shaw
1005Chavez G ButtUnited Kingdom2026-07-23Rousseaux, Michael Esq UNQUALIFIED26Asiya Javayant
1006Deepesh S WaycottUnited Kingdom2026-07-09Commercial Press NEW90Anna Fali
1007Leja A NestleUnited Kingdom2026-06-28Dorl, James J Esq NEGOTIATION82Anna Fali
1008Greenwood J FerenczArgentina2026-07-23Chanay, Jeffrey A Esq PROPOSAL60Amy Elsner
1009Isabel T CaldareraBrazil2026-07-12Truhlar And Truhlar Attys RENEWAL74Stephen Shaw
1010Leja H PoquetteFrance2026-07-20Commercial Press UNQUALIFIED99Bernardo Dominic
1011Alejandro U RulapaughGermany2026-07-20Morlong Associates PROPOSAL53Ioni Bowcher
1012Jeanfrancois G SlusarskiSpain2026-07-03Printing Dimensions UNQUALIFIED2Ioni Bowcher
1013Greenwood G DarakjyIndia2026-07-06King, Christopher A Esq NEW67Amy Elsner
1014Mayumi P BriddickGermany2026-07-01Chanay, Jeffrey A Esq NEGOTIATION91Stephen Shaw
1015Aditya Z InouyeIndia2026-06-30Feltz Printing Service QUALIFIED59Elwin Sharvill
1016Ashley V WaycottUnited Kingdom2026-07-11Rangoni Of Florence QUALIFIED80Stephen Shaw
1017Mujtaba G BriddickFrance2026-07-10Buckley Miller Wright NEGOTIATION21Elwin Sharvill
1018Deepesh K WhobreyItaly2026-07-18Truhlar And Truhlar Attys NEGOTIATION77Ivan Magalhaes
1019Costa L DilliardSpain2026-07-02Morlong Associates UNQUALIFIED61Elwin Sharvill
1020Antonio R WhobreyFrance2026-07-19Dorl, James J Esq RENEWAL33Bernardo Dominic
1021Wickens S TollnerFrance2026-07-09Dorl, James J Esq UNQUALIFIED15Elwin Sharvill
1022Aditya P FlosiItaly2026-07-01Chapman, Ross E Esq QUALIFIED87Asiya Javayant
1023Morrow V PaprockiAustralia2026-07-07Truhlar And Truhlar Attys NEGOTIATION43Elwin Sharvill
1024Darci T ChuiItaly2026-07-08King, Christopher A Esq PROPOSAL63Xuxue Feng
1025Aika P KolmetzItaly2026-06-29King, Christopher A Esq QUALIFIED36Elwin Sharvill
1026Aditya M FollerAustralia2026-07-24Feiner Bros QUALIFIED76Ioni Bowcher
1027Maisha L FlosiUnited Kingdom2026-07-11Chapman, Ross E Esq PROPOSAL42Asiya Javayant
1028Nicolas M RimRussia2026-06-28Rangoni Of Florence RENEWAL90Stephen Shaw
1029Aruna O PerinUnited Kingdom2026-06-26Buckley Miller Wright NEGOTIATION54Anna Fali
1030Rodrigues L InouyeUnited Kingdom2026-07-06King, Christopher A Esq PROPOSAL22Elwin Sharvill
1031Juan Q MacleadAustralia2026-07-04Truhlar And Truhlar Attys QUALIFIED80Anna Fali
1032Izzy Z WaycottUnited Kingdom2026-06-28Rangoni Of Florence QUALIFIED83Amy Elsner
1033Aditya C MacleadUnited Kingdom2026-06-26Chemel, James L Cpa PROPOSAL84Asiya Javayant
1034Johnson G KolmetzGermany2026-07-23Rousseaux, Michael Esq NEW1Anna Fali
1035Arvin C PoquetteUnited Kingdom2026-07-09Commercial Press RENEWAL53Amy Elsner
1036Costa V VocelkaGermany2026-07-12Feltz Printing Service PROPOSAL84Onyama Limba
1037Smith L CaldareraBrazil2026-07-12Rousseaux, Michael Esq QUALIFIED86Onyama Limba
1038Wickens C VenereItaly2026-07-24Morlong Associates NEGOTIATION53Stephen Shaw
1039Alejandro Q SergiAustralia2026-06-30King, Christopher A Esq UNQUALIFIED64Anna Fali
1040Julie T RutaAustralia2026-06-29Feltz Printing Service NEGOTIATION38Stephen Shaw
1041Rodrigues U InouyeItaly2026-07-13Printing Dimensions RENEWAL83Anna Fali
1042Salvatore L DilliardJapan2026-07-24Truhlar And Truhlar Attys NEGOTIATION19Ivan Magalhaes
1043Maisha Q TollnerIndia2026-07-02Commercial Press RENEWAL68Asiya Javayant
1044Chavez D BriddickFrance2026-07-16Morlong Associates RENEWAL17Ivan Magalhaes
1045Deepesh Z TollnerArgentina2026-06-27Printing Dimensions RENEWAL8Ioni Bowcher
1046Antonio A DarakjyGermany2026-07-07Benton, John B Jr QUALIFIED61Onyama Limba
1047Adams G StensethItaly2026-07-03Rangoni Of Florence QUALIFIED7Stephen Shaw
1048Wickens P WhobreyGermany2026-06-28Benton, John B Jr PROPOSAL87Ivan Magalhaes
1049Juan T AlbaresGermany2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED74Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Darci L StensethRussiaIvan Magalhaes NEGOTIATION
Costa W MorascaAustraliaIvan Magalhaes QUALIFIED
Leja V InouyeArgentinaIvan Magalhaes NEGOTIATION
Jones P OldroydBrazilAsiya Javayant RENEWAL
Leja T MorascaIndiaXuxue Feng NEGOTIATION
Kaitlin V SchemmerIndiaAnna Fali NEW
David X PoquetteSpainElwin Sharvill RENEWAL
Claire I FlosiRussiaStephen Shaw RENEWAL
Greenwood J FigeroaArgentinaElwin Sharvill RENEWAL
Greenwood K NestleItalyAmy Elsner NEW
Jones U RimUnited KingdomElwin Sharvill NEGOTIATION
Cody H OldroydGermanyIvan Magalhaes PROPOSAL
Stacey Y ChuiCanadaAsiya Javayant NEW
Aika M DilliardSpainAmy Elsner NEGOTIATION
Jefferson E MacleadItalyIoni Bowcher NEW
David C WieserAustraliaOnyama Limba RENEWAL
Antonio J NestleArgentinaElwin Sharvill PROPOSAL
Misaki X MaletUnited KingdomAnna Fali PROPOSAL
Salvatore L GillianUnited KingdomElwin Sharvill NEW
Mujtaba S GarufiJapanAnna Fali NEGOTIATION
Maria Z RoysterBrazilIoni Bowcher QUALIFIED
Leon J RulapaughIndiaIoni Bowcher QUALIFIED
Sinclair K FlosiAustraliaAnna Fali RENEWAL
Maisha I PerinGermanyBernardo Dominic NEGOTIATION
Julie E StensethIndiaStephen Shaw PROPOSAL
Leja T IturbideCanadaOnyama Limba NEGOTIATION
Smith G MorascaItalyStephen Shaw NEGOTIATION
Aditya G WaycottRussiaAnna Fali NEGOTIATION
Alejandro J VocelkaRussiaIvan Magalhaes NEW
Octavia L FlosiSpainOnyama Limba NEGOTIATION
Izzy A DarakjyUnited KingdomAnna Fali QUALIFIED
Maria K KuskoBrazilAnna Fali UNQUALIFIED
Silvio R VocelkaIndiaOnyama Limba RENEWAL
Ashley V IturbideArgentinaOnyama Limba QUALIFIED
Cody U CaldareraJapanElwin Sharvill PROPOSAL
Arvin J WhobreyBrazilElwin Sharvill NEGOTIATION
Juan A PerinRussiaIvan Magalhaes NEW
Claire H BologniaArgentinaIvan Magalhaes NEGOTIATION
Izzy S PerinItalyOnyama Limba PROPOSAL
Leon F GarufiItalyElwin Sharvill PROPOSAL
Salvatore E VocelkaSpainIvan Magalhaes UNQUALIFIED
Nicolas E MacleadUnited KingdomBernardo Dominic RENEWAL
Adams M InouyeBrazilOnyama Limba RENEWAL
Jennifer R NickaItalyXuxue Feng NEGOTIATION
Chavez Q MarrierCanadaAsiya Javayant QUALIFIED
Leon H ShinkoFranceXuxue Feng QUALIFIED
Aditya N PerinItalyBernardo Dominic RENEWAL
Mujtaba E InouyeIndiaAsiya Javayant UNQUALIFIED
Isabel S KolmetzCanadaIoni Bowcher NEGOTIATION
Clifford V FigeroaUnited KingdomIoni Bowcher PROPOSAL
Frozen Columns
Name
Francesco T Caldarera
Faith L Nestle
Johnson B Ferencz
Stacey V Rim
Mujtaba O Whobrey
Deepesh B Darakjy
Munro F Shinko
Clifford S Morasca
Maisha Y Kusko
Greenwood I Morasca
Alejandro C Royster
Clifford N Marrier
Ricardo V Sergi
Deepesh O Ostrosky
James B Slusarski
David B Maclead
Tony I Foller
Alejandro F Morasca
Ricardo L Poquette
Murillo P Nicka
Maisha N Marrier
Octavia U Darakjy
Silvio K Flosi
Silvio G Tollner
Faith R Stockham
Smith D Gillian
Julie P Waycott
Sinclair J Gillian
Julie R Stenseth
Aruna H Saylors
Cody Q Vocelka
Ivar Y Maclead
Faith F Tollner
Maria L Amigon
Juan S Dilliard
Deepesh S Perin
Jennifer Y Perin
Jefferson C Rulapaugh
Jefferson Q Rim
Wickens L Sergi
Morrow Z Albares
Chavez A Oldroyd
Misaki E Poquette
Emily P Malet
Ricardo T Albares
Smith D Tollner
Octavia N Caldarera
Adams L Bolognia
Chavez S Wieser
Johnson P Stockham
IdCountryDate
1000Russia2026-07-24
1001Italy2026-07-23
1002Japan2026-07-22
1003Italy2026-06-27
1004Canada2026-06-27
1005Brazil2026-06-30
1006Spain2026-07-21
1007Argentina2026-07-10
1008United Kingdom2026-07-05
1009Italy2026-06-30
1010Italy2026-07-07
1011Canada2026-07-06
1012Germany2026-06-28
1013India2026-07-19
1014India2026-07-19
1015India2026-07-02
1016Italy2026-07-10
1017Italy2026-07-06
1018Australia2026-07-02
1019Japan2026-06-27
1020Italy2026-07-02
1021Argentina2026-07-05
1022Canada2026-06-26
1023Germany2026-07-25
1024United Kingdom2026-07-01
1025France2026-07-10
1026Argentina2026-07-08
1027Argentina2026-07-25
1028Italy2026-07-12
1029Italy2026-07-02
1030Russia2026-07-11
1031Germany2026-07-18
1032India2026-07-10
1033Canada2026-07-13
1034Japan2026-07-25
1035India2026-07-11
1036Russia2026-07-01
1037Italy2026-07-19
1038India2026-06-28
1039Japan2026-07-14
1040Argentina2026-07-05
1041Spain2026-07-11
1042India2026-06-30
1043Japan2026-06-28
1044Italy2026-07-08
1045Japan2026-07-15
1046India2026-07-02
1047Japan2026-07-02
1048India2026-07-24
1049Russia2026-07-16

On-Demand Data

NameIdCountryDate
Costa O Marrier1000India2026-07-02
Arvin V Gillian1001Italy2026-07-15
Aditya X Malet1002Australia2026-07-06
Deepesh J Shinko1003India2026-07-04
Chavez T Glick1004Italy2026-07-24
Nicolas S Ferencz1005Australia2026-07-06
Greenwood Q Caldarera1006France2026-07-05
Jeanfrancois N Malet1007Russia2026-07-07
Kaitlin E Rulapaugh1008India2026-07-02
Rodrigues C Caudy1009Japan2026-06-26
Jeanfrancois J Iturbide1010India2026-07-13
Darci U Rim1011Argentina2026-07-25
Ricardo Y Rim1012France2026-07-16
Mujtaba D Flosi1013Germany2026-07-14
Nicolas I Perin1014United Kingdom2026-07-12
James K Saylors1015India2026-07-21
Leja E Kusko1016Australia2026-07-16
Aika O Rim1017Germany2026-07-13
David C Waycott1018France2026-07-20
Ricardo H Chui1019Australia2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh R TollnerRussiaBernardo Dominic QUALIFIED
Izzy H FerenczArgentinaOnyama Limba QUALIFIED
Greenwood H NestleCanadaAmy Elsner NEGOTIATION
Julie Y CaldareraBrazilOnyama Limba RENEWAL
Maria Z RimItalyAnna Fali NEW
Francesco N FerenczGermanyOnyama Limba NEW
Silvio R SchemmerFranceBernardo Dominic RENEWAL
Nicolas S DarakjyJapanBernardo Dominic QUALIFIED
Ricardo I WieserAustraliaStephen Shaw NEW
Octavia Z MarrierCanadaAnna Fali PROPOSAL
Wickens X RimSpainElwin Sharvill UNQUALIFIED
Deepesh D MacleadFranceXuxue Feng RENEWAL
Misaki L OstroskyAustraliaStephen Shaw UNQUALIFIED
Leja G IturbideArgentinaIoni Bowcher NEGOTIATION
Francesco B InouyeArgentinaXuxue Feng QUALIFIED
Ricardo L GarufiAustraliaIvan Magalhaes QUALIFIED
Kadeem T PaprockiBrazilOnyama Limba UNQUALIFIED
Salvatore D GlickItalyAnna Fali QUALIFIED
Stacey K KolmetzSpainAmy Elsner UNQUALIFIED
Aruna N OstroskyItalyXuxue Feng NEGOTIATION
Jennifer N PaprockiJapanElwin Sharvill QUALIFIED
Ricardo O AmigonSpainIoni Bowcher RENEWAL
Leja Y RoysterCanadaElwin Sharvill UNQUALIFIED
Morrow C KolmetzItalyXuxue Feng NEW
Darci C OldroydRussiaStephen Shaw NEW
Chavez U MaletGermanyAmy Elsner PROPOSAL
Stacey E MacleadCanadaOnyama Limba PROPOSAL
Silvio M CampainRussiaIvan Magalhaes UNQUALIFIED
Jefferson T StensethAustraliaStephen Shaw NEW
Ricardo R DilliardIndiaAnna Fali UNQUALIFIED
Jeanfrancois H RulapaughIndiaIvan Magalhaes NEGOTIATION
Maisha T MaletSpainIoni Bowcher NEW
Chavez Q IturbideFranceAsiya Javayant NEGOTIATION
Wickens D AmigonRussiaIvan Magalhaes QUALIFIED
Juan F PerinSpainAmy Elsner RENEWAL
Munro K SergiItalyOnyama Limba QUALIFIED
Aruna G WieserIndiaStephen Shaw NEW
Jennifer Z KolmetzJapanBernardo Dominic RENEWAL
Maria F CaldareraUnited KingdomAmy Elsner NEGOTIATION
Maria X RoysterGermanyOnyama Limba 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>