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
Darci T SergiArgentinaIvan Magalhaes NEW
Jefferson D SlusarskiItalyBernardo Dominic UNQUALIFIED
Chavez Q MarrierFranceIoni Bowcher UNQUALIFIED
Adams E MaletUnited KingdomXuxue Feng PROPOSAL
Greenwood O MaletArgentinaAnna Fali PROPOSAL
Emily D KolmetzRussiaStephen Shaw PROPOSAL
Ricardo N WaycottJapanIoni Bowcher RENEWAL
Juan J StockhamIndiaIvan Magalhaes NEW
Adams A KuskoItalyElwin Sharvill PROPOSAL
Silvio K GarufiFranceIoni Bowcher RENEWAL
Costa W MaletUnited KingdomIvan Magalhaes QUALIFIED
Julie N MarrierRussiaAmy Elsner RENEWAL
Aruna X BowleyArgentinaIoni Bowcher NEGOTIATION
Izzy Q OldroydJapanOnyama Limba NEGOTIATION
Mayumi L FigeroaFranceBernardo Dominic RENEWAL
Wickens U DilliardRussiaXuxue Feng PROPOSAL
Maisha R SergiArgentinaStephen Shaw NEGOTIATION
Sinclair P CampainRussiaOnyama Limba RENEWAL
Faith M FigeroaIndiaAnna Fali RENEWAL
David B AlbaresCanadaAnna Fali NEGOTIATION
Jones M GarufiIndiaAsiya Javayant PROPOSAL
Emily E ChuiItalyIvan Magalhaes UNQUALIFIED
Kaitlin P ChuiJapanStephen Shaw UNQUALIFIED
Misaki X FollerArgentinaXuxue Feng RENEWAL
Cody X GillianGermanyIoni Bowcher UNQUALIFIED
Misaki V ShinkoGermanyIoni Bowcher UNQUALIFIED
Juan K WieserBrazilElwin Sharvill NEGOTIATION
Chavez O OldroydUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois B SergiItalyAnna Fali UNQUALIFIED
Alejandro H VocelkaBrazilElwin Sharvill NEGOTIATION
Greenwood J SlusarskiAustraliaXuxue Feng RENEWAL
Darci F NestleAustraliaBernardo Dominic RENEWAL
Sinclair Y MorascaAustraliaIvan Magalhaes PROPOSAL
Misaki I FerenczUnited KingdomXuxue Feng NEGOTIATION
Leja R MorascaItalyStephen Shaw QUALIFIED
Isabel X CaldareraSpainXuxue Feng NEW
Jeanfrancois O MacleadRussiaBernardo Dominic NEGOTIATION
Aika S RimCanadaOnyama Limba NEW
Ricardo R BologniaSpainStephen Shaw NEGOTIATION
Ricardo V AmigonAustraliaIoni Bowcher NEW
Salvatore N WhobreyGermanyIvan Magalhaes RENEWAL
Juan N RoysterFranceBernardo Dominic UNQUALIFIED
Arvin P VocelkaRussiaElwin Sharvill RENEWAL
Johnson U FollerItalyElwin Sharvill NEGOTIATION
Ivar W AmigonGermanyAnna Fali RENEWAL
Arvin Q ChuiAustraliaIoni Bowcher PROPOSAL
Wickens I SchemmerAustraliaIvan Magalhaes NEW
Francesco D GarufiItalyAsiya Javayant PROPOSAL
Octavia X DoeFranceXuxue Feng PROPOSAL
Morrow F WaycottSpainOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mujtaba B CampainGermanyAmy Elsner QUALIFIED
Rodrigues A MaletUnited KingdomIoni Bowcher NEW
Adams L RimIndiaIoni Bowcher PROPOSAL
Cody I TollnerCanadaIoni Bowcher NEW
Alejandro U FollerBrazilAnna Fali NEW
Jones Q CaldareraCanadaXuxue Feng PROPOSAL
Octavia X CaldareraFranceElwin Sharvill NEGOTIATION
Leja P RutaArgentinaBernardo Dominic RENEWAL
Smith N DilliardSpainOnyama Limba RENEWAL
Greenwood Z PerinJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford G VocelkaBrazil2026-07-23Morlong Associates NEGOTIATION38Onyama Limba
1001Smith M NestleJapan2026-07-24Feiner Bros QUALIFIED50Stephen Shaw
1002Wickens U ChuiItaly2026-07-18Commercial Press PROPOSAL13Bernardo Dominic
1003Emily U PerinAustralia2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED0Onyama Limba
1004Darci V InouyeArgentina2026-07-21Chanay, Jeffrey A Esq NEW31Amy Elsner
1005Mayumi U MarrierRussia2026-07-23Rousseaux, Michael Esq RENEWAL71Amy Elsner
1006Stacey N CaudyRussia2026-07-29King, Christopher A Esq NEW43Amy Elsner
1007Aruna M ChuiRussia2026-08-05Benton, John B Jr QUALIFIED49Ivan Magalhaes
1008Izzy E MorascaBrazil2026-07-10Feiner Bros NEW20Xuxue Feng
1009Smith E FigeroaSpain2026-07-26Benton, John B Jr QUALIFIED10Bernardo Dominic
1010Ricardo T NickaArgentina2026-08-07Commercial Press NEGOTIATION53Ioni Bowcher
1011Costa P BologniaArgentina2026-08-03Benton, John B Jr QUALIFIED25Onyama Limba
1012Jeanfrancois V MorascaIndia2026-08-04Printing Dimensions NEGOTIATION8Anna Fali
1013Morrow H DarakjyIndia2026-07-30Benton, John B Jr RENEWAL20Elwin Sharvill
1014Mayumi P InouyeAustralia2026-07-29Morlong Associates QUALIFIED92Ivan Magalhaes
1015Alejandro Q FigeroaAustralia2026-07-16Benton, John B Jr NEGOTIATION91Elwin Sharvill
1016Julie M IturbideSpain2026-08-03Feiner Bros NEGOTIATION86Anna Fali
1017Clifford H DilliardBrazil2026-07-30Dorl, James J Esq QUALIFIED30Asiya Javayant
1018Antonio Q WieserCanada2026-07-24Dorl, James J Esq RENEWAL32Asiya Javayant
1019Salvatore E DarakjyItaly2026-07-19Printing Dimensions RENEWAL70Bernardo Dominic
1020Izzy P WieserItaly2026-07-25Rangoni Of Florence QUALIFIED29Elwin Sharvill
1021Jennifer B BriddickBrazil2026-08-04Chemel, James L Cpa UNQUALIFIED99Onyama Limba
1022Kadeem T ShinkoRussia2026-07-23Feiner Bros UNQUALIFIED61Ivan Magalhaes
1023Jennifer C AlbaresFrance2026-08-04Morlong Associates NEW51Elwin Sharvill
1024Octavia R KolmetzCanada2026-07-16Rousseaux, Michael Esq QUALIFIED57Ioni Bowcher
1025Juan A KuskoAustralia2026-08-07Commercial Press PROPOSAL0Amy Elsner
1026Wickens K StockhamUnited Kingdom2026-07-12Printing Dimensions PROPOSAL3Ivan Magalhaes
1027Juan J StensethItaly2026-07-24Rousseaux, Michael Esq NEW81Stephen Shaw
1028Morrow A FollerGermany2026-08-07Commercial Press NEGOTIATION46Onyama Limba
1029Costa K SlusarskiJapan2026-07-23Chemel, James L Cpa RENEWAL78Asiya Javayant
1030Kaitlin X SchemmerFrance2026-08-05Commercial Press UNQUALIFIED5Amy Elsner
1031Clifford A AlbaresRussia2026-07-29King, Christopher A Esq UNQUALIFIED61Onyama Limba
1032Greenwood Y StockhamArgentina2026-07-27King, Christopher A Esq UNQUALIFIED99Elwin Sharvill
1033James M StockhamAustralia2026-07-27Dorl, James J Esq NEW81Ivan Magalhaes
1034Juan Y GlickUnited Kingdom2026-07-19Feltz Printing Service UNQUALIFIED97Ivan Magalhaes
1035Adams J CampainBrazil2026-07-17Feiner Bros RENEWAL39Xuxue Feng
1036Cody C PaprockiSpain2026-07-23King, Christopher A Esq UNQUALIFIED20Onyama Limba
1037Ivar R CaudyCanada2026-07-19Commercial Press PROPOSAL16Bernardo Dominic
1038Jefferson K PerinJapan2026-07-27Chanay, Jeffrey A Esq NEGOTIATION13Ioni Bowcher
1039Adams T CaudyIndia2026-07-28Feiner Bros RENEWAL65Elwin Sharvill
1040Murillo U GillianUnited Kingdom2026-07-31Feltz Printing Service QUALIFIED59Anna Fali
1041Ashley W PaprockiIndia2026-08-04Rangoni Of Florence PROPOSAL46Amy Elsner
1042Jones Y MarrierBrazil2026-07-19Feltz Printing Service UNQUALIFIED99Stephen Shaw
1043David H FerenczGermany2026-07-17Rousseaux, Michael Esq PROPOSAL99Ivan Magalhaes
1044Deepesh U PerinAustralia2026-07-21Chanay, Jeffrey A Esq NEGOTIATION79Ioni Bowcher
1045Misaki W RoysterSpain2026-07-20Chapman, Ross E Esq NEGOTIATION91Elwin Sharvill
1046Antonio A SaylorsItaly2026-07-19Morlong Associates QUALIFIED15Ivan Magalhaes
1047Faith Q StensethIndia2026-07-28Dorl, James J Esq NEGOTIATION17Xuxue Feng
1048Munro V VocelkaIndia2026-08-05Chapman, Ross E Esq RENEWAL55Onyama Limba
1049Adams Z PoquetteJapan2026-08-07Morlong Associates NEW76Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro B SaylorsRussiaXuxue Feng UNQUALIFIED
Aruna Z RoysterItalyOnyama Limba QUALIFIED
Murillo C WaycottArgentinaBernardo Dominic UNQUALIFIED
James R OldroydItalyIoni Bowcher NEW
Julie A MorascaCanadaOnyama Limba UNQUALIFIED
Kaitlin O MaletGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois B ChuiIndiaAmy Elsner UNQUALIFIED
Sinclair F KolmetzArgentinaElwin Sharvill NEW
Leja I WieserCanadaElwin Sharvill PROPOSAL
Sinclair R RutaBrazilBernardo Dominic RENEWAL
Cody P GauchoItalyAmy Elsner RENEWAL
Darci H CaldareraJapanAnna Fali UNQUALIFIED
Deepesh G KolmetzIndiaElwin Sharvill RENEWAL
Murillo Y SchemmerAustraliaIvan Magalhaes RENEWAL
Jefferson P FlosiBrazilStephen Shaw RENEWAL
Ricardo G WhobreyCanadaStephen Shaw QUALIFIED
Emily M SergiArgentinaXuxue Feng NEW
Deepesh F SlusarskiItalyElwin Sharvill UNQUALIFIED
Chavez A MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Munro B GlickAustraliaAsiya Javayant RENEWAL
Isabel Y ChuiJapanIoni Bowcher NEW
Faith F RutaSpainOnyama Limba NEGOTIATION
Clifford I GlickIndiaBernardo Dominic PROPOSAL
Jennifer C SlusarskiUnited KingdomBernardo Dominic RENEWAL
Salvatore I SaylorsIndiaStephen Shaw NEW
Murillo G FerenczIndiaAsiya Javayant QUALIFIED
Maria J VocelkaSpainIvan Magalhaes QUALIFIED
Aika C CampainSpainIvan Magalhaes NEGOTIATION
Ricardo D CaldareraCanadaStephen Shaw NEGOTIATION
Rodrigues E FerenczJapanOnyama Limba UNQUALIFIED
Mayumi U SaylorsArgentinaIoni Bowcher NEGOTIATION
Maria A CaldareraArgentinaIoni Bowcher RENEWAL
Aditya N MacleadUnited KingdomAmy Elsner PROPOSAL
Julie L BriddickUnited KingdomElwin Sharvill NEW
Stacey C RulapaughJapanStephen Shaw NEW
Kadeem J CaldareraArgentinaBernardo Dominic NEGOTIATION
Jones R WhobreyJapanIoni Bowcher QUALIFIED
Sinclair Z DoeCanadaIvan Magalhaes NEGOTIATION
Costa T RutaAustraliaIvan Magalhaes QUALIFIED
Jones X MaletArgentinaElwin Sharvill NEW
Darci W CampainCanadaStephen Shaw QUALIFIED
Adams R RimAustraliaStephen Shaw NEGOTIATION
Johnson T RutaItalyIoni Bowcher QUALIFIED
Jennifer J BriddickBrazilAsiya Javayant PROPOSAL
Julie I WhobreyCanadaAsiya Javayant QUALIFIED
Faith F FollerArgentinaXuxue Feng QUALIFIED
Clifford L TollnerGermanyElwin Sharvill UNQUALIFIED
Aditya K PaprockiCanadaXuxue Feng NEW
Ivar A MorascaRussiaXuxue Feng NEW
Cody V RulapaughCanadaAsiya Javayant NEW
Frozen Columns
Name
Nicolas S Slusarski
Silvio S Iturbide
Wickens A Sergi
Alejandro U Chui
James N Vocelka
Jefferson U Foller
David Z Nicka
Arvin J Caldarera
Misaki Z Saylors
Greenwood D Rim
Nicolas M Kusko
Mayumi R Marrier
Jeanfrancois E Perin
Adams J Kusko
Rodrigues P Vocelka
Deepesh R Venere
David C Gaucho
Deepesh R Shinko
Greenwood D Tollner
Jennifer H Stockham
Salvatore Z Chui
Deepesh P Tollner
Aruna V Flosi
Leja I Nestle
Jones I Caldarera
Jeanfrancois I Gaucho
Leja S Malet
Alejandro W Whobrey
Sinclair W Caldarera
Silvio R Butt
Adams R Gillian
Julie V Flosi
Smith D Gillian
Octavia R Doe
Murillo K Campain
Faith R Kolmetz
Sinclair X Sergi
Jones H Wieser
Greenwood O Garufi
Emily M Briddick
Stacey T Vocelka
Chavez N Flosi
Arvin J Bowley
Misaki Z Malet
Arvin M Figeroa
Faith Z Maclead
David H Waycott
Leon D Caldarera
Greenwood S Marrier
Izzy K Amigon
IdCountryDate
1000Japan2026-08-05
1001Russia2026-07-22
1002India2026-08-01
1003Australia2026-08-06
1004Germany2026-07-15
1005Spain2026-07-11
1006Germany2026-08-05
1007Japan2026-08-05
1008Australia2026-07-29
1009Brazil2026-07-19
1010Australia2026-07-17
1011Canada2026-07-25
1012India2026-08-03
1013India2026-07-11
1014Germany2026-08-04
1015United Kingdom2026-07-17
1016Canada2026-08-03
1017India2026-08-04
1018Spain2026-07-28
1019Japan2026-07-15
1020Japan2026-07-23
1021Brazil2026-07-31
1022Brazil2026-07-13
1023Italy2026-07-09
1024Russia2026-07-27
1025Germany2026-07-28
1026Russia2026-07-14
1027Canada2026-07-31
1028Canada2026-07-22
1029Australia2026-07-24
1030India2026-08-02
1031Canada2026-07-12
1032Germany2026-08-01
1033Argentina2026-08-04
1034France2026-07-09
1035Canada2026-07-21
1036Brazil2026-07-27
1037India2026-07-13
1038India2026-07-18
1039Brazil2026-07-18
1040Spain2026-08-04
1041Japan2026-08-07
1042India2026-08-03
1043Germany2026-07-12
1044Japan2026-08-06
1045Japan2026-07-22
1046India2026-08-06
1047India2026-07-09
1048Russia2026-07-11
1049France2026-07-17

