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 E PaprockiSpainXuxue Feng NEGOTIATION
Cody G SchemmerRussiaAmy Elsner NEGOTIATION
Kaitlin N RutaRussiaElwin Sharvill NEW
Sinclair G InouyeItalyIvan Magalhaes UNQUALIFIED
Clifford Q NickaUnited KingdomElwin Sharvill PROPOSAL
Leja A CaldareraAustraliaStephen Shaw NEGOTIATION
Emily L OstroskyItalyIvan Magalhaes RENEWAL
Leon S CampainGermanyStephen Shaw QUALIFIED
Mujtaba A CaldareraJapanStephen Shaw RENEWAL
Francesco U KuskoCanadaElwin Sharvill QUALIFIED
Maria P DoeItalyIvan Magalhaes RENEWAL
Jefferson X MaletSpainAnna Fali PROPOSAL
Greenwood U KuskoUnited KingdomXuxue Feng UNQUALIFIED
Aika C BowleyJapanElwin Sharvill RENEWAL
Leon P CampainBrazilBernardo Dominic UNQUALIFIED
Tony N BriddickGermanyAmy Elsner UNQUALIFIED
James J GarufiSpainAnna Fali UNQUALIFIED
Darci R IturbideFranceXuxue Feng QUALIFIED
Ivar L SaylorsSpainAnna Fali NEW
Faith I NickaSpainStephen Shaw RENEWAL
Antonio J FerenczItalyIoni Bowcher RENEWAL
Adams R MorascaFranceElwin Sharvill UNQUALIFIED
Francesco W AmigonGermanyAsiya Javayant PROPOSAL
James N MarrierItalyBernardo Dominic UNQUALIFIED
Rodrigues B DilliardGermanyStephen Shaw PROPOSAL
Jefferson A PaprockiFranceIoni Bowcher UNQUALIFIED
Salvatore P DilliardFranceAsiya Javayant PROPOSAL
Faith G RimItalyAnna Fali RENEWAL
Kaitlin I FlosiJapanIoni Bowcher RENEWAL
Tony L KuskoAustraliaIvan Magalhaes PROPOSAL
Jennifer R StensethUnited KingdomIoni Bowcher NEGOTIATION
Kadeem E SlusarskiItalyIvan Magalhaes RENEWAL
Kaitlin T TollnerRussiaXuxue Feng NEW
Isabel X FlosiItalyXuxue Feng NEW
Tony I GillianIndiaAmy Elsner QUALIFIED
Ashley C FlosiFranceAmy Elsner PROPOSAL
Nicolas H SaylorsArgentinaIoni Bowcher NEW
Wickens F SaylorsJapanStephen Shaw RENEWAL
Izzy T BriddickGermanyIvan Magalhaes RENEWAL
Maria H MorascaJapanXuxue Feng RENEWAL
Greenwood G MarrierGermanyIoni Bowcher RENEWAL
Wickens C BriddickBrazilIvan Magalhaes RENEWAL
Chavez M NickaIndiaStephen Shaw PROPOSAL
Aruna X KolmetzCanadaXuxue Feng PROPOSAL
Octavia D NestleCanadaBernardo Dominic RENEWAL
Maisha G WhobreyCanadaElwin Sharvill NEW
Kadeem Q AlbaresArgentinaAsiya Javayant PROPOSAL
Jennifer O NestleIndiaElwin Sharvill PROPOSAL
Arvin L TollnerItalyIoni Bowcher RENEWAL
Jones I StockhamRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mujtaba V CaldareraItalyAsiya Javayant RENEWAL
Chavez Q RutaArgentinaOnyama Limba UNQUALIFIED
Morrow E ButtArgentinaStephen Shaw UNQUALIFIED
Nicolas X FigeroaArgentinaAsiya Javayant RENEWAL
Jennifer I BowleyGermanyIvan Magalhaes RENEWAL
Ashley B MaletJapanXuxue Feng NEGOTIATION
Nicolas G OstroskyIndiaIvan Magalhaes QUALIFIED
Adams L SchemmerCanadaStephen Shaw QUALIFIED
Isabel R MaletArgentinaAmy Elsner RENEWAL
Adams W SergiGermanyOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore X RutaBrazil2025-05-05Benton, John B Jr RENEWAL53Amy Elsner
1001Munro K MaletFrance2025-04-23Chanay, Jeffrey A Esq NEW24Asiya Javayant
1002Alejandro N DarakjyIndia2025-04-30Chanay, Jeffrey A Esq PROPOSAL80Onyama Limba
1003Izzy A InouyeUnited Kingdom2025-05-06Feltz Printing Service NEW97Elwin Sharvill
1004Stacey A StockhamIndia2025-04-24Printing Dimensions NEW5Amy Elsner
1005Munro H OldroydBrazil2025-04-10Feiner Bros NEW80Stephen Shaw
1006Juan E IturbideItaly2025-04-18Morlong Associates UNQUALIFIED49Elwin Sharvill
1007Ashley R RutaUnited Kingdom2025-04-17Truhlar And Truhlar Attys NEW29Xuxue Feng
1008Jennifer C RimAustralia2025-05-05Commercial Press NEW33Ioni Bowcher
1009Ivar C GlickGermany2025-04-24Feiner Bros UNQUALIFIED15Onyama Limba
1010Wickens Q OldroydGermany2025-04-16Dorl, James J Esq PROPOSAL92Amy Elsner
1011Ivar A NestleItaly2025-04-28Benton, John B Jr QUALIFIED19Amy Elsner
1012Cody X CaldareraGermany2025-05-03Chapman, Ross E Esq UNQUALIFIED50Onyama Limba
1013David R KuskoArgentina2025-04-27Commercial Press NEGOTIATION23Anna Fali
1014Deepesh O VenereSpain2025-04-28Chapman, Ross E Esq QUALIFIED89Anna Fali
1015Leon W RoysterUnited Kingdom2025-04-18Chapman, Ross E Esq NEW59Asiya Javayant
1016Deepesh Z StockhamCanada2025-04-27Rousseaux, Michael Esq PROPOSAL16Xuxue Feng
1017Chavez M FollerItaly2025-04-24Feltz Printing Service NEGOTIATION67Stephen Shaw
1018Mujtaba D FigeroaSpain2025-04-29Commercial Press PROPOSAL72Ioni Bowcher
1019Izzy X TollnerBrazil2025-05-02Feiner Bros UNQUALIFIED72Anna Fali
1020Cody G MaletCanada2025-04-26Printing Dimensions NEGOTIATION28Amy Elsner
1021Jennifer E NickaRussia2025-04-25Chanay, Jeffrey A Esq NEGOTIATION75Ivan Magalhaes
1022Greenwood U MaletUnited Kingdom2025-05-07Commercial Press PROPOSAL98Anna Fali
1023Juan I SlusarskiCanada2025-04-21King, Christopher A Esq NEW3Bernardo Dominic
1024Antonio U PerinArgentina2025-04-29Feltz Printing Service QUALIFIED54Asiya Javayant
1025Leja W PaprockiCanada2025-05-03Rousseaux, Michael Esq NEW88Anna Fali
1026Mujtaba Y SergiIndia2025-04-24Benton, John B Jr PROPOSAL56Ivan Magalhaes
1027James O CaldareraJapan2025-04-21Dorl, James J Esq RENEWAL88Onyama Limba
1028Aditya D GauchoIndia2025-05-08Rangoni Of Florence RENEWAL95Asiya Javayant
1029Ashley K FollerBrazil2025-05-02Feiner Bros PROPOSAL16Amy Elsner
1030Leon V VocelkaArgentina2025-05-08Truhlar And Truhlar Attys NEGOTIATION4Bernardo Dominic
1031David G KuskoAustralia2025-05-03Feiner Bros RENEWAL29Elwin Sharvill
1032Murillo I KuskoIndia2025-04-13Truhlar And Truhlar Attys RENEWAL40Stephen Shaw
1033Mujtaba W AmigonArgentina2025-04-15Feltz Printing Service NEW1Ioni Bowcher
1034Maria C StockhamUnited Kingdom2025-04-10Rangoni Of Florence PROPOSAL52Amy Elsner
1035Octavia O SchemmerIndia2025-04-26Chapman, Ross E Esq QUALIFIED19Onyama Limba
1036Tony F PaprockiBrazil2025-04-20Rangoni Of Florence QUALIFIED30Amy Elsner
1037Tony K VenereSpain2025-04-23Feltz Printing Service PROPOSAL86Amy Elsner
1038Deepesh S NestleIndia2025-04-12Chapman, Ross E Esq UNQUALIFIED66Anna Fali
1039Nicolas L BowleyAustralia2025-05-09Rangoni Of Florence UNQUALIFIED3Amy Elsner
1040Wickens A WaycottIndia2025-04-10Printing Dimensions UNQUALIFIED64Xuxue Feng
1041Tony U WieserIndia2025-05-08Feiner Bros QUALIFIED76Bernardo Dominic
1042Nicolas E StensethArgentina2025-04-25Chemel, James L Cpa QUALIFIED74Amy Elsner
1043Munro H OstroskyItaly2025-04-11Morlong Associates PROPOSAL85Asiya Javayant
1044Stacey C TollnerBrazil2025-04-28Feiner Bros UNQUALIFIED65Elwin Sharvill
1045Silvio G KolmetzFrance2025-04-19Chanay, Jeffrey A Esq RENEWAL11Bernardo Dominic
1046Aruna D StensethItaly2025-04-26Dorl, James J Esq QUALIFIED78Xuxue Feng
1047Darci P BologniaGermany2025-05-02Printing Dimensions NEW30Asiya Javayant
1048Jones Q AmigonFrance2025-04-21Feiner Bros NEGOTIATION68Stephen Shaw
1049Isabel J DarakjyGermany2025-04-12Printing Dimensions NEW8Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith Q GauchoFranceStephen Shaw NEW
Francesco Q DilliardUnited KingdomAsiya Javayant RENEWAL
Leon N NestleAustraliaStephen Shaw NEW
Maria D WaycottRussiaAmy Elsner NEW
Greenwood K CampainJapanBernardo Dominic NEW
Octavia Z PerinGermanyAnna Fali UNQUALIFIED
Cody S RoysterRussiaAmy Elsner NEW
Leon V VenereCanadaIoni Bowcher NEW
Mujtaba G KuskoCanadaStephen Shaw RENEWAL
Julie D SaylorsRussiaAsiya Javayant QUALIFIED
Darci K AlbaresCanadaElwin Sharvill RENEWAL
Francesco F SchemmerBrazilAmy Elsner UNQUALIFIED
Morrow A RimJapanStephen Shaw PROPOSAL
Kadeem W NestleSpainXuxue Feng RENEWAL
Cody P FerenczArgentinaAsiya Javayant NEGOTIATION
Deepesh S CaudyUnited KingdomOnyama Limba QUALIFIED
Jones N FollerUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin I NickaGermanyOnyama Limba RENEWAL
Mayumi E PoquetteArgentinaAsiya Javayant NEW
Aika K FlosiItalyIvan Magalhaes UNQUALIFIED
Adams J CaldareraAustraliaXuxue Feng UNQUALIFIED
Aika A MarrierIndiaXuxue Feng RENEWAL
Jeanfrancois T OldroydJapanAsiya Javayant NEGOTIATION
Mayumi W BowleyFranceAmy Elsner QUALIFIED
Adams L CampainGermanyBernardo Dominic RENEWAL
Greenwood I WieserBrazilAnna Fali PROPOSAL
Costa Z FlosiSpainIoni Bowcher NEW
Kadeem G ChuiJapanBernardo Dominic NEW
Jeanfrancois P MorascaIndiaXuxue Feng NEGOTIATION
Munro K SchemmerAustraliaBernardo Dominic NEW
David E StockhamArgentinaAsiya Javayant NEGOTIATION
Mayumi Q WhobreyBrazilStephen Shaw PROPOSAL
Faith R OstroskyAustraliaIvan Magalhaes PROPOSAL
Greenwood V OldroydUnited KingdomAsiya Javayant RENEWAL
Faith T SlusarskiRussiaStephen Shaw RENEWAL
Mujtaba Y MaletIndiaOnyama Limba QUALIFIED
Morrow V BologniaAustraliaOnyama Limba NEGOTIATION
Antonio R WieserFranceBernardo Dominic UNQUALIFIED
Francesco J OstroskyBrazilIoni Bowcher UNQUALIFIED
Misaki B DoeArgentinaAmy Elsner NEGOTIATION
Antonio T TollnerAustraliaAsiya Javayant RENEWAL
Emily R WieserIndiaBernardo Dominic QUALIFIED
Aruna R RutaItalyOnyama Limba RENEWAL
Claire S FollerRussiaBernardo Dominic UNQUALIFIED
Aika S BologniaAustraliaOnyama Limba NEGOTIATION
Leja H StensethJapanIoni Bowcher PROPOSAL
Adams I AlbaresAustraliaIvan Magalhaes NEGOTIATION
Francesco I GlickBrazilElwin Sharvill PROPOSAL
Leon Z RimUnited KingdomOnyama Limba PROPOSAL
Munro Z KolmetzAustraliaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Mayumi T Shinko
Aruna C Saylors
Clifford T Nestle
Juan T Oldroyd
Costa W Gaucho
Silvio J Glick
Ashley W Saylors
Kadeem B Gaucho
Silvio N Albares
Jennifer R Stenseth
Octavia D Garufi
Smith G Paprocki
Jones Z Vocelka
Isabel Q Marrier
James I Glick
Clifford K Caudy
Jefferson Z Ostrosky
Stacey N Garufi
Silvio A Amigon
Maisha H Ferencz
Maisha I Oldroyd
Jennifer W Perin
Aruna D Foller
Mayumi J Briddick
Salvatore X Paprocki
Maria B Iturbide
Antonio I Caudy
Faith W Ferencz
Murillo C Perin
Jeanfrancois R Wieser
Johnson W Foller
Isabel R Briddick
Arvin X Kolmetz
Nicolas J Amigon
Isabel J Doe
Darci W Ruta
Aruna J Royster
Greenwood T Butt
Jones N Bolognia
Adams S Ruta
Adams K Morasca
Jennifer Z Nicka
Faith G Butt
Costa O Malet
Claire T Royster
Misaki D Caudy
Kadeem W Maclead
Ashley K Campain
Johnson R Malet
Alejandro G Doe
IdCountryDate
1000Spain2025-05-07
1001Italy2025-04-19
1002Brazil2025-04-30
1003Australia2025-04-18
1004India2025-04-23
1005Japan2025-04-17
1006Spain2025-05-08
1007Russia2025-05-03
1008United Kingdom2025-04-18
1009Spain2025-05-09
1010Brazil2025-05-05
1011Russia2025-04-19
1012Germany2025-04-29
1013Australia2025-04-11
1014Australia2025-04-13
1015Brazil2025-04-21
1016Australia2025-04-13
1017Russia2025-04-20
1018Italy2025-05-03
1019Italy2025-05-01
1020Russia2025-04-27
1021Argentina2025-05-06
1022Australia2025-04-13
1023Brazil2025-05-03
1024Canada2025-05-05
1025Russia2025-04-23
1026United Kingdom2025-04-21
1027Brazil2025-04-16
1028Brazil2025-05-01
1029Russia2025-04-21
1030Spain2025-05-02
1031Russia2025-04-25
1032Argentina2025-04-19
1033Germany2025-04-13
1034Argentina2025-05-09
1035Japan2025-04-14
1036Brazil2025-05-02
1037Canada2025-04-15
1038India2025-04-17
1039France2025-04-11
1040India2025-04-30
1041United Kingdom2025-04-18
1042United Kingdom2025-04-20
1043Argentina2025-04-29
1044United Kingdom2025-05-01
1045Brazil2025-05-01
1046Germany2025-04-11
1047India2025-04-14
1048Germany2025-04-21
1049Japan2025-04-27

