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
Aruna P PaprockiGermanyIvan Magalhaes NEGOTIATION
James J VocelkaItalyXuxue Feng PROPOSAL
Mujtaba T AlbaresAustraliaAsiya Javayant UNQUALIFIED
Jennifer M GillianRussiaAsiya Javayant UNQUALIFIED
Juan K MaletFranceAmy Elsner QUALIFIED
Stacey H TollnerJapanBernardo Dominic NEW
Aditya U SergiIndiaXuxue Feng NEW
Antonio G KuskoAustraliaAsiya Javayant RENEWAL
Octavia E OldroydAustraliaAsiya Javayant PROPOSAL
Jones S SergiItalyAmy Elsner NEW
Deepesh S FerenczBrazilStephen Shaw PROPOSAL
Tony E GlickArgentinaAnna Fali PROPOSAL
Misaki G PerinGermanyBernardo Dominic NEGOTIATION
Aruna J CaldareraCanadaIoni Bowcher NEGOTIATION
Murillo S SaylorsArgentinaOnyama Limba PROPOSAL
Kadeem A AmigonItalyStephen Shaw NEGOTIATION
Maisha R PerinIndiaXuxue Feng RENEWAL
Rodrigues R DarakjyGermanyXuxue Feng RENEWAL
Leon G RoysterCanadaIvan Magalhaes QUALIFIED
Claire N SchemmerAustraliaAnna Fali UNQUALIFIED
Arvin M KolmetzRussiaAsiya Javayant PROPOSAL
Kaitlin S SaylorsJapanIoni Bowcher NEW
Aditya T OldroydAustraliaIoni Bowcher UNQUALIFIED
Costa U BowleyRussiaElwin Sharvill UNQUALIFIED
Nicolas N SaylorsBrazilIvan Magalhaes RENEWAL
Izzy I ChuiSpainIvan Magalhaes RENEWAL
Ivar D GarufiBrazilAmy Elsner QUALIFIED
Smith Y InouyeArgentinaAnna Fali RENEWAL
Morrow P ButtAustraliaStephen Shaw NEW
Smith Y SaylorsGermanyAnna Fali UNQUALIFIED
James V ShinkoCanadaAsiya Javayant QUALIFIED
Emily B VenereItalyIvan Magalhaes PROPOSAL
Leja U GarufiArgentinaIvan Magalhaes UNQUALIFIED
Costa D GlickAustraliaIoni Bowcher RENEWAL
Maisha Q GauchoAustraliaElwin Sharvill QUALIFIED
Jones D NestleItalyStephen Shaw PROPOSAL
Aruna T SaylorsCanadaAmy Elsner RENEWAL
Ashley B NestleFranceIoni Bowcher NEW
Nicolas P FerenczFranceIoni Bowcher PROPOSAL
Jeanfrancois W FerenczFranceAmy Elsner RENEWAL
Aika J GauchoSpainIvan Magalhaes RENEWAL
Izzy E FollerSpainAmy Elsner QUALIFIED
Silvio P DilliardGermanyAnna Fali QUALIFIED
Murillo X WaycottGermanyXuxue Feng NEGOTIATION
Claire J NickaItalyAsiya Javayant QUALIFIED
Maria W RutaArgentinaOnyama Limba NEGOTIATION
Jefferson Y SlusarskiBrazilAsiya Javayant QUALIFIED
Sinclair R FlosiItalyIvan Magalhaes UNQUALIFIED
Salvatore B BriddickBrazilAsiya Javayant UNQUALIFIED
Aika K BowleyIndiaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon C RulapaughJapanAmy Elsner NEW
Johnson C SergiAustraliaIoni Bowcher NEGOTIATION
Smith G InouyeSpainIoni Bowcher PROPOSAL
Deepesh K BologniaRussiaBernardo Dominic UNQUALIFIED
Misaki E StensethFranceAsiya Javayant NEW
Murillo J CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas G NestleRussiaOnyama Limba UNQUALIFIED
Adams S ChuiJapanAmy Elsner NEW
Smith I MorascaSpainBernardo Dominic PROPOSAL
Jeanfrancois R DoeArgentinaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens X AmigonJapan2026-07-05Feltz Printing Service NEW86Bernardo Dominic
1001Faith O BowleySpain2026-06-29Chanay, Jeffrey A Esq QUALIFIED87Amy Elsner
1002Jefferson T AlbaresItaly2026-07-19Rousseaux, Michael Esq QUALIFIED56Bernardo Dominic
1003Salvatore G WieserBrazil2026-07-11Feiner Bros PROPOSAL21Amy Elsner
1004Murillo K PerinUnited Kingdom2026-07-12Chemel, James L Cpa QUALIFIED61Amy Elsner
1005Mujtaba T KuskoSpain2026-07-19Commercial Press QUALIFIED33Amy Elsner
1006Mayumi H MaletRussia2026-07-09Feiner Bros PROPOSAL15Asiya Javayant
1007Ricardo A NickaArgentina2026-07-04Buckley Miller Wright RENEWAL33Ioni Bowcher
1008Silvio T MorascaArgentina2026-07-04Feiner Bros PROPOSAL32Stephen Shaw
1009Juan R TollnerIndia2026-07-17Feltz Printing Service NEW71Elwin Sharvill
1010Johnson Z SchemmerSpain2026-07-20King, Christopher A Esq PROPOSAL90Anna Fali
1011Rodrigues G OldroydCanada2026-07-01Commercial Press NEGOTIATION39Ioni Bowcher
1012Nicolas X CaudyGermany2026-07-23Buckley Miller Wright NEW76Ioni Bowcher
1013Kaitlin A GauchoSpain2026-07-14Benton, John B Jr UNQUALIFIED61Ivan Magalhaes
1014Salvatore U DarakjyJapan2026-07-07Rousseaux, Michael Esq PROPOSAL31Amy Elsner
1015Adams U CaldareraRussia2026-07-27Commercial Press UNQUALIFIED11Xuxue Feng
1016Salvatore Q RulapaughFrance2026-07-22Morlong Associates PROPOSAL77Amy Elsner
1017Aditya L DarakjyRussia2026-07-03Commercial Press NEGOTIATION70Ivan Magalhaes
1018James N WaycottRussia2026-07-24Buckley Miller Wright PROPOSAL24Asiya Javayant
1019Maria Y MorascaItaly2026-07-27Dorl, James J Esq RENEWAL43Asiya Javayant
1020Octavia H StockhamAustralia2026-07-14Rousseaux, Michael Esq PROPOSAL42Stephen Shaw
1021Octavia S NestleJapan2026-07-13Buckley Miller Wright RENEWAL59Amy Elsner
1022Wickens S DoeIndia2026-06-29Rangoni Of Florence NEGOTIATION49Amy Elsner
1023Costa A ShinkoArgentina2026-07-01Truhlar And Truhlar Attys PROPOSAL34Bernardo Dominic
1024Aditya Y NickaFrance2026-07-24Printing Dimensions QUALIFIED70Ivan Magalhaes
1025Costa I MarrierCanada2026-07-08Chapman, Ross E Esq NEGOTIATION66Ivan Magalhaes
1026Johnson X PerinArgentina2026-07-21Chapman, Ross E Esq PROPOSAL63Stephen Shaw
1027Leja G ShinkoCanada2026-07-09Dorl, James J Esq QUALIFIED94Xuxue Feng
1028Adams H MaletIndia2026-07-10Printing Dimensions RENEWAL52Ivan Magalhaes
1029Emily L DoeUnited Kingdom2026-07-18Printing Dimensions NEW19Anna Fali
1030Kaitlin B FerenczRussia2026-07-03Benton, John B Jr UNQUALIFIED91Amy Elsner
1031Ashley M SergiJapan2026-07-04Truhlar And Truhlar Attys RENEWAL8Stephen Shaw
1032Alejandro Y NestleIndia2026-07-05Dorl, James J Esq QUALIFIED68Anna Fali
1033Cody C StensethGermany2026-07-09Buckley Miller Wright QUALIFIED81Amy Elsner
1034Jefferson E SlusarskiRussia2026-07-15Truhlar And Truhlar Attys QUALIFIED41Stephen Shaw
1035Rodrigues F DilliardArgentina2026-07-10King, Christopher A Esq NEGOTIATION53Amy Elsner
1036Deepesh Y AmigonAustralia2026-07-10Feiner Bros QUALIFIED41Onyama Limba
1037Mayumi J BologniaSpain2026-07-10Truhlar And Truhlar Attys NEW86Amy Elsner
1038Wickens C RimFrance2026-07-07Morlong Associates QUALIFIED74Stephen Shaw
1039Julie V FerenczBrazil2026-07-16Chemel, James L Cpa QUALIFIED90Onyama Limba
1040Faith R FlosiItaly2026-07-11Chapman, Ross E Esq PROPOSAL74Elwin Sharvill
1041Jeanfrancois V ButtIndia2026-07-07Feiner Bros NEW27Anna Fali
1042Murillo B RimRussia2026-07-04Dorl, James J Esq RENEWAL71Elwin Sharvill
1043Kadeem P KuskoSpain2026-07-17Feiner Bros QUALIFIED87Onyama Limba
1044Faith Q RoysterFrance2026-07-13Commercial Press PROPOSAL39Bernardo Dominic
1045Tony B WaycottBrazil2026-07-20Chapman, Ross E Esq QUALIFIED52Ioni Bowcher
1046Sinclair T GauchoAustralia2026-06-30Truhlar And Truhlar Attys NEGOTIATION4Stephen Shaw
1047Juan H GillianJapan2026-07-14Buckley Miller Wright NEGOTIATION95Ivan Magalhaes
1048Smith W BriddickCanada2026-07-16King, Christopher A Esq QUALIFIED31Bernardo Dominic
1049Misaki Z RutaBrazil2026-07-22King, Christopher A Esq PROPOSAL87Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire F WaycottJapanOnyama Limba QUALIFIED
Juan K PerinCanadaAmy Elsner NEGOTIATION
Chavez G FlosiGermanyXuxue Feng NEGOTIATION
Ivar G PoquetteAustraliaAnna Fali PROPOSAL
Adams F MaletJapanStephen Shaw NEW
Emily W BologniaCanadaStephen Shaw RENEWAL
Leon B MarrierItalyAnna Fali PROPOSAL
Francesco U PaprockiJapanXuxue Feng NEGOTIATION
Arvin I DilliardAustraliaIvan Magalhaes NEGOTIATION
Julie S StockhamJapanOnyama Limba NEGOTIATION
Claire D OstroskyGermanyElwin Sharvill NEW
Alejandro I GlickIndiaBernardo Dominic QUALIFIED
Misaki Z FollerFranceIvan Magalhaes RENEWAL
Jeanfrancois P SlusarskiJapanIoni Bowcher PROPOSAL
Leja Z AlbaresJapanAmy Elsner QUALIFIED
Aruna H RoysterIndiaOnyama Limba QUALIFIED
Aruna N OldroydIndiaAnna Fali NEW
Juan F FerenczGermanyXuxue Feng NEW
Jefferson H CaldareraJapanOnyama Limba PROPOSAL
Ricardo B WhobreyCanadaIoni Bowcher NEGOTIATION
Faith O WieserRussiaXuxue Feng RENEWAL
Kaitlin D NickaJapanAmy Elsner NEW
Jefferson L ChuiItalyIoni Bowcher NEGOTIATION
Francesco L MacleadAustraliaAsiya Javayant PROPOSAL
Claire R WhobreyGermanyIoni Bowcher QUALIFIED
Jeanfrancois Q MaletAustraliaOnyama Limba RENEWAL
Jeanfrancois T FerenczFranceAnna Fali UNQUALIFIED
Nicolas S MaletAustraliaXuxue Feng NEW
Clifford R ShinkoBrazilIoni Bowcher NEW
Salvatore R OstroskyRussiaXuxue Feng QUALIFIED
Rodrigues I DoeBrazilStephen Shaw NEGOTIATION
Kadeem P RulapaughRussiaIvan Magalhaes PROPOSAL
Jefferson J FigeroaJapanOnyama Limba NEGOTIATION
Alejandro Q FlosiItalyBernardo Dominic PROPOSAL
Misaki O FigeroaItalyAmy Elsner PROPOSAL
Alejandro F FigeroaArgentinaOnyama Limba UNQUALIFIED
James S FerenczItalyXuxue Feng QUALIFIED
Jeanfrancois Y PaprockiItalyBernardo Dominic PROPOSAL
Julie G GarufiIndiaXuxue Feng NEW
Tony M BowleyAustraliaXuxue Feng NEW
Sinclair T InouyeFranceAmy Elsner NEW
Morrow T InouyeGermanyBernardo Dominic NEW
Morrow E KuskoBrazilIoni Bowcher NEW
Costa R CaudyUnited KingdomStephen Shaw NEGOTIATION
Darci G FigeroaJapanOnyama Limba UNQUALIFIED
Isabel Z InouyeGermanyXuxue Feng PROPOSAL
Sinclair H ButtJapanAsiya Javayant RENEWAL
Cody D MarrierFranceBernardo Dominic NEW
Johnson E AmigonRussiaAsiya Javayant QUALIFIED
David D ShinkoBrazilElwin Sharvill RENEWAL
Frozen Columns
Name
Murillo G Maclead
Izzy O Paprocki
Jones P Rulapaugh
Alejandro M Caudy
Silvio F Inouye
Ashley Q Briddick
Juan Y Ostrosky
Rodrigues U Malet
Wickens G Rim
Morrow L Wieser
Maria Y Sergi
Maria S Rim
Misaki K Ferencz
Leon C Schemmer
Sinclair C Kusko
Jennifer Z Royster
Izzy M Schemmer
Mujtaba P Dilliard
Aditya W Ostrosky
Mayumi O Campain
Kadeem L Butt
Mayumi Q Schemmer
Aditya U Slusarski
Emily H Oldroyd
Leon M Whobrey
James G Garufi
Deepesh S Saylors
Smith W Saylors
Clifford S Rim
Stacey E Oldroyd
Morrow S Chui
Cody E Whobrey
Claire K Oldroyd
Francesco D Kusko
Leja M Venere
Jennifer M Caldarera
James N Albares
Sinclair E Glick
Octavia F Garufi
Wickens D Vocelka
Antonio V Whobrey
Mayumi G Maclead
Jefferson J Caldarera
Darci P Chui
Tony F Malet
Nicolas V Royster
Leon S Nicka
Aruna T Chui
Salvatore L Vocelka
David O Stockham
IdCountryDate
1000Germany2026-07-14
1001Brazil2026-06-29
1002India2026-07-20
1003Spain2026-07-26
1004India2026-07-27
1005France2026-07-01
1006Argentina2026-07-02
1007Australia2026-07-01
1008Australia2026-07-24
1009Australia2026-07-01
1010Russia2026-07-01
1011India2026-07-05
1012Brazil2026-07-07
1013Brazil2026-07-06
1014United Kingdom2026-07-06
1015Germany2026-07-21
1016Canada2026-07-25
1017Australia2026-07-14
1018India2026-07-23
1019Spain2026-07-28
1020Japan2026-07-20
1021Australia2026-06-30
1022France2026-07-20
1023Spain2026-07-18
1024Brazil2026-07-11
1025Italy2026-07-22
1026France2026-07-27
1027United Kingdom2026-07-24
1028India2026-07-25
1029Russia2026-07-10
1030France2026-07-05
1031Canada2026-07-21
1032India2026-07-26
1033Japan2026-07-08
1034France2026-07-13
1035Argentina2026-06-29
1036Brazil2026-07-05
1037United Kingdom2026-07-11
1038Japan2026-07-18
1039Germany2026-07-18
1040Australia2026-07-09
1041Australia2026-07-14
1042Italy2026-07-02
1043United Kingdom2026-07-14
1044United Kingdom2026-07-25
1045Spain2026-07-01
1046United Kingdom2026-07-11
1047Italy2026-07-26
1048Australia2026-07-02
1049Brazil2026-07-10

