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
Mayumi N SchemmerGermanyStephen Shaw PROPOSAL
Kaitlin K GauchoCanadaBernardo Dominic PROPOSAL
Francesco D BriddickCanadaAnna Fali UNQUALIFIED
Emily V AlbaresJapanIvan Magalhaes UNQUALIFIED
Aika Y MarrierGermanyIoni Bowcher QUALIFIED
Munro G FollerItalyBernardo Dominic QUALIFIED
Maisha A PerinGermanyStephen Shaw PROPOSAL
Clifford O RimItalyXuxue Feng NEGOTIATION
Smith M FerenczAustraliaElwin Sharvill NEW
Leja C CampainArgentinaXuxue Feng PROPOSAL
Ricardo J RimAustraliaXuxue Feng QUALIFIED
David P FerenczUnited KingdomIvan Magalhaes QUALIFIED
Leon P GauchoBrazilOnyama Limba NEW
Cody V SlusarskiItalyIoni Bowcher NEGOTIATION
Leon Z SaylorsUnited KingdomAmy Elsner UNQUALIFIED
Mayumi G MorascaUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois S FigeroaItalyBernardo Dominic PROPOSAL
Deepesh H ButtAustraliaXuxue Feng RENEWAL
Maria D BologniaJapanAmy Elsner QUALIFIED
Juan Z NestleAustraliaIoni Bowcher RENEWAL
Stacey M AmigonAustraliaIvan Magalhaes NEGOTIATION
Clifford H KolmetzArgentinaIvan Magalhaes PROPOSAL
Ivar A PoquetteGermanyElwin Sharvill UNQUALIFIED
Antonio H VocelkaArgentinaAsiya Javayant NEW
Murillo T MaletUnited KingdomIvan Magalhaes PROPOSAL
Francesco B OldroydCanadaAnna Fali NEGOTIATION
Murillo R FigeroaFranceOnyama Limba QUALIFIED
Francesco K KuskoFranceIvan Magalhaes PROPOSAL
Costa T MaletCanadaXuxue Feng PROPOSAL
Clifford X DoeJapanAnna Fali RENEWAL
Kadeem Y CaldareraItalyIvan Magalhaes QUALIFIED
Jeanfrancois M KuskoIndiaIvan Magalhaes NEW
Jones J WhobreyFranceAsiya Javayant NEGOTIATION
Ashley V CaudyItalyElwin Sharvill QUALIFIED
Rodrigues Y DilliardGermanyAnna Fali NEGOTIATION
Morrow V FlosiUnited KingdomStephen Shaw RENEWAL
Sinclair W VenereRussiaXuxue Feng QUALIFIED
Ricardo P MacleadBrazilXuxue Feng QUALIFIED
Kadeem Z GlickCanadaIoni Bowcher PROPOSAL
Darci W SergiIndiaIvan Magalhaes NEGOTIATION
Cody A GlickUnited KingdomAmy Elsner NEW
Ashley X FollerJapanAnna Fali NEW
Wickens X ChuiBrazilStephen Shaw NEGOTIATION
Costa Q DilliardIndiaStephen Shaw UNQUALIFIED
Adams P FollerAustraliaAsiya Javayant QUALIFIED
Wickens X WhobreySpainAmy Elsner QUALIFIED
Aruna T MaletJapanAnna Fali NEW
Jefferson M FlosiUnited KingdomAmy Elsner PROPOSAL
Murillo I WieserRussiaBernardo Dominic NEW
Francesco B OstroskyArgentinaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi P GarufiGermanyAmy Elsner NEGOTIATION
Izzy D InouyeBrazilBernardo Dominic NEW
Clifford X VocelkaBrazilIvan Magalhaes QUALIFIED
Alejandro D FigeroaGermanyIvan Magalhaes PROPOSAL
Nicolas C NestleUnited KingdomAsiya Javayant NEW
Adams E FigeroaIndiaIoni Bowcher NEGOTIATION
Kaitlin B AlbaresIndiaBernardo Dominic PROPOSAL
Munro N CaldareraAustraliaAmy Elsner RENEWAL
Alejandro H AlbaresRussiaElwin Sharvill NEW
Ivar O CampainArgentinaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh N MorascaJapan2025-06-16Feltz Printing Service PROPOSAL91Ivan Magalhaes
1001Isabel V AmigonAustralia2025-05-31Benton, John B Jr NEGOTIATION56Stephen Shaw
1002Leja E MaletArgentina2025-05-26Buckley Miller Wright PROPOSAL93Onyama Limba
1003Aika T FerenczGermany2025-06-16Morlong Associates UNQUALIFIED28Bernardo Dominic
1004Jeanfrancois G RulapaughFrance2025-06-04Chapman, Ross E Esq NEGOTIATION64Amy Elsner
1005Alejandro X KolmetzSpain2025-06-03Dorl, James J Esq QUALIFIED84Stephen Shaw
1006Tony L GillianUnited Kingdom2025-05-22Chapman, Ross E Esq NEGOTIATION92Onyama Limba
1007Smith N GillianCanada2025-06-03Chapman, Ross E Esq NEGOTIATION84Asiya Javayant
1008Morrow K OstroskyFrance2025-06-12Morlong Associates NEGOTIATION35Xuxue Feng
1009Aika W FollerItaly2025-05-29Morlong Associates NEW35Amy Elsner
1010Aruna L BriddickBrazil2025-06-11Buckley Miller Wright PROPOSAL56Amy Elsner
1011Aditya L FerenczAustralia2025-06-02Truhlar And Truhlar Attys UNQUALIFIED54Ivan Magalhaes
1012Jennifer Y VocelkaAustralia2025-06-07Chemel, James L Cpa PROPOSAL33Ivan Magalhaes
1013Maisha D OldroydJapan2025-06-16Chemel, James L Cpa PROPOSAL87Onyama Limba
1014Emily G GarufiFrance2025-05-20Feiner Bros PROPOSAL22Amy Elsner
1015Jeanfrancois I RoysterGermany2025-05-19Rousseaux, Michael Esq NEGOTIATION35Asiya Javayant
1016Silvio A BriddickArgentina2025-05-23Chapman, Ross E Esq NEGOTIATION20Ioni Bowcher
1017Aditya N MaletIndia2025-06-14Benton, John B Jr UNQUALIFIED35Anna Fali
1018Maisha G StockhamCanada2025-06-04Printing Dimensions NEGOTIATION90Xuxue Feng
1019Munro S SlusarskiSpain2025-05-22Chapman, Ross E Esq NEGOTIATION2Stephen Shaw
1020Greenwood F WieserIndia2025-06-05Commercial Press UNQUALIFIED59Stephen Shaw
1021Francesco B MaletArgentina2025-06-01King, Christopher A Esq UNQUALIFIED36Ioni Bowcher
1022Johnson U KuskoGermany2025-05-25Chemel, James L Cpa RENEWAL85Anna Fali
1023Rodrigues X StensethRussia2025-06-07Chemel, James L Cpa NEGOTIATION61Asiya Javayant
1024Costa E IturbideRussia2025-05-31Printing Dimensions RENEWAL82Ivan Magalhaes
1025Deepesh P MacleadJapan2025-05-31Chemel, James L Cpa RENEWAL27Bernardo Dominic
1026Salvatore A MaletAustralia2025-05-20Dorl, James J Esq UNQUALIFIED62Onyama Limba
1027Maria Y FerenczRussia2025-05-26Rangoni Of Florence UNQUALIFIED36Elwin Sharvill
1028Jennifer E SchemmerCanada2025-05-24Morlong Associates QUALIFIED87Ioni Bowcher
1029Smith S StensethArgentina2025-05-25Buckley Miller Wright RENEWAL12Bernardo Dominic
1030Munro R WhobreyAustralia2025-06-11Morlong Associates PROPOSAL38Stephen Shaw
1031Stacey N FerenczCanada2025-06-09Chanay, Jeffrey A Esq RENEWAL79Amy Elsner
1032Silvio Q ShinkoGermany2025-06-14Commercial Press QUALIFIED88Ivan Magalhaes
1033Rodrigues Z SlusarskiIndia2025-06-03Dorl, James J Esq QUALIFIED74Onyama Limba
1034Mujtaba L ButtJapan2025-05-26Feltz Printing Service QUALIFIED58Stephen Shaw
1035Adams V GlickRussia2025-05-25Printing Dimensions NEGOTIATION8Ivan Magalhaes
1036Kaitlin O KolmetzItaly2025-06-15Dorl, James J Esq QUALIFIED98Elwin Sharvill
1037Arvin K CaudyItaly2025-05-28Feltz Printing Service UNQUALIFIED90Asiya Javayant
1038Leja U WieserGermany2025-06-04Benton, John B Jr RENEWAL86Ivan Magalhaes
1039Jennifer A CaldareraArgentina2025-05-24Buckley Miller Wright PROPOSAL2Asiya Javayant
1040Johnson W GillianGermany2025-05-24Morlong Associates QUALIFIED20Bernardo Dominic
1041Cody L GlickUnited Kingdom2025-06-11Rousseaux, Michael Esq UNQUALIFIED34Elwin Sharvill
1042Darci R DilliardGermany2025-06-07Chapman, Ross E Esq PROPOSAL31Ivan Magalhaes
1043Maisha S MacleadCanada2025-06-15Dorl, James J Esq UNQUALIFIED16Ioni Bowcher
1044Jennifer K CaldareraUnited Kingdom2025-06-12Feltz Printing Service PROPOSAL65Bernardo Dominic
1045Nicolas Z FlosiAustralia2025-05-24Buckley Miller Wright PROPOSAL64Elwin Sharvill
1046Faith N VenereIndia2025-06-03Commercial Press UNQUALIFIED46Ivan Magalhaes
1047Leon U MorascaUnited Kingdom2025-06-08Buckley Miller Wright RENEWAL99Amy Elsner
1048Isabel H DilliardAustralia2025-06-10Printing Dimensions NEGOTIATION43Amy Elsner
1049Kaitlin B SaylorsRussia2025-05-31Benton, John B Jr RENEWAL64Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja Y GlickJapanBernardo Dominic NEGOTIATION
Murillo E OldroydRussiaBernardo Dominic QUALIFIED
Murillo V BriddickArgentinaIoni Bowcher RENEWAL
Cody I ChuiItalyAmy Elsner UNQUALIFIED
Adams K CampainAustraliaAsiya Javayant NEGOTIATION
Smith D MaletIndiaAmy Elsner NEW
Kadeem X WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Aika U DoeBrazilAmy Elsner UNQUALIFIED
Aruna C FlosiCanadaIvan Magalhaes RENEWAL
Isabel H TollnerBrazilIvan Magalhaes UNQUALIFIED
Rodrigues S PaprockiRussiaIvan Magalhaes RENEWAL
Nicolas D BriddickJapanBernardo Dominic UNQUALIFIED
Kaitlin G ChuiBrazilStephen Shaw RENEWAL
Faith F MaletBrazilIvan Magalhaes NEGOTIATION
Cody U CaudyItalyBernardo Dominic NEW
Sinclair H ButtIndiaIvan Magalhaes NEGOTIATION
Maria P StockhamIndiaXuxue Feng RENEWAL
Leja N BriddickRussiaAnna Fali UNQUALIFIED
Julie U MaletUnited KingdomIvan Magalhaes RENEWAL
Johnson C MacleadCanadaIvan Magalhaes NEW
Kadeem J WhobreyJapanOnyama Limba QUALIFIED
Murillo H OstroskyIndiaIoni Bowcher QUALIFIED
Kadeem D FerenczArgentinaAsiya Javayant PROPOSAL
Johnson V NickaRussiaIoni Bowcher UNQUALIFIED
Cody C GlickArgentinaIoni Bowcher PROPOSAL
Mayumi Z OstroskyBrazilElwin Sharvill QUALIFIED
Octavia L CampainBrazilAsiya Javayant QUALIFIED
Leon V DarakjyArgentinaAmy Elsner NEW
Francesco W RulapaughSpainOnyama Limba UNQUALIFIED
Faith P SlusarskiRussiaIvan Magalhaes RENEWAL
Smith G CaldareraUnited KingdomBernardo Dominic NEGOTIATION
James F GlickFranceXuxue Feng RENEWAL
Isabel F VocelkaSpainAnna Fali NEW
Arvin D FigeroaBrazilAsiya Javayant PROPOSAL
Cody K BriddickRussiaXuxue Feng UNQUALIFIED
Jennifer P InouyeGermanyBernardo Dominic RENEWAL
Murillo Y MaletUnited KingdomAmy Elsner RENEWAL
Kadeem H DilliardJapanBernardo Dominic NEW
Stacey S DarakjyAustraliaIoni Bowcher RENEWAL
Darci C FerenczAustraliaOnyama Limba PROPOSAL
Jeanfrancois H FollerGermanyXuxue Feng NEW
Clifford D PoquetteIndiaOnyama Limba NEGOTIATION
Juan F StockhamJapanIoni Bowcher QUALIFIED
James T CampainUnited KingdomOnyama Limba RENEWAL
Jennifer Y RoysterItalyElwin Sharvill UNQUALIFIED
Johnson K RimRussiaStephen Shaw NEGOTIATION
Juan M FerenczCanadaAmy Elsner RENEWAL
Claire N KuskoJapanBernardo Dominic PROPOSAL
Aruna A SergiItalyAnna Fali RENEWAL
Octavia F SchemmerBrazilOnyama Limba QUALIFIED
Frozen Columns
Name
Murillo X Iturbide
Silvio L Venere
Stacey T Stockham
Tony T Sergi
Stacey M Morasca
Ashley L Caudy
Cody E Amigon
Alejandro J Kusko
Leon K Butt
Izzy M Campain
Isabel J Darakjy
Silvio U Briddick
Clifford N Whobrey
Mayumi B Malet
Jennifer L Venere
Maria L Shinko
Tony S Malet
Francesco A Venere
Alejandro W Royster
Aruna R Bowley
Aika D Maclead
Emily G Bolognia
Izzy N Bolognia
Jones A Chui
Silvio J Iturbide
Faith J Bolognia
Faith R Briddick
Darci U Nestle
Jones X Glick
Sinclair E Schemmer
Chavez A Poquette
Adams U Rim
Tony N Glick
Clifford F Albares
Morrow T Caldarera
Antonio L Nicka
David D Vocelka
David L Amigon
Jeanfrancois F Poquette
Leja J Ruta
Darci S Caldarera
Julie K Amigon
Deepesh W Foller
Mujtaba M Garufi
Kadeem R Kusko
Isabel I Darakjy
Johnson L Caudy
Izzy A Inouye
Ivar Y Nestle
Aika U Nicka
IdCountryDate
1000Australia2025-06-14
1001Canada2025-05-31
1002France2025-05-19
1003Germany2025-06-10
1004France2025-05-30
1005Argentina2025-05-27
1006Spain2025-06-16
1007Russia2025-06-01
1008Brazil2025-06-15
1009Italy2025-05-29
1010Spain2025-05-21
1011Germany2025-06-14
1012Spain2025-06-02
1013Italy2025-06-10
1014Brazil2025-05-21
1015Germany2025-06-14
1016Japan2025-06-01
1017Spain2025-05-29
1018Australia2025-05-20
1019France2025-06-03
1020Argentina2025-06-01
1021United Kingdom2025-05-30
1022United Kingdom2025-05-19
1023Germany2025-06-16
1024Canada2025-05-19
1025Germany2025-05-29
1026Russia2025-05-28
1027India2025-06-01
1028Japan2025-05-18
1029Brazil2025-06-01
1030Argentina2025-06-01
1031France2025-05-27
1032Canada2025-06-02
1033India2025-06-02
1034Russia2025-05-24
1035Australia2025-05-21
1036Brazil2025-05-25
1037Canada2025-05-20
1038Argentina2025-06-08
1039Brazil2025-06-01
1040Spain2025-06-03
1041India2025-06-13
1042Germany2025-06-05
1043France2025-06-07
1044Canada2025-05-28
1045Canada2025-05-27
1046Australia2025-05-31
1047Australia2025-06-15
1048Japan2025-06-03
1049Argentina2025-05-27

