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
Izzy T OstroskyItalyIvan Magalhaes NEGOTIATION
Julie H DoeSpainBernardo Dominic QUALIFIED
Izzy B DilliardFranceAnna Fali RENEWAL
Murillo V MarrierCanadaOnyama Limba RENEWAL
Aruna U RulapaughIndiaAnna Fali NEW
Francesco K FigeroaGermanyStephen Shaw NEGOTIATION
Darci V SergiBrazilAsiya Javayant RENEWAL
Stacey Q FlosiFranceStephen Shaw PROPOSAL
Jeanfrancois Q MacleadGermanyBernardo Dominic PROPOSAL
Adams B StockhamRussiaIvan Magalhaes QUALIFIED
Jennifer U DarakjyAustraliaStephen Shaw UNQUALIFIED
Emily S MarrierCanadaStephen Shaw UNQUALIFIED
Alejandro O PaprockiItalyIvan Magalhaes NEW
Mujtaba F RoysterJapanElwin Sharvill NEW
Mayumi C NestleRussiaXuxue Feng PROPOSAL
Mayumi M FerenczGermanyOnyama Limba QUALIFIED
Aditya Q PerinJapanIvan Magalhaes NEW
Jefferson F WhobreyBrazilAsiya Javayant NEGOTIATION
Kadeem I FerenczJapanIvan Magalhaes UNQUALIFIED
Izzy E MaletRussiaOnyama Limba PROPOSAL
Ivar J FlosiRussiaBernardo Dominic NEGOTIATION
Misaki D SergiArgentinaXuxue Feng NEGOTIATION
Faith X WieserRussiaIoni Bowcher QUALIFIED
Francesco E AlbaresBrazilAsiya Javayant RENEWAL
Kaitlin I BriddickArgentinaIoni Bowcher RENEWAL
David H MorascaBrazilElwin Sharvill NEGOTIATION
Misaki U SergiFranceElwin Sharvill NEGOTIATION
Ashley A ButtItalyIvan Magalhaes NEGOTIATION
Sinclair Y KuskoSpainStephen Shaw QUALIFIED
Ivar N ChuiRussiaXuxue Feng QUALIFIED
Jennifer G FollerCanadaBernardo Dominic PROPOSAL
Cody U PaprockiJapanAnna Fali QUALIFIED
Jefferson Q BowleyFranceElwin Sharvill NEW
Izzy E GarufiArgentinaBernardo Dominic PROPOSAL
Johnson X OldroydAustraliaXuxue Feng RENEWAL
Octavia U GlickAustraliaAsiya Javayant QUALIFIED
Ivar Q SaylorsJapanAmy Elsner RENEWAL
Alejandro I ChuiItalyStephen Shaw RENEWAL
Ricardo V NestleItalyIvan Magalhaes NEGOTIATION
David L SaylorsUnited KingdomAmy Elsner NEGOTIATION
Mayumi C ShinkoIndiaAnna Fali UNQUALIFIED
James X SaylorsArgentinaIoni Bowcher UNQUALIFIED
Aika R WieserBrazilAmy Elsner NEGOTIATION
Aditya V FollerIndiaAmy Elsner NEW
Morrow D BologniaGermanyStephen Shaw PROPOSAL
Julie S FlosiIndiaIvan Magalhaes UNQUALIFIED
Greenwood W MaletArgentinaIvan Magalhaes NEW
Aika P CampainSpainAnna Fali NEGOTIATION
Isabel C MacleadBrazilBernardo Dominic NEGOTIATION
Rodrigues H ChuiIndiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon E NickaAustraliaIoni Bowcher QUALIFIED
Clifford T OldroydGermanyIvan Magalhaes UNQUALIFIED
Morrow F StensethAustraliaAmy Elsner UNQUALIFIED
Stacey N PoquetteGermanyAnna Fali UNQUALIFIED
Antonio Q FollerFranceBernardo Dominic RENEWAL
Ricardo T WaycottJapanAnna Fali NEW
Leon H FigeroaAustraliaIoni Bowcher RENEWAL
Claire Q RulapaughFranceAnna Fali UNQUALIFIED
Murillo G SergiUnited KingdomXuxue Feng UNQUALIFIED
Antonio G RoysterGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez C SlusarskiSpain2025-04-11Printing Dimensions NEGOTIATION16Asiya Javayant
1001David Q StockhamAustralia2025-04-19Feiner Bros NEW19Asiya Javayant
1002Jefferson B NickaIndia2025-04-26Morlong Associates PROPOSAL53Asiya Javayant
1003Faith L KuskoGermany2025-04-05Commercial Press NEW52Ivan Magalhaes
1004Sinclair N RutaIndia2025-03-31Chapman, Ross E Esq RENEWAL46Ivan Magalhaes
1005Arvin L PaprockiRussia2025-04-10King, Christopher A Esq RENEWAL97Onyama Limba
1006Munro F DarakjyIndia2025-04-22Truhlar And Truhlar Attys UNQUALIFIED95Ioni Bowcher
1007Silvio H BologniaItaly2025-04-28Rousseaux, Michael Esq PROPOSAL54Bernardo Dominic
1008Alejandro X NickaAustralia2025-04-18Rousseaux, Michael Esq QUALIFIED1Onyama Limba
1009Jeanfrancois A SaylorsAustralia2025-04-20Feltz Printing Service NEW68Asiya Javayant
1010Chavez V PerinIndia2025-04-26Printing Dimensions PROPOSAL74Ioni Bowcher
1011David M GillianArgentina2025-04-14Rangoni Of Florence NEGOTIATION8Bernardo Dominic
1012Aika E CampainJapan2025-04-28Rangoni Of Florence NEW53Elwin Sharvill
1013Murillo W PaprockiGermany2025-04-15Benton, John B Jr UNQUALIFIED92Elwin Sharvill
1014Jefferson G IturbideBrazil2025-04-22King, Christopher A Esq PROPOSAL12Anna Fali
1015Mayumi Q GillianItaly2025-04-18Feiner Bros NEW30Xuxue Feng
1016Clifford Y WieserGermany2025-04-23Rousseaux, Michael Esq UNQUALIFIED37Ioni Bowcher
1017Izzy P VenereSpain2025-04-18Commercial Press RENEWAL34Stephen Shaw
1018Octavia B WhobreyIndia2025-04-11Benton, John B Jr QUALIFIED97Stephen Shaw
1019Costa T CampainUnited Kingdom2025-04-29Feltz Printing Service PROPOSAL22Ioni Bowcher
1020Aruna Z VocelkaJapan2025-04-18Truhlar And Truhlar Attys QUALIFIED54Elwin Sharvill
1021Octavia C GlickBrazil2025-04-09Chemel, James L Cpa NEW6Onyama Limba
1022Jones T CaudyArgentina2025-04-01Dorl, James J Esq QUALIFIED78Amy Elsner
1023Smith W BologniaIndia2025-04-26Rousseaux, Michael Esq NEW40Ioni Bowcher
1024James P BowleyItaly2025-04-24Dorl, James J Esq PROPOSAL87Ivan Magalhaes
1025Salvatore Z WaycottBrazil2025-03-31Printing Dimensions QUALIFIED94Bernardo Dominic
1026Sinclair G OldroydGermany2025-04-09Rangoni Of Florence QUALIFIED88Onyama Limba
1027Rodrigues R GlickBrazil2025-04-07Feltz Printing Service PROPOSAL1Elwin Sharvill
1028Wickens J WieserIndia2025-04-07Commercial Press NEW66Stephen Shaw
1029Kaitlin G ChuiIndia2025-04-03Feltz Printing Service UNQUALIFIED84Elwin Sharvill
1030Ricardo X FlosiUnited Kingdom2025-04-29Truhlar And Truhlar Attys QUALIFIED77Stephen Shaw
1031Claire E SaylorsSpain2025-04-01Buckley Miller Wright RENEWAL17Anna Fali
1032Silvio P CampainIndia2025-04-16Rangoni Of Florence NEW82Amy Elsner
1033Maria B IturbideItaly2025-04-28Feiner Bros RENEWAL72Asiya Javayant
1034Octavia Y NickaAustralia2025-04-11Chanay, Jeffrey A Esq UNQUALIFIED65Ioni Bowcher
1035Maisha T ButtAustralia2025-04-10Printing Dimensions NEW8Amy Elsner
1036Johnson S NestleArgentina2025-04-21Buckley Miller Wright PROPOSAL87Ivan Magalhaes
1037Costa B GarufiArgentina2025-04-19Rousseaux, Michael Esq NEW10Asiya Javayant
1038Mujtaba P ShinkoIndia2025-04-02Truhlar And Truhlar Attys UNQUALIFIED54Onyama Limba
1039Aditya J AmigonGermany2025-04-09Rangoni Of Florence UNQUALIFIED96Stephen Shaw
1040Juan H VocelkaItaly2025-04-09Truhlar And Truhlar Attys NEW9Ioni Bowcher
1041Misaki T SchemmerRussia2025-04-25Commercial Press PROPOSAL58Amy Elsner
1042Johnson H VenereSpain2025-04-17Chanay, Jeffrey A Esq NEGOTIATION58Stephen Shaw
1043Jeanfrancois W SaylorsArgentina2025-04-06Rousseaux, Michael Esq PROPOSAL35Anna Fali
1044Morrow Z VenereUnited Kingdom2025-04-02Morlong Associates RENEWAL53Elwin Sharvill
1045Mujtaba A DilliardAustralia2025-04-05Chemel, James L Cpa PROPOSAL10Onyama Limba
1046Juan D WhobreySpain2025-04-12Chanay, Jeffrey A Esq RENEWAL45Ivan Magalhaes
1047Costa O CaudyGermany2025-04-15Chapman, Ross E Esq QUALIFIED4Xuxue Feng
1048Mujtaba R PerinRussia2025-04-11Feltz Printing Service RENEWAL31Onyama Limba
1049Antonio W FigeroaArgentina2025-04-01Buckley Miller Wright NEW4Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Arvin Y SergiJapanIoni Bowcher RENEWAL
Francesco X RimAustraliaElwin Sharvill NEW
Kaitlin E StockhamRussiaBernardo Dominic PROPOSAL
Leja M GillianGermanyXuxue Feng NEW
Wickens U VocelkaRussiaAmy Elsner RENEWAL
Claire L PerinGermanyIvan Magalhaes PROPOSAL
Adams V IturbideIndiaOnyama Limba QUALIFIED
Darci S StockhamGermanyElwin Sharvill UNQUALIFIED
Stacey C OstroskySpainStephen Shaw NEGOTIATION
Murillo F KolmetzAustraliaAnna Fali RENEWAL
Leon C MaletUnited KingdomBernardo Dominic NEW
Cody S GillianUnited KingdomStephen Shaw QUALIFIED
Cody W GarufiBrazilElwin Sharvill NEW
Juan O SchemmerArgentinaBernardo Dominic UNQUALIFIED
Leja M DarakjyItalyBernardo Dominic NEW
Maria J RoysterRussiaIoni Bowcher UNQUALIFIED
Murillo P DilliardBrazilBernardo Dominic NEW
David I MacleadBrazilAsiya Javayant NEW
Maisha V WaycottSpainStephen Shaw UNQUALIFIED
Leja J SaylorsRussiaAmy Elsner UNQUALIFIED
Ivar K StockhamGermanyBernardo Dominic PROPOSAL
Nicolas L MorascaRussiaAmy Elsner RENEWAL
Claire N KuskoFranceAmy Elsner NEW
Wickens Q DilliardIndiaAmy Elsner PROPOSAL
Cody B MacleadAustraliaBernardo Dominic QUALIFIED
Emily F GillianJapanAnna Fali RENEWAL
Aika A ChuiCanadaIvan Magalhaes NEW
Ashley Q InouyeFranceStephen Shaw NEW
Smith B MaletAustraliaIoni Bowcher UNQUALIFIED
Salvatore P CaldareraSpainIvan Magalhaes RENEWAL
Stacey Z FigeroaCanadaAsiya Javayant PROPOSAL
Alejandro T NickaCanadaAmy Elsner NEW
Jefferson R DoeIndiaXuxue Feng NEGOTIATION
Smith K BologniaFranceOnyama Limba UNQUALIFIED
Francesco H PerinIndiaAnna Fali QUALIFIED
Izzy W StockhamFranceAnna Fali RENEWAL
Ashley K NestleSpainAsiya Javayant PROPOSAL
Smith T SergiJapanXuxue Feng UNQUALIFIED
Alejandro Z RimJapanIvan Magalhaes UNQUALIFIED
Deepesh F CampainUnited KingdomIoni Bowcher NEGOTIATION
Octavia M CampainArgentinaStephen Shaw UNQUALIFIED
Stacey U SaylorsAustraliaXuxue Feng QUALIFIED
Nicolas I SaylorsUnited KingdomAmy Elsner RENEWAL
Claire C ButtRussiaElwin Sharvill NEW
Faith G BowleyCanadaXuxue Feng RENEWAL
Alejandro Y ChuiAustraliaAmy Elsner NEGOTIATION
Cody I SergiFranceXuxue Feng PROPOSAL
Faith X BowleyJapanAmy Elsner RENEWAL
David I SchemmerFranceAmy Elsner PROPOSAL
Alejandro J BologniaBrazilOnyama Limba QUALIFIED
Frozen Columns
Name
Munro Y Rim
Juan T Rulapaugh
Jones S Rim
Aruna G Wieser
Kaitlin W Bowley
Alejandro T Bowley
Murillo I Caldarera
Tony V Saylors
Leon F Vocelka
Jefferson P Glick
Faith E Flosi
Jennifer O Nicka
Ivar O Morasca
Jennifer A Doe
Deepesh Z Sergi
Francesco P Vocelka
Jeanfrancois J Malet
Ashley P Kolmetz
Nicolas T Campain
Leon A Tollner
Octavia M Schemmer
Misaki N Tollner
Mujtaba J Foller
Claire S Caldarera
Jones Q Amigon
Johnson F Stockham
Johnson G Briddick
Izzy I Marrier
Julie O Gaucho
Jennifer N Gaucho
Isabel C Figeroa
Misaki P Chui
Chavez O Ruta
David Y Nestle
Octavia T Darakjy
Octavia N Oldroyd
Misaki I Darakjy
Wickens N Inouye
Izzy X Ostrosky
Greenwood K Foller
Arvin G Sergi
Emily D Rim
Rodrigues X Amigon
Ashley G Wieser
Darci G Nestle
Mayumi Z Rulapaugh
Cody Y Stenseth
Sinclair J Nestle
Salvatore K Caldarera
Sinclair O Malet
IdCountryDate
1000France2025-04-24
1001Italy2025-04-23
1002Argentina2025-04-27
1003Russia2025-04-01
1004Australia2025-04-20
1005Russia2025-04-12
1006Russia2025-04-01
1007Argentina2025-04-24
1008United Kingdom2025-04-01
1009Russia2025-04-09
1010Canada2025-04-12
1011United Kingdom2025-04-29
1012United Kingdom2025-04-12
1013Australia2025-04-26
1014Italy2025-04-26
1015Argentina2025-04-29
1016United Kingdom2025-04-24
1017United Kingdom2025-04-13
1018Spain2025-04-07
1019Spain2025-03-31
1020Australia2025-04-26
1021Germany2025-04-05
1022India2025-04-12
1023Canada2025-04-29
1024Japan2025-04-15
1025United Kingdom2025-04-28
1026Australia2025-04-21
1027Argentina2025-04-03
1028Germany2025-04-23
1029Italy2025-04-02
1030Germany2025-04-20
1031United Kingdom2025-04-09
1032Brazil2025-04-21
1033Australia2025-04-29
1034United Kingdom2025-04-08
1035France2025-04-20
1036Brazil2025-04-29
1037Brazil2025-04-23
1038Canada2025-04-29
1039France2025-04-25
1040Germany2025-04-09
1041Russia2025-04-16
1042Brazil2025-04-20
1043Russia2025-04-03
1044Argentina2025-04-27
1045Spain2025-04-05
1046France2025-04-03
1047Argentina2025-04-02
1048Argentina2025-04-23
1049Brazil2025-04-20

