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
Maisha K GarufiJapanStephen Shaw PROPOSAL
Stacey D GauchoFranceAnna Fali PROPOSAL
Deepesh M MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Tony X DarakjyCanadaOnyama Limba PROPOSAL
Stacey V AlbaresSpainAnna Fali PROPOSAL
Aika Y PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Julie Q FigeroaItalyXuxue Feng NEW
Francesco N BriddickBrazilAmy Elsner RENEWAL
Mujtaba L RoysterBrazilStephen Shaw QUALIFIED
Morrow V AmigonJapanAnna Fali UNQUALIFIED
Tony U GillianAustraliaOnyama Limba QUALIFIED
Costa F VenereCanadaAsiya Javayant NEGOTIATION
Francesco I NestleUnited KingdomAsiya Javayant QUALIFIED
Emily J WaycottCanadaIvan Magalhaes NEGOTIATION
Morrow M SergiArgentinaIoni Bowcher RENEWAL
Rodrigues U StockhamCanadaAmy Elsner UNQUALIFIED
Cody I MaletJapanOnyama Limba RENEWAL
Wickens D GillianItalyBernardo Dominic PROPOSAL
Aditya A StockhamItalyIoni Bowcher UNQUALIFIED
Antonio Z VenereFranceIvan Magalhaes QUALIFIED
Aruna T ButtAustraliaElwin Sharvill PROPOSAL
Alejandro F RimAustraliaElwin Sharvill RENEWAL
Antonio C BowleySpainOnyama Limba PROPOSAL
Jeanfrancois M MarrierJapanStephen Shaw PROPOSAL
Jones U NickaArgentinaAnna Fali RENEWAL
Mujtaba F ChuiIndiaAmy Elsner QUALIFIED
Kaitlin Y IturbideAustraliaOnyama Limba QUALIFIED
Adams Z RimIndiaAmy Elsner UNQUALIFIED
Kadeem T AlbaresUnited KingdomXuxue Feng NEW
Johnson O PoquetteCanadaStephen Shaw NEGOTIATION
Cody K VocelkaAustraliaBernardo Dominic NEW
Maisha L DilliardSpainBernardo Dominic NEGOTIATION
Costa Y StockhamUnited KingdomElwin Sharvill RENEWAL
Mujtaba F OstroskyIndiaStephen Shaw NEW
David F GarufiCanadaIvan Magalhaes RENEWAL
Johnson L VocelkaRussiaElwin Sharvill QUALIFIED
David F VenereUnited KingdomAnna Fali RENEWAL
Wickens O OldroydIndiaStephen Shaw PROPOSAL
Aditya O CaudyArgentinaAnna Fali NEW
Juan D RimCanadaOnyama Limba PROPOSAL
Izzy W SlusarskiBrazilAsiya Javayant NEW
Julie Q DarakjyFranceStephen Shaw UNQUALIFIED
Aika K ButtUnited KingdomXuxue Feng NEGOTIATION
Cody E KolmetzJapanStephen Shaw QUALIFIED
Izzy Z CampainSpainIvan Magalhaes UNQUALIFIED
Maisha K GillianAustraliaAnna Fali NEW
Faith J WieserAustraliaOnyama Limba RENEWAL
Maria J ButtCanadaElwin Sharvill QUALIFIED
Costa Z StockhamJapanXuxue Feng NEW
Nicolas T DarakjyCanadaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie F OstroskyArgentinaOnyama Limba UNQUALIFIED
Munro I KolmetzAustraliaStephen Shaw PROPOSAL
Smith K StockhamSpainOnyama Limba NEGOTIATION
Emily O RulapaughAustraliaAnna Fali NEW
Tony O DoeArgentinaAmy Elsner NEGOTIATION
Faith A SchemmerCanadaOnyama Limba NEGOTIATION
Nicolas J StensethArgentinaAsiya Javayant UNQUALIFIED
Ivar B OstroskyRussiaIvan Magalhaes UNQUALIFIED
Stacey B ChuiFranceOnyama Limba PROPOSAL
Costa I PaprockiItalyIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro D RulapaughJapan2026-06-07Buckley Miller Wright NEGOTIATION82Ioni Bowcher
1001Mayumi R RulapaughIndia2026-06-17Feltz Printing Service RENEWAL32Amy Elsner
1002Octavia W BriddickUnited Kingdom2026-06-28Chemel, James L Cpa RENEWAL90Amy Elsner
1003Tony C GlickSpain2026-06-11Truhlar And Truhlar Attys NEW25Ioni Bowcher
1004Faith R GillianBrazil2026-06-06Printing Dimensions PROPOSAL11Bernardo Dominic
1005Antonio K FlosiRussia2026-06-14King, Christopher A Esq NEW53Stephen Shaw
1006Cody Y GauchoArgentina2026-06-03Chanay, Jeffrey A Esq QUALIFIED64Stephen Shaw
1007Smith Y PaprockiUnited Kingdom2026-06-30Chapman, Ross E Esq PROPOSAL10Onyama Limba
1008Silvio Q GauchoRussia2026-06-17Commercial Press NEGOTIATION76Onyama Limba
1009Ivar J SaylorsUnited Kingdom2026-06-26Dorl, James J Esq NEW46Stephen Shaw
1010Izzy N PoquetteSpain2026-06-07Rousseaux, Michael Esq NEW19Ivan Magalhaes
1011Octavia C NickaBrazil2026-07-01Chanay, Jeffrey A Esq NEGOTIATION68Stephen Shaw
1012Maisha A BowleyAustralia2026-06-15Feiner Bros RENEWAL49Anna Fali
1013Ricardo O CaudyItaly2026-06-23Chapman, Ross E Esq NEGOTIATION72Onyama Limba
1014Greenwood D StockhamUnited Kingdom2026-06-06Chapman, Ross E Esq NEW12Amy Elsner
1015Wickens N DilliardBrazil2026-06-03King, Christopher A Esq NEGOTIATION50Anna Fali
1016Munro Z VenereBrazil2026-06-17Commercial Press NEW31Stephen Shaw
1017Morrow Y RutaAustralia2026-06-25Rangoni Of Florence PROPOSAL42Elwin Sharvill
1018Chavez Z FollerRussia2026-06-28Rousseaux, Michael Esq UNQUALIFIED12Ioni Bowcher
1019Aruna G DarakjyAustralia2026-06-17Printing Dimensions QUALIFIED1Elwin Sharvill
1020Faith H GauchoIndia2026-06-16Printing Dimensions NEW30Stephen Shaw
1021Jeanfrancois V BowleyAustralia2026-06-07King, Christopher A Esq NEGOTIATION42Xuxue Feng
1022Aruna D DilliardRussia2026-06-30Feltz Printing Service PROPOSAL60Elwin Sharvill
1023Greenwood X ShinkoItaly2026-06-06Chemel, James L Cpa NEGOTIATION36Elwin Sharvill
1024David N MacleadSpain2026-06-28King, Christopher A Esq NEW78Anna Fali
1025Cody M InouyeRussia2026-06-10Rousseaux, Michael Esq PROPOSAL88Amy Elsner
1026Darci B ShinkoSpain2026-06-25Feiner Bros UNQUALIFIED21Xuxue Feng
1027Sinclair I WaycottGermany2026-06-04Morlong Associates RENEWAL17Stephen Shaw
1028Kaitlin Q DilliardRussia2026-06-28Rangoni Of Florence RENEWAL51Onyama Limba
1029Silvio B NickaUnited Kingdom2026-06-16Morlong Associates RENEWAL22Amy Elsner
1030Alejandro D ChuiItaly2026-06-09Chanay, Jeffrey A Esq UNQUALIFIED71Anna Fali
1031Johnson C TollnerItaly2026-06-13Buckley Miller Wright UNQUALIFIED6Bernardo Dominic
1032Salvatore K MarrierItaly2026-06-22Truhlar And Truhlar Attys QUALIFIED43Elwin Sharvill
1033Isabel N AmigonFrance2026-06-10Printing Dimensions UNQUALIFIED99Asiya Javayant
1034Kaitlin R IturbideJapan2026-06-30Chanay, Jeffrey A Esq PROPOSAL56Asiya Javayant
1035Cody M PoquetteAustralia2026-06-27Buckley Miller Wright NEW27Elwin Sharvill
1036Antonio X MaletSpain2026-06-13Truhlar And Truhlar Attys NEGOTIATION10Stephen Shaw
1037Clifford N FerenczCanada2026-06-19Dorl, James J Esq NEW58Stephen Shaw
1038Rodrigues W TollnerBrazil2026-06-13Truhlar And Truhlar Attys QUALIFIED32Stephen Shaw
1039Jefferson B ShinkoBrazil2026-06-28Chapman, Ross E Esq UNQUALIFIED22Stephen Shaw
1040Munro E GarufiArgentina2026-06-22King, Christopher A Esq RENEWAL92Ioni Bowcher
1041Jefferson E NestleRussia2026-06-05Feiner Bros PROPOSAL17Elwin Sharvill
1042Ricardo S AmigonItaly2026-06-29Rangoni Of Florence RENEWAL45Ivan Magalhaes
1043Aditya S CaldareraRussia2026-06-06Printing Dimensions QUALIFIED59Xuxue Feng
1044Ivar O TollnerAustralia2026-06-25Benton, John B Jr PROPOSAL91Xuxue Feng
1045Jones F WaycottJapan2026-06-10Buckley Miller Wright QUALIFIED7Bernardo Dominic
1046Tony D TollnerCanada2026-06-29Chanay, Jeffrey A Esq RENEWAL13Anna Fali
1047Munro L GlickJapan2026-06-23Feltz Printing Service UNQUALIFIED36Anna Fali
1048Deepesh D ChuiGermany2026-06-20Chapman, Ross E Esq RENEWAL78Asiya Javayant
1049Jefferson L SchemmerCanada2026-06-19Commercial Press PROPOSAL24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Isabel T WieserAustraliaAmy Elsner NEGOTIATION
Aruna D DilliardAustraliaOnyama Limba NEGOTIATION
Aika Z MaletAustraliaIoni Bowcher NEGOTIATION
Octavia W OstroskyRussiaAmy Elsner QUALIFIED
Tony Z PoquetteBrazilAnna Fali UNQUALIFIED
Octavia A FerenczSpainIoni Bowcher NEGOTIATION
Chavez F FollerBrazilElwin Sharvill QUALIFIED
Salvatore Z FerenczFranceAnna Fali QUALIFIED
Adams Y RoysterGermanyAnna Fali NEW
Deepesh F WaycottRussiaAmy Elsner NEW
Chavez F WhobreySpainStephen Shaw QUALIFIED
Salvatore H RulapaughSpainAnna Fali UNQUALIFIED
Arvin G BologniaBrazilOnyama Limba NEGOTIATION
Silvio Q CaudyItalyOnyama Limba NEGOTIATION
Tony W GarufiRussiaAnna Fali QUALIFIED
Jennifer W SergiArgentinaXuxue Feng NEGOTIATION
Ivar B ChuiBrazilAmy Elsner NEGOTIATION
Morrow B FigeroaFranceIoni Bowcher NEGOTIATION
Maisha X SlusarskiBrazilAmy Elsner NEGOTIATION
Izzy I OldroydAustraliaIvan Magalhaes QUALIFIED
Tony G WieserFranceBernardo Dominic PROPOSAL
Johnson T MacleadBrazilAnna Fali NEW
Nicolas W RutaUnited KingdomIoni Bowcher UNQUALIFIED
Jones T SchemmerUnited KingdomAnna Fali NEW
Sinclair R RulapaughJapanIoni Bowcher NEW
Emily L AlbaresSpainXuxue Feng NEGOTIATION
Costa J SaylorsJapanAnna Fali QUALIFIED
Darci T DilliardBrazilOnyama Limba PROPOSAL
Maisha X DoeUnited KingdomBernardo Dominic RENEWAL
Cody P NickaCanadaStephen Shaw NEW
Arvin U MaletJapanAsiya Javayant QUALIFIED
Nicolas U GauchoIndiaIoni Bowcher QUALIFIED
Faith H WieserJapanStephen Shaw QUALIFIED
Deepesh H NestleItalyBernardo Dominic NEW
Munro W NestleCanadaStephen Shaw QUALIFIED
Salvatore Q BriddickBrazilOnyama Limba NEW
Ivar Q GarufiSpainStephen Shaw QUALIFIED
Johnson O RimFranceBernardo Dominic PROPOSAL
Nicolas P VocelkaBrazilAmy Elsner QUALIFIED
Jennifer U KolmetzJapanElwin Sharvill NEW
Jeanfrancois Q WaycottIndiaAnna Fali RENEWAL
Greenwood T KolmetzBrazilBernardo Dominic NEGOTIATION
Sinclair U GarufiSpainAnna Fali UNQUALIFIED
Ivar U MaletItalyStephen Shaw RENEWAL
Ivar T StockhamJapanAsiya Javayant NEW
Leon W ChuiIndiaIvan Magalhaes RENEWAL
Faith D SchemmerCanadaIoni Bowcher NEGOTIATION
Stacey C MaletCanadaBernardo Dominic UNQUALIFIED
Rodrigues X GlickSpainIvan Magalhaes NEW
Julie C SergiSpainOnyama Limba NEW
Frozen Columns
Name
Leja R Oldroyd
Alejandro I Stenseth
Mayumi J Glick
Salvatore N Briddick
James Z Malet
Murillo A Paprocki
Octavia Q Glick
Arvin A Albares
Faith G Gaucho
Leja E Bowley
Emily O Saylors
Deepesh X Tollner
Emily G Shinko
Rodrigues R Bowley
Munro V Perin
James S Dilliard
Munro B Paprocki
Claire U Sergi
Alejandro Z Flosi
Johnson V Nestle
Sinclair A Marrier
Leja K Vocelka
Chavez S Rulapaugh
Aika E Royster
Murillo N Bowley
Clifford E Kusko
Wickens G Rim
Deepesh E Morasca
Stacey R Foller
Nicolas M Kolmetz
Julie I Rulapaugh
Izzy W Inouye
Costa S Butt
Jones F Poquette
Isabel Q Gillian
Emily Y Foller
Faith M Campain
Kaitlin S Bowley
Kaitlin R Morasca
Claire R Kusko
Salvatore Y Inouye
Clifford X Vocelka
Maria S Venere
Tony L Shinko
Octavia G Inouye
Munro Q Sergi
Antonio H Whobrey
Faith V Inouye
Wickens P Morasca
Jeanfrancois Y Rulapaugh
IdCountryDate
1000Brazil2026-06-20
1001United Kingdom2026-06-18
1002Argentina2026-06-20
1003United Kingdom2026-06-07
1004Canada2026-06-04
1005Italy2026-06-20
1006France2026-06-05
1007Italy2026-06-25
1008Canada2026-06-02
1009Japan2026-06-25
1010Spain2026-06-11
1011Italy2026-06-10
1012Russia2026-06-13
1013Canada2026-06-29
1014Russia2026-06-08
1015Brazil2026-06-23
1016Canada2026-07-01
1017Australia2026-06-30
1018France2026-06-23
1019France2026-06-08
1020Russia2026-06-29
1021India2026-06-25
1022Germany2026-06-17
1023Italy2026-06-29
1024Argentina2026-06-07
1025Canada2026-06-23
1026Russia2026-06-12
1027Italy2026-06-19
1028Spain2026-06-16
1029India2026-06-27
1030Russia2026-06-16
1031Russia2026-06-05
1032Brazil2026-06-10
1033Argentina2026-06-21
1034Italy2026-06-05
1035India2026-06-07
1036France2026-06-18
1037Argentina2026-07-01
1038Canada2026-06-10
1039Japan2026-06-19
1040Argentina2026-06-30
1041Russia2026-06-14
1042Germany2026-06-08
1043Japan2026-06-09
1044Italy2026-07-01
1045Canada2026-06-26
1046Spain2026-06-07
1047Canada2026-06-13
1048Canada2026-06-11
1049Russia2026-06-28

