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
Misaki L WaycottFranceIvan Magalhaes UNQUALIFIED
Maria B SlusarskiBrazilStephen Shaw PROPOSAL
Johnson A CampainSpainAsiya Javayant QUALIFIED
Aruna N DilliardIndiaStephen Shaw NEGOTIATION
Leon C MaletSpainIoni Bowcher RENEWAL
Greenwood T SchemmerArgentinaAnna Fali PROPOSAL
Francesco E BologniaGermanyAmy Elsner NEW
Ricardo T SaylorsItalyIoni Bowcher RENEWAL
Tony A RoysterRussiaAmy Elsner PROPOSAL
Ivar B FollerAustraliaAnna Fali NEGOTIATION
Clifford O BologniaRussiaBernardo Dominic QUALIFIED
David O IturbideSpainAmy Elsner UNQUALIFIED
Octavia K GillianJapanAmy Elsner UNQUALIFIED
Adams I RoysterJapanBernardo Dominic RENEWAL
Greenwood I StensethAustraliaAmy Elsner PROPOSAL
Faith B SlusarskiRussiaAsiya Javayant PROPOSAL
Leon J WieserIndiaAnna Fali QUALIFIED
Izzy H GauchoItalyAsiya Javayant UNQUALIFIED
Nicolas A FollerItalyStephen Shaw NEW
Alejandro E FigeroaArgentinaBernardo Dominic NEGOTIATION
Sinclair V WieserIndiaXuxue Feng NEW
Leja L StockhamGermanyAmy Elsner QUALIFIED
Kaitlin K ButtItalyBernardo Dominic NEW
Aditya Z NestleJapanXuxue Feng NEGOTIATION
Jones B MaletIndiaAmy Elsner NEW
Maria Y GauchoItalyElwin Sharvill NEGOTIATION
Nicolas C GillianBrazilBernardo Dominic NEW
Sinclair N GillianBrazilOnyama Limba PROPOSAL
Maria U WieserIndiaElwin Sharvill NEGOTIATION
Francesco S RulapaughRussiaXuxue Feng UNQUALIFIED
Sinclair L ShinkoGermanyBernardo Dominic NEGOTIATION
Chavez J FerenczBrazilStephen Shaw UNQUALIFIED
Chavez S AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
James X VocelkaSpainIvan Magalhaes RENEWAL
Jefferson P VenereItalyAsiya Javayant UNQUALIFIED
James P CaudyBrazilAsiya Javayant NEW
Izzy P VenereAustraliaAmy Elsner UNQUALIFIED
Leja C NestleJapanIvan Magalhaes UNQUALIFIED
Octavia G NickaAustraliaStephen Shaw UNQUALIFIED
Salvatore R SergiGermanyAsiya Javayant NEW
Ashley V PaprockiGermanyXuxue Feng NEGOTIATION
Tony V MacleadUnited KingdomAmy Elsner QUALIFIED
Juan V PerinSpainElwin Sharvill NEGOTIATION
Aika U GauchoUnited KingdomIvan Magalhaes RENEWAL
Tony P StensethIndiaBernardo Dominic PROPOSAL
Stacey T SchemmerBrazilAsiya Javayant NEW
Silvio J FerenczJapanAsiya Javayant RENEWAL
Mujtaba D FerenczSpainAsiya Javayant PROPOSAL
Wickens R WieserUnited KingdomAnna Fali RENEWAL
Murillo B InouyeRussiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James C FlosiArgentinaElwin Sharvill NEGOTIATION
Nicolas L WhobreyBrazilOnyama Limba QUALIFIED
Johnson X AlbaresGermanyBernardo Dominic UNQUALIFIED
David V PoquetteSpainBernardo Dominic NEW
Aditya N CaldareraUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois T PerinAustraliaIoni Bowcher UNQUALIFIED
Cody X PerinGermanyAmy Elsner NEGOTIATION
Greenwood Q SergiJapanAsiya Javayant QUALIFIED
Sinclair H PerinArgentinaIvan Magalhaes PROPOSAL
Rodrigues Q KolmetzUnited KingdomAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony C CaudyCanada2026-07-25King, Christopher A Esq UNQUALIFIED73Amy Elsner
1001Johnson G ButtGermany2026-07-20Rangoni Of Florence NEW41Ivan Magalhaes
1002Mujtaba L PerinGermany2026-07-14Rangoni Of Florence NEW46Stephen Shaw
1003Salvatore Q PerinFrance2026-08-08Chemel, James L Cpa RENEWAL45Ivan Magalhaes
1004Faith X GlickItaly2026-08-07Truhlar And Truhlar Attys QUALIFIED40Amy Elsner
1005Mayumi Z AlbaresArgentina2026-07-10Benton, John B Jr NEGOTIATION29Asiya Javayant
1006Maria X FlosiBrazil2026-07-27Chemel, James L Cpa RENEWAL28Ivan Magalhaes
1007Ricardo C MaletArgentina2026-07-28Feiner Bros UNQUALIFIED61Onyama Limba
1008Leja Z BologniaArgentina2026-07-31Rousseaux, Michael Esq QUALIFIED24Amy Elsner
1009Juan G FlosiAustralia2026-07-21Morlong Associates QUALIFIED79Onyama Limba
1010Emily F OstroskyAustralia2026-08-02Benton, John B Jr RENEWAL73Anna Fali
1011Stacey N MaletIndia2026-07-11Chanay, Jeffrey A Esq RENEWAL30Ioni Bowcher
1012Leon I GlickRussia2026-08-05Buckley Miller Wright NEGOTIATION66Bernardo Dominic
1013Mujtaba I InouyeIndia2026-08-02Chanay, Jeffrey A Esq QUALIFIED77Ivan Magalhaes
1014Rodrigues G BowleyArgentina2026-07-31Feltz Printing Service NEGOTIATION38Stephen Shaw
1015Maria L StockhamGermany2026-07-21Feltz Printing Service NEGOTIATION52Bernardo Dominic
1016Faith G FigeroaBrazil2026-07-29Buckley Miller Wright UNQUALIFIED86Anna Fali
1017Chavez W PoquetteGermany2026-07-28Feltz Printing Service UNQUALIFIED89Amy Elsner
1018David A KolmetzGermany2026-07-11Feltz Printing Service QUALIFIED27Xuxue Feng
1019Rodrigues U RoysterItaly2026-07-26Rangoni Of Florence UNQUALIFIED93Elwin Sharvill
1020Kaitlin P SergiFrance2026-07-22Rangoni Of Florence QUALIFIED65Onyama Limba
1021Costa R PaprockiArgentina2026-08-04Benton, John B Jr NEGOTIATION29Amy Elsner
1022Alejandro L VenereFrance2026-07-11Feltz Printing Service NEGOTIATION47Xuxue Feng
1023Morrow K FlosiJapan2026-07-18Feiner Bros QUALIFIED72Onyama Limba
1024Johnson X ButtUnited Kingdom2026-07-24Dorl, James J Esq RENEWAL16Ioni Bowcher
1025Johnson P MarrierItaly2026-07-31Rangoni Of Florence QUALIFIED82Asiya Javayant
1026Greenwood Y SergiUnited Kingdom2026-07-28Buckley Miller Wright QUALIFIED48Xuxue Feng
1027Maria E AlbaresIndia2026-08-01Commercial Press UNQUALIFIED64Ioni Bowcher
1028Misaki S StockhamCanada2026-07-20Feiner Bros NEW25Xuxue Feng
1029Munro I RutaBrazil2026-07-17Commercial Press QUALIFIED91Stephen Shaw
1030Emily A SlusarskiIndia2026-08-07Rousseaux, Michael Esq PROPOSAL29Ivan Magalhaes
1031Maria V MorascaGermany2026-07-25King, Christopher A Esq NEGOTIATION18Elwin Sharvill
1032Maisha L KuskoJapan2026-08-07Feiner Bros NEGOTIATION31Bernardo Dominic
1033Morrow U DilliardBrazil2026-07-30Chapman, Ross E Esq NEGOTIATION95Elwin Sharvill
1034Ashley E ChuiItaly2026-08-02Feltz Printing Service QUALIFIED6Asiya Javayant
1035Octavia W KuskoArgentina2026-07-23Dorl, James J Esq PROPOSAL62Stephen Shaw
1036Tony K GarufiCanada2026-07-11Commercial Press NEGOTIATION85Ioni Bowcher
1037Aika J DoeSpain2026-07-12Morlong Associates NEGOTIATION22Ioni Bowcher
1038Darci M SaylorsArgentina2026-07-20Commercial Press NEW54Stephen Shaw
1039Leja B OstroskyBrazil2026-07-27Rangoni Of Florence QUALIFIED73Onyama Limba
1040Isabel M ButtArgentina2026-07-22Benton, John B Jr RENEWAL71Bernardo Dominic
1041Antonio K CaudyItaly2026-08-05Benton, John B Jr RENEWAL17Asiya Javayant
1042Salvatore X SergiArgentina2026-07-21Dorl, James J Esq NEGOTIATION55Stephen Shaw
1043Stacey F ShinkoArgentina2026-07-24Chapman, Ross E Esq QUALIFIED16Stephen Shaw
1044Alejandro D SergiCanada2026-08-04Feiner Bros PROPOSAL81Ivan Magalhaes
1045Alejandro S SchemmerRussia2026-07-15Rangoni Of Florence NEGOTIATION28Xuxue Feng
1046Jones U CaldareraJapan2026-07-13Chanay, Jeffrey A Esq PROPOSAL75Xuxue Feng
1047Julie T KuskoJapan2026-07-29Rangoni Of Florence UNQUALIFIED40Amy Elsner
1048Stacey P RimItaly2026-07-18Commercial Press NEGOTIATION26Stephen Shaw
1049Greenwood D WhobreyArgentina2026-08-05King, Christopher A Esq RENEWAL95Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maisha R IturbideSpainBernardo Dominic NEGOTIATION
Salvatore G RutaGermanyElwin Sharvill RENEWAL
Jennifer Y SergiFranceXuxue Feng PROPOSAL
Chavez V SchemmerJapanXuxue Feng NEW
Smith D StockhamBrazilAmy Elsner QUALIFIED
Jefferson C BologniaItalyBernardo Dominic UNQUALIFIED
David Y RoysterSpainOnyama Limba PROPOSAL
Aditya D VenereAustraliaXuxue Feng QUALIFIED
Emily W GarufiCanadaXuxue Feng PROPOSAL
Deepesh J CampainIndiaXuxue Feng UNQUALIFIED
Sinclair Q InouyeItalyAnna Fali RENEWAL
Jones E NickaCanadaElwin Sharvill NEGOTIATION
Leon X WhobreyUnited KingdomXuxue Feng PROPOSAL
Francesco Z FerenczFranceAmy Elsner RENEWAL
Greenwood H BriddickFranceAnna Fali NEGOTIATION
Misaki R TollnerIndiaAnna Fali NEW
Octavia G SlusarskiCanadaXuxue Feng QUALIFIED
Cody R TollnerGermanyElwin Sharvill NEW
Munro A PerinJapanAsiya Javayant PROPOSAL
Salvatore X SchemmerIndiaXuxue Feng QUALIFIED
Antonio X NickaBrazilOnyama Limba NEW
Costa G RulapaughBrazilIoni Bowcher NEGOTIATION
Sinclair O AmigonBrazilAsiya Javayant NEGOTIATION
Alejandro P KolmetzArgentinaIoni Bowcher NEW
Kaitlin T SaylorsGermanyStephen Shaw NEGOTIATION
Faith I RoysterSpainIoni Bowcher QUALIFIED
Nicolas W NickaItalyAmy Elsner NEW
Leja A FollerSpainOnyama Limba UNQUALIFIED
Octavia P GauchoAustraliaAmy Elsner QUALIFIED
Jones J FigeroaAustraliaOnyama Limba PROPOSAL
Cody N FollerSpainBernardo Dominic RENEWAL
Jones U RutaItalyOnyama Limba NEW
Izzy P RimBrazilStephen Shaw PROPOSAL
Francesco L FerenczSpainBernardo Dominic NEW
Maria L BriddickFranceXuxue Feng NEGOTIATION
Maria O ButtBrazilAmy Elsner NEW
Smith N OstroskyJapanAnna Fali NEW
Misaki Q KolmetzBrazilBernardo Dominic NEGOTIATION
Munro M StockhamAustraliaOnyama Limba NEGOTIATION
Munro G StockhamGermanyAmy Elsner QUALIFIED
Jones X AmigonArgentinaAsiya Javayant PROPOSAL
Arvin O FollerAustraliaAsiya Javayant RENEWAL
Arvin C OldroydFranceAsiya Javayant PROPOSAL
Claire X StockhamCanadaAmy Elsner UNQUALIFIED
Munro Q MacleadCanadaOnyama Limba UNQUALIFIED
Jefferson X TollnerGermanyOnyama Limba PROPOSAL
Francesco L KolmetzArgentinaIvan Magalhaes NEW
Maisha B WaycottGermanyBernardo Dominic PROPOSAL
Cody Y BowleyCanadaAmy Elsner NEW
Claire Z AmigonArgentinaStephen Shaw PROPOSAL
Frozen Columns
Name
Misaki D Gillian
Emily R Schemmer
Jennifer F Nestle
Adams G Ferencz
Isabel Y Glick
Cody D Nicka
Johnson J Poquette
Alejandro U Ferencz
Cody P Stockham
Costa P Schemmer
Octavia A Garufi
Claire R Campain
Emily E Bowley
Salvatore A Ostrosky
Leja W Wieser
Antonio B Glick
David B Rim
Faith P Malet
Mujtaba G Chui
Smith M Schemmer
Deepesh O Caldarera
Juan R Wieser
Murillo R Rim
Leja I Caudy
Munro J Doe
Deepesh V Caudy
Misaki V Vocelka
Stacey B Figeroa
Jeanfrancois T Royster
Kadeem M Campain
James V Bowley
Wickens N Flosi
Francesco R Caudy
Ashley W Amigon
James I Paprocki
Jeanfrancois Q Ostrosky
Wickens J Stenseth
Smith A Kolmetz
Tony Q Vocelka
Misaki Y Sergi
Salvatore V Caudy
Kaitlin R Morasca
Emily H Morasca
Rodrigues V Perin
Adams W Bolognia
Mayumi U Royster
Alejandro M Schemmer
Alejandro V Waycott
Johnson R Royster
Claire C Briddick
IdCountryDate
1000Australia2026-07-15
1001Germany2026-07-17
1002Japan2026-07-13
1003India2026-07-15
1004Russia2026-07-31
1005France2026-07-18
1006Argentina2026-07-26
1007Canada2026-07-31
1008Japan2026-07-31
1009Italy2026-07-16
1010Brazil2026-07-12
1011Italy2026-07-16
1012Italy2026-07-21
1013Spain2026-08-01
1014Australia2026-07-25
1015Germany2026-07-11
1016Argentina2026-07-22
1017Argentina2026-07-31
1018Russia2026-07-17
1019Brazil2026-07-23
1020India2026-07-18
1021United Kingdom2026-07-16
1022Canada2026-08-06
1023India2026-07-30
1024India2026-07-24
1025Italy2026-08-08
1026France2026-07-21
1027Germany2026-07-17
1028United Kingdom2026-08-05
1029Australia2026-07-10
1030Spain2026-07-11
1031Brazil2026-08-08
1032France2026-08-07
1033Italy2026-07-18
1034Brazil2026-07-21
1035Germany2026-07-29
1036Brazil2026-07-22
1037Australia2026-07-28
1038Italy2026-08-02
1039Brazil2026-07-10
1040Argentina2026-07-18
1041Brazil2026-08-05
1042France2026-08-06
1043France2026-07-13
1044Australia2026-07-27
1045Australia2026-07-14
1046India2026-07-20
1047Australia2026-08-04
1048India2026-07-20
1049Canada2026-08-03

