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 G StockhamFranceIvan Magalhaes QUALIFIED
Sinclair L FollerFranceElwin Sharvill QUALIFIED
Francesco D FlosiGermanyIvan Magalhaes UNQUALIFIED
Ashley U ButtGermanyAnna Fali RENEWAL
Isabel X SaylorsRussiaOnyama Limba UNQUALIFIED
Isabel K GlickCanadaIoni Bowcher NEW
Chavez J CaldareraBrazilAsiya Javayant NEW
James B ChuiRussiaXuxue Feng NEW
Salvatore F BowleyFranceAmy Elsner RENEWAL
Mayumi A DilliardUnited KingdomAmy Elsner NEGOTIATION
Ivar S MorascaIndiaAnna Fali RENEWAL
Murillo B ShinkoArgentinaAnna Fali UNQUALIFIED
Stacey J FerenczBrazilIvan Magalhaes NEGOTIATION
Ivar K FlosiAustraliaIvan Magalhaes NEGOTIATION
Kaitlin Y GlickRussiaAmy Elsner NEGOTIATION
Smith U SergiBrazilBernardo Dominic UNQUALIFIED
Juan X DarakjyAustraliaBernardo Dominic UNQUALIFIED
Izzy D KuskoArgentinaXuxue Feng UNQUALIFIED
Maisha F StockhamJapanElwin Sharvill UNQUALIFIED
Arvin G KolmetzRussiaAsiya Javayant PROPOSAL
Emily Y PerinAustraliaAsiya Javayant RENEWAL
Chavez K VocelkaAustraliaOnyama Limba NEGOTIATION
Izzy H MarrierArgentinaIoni Bowcher PROPOSAL
Aika E MorascaUnited KingdomAmy Elsner NEGOTIATION
James X IturbideItalyElwin Sharvill RENEWAL
Mujtaba F AlbaresRussiaAmy Elsner QUALIFIED
Mayumi T PoquetteGermanyAmy Elsner RENEWAL
Jeanfrancois Y InouyeRussiaIoni Bowcher PROPOSAL
Emily V PaprockiCanadaAsiya Javayant QUALIFIED
Arvin Y AmigonUnited KingdomElwin Sharvill RENEWAL
Nicolas P GauchoJapanXuxue Feng PROPOSAL
Kaitlin R WhobreyFranceAmy Elsner QUALIFIED
Aditya P CampainGermanyIoni Bowcher NEW
Ashley Z AmigonGermanyAmy Elsner UNQUALIFIED
Wickens O PaprockiJapanIvan Magalhaes QUALIFIED
Jennifer M RulapaughIndiaAsiya Javayant NEW
Alejandro M DoeFranceOnyama Limba QUALIFIED
Alejandro J GillianGermanyElwin Sharvill QUALIFIED
Ashley J InouyeFranceXuxue Feng NEGOTIATION
Juan L ShinkoBrazilIvan Magalhaes PROPOSAL
Francesco M VenereFranceXuxue Feng PROPOSAL
Mujtaba W RutaAustraliaBernardo Dominic RENEWAL
Kadeem W RulapaughGermanyStephen Shaw NEGOTIATION
Isabel W FlosiGermanyIvan Magalhaes RENEWAL
Greenwood X KuskoJapanXuxue Feng NEGOTIATION
Francesco H ShinkoFranceElwin Sharvill QUALIFIED
Leja P BowleyAustraliaStephen Shaw PROPOSAL
Aditya R StockhamCanadaIoni Bowcher NEGOTIATION
Johnson O RulapaughSpainAmy Elsner QUALIFIED
Arvin G MarrierIndiaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Ivar R WieserFranceAmy Elsner UNQUALIFIED
Nicolas A RoysterItalyAsiya Javayant UNQUALIFIED
Maria Q VocelkaBrazilAmy Elsner PROPOSAL
Chavez M TollnerRussiaAmy Elsner RENEWAL
Maria S CaldareraRussiaAsiya Javayant PROPOSAL
Arvin M GarufiGermanyIoni Bowcher RENEWAL
Nicolas I GarufiArgentinaOnyama Limba NEW
David W RoysterAustraliaXuxue Feng PROPOSAL
Wickens Q KuskoRussiaElwin Sharvill RENEWAL
Octavia R WaycottCanadaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson I DoeSpain2025-06-01Dorl, James J Esq NEGOTIATION48Bernardo Dominic
1001Leon C VenereSpain2025-05-16King, Christopher A Esq QUALIFIED87Asiya Javayant
1002Faith Q GillianFrance2025-05-19Truhlar And Truhlar Attys QUALIFIED6Amy Elsner
1003Misaki B OldroydArgentina2025-06-12Dorl, James J Esq NEGOTIATION60Asiya Javayant
1004Murillo E WieserBrazil2025-06-07Morlong Associates NEW96Bernardo Dominic
1005Rodrigues Z RutaIndia2025-06-06Chapman, Ross E Esq RENEWAL34Ioni Bowcher
1006Murillo U IturbideJapan2025-06-08Printing Dimensions RENEWAL68Onyama Limba
1007Morrow N RutaIndia2025-05-30Buckley Miller Wright RENEWAL58Elwin Sharvill
1008Aika X TollnerItaly2025-06-09Morlong Associates QUALIFIED87Elwin Sharvill
1009Julie A MacleadBrazil2025-05-25Rangoni Of Florence QUALIFIED54Anna Fali
1010Faith F FlosiRussia2025-06-01Rousseaux, Michael Esq QUALIFIED88Stephen Shaw
1011Jennifer Z SlusarskiUnited Kingdom2025-05-24Printing Dimensions NEGOTIATION66Elwin Sharvill
1012Misaki V NestleCanada2025-05-31Commercial Press QUALIFIED41Xuxue Feng
1013Kadeem R StensethFrance2025-05-20Rousseaux, Michael Esq RENEWAL43Ioni Bowcher
1014Kadeem N NestleIndia2025-06-11Feiner Bros NEGOTIATION77Elwin Sharvill
1015Alejandro W GarufiRussia2025-05-19Morlong Associates RENEWAL76Asiya Javayant
1016Maisha B BriddickItaly2025-05-18Feiner Bros PROPOSAL21Asiya Javayant
1017Francesco W DoeIndia2025-05-24Chanay, Jeffrey A Esq UNQUALIFIED92Anna Fali
1018Kaitlin T PoquetteIndia2025-05-21King, Christopher A Esq RENEWAL26Asiya Javayant
1019Tony H TollnerArgentina2025-05-28Chemel, James L Cpa PROPOSAL75Stephen Shaw
1020Maisha T RoysterIndia2025-06-10Chapman, Ross E Esq QUALIFIED65Stephen Shaw
1021Emily M SchemmerSpain2025-05-23Morlong Associates NEGOTIATION51Elwin Sharvill
1022Misaki U OldroydCanada2025-05-31Truhlar And Truhlar Attys PROPOSAL28Xuxue Feng
1023Isabel J DilliardUnited Kingdom2025-06-13Feltz Printing Service QUALIFIED35Amy Elsner
1024David M CaldareraBrazil2025-05-30Chanay, Jeffrey A Esq NEW73Anna Fali
1025Francesco V StensethSpain2025-05-20Buckley Miller Wright NEGOTIATION8Xuxue Feng
1026Silvio D TollnerJapan2025-06-08Feltz Printing Service NEW48Ivan Magalhaes
1027Nicolas F PoquetteItaly2025-05-24Chemel, James L Cpa NEGOTIATION12Amy Elsner
1028Deepesh D DarakjyBrazil2025-05-30Benton, John B Jr QUALIFIED78Anna Fali
1029Jennifer Y PoquetteGermany2025-05-27Rangoni Of Florence NEGOTIATION77Xuxue Feng
1030Mayumi Q NestleJapan2025-05-28Benton, John B Jr NEW64Ivan Magalhaes
1031Mayumi V AlbaresIndia2025-05-17Benton, John B Jr NEW37Asiya Javayant
1032Emily O WieserSpain2025-05-28Truhlar And Truhlar Attys NEGOTIATION56Ivan Magalhaes
1033Maria A GarufiAustralia2025-05-20Feltz Printing Service UNQUALIFIED79Bernardo Dominic
1034Isabel W BriddickUnited Kingdom2025-05-16Rangoni Of Florence NEGOTIATION10Stephen Shaw
1035Francesco I RutaSpain2025-06-08Morlong Associates UNQUALIFIED37Onyama Limba
1036Ivar Q PoquetteIndia2025-05-20Truhlar And Truhlar Attys NEW42Asiya Javayant
1037Deepesh W GillianFrance2025-05-16Printing Dimensions NEW49Ivan Magalhaes
1038Murillo Q IturbideSpain2025-05-31Feltz Printing Service NEW95Ioni Bowcher
1039Jones J MorascaJapan2025-06-13Printing Dimensions PROPOSAL73Ioni Bowcher
1040Wickens C GillianRussia2025-06-06Commercial Press QUALIFIED61Ivan Magalhaes
1041Juan Q KolmetzSpain2025-05-16Chanay, Jeffrey A Esq QUALIFIED90Asiya Javayant
1042Julie D NickaUnited Kingdom2025-05-31Benton, John B Jr NEGOTIATION91Anna Fali
1043Rodrigues E GillianIndia2025-06-04Truhlar And Truhlar Attys QUALIFIED49Ivan Magalhaes
1044Leja U StensethIndia2025-05-23Chemel, James L Cpa UNQUALIFIED47Ivan Magalhaes
1045Salvatore T WieserIndia2025-06-11Buckley Miller Wright NEW0Ioni Bowcher
1046Wickens W BowleyItaly2025-06-14Benton, John B Jr QUALIFIED17Elwin Sharvill
1047Wickens F FlosiArgentina2025-06-03Dorl, James J Esq NEW94Xuxue Feng
1048Morrow F SergiGermany2025-05-23Commercial Press NEW18Onyama Limba
1049Sinclair J FigeroaUnited Kingdom2025-05-16King, Christopher A Esq NEW98Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria S BologniaGermanyOnyama Limba UNQUALIFIED
Silvio K MaletCanadaAnna Fali PROPOSAL
Silvio A SchemmerJapanAmy Elsner UNQUALIFIED
Costa C SergiCanadaIvan Magalhaes RENEWAL
Mayumi H RulapaughJapanIvan Magalhaes NEGOTIATION
Julie W RoysterIndiaAnna Fali NEGOTIATION
Adams X CaudyBrazilElwin Sharvill QUALIFIED
Aditya S MorascaCanadaIvan Magalhaes UNQUALIFIED
Emily N MorascaRussiaIoni Bowcher QUALIFIED
Ricardo M OstroskyArgentinaIvan Magalhaes QUALIFIED
Kadeem A DilliardCanadaAsiya Javayant NEW
Wickens Y MorascaArgentinaIvan Magalhaes RENEWAL
Ivar G GillianGermanyStephen Shaw RENEWAL
Wickens Q MorascaUnited KingdomElwin Sharvill RENEWAL
Greenwood B DarakjyCanadaOnyama Limba QUALIFIED
Juan J SergiCanadaAsiya Javayant UNQUALIFIED
Arvin D OldroydJapanIvan Magalhaes UNQUALIFIED
Alejandro F VenereGermanyAnna Fali NEGOTIATION
Leon H FlosiArgentinaElwin Sharvill NEW
Mujtaba L GlickItalyIoni Bowcher RENEWAL
Munro T TollnerArgentinaOnyama Limba NEW
Jones W GarufiBrazilAnna Fali RENEWAL
Jeanfrancois X MarrierAustraliaOnyama Limba QUALIFIED
Leja N StockhamCanadaIoni Bowcher NEW
Maria R AmigonGermanyIoni Bowcher NEGOTIATION
Maisha C WieserBrazilElwin Sharvill RENEWAL
Kaitlin A GlickRussiaElwin Sharvill NEW
Leon M RutaArgentinaXuxue Feng PROPOSAL
James I KuskoSpainStephen Shaw NEW
James S BologniaGermanyAnna Fali RENEWAL
Rodrigues M FigeroaIndiaXuxue Feng NEGOTIATION
Munro Y PerinItalyXuxue Feng QUALIFIED
Leja Q VocelkaIndiaIvan Magalhaes NEW
Aika R CaudyIndiaAsiya Javayant NEW
Tony M MaletUnited KingdomAsiya Javayant PROPOSAL
Ashley E BologniaJapanAsiya Javayant UNQUALIFIED
Cody Y RoysterItalyAnna Fali NEGOTIATION
Izzy R GarufiUnited KingdomIoni Bowcher PROPOSAL
Octavia Q AlbaresAustraliaAmy Elsner RENEWAL
Costa H FollerJapanStephen Shaw PROPOSAL
Rodrigues D InouyeFranceAsiya Javayant NEGOTIATION
Murillo U FlosiFranceStephen Shaw NEW
Ricardo T GillianArgentinaAnna Fali NEW
Salvatore J DilliardSpainElwin Sharvill PROPOSAL
Darci W AmigonIndiaStephen Shaw PROPOSAL
Jones Q PerinArgentinaOnyama Limba RENEWAL
Jones K PaprockiGermanyXuxue Feng NEW
Rodrigues D KolmetzArgentinaStephen Shaw NEW
Faith N CaudySpainElwin Sharvill UNQUALIFIED
Mayumi F InouyeAustraliaIoni Bowcher NEW
Frozen Columns
Name
Antonio K Saylors
Smith J Paprocki
Kadeem I Inouye
Jones Z Caudy
Kaitlin I Bolognia
Jones T Whobrey
Julie T Chui
Costa L Bowley
Mayumi A Royster
Ivar Y Caudy
Nicolas T Campain
Isabel S Chui
Maisha S Rulapaugh
Maisha F Gaucho
Juan M Rulapaugh
Leon T Kolmetz
Claire Q Ostrosky
Alejandro A Caldarera
Leja U Flosi
Juan P Gillian
Antonio N Morasca
David L Inouye
Francesco R Butt
Leon T Oldroyd
Juan W Doe
Cody V Chui
Jeanfrancois K Dilliard
Ashley W Saylors
Faith K Shinko
Ashley E Kolmetz
Francesco X Inouye
Mujtaba R Tollner
Kaitlin L Marrier
Murillo R Chui
Sinclair Z Nicka
Leon M Marrier
Julie N Kusko
Kaitlin O Foller
Octavia I Darakjy
Aruna K Nestle
Johnson E Amigon
Francesco G Albares
Arvin J Stockham
Aruna M Slusarski
Sinclair I Caldarera
Chavez Z Sergi
Adams M Glick
Ricardo Y Albares
Jones D Butt
Morrow X Campain
IdCountryDate
1000Argentina2025-06-13
1001Argentina2025-05-28
1002Brazil2025-05-20
1003Brazil2025-05-18
1004Spain2025-06-05
1005France2025-05-18
1006France2025-06-05
1007France2025-06-03
1008Russia2025-06-05
1009Canada2025-05-21
1010Argentina2025-06-01
1011India2025-06-14
1012India2025-05-23
1013Argentina2025-06-11
1014France2025-05-30
1015Japan2025-05-31
1016Japan2025-06-08
1017Spain2025-06-06
1018United Kingdom2025-05-28
1019Spain2025-06-11
1020India2025-05-19
1021Brazil2025-06-08
1022Australia2025-05-26
1023India2025-06-10
1024Argentina2025-05-27
1025Brazil2025-05-26
1026Russia2025-05-31
1027Australia2025-05-25
1028Spain2025-05-28
1029Italy2025-06-07
1030Spain2025-06-03
1031Japan2025-06-11
1032Australia2025-06-05
1033Brazil2025-05-22
1034Germany2025-06-08
1035India2025-06-12
1036Russia2025-05-24
1037India2025-06-10
1038Brazil2025-06-06
1039Canada2025-06-08
1040Japan2025-06-07
1041Germany2025-05-19
1042Argentina2025-06-02
1043Argentina2025-06-03
1044Canada2025-05-27
1045Italy2025-05-30
1046Brazil2025-06-04
1047Russia2025-05-24
1048Italy2025-06-03
1049Japan2025-05-17