On-Demand Data

NameIdCountryDate
Sinclair L Oldroyd1000Spain2026-06-16
Antonio P Doe1001United Kingdom2026-06-06
Tony U Nestle1002India2026-06-26
Juan B Morasca1003Brazil2026-06-14
Chavez Y Vocelka1004Japan2026-06-04
Jefferson Y Gaucho1005Japan2026-06-05
Juan C Nicka1006United Kingdom2026-06-11
Tony A Marrier1007Brazil2026-06-26
Isabel K Inouye1008Italy2026-06-04
Greenwood E Glick1009India2026-06-16
David I Glick1010Japan2026-06-03
Smith O Rim1011United Kingdom2026-06-25
Arvin Y Sergi1012Japan2026-06-05
Maisha X Glick1013Australia2026-06-14
Smith U Poquette1014Italy2026-06-26
Adams H Schemmer1015Australia2026-06-09
Murillo F Poquette1016India2026-06-21
Aika I Inouye1017Japan2026-06-16
Sinclair W Rulapaugh1018Japan2026-06-29
Salvatore P Wieser1019Russia2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio X FollerIndiaIvan Magalhaes NEW
Juan Y GillianAustraliaElwin Sharvill UNQUALIFIED
Wickens K MacleadUnited KingdomBernardo Dominic RENEWAL
Munro L IturbideJapanAnna Fali RENEWAL
Johnson K DarakjyJapanAnna Fali NEW
Cody B ChuiFranceIvan Magalhaes UNQUALIFIED
Claire U StensethUnited KingdomOnyama Limba NEW
David J GauchoIndiaIoni Bowcher UNQUALIFIED
Salvatore M RutaGermanyAnna Fali UNQUALIFIED
Cody W OldroydBrazilElwin Sharvill QUALIFIED
Chavez A DilliardBrazilAnna Fali NEGOTIATION
Darci D GarufiJapanAsiya Javayant NEGOTIATION
Jeanfrancois F StockhamIndiaAmy Elsner NEGOTIATION
Alejandro B GauchoIndiaOnyama Limba NEGOTIATION
James R NickaArgentinaAsiya Javayant NEGOTIATION
James W FerenczArgentinaIoni Bowcher UNQUALIFIED
Aika H AlbaresArgentinaOnyama Limba QUALIFIED
Nicolas M AlbaresFranceBernardo Dominic PROPOSAL
Jeanfrancois J FerenczRussiaAnna Fali NEGOTIATION
Johnson W CaldareraJapanOnyama Limba UNQUALIFIED
Munro T FlosiRussiaXuxue Feng NEGOTIATION
Cody I SchemmerFranceAsiya Javayant PROPOSAL
Jeanfrancois C CaldareraBrazilAsiya Javayant NEGOTIATION
Chavez L NickaItalyElwin Sharvill NEGOTIATION
Octavia C OstroskyJapanStephen Shaw NEW
Salvatore M GillianItalyAmy Elsner NEGOTIATION
Leon F RimUnited KingdomAnna Fali PROPOSAL
Greenwood I KolmetzItalyXuxue Feng RENEWAL
Johnson E SchemmerGermanyIvan Magalhaes RENEWAL
Morrow U MaletAustraliaAnna Fali NEGOTIATION
Mujtaba T FerenczFranceBernardo Dominic PROPOSAL
Smith G GarufiAustraliaAmy Elsner RENEWAL
Tony Q RimSpainElwin Sharvill PROPOSAL
Costa H PaprockiArgentinaIoni Bowcher UNQUALIFIED
Munro V DilliardGermanyIoni Bowcher UNQUALIFIED
Deepesh W GillianJapanBernardo Dominic NEW
Aditya W SlusarskiGermanyAnna Fali NEGOTIATION
Arvin Z SchemmerBrazilStephen Shaw PROPOSAL
Ashley D DoeItalyElwin Sharvill NEGOTIATION
Wickens T FerenczBrazilXuxue Feng 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>