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 U GlickCanadaStephen Shaw QUALIFIED
Chavez T NickaItalyXuxue Feng RENEWAL
Ivar O PerinCanadaElwin Sharvill PROPOSAL
Antonio I BriddickRussiaElwin Sharvill RENEWAL
Emily X GarufiIndiaAnna Fali NEGOTIATION
Izzy G SlusarskiBrazilOnyama Limba UNQUALIFIED
Mujtaba O CampainBrazilIvan Magalhaes RENEWAL
Greenwood G ButtBrazilAnna Fali RENEWAL
Maisha N FlosiJapanStephen Shaw RENEWAL
Silvio W OstroskyIndiaAmy Elsner NEW
Juan B SaylorsAustraliaElwin Sharvill NEW
Antonio N MacleadIndiaXuxue Feng QUALIFIED
Misaki G FerenczUnited KingdomAsiya Javayant QUALIFIED
Jennifer G WhobreyGermanyAsiya Javayant PROPOSAL
Aruna L FigeroaUnited KingdomBernardo Dominic RENEWAL
Chavez Y FigeroaJapanAnna Fali QUALIFIED
James A RimIndiaXuxue Feng QUALIFIED
Aditya D SchemmerAustraliaIvan Magalhaes PROPOSAL
Murillo J GillianItalyIoni Bowcher PROPOSAL
Jeanfrancois B OldroydSpainAnna Fali PROPOSAL
Johnson K GarufiRussiaAmy Elsner QUALIFIED
Jennifer P DarakjyBrazilIvan Magalhaes QUALIFIED
Greenwood M OstroskyRussiaOnyama Limba PROPOSAL
Maria L SlusarskiArgentinaIoni Bowcher NEW
Alejandro O WaycottUnited KingdomIoni Bowcher RENEWAL
Mujtaba J GlickItalyIvan Magalhaes PROPOSAL
Munro G KolmetzIndiaStephen Shaw QUALIFIED
Deepesh Q GauchoSpainAnna Fali NEGOTIATION
Rodrigues V MorascaAustraliaBernardo Dominic QUALIFIED
Kadeem J FerenczIndiaIvan Magalhaes NEGOTIATION
Alejandro C GauchoCanadaIvan Magalhaes QUALIFIED
Wickens Z KolmetzCanadaOnyama Limba UNQUALIFIED
Mayumi T KuskoSpainElwin Sharvill PROPOSAL
Aruna Z StockhamSpainStephen Shaw UNQUALIFIED
Faith L ShinkoAustraliaIvan Magalhaes NEGOTIATION
Octavia Z FigeroaRussiaIvan Magalhaes NEW
Leja Y InouyeArgentinaIvan Magalhaes NEW
Johnson A MarrierAustraliaOnyama Limba RENEWAL
Chavez Q IturbideGermanyAmy Elsner PROPOSAL
Julie K DoeIndiaOnyama Limba RENEWAL
Isabel D WieserSpainIvan Magalhaes QUALIFIED
Darci S StockhamSpainIoni Bowcher RENEWAL
Misaki V KuskoFranceAsiya Javayant PROPOSAL
Clifford Y BriddickRussiaStephen Shaw RENEWAL
Wickens D TollnerUnited KingdomXuxue Feng NEGOTIATION
Juan J StockhamJapanXuxue Feng NEGOTIATION
Isabel X RulapaughBrazilAnna Fali NEW
David Z WhobreyAustraliaAsiya Javayant NEGOTIATION
James M ShinkoUnited KingdomIoni Bowcher RENEWAL
Nicolas H IturbideArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody X RutaCanadaAnna Fali QUALIFIED
David R FlosiUnited KingdomOnyama Limba NEGOTIATION
Cody A SaylorsCanadaAnna Fali RENEWAL
Aruna L AmigonRussiaXuxue Feng PROPOSAL
Faith T MorascaUnited KingdomElwin Sharvill NEW
Jeanfrancois S GarufiSpainAnna Fali RENEWAL
David Q CampainAustraliaOnyama Limba QUALIFIED
Ricardo D MarrierBrazilIoni Bowcher NEW
Clifford I RutaGermanyOnyama Limba RENEWAL
Jeanfrancois Q StensethArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire H PerinArgentina2026-06-27Feiner Bros NEGOTIATION18Elwin Sharvill
1001Murillo P CaldareraGermany2026-06-18King, Christopher A Esq UNQUALIFIED2Asiya Javayant
1002Munro L FerenczFrance2026-07-06Printing Dimensions NEGOTIATION9Asiya Javayant
1003Juan Z GillianBrazil2026-07-12Chanay, Jeffrey A Esq NEGOTIATION86Elwin Sharvill
1004David O OldroydFrance2026-07-06Chemel, James L Cpa NEGOTIATION94Ivan Magalhaes
1005Smith H CaudyUnited Kingdom2026-06-26Chemel, James L Cpa NEGOTIATION35Bernardo Dominic
1006Arvin L VocelkaUnited Kingdom2026-06-17King, Christopher A Esq QUALIFIED46Ioni Bowcher
1007Kaitlin P WaycottCanada2026-07-06Chapman, Ross E Esq PROPOSAL20Bernardo Dominic
1008Silvio Z WaycottUnited Kingdom2026-07-16Chemel, James L Cpa RENEWAL23Amy Elsner
1009Aruna H RulapaughCanada2026-07-06Dorl, James J Esq UNQUALIFIED45Xuxue Feng
1010Julie C VocelkaGermany2026-07-01Dorl, James J Esq RENEWAL3Ioni Bowcher
1011Jefferson X VocelkaArgentina2026-07-15Printing Dimensions PROPOSAL87Stephen Shaw
1012Claire C RutaGermany2026-06-18Dorl, James J Esq PROPOSAL91Xuxue Feng
1013Tony T DarakjyGermany2026-06-17Chanay, Jeffrey A Esq RENEWAL83Anna Fali
1014Arvin R RulapaughItaly2026-07-06Commercial Press QUALIFIED15Elwin Sharvill
1015Alejandro N SaylorsAustralia2026-07-10Morlong Associates NEW75Asiya Javayant
1016Octavia S FlosiItaly2026-06-27Buckley Miller Wright NEW6Amy Elsner
1017Izzy P FigeroaAustralia2026-06-22Printing Dimensions QUALIFIED81Stephen Shaw
1018Stacey N PaprockiRussia2026-06-30Commercial Press NEW55Bernardo Dominic
1019Salvatore C MaletRussia2026-07-03Dorl, James J Esq RENEWAL33Onyama Limba
1020Stacey M MorascaBrazil2026-07-16Printing Dimensions NEW16Asiya Javayant
1021Jefferson F ChuiIndia2026-06-19Printing Dimensions QUALIFIED34Onyama Limba
1022Adams D KuskoItaly2026-07-03Rousseaux, Michael Esq RENEWAL80Xuxue Feng
1023Juan J FollerUnited Kingdom2026-06-20Rangoni Of Florence NEGOTIATION74Ivan Magalhaes
1024Clifford C VocelkaItaly2026-06-19Benton, John B Jr QUALIFIED33Stephen Shaw
1025Nicolas H AlbaresUnited Kingdom2026-07-05Printing Dimensions NEW33Bernardo Dominic
1026Murillo W StockhamJapan2026-06-18Truhlar And Truhlar Attys PROPOSAL3Amy Elsner
1027Wickens R RimAustralia2026-06-30Buckley Miller Wright QUALIFIED28Ioni Bowcher
1028Ricardo Q PoquetteItaly2026-06-21Chemel, James L Cpa QUALIFIED43Stephen Shaw
1029Juan G SaylorsJapan2026-07-02Chemel, James L Cpa NEW35Amy Elsner
1030Morrow X VocelkaIndia2026-07-05King, Christopher A Esq PROPOSAL70Asiya Javayant
1031Octavia Q BowleyUnited Kingdom2026-07-01Chemel, James L Cpa QUALIFIED85Anna Fali
1032Salvatore X GauchoUnited Kingdom2026-07-11Truhlar And Truhlar Attys QUALIFIED87Amy Elsner
1033Izzy Q AmigonSpain2026-07-11Printing Dimensions PROPOSAL70Xuxue Feng
1034Aruna A InouyeIndia2026-06-27Chapman, Ross E Esq UNQUALIFIED23Ivan Magalhaes
1035Arvin J MacleadCanada2026-06-24Chapman, Ross E Esq RENEWAL38Onyama Limba
1036Jeanfrancois F RimCanada2026-06-29Morlong Associates QUALIFIED16Bernardo Dominic
1037Alejandro F CaldareraBrazil2026-07-06Rousseaux, Michael Esq NEGOTIATION60Asiya Javayant
1038Maria P VocelkaAustralia2026-06-17Chemel, James L Cpa PROPOSAL4Bernardo Dominic
1039Misaki G VenereGermany2026-07-15Commercial Press PROPOSAL49Bernardo Dominic
1040Jeanfrancois V GarufiGermany2026-06-17Commercial Press PROPOSAL7Xuxue Feng
1041Maisha U NestleCanada2026-07-04Chanay, Jeffrey A Esq PROPOSAL87Stephen Shaw
1042Adams Y BriddickUnited Kingdom2026-06-18Truhlar And Truhlar Attys UNQUALIFIED94Ivan Magalhaes
1043Julie W WieserRussia2026-07-03Dorl, James J Esq PROPOSAL42Stephen Shaw
1044Maria I GauchoJapan2026-07-09Chapman, Ross E Esq NEGOTIATION81Xuxue Feng
1045Munro L KolmetzFrance2026-06-25Feltz Printing Service NEGOTIATION69Amy Elsner
1046Wickens A ButtRussia2026-07-15Rangoni Of Florence NEW86Anna Fali
1047Darci E MaletGermany2026-07-01Rousseaux, Michael Esq QUALIFIED46Onyama Limba
1048Stacey K FigeroaIndia2026-06-27Feltz Printing Service NEW65Ivan Magalhaes
1049Chavez Q MaletJapan2026-07-10Commercial Press NEW20Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jones H StockhamAustraliaIvan Magalhaes NEW
Jennifer D RulapaughGermanyIoni Bowcher RENEWAL
Ricardo B AmigonUnited KingdomAnna Fali NEW
Murillo Q WaycottUnited KingdomAmy Elsner PROPOSAL
Cody Q FollerGermanyAsiya Javayant PROPOSAL
Maria E MaletSpainAmy Elsner PROPOSAL
Adams R BologniaFranceBernardo Dominic QUALIFIED
Salvatore Q WhobreyCanadaIoni Bowcher NEGOTIATION
Arvin U DoeRussiaIoni Bowcher QUALIFIED
Tony A MaletUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois J WhobreyJapanOnyama Limba QUALIFIED
Alejandro V ButtItalyIvan Magalhaes PROPOSAL
Aika V FerenczAustraliaElwin Sharvill NEGOTIATION
Arvin T MacleadSpainAsiya Javayant PROPOSAL
Jones L KuskoRussiaElwin Sharvill PROPOSAL
Ashley I PerinBrazilBernardo Dominic NEW
Ricardo W ShinkoArgentinaAsiya Javayant RENEWAL
Leon G GillianAustraliaAnna Fali NEW
Julie L RulapaughFranceElwin Sharvill PROPOSAL
Sinclair C MaletJapanAmy Elsner QUALIFIED
Emily Y KolmetzAustraliaAnna Fali UNQUALIFIED
Antonio A MorascaAustraliaOnyama Limba PROPOSAL
Mayumi B NickaBrazilAmy Elsner NEW
Johnson Z FigeroaRussiaAnna Fali NEGOTIATION
Maisha D SlusarskiArgentinaAsiya Javayant NEW
Smith I SchemmerIndiaXuxue Feng QUALIFIED
James N TollnerGermanyAsiya Javayant NEGOTIATION
Smith N TollnerArgentinaXuxue Feng QUALIFIED
Izzy Z OstroskyJapanAmy Elsner NEW
Morrow M IturbideCanadaAsiya Javayant UNQUALIFIED
Ashley S MorascaAustraliaXuxue Feng PROPOSAL
Johnson K CaudyJapanAmy Elsner QUALIFIED
Mujtaba O GarufiFranceAmy Elsner QUALIFIED
Maria Y ChuiJapanXuxue Feng NEGOTIATION
Mujtaba W OldroydRussiaAsiya Javayant PROPOSAL
Ricardo Q ChuiFranceBernardo Dominic NEGOTIATION
Antonio K MacleadItalyOnyama Limba NEW
Jones D StensethCanadaAnna Fali PROPOSAL
Maisha H AlbaresAustraliaAmy Elsner NEW
Clifford P BriddickJapanAmy Elsner NEW
Leon H WaycottJapanAsiya Javayant NEW
Clifford K KolmetzItalyOnyama Limba NEW
Sinclair V StensethArgentinaIvan Magalhaes NEGOTIATION
Maisha K PoquetteCanadaAnna Fali PROPOSAL
Aika M MaletUnited KingdomIvan Magalhaes RENEWAL
Francesco Q VenereUnited KingdomAsiya Javayant QUALIFIED
Izzy Y GarufiBrazilElwin Sharvill UNQUALIFIED
Octavia O StockhamSpainAsiya Javayant NEW
Murillo C RulapaughCanadaElwin Sharvill UNQUALIFIED
Maisha O VocelkaRussiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Misaki W Poquette
Nicolas X Butt
Antonio P Kolmetz
Cody D Malet
Maria U Stockham
Tony P Darakjy
Ashley P Marrier
Adams W Malet
Ivar Q Doe
Salvatore C Poquette
Sinclair A Maclead
Stacey Y Bowley
Wickens Y Saylors
Smith B Bowley
Morrow N Saylors
Arvin D Tollner
Rodrigues T Darakjy
Murillo G Maclead
Chavez R Caldarera
Stacey C Malet
Mujtaba I Sergi
Wickens Z Bowley
Julie K Shinko
Nicolas Y Nestle
Isabel E Garufi
Julie K Stenseth
Smith G Caudy
Johnson G Rulapaugh
Salvatore J Caldarera
Isabel V Morasca
Adams P Venere
Jeanfrancois F Stockham
Murillo K Slusarski
Cody A Albares
Izzy F Iturbide
David S Gaucho
Clifford R Campain
Deepesh O Nestle
Leon P Figeroa
Maria P Bowley
Chavez B Albares
Alejandro F Shinko
Mayumi P Rulapaugh
Salvatore U Oldroyd
Izzy U Gillian
Ashley B Rulapaugh
Aditya F Vocelka
Ricardo A Albares
Ashley X Bowley
Juan K Iturbide
IdCountryDate
1000Italy2026-06-22
1001India2026-07-04
1002Canada2026-06-26
1003Russia2026-07-07
1004Argentina2026-07-01
1005France2026-06-25
1006Argentina2026-06-18
1007Argentina2026-06-27
1008Japan2026-06-29
1009Canada2026-06-17
1010Germany2026-07-05
1011France2026-07-05
1012India2026-07-07
1013Japan2026-07-15
1014Brazil2026-06-29
1015Germany2026-07-03
1016Spain2026-07-09
1017Canada2026-06-20
1018Brazil2026-07-09
1019France2026-07-01
1020Canada2026-07-06
1021Spain2026-07-03
1022Italy2026-07-13
1023Australia2026-07-09
1024Japan2026-07-10
1025Argentina2026-06-30
1026France2026-06-18
1027Brazil2026-07-15
1028Italy2026-06-30
1029India2026-07-14
1030India2026-07-10
1031Japan2026-06-18
1032India2026-07-12
1033Italy2026-06-18
1034India2026-06-22
1035Canada2026-06-17
1036United Kingdom2026-07-16
1037Spain2026-07-10
1038United Kingdom2026-06-27
1039Italy2026-07-16
1040Australia2026-07-16
1041Spain2026-07-13
1042Italy2026-07-01
1043Italy2026-07-15
1044United Kingdom2026-07-09
1045Germany2026-07-09
1046United Kingdom2026-07-08
1047Brazil2026-06-21
1048Argentina2026-07-07
1049Brazil2026-07-02

