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 N MaletRussiaBernardo Dominic NEGOTIATION
Morrow P WaycottUnited KingdomOnyama Limba UNQUALIFIED
Salvatore D ChuiItalyIoni Bowcher QUALIFIED
Mujtaba K AmigonRussiaOnyama Limba PROPOSAL
Kadeem B RoysterIndiaAnna Fali UNQUALIFIED
Cody O FlosiSpainBernardo Dominic NEGOTIATION
Octavia I WhobreyFranceBernardo Dominic NEW
Francesco C ChuiCanadaStephen Shaw NEGOTIATION
Leja E FollerBrazilAmy Elsner QUALIFIED
Ivar Q GarufiUnited KingdomStephen Shaw RENEWAL
Julie N IturbideUnited KingdomStephen Shaw RENEWAL
Deepesh I PoquetteArgentinaXuxue Feng QUALIFIED
Clifford P ChuiSpainAnna Fali UNQUALIFIED
Kadeem C BologniaGermanyBernardo Dominic PROPOSAL
Aditya Q SaylorsItalyOnyama Limba QUALIFIED
Alejandro E GillianSpainXuxue Feng UNQUALIFIED
Silvio A WhobreyAustraliaIoni Bowcher NEW
Misaki T GarufiItalyBernardo Dominic NEW
Clifford K KuskoItalyAmy Elsner NEW
Chavez N RulapaughArgentinaIvan Magalhaes RENEWAL
James N SchemmerFranceStephen Shaw PROPOSAL
Mayumi W MarrierAustraliaIoni Bowcher NEW
Kaitlin R VenereJapanAnna Fali PROPOSAL
Salvatore X MaletAustraliaIoni Bowcher PROPOSAL
Julie Q RutaFranceBernardo Dominic NEGOTIATION
Juan K BriddickItalyAsiya Javayant QUALIFIED
Misaki X KolmetzGermanyAmy Elsner RENEWAL
Deepesh S KuskoFranceXuxue Feng NEW
Sinclair R FollerItalyIvan Magalhaes RENEWAL
Kadeem C RoysterItalyAmy Elsner NEGOTIATION
Faith H GillianCanadaIoni Bowcher UNQUALIFIED
Jones D StensethUnited KingdomIvan Magalhaes RENEWAL
Salvatore B SlusarskiArgentinaXuxue Feng NEW
Alejandro T SchemmerBrazilElwin Sharvill NEW
Leon L PoquetteItalyBernardo Dominic RENEWAL
Alejandro T TollnerBrazilBernardo Dominic RENEWAL
Ashley X CaudyArgentinaIoni Bowcher RENEWAL
Stacey Q MorascaSpainElwin Sharvill UNQUALIFIED
Juan M MaletSpainElwin Sharvill PROPOSAL
Salvatore H DoeAustraliaIoni Bowcher RENEWAL
Arvin T BologniaJapanAmy Elsner QUALIFIED
Faith K OstroskyFranceElwin Sharvill NEGOTIATION
Faith D MaletGermanyOnyama Limba RENEWAL
Isabel C TollnerArgentinaStephen Shaw PROPOSAL
Maisha S SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow R PaprockiRussiaStephen Shaw PROPOSAL
Ashley A PaprockiFranceXuxue Feng PROPOSAL
Antonio X OstroskyIndiaIoni Bowcher NEGOTIATION
Mayumi S WaycottRussiaAsiya Javayant RENEWAL
Maria B NickaRussiaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair C ChuiGermanyOnyama Limba RENEWAL
Clifford J MaletBrazilElwin Sharvill UNQUALIFIED
Alejandro J OstroskyCanadaStephen Shaw NEGOTIATION
David J DarakjyGermanyAnna Fali RENEWAL
Jefferson W TollnerAustraliaIoni Bowcher QUALIFIED
Antonio G SergiArgentinaOnyama Limba QUALIFIED
Claire Z RimCanadaIoni Bowcher RENEWAL
Mujtaba U WieserAustraliaAmy Elsner NEGOTIATION
Deepesh C CaudyFranceElwin Sharvill QUALIFIED
Smith C WieserIndiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey M RulapaughUnited Kingdom2026-06-23Chemel, James L Cpa QUALIFIED15Asiya Javayant
1001Aruna R GarufiIndia2026-06-30Rangoni Of Florence QUALIFIED53Amy Elsner
1002Jeanfrancois S CampainSpain2026-06-21Rangoni Of Florence PROPOSAL55Ioni Bowcher
1003Wickens R PerinJapan2026-06-26Feiner Bros UNQUALIFIED47Asiya Javayant
1004Munro W NestleFrance2026-06-11Rousseaux, Michael Esq PROPOSAL8Xuxue Feng
1005Ashley K PaprockiBrazil2026-06-29Buckley Miller Wright QUALIFIED17Onyama Limba
1006Sinclair S TollnerSpain2026-06-24Rousseaux, Michael Esq QUALIFIED3Bernardo Dominic
1007Juan W InouyeBrazil2026-07-01Chapman, Ross E Esq NEW10Elwin Sharvill
1008Johnson H KuskoJapan2026-06-30Chapman, Ross E Esq PROPOSAL76Asiya Javayant
1009Ivar P FlosiBrazil2026-07-04Chapman, Ross E Esq RENEWAL52Elwin Sharvill
1010Chavez P TollnerJapan2026-06-10Truhlar And Truhlar Attys UNQUALIFIED67Ivan Magalhaes
1011Adams Z StockhamFrance2026-06-07Chemel, James L Cpa PROPOSAL92Onyama Limba
1012Jennifer P RulapaughJapan2026-06-10Buckley Miller Wright RENEWAL32Stephen Shaw
1013Faith R GarufiJapan2026-07-02Rousseaux, Michael Esq PROPOSAL0Stephen Shaw
1014Isabel B MarrierArgentina2026-06-11Rangoni Of Florence PROPOSAL60Amy Elsner
1015Juan F FollerItaly2026-06-14Feltz Printing Service QUALIFIED59Xuxue Feng
1016Claire R FlosiFrance2026-06-07Chanay, Jeffrey A Esq NEW14Elwin Sharvill
1017Adams Z MaletCanada2026-07-02Rangoni Of Florence QUALIFIED17Elwin Sharvill
1018Aditya P NestleGermany2026-06-13King, Christopher A Esq QUALIFIED67Ioni Bowcher
1019Chavez K PoquetteFrance2026-06-19Feiner Bros RENEWAL25Onyama Limba
1020Faith B PaprockiArgentina2026-06-26Dorl, James J Esq PROPOSAL40Bernardo Dominic
1021Sinclair U KolmetzSpain2026-06-20Benton, John B Jr QUALIFIED50Onyama Limba
1022Aika Z VocelkaJapan2026-06-29Chapman, Ross E Esq PROPOSAL12Ivan Magalhaes
1023Octavia K SaylorsSpain2026-06-25Dorl, James J Esq NEW3Stephen Shaw
1024Murillo Z ButtJapan2026-06-30Printing Dimensions PROPOSAL80Stephen Shaw
1025Munro H DarakjyIndia2026-07-04Chapman, Ross E Esq PROPOSAL59Amy Elsner
1026Rodrigues S GauchoArgentina2026-06-10King, Christopher A Esq NEGOTIATION95Xuxue Feng
1027Munro E StensethSpain2026-06-14Dorl, James J Esq UNQUALIFIED5Xuxue Feng
1028Mujtaba G CaudySpain2026-06-08Chanay, Jeffrey A Esq RENEWAL0Amy Elsner
1029Izzy P MaletItaly2026-06-27Feltz Printing Service NEW18Bernardo Dominic
1030Emily M AmigonSpain2026-06-11King, Christopher A Esq NEGOTIATION19Stephen Shaw
1031Claire N FigeroaArgentina2026-06-13Chapman, Ross E Esq QUALIFIED1Ivan Magalhaes
1032Mujtaba A StockhamIndia2026-06-29Morlong Associates QUALIFIED84Amy Elsner
1033Nicolas M FigeroaGermany2026-06-09Feltz Printing Service UNQUALIFIED36Ivan Magalhaes
1034Nicolas Q RoysterFrance2026-06-28Buckley Miller Wright RENEWAL69Onyama Limba
1035Tony S NickaBrazil2026-06-18Chapman, Ross E Esq NEW90Stephen Shaw
1036Arvin R WaycottGermany2026-06-29Chemel, James L Cpa PROPOSAL14Stephen Shaw
1037Antonio Y FerenczSpain2026-06-13Dorl, James J Esq QUALIFIED76Onyama Limba
1038Stacey N FlosiItaly2026-06-06Chapman, Ross E Esq NEGOTIATION13Amy Elsner
1039Claire Y RutaBrazil2026-06-07Dorl, James J Esq NEGOTIATION87Ioni Bowcher
1040Ivar X GarufiRussia2026-06-28Feiner Bros RENEWAL91Anna Fali
1041Isabel D RulapaughBrazil2026-06-13Dorl, James J Esq PROPOSAL1Amy Elsner
1042Octavia X GarufiArgentina2026-07-04Buckley Miller Wright RENEWAL64Elwin Sharvill
1043Francesco X BologniaAustralia2026-06-15Chanay, Jeffrey A Esq NEW35Asiya Javayant
1044Rodrigues Q OldroydItaly2026-07-01Rangoni Of Florence UNQUALIFIED43Amy Elsner
1045Ashley R ButtGermany2026-06-24Chemel, James L Cpa PROPOSAL14Anna Fali
1046Aruna W AlbaresJapan2026-06-18Commercial Press NEW85Bernardo Dominic
1047Salvatore L PaprockiArgentina2026-06-12Chemel, James L Cpa PROPOSAL96Ivan Magalhaes
1048Jefferson Q DoeArgentina2026-06-27Printing Dimensions NEGOTIATION7Amy Elsner
1049Aika E RutaRussia2026-06-16Rangoni Of Florence PROPOSAL8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley A AmigonArgentinaBernardo Dominic PROPOSAL
Francesco R RutaFranceElwin Sharvill QUALIFIED
Cody U ShinkoFranceElwin Sharvill PROPOSAL
Kadeem L WhobreyRussiaXuxue Feng RENEWAL
Clifford O OstroskyIndiaIoni Bowcher UNQUALIFIED
Aika T StensethGermanyOnyama Limba RENEWAL
Clifford K WhobreySpainElwin Sharvill NEGOTIATION
Costa A PaprockiGermanyXuxue Feng PROPOSAL
Tony Z WaycottJapanAsiya Javayant UNQUALIFIED
Jefferson K MaletArgentinaBernardo Dominic UNQUALIFIED
Greenwood D BriddickSpainStephen Shaw NEGOTIATION
Alejandro N BowleyCanadaBernardo Dominic NEW
Aditya R MarrierFranceAsiya Javayant QUALIFIED
Claire K MorascaFranceBernardo Dominic PROPOSAL
Deepesh N VenereGermanyElwin Sharvill RENEWAL
Costa L SergiSpainIoni Bowcher RENEWAL
Leon J RulapaughFranceXuxue Feng UNQUALIFIED
Chavez U StensethItalyAnna Fali UNQUALIFIED
James G RulapaughRussiaStephen Shaw RENEWAL
Isabel S OldroydJapanAnna Fali PROPOSAL
Aditya N OstroskyFranceXuxue Feng QUALIFIED
Stacey X KolmetzAustraliaElwin Sharvill PROPOSAL
Mayumi Q SergiArgentinaAmy Elsner QUALIFIED
Leon R DarakjyArgentinaBernardo Dominic RENEWAL
Antonio H IturbideSpainIoni Bowcher NEW
Costa D FerenczUnited KingdomIvan Magalhaes PROPOSAL
Jefferson K CampainBrazilAnna Fali NEW
Stacey Y DarakjyCanadaIoni Bowcher QUALIFIED
Cody G AlbaresAustraliaElwin Sharvill RENEWAL
Silvio G OstroskyFranceOnyama Limba RENEWAL
Claire Y VenereFranceOnyama Limba NEW
Cody E IturbideRussiaElwin Sharvill QUALIFIED
Munro W RimArgentinaAmy Elsner PROPOSAL
Claire J RoysterUnited KingdomXuxue Feng PROPOSAL
Faith S IturbideFranceIoni Bowcher PROPOSAL
Faith D KolmetzArgentinaElwin Sharvill QUALIFIED
Ivar B PaprockiAustraliaIoni Bowcher UNQUALIFIED
Stacey G BologniaRussiaIvan Magalhaes UNQUALIFIED
Murillo D ChuiArgentinaAsiya Javayant UNQUALIFIED
Arvin M PerinUnited KingdomElwin Sharvill QUALIFIED
Jones X PerinSpainElwin Sharvill UNQUALIFIED
Stacey J ChuiArgentinaAnna Fali NEGOTIATION
Ivar S CaldareraCanadaElwin Sharvill QUALIFIED
Johnson R OstroskyFranceAmy Elsner QUALIFIED
Izzy C FlosiAustraliaElwin Sharvill PROPOSAL
Misaki M CaldareraJapanIvan Magalhaes NEW
Juan L ButtGermanyBernardo Dominic NEW
Clifford V CampainJapanIoni Bowcher NEGOTIATION
James R OstroskyAustraliaXuxue Feng NEW
Morrow P MaletRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Munro Y Gillian
Morrow W Vocelka
Antonio F Chui
David P Waycott
Jeanfrancois L Wieser
Arvin K Oldroyd
Isabel Y Shinko
Ricardo U Briddick
Rodrigues A Albares
Wickens L Schemmer
Costa H Ruta
Tony K Morasca
Izzy B Ostrosky
Misaki J Marrier
Ivar O Poquette
Jeanfrancois B Nestle
Misaki C Ruta
Francesco N Waycott
Jeanfrancois V Stenseth
Tony C Perin
Sinclair J Garufi
Mujtaba B Slusarski
Maria A Briddick
Silvio F Dilliard
Leja V Garufi
Kadeem D Ferencz
Jeanfrancois L Iturbide
James C Whobrey
Adams E Saylors
Juan I Vocelka
Jeanfrancois N Nicka
Claire L Vocelka
Salvatore J Dilliard
Greenwood K Garufi
Sinclair I Oldroyd
Chavez Q Dilliard
Jones Q Ruta
Adams S Flosi
Costa Z Caudy
Mayumi H Morasca
Arvin Z Garufi
Leja Y Saylors
Kaitlin R Shinko
Ivar X Caldarera
Silvio F Kusko
Leja S Poquette
Alejandro J Perin
Francesco I Royster
Nicolas V Saylors
Kadeem J Doe
IdCountryDate
1000Russia2026-06-27
1001Canada2026-06-06
1002Australia2026-06-14
1003India2026-06-25
1004Argentina2026-06-27
1005Russia2026-06-12
1006Germany2026-06-19
1007France2026-06-30
1008France2026-06-10
1009Japan2026-06-19
1010Brazil2026-07-01
1011Argentina2026-06-05
1012United Kingdom2026-07-01
1013Argentina2026-06-22
1014Germany2026-06-25
1015India2026-06-06
1016Brazil2026-06-16
1017Canada2026-06-22
1018Germany2026-06-23
1019Canada2026-06-15
1020Brazil2026-06-19
1021Italy2026-07-02
1022Canada2026-06-13
1023United Kingdom2026-06-07
1024Canada2026-06-05
1025France2026-06-21
1026India2026-06-19
1027Australia2026-06-07
1028India2026-06-06
1029India2026-06-11
1030Spain2026-07-02
1031Canada2026-06-07
1032Japan2026-06-08
1033Japan2026-06-15
1034Canada2026-06-12
1035Spain2026-06-15
1036Italy2026-06-09
1037Russia2026-06-20
1038Russia2026-06-24
1039Canada2026-06-28
1040Brazil2026-06-23
1041France2026-06-26
1042United Kingdom2026-06-07
1043Japan2026-06-13
1044Brazil2026-07-04
1045France2026-06-18
1046Canada2026-06-08
1047Russia2026-07-03
1048Germany2026-06-10
1049Australia2026-06-10