On-Demand Data

NameIdCountryDate
Isabel U Bolognia1000Australia2025-04-26
Julie R Caldarera1001Brazil2025-05-01
Claire X Malet1002Brazil2025-04-16
Sinclair T Ferencz1003Argentina2025-04-23
Ashley N Doe1004Japan2025-05-03
Jennifer Y Wieser1005Germany2025-05-05
Wickens P Rim1006France2025-04-12
Leja Z Nestle1007Italy2025-05-06
Ivar L Amigon1008Australia2025-04-15
David M Stockham1009Spain2025-04-23
Mujtaba J Flosi1010France2025-04-10
Jeanfrancois F Marrier1011Argentina2025-04-20
Smith B Glick1012Argentina2025-04-10
Jones H Inouye1013Australia2025-04-24
Greenwood Y Dilliard1014United Kingdom2025-04-13
Chavez Y Amigon1015United Kingdom2025-04-14
Faith Q Perin1016Brazil2025-05-08
Murillo W Briddick1017Italy2025-04-22
Claire A Stockham1018Japan2025-04-11
Darci U Paprocki1019Italy2025-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Z IturbideUnited KingdomIvan Magalhaes NEW
Rodrigues Z PaprockiSpainIvan Magalhaes UNQUALIFIED
Alejandro C PaprockiAustraliaIoni Bowcher UNQUALIFIED
Faith J InouyeFranceAnna Fali PROPOSAL
Julie V VocelkaCanadaElwin Sharvill NEW
Jeanfrancois G SlusarskiBrazilStephen Shaw QUALIFIED
Kadeem F KuskoItalyAsiya Javayant NEW
Leon Y WaycottArgentinaOnyama Limba PROPOSAL
Ricardo U CaudySpainStephen Shaw QUALIFIED
Misaki P SchemmerAustraliaAmy Elsner UNQUALIFIED
Murillo J WaycottCanadaAnna Fali UNQUALIFIED
Cody Y NestleSpainIvan Magalhaes RENEWAL
Ivar J PaprockiSpainIoni Bowcher NEW
Mujtaba S RimAustraliaElwin Sharvill PROPOSAL
Octavia I VenereArgentinaElwin Sharvill NEW
Munro H OstroskySpainStephen Shaw NEGOTIATION
Arvin D SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Jefferson Y NickaCanadaAsiya Javayant QUALIFIED
Kaitlin P RutaCanadaOnyama Limba PROPOSAL
Nicolas S SchemmerCanadaOnyama Limba PROPOSAL
Maisha U MacleadBrazilXuxue Feng NEW
Jeanfrancois O RoysterSpainIoni Bowcher UNQUALIFIED
Octavia D CaldareraRussiaXuxue Feng PROPOSAL
Silvio L ButtRussiaAmy Elsner RENEWAL
Aruna A FerenczAustraliaIoni Bowcher NEGOTIATION
Alejandro N StensethGermanyAnna Fali QUALIFIED
Morrow H ShinkoBrazilAnna Fali PROPOSAL
Emily A OstroskyItalyElwin Sharvill RENEWAL
Claire C StensethSpainIvan Magalhaes PROPOSAL
Aditya H PaprockiItalyIvan Magalhaes NEW
Nicolas V MacleadBrazilAmy Elsner UNQUALIFIED
Emily B GauchoSpainIoni Bowcher QUALIFIED
Morrow K MacleadUnited KingdomAnna Fali NEGOTIATION
Munro S MaletArgentinaIvan Magalhaes QUALIFIED
Silvio N CaldareraArgentinaOnyama Limba NEGOTIATION
Cody H SergiRussiaIvan Magalhaes NEGOTIATION
Jeanfrancois S FerenczGermanyAsiya Javayant NEGOTIATION
Morrow V StockhamIndiaStephen Shaw NEGOTIATION
Silvio G NestleUnited KingdomAnna Fali UNQUALIFIED
Alejandro X DilliardIndiaElwin Sharvill 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>