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
Clifford S BologniaCanadaAmy Elsner PROPOSAL
Arvin U KolmetzRussiaElwin Sharvill NEGOTIATION
Juan P TollnerFranceOnyama Limba QUALIFIED
Antonio C CampainRussiaBernardo Dominic RENEWAL
Octavia D ChuiBrazilStephen Shaw RENEWAL
Cody M SergiBrazilOnyama Limba QUALIFIED
Mayumi A RoysterBrazilAmy Elsner RENEWAL
Jennifer S SchemmerBrazilIvan Magalhaes UNQUALIFIED
Wickens K MarrierJapanStephen Shaw UNQUALIFIED
Tony P FigeroaCanadaElwin Sharvill RENEWAL
Murillo W CampainIndiaAnna Fali RENEWAL
Mayumi U GlickFranceOnyama Limba UNQUALIFIED
Stacey O TollnerArgentinaAnna Fali PROPOSAL
Smith O OldroydUnited KingdomStephen Shaw RENEWAL
Kadeem N GlickGermanyIvan Magalhaes RENEWAL
Adams K OldroydRussiaIvan Magalhaes PROPOSAL
Greenwood T DarakjyAustraliaAsiya Javayant NEW
Izzy K GillianAustraliaXuxue Feng RENEWAL
Stacey U ChuiCanadaAnna Fali RENEWAL
Leja G RoysterRussiaXuxue Feng RENEWAL
Claire T MaletArgentinaOnyama Limba NEW
Jones O CampainCanadaElwin Sharvill PROPOSAL
Emily S VocelkaRussiaIvan Magalhaes NEW
Sinclair W StockhamFranceOnyama Limba UNQUALIFIED
Alejandro R OstroskyAustraliaIvan Magalhaes NEW
Izzy M GlickAustraliaOnyama Limba UNQUALIFIED
Stacey X SergiGermanyXuxue Feng QUALIFIED
Mayumi V CaldareraCanadaIoni Bowcher PROPOSAL
Isabel G WieserUnited KingdomStephen Shaw UNQUALIFIED
Kadeem N NickaCanadaBernardo Dominic NEGOTIATION
Chavez N StensethIndiaIoni Bowcher PROPOSAL
Wickens L SergiBrazilAmy Elsner RENEWAL
Adams J StensethIndiaXuxue Feng PROPOSAL
Maisha S SergiRussiaStephen Shaw UNQUALIFIED
Murillo U RutaSpainIoni Bowcher NEGOTIATION
Jones O KolmetzCanadaIoni Bowcher NEW
Silvio X GillianSpainXuxue Feng UNQUALIFIED
Smith H DarakjyBrazilIvan Magalhaes NEW
Jones Y GarufiCanadaIoni Bowcher NEGOTIATION
Kaitlin Y DoeCanadaStephen Shaw NEGOTIATION
Aika Y SchemmerCanadaXuxue Feng NEW
Smith K CaldareraAustraliaIvan Magalhaes QUALIFIED
Aruna Q WieserBrazilStephen Shaw RENEWAL
Stacey J GlickRussiaBernardo Dominic NEW
Juan O MaletSpainElwin Sharvill NEW
Johnson K MorascaItalyIvan Magalhaes UNQUALIFIED
Juan F WhobreyItalyAsiya Javayant NEW
Jefferson U FlosiIndiaXuxue Feng RENEWAL
Darci B StensethJapanOnyama Limba NEGOTIATION
Claire W FollerBrazilElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Julie I RoysterAustraliaAnna Fali RENEWAL
Salvatore W SergiItalyIvan Magalhaes NEW
Cody A WhobreyItalyXuxue Feng NEGOTIATION
Stacey K TollnerSpainAsiya Javayant UNQUALIFIED
Juan N WhobreyGermanyOnyama Limba RENEWAL
Jennifer Q MaletIndiaAmy Elsner NEGOTIATION
Smith D RimFranceAsiya Javayant NEGOTIATION
Isabel V MacleadJapanElwin Sharvill PROPOSAL
Sinclair N StensethItalyElwin Sharvill PROPOSAL
Ricardo J SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro V WieserUnited Kingdom2026-07-19Chapman, Ross E Esq NEGOTIATION83Asiya Javayant
1001Kaitlin U AlbaresCanada2026-07-26Rangoni Of Florence NEGOTIATION87Ivan Magalhaes
1002Jennifer W PoquetteIndia2026-07-24Truhlar And Truhlar Attys QUALIFIED90Asiya Javayant
1003Isabel G MorascaAustralia2026-07-29Benton, John B Jr UNQUALIFIED16Stephen Shaw
1004Deepesh N TollnerRussia2026-07-25Truhlar And Truhlar Attys RENEWAL20Stephen Shaw
1005Leja F DoeArgentina2026-07-18Dorl, James J Esq UNQUALIFIED61Amy Elsner
1006Chavez L PerinSpain2026-07-14Truhlar And Truhlar Attys PROPOSAL47Onyama Limba
1007Leon L StockhamGermany2026-07-29Chanay, Jeffrey A Esq PROPOSAL2Xuxue Feng
1008Silvio E PerinAustralia2026-07-29Rousseaux, Michael Esq PROPOSAL6Stephen Shaw
1009Isabel W MorascaItaly2026-07-12King, Christopher A Esq UNQUALIFIED91Onyama Limba
1010Mujtaba K WaycottFrance2026-07-30Chemel, James L Cpa PROPOSAL68Bernardo Dominic
1011Nicolas M RulapaughAustralia2026-07-19Feiner Bros QUALIFIED53Ioni Bowcher
1012Darci F FerenczCanada2026-08-03Chapman, Ross E Esq NEW61Bernardo Dominic
1013Claire P FollerGermany2026-07-28Rousseaux, Michael Esq RENEWAL50Elwin Sharvill
1014Clifford G SaylorsSpain2026-07-28Feiner Bros NEGOTIATION50Xuxue Feng
1015Jeanfrancois Y DarakjyUnited Kingdom2026-08-01Dorl, James J Esq NEW31Stephen Shaw
1016Aruna O DoeItaly2026-07-12Commercial Press NEGOTIATION56Onyama Limba
1017Aditya Y SchemmerArgentina2026-07-26King, Christopher A Esq NEW83Onyama Limba
1018Morrow H DarakjyRussia2026-07-14Chanay, Jeffrey A Esq NEW13Stephen Shaw
1019Murillo K FlosiIndia2026-07-28Rousseaux, Michael Esq NEGOTIATION57Asiya Javayant
1020Juan K OldroydGermany2026-07-26Chapman, Ross E Esq RENEWAL5Ivan Magalhaes
1021Emily X WaycottRussia2026-07-13Chemel, James L Cpa RENEWAL6Ivan Magalhaes
1022Ivar W MaletCanada2026-07-17Rousseaux, Michael Esq PROPOSAL37Ivan Magalhaes
1023Leon F NestleFrance2026-07-21Chanay, Jeffrey A Esq NEW31Ivan Magalhaes
1024Costa Z GillianFrance2026-07-19Chanay, Jeffrey A Esq NEGOTIATION42Anna Fali
1025Costa A NickaSpain2026-08-04Benton, John B Jr NEW41Stephen Shaw
1026Darci Q GillianGermany2026-07-12Buckley Miller Wright RENEWAL72Elwin Sharvill
1027Cody Z MaletArgentina2026-07-13Feiner Bros NEGOTIATION73Bernardo Dominic
1028Mayumi C DoeSpain2026-07-16Chapman, Ross E Esq NEGOTIATION6Amy Elsner
1029Arvin I RimUnited Kingdom2026-07-26Chanay, Jeffrey A Esq QUALIFIED1Asiya Javayant
1030Alejandro G MorascaGermany2026-07-11Morlong Associates RENEWAL92Ivan Magalhaes
1031Kaitlin J PaprockiCanada2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED54Bernardo Dominic
1032Johnson Y MacleadCanada2026-07-25Rangoni Of Florence NEW33Elwin Sharvill
1033Arvin Z DoeBrazil2026-08-05King, Christopher A Esq NEGOTIATION86Bernardo Dominic
1034Tony X BriddickJapan2026-07-17Chemel, James L Cpa NEGOTIATION1Ioni Bowcher
1035Silvio N MaletFrance2026-07-15Chemel, James L Cpa NEGOTIATION96Bernardo Dominic
1036Misaki Y SergiSpain2026-07-21Commercial Press NEGOTIATION26Ivan Magalhaes
1037Ashley K CampainJapan2026-07-17King, Christopher A Esq PROPOSAL33Xuxue Feng
1038Maisha T CaudyJapan2026-07-29Rousseaux, Michael Esq RENEWAL92Ivan Magalhaes
1039Cody N GarufiBrazil2026-07-18Chapman, Ross E Esq UNQUALIFIED91Elwin Sharvill
1040Jones B DarakjyItaly2026-07-28King, Christopher A Esq NEGOTIATION8Anna Fali
1041Kadeem W MacleadArgentina2026-07-11Truhlar And Truhlar Attys RENEWAL31Anna Fali
1042Maria P GarufiFrance2026-07-10Chapman, Ross E Esq RENEWAL48Onyama Limba
1043Clifford A ShinkoBrazil2026-07-14Chemel, James L Cpa PROPOSAL22Bernardo Dominic
1044Ivar R MaletCanada2026-07-26Chemel, James L Cpa QUALIFIED33Xuxue Feng
1045Salvatore J KolmetzArgentina2026-07-13Truhlar And Truhlar Attys QUALIFIED4Xuxue Feng
1046Kaitlin R OldroydIndia2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED65Ivan Magalhaes
1047Munro B FigeroaIndia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION17Xuxue Feng
1048Misaki K AlbaresIndia2026-07-27Benton, John B Jr NEGOTIATION80Anna Fali
1049Adams P ShinkoIndia2026-07-28Chemel, James L Cpa NEW8Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues J RutaIndiaIoni Bowcher RENEWAL
Juan Y AlbaresFranceOnyama Limba RENEWAL
Jones U GauchoFranceIoni Bowcher NEGOTIATION
Arvin K ShinkoFranceBernardo Dominic NEGOTIATION
David M PaprockiFranceAsiya Javayant NEW
Morrow Z NestleBrazilAsiya Javayant NEW
David M VocelkaArgentinaBernardo Dominic UNQUALIFIED
Chavez S MacleadRussiaIvan Magalhaes UNQUALIFIED
Jennifer M DoeCanadaElwin Sharvill PROPOSAL
David R GarufiItalyIvan Magalhaes RENEWAL
Salvatore M BriddickFranceIvan Magalhaes NEGOTIATION
Greenwood G FollerFranceXuxue Feng UNQUALIFIED
Ivar J MorascaUnited KingdomIoni Bowcher PROPOSAL
Costa E OldroydArgentinaIvan Magalhaes NEW
Maisha G VocelkaCanadaAnna Fali RENEWAL
Juan R ChuiGermanyAsiya Javayant RENEWAL
Sinclair U MorascaItalyOnyama Limba RENEWAL
Kaitlin W NestleUnited KingdomElwin Sharvill NEGOTIATION
Nicolas N BriddickJapanAnna Fali NEW
Smith Z MaletJapanOnyama Limba QUALIFIED
Jeanfrancois X PerinFranceXuxue Feng NEW
Aika Z StensethRussiaStephen Shaw UNQUALIFIED
Alejandro E FollerArgentinaElwin Sharvill NEGOTIATION
Deepesh M RoysterIndiaElwin Sharvill RENEWAL
Izzy H SchemmerArgentinaAnna Fali NEGOTIATION
Arvin F WhobreyItalyAmy Elsner PROPOSAL
Jefferson E DarakjyArgentinaIoni Bowcher PROPOSAL
Morrow W IturbideItalyElwin Sharvill NEGOTIATION
Faith U KuskoRussiaAnna Fali PROPOSAL
Greenwood O BowleyJapanStephen Shaw QUALIFIED
Smith Q FigeroaItalyOnyama Limba RENEWAL
Arvin U KolmetzAustraliaElwin Sharvill UNQUALIFIED
Kaitlin E SaylorsFranceXuxue Feng RENEWAL
Aika D GarufiCanadaOnyama Limba NEW
Wickens M RutaRussiaStephen Shaw RENEWAL
Isabel W WhobreyJapanElwin Sharvill RENEWAL
Arvin U GarufiBrazilBernardo Dominic UNQUALIFIED
Ricardo L CaudyItalyIoni Bowcher NEW
Jefferson C InouyeUnited KingdomAmy Elsner RENEWAL
Juan B CaldareraAustraliaStephen Shaw NEW
Jennifer A MaletRussiaXuxue Feng PROPOSAL
Wickens G AmigonArgentinaBernardo Dominic RENEWAL
Aditya O ShinkoCanadaAnna Fali PROPOSAL
Claire R MaletArgentinaXuxue Feng PROPOSAL
Sinclair O SaylorsGermanyBernardo Dominic NEGOTIATION
Julie N ButtItalyAnna Fali RENEWAL
Costa N FigeroaArgentinaAsiya Javayant PROPOSAL
Alejandro M VenereAustraliaAmy Elsner RENEWAL
Salvatore I FollerBrazilStephen Shaw NEGOTIATION
Tony S CaldareraCanadaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Maria S Gillian
Aditya R Saylors
Morrow I Shinko
Leja N Waycott
Mayumi T Schemmer
Isabel J Butt
Arvin I Whobrey
Antonio G Butt
Isabel I Marrier
Leja O Inouye
Morrow X Vocelka
Leja K Bowley
Mujtaba P Iturbide
Ricardo M Sergi
Faith Y Iturbide
Leja A Oldroyd
Darci B Garufi
Ivar Z Caldarera
Aika C Doe
Stacey A Bolognia
Aika Z Doe
Mayumi V Ruta
Chavez D Flosi
Kaitlin F Poquette
Aditya C Poquette
Murillo W Garufi
Tony E Amigon
Julie I Gillian
Emily D Figeroa
Aditya D Darakjy
Aika O Malet
Ricardo E Oldroyd
Tony F Gillian
Ashley J Campain
Costa I Morasca
Costa M Stockham
Darci W Rim
Faith P Kolmetz
Aditya G Venere
Ricardo F Bowley
Munro D Bolognia
Greenwood C Flosi
Maisha G Bowley
Octavia L Chui
Greenwood G Oldroyd
Silvio V Tollner
Tony Q Campain
Cody T Shinko
Munro H Campain
Tony F Bolognia
IdCountryDate
1000Canada2026-08-01
1001Spain2026-07-24
1002Germany2026-07-21
1003Germany2026-07-27
1004Russia2026-07-08
1005Brazil2026-07-27
1006Germany2026-08-01
1007Brazil2026-08-01
1008Japan2026-08-06
1009United Kingdom2026-07-14
1010Germany2026-08-06
1011Argentina2026-08-05
1012Australia2026-07-26
1013India2026-07-24
1014Australia2026-07-12
1015Australia2026-07-31
1016Spain2026-07-27
1017France2026-07-29
1018Germany2026-07-13
1019United Kingdom2026-07-20
1020Japan2026-07-27
1021United Kingdom2026-07-22
1022Spain2026-07-30
1023Spain2026-08-01
1024Russia2026-07-29
1025Russia2026-07-16
1026Japan2026-07-31
1027Argentina2026-07-17
1028France2026-07-08
1029Canada2026-07-17
1030Spain2026-08-03
1031Japan2026-08-01
1032Russia2026-07-09
1033Canada2026-07-18
1034Italy2026-07-10
1035France2026-07-19
1036United Kingdom2026-08-06
1037India2026-07-23
1038India2026-07-19
1039Brazil2026-07-12
1040Spain2026-07-31
1041Germany2026-07-25
1042Russia2026-08-02
1043Russia2026-07-30
1044France2026-08-01
1045Germany2026-07-27
1046Brazil2026-07-15
1047Argentina2026-07-28
1048France2026-08-02
1049Brazil2026-08-02