On-Demand Data

NameIdCountryDate
Munro Y Ferencz1000France2025-04-02
Tony T Wieser1001Canada2025-04-19
Kadeem N Foller1002Australia2025-04-16
Alejandro X Campain1003Australia2025-04-11
Chavez L Kusko1004Canada2025-04-23
Ricardo Y Gaucho1005Germany2025-04-07
Chavez F Caldarera1006Australia2025-04-08
Octavia X Maclead1007Japan2025-04-08
Tony X Briddick1008India2025-04-05
Francesco S Gaucho1009Spain2025-04-22
Sinclair N Saylors1010India2025-04-06
Rodrigues E Bolognia1011Japan2025-04-17
Arvin E Flosi1012France2025-04-18
Sinclair D Nestle1013India2025-04-12
Stacey G Figeroa1014United Kingdom2025-04-09
Costa U Ostrosky1015Germany2025-03-31
Isabel V Gaucho1016France2025-04-12
Chavez C Doe1017Canada2025-04-24
Adams E Saylors1018Japan2025-04-04
Ricardo B Slusarski1019France2025-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson X VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Clifford R GlickBrazilXuxue Feng NEW
Alejandro J CaudyJapanAsiya Javayant PROPOSAL
Aditya J WieserCanadaAnna Fali QUALIFIED
Smith T PerinArgentinaOnyama Limba NEGOTIATION
James G MorascaJapanStephen Shaw QUALIFIED
Stacey B RimItalyIoni Bowcher RENEWAL
Leon Q StensethFranceAsiya Javayant QUALIFIED
Aruna E SlusarskiAustraliaOnyama Limba NEW
Leon N MarrierCanadaAmy Elsner QUALIFIED
Maria X WaycottItalyOnyama Limba PROPOSAL
Kaitlin F AlbaresJapanAnna Fali RENEWAL
Francesco K ButtRussiaAsiya Javayant UNQUALIFIED
Octavia E AmigonGermanyStephen Shaw NEW
Ivar Y FollerIndiaElwin Sharvill PROPOSAL
Faith W OldroydBrazilOnyama Limba NEW
Julie Q KolmetzArgentinaOnyama Limba PROPOSAL
Leon C WhobreyRussiaIvan Magalhaes UNQUALIFIED
Nicolas P FigeroaItalyElwin Sharvill NEGOTIATION
Deepesh F BologniaBrazilElwin Sharvill RENEWAL
Jefferson J IturbideCanadaIvan Magalhaes QUALIFIED
Kaitlin G StockhamCanadaBernardo Dominic RENEWAL
Clifford U VocelkaIndiaIvan Magalhaes PROPOSAL
Ashley Z MarrierGermanyOnyama Limba RENEWAL
Ricardo L BologniaFranceBernardo Dominic NEW
Juan F GillianFranceAsiya Javayant NEW
David T GarufiIndiaAnna Fali PROPOSAL
Maisha P StensethGermanyIvan Magalhaes RENEWAL
Aika L InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Darci F BologniaJapanIoni Bowcher RENEWAL
Maisha G GlickItalyOnyama Limba UNQUALIFIED
Jefferson A OstroskyArgentinaStephen Shaw QUALIFIED
Antonio Q NickaUnited KingdomStephen Shaw RENEWAL
Claire A OldroydItalyAsiya Javayant RENEWAL
Claire B SaylorsArgentinaElwin Sharvill NEW
Jones T MacleadFranceAnna Fali QUALIFIED
Jefferson C OldroydAustraliaBernardo Dominic QUALIFIED
Nicolas M ShinkoUnited KingdomXuxue Feng RENEWAL
Ivar K ButtUnited KingdomAsiya Javayant NEW
Wickens P PoquetteRussiaAmy Elsner 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>