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
Francesco F PerinAustraliaAmy Elsner NEGOTIATION
Aika H PoquetteRussiaAsiya Javayant RENEWAL
Deepesh T InouyeCanadaAnna Fali RENEWAL
Antonio O GlickBrazilIvan Magalhaes NEGOTIATION
Munro B MaletIndiaAnna Fali PROPOSAL
Darci Z FlosiAustraliaIvan Magalhaes NEGOTIATION
Murillo F ChuiGermanyBernardo Dominic NEW
Leon M RoysterJapanStephen Shaw RENEWAL
Leja S DoeSpainBernardo Dominic NEW
Aditya T MaletItalyBernardo Dominic RENEWAL
David I VocelkaRussiaIoni Bowcher UNQUALIFIED
Kadeem V FlosiIndiaAmy Elsner PROPOSAL
Tony Z SlusarskiItalyAnna Fali UNQUALIFIED
James R CampainJapanXuxue Feng QUALIFIED
Ivar X FollerUnited KingdomXuxue Feng NEGOTIATION
Kaitlin V DilliardFranceAnna Fali QUALIFIED
Misaki S NestleArgentinaAsiya Javayant NEGOTIATION
Izzy K ButtSpainElwin Sharvill QUALIFIED
Aditya I DoeAustraliaXuxue Feng PROPOSAL
Faith Y PaprockiCanadaAsiya Javayant NEW
Ashley U CaudyAustraliaBernardo Dominic RENEWAL
Clifford W PaprockiArgentinaAnna Fali NEGOTIATION
Jennifer D KuskoBrazilOnyama Limba NEGOTIATION
Maria S RulapaughArgentinaXuxue Feng PROPOSAL
Morrow M AlbaresIndiaIoni Bowcher RENEWAL
Costa V StensethBrazilIvan Magalhaes PROPOSAL
Chavez Z DilliardIndiaElwin Sharvill RENEWAL
Faith Q ButtBrazilBernardo Dominic NEGOTIATION
Emily C ChuiJapanXuxue Feng PROPOSAL
Julie X DilliardCanadaIoni Bowcher UNQUALIFIED
Adams H WieserAustraliaBernardo Dominic NEW
Juan V NickaJapanElwin Sharvill QUALIFIED
Murillo P AlbaresAustraliaIoni Bowcher NEW
Johnson M FlosiIndiaOnyama Limba UNQUALIFIED
Alejandro S KuskoRussiaElwin Sharvill NEW
Munro K CaudyIndiaOnyama Limba UNQUALIFIED
James S TollnerFranceStephen Shaw PROPOSAL
Wickens T TollnerItalyOnyama Limba QUALIFIED
Cody B VenereGermanyElwin Sharvill QUALIFIED
Jefferson M MorascaFranceAmy Elsner NEGOTIATION
Misaki I GauchoBrazilElwin Sharvill PROPOSAL
Ricardo H StensethJapanOnyama Limba QUALIFIED
Kadeem V VenereJapanAmy Elsner QUALIFIED
Cody M DarakjyFranceAsiya Javayant PROPOSAL
Kaitlin X CaudyArgentinaAmy Elsner QUALIFIED
Francesco P DarakjyJapanBernardo Dominic NEW
Morrow H BologniaGermanyXuxue Feng QUALIFIED
Silvio O OstroskyRussiaElwin Sharvill RENEWAL
Mujtaba P KuskoAustraliaAmy Elsner PROPOSAL
Chavez Z BologniaItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Tony M WieserJapanAmy Elsner NEGOTIATION
Leon N FlosiItalyStephen Shaw RENEWAL
Chavez O OldroydCanadaAnna Fali RENEWAL
David N CaldareraAustraliaAnna Fali QUALIFIED
Cody J StensethCanadaAmy Elsner RENEWAL
David I FigeroaAustraliaAmy Elsner NEGOTIATION
Alejandro E MacleadIndiaElwin Sharvill UNQUALIFIED
Isabel A DoeFranceOnyama Limba NEGOTIATION
Leja L WaycottIndiaOnyama Limba NEW
Greenwood X StensethSpainBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson P SchemmerJapan2026-06-28Benton, John B Jr RENEWAL15Onyama Limba
1001Mujtaba I NestleBrazil2026-07-12Printing Dimensions NEGOTIATION39Xuxue Feng
1002Johnson Q CampainBrazil2026-07-08Rangoni Of Florence NEW55Onyama Limba
1003Greenwood R FerenczGermany2026-07-09Chemel, James L Cpa QUALIFIED37Elwin Sharvill
1004Aika A WaycottArgentina2026-06-14Printing Dimensions RENEWAL63Elwin Sharvill
1005Jefferson B FollerAustralia2026-06-14Chapman, Ross E Esq RENEWAL20Bernardo Dominic
1006Maisha K ButtCanada2026-06-21Feiner Bros NEW97Xuxue Feng
1007Arvin F InouyeRussia2026-06-26Chemel, James L Cpa RENEWAL66Bernardo Dominic
1008Kadeem P StockhamCanada2026-06-28Feltz Printing Service NEGOTIATION71Ioni Bowcher
1009Rodrigues H PerinIndia2026-07-06Printing Dimensions QUALIFIED12Stephen Shaw
1010Claire A MarrierAustralia2026-07-01Chapman, Ross E Esq NEW21Anna Fali
1011Rodrigues Q BologniaCanada2026-06-26Chanay, Jeffrey A Esq QUALIFIED30Stephen Shaw
1012Chavez I ButtItaly2026-06-27Truhlar And Truhlar Attys NEGOTIATION82Xuxue Feng
1013Jeanfrancois G BowleyJapan2026-06-22Chanay, Jeffrey A Esq PROPOSAL21Ioni Bowcher
1014Julie U MarrierIndia2026-06-19Truhlar And Truhlar Attys RENEWAL31Ioni Bowcher
1015Nicolas Z RoysterIndia2026-07-04Feiner Bros NEW80Ivan Magalhaes
1016Julie M RimUnited Kingdom2026-07-01Rangoni Of Florence UNQUALIFIED46Ivan Magalhaes
1017Francesco F BologniaRussia2026-07-07Commercial Press UNQUALIFIED50Ivan Magalhaes
1018Nicolas D DarakjyItaly2026-06-21King, Christopher A Esq UNQUALIFIED3Stephen Shaw
1019Julie A BriddickRussia2026-06-22King, Christopher A Esq UNQUALIFIED62Bernardo Dominic
1020Claire H WaycottUnited Kingdom2026-07-11Chemel, James L Cpa PROPOSAL43Ivan Magalhaes
1021Jennifer F PoquetteJapan2026-06-28Feiner Bros PROPOSAL52Elwin Sharvill
1022Kaitlin U TollnerCanada2026-06-25Morlong Associates NEW18Bernardo Dominic
1023Ashley S BologniaIndia2026-06-19Commercial Press PROPOSAL29Onyama Limba
1024Aruna H FlosiAustralia2026-07-04Chanay, Jeffrey A Esq PROPOSAL0Amy Elsner
1025Emily X FigeroaAustralia2026-06-29Rangoni Of Florence UNQUALIFIED21Asiya Javayant
1026Murillo R MorascaArgentina2026-06-30Feltz Printing Service UNQUALIFIED1Xuxue Feng
1027Mayumi X FigeroaAustralia2026-07-07Dorl, James J Esq RENEWAL69Asiya Javayant
1028Silvio G SaylorsUnited Kingdom2026-06-17Chanay, Jeffrey A Esq NEGOTIATION65Onyama Limba
1029Claire D GauchoItaly2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED66Xuxue Feng
1030Faith F PoquetteBrazil2026-07-02King, Christopher A Esq QUALIFIED32Amy Elsner
1031Ivar I NickaItaly2026-06-20Rousseaux, Michael Esq QUALIFIED13Ivan Magalhaes
1032Salvatore L OstroskyUnited Kingdom2026-06-18Printing Dimensions RENEWAL31Bernardo Dominic
1033Juan J VocelkaAustralia2026-07-10Benton, John B Jr NEW51Asiya Javayant
1034Murillo K StockhamUnited Kingdom2026-07-07Feiner Bros RENEWAL94Xuxue Feng
1035Nicolas D BriddickFrance2026-06-20Printing Dimensions RENEWAL99Bernardo Dominic
1036Octavia C KolmetzGermany2026-07-12Rousseaux, Michael Esq UNQUALIFIED92Bernardo Dominic
1037Deepesh U SchemmerFrance2026-06-30Chanay, Jeffrey A Esq NEW33Anna Fali
1038Aika S InouyeSpain2026-07-09Chemel, James L Cpa QUALIFIED18Bernardo Dominic
1039Juan O OstroskyAustralia2026-07-02Truhlar And Truhlar Attys NEW5Ivan Magalhaes
1040Cody S ChuiCanada2026-06-29Benton, John B Jr RENEWAL66Xuxue Feng
1041Jeanfrancois V FigeroaAustralia2026-06-21Chanay, Jeffrey A Esq UNQUALIFIED13Amy Elsner
1042Jones X MaletSpain2026-07-07Rousseaux, Michael Esq UNQUALIFIED83Ioni Bowcher
1043Izzy P SaylorsSpain2026-06-18Dorl, James J Esq UNQUALIFIED95Ioni Bowcher
1044Silvio D ChuiCanada2026-07-10Chemel, James L Cpa UNQUALIFIED2Asiya Javayant
1045Adams Y OstroskyIndia2026-06-21Morlong Associates NEW9Ioni Bowcher
1046Aditya I MaletBrazil2026-06-25Benton, John B Jr QUALIFIED28Asiya Javayant
1047Aika B AmigonCanada2026-06-13Chapman, Ross E Esq QUALIFIED37Ioni Bowcher
1048Aruna E WieserIndia2026-06-28Morlong Associates RENEWAL72Asiya Javayant
1049Chavez L MacleadSpain2026-06-17Dorl, James J Esq QUALIFIED3Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Adams B MaletFranceBernardo Dominic NEW
Greenwood Q BowleyFranceBernardo Dominic RENEWAL
Morrow Q MorascaBrazilElwin Sharvill NEW
Misaki P StensethGermanyIvan Magalhaes NEGOTIATION
Maria T KuskoJapanXuxue Feng NEGOTIATION
Maisha U MacleadBrazilIoni Bowcher QUALIFIED
Leja O MacleadSpainStephen Shaw RENEWAL
Aditya G KolmetzFranceAmy Elsner NEW
Costa Y MarrierJapanAnna Fali QUALIFIED
Morrow F WaycottArgentinaIvan Magalhaes QUALIFIED
Cody O StensethSpainElwin Sharvill PROPOSAL
Sinclair E BriddickGermanyAnna Fali QUALIFIED
Clifford W MacleadArgentinaElwin Sharvill RENEWAL
James D StensethSpainAsiya Javayant PROPOSAL
Mayumi L BologniaUnited KingdomElwin Sharvill RENEWAL
Leja Z IturbideArgentinaOnyama Limba PROPOSAL
Deepesh G FlosiJapanBernardo Dominic PROPOSAL
Octavia Y GillianRussiaXuxue Feng QUALIFIED
Morrow A FigeroaGermanyXuxue Feng PROPOSAL
Greenwood R MacleadAustraliaIvan Magalhaes UNQUALIFIED
Ashley K DilliardCanadaIoni Bowcher NEGOTIATION
Cody W PerinUnited KingdomIvan Magalhaes RENEWAL
Cody A WieserJapanBernardo Dominic RENEWAL
Leon E KuskoBrazilAnna Fali NEGOTIATION
James C CaudyBrazilOnyama Limba NEGOTIATION
Deepesh U TollnerGermanyAsiya Javayant RENEWAL
Wickens V FerenczFranceStephen Shaw NEGOTIATION
Jeanfrancois U FlosiJapanStephen Shaw PROPOSAL
Alejandro F ButtGermanyStephen Shaw PROPOSAL
Aditya Z IturbideAustraliaXuxue Feng UNQUALIFIED
Faith Z ChuiRussiaAmy Elsner PROPOSAL
Jennifer Z SergiUnited KingdomAmy Elsner NEGOTIATION
Alejandro Q FerenczJapanIoni Bowcher QUALIFIED
Tony W RulapaughAustraliaXuxue Feng UNQUALIFIED
Chavez F RoysterGermanyBernardo Dominic RENEWAL
Tony I DilliardBrazilAsiya Javayant PROPOSAL
Aditya B SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues A WaycottRussiaOnyama Limba UNQUALIFIED
Morrow V TollnerArgentinaStephen Shaw UNQUALIFIED
David C NickaRussiaAmy Elsner QUALIFIED
Julie X OldroydCanadaStephen Shaw NEW
Mujtaba J AmigonBrazilElwin Sharvill PROPOSAL
Adams G SaylorsAustraliaIvan Magalhaes NEW
Claire V MacleadAustraliaIoni Bowcher NEW
Ashley U CaudyJapanElwin Sharvill UNQUALIFIED
Adams J VenereBrazilBernardo Dominic PROPOSAL
Misaki V AlbaresJapanAmy Elsner QUALIFIED
Jennifer R ShinkoUnited KingdomStephen Shaw RENEWAL
Munro P AmigonUnited KingdomIvan Magalhaes RENEWAL
Nicolas D FerenczUnited KingdomAmy Elsner QUALIFIED
Frozen Columns
Name
Claire C Ostrosky
Smith I Flosi
Nicolas O Kusko
Deepesh J Kusko
Salvatore D Garufi
Chavez W Ruta
Leon K Waycott
Rodrigues V Caudy
Antonio X Ostrosky
James U Vocelka
Chavez U Butt
Tony D Ruta
Costa E Marrier
Julie L Marrier
Munro X Nicka
Mayumi S Inouye
Ricardo O Malet
Jennifer A Butt
Clifford I Amigon
Mayumi C Caldarera
Jeanfrancois M Inouye
Claire R Maclead
Adams T Dilliard
Claire C Schemmer
Aditya T Tollner
Leon G Wieser
Juan H Ruta
Tony K Chui
Isabel X Inouye
Adams C Venere
Tony U Ruta
Darci B Dilliard
Ricardo P Caudy
Clifford S Caldarera
Claire F Glick
Nicolas B Foller
Claire D Maclead
Jeanfrancois Z Tollner
Clifford R Shinko
Smith D Poquette
Alejandro Q Whobrey
Mayumi X Stockham
Rodrigues H Bowley
Johnson D Inouye
Kaitlin H Amigon
Maria D Slusarski
Julie I Royster
Cody Q Rim
Julie T Bolognia
Jones A Doe
IdCountryDate
1000Spain2026-06-22
1001Brazil2026-07-01
1002Canada2026-07-05
1003France2026-07-12
1004Italy2026-06-18
1005Spain2026-07-12
1006Australia2026-07-03
1007France2026-06-25
1008Canada2026-07-11
1009Russia2026-06-25
1010France2026-06-30
1011India2026-07-05
1012Argentina2026-06-13
1013France2026-07-12
1014Argentina2026-07-08
1015Japan2026-06-13
1016Argentina2026-06-24
1017France2026-07-03
1018United Kingdom2026-07-11
1019Russia2026-07-02
1020India2026-07-05
1021Argentina2026-06-25
1022India2026-06-14
1023India2026-07-05
1024Canada2026-06-17
1025Russia2026-07-07
1026Japan2026-06-28
1027Russia2026-07-02
1028United Kingdom2026-06-13
1029Spain2026-07-02
1030France2026-06-13
1031Russia2026-06-20
1032Canada2026-07-04
1033Brazil2026-06-18
1034Canada2026-06-28
1035Germany2026-07-12
1036Russia2026-06-16
1037Brazil2026-06-14
1038Argentina2026-06-27
1039Argentina2026-06-21
1040Spain2026-06-30
1041Germany2026-07-10
1042Canada2026-06-15
1043France2026-06-25
1044Germany2026-07-11
1045Brazil2026-06-24
1046Argentina2026-06-26
1047United Kingdom2026-07-02
1048Canada2026-07-05
1049Japan2026-07-11