On-Demand Data

NameIdCountryDate
Costa U Wieser1000Spain2026-06-27
Jeanfrancois P Kolmetz1001Germany2026-06-25
Francesco P Ostrosky1002Germany2026-06-29
Claire L Dilliard1003Canada2026-07-01
Aditya K Stenseth1004United Kingdom2026-06-21
Stacey I Figeroa1005Canada2026-06-25
Octavia F Tollner1006Russia2026-06-20
Jones V Perin1007Argentina2026-07-10
Kadeem M Campain1008Italy2026-07-11
Faith H Malet1009Japan2026-07-09
Octavia Y Darakjy1010Italy2026-06-28
David F Butt1011Canada2026-07-01
Cody F Poquette1012Germany2026-07-08
Jefferson V Vocelka1013Canada2026-07-04
Greenwood Y Stenseth1014Argentina2026-07-10
Salvatore S Ferencz1015Spain2026-06-19
Maria E Figeroa1016Italy2026-07-04
Aika O Caudy1017Russia2026-06-27
Jones C Garufi1018Germany2026-06-22
Clifford J Doe1019Argentina2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony N OldroydArgentinaAnna Fali NEGOTIATION
Ivar L StensethUnited KingdomAsiya Javayant NEW
Ashley S WaycottJapanBernardo Dominic NEGOTIATION
Ashley E SergiJapanBernardo Dominic RENEWAL
James C VocelkaJapanXuxue Feng NEW
Misaki L CaldareraCanadaXuxue Feng RENEWAL
Murillo W FlosiGermanyElwin Sharvill UNQUALIFIED
Izzy W RulapaughSpainIoni Bowcher QUALIFIED
Wickens J DoeBrazilAmy Elsner UNQUALIFIED
Rodrigues X BowleyUnited KingdomBernardo Dominic QUALIFIED
Kadeem Y CaldareraSpainIvan Magalhaes QUALIFIED
Nicolas B RutaBrazilElwin Sharvill RENEWAL
Antonio P ChuiCanadaIoni Bowcher QUALIFIED
Aika F TollnerSpainAsiya Javayant NEGOTIATION
Francesco E PoquetteSpainOnyama Limba PROPOSAL
Claire O RoysterJapanAnna Fali UNQUALIFIED
Ivar E MaletJapanXuxue Feng NEGOTIATION
Costa I PerinJapanElwin Sharvill NEW
Francesco M SergiItalyAnna Fali QUALIFIED
Murillo J NestleRussiaAnna Fali RENEWAL
Octavia B GauchoRussiaIvan Magalhaes UNQUALIFIED
Jones I FerenczBrazilStephen Shaw NEW
Greenwood V InouyeFranceElwin Sharvill PROPOSAL
Kaitlin Z WieserUnited KingdomOnyama Limba PROPOSAL
Arvin L NestleBrazilAsiya Javayant NEW
Faith Z NickaSpainBernardo Dominic PROPOSAL
Ivar W TollnerBrazilBernardo Dominic PROPOSAL
Jennifer M MaletItalyAsiya Javayant UNQUALIFIED
Chavez Z GillianItalyXuxue Feng UNQUALIFIED
Kaitlin Z DarakjyFranceAsiya Javayant PROPOSAL
Ivar A ChuiFranceElwin Sharvill UNQUALIFIED
Kadeem C BriddickJapanIoni Bowcher RENEWAL
Wickens G PerinGermanyXuxue Feng NEGOTIATION
Ricardo C BowleyGermanyAnna Fali NEW
Morrow U SergiGermanyStephen Shaw QUALIFIED
Tony S VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Aika M DoeUnited KingdomAnna Fali NEGOTIATION
Leja A OldroydSpainXuxue Feng NEW
Mayumi V RoysterItalyXuxue Feng PROPOSAL
Morrow E BowleyUnited KingdomIoni Bowcher NEGOTIATION

<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>