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
Leon F MaletUnited KingdomIvan Magalhaes NEGOTIATION
Octavia X GillianIndiaAmy Elsner NEGOTIATION
Maria N SlusarskiAustraliaAnna Fali RENEWAL
Cody G TollnerAustraliaOnyama Limba NEGOTIATION
Jennifer V GarufiIndiaOnyama Limba RENEWAL
Emily N WaycottSpainAsiya Javayant QUALIFIED
Wickens Q DoeGermanyOnyama Limba UNQUALIFIED
Deepesh F StockhamAustraliaOnyama Limba RENEWAL
Aika G OldroydBrazilIoni Bowcher PROPOSAL
Salvatore K BologniaItalyElwin Sharvill NEW
James R RulapaughCanadaBernardo Dominic NEGOTIATION
Ricardo T KuskoAustraliaIvan Magalhaes UNQUALIFIED
Darci D NickaIndiaAsiya Javayant RENEWAL
Ivar P RulapaughArgentinaStephen Shaw NEW
Stacey O WieserArgentinaOnyama Limba PROPOSAL
Leja B ShinkoBrazilAnna Fali QUALIFIED
Francesco N GillianGermanyBernardo Dominic QUALIFIED
Maisha R CampainFranceIvan Magalhaes NEGOTIATION
Francesco D RoysterFranceAnna Fali RENEWAL
Salvatore P FlosiIndiaAmy Elsner RENEWAL
Faith W InouyeRussiaBernardo Dominic QUALIFIED
Jeanfrancois O NestleFranceAsiya Javayant UNQUALIFIED
Mujtaba J GarufiBrazilAnna Fali PROPOSAL
Wickens O SlusarskiItalyBernardo Dominic RENEWAL
Ashley C MorascaRussiaIoni Bowcher NEW
Wickens A MaletFranceAnna Fali NEW
Tony J DilliardSpainBernardo Dominic UNQUALIFIED
Tony V MacleadGermanyAmy Elsner QUALIFIED
Sinclair H MorascaAustraliaAnna Fali NEGOTIATION
Kadeem I MacleadItalyIvan Magalhaes PROPOSAL
James S RutaBrazilXuxue Feng QUALIFIED
Chavez V TollnerCanadaXuxue Feng PROPOSAL
Antonio F ButtGermanyIvan Magalhaes NEW
Ricardo E CaldareraIndiaAmy Elsner QUALIFIED
Sinclair Q SlusarskiJapanIoni Bowcher NEGOTIATION
Mujtaba H RimFranceAmy Elsner NEW
Johnson E DarakjyFranceElwin Sharvill RENEWAL
Antonio S ShinkoUnited KingdomIvan Magalhaes RENEWAL
Aika N WaycottCanadaIoni Bowcher PROPOSAL
Greenwood I BologniaBrazilStephen Shaw QUALIFIED
Ivar X FollerCanadaStephen Shaw PROPOSAL
Sinclair L BologniaArgentinaStephen Shaw QUALIFIED
Emily J SaylorsItalyStephen Shaw UNQUALIFIED
Kaitlin K AlbaresFranceAsiya Javayant NEW
Adams K VocelkaUnited KingdomXuxue Feng UNQUALIFIED
Arvin Y VenereRussiaIoni Bowcher NEGOTIATION
Isabel E VenereItalyBernardo Dominic NEW
Leon W NestleGermanyStephen Shaw NEW
Morrow D OldroydRussiaIoni Bowcher NEW
Darci B DoeRussiaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel V ShinkoBrazilIvan Magalhaes NEGOTIATION
Juan B DarakjyGermanyOnyama Limba NEGOTIATION
Morrow P WhobreySpainBernardo Dominic UNQUALIFIED
Antonio W InouyeGermanyIoni Bowcher PROPOSAL
Jeanfrancois L KolmetzItalyXuxue Feng QUALIFIED
Mujtaba F CaldareraAustraliaElwin Sharvill NEGOTIATION
Smith T WhobreyUnited KingdomOnyama Limba QUALIFIED
Costa B CaldareraIndiaAsiya Javayant RENEWAL
Ivar S PaprockiBrazilStephen Shaw NEGOTIATION
Misaki E GlickArgentinaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie F StensethGermany2025-06-13Dorl, James J Esq NEW40Stephen Shaw
1001Ashley E DoeUnited Kingdom2025-06-06Dorl, James J Esq RENEWAL46Bernardo Dominic
1002Morrow N GlickUnited Kingdom2025-06-13Rangoni Of Florence UNQUALIFIED12Elwin Sharvill
1003Alejandro U FigeroaAustralia2025-06-13Rangoni Of Florence NEGOTIATION95Ioni Bowcher
1004Leon F NickaAustralia2025-06-02Chanay, Jeffrey A Esq QUALIFIED71Bernardo Dominic
1005Mayumi O BowleyCanada2025-05-23Dorl, James J Esq NEGOTIATION28Xuxue Feng
1006Rodrigues I MorascaUnited Kingdom2025-06-03Morlong Associates QUALIFIED63Elwin Sharvill
1007Arvin Z WieserCanada2025-05-29Feiner Bros UNQUALIFIED64Ivan Magalhaes
1008Ivar P TollnerAustralia2025-05-31Rangoni Of Florence NEW54Ivan Magalhaes
1009Antonio D MaletJapan2025-05-19Chanay, Jeffrey A Esq NEGOTIATION29Onyama Limba
1010Antonio J SaylorsAustralia2025-05-27Truhlar And Truhlar Attys NEGOTIATION35Stephen Shaw
1011Johnson I WhobreyItaly2025-06-09King, Christopher A Esq PROPOSAL14Anna Fali
1012Morrow B TollnerAustralia2025-05-22Feltz Printing Service PROPOSAL53Asiya Javayant
1013Arvin E MacleadItaly2025-06-14Feiner Bros PROPOSAL87Xuxue Feng
1014Aditya A FlosiUnited Kingdom2025-05-29Dorl, James J Esq QUALIFIED68Elwin Sharvill
1015Juan D TollnerAustralia2025-06-06Buckley Miller Wright PROPOSAL32Ivan Magalhaes
1016Adams Y FerenczCanada2025-05-19Rousseaux, Michael Esq QUALIFIED13Ivan Magalhaes
1017Salvatore O KuskoJapan2025-05-30Commercial Press UNQUALIFIED44Ivan Magalhaes
1018Ivar R GillianCanada2025-06-06Commercial Press NEW23Anna Fali
1019Sinclair P PoquetteAustralia2025-05-26Buckley Miller Wright PROPOSAL7Elwin Sharvill
1020Costa J PaprockiRussia2025-05-26Printing Dimensions PROPOSAL25Ivan Magalhaes
1021Ashley I ShinkoSpain2025-06-11Feiner Bros UNQUALIFIED6Bernardo Dominic
1022Murillo A BologniaItaly2025-06-09Printing Dimensions NEW53Ioni Bowcher
1023Juan X OstroskyJapan2025-06-03Benton, John B Jr RENEWAL20Ioni Bowcher
1024Aditya Q FerenczAustralia2025-06-13King, Christopher A Esq QUALIFIED62Asiya Javayant
1025Kadeem K FigeroaCanada2025-06-15Rangoni Of Florence QUALIFIED35Onyama Limba
1026Adams A VocelkaSpain2025-06-03Morlong Associates QUALIFIED85Asiya Javayant
1027Jeanfrancois S MacleadBrazil2025-06-15Dorl, James J Esq NEW79Ioni Bowcher
1028Ivar H WieserArgentina2025-06-11Chemel, James L Cpa PROPOSAL22Xuxue Feng
1029Mayumi W StensethSpain2025-06-05Truhlar And Truhlar Attys NEGOTIATION85Asiya Javayant
1030Morrow L CaudyIndia2025-06-01Buckley Miller Wright NEGOTIATION81Ioni Bowcher
1031Costa X GauchoFrance2025-06-04Chanay, Jeffrey A Esq RENEWAL98Onyama Limba
1032Arvin S FerenczGermany2025-06-02Benton, John B Jr RENEWAL30Ivan Magalhaes
1033Wickens I SaylorsBrazil2025-06-06Morlong Associates RENEWAL39Ioni Bowcher
1034Johnson N NestleJapan2025-05-26Dorl, James J Esq RENEWAL29Stephen Shaw
1035Chavez R WaycottUnited Kingdom2025-05-31Chanay, Jeffrey A Esq QUALIFIED93Ivan Magalhaes
1036Mujtaba B ChuiRussia2025-06-01Benton, John B Jr UNQUALIFIED98Anna Fali
1037Rodrigues P BriddickIndia2025-06-02Chapman, Ross E Esq NEGOTIATION23Bernardo Dominic
1038Alejandro R RutaGermany2025-06-01Feiner Bros PROPOSAL36Elwin Sharvill
1039Murillo C WieserUnited Kingdom2025-06-08Chapman, Ross E Esq PROPOSAL98Xuxue Feng
1040Isabel X CaudyIndia2025-05-30Feltz Printing Service PROPOSAL32Amy Elsner
1041Jones V IturbideSpain2025-06-15Rousseaux, Michael Esq QUALIFIED88Ioni Bowcher
1042Aika K PerinItaly2025-05-19Rousseaux, Michael Esq NEGOTIATION60Anna Fali
1043Salvatore S MorascaArgentina2025-06-10Buckley Miller Wright NEGOTIATION58Onyama Limba
1044Antonio Y WieserRussia2025-06-05Buckley Miller Wright NEW33Asiya Javayant
1045Mujtaba V OstroskyIndia2025-06-07Feiner Bros NEW95Amy Elsner
1046Francesco I RoysterJapan2025-05-27Benton, John B Jr UNQUALIFIED57Amy Elsner
1047Antonio U FollerRussia2025-05-29Chapman, Ross E Esq NEW64Elwin Sharvill
1048Ricardo C AmigonBrazil2025-06-05Commercial Press QUALIFIED2Asiya Javayant
1049Cody R KolmetzCanada2025-05-29King, Christopher A Esq PROPOSAL42Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Clifford K BowleyCanadaAmy Elsner QUALIFIED
Murillo X AmigonBrazilIvan Magalhaes NEW
Sinclair Y RimUnited KingdomXuxue Feng QUALIFIED
Aruna P OstroskyItalyAnna Fali RENEWAL
Morrow H FerenczBrazilOnyama Limba NEGOTIATION
Ashley P GauchoAustraliaAmy Elsner RENEWAL
Aditya P WaycottAustraliaXuxue Feng NEGOTIATION
Misaki Q IturbideIndiaAnna Fali NEW
Adams W AmigonGermanyAmy Elsner RENEWAL
Nicolas F VenereGermanyStephen Shaw QUALIFIED
Ivar D MorascaItalyAmy Elsner QUALIFIED
Costa P GauchoRussiaIvan Magalhaes NEGOTIATION
Morrow Y ChuiCanadaElwin Sharvill RENEWAL
Ashley N SaylorsCanadaOnyama Limba UNQUALIFIED
Cody E StensethFranceElwin Sharvill PROPOSAL
Costa F WaycottCanadaIvan Magalhaes NEW
Nicolas R KolmetzUnited KingdomIoni Bowcher PROPOSAL
Murillo Y SchemmerFranceStephen Shaw QUALIFIED
Jeanfrancois H AlbaresIndiaElwin Sharvill PROPOSAL
Deepesh Y FollerGermanyOnyama Limba NEW
David F BologniaAustraliaIoni Bowcher NEGOTIATION
James W WhobreyIndiaIoni Bowcher NEGOTIATION
Silvio U WieserSpainAmy Elsner PROPOSAL
Aruna P IturbideCanadaAnna Fali NEW
Arvin K ShinkoGermanyIoni Bowcher RENEWAL
Darci Z DarakjyIndiaAsiya Javayant NEGOTIATION
Morrow J MorascaRussiaAsiya Javayant RENEWAL
Munro T AmigonFranceXuxue Feng NEW
Clifford M DoeGermanyStephen Shaw NEGOTIATION
Aika Y DoeItalyAmy Elsner QUALIFIED
Misaki P FerenczAustraliaIoni Bowcher NEGOTIATION
Johnson U MaletFranceIoni Bowcher NEW
Antonio M ChuiSpainOnyama Limba PROPOSAL
Munro T SaylorsRussiaIvan Magalhaes UNQUALIFIED
Mujtaba Z DilliardSpainXuxue Feng UNQUALIFIED
Darci Z GarufiRussiaIoni Bowcher RENEWAL
Misaki J SaylorsSpainElwin Sharvill NEW
Deepesh X DilliardCanadaIoni Bowcher UNQUALIFIED
Clifford J SlusarskiJapanOnyama Limba RENEWAL
Emily U OstroskySpainAmy Elsner UNQUALIFIED
Claire L TollnerItalyStephen Shaw RENEWAL
Francesco Q VocelkaJapanStephen Shaw PROPOSAL
Darci H RimCanadaBernardo Dominic PROPOSAL
Misaki V BologniaCanadaAnna Fali NEGOTIATION
Murillo V IturbideSpainAsiya Javayant NEW
Claire F GlickIndiaAsiya Javayant NEGOTIATION
Wickens A KolmetzBrazilAsiya Javayant QUALIFIED
James Q CaudyRussiaAnna Fali UNQUALIFIED
Aruna X MaletFranceOnyama Limba PROPOSAL
Adams C OstroskyJapanElwin Sharvill NEW
Frozen Columns
Name
Darci Z Perin
Rodrigues F Caldarera
David M Inouye
Izzy Y Dilliard
Rodrigues D Venere
Aruna Y Whobrey
Izzy U Kolmetz
Jeanfrancois M Nestle
Arvin P Malet
Leon A Darakjy
Johnson C Sergi
Murillo S Malet
Jones N Morasca
Adams V Marrier
Faith T Shinko
Nicolas V Nestle
Ricardo C Paprocki
Faith K Sergi
Maria D Perin
Kaitlin B Chui
Maisha A Nestle
Salvatore Q Nicka
Johnson M Poquette
Tony O Briddick
Isabel V Maclead
Mayumi L Wieser
Maria U Nicka
Deepesh H Whobrey
Antonio I Schemmer
Morrow H Morasca
Julie T Albares
Kadeem Q Briddick
Isabel L Stenseth
Octavia K Darakjy
Darci S Vocelka
Jefferson M Tollner
Ashley X Rulapaugh
Faith E Oldroyd
Izzy W Kolmetz
Stacey W Campain
Jeanfrancois R Ostrosky
Jeanfrancois C Schemmer
Julie X Rim
Leja E Rim
Rodrigues X Gaucho
Antonio K Doe
Stacey H Vocelka
Izzy O Kusko
Morrow W Figeroa
Mayumi V Royster
IdCountryDate
1000Argentina2025-06-14
1001India2025-05-18
1002Japan2025-05-18
1003Australia2025-06-16
1004India2025-06-01
1005Italy2025-05-30
1006United Kingdom2025-05-29
1007Russia2025-05-26
1008Australia2025-06-02
1009Japan2025-06-11
1010Brazil2025-06-10
1011Australia2025-06-10
1012India2025-06-01
1013Italy2025-06-04
1014India2025-05-29
1015Spain2025-05-22
1016Australia2025-05-23
1017Russia2025-05-27
1018Argentina2025-06-12
1019Argentina2025-05-29
1020Japan2025-05-25
1021Japan2025-05-23
1022Argentina2025-06-04
1023Canada2025-06-07
1024Canada2025-06-13
1025Germany2025-05-29
1026Italy2025-06-05
1027United Kingdom2025-06-10
1028France2025-05-24
1029France2025-05-31
1030Australia2025-05-27
1031Italy2025-05-27
1032Italy2025-05-30
1033Japan2025-05-30
1034Italy2025-06-09
1035France2025-06-15
1036Japan2025-05-26
1037Spain2025-06-09
1038France2025-06-10
1039France2025-06-13
1040Canada2025-06-01
1041Japan2025-05-26
1042Germany2025-06-10
1043Canada2025-06-05
1044Russia2025-05-19
1045Germany2025-06-16
1046France2025-05-23
1047India2025-06-01
1048Spain2025-06-14
1049Australia2025-05-19