On-Demand Data

NameIdCountryDate
Greenwood X Dilliard1000India2026-06-25
Morrow L Kusko1001Argentina2026-07-10
Arvin B Butt1002Italy2026-06-23
Leon N Bolognia1003India2026-06-24
Claire B Rim1004Argentina2026-06-18
Mayumi I Ostrosky1005Canada2026-06-28
Aika L Doe1006Australia2026-07-09
Deepesh D Dilliard1007Argentina2026-06-13
Clifford K Malet1008Brazil2026-06-13
Alejandro P Saylors1009Spain2026-06-13
Alejandro S Shinko1010United Kingdom2026-06-29
Alejandro Z Caldarera1011Spain2026-06-18
Arvin I Campain1012Argentina2026-07-03
Isabel G Paprocki1013Russia2026-06-20
Smith V Perin1014Russia2026-06-25
Mujtaba G Maclead1015Russia2026-06-13
Deepesh E Marrier1016Canada2026-06-24
Mayumi V Briddick1017Australia2026-06-29
Aruna H Ruta1018India2026-07-10
Maria G Chui1019Canada2026-06-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas G IturbideItalyAmy Elsner QUALIFIED
Mayumi L VocelkaCanadaAnna Fali NEGOTIATION
Deepesh H MorascaUnited KingdomIoni Bowcher PROPOSAL
Jennifer P PerinRussiaXuxue Feng NEW
Maria R ChuiSpainElwin Sharvill NEW
Johnson E ChuiUnited KingdomBernardo Dominic PROPOSAL
Octavia H MaletJapanXuxue Feng NEGOTIATION
Izzy R IturbideIndiaElwin Sharvill NEW
Claire F FlosiUnited KingdomXuxue Feng PROPOSAL
Tony U ButtArgentinaBernardo Dominic QUALIFIED
Leja C StockhamGermanyAsiya Javayant QUALIFIED
Octavia C SchemmerBrazilStephen Shaw QUALIFIED
Antonio X SchemmerCanadaAmy Elsner QUALIFIED
Antonio W ShinkoRussiaIoni Bowcher PROPOSAL
Rodrigues F DarakjyFranceAmy Elsner NEW
David Z ButtJapanBernardo Dominic QUALIFIED
Arvin R NickaUnited KingdomIoni Bowcher NEGOTIATION
Alejandro P FollerRussiaOnyama Limba NEGOTIATION
Deepesh L SaylorsRussiaIvan Magalhaes PROPOSAL
Emily Q SaylorsGermanyAnna Fali QUALIFIED
Greenwood E BologniaRussiaBernardo Dominic NEGOTIATION
Mujtaba O GauchoBrazilAnna Fali NEGOTIATION
Costa J SlusarskiAustraliaXuxue Feng NEW
Jeanfrancois H SaylorsSpainBernardo Dominic QUALIFIED
Juan X OstroskyGermanyOnyama Limba QUALIFIED
Izzy E ChuiGermanyAsiya Javayant NEW
Alejandro V OstroskyArgentinaIvan Magalhaes RENEWAL
Darci Q MaletBrazilXuxue Feng PROPOSAL
Deepesh X BologniaItalyStephen Shaw PROPOSAL
Costa Z FigeroaUnited KingdomAmy Elsner PROPOSAL
Nicolas G ChuiSpainElwin Sharvill NEW
Rodrigues S KolmetzCanadaAsiya Javayant NEGOTIATION
Adams G IturbideAustraliaIvan Magalhaes UNQUALIFIED
Chavez S CampainCanadaStephen Shaw UNQUALIFIED
David T MarrierCanadaElwin Sharvill QUALIFIED
Octavia D WhobreyAustraliaXuxue Feng QUALIFIED
Jones O SlusarskiGermanyAnna Fali RENEWAL
Juan Q ButtJapanStephen Shaw RENEWAL
Francesco A FlosiArgentinaAsiya Javayant QUALIFIED
Mayumi R TollnerArgentinaElwin Sharvill 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>