On-Demand Data

NameIdCountryDate
Wickens Z Glick1000Brazil2026-07-20
Deepesh F Malet1001Japan2026-07-18
Faith U Waycott1002Italy2026-07-20
Cody H Chui1003Japan2026-07-10
Cody S Glick1004Russia2026-07-14
Johnson I Tollner1005Canada2026-07-01
Alejandro M Wieser1006United Kingdom2026-07-24
Morrow F Malet1007Spain2026-07-25
Jefferson E Shinko1008Japan2026-06-29
Cody L Chui1009United Kingdom2026-06-29
Kadeem U Whobrey1010Australia2026-07-13
Mayumi R Saylors1011Argentina2026-06-30
Darci G Royster1012France2026-07-22
Faith Z Maclead1013Australia2026-07-03
Maria J Glick1014Germany2026-07-04
Aruna Z Kusko1015Russia2026-07-08
Claire F Amigon1016Japan2026-06-30
Misaki I Sergi1017Argentina2026-07-04
Faith G Sergi1018India2026-06-29
Ashley E Morasca1019Australia2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois A FlosiRussiaAsiya Javayant NEW
Misaki Y SchemmerArgentinaAmy Elsner NEGOTIATION
Leja U StensethFranceBernardo Dominic NEGOTIATION
Sinclair I SlusarskiArgentinaAsiya Javayant NEW
Johnson I SlusarskiFranceAsiya Javayant NEGOTIATION
Clifford K DilliardIndiaElwin Sharvill RENEWAL
Juan N KuskoCanadaElwin Sharvill PROPOSAL
Jefferson V AlbaresBrazilElwin Sharvill QUALIFIED
Adams T RulapaughRussiaIoni Bowcher QUALIFIED
Francesco W KuskoCanadaAnna Fali QUALIFIED
Wickens Z WaycottIndiaAnna Fali NEGOTIATION
Deepesh Y MaletFranceIvan Magalhaes RENEWAL
Francesco T DilliardArgentinaAnna Fali NEW
Nicolas M PoquetteGermanyOnyama Limba UNQUALIFIED
Morrow I TollnerSpainElwin Sharvill NEW
Leja F RimItalyIoni Bowcher RENEWAL
Aditya O RutaFranceAnna Fali RENEWAL
Francesco F GillianSpainIvan Magalhaes NEGOTIATION
Johnson O RutaIndiaIoni Bowcher NEW
Leon K OldroydRussiaXuxue Feng RENEWAL
Alejandro Y CaudyItalyXuxue Feng QUALIFIED
Octavia G GarufiFranceOnyama Limba NEGOTIATION
Sinclair U VenereJapanElwin Sharvill UNQUALIFIED
Deepesh Q MaletUnited KingdomXuxue Feng NEW
Emily W MaletBrazilStephen Shaw PROPOSAL
Misaki V SlusarskiIndiaOnyama Limba NEGOTIATION
Nicolas U DoeArgentinaBernardo Dominic UNQUALIFIED
Isabel V RimBrazilAmy Elsner NEGOTIATION
Rodrigues Y PaprockiFranceAsiya Javayant NEW
David F BowleyJapanOnyama Limba PROPOSAL
James C VenereIndiaAmy Elsner PROPOSAL
Aruna K InouyeJapanAmy Elsner NEW
Jefferson D ButtUnited KingdomAsiya Javayant QUALIFIED
Claire J WaycottUnited KingdomOnyama Limba RENEWAL
Isabel Y VenereSpainIvan Magalhaes QUALIFIED
Kadeem I WhobreyItalyElwin Sharvill RENEWAL
Adams B AmigonAustraliaStephen Shaw QUALIFIED
Ricardo T PoquetteAustraliaOnyama Limba NEW
Misaki S PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Isabel R IturbideSpainXuxue Feng 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>