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
Morrow F PerinCanadaElwin Sharvill NEGOTIATION
Ivar M SlusarskiRussiaAsiya Javayant NEGOTIATION
Kadeem V TollnerItalyXuxue Feng UNQUALIFIED
Kaitlin O IturbideItalyElwin Sharvill UNQUALIFIED
Adams D PerinGermanyAmy Elsner NEW
Misaki U MorascaSpainIoni Bowcher UNQUALIFIED
Emily T BriddickUnited KingdomBernardo Dominic RENEWAL
Isabel V DarakjyBrazilOnyama Limba RENEWAL
Aika G PoquetteUnited KingdomElwin Sharvill NEW
Isabel B TollnerIndiaIvan Magalhaes NEW
Johnson K InouyeGermanyAsiya Javayant NEGOTIATION
Octavia D MarrierItalyOnyama Limba QUALIFIED
Jeanfrancois W ShinkoRussiaIvan Magalhaes RENEWAL
Ivar D FollerArgentinaStephen Shaw QUALIFIED
Morrow J GillianAustraliaOnyama Limba NEW
Faith L RulapaughJapanStephen Shaw UNQUALIFIED
Tony C PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez O WhobreyBrazilAsiya Javayant NEW
Adams H BowleyArgentinaIvan Magalhaes QUALIFIED
Leon V MaletGermanyOnyama Limba RENEWAL
Claire A TollnerBrazilAnna Fali NEW
James V KuskoUnited KingdomIvan Magalhaes PROPOSAL
Sinclair D PoquetteAustraliaBernardo Dominic NEW
Maria B TollnerIndiaAsiya Javayant PROPOSAL
Jennifer V DarakjyCanadaAsiya Javayant RENEWAL
Aika Z RimRussiaAnna Fali PROPOSAL
Aruna C BowleyItalyStephen Shaw NEW
Francesco I MorascaBrazilXuxue Feng UNQUALIFIED
Misaki U KolmetzSpainAsiya Javayant UNQUALIFIED
Aika D WaycottRussiaIvan Magalhaes PROPOSAL
Ivar X StensethRussiaAsiya Javayant UNQUALIFIED
Francesco L SaylorsAustraliaAnna Fali RENEWAL
Johnson F RoysterItalyAmy Elsner RENEWAL
Mujtaba Y WhobreyIndiaIoni Bowcher PROPOSAL
Juan W WhobreyItalyStephen Shaw NEGOTIATION
Kaitlin P FlosiRussiaXuxue Feng RENEWAL
Maisha H BriddickArgentinaAsiya Javayant UNQUALIFIED
Antonio N WaycottFranceElwin Sharvill NEW
Johnson A NickaGermanyXuxue Feng UNQUALIFIED
Mayumi X BologniaBrazilXuxue Feng NEW
Cody J FigeroaCanadaStephen Shaw QUALIFIED
Isabel I GillianSpainBernardo Dominic NEGOTIATION
James N AmigonBrazilAsiya Javayant UNQUALIFIED
Izzy D DoeJapanIvan Magalhaes RENEWAL
Leja M TollnerUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois P FerenczCanadaElwin Sharvill RENEWAL
Misaki G BologniaJapanOnyama Limba NEW
Jones M FerenczArgentinaAmy Elsner PROPOSAL
Leon W IturbideBrazilAmy Elsner NEW
Jefferson R MaletBrazilAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi S AlbaresFranceOnyama Limba PROPOSAL
Ricardo K OstroskyRussiaAnna Fali NEGOTIATION
Johnson R GillianBrazilAnna Fali QUALIFIED
Chavez M KuskoFranceAmy Elsner RENEWAL
Izzy V ShinkoSpainAsiya Javayant PROPOSAL
Johnson L MaletUnited KingdomXuxue Feng UNQUALIFIED
Cody U RulapaughArgentinaAnna Fali NEGOTIATION
Claire S FerenczJapanIvan Magalhaes UNQUALIFIED
Aika X BowleyUnited KingdomXuxue Feng RENEWAL
Wickens J CampainItalyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David H PaprockiRussia2026-06-10Morlong Associates PROPOSAL55Xuxue Feng
1001Munro R FollerIndia2026-06-10Feltz Printing Service PROPOSAL85Ioni Bowcher
1002Tony Q RoysterIndia2026-06-23Feltz Printing Service NEW5Anna Fali
1003Claire V OldroydItaly2026-06-10King, Christopher A Esq UNQUALIFIED43Ioni Bowcher
1004David A ButtUnited Kingdom2026-06-21Truhlar And Truhlar Attys QUALIFIED52Ioni Bowcher
1005Murillo S PoquetteFrance2026-06-30Commercial Press QUALIFIED96Anna Fali
1006Darci U TollnerItaly2026-06-22Feiner Bros QUALIFIED59Onyama Limba
1007Isabel X GillianArgentina2026-06-16Dorl, James J Esq QUALIFIED96Xuxue Feng
1008Maria F StockhamRussia2026-06-07Rousseaux, Michael Esq PROPOSAL34Amy Elsner
1009Darci W KolmetzFrance2026-06-08Printing Dimensions PROPOSAL51Bernardo Dominic
1010Costa U MarrierUnited Kingdom2026-06-25Rangoni Of Florence QUALIFIED34Amy Elsner
1011Johnson Q NickaCanada2026-06-08King, Christopher A Esq RENEWAL17Xuxue Feng
1012Ashley D GlickSpain2026-06-21Chemel, James L Cpa NEGOTIATION87Xuxue Feng
1013Jeanfrancois W WaycottCanada2026-06-15Chanay, Jeffrey A Esq UNQUALIFIED13Elwin Sharvill
1014Emily D DarakjyIndia2026-06-26Printing Dimensions NEW13Ioni Bowcher
1015Rodrigues Z MarrierSpain2026-06-06Chanay, Jeffrey A Esq NEW4Asiya Javayant
1016Tony H MacleadBrazil2026-06-26Rousseaux, Michael Esq UNQUALIFIED22Onyama Limba
1017Aditya Z GillianRussia2026-06-22Feltz Printing Service NEGOTIATION97Elwin Sharvill
1018Aditya T GillianAustralia2026-06-25Buckley Miller Wright NEGOTIATION11Asiya Javayant
1019Kadeem K MorascaRussia2026-07-03Truhlar And Truhlar Attys NEW40Elwin Sharvill
1020Francesco K CampainRussia2026-06-09Chapman, Ross E Esq UNQUALIFIED99Bernardo Dominic
1021Aruna H FollerFrance2026-06-08Dorl, James J Esq QUALIFIED73Ioni Bowcher
1022Francesco K DilliardArgentina2026-06-08Chapman, Ross E Esq QUALIFIED34Anna Fali
1023Deepesh A RoysterJapan2026-06-19Truhlar And Truhlar Attys NEW88Asiya Javayant
1024Faith Z ShinkoGermany2026-06-30Chemel, James L Cpa PROPOSAL40Ioni Bowcher
1025Aruna G GlickRussia2026-06-14Feltz Printing Service NEGOTIATION11Anna Fali
1026Kaitlin U MaletSpain2026-06-20King, Christopher A Esq RENEWAL6Anna Fali
1027Chavez Y ButtFrance2026-06-08King, Christopher A Esq RENEWAL15Ivan Magalhaes
1028Adams H GarufiFrance2026-06-28Commercial Press NEGOTIATION98Amy Elsner
1029Ricardo K GillianItaly2026-06-08Chanay, Jeffrey A Esq NEGOTIATION93Ivan Magalhaes
1030Octavia V SergiRussia2026-06-17King, Christopher A Esq RENEWAL68Bernardo Dominic
1031Morrow U RimCanada2026-06-07Feiner Bros UNQUALIFIED72Xuxue Feng
1032Francesco F StockhamGermany2026-06-22Feltz Printing Service NEW99Ivan Magalhaes
1033Leja G SchemmerJapan2026-06-14Printing Dimensions UNQUALIFIED85Ivan Magalhaes
1034Claire M KuskoItaly2026-06-19Morlong Associates UNQUALIFIED69Onyama Limba
1035Leja C MaletCanada2026-07-02Truhlar And Truhlar Attys PROPOSAL95Amy Elsner
1036Ivar M WieserCanada2026-06-17King, Christopher A Esq NEGOTIATION91Bernardo Dominic
1037Octavia B IturbideSpain2026-07-03Rousseaux, Michael Esq NEGOTIATION66Asiya Javayant
1038Jones V GillianFrance2026-06-13Commercial Press QUALIFIED5Bernardo Dominic
1039Mujtaba M FlosiItaly2026-06-12Morlong Associates RENEWAL33Ioni Bowcher
1040Aruna H WaycottGermany2026-06-28Dorl, James J Esq UNQUALIFIED61Xuxue Feng
1041Munro I VenereGermany2026-06-28Chapman, Ross E Esq PROPOSAL71Asiya Javayant
1042Faith F StensethArgentina2026-06-28Morlong Associates NEW62Amy Elsner
1043Julie K RimJapan2026-07-03Commercial Press QUALIFIED91Xuxue Feng
1044Wickens I AlbaresArgentina2026-06-20Dorl, James J Esq PROPOSAL90Xuxue Feng
1045Jennifer F NickaBrazil2026-06-16Commercial Press PROPOSAL63Anna Fali
1046Nicolas Y MacleadUnited Kingdom2026-06-15Dorl, James J Esq UNQUALIFIED40Ivan Magalhaes
1047Mayumi O StensethBrazil2026-07-01Feltz Printing Service NEGOTIATION70Anna Fali
1048Adams J DoeCanada2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED65Anna Fali
1049Jennifer Y RoysterArgentina2026-07-04Rangoni Of Florence NEW16Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair U RoysterIndiaAsiya Javayant NEW
David V BriddickAustraliaIoni Bowcher PROPOSAL
Mujtaba U KolmetzAustraliaStephen Shaw NEGOTIATION
Clifford P VenereBrazilOnyama Limba RENEWAL
Kadeem H FlosiCanadaBernardo Dominic QUALIFIED
Alejandro K SergiFranceXuxue Feng QUALIFIED
Antonio K FlosiCanadaElwin Sharvill RENEWAL
Arvin Z DarakjySpainAnna Fali NEGOTIATION
Mayumi B PerinSpainOnyama Limba NEW
Wickens E OstroskyBrazilElwin Sharvill NEGOTIATION
Cody X AlbaresCanadaStephen Shaw RENEWAL
Sinclair B OldroydArgentinaBernardo Dominic PROPOSAL
Deepesh F FollerItalyAsiya Javayant QUALIFIED
Aditya U GauchoItalyElwin Sharvill QUALIFIED
Johnson B RulapaughArgentinaIoni Bowcher QUALIFIED
Murillo D BowleyRussiaAsiya Javayant NEW
Smith V MacleadGermanyIoni Bowcher UNQUALIFIED
Juan S NickaUnited KingdomStephen Shaw PROPOSAL
Morrow O FerenczBrazilAnna Fali PROPOSAL
Ivar R CampainIndiaAnna Fali PROPOSAL
Tony Y IturbideIndiaAnna Fali RENEWAL
Chavez T GlickRussiaAnna Fali RENEWAL
Cody K PoquetteFranceElwin Sharvill NEW
Greenwood T VenereArgentinaAmy Elsner QUALIFIED
Munro C IturbideJapanAnna Fali RENEWAL
Murillo L SergiCanadaAmy Elsner RENEWAL
Kaitlin B AmigonGermanyAmy Elsner PROPOSAL
Johnson A MarrierArgentinaBernardo Dominic QUALIFIED
Salvatore E FerenczGermanyIvan Magalhaes PROPOSAL
Maisha B PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Darci B MaletArgentinaAnna Fali QUALIFIED
Julie C MacleadJapanStephen Shaw PROPOSAL
Ashley F SergiUnited KingdomXuxue Feng NEGOTIATION
Silvio M MaletBrazilIoni Bowcher RENEWAL
Jefferson M MorascaFranceAmy Elsner NEW
Julie F OstroskyIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois L BologniaItalyXuxue Feng QUALIFIED
Murillo A TollnerIndiaXuxue Feng QUALIFIED
Cody R KuskoRussiaAnna Fali PROPOSAL
Chavez V AlbaresFranceAmy Elsner QUALIFIED
Jones V FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Isabel W GillianIndiaOnyama Limba RENEWAL
Jeanfrancois H CaudyUnited KingdomAmy Elsner NEGOTIATION
Costa I GauchoRussiaAnna Fali RENEWAL
Deepesh X PerinUnited KingdomOnyama Limba PROPOSAL
Arvin W StensethAustraliaIoni Bowcher NEW
Ricardo V ShinkoSpainElwin Sharvill NEW
Arvin C DarakjyRussiaBernardo Dominic PROPOSAL
Antonio Y SergiCanadaAsiya Javayant UNQUALIFIED
Ricardo X NestleArgentinaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Ashley X Rim
Kadeem H Caudy
Ricardo D Ferencz
Clifford T Saylors
Morrow D Foller
Costa K Bolognia
Sinclair D Ruta
Clifford W Perin
Ivar R Doe
Clifford G Venere
Julie Q Chui
Mujtaba Y Flosi
Kaitlin Z Oldroyd
Stacey H Nicka
Deepesh G Malet
Kaitlin N Morasca
Munro H Flosi
Maria V Chui
Kaitlin E Perin
Adams V Poquette
Izzy T Schemmer
Julie M Rim
Mujtaba Y Dilliard
Ricardo Z Malet
Maisha Z Caldarera
Tony I Shinko
Francesco N Marrier
Maria H Iturbide
David U Kolmetz
Cody U Kolmetz
Jones V Nicka
Isabel U Slusarski
James A Glick
Adams K Venere
Darci T Inouye
Silvio A Poquette
Maria M Gillian
Stacey M Doe
Nicolas H Albares
Juan K Kusko
Misaki V Bowley
Aika P Kolmetz
Tony M Paprocki
Murillo E Rim
Octavia C Morasca
Morrow O Iturbide
Smith E Wieser
Costa E Flosi
Jeanfrancois J Doe
Aruna M Vocelka
IdCountryDate
1000Argentina2026-06-12
1001Canada2026-06-23
1002India2026-06-17
1003Russia2026-06-07
1004United Kingdom2026-06-17
1005India2026-06-10
1006Russia2026-06-14
1007Australia2026-07-05
1008Germany2026-06-18
1009India2026-06-16
1010Argentina2026-06-25
1011Australia2026-06-07
1012India2026-06-12
1013United Kingdom2026-06-25
1014Canada2026-06-07
1015Germany2026-06-30
1016Russia2026-07-05
1017Canada2026-06-10
1018Italy2026-06-18
1019Argentina2026-06-13
1020Russia2026-06-12
1021Australia2026-06-09
1022Italy2026-07-02
1023Russia2026-06-07
1024France2026-06-18
1025India2026-06-28
1026United Kingdom2026-06-13
1027Brazil2026-06-13
1028Japan2026-07-03
1029Brazil2026-06-21
1030Argentina2026-06-06
1031Japan2026-07-03
1032Italy2026-06-07
1033Brazil2026-06-15
1034Brazil2026-06-27
1035Argentina2026-06-29
1036Canada2026-06-10
1037Australia2026-06-30
1038Spain2026-06-17
1039Italy2026-06-27
1040Germany2026-07-02
1041India2026-06-24
1042France2026-07-05
1043United Kingdom2026-06-22
1044Canada2026-06-13
1045Italy2026-06-17
1046Argentina2026-07-02
1047United Kingdom2026-06-20
1048Brazil2026-06-17
1049United Kingdom2026-06-24