On-Demand Data

NameIdCountryDate
Aditya O Maclead1000Russia2025-05-30
Juan N Amigon1001Russia2025-05-22
Murillo A Royster1002France2025-06-12
Tony L Whobrey1003France2025-06-13
Clifford C Stenseth1004Russia2025-05-28
Jennifer M Wieser1005Australia2025-05-18
Leon Y Schemmer1006Russia2025-06-12
Rodrigues E Caudy1007Argentina2025-06-05
Alejandro C Bowley1008Brazil2025-05-26
James G Ruta1009United Kingdom2025-06-13
James T Bolognia1010France2025-05-30
Silvio B Bowley1011France2025-05-23
Munro Q Dilliard1012Japan2025-05-25
Francesco S Schemmer1013Australia2025-05-31
Leja K Maclead1014India2025-06-10
Munro Z Slusarski1015Brazil2025-05-22
Alejandro R Amigon1016United Kingdom2025-06-12
Antonio Y Kolmetz1017United Kingdom2025-06-05
Julie P Kolmetz1018India2025-05-17
Ashley Q Saylors1019United Kingdom2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily V SlusarskiJapanBernardo Dominic NEW
Stacey O CaldareraBrazilBernardo Dominic NEGOTIATION
Ivar E MarrierRussiaIoni Bowcher QUALIFIED
Costa E AlbaresAustraliaBernardo Dominic NEW
Leja K OldroydGermanyBernardo Dominic QUALIFIED
Ivar K PoquetteBrazilIvan Magalhaes RENEWAL
Julie M GlickArgentinaXuxue Feng PROPOSAL
Rodrigues W StensethBrazilIoni Bowcher NEW
Chavez H FerenczArgentinaAmy Elsner QUALIFIED
Costa A DilliardAustraliaStephen Shaw NEW
Alejandro I SchemmerSpainBernardo Dominic NEGOTIATION
Jones Y SlusarskiArgentinaAsiya Javayant NEW
Jones F CaldareraItalyOnyama Limba NEW
Ashley I FerenczGermanyIvan Magalhaes NEW
Kaitlin P VocelkaFranceOnyama Limba RENEWAL
Julie I BologniaItalyAmy Elsner PROPOSAL
Chavez I CampainFranceOnyama Limba NEW
Claire P InouyeGermanyXuxue Feng NEW
Rodrigues O KolmetzCanadaIoni Bowcher PROPOSAL
Maria Y StockhamRussiaAmy Elsner NEW
Munro X DilliardAustraliaAsiya Javayant NEGOTIATION
Arvin V StensethCanadaXuxue Feng RENEWAL
Jefferson L FerenczBrazilXuxue Feng RENEWAL
Maria H GillianIndiaBernardo Dominic PROPOSAL
Leon V WaycottSpainElwin Sharvill NEW
Darci P WieserJapanAsiya Javayant PROPOSAL
Kadeem Z FigeroaUnited KingdomIoni Bowcher RENEWAL
Costa B RoysterBrazilAnna Fali UNQUALIFIED
Francesco E FollerFranceElwin Sharvill QUALIFIED
Stacey T MarrierCanadaOnyama Limba RENEWAL
Antonio Z FigeroaUnited KingdomXuxue Feng QUALIFIED
Ashley U RoysterGermanyIvan Magalhaes NEGOTIATION
Aika M FerenczItalyStephen Shaw NEGOTIATION
Clifford M VenereIndiaAsiya Javayant PROPOSAL
Aditya P OstroskyJapanXuxue Feng QUALIFIED
Faith N RoysterFranceIvan Magalhaes UNQUALIFIED
Nicolas J GarufiSpainXuxue Feng NEGOTIATION
Jennifer K MorascaAustraliaElwin Sharvill NEW
Kadeem C FollerUnited KingdomBernardo Dominic PROPOSAL
Greenwood R ButtJapanStephen Shaw 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>