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
Salvatore Q OstroskyCanadaStephen Shaw PROPOSAL
Juan V MacleadAustraliaXuxue Feng UNQUALIFIED
Izzy O GillianJapanIvan Magalhaes UNQUALIFIED
Cody S RulapaughCanadaOnyama Limba RENEWAL
Maisha K WaycottArgentinaAmy Elsner QUALIFIED
Emily Y CaudyCanadaBernardo Dominic RENEWAL
Stacey Z SlusarskiItalyElwin Sharvill NEW
Morrow T MaletGermanyAmy Elsner NEGOTIATION
Leon Q BologniaJapanStephen Shaw NEGOTIATION
Misaki B VocelkaCanadaAsiya Javayant NEGOTIATION
Mayumi R WhobreyAustraliaAmy Elsner NEGOTIATION
Aruna F PaprockiJapanStephen Shaw QUALIFIED
Aditya U MaletArgentinaOnyama Limba PROPOSAL
Deepesh F SchemmerJapanElwin Sharvill UNQUALIFIED
Johnson B SchemmerCanadaOnyama Limba PROPOSAL
Tony Q RoysterUnited KingdomElwin Sharvill PROPOSAL
Sinclair Y RoysterAustraliaIoni Bowcher PROPOSAL
Aruna J VenereFranceOnyama Limba RENEWAL
Jeanfrancois Q VenereRussiaElwin Sharvill PROPOSAL
Kaitlin C TollnerItalyXuxue Feng PROPOSAL
Isabel W VenereGermanyIoni Bowcher UNQUALIFIED
Deepesh T KuskoJapanAsiya Javayant PROPOSAL
Johnson I GillianUnited KingdomIvan Magalhaes RENEWAL
Maria H MaletArgentinaIvan Magalhaes RENEWAL
Julie T NestleAustraliaXuxue Feng PROPOSAL
Costa Z DoeIndiaXuxue Feng PROPOSAL
Cody T RoysterFranceIoni Bowcher NEW
Tony H ChuiArgentinaElwin Sharvill NEW
Chavez F InouyeFranceElwin Sharvill NEW
Deepesh O FlosiAustraliaXuxue Feng UNQUALIFIED
Claire Z CaudyRussiaOnyama Limba RENEWAL
Maisha T SergiFranceIvan Magalhaes RENEWAL
Stacey X StockhamRussiaAsiya Javayant UNQUALIFIED
Deepesh D DoeFranceXuxue Feng UNQUALIFIED
Maria K SchemmerGermanyXuxue Feng PROPOSAL
Morrow Y GillianGermanyAsiya Javayant QUALIFIED
Johnson P ShinkoBrazilAnna Fali PROPOSAL
Julie Y WieserIndiaStephen Shaw RENEWAL
Ivar D AlbaresIndiaAsiya Javayant PROPOSAL
Adams O MacleadSpainAmy Elsner QUALIFIED
Sinclair W WhobreyArgentinaBernardo Dominic UNQUALIFIED
Leon S DoeJapanOnyama Limba NEGOTIATION
Ashley Z MaletIndiaAsiya Javayant NEW
Octavia C DilliardRussiaAsiya Javayant UNQUALIFIED
Sinclair H WaycottJapanXuxue Feng PROPOSAL
Juan O KolmetzRussiaIoni Bowcher RENEWAL
Leon C ChuiIndiaIoni Bowcher NEW
Octavia L OldroydGermanyOnyama Limba PROPOSAL
Rodrigues F GillianUnited KingdomXuxue Feng PROPOSAL
Ricardo C CampainIndiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues S FerenczJapanElwin Sharvill PROPOSAL
Maria G ShinkoAustraliaStephen Shaw RENEWAL
James H CaldareraUnited KingdomOnyama Limba RENEWAL
David H TollnerSpainAmy Elsner PROPOSAL
Silvio V RutaAustraliaOnyama Limba NEW
Aika H PerinRussiaElwin Sharvill QUALIFIED
Maisha H IturbideGermanyBernardo Dominic NEW
Aditya I ChuiRussiaIvan Magalhaes PROPOSAL
Greenwood U CaudyJapanIoni Bowcher QUALIFIED
Jeanfrancois L OldroydJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith M IturbideRussia2026-07-17Chanay, Jeffrey A Esq PROPOSAL48Amy Elsner
1001Jones V MaletCanada2026-07-12Rangoni Of Florence NEW40Amy Elsner
1002Leja W PaprockiGermany2026-07-22Truhlar And Truhlar Attys QUALIFIED23Asiya Javayant
1003Jennifer U WaycottSpain2026-07-28Feltz Printing Service NEW95Onyama Limba
1004David W StockhamIndia2026-07-29Commercial Press UNQUALIFIED25Ioni Bowcher
1005Maria S SaylorsIndia2026-07-20Truhlar And Truhlar Attys QUALIFIED40Onyama Limba
1006Stacey C MacleadBrazil2026-07-26Commercial Press PROPOSAL66Anna Fali
1007Ashley W GlickItaly2026-07-21Truhlar And Truhlar Attys NEW66Ivan Magalhaes
1008Kaitlin K SchemmerAustralia2026-07-28Chanay, Jeffrey A Esq NEW18Elwin Sharvill
1009Jefferson L AlbaresItaly2026-07-25Chemel, James L Cpa PROPOSAL75Ivan Magalhaes
1010Jefferson R ButtFrance2026-07-22Printing Dimensions QUALIFIED99Ioni Bowcher
1011Maisha O VocelkaAustralia2026-08-02Rousseaux, Michael Esq NEW5Bernardo Dominic
1012Kadeem N BologniaAustralia2026-07-24Truhlar And Truhlar Attys QUALIFIED49Elwin Sharvill
1013Adams Z DilliardSpain2026-07-30Truhlar And Truhlar Attys UNQUALIFIED31Amy Elsner
1014Isabel C IturbideIndia2026-07-26Printing Dimensions NEW86Bernardo Dominic
1015Murillo E AlbaresSpain2026-07-16King, Christopher A Esq QUALIFIED45Stephen Shaw
1016Jennifer R MorascaIndia2026-08-06King, Christopher A Esq NEW30Stephen Shaw
1017Tony C DarakjyBrazil2026-07-16Feiner Bros UNQUALIFIED53Xuxue Feng
1018Francesco T GlickRussia2026-07-28King, Christopher A Esq UNQUALIFIED47Anna Fali
1019David L RoysterBrazil2026-07-21Rangoni Of Florence PROPOSAL45Anna Fali
1020Octavia O RimItaly2026-07-27Feltz Printing Service RENEWAL41Onyama Limba
1021Silvio V MacleadArgentina2026-08-01Morlong Associates NEGOTIATION59Amy Elsner
1022Costa C VenereJapan2026-07-14Dorl, James J Esq NEGOTIATION55Asiya Javayant
1023Aditya U MarrierItaly2026-08-06Chapman, Ross E Esq PROPOSAL18Xuxue Feng
1024Tony N RulapaughCanada2026-07-12King, Christopher A Esq UNQUALIFIED61Elwin Sharvill
1025Wickens B FlosiJapan2026-08-02Truhlar And Truhlar Attys QUALIFIED11Onyama Limba
1026Octavia H WhobreyRussia2026-07-12Printing Dimensions RENEWAL83Anna Fali
1027Sinclair P SlusarskiRussia2026-07-26Rousseaux, Michael Esq QUALIFIED39Onyama Limba
1028Stacey T BowleyFrance2026-07-26Benton, John B Jr UNQUALIFIED68Onyama Limba
1029Isabel K PerinJapan2026-07-18Truhlar And Truhlar Attys UNQUALIFIED18Anna Fali
1030Octavia E RutaIndia2026-07-31Chapman, Ross E Esq PROPOSAL2Bernardo Dominic
1031Alejandro J KuskoAustralia2026-07-14King, Christopher A Esq NEGOTIATION78Elwin Sharvill
1032Sinclair P VocelkaFrance2026-07-30Rousseaux, Michael Esq PROPOSAL45Amy Elsner
1033Costa G ButtBrazil2026-07-27Dorl, James J Esq QUALIFIED77Bernardo Dominic
1034Arvin X WieserAustralia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION30Elwin Sharvill
1035Aditya U PoquetteJapan2026-07-12Morlong Associates RENEWAL89Elwin Sharvill
1036Mujtaba W IturbideSpain2026-07-19Dorl, James J Esq NEW33Amy Elsner
1037David A RulapaughArgentina2026-07-18Commercial Press NEW0Stephen Shaw
1038Juan Z AlbaresRussia2026-07-13Chapman, Ross E Esq UNQUALIFIED33Xuxue Feng
1039Salvatore D MacleadIndia2026-07-11Feiner Bros PROPOSAL35Anna Fali
1040Rodrigues T ChuiUnited Kingdom2026-07-22Chanay, Jeffrey A Esq NEGOTIATION78Anna Fali
1041Munro V IturbideAustralia2026-07-09Chemel, James L Cpa PROPOSAL16Asiya Javayant
1042James T FollerBrazil2026-07-10Chemel, James L Cpa RENEWAL94Ivan Magalhaes
1043Isabel M PaprockiIndia2026-07-20Morlong Associates RENEWAL69Ioni Bowcher
1044Maisha X DarakjyFrance2026-07-24Chanay, Jeffrey A Esq RENEWAL54Anna Fali
1045Sinclair J CaldareraBrazil2026-08-02Printing Dimensions NEGOTIATION48Stephen Shaw
1046Salvatore L AmigonArgentina2026-07-15Dorl, James J Esq RENEWAL25Onyama Limba
1047Jeanfrancois T TollnerCanada2026-08-03Rangoni Of Florence QUALIFIED25Ioni Bowcher
1048Jones N MaletUnited Kingdom2026-07-29Chapman, Ross E Esq NEGOTIATION99Onyama Limba
1049David O PoquetteJapan2026-07-16Rangoni Of Florence QUALIFIED7Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues I ChuiBrazilIvan Magalhaes NEGOTIATION
Isabel W MaletGermanyStephen Shaw QUALIFIED
Claire A PoquetteAustraliaXuxue Feng NEW
Rodrigues R SlusarskiCanadaAmy Elsner UNQUALIFIED
Misaki K BriddickArgentinaXuxue Feng PROPOSAL
Murillo P OstroskyRussiaOnyama Limba RENEWAL
Julie F MaletItalyIoni Bowcher QUALIFIED
Leja M SlusarskiSpainAmy Elsner NEW
Cody F SergiGermanyStephen Shaw PROPOSAL
Jones K NestleFranceIvan Magalhaes PROPOSAL
Ashley P BowleyUnited KingdomXuxue Feng UNQUALIFIED
Izzy B DarakjyJapanOnyama Limba QUALIFIED
Mayumi Q RoysterCanadaIoni Bowcher NEGOTIATION
Wickens D InouyeBrazilBernardo Dominic UNQUALIFIED
Maria P CaudyUnited KingdomAnna Fali NEW
Wickens K GlickItalyAnna Fali QUALIFIED
Alejandro W OstroskyItalyIoni Bowcher PROPOSAL
Kadeem D FlosiItalyStephen Shaw RENEWAL
Isabel C PaprockiCanadaOnyama Limba QUALIFIED
Tony N StensethAustraliaBernardo Dominic UNQUALIFIED
Jennifer O WieserUnited KingdomElwin Sharvill QUALIFIED
Julie X ButtCanadaIvan Magalhaes NEGOTIATION
Chavez I MaletItalyBernardo Dominic NEW
Mayumi Y FigeroaArgentinaElwin Sharvill NEW
Tony K IturbideCanadaIvan Magalhaes RENEWAL
Octavia F TollnerSpainIvan Magalhaes PROPOSAL
Greenwood F RutaUnited KingdomAnna Fali PROPOSAL
James T DarakjyAustraliaXuxue Feng NEGOTIATION
Wickens N RutaIndiaBernardo Dominic PROPOSAL
Chavez K InouyeItalyAnna Fali QUALIFIED
Antonio A RutaSpainAsiya Javayant RENEWAL
Maria T GillianFranceStephen Shaw QUALIFIED
Rodrigues U MarrierRussiaIoni Bowcher NEGOTIATION
Murillo H RulapaughBrazilIoni Bowcher RENEWAL
Adams B AlbaresGermanyIvan Magalhaes NEW
Juan D ChuiAustraliaIvan Magalhaes QUALIFIED
Antonio L SaylorsFranceElwin Sharvill UNQUALIFIED
Francesco B AmigonJapanStephen Shaw PROPOSAL
Juan D KolmetzCanadaAmy Elsner PROPOSAL
Emily R NickaGermanyElwin Sharvill NEGOTIATION
Julie X MacleadItalyIoni Bowcher UNQUALIFIED
Jones F BowleyJapanStephen Shaw NEW
Maria T OldroydCanadaIvan Magalhaes NEGOTIATION
Mayumi R VocelkaUnited KingdomAnna Fali UNQUALIFIED
Stacey V RulapaughSpainIvan Magalhaes NEW
Ashley O SchemmerRussiaAnna Fali QUALIFIED
Salvatore W SlusarskiSpainAmy Elsner NEGOTIATION
Maria F SlusarskiUnited KingdomXuxue Feng QUALIFIED
Clifford V KuskoBrazilAnna Fali PROPOSAL
Stacey S WaycottIndiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Kadeem T Bolognia
Antonio M Stockham
Maisha L Malet
Silvio M Figeroa
Kadeem H Garufi
Ivar Y Rulapaugh
Salvatore O Foller
Johnson X Malet
Deepesh A Marrier
Izzy H Nicka
Claire I Rulapaugh
Morrow O Gillian
Jennifer A Tollner
Sinclair S Stenseth
Leja U Wieser
Kaitlin U Stenseth
Cody G Rim
Adams M Wieser
Mujtaba O Bolognia
Ivar L Gillian
Julie R Iturbide
Octavia R Gillian
Misaki M Marrier
Francesco S Saylors
Mayumi T Briddick
Jefferson G Caudy
Costa F Rim
Salvatore G Iturbide
Wickens Y Iturbide
Smith B Nestle
David Q Venere
Aditya T Rulapaugh
Kadeem A Briddick
Stacey Z Inouye
Chavez F Royster
Julie Z Amigon
Jeanfrancois K Venere
Alejandro A Perin
Tony T Waycott
Alejandro O Nestle
Ashley X Marrier
Leja J Kolmetz
James Z Darakjy
Leja K Marrier
Darci C Campain
Costa K Morasca
Leja V Rim
Nicolas F Tollner
Sinclair D Doe
David Z Butt
IdCountryDate
1000Italy2026-07-10
1001India2026-07-24
1002United Kingdom2026-07-12
1003Brazil2026-07-14
1004Japan2026-07-29
1005France2026-07-18
1006Spain2026-07-24
1007Germany2026-07-26
1008Russia2026-07-20
1009Spain2026-07-19
1010India2026-08-07
1011India2026-07-15
1012Spain2026-08-03
1013Germany2026-07-21
1014Russia2026-07-11
1015France2026-07-11
1016India2026-08-05
1017Japan2026-07-12
1018Australia2026-07-23
1019India2026-07-31
1020Italy2026-07-11
1021Argentina2026-07-16
1022Italy2026-07-20
1023India2026-07-13
1024Argentina2026-07-11
1025United Kingdom2026-08-02
1026Italy2026-08-04
1027United Kingdom2026-08-02
1028Italy2026-07-15
1029Argentina2026-07-26
1030Canada2026-08-05
1031Japan2026-07-13
1032United Kingdom2026-07-20
1033Canada2026-07-23
1034Brazil2026-07-11
1035France2026-07-26
1036Canada2026-07-24
1037Japan2026-07-21
1038Australia2026-07-12
1039Argentina2026-08-07
1040Japan2026-07-29
1041France2026-07-21
1042United Kingdom2026-08-01
1043Germany2026-07-23
1044Japan2026-08-05
1045Japan2026-08-07
1046Spain2026-07-21
1047Brazil2026-07-13
1048Russia2026-07-24
1049Brazil2026-08-06