On-Demand Data

NameIdCountryDate
Darci I Butt1000Canada2026-06-15
Darci C Iturbide1001Japan2026-06-11
Mayumi M Sergi1002Germany2026-06-28
Octavia U Campain1003Canada2026-06-17
Aika X Darakjy1004Canada2026-06-30
Julie N Maclead1005Argentina2026-06-18
Maria T Malet1006Spain2026-07-05
Aditya G Vocelka1007France2026-06-24
Kaitlin Q Slusarski1008Spain2026-06-22
Faith U Saylors1009Germany2026-06-26
Aruna B Figeroa1010Spain2026-06-28
Octavia W Morasca1011India2026-07-04
Clifford O Shinko1012United Kingdom2026-07-05
Aruna L Wieser1013Canada2026-06-23
Leon K Schemmer1014Brazil2026-06-19
Emily I Shinko1015Argentina2026-06-14
Munro Z Inouye1016Brazil2026-07-05
Nicolas C Venere1017Germany2026-06-17
Tony D Caldarera1018Italy2026-06-07
Ivar G Bolognia1019Italy2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Q GarufiCanadaXuxue Feng RENEWAL
Jones T NickaItalyOnyama Limba UNQUALIFIED
Rodrigues O GauchoIndiaOnyama Limba PROPOSAL
Ashley H ButtArgentinaIvan Magalhaes NEGOTIATION
Maisha F WhobreyRussiaBernardo Dominic NEGOTIATION
Misaki L SlusarskiRussiaAnna Fali NEW
Arvin E DilliardJapanBernardo Dominic PROPOSAL
Smith J KolmetzIndiaAmy Elsner QUALIFIED
Wickens T RimGermanyAnna Fali QUALIFIED
Faith F FerenczItalyElwin Sharvill QUALIFIED
Morrow W MaletRussiaIoni Bowcher PROPOSAL
Sinclair I SaylorsCanadaAmy Elsner NEGOTIATION
Morrow U MarrierFranceIvan Magalhaes RENEWAL
Aika O InouyeArgentinaStephen Shaw UNQUALIFIED
Rodrigues X PoquetteCanadaAnna Fali PROPOSAL
Claire U FollerSpainIvan Magalhaes NEW
Jones V DarakjyBrazilBernardo Dominic NEW
Clifford M AmigonSpainIvan Magalhaes UNQUALIFIED
Ivar F PaprockiCanadaAnna Fali NEGOTIATION
Maisha W IturbideRussiaIoni Bowcher RENEWAL
Deepesh C GauchoFranceAmy Elsner NEW
Murillo U AmigonCanadaOnyama Limba RENEWAL
Jefferson O GlickCanadaAsiya Javayant PROPOSAL
Rodrigues Y FigeroaFranceAsiya Javayant NEW
Jones D MarrierGermanyStephen Shaw PROPOSAL
Antonio H MaletAustraliaXuxue Feng NEGOTIATION
Kadeem Z WaycottAustraliaAsiya Javayant PROPOSAL
Clifford E DilliardArgentinaStephen Shaw PROPOSAL
Ashley A CaldareraJapanOnyama Limba RENEWAL
Adams Z OldroydCanadaOnyama Limba RENEWAL
Aruna J StensethIndiaAnna Fali RENEWAL
Izzy E GauchoIndiaIoni Bowcher UNQUALIFIED
Isabel H FlosiSpainXuxue Feng RENEWAL
Nicolas Q TollnerIndiaAsiya Javayant UNQUALIFIED
David Y InouyeArgentinaXuxue Feng UNQUALIFIED
Silvio I MorascaFranceAnna Fali RENEWAL
Izzy E WieserIndiaIvan Magalhaes PROPOSAL
Ricardo Y DoeGermanyBernardo Dominic NEGOTIATION
Aruna M GauchoFranceStephen Shaw UNQUALIFIED
Aditya A PaprockiIndiaAsiya Javayant 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>