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
Maisha U VenereSpainElwin Sharvill UNQUALIFIED
Munro N VocelkaArgentinaBernardo Dominic QUALIFIED
Maria S ShinkoArgentinaOnyama Limba UNQUALIFIED
Claire P SaylorsIndiaAnna Fali NEW
Johnson C WaycottBrazilIoni Bowcher NEW
Antonio Q NickaRussiaIoni Bowcher UNQUALIFIED
Sinclair T PaprockiAustraliaIoni Bowcher UNQUALIFIED
James Q FigeroaItalyElwin Sharvill NEGOTIATION
Leja P ShinkoAustraliaIvan Magalhaes PROPOSAL
Aika M DarakjySpainIvan Magalhaes PROPOSAL
Isabel U PoquetteSpainStephen Shaw NEGOTIATION
Adams H WieserBrazilAsiya Javayant NEGOTIATION
Faith V ShinkoAustraliaIvan Magalhaes NEW
Jefferson X BriddickArgentinaAsiya Javayant NEW
Julie W ShinkoSpainStephen Shaw NEW
Chavez W NestleIndiaOnyama Limba UNQUALIFIED
Aruna S DarakjyItalyIvan Magalhaes NEGOTIATION
Costa Y FollerFranceOnyama Limba NEGOTIATION
Leon P GillianArgentinaAmy Elsner RENEWAL
Isabel Q AlbaresJapanXuxue Feng RENEWAL
Costa Y SergiBrazilAmy Elsner NEW
Silvio K BologniaSpainIoni Bowcher PROPOSAL
Isabel I AmigonIndiaXuxue Feng UNQUALIFIED
Claire R PaprockiItalyAsiya Javayant PROPOSAL
Julie N RulapaughRussiaAnna Fali RENEWAL
Smith I VocelkaJapanAmy Elsner QUALIFIED
Rodrigues L BriddickRussiaXuxue Feng QUALIFIED
Wickens S GlickUnited KingdomStephen Shaw NEGOTIATION
Jones L BriddickRussiaBernardo Dominic NEW
Greenwood X MaletBrazilElwin Sharvill NEW
Julie K DilliardUnited KingdomAmy Elsner UNQUALIFIED
Aruna L NestleCanadaElwin Sharvill NEGOTIATION
Clifford S NickaGermanyOnyama Limba NEW
Rodrigues C KolmetzFranceElwin Sharvill NEGOTIATION
Costa N BologniaSpainAnna Fali RENEWAL
Kaitlin B AmigonFranceAsiya Javayant QUALIFIED
Sinclair L RutaBrazilIoni Bowcher RENEWAL
Johnson U RimGermanyElwin Sharvill QUALIFIED
Juan U FlosiRussiaElwin Sharvill RENEWAL
Mujtaba Y CampainIndiaElwin Sharvill NEGOTIATION
Costa K GauchoUnited KingdomAnna Fali NEW
Jones E VenereCanadaAnna Fali QUALIFIED
Juan K FigeroaArgentinaAnna Fali UNQUALIFIED
Sinclair T VocelkaFranceAnna Fali PROPOSAL
Rodrigues V NestleAustraliaOnyama Limba UNQUALIFIED
Kadeem I KolmetzRussiaAmy Elsner PROPOSAL
Adams X ButtCanadaElwin Sharvill UNQUALIFIED
Rodrigues F RutaCanadaOnyama Limba PROPOSAL
Alejandro Y VenereUnited KingdomBernardo Dominic NEW
Kadeem X WaycottAustraliaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire X IturbideIndiaElwin Sharvill NEW
Deepesh I TollnerItalyIoni Bowcher RENEWAL
Morrow S FlosiArgentinaElwin Sharvill RENEWAL
Smith K GarufiAustraliaStephen Shaw RENEWAL
Adams M AlbaresFranceAsiya Javayant PROPOSAL
Maria H SergiItalyElwin Sharvill NEW
Aditya H RulapaughGermanyOnyama Limba UNQUALIFIED
Cody K DilliardJapanOnyama Limba NEGOTIATION
Leja I VocelkaUnited KingdomOnyama Limba UNQUALIFIED
Kadeem V ChuiRussiaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie E NestleRussia2025-05-18Chemel, James L Cpa QUALIFIED73Asiya Javayant
1001Arvin T CaudyAustralia2025-06-02Rangoni Of Florence UNQUALIFIED72Anna Fali
1002Ivar I BowleyFrance2025-05-28Benton, John B Jr RENEWAL14Amy Elsner
1003Adams C MarrierSpain2025-05-26Rousseaux, Michael Esq UNQUALIFIED26Bernardo Dominic
1004Munro E StensethCanada2025-05-16Morlong Associates NEW74Xuxue Feng
1005Sinclair A DoeFrance2025-05-26Feiner Bros UNQUALIFIED46Ivan Magalhaes
1006Maria P ButtRussia2025-05-16Truhlar And Truhlar Attys PROPOSAL4Onyama Limba
1007Darci Q PaprockiGermany2025-05-23King, Christopher A Esq RENEWAL91Anna Fali
1008Francesco T KolmetzUnited Kingdom2025-06-14Commercial Press UNQUALIFIED36Bernardo Dominic
1009Adams D PerinFrance2025-06-13Truhlar And Truhlar Attys NEGOTIATION82Bernardo Dominic
1010Antonio W VocelkaJapan2025-06-01Rangoni Of Florence NEW35Ioni Bowcher
1011Ashley M SaylorsItaly2025-06-01Chapman, Ross E Esq UNQUALIFIED56Bernardo Dominic
1012Johnson O DilliardCanada2025-05-21Feiner Bros UNQUALIFIED93Asiya Javayant
1013Clifford Z VocelkaSpain2025-06-01Dorl, James J Esq RENEWAL89Asiya Javayant
1014Maria D WhobreyIndia2025-06-11Commercial Press PROPOSAL92Stephen Shaw
1015Clifford E FlosiFrance2025-05-17Chapman, Ross E Esq NEGOTIATION31Asiya Javayant
1016Cody D RoysterRussia2025-05-28Feiner Bros PROPOSAL2Onyama Limba
1017Chavez R RulapaughRussia2025-05-20Morlong Associates RENEWAL44Bernardo Dominic
1018Costa U BriddickRussia2025-05-18Chanay, Jeffrey A Esq RENEWAL10Ivan Magalhaes
1019Adams X PoquetteUnited Kingdom2025-05-17Commercial Press QUALIFIED55Ivan Magalhaes
1020Stacey D RutaJapan2025-05-29Rousseaux, Michael Esq PROPOSAL68Amy Elsner
1021Jennifer S CaldareraGermany2025-06-06Rangoni Of Florence QUALIFIED2Asiya Javayant
1022Sinclair S VenereGermany2025-05-26Morlong Associates NEGOTIATION53Onyama Limba
1023Jones K GlickUnited Kingdom2025-05-22Feltz Printing Service RENEWAL39Asiya Javayant
1024Emily G GarufiRussia2025-06-06King, Christopher A Esq UNQUALIFIED29Anna Fali
1025Mujtaba Y GauchoGermany2025-05-29Truhlar And Truhlar Attys UNQUALIFIED64Ioni Bowcher
1026Leja U BriddickItaly2025-05-19Feiner Bros RENEWAL21Ioni Bowcher
1027Smith Z RulapaughRussia2025-05-27Dorl, James J Esq UNQUALIFIED60Bernardo Dominic
1028Deepesh Y MaletBrazil2025-05-31Commercial Press RENEWAL22Elwin Sharvill
1029David D BowleyUnited Kingdom2025-05-16Feiner Bros QUALIFIED87Ioni Bowcher
1030Izzy E OldroydCanada2025-06-09Morlong Associates PROPOSAL58Onyama Limba
1031Cody K SaylorsIndia2025-06-09Chapman, Ross E Esq NEGOTIATION47Onyama Limba
1032Misaki M ChuiCanada2025-06-09Chanay, Jeffrey A Esq PROPOSAL78Elwin Sharvill
1033Adams Q CaldareraUnited Kingdom2025-05-24Chapman, Ross E Esq PROPOSAL5Ivan Magalhaes
1034Ivar Y OldroydCanada2025-05-31Benton, John B Jr NEGOTIATION54Ivan Magalhaes
1035Salvatore Y NestleArgentina2025-06-12Rangoni Of Florence NEGOTIATION9Xuxue Feng
1036Clifford V DarakjyJapan2025-06-13Dorl, James J Esq QUALIFIED42Anna Fali
1037Ashley U MarrierFrance2025-05-22Morlong Associates PROPOSAL16Xuxue Feng
1038Jones F FlosiUnited Kingdom2025-05-25Chanay, Jeffrey A Esq PROPOSAL18Ioni Bowcher
1039Morrow Y IturbideCanada2025-06-09Dorl, James J Esq NEW93Xuxue Feng
1040Arvin Q MorascaIndia2025-05-20Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1041Antonio L InouyeGermany2025-05-30Rangoni Of Florence PROPOSAL68Ivan Magalhaes
1042Johnson W MorascaIndia2025-06-11Feltz Printing Service RENEWAL16Ioni Bowcher
1043Juan Z OstroskyGermany2025-06-01Truhlar And Truhlar Attys RENEWAL83Bernardo Dominic
1044Mayumi Z GillianIndia2025-06-13Buckley Miller Wright NEGOTIATION53Bernardo Dominic
1045Greenwood I SlusarskiGermany2025-05-22Printing Dimensions RENEWAL32Anna Fali
1046Alejandro N RutaBrazil2025-05-23Truhlar And Truhlar Attys UNQUALIFIED51Ivan Magalhaes
1047Salvatore F KuskoUnited Kingdom2025-05-17Rousseaux, Michael Esq QUALIFIED9Xuxue Feng
1048Ivar X RutaJapan2025-06-04Feltz Printing Service PROPOSAL85Ivan Magalhaes
1049Cody O ChuiCanada2025-06-09Truhlar And Truhlar Attys RENEWAL74Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Wickens N CampainRussiaIvan Magalhaes NEW
Morrow K GauchoArgentinaXuxue Feng UNQUALIFIED
Rodrigues H SergiIndiaStephen Shaw RENEWAL
Darci J OldroydCanadaAsiya Javayant UNQUALIFIED
Jennifer H SaylorsGermanyXuxue Feng RENEWAL
Adams Y FerenczArgentinaXuxue Feng QUALIFIED
Aditya M KuskoUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood Z AmigonGermanyElwin Sharvill NEGOTIATION
Juan O CaudyJapanIvan Magalhaes PROPOSAL
Claire I SlusarskiIndiaStephen Shaw RENEWAL
Jennifer A GlickSpainAsiya Javayant QUALIFIED
Darci P PaprockiJapanIoni Bowcher UNQUALIFIED
Jeanfrancois U DoeSpainOnyama Limba PROPOSAL
Murillo F CampainRussiaAsiya Javayant NEGOTIATION
Juan G MaletAustraliaAsiya Javayant PROPOSAL
Chavez K KolmetzAustraliaOnyama Limba NEW
Stacey Q BriddickBrazilElwin Sharvill NEW
Greenwood V FlosiFranceAnna Fali QUALIFIED
Mujtaba D RimRussiaAsiya Javayant NEW
Francesco L ShinkoIndiaAnna Fali RENEWAL
Aruna V NickaUnited KingdomAmy Elsner NEW
Deepesh M SlusarskiCanadaStephen Shaw NEGOTIATION
Clifford G SchemmerBrazilAnna Fali UNQUALIFIED
Kaitlin G StensethGermanyAsiya Javayant QUALIFIED
Clifford A OstroskyRussiaXuxue Feng NEW
Leja Z WieserFranceElwin Sharvill PROPOSAL
Claire M WaycottCanadaAnna Fali RENEWAL
Aika W NestleItalyAsiya Javayant NEGOTIATION
Alejandro D PoquetteFranceXuxue Feng UNQUALIFIED
Jones S OstroskyGermanyBernardo Dominic NEGOTIATION
Francesco X BowleySpainBernardo Dominic UNQUALIFIED
Izzy P SlusarskiJapanOnyama Limba NEW
Ivar T CaldareraUnited KingdomOnyama Limba RENEWAL
Stacey F SergiAustraliaElwin Sharvill QUALIFIED
Emily W RoysterIndiaXuxue Feng QUALIFIED
Juan T SergiItalyIoni Bowcher PROPOSAL
Ashley S BriddickGermanyBernardo Dominic NEW
Johnson I CaudyJapanXuxue Feng RENEWAL
Leon K StockhamUnited KingdomBernardo Dominic NEW
Aika U IturbideItalyAmy Elsner PROPOSAL
Jefferson Y PaprockiSpainAnna Fali QUALIFIED
Clifford H MaletGermanyBernardo Dominic UNQUALIFIED
Leja U DarakjyUnited KingdomAmy Elsner NEGOTIATION
Jennifer M DarakjyItalyBernardo Dominic QUALIFIED
Leja R IturbideBrazilOnyama Limba NEGOTIATION
Wickens V PerinArgentinaAsiya Javayant PROPOSAL
Antonio F MaletArgentinaIoni Bowcher NEGOTIATION
Kadeem A MorascaGermanyStephen Shaw NEGOTIATION
Stacey A MaletIndiaAmy Elsner NEGOTIATION
Costa N KolmetzBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Deepesh P Shinko
Chavez E Rulapaugh
Faith K Ruta
Leon A Foller
Claire O Nestle
Juan O Stenseth
Murillo L Ostrosky
Juan E Rim
Munro N Foller
Leon H Rim
Chavez L Waycott
Aruna G Shinko
Nicolas E Foller
Wickens U Amigon
Ashley R Perin
Jennifer M Darakjy
Claire U Malet
Cody O Doe
Stacey K Ostrosky
Greenwood Q Schemmer
Smith Q Gaucho
Darci G Bowley
Maisha L Foller
Jefferson B Foller
Nicolas D Oldroyd
Costa W Bolognia
Jeanfrancois M Inouye
Wickens Q Saylors
Aruna W Nicka
Nicolas V Stenseth
Leja V Glick
Mayumi O Briddick
Juan G Oldroyd
Leja Q Stockham
Maisha Q Perin
Tony N Iturbide
Smith C Ostrosky
Nicolas R Iturbide
Munro U Rulapaugh
Aditya F Perin
James Z Butt
Nicolas D Gaucho
Adams U Oldroyd
Julie W Stockham
Aika H Wieser
Chavez A Tollner
Aditya Z Campain
Murillo G Inouye
Faith O Bowley
Isabel G Ostrosky
IdCountryDate
1000United Kingdom2025-05-24
1001Australia2025-05-31
1002Russia2025-05-31
1003Canada2025-06-09
1004Argentina2025-05-17
1005India2025-06-14
1006Italy2025-05-18
1007Spain2025-06-03
1008United Kingdom2025-06-06
1009Japan2025-06-14
1010France2025-06-06
1011Argentina2025-06-10
1012India2025-05-28
1013United Kingdom2025-06-09
1014Spain2025-05-17
1015Argentina2025-05-18
1016Germany2025-06-14
1017Spain2025-06-01
1018Argentina2025-05-18
1019Japan2025-06-08
1020Spain2025-05-17
1021Russia2025-06-14
1022Spain2025-05-29
1023United Kingdom2025-06-10
1024Italy2025-06-13
1025Australia2025-05-19
1026India2025-06-10
1027Russia2025-05-28
1028India2025-05-21
1029Australia2025-06-09
1030Italy2025-06-10
1031Canada2025-05-27
1032Germany2025-06-01
1033France2025-05-31
1034France2025-05-26
1035Canada2025-06-11
1036Russia2025-06-12
1037Germany2025-05-20
1038Canada2025-05-17
1039Germany2025-05-21
1040Spain2025-06-03
1041Australia2025-06-09
1042United Kingdom2025-05-31
1043India2025-05-28
1044France2025-06-10
1045Russia2025-06-01
1046Brazil2025-06-05
1047United Kingdom2025-05-25
1048Canada2025-06-12
1049France2025-05-19