On-Demand Data

NameIdCountryDate
Mayumi P Malet1000Russia2026-08-03
Jeanfrancois W Chui1001India2026-07-31
Arvin D Foller1002Canada2026-07-26
Octavia H Foller1003Italy2026-07-19
Izzy D Dilliard1004Brazil2026-07-28
Maria K Nicka1005Australia2026-07-29
Claire O Sergi1006Spain2026-08-06
Jeanfrancois Z Saylors1007Russia2026-07-15
Mayumi O Rim1008India2026-08-05
Morrow W Poquette1009India2026-07-28
Wickens W Iturbide1010United Kingdom2026-07-22
James K Perin1011Argentina2026-07-25
Mayumi V Kolmetz1012Brazil2026-07-11
Clifford H Perin1013Canada2026-07-26
Arvin D Stenseth1014Brazil2026-08-07
Silvio L Bowley1015Argentina2026-07-31
Wickens G Flosi1016Spain2026-07-15
Jefferson P Gaucho1017Argentina2026-08-04
Aditya P Tollner1018Spain2026-08-07
Tony J Perin1019Canada2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire O AlbaresFranceOnyama Limba UNQUALIFIED
Faith H GauchoRussiaBernardo Dominic PROPOSAL
Mayumi M AlbaresCanadaOnyama Limba NEGOTIATION
Stacey F VocelkaUnited KingdomStephen Shaw PROPOSAL
David U AmigonUnited KingdomXuxue Feng NEGOTIATION
Alejandro K WieserCanadaIvan Magalhaes NEW
Munro E StensethItalyBernardo Dominic NEW
Tony K AmigonCanadaIvan Magalhaes UNQUALIFIED
Mujtaba A StensethBrazilAnna Fali PROPOSAL
Cody S VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Smith U AmigonGermanyAnna Fali NEGOTIATION
Ashley H SergiArgentinaElwin Sharvill PROPOSAL
Jones W RulapaughRussiaElwin Sharvill NEGOTIATION
Octavia N GlickSpainOnyama Limba NEW
Faith P RimBrazilAnna Fali NEW
Izzy H RimSpainIvan Magalhaes RENEWAL
Octavia J FerenczRussiaBernardo Dominic QUALIFIED
Kadeem G GillianCanadaAsiya Javayant PROPOSAL
Smith N InouyeBrazilIvan Magalhaes UNQUALIFIED
Stacey E OldroydJapanIoni Bowcher NEW
Morrow I GlickSpainXuxue Feng RENEWAL
Ashley Z MorascaIndiaOnyama Limba PROPOSAL
Mayumi V StensethAustraliaXuxue Feng RENEWAL
Ricardo K BriddickFranceAsiya Javayant QUALIFIED
Sinclair P BologniaItalyBernardo Dominic NEGOTIATION
Kaitlin B WhobreyArgentinaAsiya Javayant QUALIFIED
Aruna S FlosiAustraliaBernardo Dominic NEGOTIATION
Murillo X AmigonItalyBernardo Dominic NEW
Munro K FerenczCanadaBernardo Dominic UNQUALIFIED
Emily I WaycottJapanAmy Elsner NEW
Aika O WaycottArgentinaIvan Magalhaes NEW
Octavia Z InouyeCanadaAsiya Javayant UNQUALIFIED
Maisha T BologniaUnited KingdomAsiya Javayant NEGOTIATION
Darci P SchemmerArgentinaElwin Sharvill NEGOTIATION
Jennifer J CampainItalyIoni Bowcher RENEWAL
Salvatore R BowleyArgentinaAmy Elsner RENEWAL
James V StockhamSpainIvan Magalhaes RENEWAL
Stacey Z WieserUnited KingdomIvan Magalhaes QUALIFIED
Deepesh X RoysterSpainElwin Sharvill NEGOTIATION
Misaki N RulapaughArgentinaBernardo Dominic 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>