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
Jeanfrancois J OldroydRussiaElwin Sharvill NEW
Mujtaba Q SchemmerSpainStephen Shaw NEGOTIATION
Costa Z DoeItalyAsiya Javayant NEGOTIATION
Maria A RoysterIndiaStephen Shaw QUALIFIED
Arvin K SlusarskiSpainOnyama Limba NEGOTIATION
Johnson T MarrierIndiaAmy Elsner RENEWAL
Jennifer K FollerSpainIvan Magalhaes QUALIFIED
Wickens F RulapaughGermanyIoni Bowcher RENEWAL
Julie I KolmetzRussiaIvan Magalhaes PROPOSAL
James S IturbideGermanyXuxue Feng UNQUALIFIED
Johnson K PaprockiCanadaAmy Elsner UNQUALIFIED
Cody G MaletGermanyOnyama Limba QUALIFIED
Morrow I DilliardFranceOnyama Limba UNQUALIFIED
Francesco Y OldroydBrazilAsiya Javayant RENEWAL
Izzy O BologniaGermanyAsiya Javayant NEGOTIATION
Murillo N OldroydAustraliaIoni Bowcher PROPOSAL
David Y PerinArgentinaIoni Bowcher QUALIFIED
David J VenereItalyAnna Fali NEGOTIATION
Chavez E SlusarskiSpainAmy Elsner UNQUALIFIED
Tony J AlbaresGermanyXuxue Feng NEW
Maria M GillianFranceStephen Shaw QUALIFIED
Alejandro T WaycottUnited KingdomAnna Fali NEW
Rodrigues P WhobreyGermanyAnna Fali RENEWAL
Octavia Y DoeCanadaBernardo Dominic RENEWAL
Clifford B GarufiBrazilAsiya Javayant RENEWAL
Clifford H StockhamJapanElwin Sharvill UNQUALIFIED
Morrow D GarufiSpainAmy Elsner RENEWAL
Maria N GauchoSpainAsiya Javayant PROPOSAL
Chavez D SlusarskiSpainIvan Magalhaes UNQUALIFIED
Leon K PaprockiFranceIoni Bowcher UNQUALIFIED
Jefferson T RutaItalyXuxue Feng RENEWAL
Aika E ButtItalyBernardo Dominic QUALIFIED
Salvatore W RulapaughUnited KingdomElwin Sharvill QUALIFIED
Smith B RutaGermanyBernardo Dominic RENEWAL
Francesco H MacleadGermanyBernardo Dominic NEGOTIATION
Silvio I GillianItalyAsiya Javayant RENEWAL
Leja T KuskoBrazilAmy Elsner RENEWAL
Antonio S PoquetteJapanIoni Bowcher NEW
Arvin N GarufiUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi M WieserJapanElwin Sharvill UNQUALIFIED
Tony M MacleadAustraliaIoni Bowcher NEW
Francesco G CampainJapanAsiya Javayant NEW
Morrow A TollnerGermanyXuxue Feng QUALIFIED
Maria L MaletBrazilAsiya Javayant RENEWAL
Morrow H MaletUnited KingdomAnna Fali RENEWAL
Kadeem V RoysterItalyIvan Magalhaes NEW
Kaitlin S OldroydFranceAmy Elsner UNQUALIFIED
Johnson G FollerJapanAsiya Javayant RENEWAL
James P WieserGermanyAsiya Javayant UNQUALIFIED
Misaki D GillianUnited KingdomBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore U GlickCanadaAmy Elsner NEGOTIATION
Francesco G NestleArgentinaAmy Elsner NEW
Emily A PerinIndiaIvan Magalhaes NEW
Johnson U SlusarskiIndiaAsiya Javayant PROPOSAL
Johnson G StockhamRussiaElwin Sharvill UNQUALIFIED
Clifford I GillianJapanIoni Bowcher RENEWAL
Misaki I VenereArgentinaAmy Elsner QUALIFIED
Leon J InouyeArgentinaOnyama Limba NEGOTIATION
Alejandro C FerenczFranceXuxue Feng NEGOTIATION
Izzy H CaldareraIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna C GauchoUnited Kingdom2025-06-13Chanay, Jeffrey A Esq NEW10Stephen Shaw
1001Costa N CaudyJapan2025-06-10Chemel, James L Cpa NEGOTIATION69Stephen Shaw
1002David V CaudyAustralia2025-06-07Chemel, James L Cpa UNQUALIFIED25Bernardo Dominic
1003Wickens A CaldareraFrance2025-06-10Commercial Press NEGOTIATION89Amy Elsner
1004Mayumi M VocelkaItaly2025-05-28Dorl, James J Esq RENEWAL9Bernardo Dominic
1005Isabel B FlosiGermany2025-05-20Printing Dimensions NEW5Ivan Magalhaes
1006Ricardo U MarrierFrance2025-05-26King, Christopher A Esq PROPOSAL23Ioni Bowcher
1007Chavez C BologniaGermany2025-05-28Dorl, James J Esq RENEWAL54Ivan Magalhaes
1008Antonio Y TollnerArgentina2025-05-26Truhlar And Truhlar Attys RENEWAL3Onyama Limba
1009Jones Q NickaSpain2025-05-27Feltz Printing Service PROPOSAL26Stephen Shaw
1010Morrow V ButtBrazil2025-05-28King, Christopher A Esq NEW83Onyama Limba
1011Ivar J DilliardUnited Kingdom2025-06-01Printing Dimensions PROPOSAL59Bernardo Dominic
1012Ricardo A SchemmerFrance2025-05-27Feltz Printing Service NEGOTIATION60Anna Fali
1013Jones X DoeBrazil2025-06-13Dorl, James J Esq NEW12Amy Elsner
1014Ricardo J CaldareraBrazil2025-05-28Feiner Bros UNQUALIFIED89Amy Elsner
1015Jeanfrancois S DarakjyBrazil2025-06-04Chanay, Jeffrey A Esq NEW64Ioni Bowcher
1016Jefferson Y TollnerGermany2025-06-02King, Christopher A Esq NEGOTIATION16Xuxue Feng
1017Leon N FlosiArgentina2025-05-26King, Christopher A Esq UNQUALIFIED70Ivan Magalhaes
1018Nicolas X GauchoCanada2025-05-30Dorl, James J Esq RENEWAL0Bernardo Dominic
1019Jefferson C WieserJapan2025-05-21Commercial Press NEGOTIATION53Xuxue Feng
1020Silvio U PerinRussia2025-05-23Rangoni Of Florence RENEWAL61Ivan Magalhaes
1021Ricardo H SaylorsAustralia2025-05-17Chemel, James L Cpa RENEWAL31Amy Elsner
1022Aika V SaylorsFrance2025-06-03Commercial Press PROPOSAL25Ioni Bowcher
1023Jefferson U VocelkaSpain2025-06-10Benton, John B Jr PROPOSAL11Anna Fali
1024Julie B PoquetteRussia2025-06-06Truhlar And Truhlar Attys NEGOTIATION26Asiya Javayant
1025Murillo O ChuiFrance2025-06-13Chanay, Jeffrey A Esq UNQUALIFIED55Asiya Javayant
1026Claire P RoysterBrazil2025-06-11Commercial Press NEW40Ioni Bowcher
1027Leja E WaycottBrazil2025-06-10Feiner Bros NEW30Elwin Sharvill
1028Darci R OstroskySpain2025-06-13Feiner Bros PROPOSAL57Asiya Javayant
1029Mayumi C DarakjyItaly2025-06-11Truhlar And Truhlar Attys UNQUALIFIED99Anna Fali
1030Jeanfrancois S ButtIndia2025-05-21Commercial Press RENEWAL52Onyama Limba
1031Munro X RoysterRussia2025-05-25Commercial Press UNQUALIFIED93Anna Fali
1032Emily H DarakjySpain2025-06-09Truhlar And Truhlar Attys NEW26Ioni Bowcher
1033Johnson T SergiBrazil2025-05-24Truhlar And Truhlar Attys UNQUALIFIED56Ivan Magalhaes
1034Claire Q FerenczUnited Kingdom2025-05-26Rangoni Of Florence RENEWAL43Bernardo Dominic
1035Kadeem Z StensethFrance2025-05-29Commercial Press UNQUALIFIED79Elwin Sharvill
1036Tony C SaylorsRussia2025-06-11Rousseaux, Michael Esq NEGOTIATION61Amy Elsner
1037Alejandro P GillianCanada2025-05-20Morlong Associates NEW13Anna Fali
1038Aika J OstroskyItaly2025-06-13Rangoni Of Florence UNQUALIFIED7Ioni Bowcher
1039Jefferson S MacleadArgentina2025-06-05Rangoni Of Florence PROPOSAL29Ivan Magalhaes
1040Isabel D ChuiItaly2025-06-07Feiner Bros NEW2Bernardo Dominic
1041Faith R PerinJapan2025-05-20Truhlar And Truhlar Attys NEW26Ioni Bowcher
1042Francesco O BowleyBrazil2025-06-14Benton, John B Jr PROPOSAL77Stephen Shaw
1043Isabel T FollerBrazil2025-05-28Chemel, James L Cpa RENEWAL57Stephen Shaw
1044Sinclair Z PoquetteCanada2025-06-08Buckley Miller Wright PROPOSAL5Elwin Sharvill
1045Kadeem I SaylorsFrance2025-05-17Feiner Bros QUALIFIED34Elwin Sharvill
1046Chavez U ChuiGermany2025-05-31Benton, John B Jr RENEWAL50Stephen Shaw
1047Jefferson I MaletGermany2025-05-19Commercial Press UNQUALIFIED39Onyama Limba
1048Maria I StockhamFrance2025-06-01King, Christopher A Esq NEW17Elwin Sharvill
1049Jeanfrancois K TollnerRussia2025-06-11Truhlar And Truhlar Attys UNQUALIFIED27Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois B StockhamCanadaAmy Elsner NEGOTIATION
Munro D PerinSpainElwin Sharvill UNQUALIFIED
Julie T MarrierIndiaXuxue Feng NEGOTIATION
Emily W VenereFranceAsiya Javayant UNQUALIFIED
Leja A PoquetteJapanStephen Shaw UNQUALIFIED
Ricardo W MacleadCanadaOnyama Limba PROPOSAL
Izzy Q BologniaIndiaIvan Magalhaes NEW
Juan Y SlusarskiItalyStephen Shaw NEW
Francesco O WhobreyIndiaXuxue Feng RENEWAL
Murillo Z GauchoJapanIoni Bowcher RENEWAL
Aika P AmigonIndiaElwin Sharvill NEW
Kadeem F GillianBrazilOnyama Limba PROPOSAL
Aditya R BowleyRussiaAnna Fali UNQUALIFIED
Murillo F OstroskyArgentinaOnyama Limba RENEWAL
Smith X KolmetzGermanyAmy Elsner QUALIFIED
Leon N FlosiIndiaOnyama Limba UNQUALIFIED
Stacey O RulapaughGermanyAsiya Javayant PROPOSAL
David G BriddickFranceIvan Magalhaes RENEWAL
Aditya W MaletUnited KingdomIoni Bowcher UNQUALIFIED
Aruna X FlosiRussiaIvan Magalhaes PROPOSAL
Arvin L MorascaCanadaXuxue Feng NEW
Darci G FerenczSpainElwin Sharvill QUALIFIED
Morrow G MacleadUnited KingdomAmy Elsner NEGOTIATION
Julie S CaldareraBrazilAnna Fali UNQUALIFIED
Aika J WhobreyGermanyIoni Bowcher NEGOTIATION
Wickens P RutaItalyStephen Shaw NEGOTIATION
Silvio I RimItalyIvan Magalhaes QUALIFIED
Aruna S BriddickFranceAsiya Javayant UNQUALIFIED
Tony N WieserIndiaOnyama Limba NEGOTIATION
Nicolas Q RoysterSpainXuxue Feng PROPOSAL
Silvio K MarrierCanadaIvan Magalhaes UNQUALIFIED
Arvin D MaletRussiaOnyama Limba RENEWAL
Julie V PoquetteRussiaIoni Bowcher PROPOSAL
Jefferson P FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair V SaylorsItalyAnna Fali NEGOTIATION
Costa B BologniaAustraliaAmy Elsner RENEWAL
David T OstroskyIndiaElwin Sharvill PROPOSAL
Rodrigues R SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
Costa B OldroydUnited KingdomAnna Fali PROPOSAL
Costa L WieserRussiaAnna Fali NEW
Stacey E VocelkaItalyStephen Shaw NEGOTIATION
Maisha N CaldareraUnited KingdomStephen Shaw QUALIFIED
Ashley G MarrierSpainIvan Magalhaes RENEWAL
Kaitlin C RimSpainAnna Fali NEGOTIATION
Jeanfrancois R ChuiIndiaXuxue Feng PROPOSAL
Maria Z CampainItalyIvan Magalhaes NEW
Greenwood C SlusarskiBrazilOnyama Limba RENEWAL
Maria B GauchoItalyAmy Elsner QUALIFIED
Juan M ShinkoFranceAsiya Javayant QUALIFIED
Aditya I FerenczIndiaAmy Elsner QUALIFIED
Frozen Columns
Name
Cody N Ruta
Aruna J Wieser
Sinclair D Paprocki
Leja I Rulapaugh
Silvio W Sergi
Adams J Royster
Nicolas N Foller
Silvio Y Doe
Mujtaba Y Poquette
Maria R Poquette
Octavia X Shinko
Jefferson W Gillian
Antonio X Flosi
Jones I Vocelka
Aditya W Royster
Mujtaba D Darakjy
Clifford R Dilliard
Aika Y Nicka
James T Amigon
Chavez U Caudy
Jeanfrancois Z Stenseth
Antonio J Campain
Emily G Garufi
David O Morasca
Darci S Schemmer
Tony W Darakjy
Isabel P Maclead
James J Ostrosky
Arvin W Darakjy
Darci T Maclead
Cody E Iturbide
Rodrigues V Poquette
Isabel B Amigon
Maria S Kusko
Morrow J Stockham
Emily V Saylors
Mayumi G Darakjy
Greenwood V Campain
Ricardo W Iturbide
Clifford B Perin
Jennifer W Sergi
Arvin W Schemmer
Arvin H Ferencz
Nicolas B Gillian
Maisha T Slusarski
Julie P Darakjy
Rodrigues L Amigon
Aruna M Wieser
Julie G Morasca
Jennifer Z Chui
IdCountryDate
1000India2025-05-24
1001Spain2025-06-04
1002Russia2025-05-24
1003Canada2025-05-24
1004Spain2025-05-24
1005United Kingdom2025-06-09
1006Italy2025-05-29
1007United Kingdom2025-06-13
1008Canada2025-06-09
1009India2025-05-17
1010France2025-06-14
1011Russia2025-06-09
1012Russia2025-05-28
1013Germany2025-06-13
1014United Kingdom2025-06-10
1015Russia2025-05-24
1016Australia2025-06-05
1017Canada2025-05-29
1018Italy2025-06-04
1019Japan2025-05-21
1020Russia2025-06-06
1021Brazil2025-05-27
1022United Kingdom2025-05-31
1023Russia2025-06-15
1024Japan2025-06-11
1025United Kingdom2025-05-31
1026Brazil2025-05-28
1027Argentina2025-06-01
1028France2025-06-07
1029Argentina2025-06-02
1030France2025-05-24
1031India2025-05-26
1032France2025-06-07
1033Argentina2025-05-29
1034France2025-05-17
1035India2025-06-02
1036France2025-05-25
1037Russia2025-05-21
1038Spain2025-06-14
1039Germany2025-05-18
1040Germany2025-06-14
1041Brazil2025-06-15
1042Canada2025-06-01
1043Canada2025-06-03
1044France2025-05-17
1045Germany2025-06-03
1046United Kingdom2025-05-24
1047Spain2025-06-04
1048Italy2025-06-15
1049Russia2025-05-24

