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
Alejandro T SchemmerBrazilAmy Elsner PROPOSAL
Mayumi Z GarufiIndiaAnna Fali UNQUALIFIED
Silvio W DilliardFranceAnna Fali PROPOSAL
Juan H BowleyItalyAmy Elsner NEW
Jennifer Q ChuiFranceBernardo Dominic QUALIFIED
Nicolas V SchemmerBrazilXuxue Feng QUALIFIED
Francesco E MarrierFranceStephen Shaw UNQUALIFIED
Greenwood K RimFranceAsiya Javayant NEW
Leon A PerinAustraliaStephen Shaw NEW
Misaki G GarufiIndiaXuxue Feng RENEWAL
Jefferson E RimJapanBernardo Dominic NEGOTIATION
Arvin L NickaItalyIoni Bowcher UNQUALIFIED
Leja W BologniaRussiaIoni Bowcher PROPOSAL
Sinclair X BowleyUnited KingdomAmy Elsner NEGOTIATION
Greenwood E FerenczRussiaIoni Bowcher NEGOTIATION
Tony T FlosiArgentinaAsiya Javayant NEGOTIATION
Sinclair D GillianItalyBernardo Dominic RENEWAL
Mayumi D KuskoArgentinaStephen Shaw PROPOSAL
Claire S NestleFranceElwin Sharvill UNQUALIFIED
Kaitlin Z CaldareraRussiaBernardo Dominic PROPOSAL
Smith G InouyeCanadaIvan Magalhaes QUALIFIED
Kaitlin C BologniaCanadaIoni Bowcher NEGOTIATION
Leja P TollnerSpainElwin Sharvill QUALIFIED
Jones F IturbideAustraliaIoni Bowcher PROPOSAL
Stacey W MarrierBrazilAmy Elsner QUALIFIED
James B PerinItalyXuxue Feng RENEWAL
Greenwood X ChuiIndiaXuxue Feng NEGOTIATION
Arvin W FerenczCanadaAmy Elsner UNQUALIFIED
Salvatore Z SchemmerFranceIvan Magalhaes PROPOSAL
Jennifer B MaletArgentinaIvan Magalhaes QUALIFIED
Chavez C WaycottFranceIvan Magalhaes RENEWAL
Juan K OstroskyAustraliaBernardo Dominic PROPOSAL
Rodrigues M FollerSpainIvan Magalhaes QUALIFIED
Ashley H OstroskySpainIvan Magalhaes UNQUALIFIED
Sinclair M CampainArgentinaIvan Magalhaes NEGOTIATION
Darci L CaldareraUnited KingdomElwin Sharvill PROPOSAL
Cody G StockhamUnited KingdomElwin Sharvill RENEWAL
Nicolas Y ButtUnited KingdomIoni Bowcher PROPOSAL
Costa R FigeroaSpainAnna Fali UNQUALIFIED
Greenwood Q GauchoRussiaAnna Fali UNQUALIFIED
Francesco J FlosiRussiaIoni Bowcher UNQUALIFIED
Sinclair W NickaRussiaAnna Fali RENEWAL
Juan D RoysterGermanyIvan Magalhaes NEW
Leon Q InouyeJapanAmy Elsner PROPOSAL
Isabel U SlusarskiItalyIvan Magalhaes PROPOSAL
Mujtaba U CaudyGermanyXuxue Feng NEW
Wickens G BologniaIndiaAmy Elsner NEGOTIATION
Leja F AlbaresItalyXuxue Feng NEGOTIATION
Mayumi U PerinItalyElwin Sharvill QUALIFIED
Stacey H GauchoUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Claire X KolmetzArgentinaAsiya Javayant NEGOTIATION
Greenwood M OldroydAustraliaIoni Bowcher QUALIFIED
Tony R DilliardArgentinaXuxue Feng NEW
Costa U FigeroaBrazilXuxue Feng NEW
Ivar H MacleadUnited KingdomIoni Bowcher QUALIFIED
Jones Z CaudyFranceXuxue Feng NEW
Leja T RoysterRussiaAnna Fali QUALIFIED
Wickens J BologniaGermanyAnna Fali UNQUALIFIED
Claire O KuskoFranceXuxue Feng RENEWAL
Ivar T StensethSpainAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair S ButtGermany2024-05-29Chemel, James L Cpa QUALIFIED89Asiya Javayant
1001Arvin L WieserItaly2024-05-24Dorl, James J Esq UNQUALIFIED65Bernardo Dominic
1002Claire I BriddickCanada2024-05-31Truhlar And Truhlar Attys RENEWAL22Stephen Shaw
1003Kadeem N SchemmerSpain2024-06-09Chemel, James L Cpa UNQUALIFIED27Onyama Limba
1004Morrow B NickaFrance2024-06-01Dorl, James J Esq NEW91Elwin Sharvill
1005Johnson N PaprockiItaly2024-05-27Chanay, Jeffrey A Esq UNQUALIFIED7Onyama Limba
1006Octavia L PerinUnited Kingdom2024-06-02Printing Dimensions RENEWAL7Amy Elsner
1007Jennifer P PoquetteAustralia2024-06-15Truhlar And Truhlar Attys NEGOTIATION49Elwin Sharvill
1008Greenwood S NickaAustralia2024-06-10Benton, John B Jr RENEWAL43Elwin Sharvill
1009Emily V VocelkaRussia2024-06-19King, Christopher A Esq QUALIFIED64Ivan Magalhaes
1010Aika A IturbideGermany2024-06-09Dorl, James J Esq NEGOTIATION48Amy Elsner
1011Misaki E NickaFrance2024-06-09Printing Dimensions RENEWAL6Ioni Bowcher
1012Ricardo X MaletGermany2024-06-05Commercial Press UNQUALIFIED47Elwin Sharvill
1013Jones Y RutaItaly2024-05-31Chanay, Jeffrey A Esq RENEWAL86Ioni Bowcher
1014Arvin C FlosiIndia2024-05-31Commercial Press QUALIFIED63Onyama Limba
1015Aika A CaudySpain2024-06-20Chanay, Jeffrey A Esq NEW45Anna Fali
1016Ricardo S MaletAustralia2024-05-25King, Christopher A Esq NEGOTIATION89Asiya Javayant
1017Mujtaba S SergiFrance2024-06-22Rousseaux, Michael Esq QUALIFIED22Asiya Javayant
1018Aika I DilliardGermany2024-06-11Benton, John B Jr NEGOTIATION53Bernardo Dominic
1019Jones Z StockhamGermany2024-05-27Rousseaux, Michael Esq UNQUALIFIED66Ioni Bowcher
1020Aruna O GauchoJapan2024-06-01Chanay, Jeffrey A Esq PROPOSAL75Bernardo Dominic
1021Murillo P NestleItaly2024-06-10Rousseaux, Michael Esq PROPOSAL96Onyama Limba
1022Maria N TollnerRussia2024-06-11Benton, John B Jr PROPOSAL95Ivan Magalhaes
1023Morrow D GarufiIndia2024-06-20Truhlar And Truhlar Attys QUALIFIED14Stephen Shaw
1024Isabel Y VocelkaCanada2024-06-20Buckley Miller Wright UNQUALIFIED95Elwin Sharvill
1025Jeanfrancois U NickaArgentina2024-06-18Rangoni Of Florence UNQUALIFIED88Amy Elsner
1026Tony N CampainSpain2024-06-20Commercial Press PROPOSAL72Anna Fali
1027Ricardo D RoysterArgentina2024-06-17Chanay, Jeffrey A Esq QUALIFIED7Ioni Bowcher
1028Jones P RimCanada2024-06-17Printing Dimensions RENEWAL74Bernardo Dominic
1029Sinclair R ShinkoRussia2024-05-26Chapman, Ross E Esq RENEWAL54Stephen Shaw
1030Silvio K FollerArgentina2024-06-09Benton, John B Jr UNQUALIFIED89Elwin Sharvill
1031Smith F IturbideCanada2024-06-22Dorl, James J Esq NEGOTIATION46Elwin Sharvill
1032Jennifer V FlosiArgentina2024-06-21Chapman, Ross E Esq RENEWAL90Onyama Limba
1033Mujtaba A StensethBrazil2024-06-06Chemel, James L Cpa QUALIFIED74Amy Elsner
1034Jones T OldroydSpain2024-06-16Morlong Associates RENEWAL42Stephen Shaw
1035Kaitlin Y SlusarskiGermany2024-05-31Dorl, James J Esq QUALIFIED96Asiya Javayant
1036David T AlbaresJapan2024-06-01Feltz Printing Service NEW40Elwin Sharvill
1037Chavez H CampainUnited Kingdom2024-06-13Printing Dimensions PROPOSAL34Asiya Javayant
1038Greenwood H ChuiAustralia2024-06-11Benton, John B Jr PROPOSAL8Onyama Limba
1039Jennifer V PaprockiFrance2024-06-15Morlong Associates NEGOTIATION12Asiya Javayant
1040Aika D StockhamGermany2024-05-31Chapman, Ross E Esq UNQUALIFIED69Ivan Magalhaes
1041Emily F DarakjyFrance2024-05-25Benton, John B Jr RENEWAL37Elwin Sharvill
1042Arvin N ButtIndia2024-06-16Buckley Miller Wright NEGOTIATION15Elwin Sharvill
1043Murillo O KuskoSpain2024-06-12King, Christopher A Esq RENEWAL81Asiya Javayant
1044Izzy Z AlbaresIndia2024-06-13King, Christopher A Esq UNQUALIFIED83Ioni Bowcher
1045Claire G ChuiUnited Kingdom2024-05-27Benton, John B Jr NEGOTIATION76Onyama Limba
1046Mayumi N CaudySpain2024-06-04Rousseaux, Michael Esq QUALIFIED27Ivan Magalhaes
1047Stacey U FlosiAustralia2024-06-02Chemel, James L Cpa NEGOTIATION29Onyama Limba
1048Darci O DarakjyCanada2024-05-24King, Christopher A Esq RENEWAL20Bernardo Dominic
1049Emily K MacleadRussia2024-06-17Rousseaux, Michael Esq QUALIFIED93Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Munro C WhobreyJapanAsiya Javayant NEW
Tony B WaycottJapanBernardo Dominic QUALIFIED
Izzy Y CampainIndiaOnyama Limba RENEWAL
Maisha Y PoquetteCanadaOnyama Limba QUALIFIED
Kaitlin D BriddickCanadaBernardo Dominic NEW
Deepesh O GauchoBrazilXuxue Feng NEW
Antonio L BowleyIndiaIvan Magalhaes RENEWAL
Darci U FollerArgentinaOnyama Limba UNQUALIFIED
Chavez L RoysterJapanBernardo Dominic QUALIFIED
Juan U AlbaresFranceIvan Magalhaes NEW
Emily I RoysterCanadaElwin Sharvill QUALIFIED
Rodrigues Z RimCanadaBernardo Dominic QUALIFIED
Smith M RimFranceStephen Shaw NEGOTIATION
Greenwood S NickaRussiaIoni Bowcher QUALIFIED
Mujtaba U OldroydAustraliaAnna Fali UNQUALIFIED
David F WaycottRussiaXuxue Feng QUALIFIED
Ricardo V WaycottRussiaXuxue Feng NEW
Stacey P FlosiAustraliaAnna Fali NEGOTIATION
Jones Y BowleyIndiaIoni Bowcher NEGOTIATION
Ricardo T CaldareraBrazilXuxue Feng NEW
Johnson U DilliardJapanOnyama Limba UNQUALIFIED
Faith S SchemmerJapanAnna Fali NEGOTIATION
Octavia N CampainJapanIoni Bowcher QUALIFIED
Cody G AlbaresJapanBernardo Dominic RENEWAL
Jones W VenereAustraliaAmy Elsner RENEWAL
Rodrigues X TollnerUnited KingdomXuxue Feng QUALIFIED
Claire S FigeroaSpainIoni Bowcher UNQUALIFIED
Munro M NestleJapanIvan Magalhaes PROPOSAL
Izzy Z GauchoFranceElwin Sharvill RENEWAL
Izzy P KuskoFranceIoni Bowcher NEW
Jeanfrancois U KuskoBrazilIoni Bowcher RENEWAL
Tony T BriddickBrazilElwin Sharvill NEGOTIATION
Ivar X OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Silvio E OstroskyGermanyAsiya Javayant UNQUALIFIED
Aruna R BowleyFranceAnna Fali QUALIFIED
Leja Q DoeRussiaStephen Shaw NEW
Nicolas Q RulapaughUnited KingdomStephen Shaw QUALIFIED
Misaki E WieserIndiaBernardo Dominic PROPOSAL
Johnson B PaprockiIndiaOnyama Limba RENEWAL
Maria S RoysterFranceIoni Bowcher RENEWAL
Jeanfrancois G SaylorsItalyIoni Bowcher UNQUALIFIED
Aditya E NestleRussiaBernardo Dominic NEW
Francesco H CampainSpainBernardo Dominic QUALIFIED
Octavia W FlosiRussiaStephen Shaw NEW
Kadeem A BologniaArgentinaElwin Sharvill UNQUALIFIED
Isabel A GauchoUnited KingdomAmy Elsner NEGOTIATION
Morrow M GlickJapanIoni Bowcher NEGOTIATION
Mayumi M CampainBrazilStephen Shaw QUALIFIED
Morrow K RutaSpainAsiya Javayant NEW
Silvio M FigeroaBrazilIoni Bowcher QUALIFIED
Frozen Columns
Name
Silvio K Iturbide
Maria T Saylors
Emily D Gaucho
Clifford S Amigon
Salvatore F Foller
David N Wieser
James P Slusarski
Izzy E Caudy
Costa H Darakjy
Mujtaba F Morasca
Silvio O Rulapaugh
Antonio J Schemmer
Ivar C Schemmer
Aruna Q Flosi
Darci M Briddick
Julie H Schemmer
David N Rim
Deepesh H Malet
Deepesh E Bowley
Sinclair Z Malet
Jeanfrancois J Albares
Maria G Nicka
Francesco I Foller
Claire C Paprocki
Julie X Bolognia
Jefferson M Stockham
Emily A Iturbide
Chavez R Tollner
Aruna Y Venere
Arvin H Darakjy
Jennifer B Wieser
Deepesh B Slusarski
James A Inouye
Murillo R Waycott
Octavia A Kusko
Salvatore X Rulapaugh
Chavez L Saylors
Salvatore O Nestle
Mayumi J Venere
Cody Z Sergi
Faith E Albares
Chavez Q Nestle
Jennifer A Schemmer
Ricardo E Chui
Claire H Inouye
Ivar A Paprocki
Jennifer Q Vocelka
Jennifer V Bowley
Mayumi S Rim
Leja J Inouye
IdCountryDate
1000Japan2024-05-29
1001Russia2024-05-30
1002Russia2024-06-06
1003Italy2024-05-28
1004Russia2024-06-02
1005India2024-06-01
1006Italy2024-06-18
1007Japan2024-05-25
1008India2024-05-25
1009Italy2024-06-17
1010India2024-06-17
1011India2024-06-13
1012Brazil2024-05-27
1013Canada2024-05-31
1014Germany2024-06-02
1015France2024-06-15
1016Argentina2024-06-01
1017Spain2024-06-09
1018Brazil2024-06-11
1019Japan2024-06-13
1020Germany2024-06-08
1021Japan2024-06-20
1022Japan2024-05-24
1023Australia2024-05-25
1024Spain2024-06-19
1025Argentina2024-05-25
1026Russia2024-05-29
1027Argentina2024-05-27
1028Russia2024-06-02
1029Spain2024-06-08
1030Italy2024-06-09
1031Spain2024-05-30
1032Russia2024-06-21
1033Canada2024-06-08
1034Germany2024-06-18
1035Australia2024-06-03
1036Germany2024-06-10
1037Australia2024-05-27
1038Spain2024-05-24
1039Russia2024-06-07
1040Australia2024-06-13
1041Italy2024-06-12
1042Brazil2024-06-04
1043Spain2024-06-17
1044United Kingdom2024-06-13
1045Australia2024-06-07
1046Canada2024-06-03
1047Argentina2024-06-22
1048Russia2024-06-06
1049Russia2024-06-08