On-Demand Data

NameIdCountryDate
Smith N Ostrosky1000Spain2026-06-27
Salvatore N Shinko1001India2026-06-13
Silvio I Kusko1002Australia2026-06-23
Aika N Caudy1003Spain2026-06-12
Julie E Perin1004Argentina2026-06-14
Costa E Shinko1005Spain2026-06-06
Juan G Dilliard1006Russia2026-07-01
Adams A Bolognia1007France2026-06-09
Greenwood M Royster1008Italy2026-07-03
Clifford W Briddick1009Spain2026-06-06
Kaitlin Z Paprocki1010Japan2026-06-17
Juan R Amigon1011Italy2026-06-15
Jeanfrancois N Ferencz1012Italy2026-06-15
Mujtaba B Maclead1013Brazil2026-06-28
Rodrigues R Darakjy1014Canada2026-06-19
Aditya C Caudy1015Germany2026-06-16
Maria U Inouye1016Italy2026-06-18
Ricardo U Maclead1017France2026-06-17
Morrow L Glick1018Canada2026-06-15
Jennifer E Venere1019Argentina2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith R GlickCanadaElwin Sharvill NEGOTIATION
Silvio O FollerGermanyAsiya Javayant NEGOTIATION
Aditya X OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Jennifer J SergiSpainIoni Bowcher RENEWAL
Maria M CaldareraRussiaXuxue Feng UNQUALIFIED
Sinclair L GillianFranceIvan Magalhaes NEW
Kadeem M DarakjyAustraliaStephen Shaw PROPOSAL
Rodrigues D WieserItalyAsiya Javayant NEW
Ashley E PoquetteFranceIvan Magalhaes NEW
Chavez E CaldareraRussiaAmy Elsner RENEWAL
Maria A GarufiSpainOnyama Limba QUALIFIED
Cody M FigeroaRussiaStephen Shaw QUALIFIED
Alejandro V MarrierFranceAmy Elsner NEW
Tony D ChuiUnited KingdomElwin Sharvill PROPOSAL
Ricardo C ButtGermanyOnyama Limba NEW
Wickens W NestleItalyAmy Elsner RENEWAL
David D StockhamBrazilStephen Shaw NEGOTIATION
Claire K CaldareraRussiaIoni Bowcher NEGOTIATION
Murillo N WaycottSpainBernardo Dominic UNQUALIFIED
Darci S StockhamAustraliaBernardo Dominic RENEWAL
James U OstroskyGermanyElwin Sharvill PROPOSAL
Emily E DoeFranceIoni Bowcher UNQUALIFIED
Claire W DarakjyRussiaBernardo Dominic UNQUALIFIED
Arvin E DilliardBrazilElwin Sharvill NEW
Jeanfrancois J CaudySpainElwin Sharvill UNQUALIFIED
Juan N TollnerBrazilBernardo Dominic QUALIFIED
Jefferson J FollerSpainStephen Shaw UNQUALIFIED
Stacey J DilliardBrazilElwin Sharvill QUALIFIED
Izzy H ButtFranceAsiya Javayant NEGOTIATION
Salvatore G SaylorsAustraliaAnna Fali NEGOTIATION
Leja B StockhamBrazilAsiya Javayant PROPOSAL
Alejandro L DoeIndiaAnna Fali QUALIFIED
Deepesh D StockhamCanadaElwin Sharvill QUALIFIED
Adams C WaycottRussiaIoni Bowcher NEW
Stacey Z GlickGermanyIoni Bowcher PROPOSAL
Aruna W OstroskyIndiaIvan Magalhaes PROPOSAL
Alejandro C RimGermanyAsiya Javayant UNQUALIFIED
Adams G FigeroaIndiaXuxue Feng QUALIFIED
Mayumi O AlbaresAustraliaXuxue Feng PROPOSAL
Claire P WhobreyIndiaXuxue Feng 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>