On-Demand Data

NameIdCountryDate
Jeanfrancois C Saylors1000Spain2026-07-13
Darci K Morasca1001France2026-07-11
Ivar W Rim1002Brazil2026-07-10
Faith P Wieser1003Russia2026-07-26
Costa C Waycott1004Australia2026-07-11
Mujtaba Z Malet1005Japan2026-07-18
Francesco A Kolmetz1006Germany2026-07-09
Octavia G Kolmetz1007Argentina2026-07-31
Ricardo H Briddick1008Japan2026-07-13
Jennifer R Paprocki1009Argentina2026-07-31
Ivar E Briddick1010Australia2026-07-12
Alejandro O Wieser1011Canada2026-07-09
David G Bowley1012Japan2026-07-31
Adams V Chui1013Australia2026-07-24
Faith P Briddick1014Australia2026-08-04
Darci J Tollner1015Argentina2026-07-10
Ivar R Perin1016United Kingdom2026-07-10
David Z Rim1017Argentina2026-07-30
Julie Z Shinko1018Argentina2026-08-01
Antonio J Caldarera1019Germany2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar U AlbaresSpainAsiya Javayant RENEWAL
James K DilliardSpainXuxue Feng RENEWAL
Faith G OstroskyAustraliaElwin Sharvill PROPOSAL
Mayumi G RimUnited KingdomBernardo Dominic QUALIFIED
Claire L FollerSpainAnna Fali RENEWAL
Silvio Z RulapaughCanadaStephen Shaw NEW
Rodrigues B OstroskyItalyElwin Sharvill RENEWAL
Izzy N NickaJapanOnyama Limba RENEWAL
Isabel X MorascaUnited KingdomOnyama Limba QUALIFIED
Tony G ShinkoGermanyIoni Bowcher RENEWAL
Arvin K BowleyUnited KingdomAmy Elsner NEW
Johnson M GauchoGermanyAmy Elsner NEGOTIATION
Wickens P DarakjyRussiaElwin Sharvill QUALIFIED
Aruna P MorascaBrazilXuxue Feng RENEWAL
Mayumi W DilliardUnited KingdomAsiya Javayant NEGOTIATION
Nicolas F NestleIndiaAsiya Javayant RENEWAL
Tony I PerinFranceIvan Magalhaes NEGOTIATION
Julie T MacleadArgentinaXuxue Feng QUALIFIED
Smith Z RutaCanadaElwin Sharvill NEGOTIATION
Costa H DilliardRussiaBernardo Dominic NEW
Adams A NickaArgentinaElwin Sharvill UNQUALIFIED
Darci Q MacleadFranceIvan Magalhaes UNQUALIFIED
Greenwood B RutaRussiaAmy Elsner NEW
Claire A KolmetzFranceAnna Fali RENEWAL
Chavez Q SchemmerIndiaStephen Shaw UNQUALIFIED
Leja F MarrierJapanStephen Shaw NEGOTIATION
Chavez Q AlbaresItalyAmy Elsner QUALIFIED
Francesco U SaylorsAustraliaXuxue Feng RENEWAL
Claire R SaylorsAustraliaAmy Elsner NEGOTIATION
Cody K GlickArgentinaIoni Bowcher NEW
Jefferson K VenereUnited KingdomAsiya Javayant NEW
Maria R FerenczFranceOnyama Limba QUALIFIED
Murillo I CaudySpainOnyama Limba PROPOSAL
Kadeem N FigeroaUnited KingdomStephen Shaw RENEWAL
Darci E RimCanadaStephen Shaw QUALIFIED
Cody Y DilliardCanadaXuxue Feng UNQUALIFIED
Silvio W VocelkaFranceAsiya Javayant QUALIFIED
Ricardo G OstroskyJapanElwin Sharvill UNQUALIFIED
James S PoquetteCanadaXuxue Feng NEGOTIATION
Johnson K PaprockiGermanyElwin Sharvill 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>