On-Demand Data

NameIdCountryDate
David V Flosi1000France2026-08-04
Isabel X Foller1001United Kingdom2026-07-25
Arvin D Oldroyd1002Russia2026-08-06
Munro I Chui1003United Kingdom2026-07-21
Nicolas Y Sergi1004United Kingdom2026-08-06
Ashley R Rulapaugh1005Spain2026-07-12
David H Amigon1006Canada2026-07-12
Johnson X Venere1007Italy2026-08-06
Sinclair J Marrier1008Italy2026-07-14
Deepesh H Caudy1009Australia2026-07-11
Clifford Q Royster1010Germany2026-07-10
Ashley O Nicka1011Italy2026-07-25
Maria N Figeroa1012Canada2026-07-16
Misaki Y Foller1013Italy2026-07-15
Tony A Inouye1014Spain2026-08-04
Munro T Schemmer1015Japan2026-07-28
Nicolas V Stenseth1016France2026-08-02
Izzy A Kusko1017Japan2026-07-15
Aditya M Slusarski1018Germany2026-07-21
James N Caudy1019Australia2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia C DarakjyArgentinaAnna Fali NEGOTIATION
Cody Q BriddickUnited KingdomIvan Magalhaes NEW
Cody Z KolmetzUnited KingdomStephen Shaw PROPOSAL
Maisha P SergiGermanyOnyama Limba UNQUALIFIED
Francesco N BowleyAustraliaElwin Sharvill RENEWAL
Salvatore A GillianRussiaIoni Bowcher UNQUALIFIED
Francesco L DarakjyItalyAnna Fali QUALIFIED
Arvin J NickaAustraliaBernardo Dominic RENEWAL
Chavez A InouyeArgentinaElwin Sharvill PROPOSAL
Mujtaba E ButtSpainOnyama Limba NEGOTIATION
Claire F GlickCanadaAmy Elsner NEGOTIATION
Salvatore H KolmetzRussiaAnna Fali UNQUALIFIED
Adams Q DarakjyRussiaBernardo Dominic QUALIFIED
Rodrigues V ShinkoArgentinaStephen Shaw NEGOTIATION
Smith F MarrierArgentinaStephen Shaw NEGOTIATION
Johnson C CampainUnited KingdomIvan Magalhaes RENEWAL
Maisha E IturbideFranceXuxue Feng NEW
Antonio P MaletUnited KingdomBernardo Dominic QUALIFIED
Aika J PoquetteAustraliaElwin Sharvill RENEWAL
Francesco O IturbideRussiaBernardo Dominic UNQUALIFIED
Jennifer Y InouyeArgentinaIvan Magalhaes QUALIFIED
Alejandro B ShinkoUnited KingdomIoni Bowcher PROPOSAL
Octavia S CampainIndiaOnyama Limba PROPOSAL
Alejandro G GauchoArgentinaOnyama Limba QUALIFIED
Misaki P MorascaBrazilElwin Sharvill QUALIFIED
Murillo F FlosiUnited KingdomIvan Magalhaes RENEWAL
Cody G CampainCanadaElwin Sharvill RENEWAL
Deepesh C OldroydItalyIoni Bowcher NEW
Mayumi W BologniaBrazilBernardo Dominic QUALIFIED
Morrow M StensethBrazilXuxue Feng QUALIFIED
Faith Y SchemmerIndiaIoni Bowcher UNQUALIFIED
Greenwood Y OstroskyArgentinaXuxue Feng RENEWAL
Cody V FerenczSpainAnna Fali PROPOSAL
Chavez K WaycottFranceAmy Elsner NEW
Chavez P StockhamGermanyBernardo Dominic NEGOTIATION
Emily P ShinkoSpainXuxue Feng RENEWAL
Kaitlin G FlosiArgentinaIoni Bowcher NEW
Mayumi H PerinItalyIoni Bowcher PROPOSAL
Costa A OldroydJapanOnyama Limba UNQUALIFIED
Tony S WaycottCanadaAnna Fali 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>