On-Demand Data

NameIdCountryDate
Stacey S Waycott1000France2025-06-06
Ricardo V Kusko1001India2025-05-29
Claire B Morasca1002Spain2025-05-20
Darci U Stockham1003Italy2025-06-06
Stacey U Oldroyd1004India2025-05-22
Stacey R Ostrosky1005Australia2025-06-07
Nicolas N Poquette1006Russia2025-06-02
Jefferson Q Butt1007Russia2025-05-21
Ricardo H Figeroa1008Argentina2025-05-21
Arvin K Gaucho1009Canada2025-05-25
Leon J Nicka1010Argentina2025-06-03
Wickens K Ferencz1011India2025-05-22
Juan Y Oldroyd1012India2025-05-31
Antonio A Dilliard1013Germany2025-06-09
Darci H Kolmetz1014France2025-06-09
Murillo E Butt1015Canada2025-05-20
Aditya O Morasca1016United Kingdom2025-05-16
Faith V Bolognia1017Argentina2025-05-25
Kadeem D Venere1018Argentina2025-05-26
Aditya C Dilliard1019Brazil2025-05-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens K BowleyFranceStephen Shaw RENEWAL
Francesco T OldroydFranceAsiya Javayant RENEWAL
Misaki B GauchoCanadaXuxue Feng NEGOTIATION
Faith W BowleyIndiaAsiya Javayant NEW
Leja F PerinIndiaAsiya Javayant PROPOSAL
Cody M MaletGermanyStephen Shaw QUALIFIED
Costa X SaylorsItalyElwin Sharvill NEGOTIATION
Emily Z GillianRussiaAmy Elsner PROPOSAL
Adams Y CampainJapanBernardo Dominic NEW
Isabel P FlosiRussiaOnyama Limba PROPOSAL
Emily U WhobreyItalyBernardo Dominic NEW
Faith F TollnerJapanAmy Elsner UNQUALIFIED
Maria K StockhamUnited KingdomStephen Shaw NEGOTIATION
David M BowleyArgentinaAnna Fali QUALIFIED
Julie K PoquetteArgentinaAnna Fali NEGOTIATION
Maisha S ButtCanadaOnyama Limba PROPOSAL
Cody J ChuiRussiaAmy Elsner UNQUALIFIED
Maisha I KolmetzArgentinaStephen Shaw PROPOSAL
Sinclair Y WieserAustraliaIvan Magalhaes QUALIFIED
David R DilliardUnited KingdomAmy Elsner NEGOTIATION
Smith I InouyeGermanyIvan Magalhaes RENEWAL
Jennifer T GillianCanadaOnyama Limba NEW
Silvio R WieserFranceStephen Shaw NEW
James A VocelkaRussiaIvan Magalhaes PROPOSAL
Ivar H ShinkoCanadaBernardo Dominic NEGOTIATION
Maria R CampainBrazilXuxue Feng RENEWAL
Antonio O ButtSpainAmy Elsner NEGOTIATION
Rodrigues D RulapaughIndiaIoni Bowcher NEW
Alejandro X SlusarskiSpainOnyama Limba RENEWAL
Ricardo P GillianJapanIvan Magalhaes PROPOSAL
Ricardo J KolmetzIndiaXuxue Feng PROPOSAL
Emily I MacleadBrazilOnyama Limba RENEWAL
Antonio A DarakjyIndiaBernardo Dominic PROPOSAL
Nicolas R InouyeIndiaOnyama Limba PROPOSAL
Adams E PaprockiRussiaIoni Bowcher RENEWAL
Rodrigues E WhobreyIndiaAnna Fali NEW
Chavez L PaprockiAustraliaAnna Fali QUALIFIED
Smith U InouyeRussiaAsiya Javayant RENEWAL
Tony L WieserJapanXuxue Feng QUALIFIED
Izzy A DoeUnited KingdomAnna Fali 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>