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
Ashley G CaldareraRussiaStephen Shaw NEW
David H GarufiFranceIvan Magalhaes UNQUALIFIED
Cody G StensethArgentinaAsiya Javayant QUALIFIED
Maisha C RimSpainOnyama Limba QUALIFIED
Kaitlin J BologniaJapanStephen Shaw QUALIFIED
Johnson Q MacleadIndiaStephen Shaw QUALIFIED
Smith D FigeroaCanadaAmy Elsner NEGOTIATION
Faith L FollerIndiaIoni Bowcher UNQUALIFIED
Maria G WhobreyRussiaBernardo Dominic QUALIFIED
Misaki M FerenczItalyOnyama Limba PROPOSAL
Maria W PoquetteFranceIvan Magalhaes PROPOSAL
Maisha U BriddickFranceAmy Elsner NEW
Leon J StensethItalyAsiya Javayant NEGOTIATION
Chavez J KolmetzJapanStephen Shaw RENEWAL
Antonio H OstroskyGermanyElwin Sharvill RENEWAL
Smith I GarufiItalyXuxue Feng UNQUALIFIED
Kaitlin P GarufiItalyOnyama Limba UNQUALIFIED
Arvin E SchemmerItalyIoni Bowcher UNQUALIFIED
Salvatore F GlickItalyAsiya Javayant NEW
Antonio L WaycottSpainAnna Fali UNQUALIFIED
Wickens O GarufiArgentinaBernardo Dominic PROPOSAL
Sinclair N ChuiFranceElwin Sharvill RENEWAL
Cody N SchemmerFranceIoni Bowcher NEGOTIATION
Francesco H AlbaresItalyAsiya Javayant NEW
Tony T WaycottJapanElwin Sharvill QUALIFIED
Munro Y VocelkaFranceIoni Bowcher UNQUALIFIED
Emily X SaylorsGermanyStephen Shaw UNQUALIFIED
Octavia W TollnerCanadaAsiya Javayant NEGOTIATION
Rodrigues C GillianCanadaElwin Sharvill QUALIFIED
Sinclair Q AlbaresJapanOnyama Limba UNQUALIFIED
Murillo Z FlosiArgentinaAmy Elsner QUALIFIED
Juan F DarakjyUnited KingdomAnna Fali QUALIFIED
Jones D SlusarskiJapanStephen Shaw QUALIFIED
Claire S GillianRussiaAsiya Javayant QUALIFIED
Mujtaba C FlosiGermanyOnyama Limba UNQUALIFIED
Kadeem Z CaldareraGermanyBernardo Dominic NEGOTIATION
Murillo N GillianUnited KingdomAmy Elsner PROPOSAL
Faith H NestleAustraliaXuxue Feng UNQUALIFIED
Rodrigues F SchemmerAustraliaElwin Sharvill QUALIFIED
Jones C PoquetteAustraliaAsiya Javayant NEGOTIATION
Sinclair P KolmetzBrazilOnyama Limba NEGOTIATION
Costa O StensethCanadaBernardo Dominic PROPOSAL
Salvatore W CaldareraFranceIvan Magalhaes RENEWAL
Faith T VocelkaRussiaBernardo Dominic UNQUALIFIED
Tony I DarakjyIndiaXuxue Feng RENEWAL
Julie N ShinkoCanadaAsiya Javayant UNQUALIFIED
Chavez T NestleAustraliaStephen Shaw RENEWAL
Silvio P InouyeSpainXuxue Feng NEGOTIATION
Francesco R AmigonArgentinaAnna Fali PROPOSAL
Morrow P BriddickSpainIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio R MacleadAustraliaAmy Elsner UNQUALIFIED
Arvin S ShinkoCanadaIvan Magalhaes RENEWAL
Emily S ShinkoSpainXuxue Feng NEW
Ivar N NickaFranceStephen Shaw PROPOSAL
Julie X StockhamSpainAmy Elsner NEW
Silvio G PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Alejandro Q WaycottJapanAsiya Javayant RENEWAL
Costa D BriddickGermanyAmy Elsner PROPOSAL
Tony N MaletJapanStephen Shaw RENEWAL
Kaitlin O BowleyCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci T IturbideArgentina2026-08-03Rangoni Of Florence PROPOSAL39Ivan Magalhaes
1001Salvatore X WhobreyArgentina2026-07-31Chanay, Jeffrey A Esq QUALIFIED54Bernardo Dominic
1002Rodrigues H InouyeSpain2026-07-19Commercial Press NEGOTIATION79Asiya Javayant
1003Jefferson Z RimGermany2026-07-27King, Christopher A Esq NEGOTIATION33Xuxue Feng
1004Juan C TollnerCanada2026-07-20Benton, John B Jr NEGOTIATION72Stephen Shaw
1005Maria N GarufiUnited Kingdom2026-08-11King, Christopher A Esq UNQUALIFIED20Anna Fali
1006Emily C RutaAustralia2026-07-23Rousseaux, Michael Esq UNQUALIFIED86Anna Fali
1007Silvio S CaudyGermany2026-08-05Feltz Printing Service NEGOTIATION82Xuxue Feng
1008Misaki T BowleyIndia2026-07-22Dorl, James J Esq NEW6Amy Elsner
1009Faith L ShinkoAustralia2026-08-10Printing Dimensions QUALIFIED92Elwin Sharvill
1010Juan K GauchoRussia2026-07-26Benton, John B Jr NEW94Amy Elsner
1011Jeanfrancois E GlickRussia2026-08-07Buckley Miller Wright UNQUALIFIED12Ivan Magalhaes
1012Julie G BologniaFrance2026-07-31Chapman, Ross E Esq PROPOSAL64Onyama Limba
1013Julie H DilliardCanada2026-07-27Commercial Press NEW46Asiya Javayant
1014Alejandro Q CaldareraIndia2026-08-05Commercial Press PROPOSAL64Ivan Magalhaes
1015Jeanfrancois K FigeroaIndia2026-07-13Chapman, Ross E Esq QUALIFIED58Ivan Magalhaes
1016Greenwood A RutaItaly2026-07-22Truhlar And Truhlar Attys RENEWAL75Ioni Bowcher
1017Jeanfrancois U FigeroaIndia2026-08-11Buckley Miller Wright QUALIFIED39Elwin Sharvill
1018Jones Z AmigonBrazil2026-07-16Feltz Printing Service NEGOTIATION85Ivan Magalhaes
1019Cody Y FigeroaJapan2026-08-03Commercial Press UNQUALIFIED6Ivan Magalhaes
1020Jeanfrancois W ShinkoItaly2026-08-08Feltz Printing Service PROPOSAL87Anna Fali
1021Ivar M RulapaughJapan2026-08-04Morlong Associates PROPOSAL18Elwin Sharvill
1022Stacey G OldroydAustralia2026-07-21Chapman, Ross E Esq RENEWAL16Stephen Shaw
1023Aruna X RutaCanada2026-08-04Rousseaux, Michael Esq NEGOTIATION29Anna Fali
1024Julie X GauchoAustralia2026-08-07Chemel, James L Cpa QUALIFIED94Ioni Bowcher
1025Kadeem L RimSpain2026-08-10Chemel, James L Cpa NEW85Asiya Javayant
1026Izzy U MorascaBrazil2026-07-18Chapman, Ross E Esq NEGOTIATION77Bernardo Dominic
1027David T ShinkoItaly2026-07-31Commercial Press NEGOTIATION26Xuxue Feng
1028Tony K KuskoFrance2026-07-20Commercial Press UNQUALIFIED63Ivan Magalhaes
1029Misaki C SaylorsSpain2026-07-15Chemel, James L Cpa NEW23Ivan Magalhaes
1030Julie E BologniaItaly2026-07-14Buckley Miller Wright NEGOTIATION59Anna Fali
1031Ivar V PaprockiCanada2026-08-01Dorl, James J Esq QUALIFIED0Anna Fali
1032Julie U IturbideArgentina2026-08-10Rousseaux, Michael Esq RENEWAL74Ioni Bowcher
1033Antonio S VenereFrance2026-08-03Feiner Bros NEW23Anna Fali
1034Juan H BologniaRussia2026-08-08Rangoni Of Florence QUALIFIED45Onyama Limba
1035Aditya F PaprockiSpain2026-07-14Feiner Bros QUALIFIED25Anna Fali
1036Claire X RimJapan2026-08-02Dorl, James J Esq PROPOSAL88Xuxue Feng
1037Faith Z WaycottSpain2026-08-03King, Christopher A Esq QUALIFIED37Anna Fali
1038Greenwood W CaldareraUnited Kingdom2026-07-24Benton, John B Jr PROPOSAL27Xuxue Feng
1039Kaitlin R StockhamUnited Kingdom2026-08-09Feltz Printing Service QUALIFIED70Onyama Limba
1040Darci G RutaGermany2026-07-14King, Christopher A Esq QUALIFIED48Ivan Magalhaes
1041Jennifer A PoquetteIndia2026-07-26Commercial Press RENEWAL81Anna Fali
1042Kadeem T FigeroaGermany2026-08-09Truhlar And Truhlar Attys QUALIFIED4Amy Elsner
1043Ricardo Y SlusarskiGermany2026-07-18King, Christopher A Esq NEGOTIATION97Asiya Javayant
1044Maisha T RoysterJapan2026-08-10Printing Dimensions QUALIFIED87Bernardo Dominic
1045Rodrigues K OstroskyJapan2026-07-21Truhlar And Truhlar Attys PROPOSAL14Anna Fali
1046Izzy Y NestleAustralia2026-08-03Dorl, James J Esq UNQUALIFIED4Onyama Limba
1047Salvatore J BriddickUnited Kingdom2026-08-11Chemel, James L Cpa RENEWAL3Xuxue Feng
1048Rodrigues Y SaylorsFrance2026-07-14Dorl, James J Esq RENEWAL99Asiya Javayant
1049Tony C NestleJapan2026-07-25Commercial Press PROPOSAL33Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jefferson G WhobreyUnited KingdomXuxue Feng PROPOSAL
Mayumi O CaudyGermanyAnna Fali UNQUALIFIED
Aika O BowleyBrazilAmy Elsner UNQUALIFIED
Misaki X CaldareraItalyElwin Sharvill NEGOTIATION
Aditya U CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Aika R NickaFranceIvan Magalhaes NEW
Stacey H VocelkaCanadaOnyama Limba NEGOTIATION
Octavia R SlusarskiFranceAsiya Javayant NEW
Silvio X WhobreyGermanyStephen Shaw QUALIFIED
Emily E InouyeCanadaAnna Fali QUALIFIED
Munro Q RoysterUnited KingdomIvan Magalhaes NEW
Octavia D RoysterArgentinaXuxue Feng NEGOTIATION
James M NestleSpainXuxue Feng PROPOSAL
Maisha V WhobreyRussiaIvan Magalhaes QUALIFIED
Isabel E BologniaSpainXuxue Feng RENEWAL
Munro N StockhamSpainElwin Sharvill UNQUALIFIED
Kadeem J SaylorsItalyAmy Elsner QUALIFIED
Sinclair H WieserUnited KingdomAsiya Javayant NEW
Ivar T DarakjyCanadaOnyama Limba QUALIFIED
Kaitlin P SchemmerIndiaElwin Sharvill NEW
Jefferson O VenereAustraliaAsiya Javayant UNQUALIFIED
Aditya A SlusarskiCanadaIvan Magalhaes PROPOSAL
Leja G KuskoAustraliaElwin Sharvill PROPOSAL
Faith V StockhamItalyIoni Bowcher NEW
James K AmigonIndiaAnna Fali RENEWAL
Ashley Z BologniaIndiaIoni Bowcher NEW
Francesco J FigeroaArgentinaOnyama Limba NEGOTIATION
Cody Q MaletUnited KingdomBernardo Dominic PROPOSAL
Chavez F WaycottGermanyIvan Magalhaes RENEWAL
Johnson Y RulapaughFranceBernardo Dominic UNQUALIFIED
Jefferson N SchemmerIndiaXuxue Feng PROPOSAL
Costa J GarufiGermanyIvan Magalhaes NEW
Juan M IturbideBrazilAnna Fali NEGOTIATION
Octavia A FlosiIndiaXuxue Feng NEW
Wickens W SlusarskiFranceIvan Magalhaes UNQUALIFIED
Costa T FollerAustraliaAmy Elsner UNQUALIFIED
Isabel O OldroydUnited KingdomStephen Shaw QUALIFIED
Costa X PoquetteRussiaXuxue Feng RENEWAL
Arvin B NickaAustraliaStephen Shaw PROPOSAL
Silvio H PoquetteIndiaStephen Shaw PROPOSAL
James Z AlbaresGermanyAsiya Javayant QUALIFIED
Jeanfrancois M RutaItalyBernardo Dominic NEGOTIATION
Smith O SlusarskiAustraliaStephen Shaw QUALIFIED
Juan Y GauchoRussiaStephen Shaw QUALIFIED
Deepesh P RutaIndiaBernardo Dominic PROPOSAL
Leja F DoeCanadaOnyama Limba NEW
Izzy K TollnerAustraliaElwin Sharvill QUALIFIED
Silvio O GauchoArgentinaAnna Fali UNQUALIFIED
Kaitlin P FerenczFranceAmy Elsner QUALIFIED
Antonio T GarufiFranceStephen Shaw NEW
Frozen Columns
Name
Clifford E Wieser
Maria T Oldroyd
Jefferson P Gillian
Chavez V Bowley
Francesco T Nicka
Izzy I Poquette
Leja E Rulapaugh
Jeanfrancois Z Slusarski
Jennifer P Caldarera
Morrow K Rulapaugh
Ashley Y Albares
Jeanfrancois G Schemmer
Tony L Oldroyd
Tony U Stockham
Octavia Z Nicka
Jefferson W Ferencz
Francesco Q Iturbide
Mujtaba L Glick
Julie B Ruta
Jones P Royster
Maria X Bowley
Leja U Gaucho
Antonio U Gaucho
Aruna S Bowley
Smith S Poquette
Alejandro B Caldarera
Isabel N Briddick
Morrow F Bolognia
Kaitlin L Tollner
David T Ostrosky
Sinclair V Darakjy
Cody G Paprocki
Munro P Briddick
Aditya Z Tollner
Maria O Whobrey
Rodrigues K Maclead
Francesco P Bolognia
Maisha Y Foller
Salvatore I Inouye
Salvatore D Whobrey
Kaitlin C Flosi
Misaki Q Rulapaugh
Izzy F Doe
Smith Z Morasca
Isabel N Doe
Octavia B Slusarski
Maria W Vocelka
Jeanfrancois F Vocelka
Morrow T Marrier
Mujtaba I Saylors
IdCountryDate
1000Italy2026-07-27
1001Russia2026-07-23
1002Spain2026-08-05
1003Germany2026-08-06
1004India2026-08-06
1005France2026-08-11
1006Russia2026-08-07
1007Spain2026-08-10
1008Russia2026-07-18
1009United Kingdom2026-07-18
1010Italy2026-07-19
1011Germany2026-07-25
1012Australia2026-08-05
1013Australia2026-08-04
1014Italy2026-08-11
1015Argentina2026-08-03
1016Brazil2026-07-18
1017Japan2026-07-24
1018Germany2026-08-08
1019Japan2026-08-01
1020Germany2026-08-04
1021Russia2026-07-13
1022Australia2026-08-02
1023Canada2026-07-18
1024Brazil2026-08-09
1025Germany2026-08-08
1026India2026-07-14
1027Japan2026-08-01
1028Brazil2026-07-17
1029Brazil2026-07-26
1030Russia2026-08-03
1031India2026-07-16
1032Italy2026-07-13
1033Canada2026-08-01
1034Italy2026-08-01
1035Australia2026-08-07
1036United Kingdom2026-08-05
1037United Kingdom2026-08-10
1038Australia2026-07-26
1039Russia2026-07-27
1040Australia2026-07-22
1041Spain2026-07-30
1042Argentina2026-07-29
1043India2026-07-15
1044Japan2026-08-03
1045India2026-07-24
1046Australia2026-07-14
1047Japan2026-07-29
1048Germany2026-07-18
1049Italy2026-07-19

