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
Ricardo Y SaylorsUnited KingdomXuxue Feng QUALIFIED
Isabel R PerinBrazilBernardo Dominic UNQUALIFIED
Clifford W ShinkoBrazilStephen Shaw NEW
Murillo H GillianBrazilAnna Fali NEW
Julie R MaletUnited KingdomAmy Elsner PROPOSAL
Jones C ShinkoGermanyAsiya Javayant PROPOSAL
Leon W CampainSpainIoni Bowcher QUALIFIED
Maria A FigeroaItalyElwin Sharvill PROPOSAL
Adams G PoquetteGermanyStephen Shaw QUALIFIED
Johnson M BriddickCanadaBernardo Dominic PROPOSAL
Alejandro R KolmetzItalyIoni Bowcher NEGOTIATION
Julie N RutaBrazilIvan Magalhaes NEW
Costa E ShinkoAustraliaIoni Bowcher RENEWAL
Salvatore M GarufiItalyBernardo Dominic UNQUALIFIED
Julie U MaletSpainIvan Magalhaes NEGOTIATION
Maria P WaycottJapanIvan Magalhaes NEW
Ricardo L SergiFranceIoni Bowcher NEGOTIATION
Ricardo J SlusarskiSpainOnyama Limba NEGOTIATION
Jones F DoeSpainElwin Sharvill NEW
Jones R KolmetzGermanyXuxue Feng PROPOSAL
Antonio E DarakjyJapanXuxue Feng NEGOTIATION
Alejandro C SchemmerGermanyOnyama Limba PROPOSAL
David R BologniaGermanyAmy Elsner NEW
Ivar N CaldareraArgentinaBernardo Dominic UNQUALIFIED
Ashley S RulapaughItalyIvan Magalhaes PROPOSAL
Kadeem M CaudyBrazilBernardo Dominic PROPOSAL
Adams F SergiGermanyBernardo Dominic UNQUALIFIED
Juan B RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Julie Y DarakjyArgentinaAnna Fali PROPOSAL
Izzy H FigeroaRussiaStephen Shaw UNQUALIFIED
Julie R SergiJapanAnna Fali NEGOTIATION
Kadeem P BowleyCanadaAnna Fali RENEWAL
Leon Z OstroskyAustraliaIvan Magalhaes QUALIFIED
James F ButtCanadaBernardo Dominic UNQUALIFIED
Ashley T GauchoSpainAmy Elsner RENEWAL
Cody E IturbideCanadaAsiya Javayant UNQUALIFIED
Emily D StensethBrazilElwin Sharvill RENEWAL
Julie X ButtGermanyOnyama Limba PROPOSAL
Morrow H WhobreyGermanyOnyama Limba UNQUALIFIED
Ashley U NickaRussiaAnna Fali NEGOTIATION
Greenwood R FerenczUnited KingdomStephen Shaw NEW
Murillo G RulapaughJapanAmy Elsner PROPOSAL
Ivar H NickaUnited KingdomAnna Fali NEGOTIATION
Aika B GauchoArgentinaAsiya Javayant QUALIFIED
Claire P SchemmerGermanyAmy Elsner NEGOTIATION
Aditya J CampainBrazilBernardo Dominic PROPOSAL
Aruna S CaldareraJapanBernardo Dominic PROPOSAL
Juan F VenereUnited KingdomStephen Shaw PROPOSAL
Ivar A StockhamItalyOnyama Limba NEGOTIATION
Stacey G GlickAustraliaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Salvatore P OstroskyJapanElwin Sharvill RENEWAL
Greenwood I MaletJapanStephen Shaw NEGOTIATION
Mayumi Q DoeIndiaAnna Fali NEW
Antonio S SchemmerGermanyOnyama Limba NEGOTIATION
Sinclair O GarufiRussiaStephen Shaw QUALIFIED
Octavia R MacleadRussiaBernardo Dominic QUALIFIED
Deepesh P CaldareraRussiaAnna Fali UNQUALIFIED
Wickens P RulapaughGermanyStephen Shaw NEGOTIATION
Emily U WieserCanadaStephen Shaw NEW
Morrow Q PaprockiBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria N MorascaSpain2026-08-19Chanay, Jeffrey A Esq QUALIFIED2Xuxue Feng
1001Costa S DoeRussia2026-08-10Chanay, Jeffrey A Esq QUALIFIED32Bernardo Dominic
1002Kadeem Z DilliardAustralia2026-07-27Truhlar And Truhlar Attys UNQUALIFIED91Ioni Bowcher
1003Ricardo F SergiFrance2026-08-12Chapman, Ross E Esq PROPOSAL37Anna Fali
1004Costa Y GillianUnited Kingdom2026-08-07Buckley Miller Wright QUALIFIED43Xuxue Feng
1005Aruna B FollerSpain2026-08-10Commercial Press NEGOTIATION20Stephen Shaw
1006Tony U DarakjySpain2026-08-18Buckley Miller Wright UNQUALIFIED92Ivan Magalhaes
1007Ivar I GauchoItaly2026-08-23Chapman, Ross E Esq PROPOSAL2Ioni Bowcher
1008Murillo C WaycottItaly2026-08-15Truhlar And Truhlar Attys QUALIFIED44Elwin Sharvill
1009Clifford O SergiCanada2026-08-11Rousseaux, Michael Esq PROPOSAL82Amy Elsner
1010Smith L InouyeSpain2026-08-04Rousseaux, Michael Esq NEW96Anna Fali
1011Ricardo B DoeUnited Kingdom2026-08-11Dorl, James J Esq UNQUALIFIED27Elwin Sharvill
1012David U MaletSpain2026-08-14Dorl, James J Esq QUALIFIED73Anna Fali
1013Faith A FlosiUnited Kingdom2026-08-08Chapman, Ross E Esq NEGOTIATION15Bernardo Dominic
1014Jefferson I InouyeFrance2026-07-26Rousseaux, Michael Esq NEW18Bernardo Dominic
1015Sinclair T MaletArgentina2026-08-06Buckley Miller Wright PROPOSAL83Onyama Limba
1016Aditya P CaldareraJapan2026-08-23Printing Dimensions NEGOTIATION53Bernardo Dominic
1017Greenwood U MaletArgentina2026-08-10Rousseaux, Michael Esq NEGOTIATION28Elwin Sharvill
1018Aruna Y VocelkaSpain2026-07-30Chanay, Jeffrey A Esq QUALIFIED7Asiya Javayant
1019Nicolas D OstroskySpain2026-08-06Chemel, James L Cpa QUALIFIED24Asiya Javayant
1020Emily J RutaBrazil2026-08-21Rangoni Of Florence PROPOSAL4Amy Elsner
1021Smith N FerenczRussia2026-07-26Benton, John B Jr UNQUALIFIED55Ioni Bowcher
1022Clifford I SlusarskiJapan2026-08-06Benton, John B Jr RENEWAL94Stephen Shaw
1023Mujtaba S SergiItaly2026-07-28Chapman, Ross E Esq PROPOSAL87Elwin Sharvill
1024Isabel S NickaGermany2026-08-13Rangoni Of Florence UNQUALIFIED71Asiya Javayant
1025Salvatore Z MaletGermany2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED13Onyama Limba
1026Maria C OldroydFrance2026-08-07Morlong Associates UNQUALIFIED83Stephen Shaw
1027Silvio L MorascaAustralia2026-08-12Benton, John B Jr UNQUALIFIED43Bernardo Dominic
1028Emily I MaletSpain2026-08-16Buckley Miller Wright QUALIFIED5Amy Elsner
1029Smith Z PerinFrance2026-08-16Printing Dimensions QUALIFIED97Bernardo Dominic
1030Isabel D CampainCanada2026-08-09Dorl, James J Esq NEGOTIATION96Xuxue Feng
1031Rodrigues I TollnerJapan2026-07-28Truhlar And Truhlar Attys QUALIFIED92Ivan Magalhaes
1032Costa P OstroskyJapan2026-08-18Rangoni Of Florence RENEWAL21Amy Elsner
1033Salvatore Z RoysterUnited Kingdom2026-08-13Chemel, James L Cpa RENEWAL22Anna Fali
1034David I WaycottBrazil2026-08-12Truhlar And Truhlar Attys NEW43Ioni Bowcher
1035Aika U WhobreySpain2026-08-23Dorl, James J Esq RENEWAL53Asiya Javayant
1036Ricardo X MaletGermany2026-08-10Chanay, Jeffrey A Esq UNQUALIFIED7Bernardo Dominic
1037Aika F DoeUnited Kingdom2026-07-27Benton, John B Jr PROPOSAL85Xuxue Feng
1038Maria E WhobreyGermany2026-08-05Commercial Press NEW37Stephen Shaw
1039Ricardo H CampainSpain2026-08-17King, Christopher A Esq RENEWAL67Asiya Javayant
1040Munro G StensethGermany2026-08-18Feltz Printing Service UNQUALIFIED73Xuxue Feng
1041Leja U WhobreyIndia2026-08-04Chapman, Ross E Esq QUALIFIED20Stephen Shaw
1042Julie M OldroydArgentina2026-08-23King, Christopher A Esq NEGOTIATION52Bernardo Dominic
1043Wickens J DilliardSpain2026-07-26Commercial Press NEGOTIATION63Ioni Bowcher
1044Alejandro M CampainRussia2026-08-17Benton, John B Jr RENEWAL22Elwin Sharvill
1045Mayumi X WhobreyGermany2026-08-08Dorl, James J Esq QUALIFIED83Amy Elsner
1046Silvio L GillianRussia2026-07-29Truhlar And Truhlar Attys NEW4Amy Elsner
1047Munro J RulapaughCanada2026-08-17Morlong Associates UNQUALIFIED58Ivan Magalhaes
1048Ivar N BowleyFrance2026-08-14Feiner Bros RENEWAL82Elwin Sharvill
1049Kadeem W GlickCanada2026-08-22Buckley Miller Wright UNQUALIFIED22Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maisha L MaletArgentinaAsiya Javayant RENEWAL
Johnson Q RulapaughArgentinaAmy Elsner NEW
Izzy O AlbaresAustraliaOnyama Limba UNQUALIFIED
Octavia K StensethSpainAmy Elsner NEGOTIATION
Leon J FlosiCanadaElwin Sharvill RENEWAL
Cody Y FigeroaCanadaOnyama Limba RENEWAL
Kaitlin U ChuiSpainAmy Elsner NEW
Misaki P OstroskyAustraliaAmy Elsner QUALIFIED
Arvin S CaudyJapanAnna Fali NEGOTIATION
Murillo S RutaJapanAsiya Javayant NEGOTIATION
Faith N StensethGermanyAsiya Javayant NEGOTIATION
Clifford D DilliardIndiaOnyama Limba PROPOSAL
Maisha X StensethIndiaAmy Elsner NEGOTIATION
Wickens X KolmetzRussiaIvan Magalhaes PROPOSAL
Deepesh J VenereJapanXuxue Feng UNQUALIFIED
Izzy W MorascaIndiaOnyama Limba RENEWAL
Salvatore B StensethJapanAnna Fali NEW
Izzy R OldroydIndiaElwin Sharvill UNQUALIFIED
Stacey D DilliardUnited KingdomStephen Shaw NEGOTIATION
Darci S GillianArgentinaAmy Elsner NEGOTIATION
David U SchemmerSpainOnyama Limba RENEWAL
Greenwood D MaletSpainIvan Magalhaes QUALIFIED
Arvin L OstroskyCanadaStephen Shaw NEGOTIATION
Darci Q WhobreyCanadaAmy Elsner NEW
Misaki K CaldareraCanadaAmy Elsner UNQUALIFIED
Leon Z MaletGermanyOnyama Limba PROPOSAL
Chavez V DilliardBrazilStephen Shaw RENEWAL
Izzy O RoysterSpainAmy Elsner NEGOTIATION
Mayumi H FollerRussiaBernardo Dominic QUALIFIED
Isabel E TollnerArgentinaElwin Sharvill NEGOTIATION
Aditya S VocelkaUnited KingdomStephen Shaw PROPOSAL
Chavez W SergiArgentinaXuxue Feng QUALIFIED
Wickens B ShinkoItalyIvan Magalhaes PROPOSAL
Munro Q RoysterArgentinaIvan Magalhaes QUALIFIED
Costa V OstroskyGermanyAsiya Javayant PROPOSAL
Maria Q GarufiUnited KingdomAsiya Javayant PROPOSAL
Murillo R WhobreyAustraliaBernardo Dominic PROPOSAL
Darci Y VocelkaGermanyIvan Magalhaes PROPOSAL
Alejandro R MarrierFranceElwin Sharvill UNQUALIFIED
Ricardo U OstroskySpainXuxue Feng RENEWAL
Juan B GarufiRussiaStephen Shaw NEW
Aika K KuskoFranceAsiya Javayant NEW
Murillo I KolmetzBrazilIvan Magalhaes NEGOTIATION
Ashley A ShinkoItalyIvan Magalhaes NEW
Jeanfrancois T DilliardGermanyAmy Elsner NEW
Cody J BologniaBrazilAsiya Javayant UNQUALIFIED
Octavia Q RoysterItalyElwin Sharvill NEGOTIATION
Octavia I SlusarskiSpainStephen Shaw UNQUALIFIED
Juan A WhobreyAustraliaBernardo Dominic NEW
Jeanfrancois L StockhamUnited KingdomBernardo Dominic NEW
Frozen Columns
Name
Julie A Darakjy
Jones D Stockham
Alejandro O Morasca
Julie N Tollner
Julie O Campain
Julie T Tollner
Chavez G Briddick
Faith V Amigon
David I Nicka
Kadeem Y Inouye
Murillo C Foller
Jones A Oldroyd
Jennifer N Malet
Jones V Venere
Ricardo W Gaucho
Stacey N Paprocki
David U Kolmetz
Adams Z Maclead
Emily B Rim
Aruna H Wieser
Jones Y Dilliard
Emily K Morasca
Ricardo D Flosi
Morrow R Foller
Greenwood T Shinko
Cody D Briddick
Jones H Dilliard
Johnson C Maclead
Jeanfrancois R Stenseth
Aika Y Rulapaugh
Costa Q Kolmetz
Antonio Q Maclead
Adams W Saylors
Stacey K Amigon
Salvatore O Foller
Nicolas A Rulapaugh
Greenwood Q Malet
Arvin P Chui
Munro E Garufi
Smith W Oldroyd
Francesco S Briddick
Morrow O Flosi
Costa D Chui
Tony Y Flosi
Alejandro I Malet
Jefferson E Rim
Deepesh Q Morasca
Francesco U Ruta
David D Kolmetz
Salvatore M Oldroyd
IdCountryDate
1000Russia2026-08-01
1001Brazil2026-08-19
1002France2026-08-20
1003India2026-08-02
1004Germany2026-08-24
1005India2026-08-13
1006India2026-08-04
1007Argentina2026-08-19
1008Japan2026-07-28
1009France2026-08-11
1010Australia2026-07-30
1011Australia2026-08-05
1012Canada2026-08-23
1013Argentina2026-08-06
1014Brazil2026-08-12
1015Russia2026-08-09
1016India2026-08-12
1017Argentina2026-07-28
1018Italy2026-08-04
1019Russia2026-08-10
1020Japan2026-08-20
1021Brazil2026-08-03
1022Italy2026-08-01
1023United Kingdom2026-08-05
1024Spain2026-08-14
1025Italy2026-08-16
1026Spain2026-08-03
1027India2026-08-23
1028Germany2026-08-18
1029France2026-08-22
1030Russia2026-08-21
1031Japan2026-08-13
1032Canada2026-08-12
1033Australia2026-07-30
1034Brazil2026-08-20
1035United Kingdom2026-08-15
1036Germany2026-07-28
1037Japan2026-07-29
1038Spain2026-08-07
1039Argentina2026-07-26
1040Brazil2026-08-04
1041Brazil2026-08-08
1042Australia2026-08-17
1043Italy2026-07-28
1044Canada2026-08-04
1045Brazil2026-07-31
1046United Kingdom2026-08-14
1047United Kingdom2026-08-13
1048Italy2026-07-28
1049United Kingdom2026-08-15

