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
Wickens L MaletAustraliaOnyama Limba UNQUALIFIED
Claire M CaldareraSpainXuxue Feng RENEWAL
Arvin E MacleadBrazilAsiya Javayant RENEWAL
Aika G IturbideBrazilAnna Fali NEGOTIATION
Francesco I ButtRussiaAsiya Javayant NEGOTIATION
Claire H CaudyRussiaOnyama Limba NEGOTIATION
David T ButtCanadaXuxue Feng NEGOTIATION
Johnson W PaprockiSpainAsiya Javayant UNQUALIFIED
Juan J KuskoRussiaXuxue Feng PROPOSAL
Salvatore M FerenczRussiaAnna Fali PROPOSAL
Octavia J AmigonRussiaXuxue Feng PROPOSAL
Claire B VocelkaCanadaXuxue Feng NEGOTIATION
Silvio R VocelkaJapanAnna Fali RENEWAL
Kaitlin X ShinkoBrazilAnna Fali UNQUALIFIED
Deepesh A DilliardFranceXuxue Feng PROPOSAL
Sinclair P GauchoBrazilBernardo Dominic NEW
Faith T VocelkaFranceAsiya Javayant QUALIFIED
Sinclair L RulapaughAustraliaBernardo Dominic PROPOSAL
Chavez M PerinItalyIoni Bowcher UNQUALIFIED
Tony Y FollerUnited KingdomXuxue Feng NEGOTIATION
Octavia D RutaGermanyBernardo Dominic NEW
Ricardo Y GarufiIndiaXuxue Feng UNQUALIFIED
Jefferson F SergiFranceAmy Elsner PROPOSAL
Cody I BriddickIndiaBernardo Dominic UNQUALIFIED
Mujtaba J DilliardItalyXuxue Feng QUALIFIED
Aditya A MaletGermanyAmy Elsner RENEWAL
Jennifer C KolmetzItalyStephen Shaw NEGOTIATION
Morrow O CaudyJapanXuxue Feng UNQUALIFIED
Murillo L RutaUnited KingdomIoni Bowcher NEW
Costa I GlickArgentinaAsiya Javayant NEW
Munro F ButtArgentinaAmy Elsner NEW
Aditya D WaycottCanadaAnna Fali NEW
Mayumi I SaylorsFranceIvan Magalhaes PROPOSAL
Isabel S TollnerFranceIvan Magalhaes NEGOTIATION
Stacey N MacleadSpainIvan Magalhaes NEW
Ashley J KuskoUnited KingdomAnna Fali NEGOTIATION
Munro A RutaUnited KingdomBernardo Dominic NEW
Ricardo R PerinBrazilBernardo Dominic NEW
Antonio A OstroskySpainElwin Sharvill QUALIFIED
Wickens V FollerJapanAsiya Javayant NEW
Smith P SchemmerIndiaAnna Fali RENEWAL
James C TollnerUnited KingdomOnyama Limba NEGOTIATION
Morrow L MorascaFranceAnna Fali NEGOTIATION
Nicolas V BologniaCanadaElwin Sharvill QUALIFIED
Jefferson W MorascaCanadaElwin Sharvill QUALIFIED
Munro I OldroydItalyIvan Magalhaes NEW
Wickens E WhobreyItalyXuxue Feng UNQUALIFIED
Smith U SaylorsFranceIvan Magalhaes QUALIFIED
Arvin S MacleadFranceXuxue Feng RENEWAL
Adams M WaycottItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba V PerinJapanBernardo Dominic NEW
Emily G RimArgentinaOnyama Limba NEW
Tony D BologniaBrazilBernardo Dominic NEGOTIATION
Johnson Y BowleyItalyXuxue Feng QUALIFIED
Morrow R TollnerGermanyBernardo Dominic QUALIFIED
Juan U StockhamBrazilAmy Elsner PROPOSAL
Octavia U StockhamUnited KingdomXuxue Feng RENEWAL
Mayumi N InouyeAustraliaElwin Sharvill UNQUALIFIED
Antonio W PaprockiIndiaStephen Shaw NEGOTIATION
Chavez S AmigonGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro X DoeSpain2026-07-18Feiner Bros UNQUALIFIED23Amy Elsner
1001Leja O BriddickUnited Kingdom2026-07-17King, Christopher A Esq UNQUALIFIED45Ivan Magalhaes
1002Leja J NestleGermany2026-07-20Morlong Associates RENEWAL49Ioni Bowcher
1003David L FigeroaCanada2026-07-24Chapman, Ross E Esq PROPOSAL11Xuxue Feng
1004Nicolas I StensethSpain2026-07-25King, Christopher A Esq NEGOTIATION19Ioni Bowcher
1005Clifford H VenereRussia2026-07-21Truhlar And Truhlar Attys RENEWAL71Bernardo Dominic
1006Faith R StensethIndia2026-07-22Feiner Bros NEGOTIATION4Bernardo Dominic
1007Ashley L BriddickBrazil2026-08-06Rousseaux, Michael Esq QUALIFIED56Bernardo Dominic
1008Sinclair F FollerJapan2026-08-03King, Christopher A Esq NEGOTIATION2Ivan Magalhaes
1009Jennifer T DoeAustralia2026-08-06Chemel, James L Cpa QUALIFIED48Ioni Bowcher
1010Maria K StockhamAustralia2026-07-20Morlong Associates QUALIFIED60Asiya Javayant
1011Cody T BriddickJapan2026-07-28Chemel, James L Cpa UNQUALIFIED24Elwin Sharvill
1012Clifford L InouyeFrance2026-07-17Truhlar And Truhlar Attys PROPOSAL99Stephen Shaw
1013Arvin T GillianBrazil2026-07-20Chapman, Ross E Esq NEGOTIATION47Ivan Magalhaes
1014Adams Z RutaBrazil2026-07-20Chapman, Ross E Esq RENEWAL83Onyama Limba
1015Juan M ShinkoCanada2026-07-18Dorl, James J Esq NEW52Bernardo Dominic
1016David J KuskoIndia2026-07-27Benton, John B Jr RENEWAL25Onyama Limba
1017Arvin V PaprockiFrance2026-07-28Feltz Printing Service UNQUALIFIED19Stephen Shaw
1018Johnson T CampainJapan2026-07-11Chanay, Jeffrey A Esq QUALIFIED7Xuxue Feng
1019Jones M TollnerIndia2026-07-18Commercial Press NEW85Xuxue Feng
1020Johnson R VenereIndia2026-07-14Chapman, Ross E Esq UNQUALIFIED12Ivan Magalhaes
1021Mayumi X DarakjyArgentina2026-07-19Commercial Press RENEWAL2Bernardo Dominic
1022Maria W BologniaFrance2026-07-09Chapman, Ross E Esq NEGOTIATION79Amy Elsner
1023Darci I WaycottIndia2026-07-28Printing Dimensions NEW7Asiya Javayant
1024Salvatore Q WieserAustralia2026-07-26Benton, John B Jr UNQUALIFIED93Onyama Limba
1025Aika H SergiArgentina2026-07-19Chemel, James L Cpa NEGOTIATION64Elwin Sharvill
1026Emily X RoysterGermany2026-07-12Chemel, James L Cpa RENEWAL61Elwin Sharvill
1027Misaki A DoeRussia2026-07-19King, Christopher A Esq UNQUALIFIED64Ivan Magalhaes
1028Greenwood J SergiItaly2026-07-26Chemel, James L Cpa QUALIFIED29Elwin Sharvill
1029Murillo N MorascaArgentina2026-07-16Buckley Miller Wright RENEWAL16Stephen Shaw
1030Jones P OstroskyCanada2026-07-09King, Christopher A Esq NEW25Ivan Magalhaes
1031Mayumi T CaldareraGermany2026-07-18Feltz Printing Service NEW43Stephen Shaw
1032Claire P RutaAustralia2026-07-31Rousseaux, Michael Esq NEGOTIATION37Anna Fali
1033Arvin I KuskoAustralia2026-07-23Benton, John B Jr PROPOSAL55Ioni Bowcher
1034Kaitlin Q DilliardAustralia2026-08-01Benton, John B Jr NEGOTIATION84Ivan Magalhaes
1035Jefferson U SergiUnited Kingdom2026-07-30Benton, John B Jr NEW0Elwin Sharvill
1036Mujtaba A WhobreyGermany2026-07-16Chanay, Jeffrey A Esq NEGOTIATION20Ivan Magalhaes
1037Francesco O OstroskyIndia2026-07-27Chemel, James L Cpa NEW81Stephen Shaw
1038Adams R VenereFrance2026-07-27King, Christopher A Esq NEW45Ioni Bowcher
1039Francesco A SergiFrance2026-07-20Chemel, James L Cpa PROPOSAL66Onyama Limba
1040Deepesh L GillianIndia2026-07-29Dorl, James J Esq RENEWAL16Ivan Magalhaes
1041Tony C StockhamCanada2026-07-12King, Christopher A Esq RENEWAL76Elwin Sharvill
1042Aika C FlosiSpain2026-07-21Buckley Miller Wright QUALIFIED28Onyama Limba
1043Chavez Y RutaFrance2026-07-20Feiner Bros NEW3Onyama Limba
1044Julie S AmigonFrance2026-07-15Chapman, Ross E Esq UNQUALIFIED79Elwin Sharvill
1045Arvin T OstroskyRussia2026-08-04Truhlar And Truhlar Attys QUALIFIED13Stephen Shaw
1046Jefferson T IturbideSpain2026-07-13Rousseaux, Michael Esq PROPOSAL35Bernardo Dominic
1047Sinclair X MorascaFrance2026-07-10Rousseaux, Michael Esq NEGOTIATION27Asiya Javayant
1048Leon O FerenczGermany2026-07-15King, Christopher A Esq NEGOTIATION36Asiya Javayant
1049Ashley H BriddickBrazil2026-08-06King, Christopher A Esq UNQUALIFIED18Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer G VocelkaItalyIoni Bowcher QUALIFIED
Kadeem A FlosiCanadaAmy Elsner NEGOTIATION
Clifford C VocelkaBrazilIvan Magalhaes QUALIFIED
Stacey U PoquetteSpainXuxue Feng PROPOSAL
Costa W DoeIndiaAnna Fali NEGOTIATION
Jefferson E BriddickGermanyAmy Elsner PROPOSAL
Cody W BowleyRussiaAnna Fali NEGOTIATION
Kaitlin A CampainIndiaOnyama Limba NEGOTIATION
Ivar M DilliardCanadaBernardo Dominic RENEWAL
Ricardo B InouyeGermanyStephen Shaw UNQUALIFIED
Johnson F NestleGermanyStephen Shaw NEGOTIATION
Murillo L NickaFranceIvan Magalhaes UNQUALIFIED
Johnson O IturbideJapanElwin Sharvill UNQUALIFIED
Isabel W AmigonUnited KingdomIvan Magalhaes PROPOSAL
Francesco Z MacleadRussiaAnna Fali QUALIFIED
Octavia T NestleAustraliaAnna Fali NEW
Jennifer N GillianItalyIvan Magalhaes NEGOTIATION
Greenwood K MaletJapanIoni Bowcher NEGOTIATION
David C PerinItalyStephen Shaw PROPOSAL
Maisha H FigeroaArgentinaStephen Shaw NEW
Maria X SergiUnited KingdomAsiya Javayant UNQUALIFIED
Faith K MarrierFranceIoni Bowcher UNQUALIFIED
Emily G FollerBrazilBernardo Dominic NEGOTIATION
Morrow N GauchoJapanStephen Shaw RENEWAL
Salvatore T FollerIndiaAnna Fali NEGOTIATION
Aika M StensethAustraliaXuxue Feng RENEWAL
James A StensethUnited KingdomElwin Sharvill NEGOTIATION
Izzy Y PaprockiBrazilAmy Elsner UNQUALIFIED
Mayumi X DilliardArgentinaAsiya Javayant UNQUALIFIED
Aruna H MaletBrazilBernardo Dominic UNQUALIFIED
James X SergiBrazilAsiya Javayant PROPOSAL
Silvio X OstroskyBrazilIoni Bowcher QUALIFIED
Ashley L KolmetzCanadaXuxue Feng RENEWAL
Aruna G PoquetteFranceAmy Elsner PROPOSAL
Mujtaba J ButtFranceElwin Sharvill QUALIFIED
Jeanfrancois C CaudyArgentinaOnyama Limba RENEWAL
Alejandro M CaldareraAustraliaStephen Shaw NEW
Aditya F SlusarskiBrazilIoni Bowcher NEGOTIATION
Adams J TollnerArgentinaOnyama Limba UNQUALIFIED
Aditya L CampainFranceElwin Sharvill RENEWAL
Izzy W PaprockiItalyBernardo Dominic NEGOTIATION
Ricardo J MorascaIndiaAsiya Javayant NEGOTIATION
Claire H InouyeItalyElwin Sharvill RENEWAL
Mujtaba B CampainBrazilOnyama Limba NEGOTIATION
Aditya V SaylorsSpainBernardo Dominic RENEWAL
Cody S WieserCanadaAnna Fali QUALIFIED
Greenwood W StensethArgentinaIoni Bowcher QUALIFIED
Maisha T CampainBrazilOnyama Limba QUALIFIED
Stacey W VenereUnited KingdomOnyama Limba NEW
Octavia Z SaylorsFranceAmy Elsner QUALIFIED
Frozen Columns
Name
Costa U Oldroyd
Juan V Caudy
Greenwood S Stenseth
Rodrigues A Malet
Jeanfrancois A Caudy
Smith L Briddick
Leon J Marrier
Mujtaba C Chui
Smith T Garufi
Misaki G Glick
Isabel R Gillian
Johnson U Slusarski
Stacey O Tollner
Kaitlin S Schemmer
Wickens A Gillian
Silvio M Morasca
Chavez Z Nestle
Aruna L Flosi
Mujtaba F Caudy
Alejandro U Ruta
Costa B Chui
Greenwood D Whobrey
Kaitlin W Paprocki
Kaitlin C Paprocki
Mujtaba V Poquette
Adams X Malet
Stacey M Caudy
Maisha F Butt
Costa A Garufi
James M Malet
Alejandro J Briddick
Juan L Ruta
Jefferson R Campain
Kadeem M Campain
Ricardo H Ostrosky
Arvin G Glick
Chavez J Maclead
Julie T Wieser
Cody H Glick
Jeanfrancois M Nicka
Misaki G Dilliard
Greenwood C Campain
Silvio A Foller
Ricardo O Darakjy
Ashley R Sergi
Francesco C Malet
Kadeem N Slusarski
Jeanfrancois U Briddick
Cody H Iturbide
Johnson C Paprocki
IdCountryDate
1000Brazil2026-08-05
1001Australia2026-07-29
1002Brazil2026-07-18
1003Germany2026-07-28
1004France2026-08-05
1005India2026-07-25
1006Japan2026-07-30
1007France2026-07-16
1008Australia2026-07-21
1009United Kingdom2026-07-31
1010Russia2026-08-04
1011Brazil2026-07-11
1012Russia2026-07-09
1013Japan2026-07-27
1014Argentina2026-07-29
1015Argentina2026-08-07
1016Argentina2026-07-19
1017United Kingdom2026-07-26
1018India2026-07-26
1019Italy2026-07-30
1020Spain2026-08-03
1021Russia2026-07-31
1022France2026-07-30
1023United Kingdom2026-07-21
1024France2026-07-20
1025Japan2026-07-28
1026Russia2026-07-31
1027Brazil2026-07-28
1028Italy2026-07-14
1029United Kingdom2026-07-28
1030India2026-08-03
1031Russia2026-07-17
1032Spain2026-07-18
1033Japan2026-07-13
1034United Kingdom2026-07-18
1035France2026-07-27
1036Spain2026-07-12
1037Russia2026-07-30
1038Spain2026-07-13
1039India2026-07-25
1040Italy2026-07-09
1041Argentina2026-07-22
1042United Kingdom2026-07-29
1043Argentina2026-08-02
1044Australia2026-08-01
1045Spain2026-07-23
1046Australia2026-07-09
1047Russia2026-07-09
1048Argentina2026-08-06
1049France2026-07-28