On-Demand Data

NameIdCountryDate
Maria P Bowley1000France2026-07-26
Julie A Ostrosky1001Germany2026-07-26
Claire Z Amigon1002Brazil2026-07-14
Sinclair O Malet1003Italy2026-07-13
Kadeem B Malet1004France2026-07-29
Ricardo G Dilliard1005Japan2026-07-29
Clifford G Kolmetz1006India2026-08-07
Faith G Campain1007France2026-07-23
Maria S Briddick1008United Kingdom2026-07-27
Costa G Albares1009Germany2026-07-15
Chavez A Glick1010Brazil2026-08-01
Smith W Whobrey1011Russia2026-07-17
Morrow R Malet1012United Kingdom2026-07-28
Faith R Vocelka1013India2026-08-05
Deepesh H Maclead1014Australia2026-07-22
Stacey L Caudy1015Spain2026-07-13
Octavia V Maclead1016Australia2026-07-30
Leon R Perin1017Russia2026-07-28
Arvin C Wieser1018Australia2026-07-15
Jones Z Campain1019Italy2026-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci W RulapaughSpainElwin Sharvill NEGOTIATION
Jeanfrancois I GauchoFranceAnna Fali NEW
Jones I MarrierBrazilOnyama Limba NEW
Chavez O StockhamFranceIoni Bowcher PROPOSAL
Jones J RulapaughRussiaIvan Magalhaes QUALIFIED
Ricardo X KuskoFranceXuxue Feng QUALIFIED
Jennifer H ShinkoCanadaAnna Fali UNQUALIFIED
Leon X CaudyArgentinaAsiya Javayant PROPOSAL
James U FigeroaJapanBernardo Dominic NEGOTIATION
Mujtaba E GillianCanadaIvan Magalhaes NEW
Adams B RutaBrazilAsiya Javayant NEW
Claire B DilliardCanadaXuxue Feng PROPOSAL
Johnson O ChuiJapanBernardo Dominic RENEWAL
Mayumi T RimAustraliaAnna Fali NEW
David S IturbideJapanAmy Elsner PROPOSAL
Costa G WieserJapanOnyama Limba RENEWAL
Isabel S MarrierUnited KingdomIvan Magalhaes PROPOSAL
Nicolas I ShinkoRussiaIvan Magalhaes PROPOSAL
Jeanfrancois T KolmetzRussiaIoni Bowcher PROPOSAL
Julie Y MaletArgentinaElwin Sharvill NEW
Costa Q CampainIndiaXuxue Feng UNQUALIFIED
Juan H PerinIndiaAnna Fali PROPOSAL
Ashley C GlickJapanAsiya Javayant RENEWAL
Octavia F BowleyBrazilAmy Elsner PROPOSAL
David S AlbaresSpainIvan Magalhaes NEW
Emily Q NestleBrazilIvan Magalhaes NEW
Morrow I MarrierSpainStephen Shaw UNQUALIFIED
Rodrigues E RutaIndiaOnyama Limba PROPOSAL
Stacey Z MacleadRussiaAmy Elsner NEW
Aruna S GlickGermanyElwin Sharvill RENEWAL
Misaki C MarrierBrazilAsiya Javayant NEW
Izzy H GillianItalyAsiya Javayant NEW
Deepesh K RoysterArgentinaBernardo Dominic PROPOSAL
Sinclair F MorascaSpainAmy Elsner QUALIFIED
Silvio B AlbaresFranceAmy Elsner NEGOTIATION
Salvatore S KolmetzBrazilAsiya Javayant RENEWAL
Mayumi Z CampainUnited KingdomOnyama Limba UNQUALIFIED
Chavez A WaycottCanadaElwin Sharvill UNQUALIFIED
Morrow U FollerGermanyAnna Fali UNQUALIFIED
Costa C OldroydBrazilElwin Sharvill 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>