On-Demand Data

NameIdCountryDate
Misaki T Bolognia1000United Kingdom2025-06-15
Jones E Nicka1001Brazil2025-06-06
Jennifer Q Caudy1002Argentina2025-05-17
Kaitlin I Tollner1003India2025-05-17
Greenwood J Caudy1004Japan2025-06-07
Morrow F Wieser1005Argentina2025-05-18
Mujtaba S Caudy1006Germany2025-06-12
Emily O Kolmetz1007Spain2025-06-05
Antonio P Poquette1008India2025-05-26
Munro R Chui1009Canada2025-05-24
Cody T Malet1010Canada2025-06-15
Emily D Dilliard1011Russia2025-06-08
Juan Q Malet1012Canada2025-05-30
Nicolas Y Figeroa1013Canada2025-06-09
Munro C Gillian1014France2025-06-14
Costa G Marrier1015Argentina2025-05-18
Julie J Glick1016France2025-05-29
Aruna P Maclead1017Russia2025-05-23
Wickens M Shinko1018United Kingdom2025-05-22
Clifford S Glick1019Australia2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio G SchemmerSpainXuxue Feng NEGOTIATION
Darci H FigeroaArgentinaElwin Sharvill NEW
Deepesh K RoysterUnited KingdomBernardo Dominic NEGOTIATION
Faith L ButtAustraliaAsiya Javayant UNQUALIFIED
Wickens H VocelkaCanadaElwin Sharvill UNQUALIFIED
Ivar H VenereIndiaAnna Fali RENEWAL
Costa R OstroskyRussiaElwin Sharvill NEW
Munro Y FlosiJapanOnyama Limba RENEWAL
Aika P CaldareraBrazilBernardo Dominic NEW
Munro T FollerGermanyAmy Elsner RENEWAL
Johnson K OldroydAustraliaAnna Fali NEW
Leja K ChuiBrazilXuxue Feng NEW
Arvin K RutaArgentinaStephen Shaw NEGOTIATION
Izzy P ChuiJapanElwin Sharvill RENEWAL
Nicolas H KolmetzRussiaIvan Magalhaes UNQUALIFIED
Maria Y FlosiRussiaAnna Fali NEW
Wickens N StockhamBrazilAsiya Javayant PROPOSAL
Alejandro M GauchoArgentinaIvan Magalhaes RENEWAL
James R ChuiFranceAnna Fali NEW
Nicolas X StensethItalyAsiya Javayant UNQUALIFIED
Tony J RulapaughIndiaXuxue Feng NEW
Alejandro Q ShinkoSpainIoni Bowcher RENEWAL
David D BologniaSpainStephen Shaw UNQUALIFIED
Wickens Y FigeroaUnited KingdomXuxue Feng QUALIFIED
Tony K PerinGermanyIvan Magalhaes NEW
Sinclair B MaletAustraliaXuxue Feng UNQUALIFIED
Jefferson Q CampainCanadaBernardo Dominic PROPOSAL
Kadeem R VenereItalyAmy Elsner PROPOSAL
Sinclair A FerenczRussiaElwin Sharvill QUALIFIED
James G CaudyArgentinaAsiya Javayant NEGOTIATION
Arvin U KolmetzUnited KingdomIoni Bowcher QUALIFIED
Julie E DarakjyUnited KingdomOnyama Limba RENEWAL
Emily K CaldareraCanadaXuxue Feng QUALIFIED
Aruna I TollnerUnited KingdomStephen Shaw NEW
Chavez S KolmetzItalyElwin Sharvill UNQUALIFIED
Jeanfrancois W StockhamIndiaStephen Shaw NEW
Octavia P TollnerItalyStephen Shaw QUALIFIED
Cody G RoysterItalyIoni Bowcher QUALIFIED
Jones O FollerArgentinaOnyama Limba QUALIFIED
Maria T BowleyBrazilAmy Elsner UNQUALIFIED

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