On-Demand Data

NameIdCountryDate
Izzy R Whobrey1000United Kingdom2025-06-16
Adams D Malet1001Brazil2025-06-14
Adams V Sergi1002Brazil2025-06-09
Kaitlin Q Venere1003United Kingdom2025-05-19
Salvatore W Flosi1004Russia2025-05-26
Adams J Stenseth1005Japan2025-05-27
Ricardo O Marrier1006Canada2025-05-27
Aruna J Stockham1007Spain2025-06-12
Silvio Z Paprocki1008Japan2025-06-02
Morrow C Malet1009United Kingdom2025-05-23
Wickens D Rim1010United Kingdom2025-06-16
Jennifer W Stenseth1011Japan2025-05-19
Antonio I Tollner1012Brazil2025-05-25
Silvio H Waycott1013Brazil2025-05-31
Jennifer J Wieser1014Germany2025-06-14
Aditya X Marrier1015Canada2025-06-07
Chavez A Schemmer1016Argentina2025-06-10
Jeanfrancois G Glick1017Japan2025-05-23
Ashley V Campain1018Italy2025-06-12
Wickens B Caudy1019Russia2025-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna J SaylorsBrazilStephen Shaw QUALIFIED
Aika E FerenczArgentinaXuxue Feng UNQUALIFIED
Leon F VenereFranceStephen Shaw QUALIFIED
Ricardo Q MorascaJapanAnna Fali NEW
Mujtaba Y RulapaughArgentinaStephen Shaw QUALIFIED
Jennifer I GlickJapanAmy Elsner PROPOSAL
Darci A ChuiRussiaIvan Magalhaes UNQUALIFIED
Francesco L AlbaresIndiaIvan Magalhaes NEW
Greenwood H BriddickIndiaAmy Elsner UNQUALIFIED
Alejandro S CampainItalyElwin Sharvill NEW
Jennifer D ChuiArgentinaAnna Fali QUALIFIED
Mayumi H RulapaughItalyOnyama Limba NEGOTIATION
Juan H KuskoGermanyAnna Fali NEW
Ashley W AmigonArgentinaStephen Shaw NEW
Leja M ShinkoIndiaStephen Shaw NEGOTIATION
Maisha I WieserGermanyOnyama Limba PROPOSAL
Tony U VenereGermanyIvan Magalhaes UNQUALIFIED
Wickens D AmigonCanadaIoni Bowcher RENEWAL
Kaitlin P BriddickUnited KingdomIoni Bowcher PROPOSAL
Emily A ChuiCanadaElwin Sharvill QUALIFIED
Leon I NestleItalyAmy Elsner QUALIFIED
Kadeem Q StockhamItalyAmy Elsner NEW
Octavia L OldroydJapanBernardo Dominic QUALIFIED
Munro T GarufiSpainIvan Magalhaes RENEWAL
Antonio E CaudyArgentinaAsiya Javayant NEGOTIATION
Jones N MacleadUnited KingdomElwin Sharvill NEW
Julie S FerenczJapanAsiya Javayant RENEWAL
Kaitlin H CaldareraSpainElwin Sharvill UNQUALIFIED
Johnson B OldroydAustraliaOnyama Limba NEW
Darci P RimIndiaAnna Fali PROPOSAL
Alejandro Q AlbaresJapanOnyama Limba QUALIFIED
Chavez Y RimCanadaElwin Sharvill PROPOSAL
Juan G SaylorsRussiaIvan Magalhaes QUALIFIED
Emily S DilliardFranceXuxue Feng PROPOSAL
Ivar E OstroskyCanadaAnna Fali PROPOSAL
James W OstroskyJapanStephen Shaw UNQUALIFIED
Faith R MaletAustraliaStephen Shaw RENEWAL
Mujtaba U RoysterArgentinaElwin Sharvill NEGOTIATION
Sinclair M StockhamGermanyAmy Elsner RENEWAL
Izzy S DilliardUnited 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>