On-Demand Data

NameIdCountryDate
Aditya H Briddick1000United Kingdom2026-07-30
Mujtaba X Whobrey1001Japan2026-07-27
Francesco C Briddick1002Russia2026-07-20
Jefferson K Glick1003India2026-08-04
Leon P Garufi1004Brazil2026-07-26
Jones I Saylors1005Argentina2026-07-15
Claire B Maclead1006Argentina2026-07-29
Wickens O Figeroa1007Japan2026-07-29
Misaki I Caldarera1008Germany2026-07-26
Stacey Z Waycott1009Canada2026-07-23
Deepesh Y Ruta1010Canada2026-07-19
Misaki P Rim1011India2026-07-25
Rodrigues A Maclead1012Australia2026-07-14
Smith I Waycott1013India2026-07-09
Leon W Dilliard1014Argentina2026-07-26
Antonio F Ruta1015Brazil2026-07-20
Silvio P Malet1016Brazil2026-08-02
Ashley L Schemmer1017Germany2026-08-03
Leja S Rulapaugh1018Italy2026-07-28
Jeanfrancois W Marrier1019Japan2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson D FigeroaUnited KingdomElwin Sharvill QUALIFIED
Jefferson I DoeGermanyIvan Magalhaes QUALIFIED
Clifford D ShinkoRussiaStephen Shaw NEW
Alejandro M MarrierUnited KingdomXuxue Feng RENEWAL
Murillo N CaldareraIndiaOnyama Limba PROPOSAL
Smith Y ShinkoArgentinaAsiya Javayant NEW
Morrow N StockhamIndiaAsiya Javayant UNQUALIFIED
Emily M WaycottCanadaStephen Shaw QUALIFIED
Claire H OldroydArgentinaBernardo Dominic NEW
Kadeem V NestleArgentinaOnyama Limba NEGOTIATION
Kaitlin K RutaRussiaOnyama Limba RENEWAL
Rodrigues O RulapaughCanadaAnna Fali NEW
Salvatore U FlosiGermanyOnyama Limba UNQUALIFIED
David W ButtAustraliaIvan Magalhaes PROPOSAL
Deepesh N FigeroaCanadaIvan Magalhaes NEW
Jefferson A SchemmerAustraliaIvan Magalhaes RENEWAL
Kadeem P KolmetzSpainBernardo Dominic NEGOTIATION
James U AmigonRussiaAnna Fali NEGOTIATION
Maisha W StockhamJapanIoni Bowcher UNQUALIFIED
Claire T GarufiUnited KingdomOnyama Limba RENEWAL
Greenwood S CaldareraRussiaAnna Fali QUALIFIED
Clifford Q RoysterUnited KingdomStephen Shaw RENEWAL
Leon O WhobreyUnited KingdomBernardo Dominic NEGOTIATION
Silvio B MorascaUnited KingdomIvan Magalhaes RENEWAL
Misaki X NickaIndiaXuxue Feng PROPOSAL
Salvatore V ChuiArgentinaAmy Elsner RENEWAL
Kadeem D PerinArgentinaAmy Elsner NEGOTIATION
Clifford I OstroskyArgentinaIoni Bowcher NEGOTIATION
Antonio K CaudyCanadaStephen Shaw UNQUALIFIED
Mayumi V FigeroaIndiaAnna Fali NEGOTIATION
Antonio K CaldareraItalyAmy Elsner RENEWAL
Maria U PoquetteSpainXuxue Feng NEW
Julie M KolmetzGermanyBernardo Dominic QUALIFIED
Tony O SaylorsJapanXuxue Feng QUALIFIED
Leja B RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Costa G AlbaresGermanyBernardo Dominic QUALIFIED
Maria X WieserSpainElwin Sharvill NEW
Leja K FlosiBrazilAnna Fali RENEWAL
Darci X KuskoBrazilElwin Sharvill NEW
Ricardo F VenereArgentinaAsiya Javayant QUALIFIED

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