On-Demand Data

NameIdCountryDate
David U Caudy1000Russia2026-07-10
Salvatore R Inouye1001Spain2026-07-17
Octavia C Foller1002Japan2026-08-04
Aika T Royster1003Brazil2026-08-02
Maisha I Rulapaugh1004Germany2026-07-18
Antonio U Garufi1005Australia2026-07-14
Aika Q Flosi1006France2026-07-17
Maisha T Slusarski1007Canada2026-08-05
Greenwood D Caldarera1008Germany2026-08-01
Munro T Dilliard1009Brazil2026-08-05
Silvio D Stockham1010United Kingdom2026-07-26
Morrow I Gaucho1011Italy2026-08-07
Murillo W Bolognia1012Germany2026-07-28
Mujtaba A Saylors1013United Kingdom2026-07-16
Maisha D Briddick1014Russia2026-07-20
Chavez F Whobrey1015United Kingdom2026-07-18
Aditya B Figeroa1016Australia2026-08-04
Izzy U Ruta1017Spain2026-07-31
Munro K Garufi1018Australia2026-07-25
Izzy M Shinko1019France2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh J GlickSpainElwin Sharvill UNQUALIFIED
Greenwood G StockhamUnited KingdomAnna Fali NEGOTIATION
Salvatore L OldroydGermanyStephen Shaw NEGOTIATION
Aika V NestleAustraliaStephen Shaw QUALIFIED
Tony K DilliardItalyAsiya Javayant QUALIFIED
Wickens P NestleFranceOnyama Limba PROPOSAL
Maisha Y GillianBrazilXuxue Feng QUALIFIED
Aika X InouyeRussiaOnyama Limba UNQUALIFIED
Mujtaba E GlickGermanyAmy Elsner PROPOSAL
Aditya L FlosiCanadaAsiya Javayant RENEWAL
Rodrigues Y InouyeSpainOnyama Limba NEGOTIATION
Juan I ButtIndiaAnna Fali QUALIFIED
Izzy P SaylorsGermanyAsiya Javayant PROPOSAL
Costa W VocelkaSpainXuxue Feng PROPOSAL
Johnson D MarrierArgentinaAnna Fali UNQUALIFIED
Salvatore T PerinArgentinaIvan Magalhaes RENEWAL
Antonio X MaletJapanAsiya Javayant NEGOTIATION
Costa Y AlbaresSpainBernardo Dominic PROPOSAL
Stacey T OstroskyAustraliaAmy Elsner PROPOSAL
Cody D SchemmerJapanIvan Magalhaes NEW
Rodrigues V GillianGermanyIvan Magalhaes RENEWAL
Ivar R RimGermanyIoni Bowcher NEW
Darci A AmigonArgentinaAnna Fali RENEWAL
Juan A WaycottSpainElwin Sharvill NEW
Aditya V ButtJapanStephen Shaw NEW
Leon X InouyeArgentinaXuxue Feng NEW
Sinclair Y WhobreyItalyStephen Shaw PROPOSAL
Emily S PaprockiCanadaAsiya Javayant NEW
Murillo R WaycottUnited KingdomIvan Magalhaes QUALIFIED
Arvin B MaletSpainXuxue Feng NEGOTIATION
Kadeem W ButtItalyOnyama Limba NEW
Claire D StensethArgentinaIvan Magalhaes QUALIFIED
Emily B MacleadBrazilStephen Shaw NEW
Clifford P InouyeJapanIoni Bowcher RENEWAL
Adams M CaldareraGermanyAmy Elsner RENEWAL
Chavez U OstroskyCanadaAmy Elsner UNQUALIFIED
Chavez E DoeCanadaAnna Fali RENEWAL
Cody M AmigonJapanXuxue Feng UNQUALIFIED
Jefferson F SlusarskiUnited KingdomIoni Bowcher RENEWAL
Rodrigues Q MaletSpainXuxue Feng PROPOSAL

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