On-Demand Data

NameIdCountryDate
Jeanfrancois X Amigon1000Australia2025-05-23
Aruna G Kolmetz1001Spain2025-05-19
Darci D Caudy1002Japan2025-06-01
Darci D Royster1003Spain2025-05-26
Darci V Caudy1004Germany2025-06-12
Aditya F Royster1005India2025-05-24
Aruna A Schemmer1006Germany2025-06-05
Julie P Whobrey1007Brazil2025-06-03
Clifford F Waycott1008Brazil2025-06-10
Stacey K Nicka1009Argentina2025-06-01
Maisha P Stockham1010India2025-05-22
Isabel B Stockham1011India2025-05-20
Cody L Ruta1012Spain2025-06-08
Stacey T Caldarera1013Argentina2025-06-06
Kaitlin G Ruta1014United Kingdom2025-05-27
Nicolas P Marrier1015Canada2025-06-02
Octavia A Bolognia1016Germany2025-05-20
Aika E Briddick1017Germany2025-05-25
Maria O Oldroyd1018Japan2025-06-05
Sinclair T Stenseth1019Brazil2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem O ShinkoAustraliaOnyama Limba QUALIFIED
Mujtaba A VocelkaFranceIoni Bowcher PROPOSAL
Aditya Q GauchoCanadaIvan Magalhaes UNQUALIFIED
Isabel S FerenczRussiaAmy Elsner NEW
Francesco K StensethRussiaAnna Fali RENEWAL
Johnson B MarrierGermanyIoni Bowcher PROPOSAL
Ricardo M PaprockiArgentinaAmy Elsner NEW
Mayumi H FollerArgentinaStephen Shaw RENEWAL
Emily A KolmetzIndiaIoni Bowcher RENEWAL
Octavia N IturbideArgentinaIoni Bowcher PROPOSAL
Ashley C SchemmerRussiaIoni Bowcher UNQUALIFIED
Izzy J FerenczIndiaXuxue Feng QUALIFIED
Mayumi L SlusarskiItalyStephen Shaw UNQUALIFIED
Claire L VenereItalyXuxue Feng UNQUALIFIED
Emily K GlickSpainIvan Magalhaes NEGOTIATION
Tony U KuskoFranceIvan Magalhaes NEW
Ivar K InouyeIndiaAsiya Javayant NEGOTIATION
Murillo T OstroskyUnited KingdomAmy Elsner QUALIFIED
Rodrigues A FigeroaSpainBernardo Dominic QUALIFIED
Mujtaba B MaletCanadaXuxue Feng RENEWAL
Antonio J KuskoItalyOnyama Limba NEW
Leja C WaycottUnited KingdomAmy Elsner NEGOTIATION
Juan K BowleyBrazilXuxue Feng NEGOTIATION
Octavia J KolmetzFranceXuxue Feng RENEWAL
Ivar H TollnerCanadaIvan Magalhaes NEGOTIATION
Wickens X DarakjySpainIvan Magalhaes RENEWAL
Jeanfrancois A GauchoCanadaAmy Elsner RENEWAL
Claire J AmigonCanadaAmy Elsner RENEWAL
Jennifer O TollnerUnited KingdomStephen Shaw NEW
Salvatore K NestleFranceAmy Elsner NEW
Nicolas N GarufiUnited KingdomElwin Sharvill NEGOTIATION
Sinclair G GauchoUnited KingdomAnna Fali NEGOTIATION
Deepesh H ShinkoArgentinaOnyama Limba NEGOTIATION
Kadeem M StensethJapanAsiya Javayant RENEWAL
Sinclair K KuskoRussiaXuxue Feng QUALIFIED
Darci I OstroskySpainElwin Sharvill NEW
Darci W KolmetzArgentinaElwin Sharvill RENEWAL
Jennifer U WieserIndiaAsiya Javayant NEW
Jeanfrancois K AmigonCanadaElwin Sharvill RENEWAL
Johnson B RulapaughUnited KingdomStephen Shaw 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>