On-Demand Data

NameIdCountryDate
Salvatore X Waycott1000Italy2026-08-20
Ashley O Bowley1001United Kingdom2026-08-24
David U Maclead1002India2026-08-16
Tony M Morasca1003France2026-07-27
Leon J Campain1004Germany2026-08-08
Izzy B Garufi1005Argentina2026-07-29
Octavia G Schemmer1006Brazil2026-08-01
Ivar P Ferencz1007Italy2026-07-30
Julie T Glick1008Argentina2026-07-26
Morrow O Royster1009Canada2026-07-28
Murillo T Briddick1010Russia2026-08-06
Mujtaba Q Saylors1011United Kingdom2026-08-07
Maisha C Amigon1012Italy2026-08-08
Isabel R Iturbide1013Australia2026-08-11
Arvin V Dilliard1014India2026-08-05
Octavia C Ferencz1015France2026-07-26
Maria C Inouye1016Canada2026-07-26
Tony X Oldroyd1017Canada2026-08-22
Maria I Saylors1018Brazil2026-07-28
Chavez N Nestle1019Canada2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo P TollnerUnited KingdomAsiya Javayant RENEWAL
Mayumi S DarakjyIndiaIoni Bowcher NEW
David A DarakjyBrazilAmy Elsner NEW
Aditya W WhobreyArgentinaAmy Elsner NEGOTIATION
Isabel U SaylorsCanadaIoni Bowcher NEW
Clifford W ButtGermanyXuxue Feng RENEWAL
James I RoysterItalyElwin Sharvill NEGOTIATION
Salvatore B WhobreyJapanAsiya Javayant UNQUALIFIED
Clifford P ShinkoUnited KingdomStephen Shaw QUALIFIED
Silvio K RulapaughGermanyStephen Shaw PROPOSAL
Ivar C RutaArgentinaStephen Shaw NEW
Adams F BowleyIndiaXuxue Feng NEW
Francesco U FerenczSpainElwin Sharvill NEW
Ashley J FlosiArgentinaIvan Magalhaes NEGOTIATION
Ivar C KuskoUnited KingdomAnna Fali UNQUALIFIED
Sinclair N GarufiAustraliaAmy Elsner PROPOSAL
Sinclair E FigeroaJapanIvan Magalhaes RENEWAL
Kadeem K FerenczBrazilXuxue Feng NEW
Johnson T FigeroaCanadaElwin Sharvill NEW
Jennifer X WieserCanadaIoni Bowcher UNQUALIFIED
Alejandro X SchemmerCanadaBernardo Dominic RENEWAL
Kadeem E TollnerFranceIvan Magalhaes RENEWAL
Aditya J InouyeUnited KingdomStephen Shaw RENEWAL
Antonio W MacleadBrazilIvan Magalhaes PROPOSAL
Wickens X FerenczArgentinaAnna Fali UNQUALIFIED
Francesco J OldroydItalyOnyama Limba NEW
Johnson W VenereIndiaElwin Sharvill PROPOSAL
Juan I FerenczArgentinaStephen Shaw QUALIFIED
Ashley E OstroskyBrazilIvan Magalhaes RENEWAL
Alejandro Z MacleadJapanAnna Fali UNQUALIFIED
Jeanfrancois F FollerCanadaElwin Sharvill PROPOSAL
Mujtaba N CaldareraItalyIvan Magalhaes PROPOSAL
Clifford L NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson U ShinkoSpainStephen Shaw NEW
Aika X VenereItalyBernardo Dominic NEGOTIATION
Julie W MaletArgentinaAnna Fali NEGOTIATION
Morrow V RulapaughSpainXuxue Feng NEGOTIATION
Juan L StockhamJapanOnyama Limba UNQUALIFIED
Ricardo X DilliardUnited KingdomAnna Fali PROPOSAL
Salvatore B PaprockiSpainElwin Sharvill NEW

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