On-Demand Data

NameIdCountryDate
Maisha F Chui1000Australia2024-06-21
Izzy O Bowley1001Italy2024-06-19
Ashley D Glick1002Canada2024-06-14
Chavez C Vocelka1003India2024-06-01
Faith S Foller1004Argentina2024-06-05
Kadeem D Figeroa1005Spain2024-06-20
Mujtaba E Ferencz1006Australia2024-05-24
Arvin O Poquette1007United Kingdom2024-05-27
Mayumi X Slusarski1008Germany2024-06-04
Antonio S Figeroa1009Australia2024-06-08
Aika V Ruta1010Canada2024-06-01
Munro U Malet1011Argentina2024-06-14
Greenwood T Maclead1012France2024-06-13
Maisha F Ostrosky1013Canada2024-06-13
Leon K Amigon1014France2024-05-29
Cody V Morasca1015Russia2024-05-31
Antonio K Venere1016Japan2024-06-22
Alejandro J Ferencz1017United Kingdom2024-06-18
Morrow O Ruta1018India2024-06-05
Jones X Campain1019Argentina2024-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley X DarakjyBrazilAsiya Javayant NEGOTIATION
Johnson V FollerArgentinaOnyama Limba PROPOSAL
Mujtaba L GillianSpainIoni Bowcher PROPOSAL
Darci I ButtArgentinaAmy Elsner RENEWAL
Leja D GarufiJapanElwin Sharvill PROPOSAL
Antonio W DoeAustraliaIvan Magalhaes NEGOTIATION
Ricardo Q GauchoSpainAmy Elsner UNQUALIFIED
Costa F FigeroaArgentinaIvan Magalhaes PROPOSAL
Arvin D AmigonIndiaIoni Bowcher NEW
Munro F FlosiRussiaIvan Magalhaes RENEWAL
Morrow E WaycottBrazilAmy Elsner NEW
Maria T GauchoUnited KingdomAnna Fali NEGOTIATION
Claire R RutaAustraliaStephen Shaw NEW
Murillo J DoeJapanIvan Magalhaes RENEWAL
Morrow B MorascaCanadaAnna Fali PROPOSAL
Rodrigues F CampainAustraliaXuxue Feng PROPOSAL
Chavez V FerenczIndiaStephen Shaw NEW
Izzy U VocelkaJapanIoni Bowcher UNQUALIFIED
Emily L RulapaughCanadaBernardo Dominic UNQUALIFIED
James C RimBrazilXuxue Feng NEW
Sinclair J FollerGermanyIvan Magalhaes UNQUALIFIED
Ricardo E StensethCanadaXuxue Feng UNQUALIFIED
Salvatore U MorascaGermanyAmy Elsner QUALIFIED
Maria T MaletBrazilAmy Elsner QUALIFIED
Murillo O FlosiArgentinaIoni Bowcher UNQUALIFIED
Emily S GarufiFranceOnyama Limba PROPOSAL
Smith V CaldareraAustraliaStephen Shaw UNQUALIFIED
Aditya Z BriddickItalyElwin Sharvill UNQUALIFIED
Aditya P OldroydItalyIoni Bowcher NEW
Maria T OldroydRussiaAsiya Javayant QUALIFIED
Darci D StensethArgentinaAnna Fali PROPOSAL
Adams J VocelkaItalyAmy Elsner QUALIFIED
Kaitlin V VenereSpainAmy Elsner NEGOTIATION
Murillo H BologniaItalyIoni Bowcher RENEWAL
James L GlickSpainAmy Elsner QUALIFIED
Ricardo N GauchoSpainAnna Fali UNQUALIFIED
Jefferson S AlbaresGermanyIoni Bowcher QUALIFIED
Kadeem P MaletAustraliaIvan Magalhaes NEGOTIATION
Ashley Q BowleyArgentinaIvan Magalhaes NEW
Adams S RoysterSpainOnyama Limba NEGOTIATION

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