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
David T MaletBrazilBernardo Dominic NEW
Costa Z DarakjyGermanyStephen Shaw PROPOSAL
Maria F FigeroaCanadaStephen Shaw NEGOTIATION
Antonio R PaprockiJapanOnyama Limba PROPOSAL
Antonio T InouyeRussiaXuxue Feng NEW
Rodrigues S SlusarskiUnited KingdomOnyama Limba RENEWAL
Kadeem Z AlbaresAustraliaAsiya Javayant NEGOTIATION
Francesco T BriddickJapanAsiya Javayant PROPOSAL
Jeanfrancois A BowleyUnited KingdomBernardo Dominic NEGOTIATION
Juan N MarrierSpainIoni Bowcher RENEWAL
Julie U RutaSpainXuxue Feng RENEWAL
Emily A GarufiBrazilAsiya Javayant QUALIFIED
Jeanfrancois W IturbideBrazilXuxue Feng NEGOTIATION
Smith P DoeAustraliaBernardo Dominic NEGOTIATION
Deepesh I RutaCanadaIoni Bowcher NEGOTIATION
Jeanfrancois L AlbaresIndiaAnna Fali QUALIFIED
Aruna G WieserItalyAmy Elsner UNQUALIFIED
Aditya I AlbaresSpainAmy Elsner UNQUALIFIED
Julie K ChuiSpainAnna Fali RENEWAL
Silvio U CampainCanadaAmy Elsner NEW
Nicolas A AmigonJapanIoni Bowcher NEGOTIATION
Johnson A KuskoUnited KingdomElwin Sharvill NEGOTIATION
Clifford N StockhamBrazilIvan Magalhaes PROPOSAL
Leja B FollerCanadaAsiya Javayant PROPOSAL
Ivar K PoquetteAustraliaIvan Magalhaes PROPOSAL
Rodrigues F GarufiFranceIvan Magalhaes UNQUALIFIED
Ashley H FigeroaSpainIvan Magalhaes UNQUALIFIED
Alejandro E DarakjyCanadaOnyama Limba NEGOTIATION
Leja K WieserRussiaXuxue Feng PROPOSAL
Claire R ChuiFranceStephen Shaw NEW
Leon E BriddickItalyIoni Bowcher NEW
Isabel H StockhamRussiaStephen Shaw QUALIFIED
Jeanfrancois I PaprockiGermanyStephen Shaw QUALIFIED
Kaitlin L VenereUnited KingdomIoni Bowcher RENEWAL
Kaitlin Z BologniaRussiaIvan Magalhaes NEW
Jennifer W OldroydIndiaAsiya Javayant NEGOTIATION
Costa V PaprockiSpainXuxue Feng RENEWAL
Leja G DoeGermanyElwin Sharvill RENEWAL
Aditya C VocelkaRussiaOnyama Limba RENEWAL
Leja S GarufiAustraliaStephen Shaw NEW
Aika B GauchoCanadaAnna Fali UNQUALIFIED
Adams Y FlosiRussiaIvan Magalhaes PROPOSAL
Clifford T PoquetteAustraliaIvan Magalhaes RENEWAL
Jones Y InouyeFranceAsiya Javayant NEGOTIATION
Costa P KolmetzSpainAsiya Javayant UNQUALIFIED
Tony U KolmetzItalyAnna Fali NEW
Aika J MacleadJapanAnna Fali RENEWAL
Mayumi C RulapaughItalyIoni Bowcher UNQUALIFIED
Silvio I ShinkoFranceAsiya Javayant NEW
Maria J ButtIndiaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues B MacleadRussiaBernardo Dominic NEGOTIATION
Chavez I VenereGermanyAsiya Javayant NEGOTIATION
Clifford Q GlickIndiaXuxue Feng QUALIFIED
Adams N VenereAustraliaXuxue Feng QUALIFIED
Izzy K ShinkoIndiaStephen Shaw NEGOTIATION
James K GlickCanadaBernardo Dominic RENEWAL
Ricardo U FollerItalyAnna Fali PROPOSAL
James R ButtIndiaElwin Sharvill QUALIFIED
Izzy A DoeArgentinaAmy Elsner NEGOTIATION
Ivar V RulapaughBrazilXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James Q GarufiBrazil2026-08-03Chapman, Ross E Esq PROPOSAL28Elwin Sharvill
1001Johnson P DoeCanada2026-07-22Rousseaux, Michael Esq NEGOTIATION82Amy Elsner
1002Faith T MacleadGermany2026-08-03Morlong Associates PROPOSAL43Amy Elsner
1003Nicolas I WaycottAustralia2026-08-10Morlong Associates NEGOTIATION72Asiya Javayant
1004Leon L GarufiGermany2026-07-28Rangoni Of Florence UNQUALIFIED7Anna Fali
1005Antonio G InouyeRussia2026-08-02Benton, John B Jr RENEWAL53Onyama Limba
1006Ricardo B GauchoIndia2026-07-24Dorl, James J Esq RENEWAL88Stephen Shaw
1007Kadeem P DoeRussia2026-07-20Morlong Associates NEW38Asiya Javayant
1008Aditya D RimIndia2026-07-30Buckley Miller Wright NEGOTIATION30Bernardo Dominic
1009Ivar Y FerenczSpain2026-07-22Chapman, Ross E Esq NEW14Anna Fali
1010Jefferson Q BriddickJapan2026-07-17Dorl, James J Esq UNQUALIFIED86Xuxue Feng
1011Mujtaba J TollnerSpain2026-07-24Feltz Printing Service NEW53Ioni Bowcher
1012Ashley B WaycottUnited Kingdom2026-07-29King, Christopher A Esq NEW16Amy Elsner
1013David X CampainJapan2026-08-04Feltz Printing Service NEGOTIATION34Onyama Limba
1014Misaki B RimFrance2026-07-27Truhlar And Truhlar Attys QUALIFIED54Amy Elsner
1015Maria V IturbideSpain2026-07-18Feltz Printing Service NEW68Xuxue Feng
1016James H NestleCanada2026-07-13Chanay, Jeffrey A Esq NEGOTIATION20Bernardo Dominic
1017Aika V ShinkoFrance2026-07-19Commercial Press QUALIFIED4Ioni Bowcher
1018Kadeem L FerenczGermany2026-08-06Feiner Bros NEW67Ioni Bowcher
1019David V VenereRussia2026-07-23Commercial Press RENEWAL51Amy Elsner
1020Leja F SaylorsAustralia2026-08-06Printing Dimensions RENEWAL36Bernardo Dominic
1021Morrow L RimRussia2026-07-15Commercial Press NEW86Asiya Javayant
1022Leon W SergiBrazil2026-07-28Feiner Bros QUALIFIED71Xuxue Feng
1023Faith U CaudySpain2026-08-07Truhlar And Truhlar Attys RENEWAL60Amy Elsner
1024Leon T DilliardJapan2026-07-21Dorl, James J Esq NEW7Amy Elsner
1025Deepesh M BologniaItaly2026-07-21Buckley Miller Wright UNQUALIFIED11Ioni Bowcher
1026Salvatore C FerenczGermany2026-08-06Feltz Printing Service NEGOTIATION98Asiya Javayant
1027Kadeem Z FigeroaIndia2026-07-17Dorl, James J Esq NEGOTIATION49Amy Elsner
1028Aruna E MarrierItaly2026-07-31Morlong Associates UNQUALIFIED1Xuxue Feng
1029Salvatore A WieserUnited Kingdom2026-07-24Morlong Associates PROPOSAL76Xuxue Feng
1030Deepesh R SergiBrazil2026-08-08Dorl, James J Esq UNQUALIFIED52Onyama Limba
1031Aika R KolmetzCanada2026-07-18Truhlar And Truhlar Attys NEW25Stephen Shaw
1032Aika K BologniaFrance2026-07-26Buckley Miller Wright QUALIFIED33Anna Fali
1033Alejandro D PaprockiRussia2026-07-31Chapman, Ross E Esq PROPOSAL74Xuxue Feng
1034Maisha W BriddickGermany2026-07-18King, Christopher A Esq NEGOTIATION68Ioni Bowcher
1035Salvatore U OldroydAustralia2026-07-24Benton, John B Jr NEW5Onyama Limba
1036Antonio X WieserJapan2026-07-17Benton, John B Jr UNQUALIFIED51Ioni Bowcher
1037Octavia W KuskoArgentina2026-07-17Rousseaux, Michael Esq PROPOSAL84Anna Fali
1038Alejandro X SergiBrazil2026-07-12Morlong Associates NEW78Onyama Limba
1039Stacey Y GarufiFrance2026-07-14Dorl, James J Esq RENEWAL20Onyama Limba
1040Leon D KolmetzFrance2026-07-27Feiner Bros RENEWAL55Anna Fali
1041Costa O StockhamRussia2026-08-08Chemel, James L Cpa PROPOSAL96Xuxue Feng
1042Jeanfrancois C DarakjyJapan2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED66Amy Elsner
1043Antonio G RutaGermany2026-08-09Rangoni Of Florence UNQUALIFIED95Xuxue Feng
1044Smith F RutaItaly2026-07-15Dorl, James J Esq NEW43Ioni Bowcher
1045Stacey D CaldareraGermany2026-07-23Chemel, James L Cpa PROPOSAL18Xuxue Feng
1046Claire L CampainItaly2026-08-08Rousseaux, Michael Esq UNQUALIFIED43Stephen Shaw
1047Faith F SlusarskiFrance2026-07-31Rousseaux, Michael Esq NEGOTIATION97Asiya Javayant
1048Jennifer Q MaletFrance2026-08-04Rousseaux, Michael Esq PROPOSAL20Amy Elsner
1049Kaitlin K PaprockiFrance2026-07-24Commercial Press NEGOTIATION11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin F TollnerJapanIoni Bowcher PROPOSAL
Murillo A PaprockiArgentinaXuxue Feng RENEWAL
Kaitlin Z MaletAustraliaElwin Sharvill UNQUALIFIED
Jennifer Q DarakjyItalyStephen Shaw NEW
Izzy N SchemmerAustraliaStephen Shaw RENEWAL
Smith Z CampainArgentinaIoni Bowcher UNQUALIFIED
Isabel W PerinRussiaAnna Fali NEGOTIATION
Munro X FerenczArgentinaAnna Fali NEGOTIATION
Izzy F KuskoBrazilStephen Shaw QUALIFIED
Mayumi D DarakjyFranceStephen Shaw PROPOSAL
Kadeem G AlbaresItalyAsiya Javayant RENEWAL
Claire K OstroskyUnited KingdomOnyama Limba RENEWAL
Claire R KolmetzIndiaXuxue Feng UNQUALIFIED
Leja L DarakjyIndiaAmy Elsner PROPOSAL
Darci F AlbaresBrazilAsiya Javayant UNQUALIFIED
Chavez R SaylorsJapanAsiya Javayant QUALIFIED
Ricardo C RutaFranceOnyama Limba NEW
Jeanfrancois K PaprockiIndiaBernardo Dominic UNQUALIFIED
Emily P GarufiJapanAnna Fali NEW
Clifford N MaletCanadaIvan Magalhaes NEW
Maisha R WieserRussiaIvan Magalhaes QUALIFIED
Stacey H RoysterItalyAmy Elsner RENEWAL
Cody Y RulapaughBrazilBernardo Dominic UNQUALIFIED
Arvin O SaylorsGermanyElwin Sharvill PROPOSAL
Isabel N StockhamFranceElwin Sharvill NEW
Deepesh C PerinArgentinaIvan Magalhaes RENEWAL
Ashley M SchemmerGermanyBernardo Dominic PROPOSAL
Aika G KuskoCanadaIvan Magalhaes UNQUALIFIED
Faith L SaylorsFranceStephen Shaw NEGOTIATION
Ashley Z DarakjyBrazilElwin Sharvill QUALIFIED
Jennifer T WieserArgentinaElwin Sharvill NEW
Aditya L ChuiJapanAsiya Javayant RENEWAL
Francesco U MarrierJapanOnyama Limba NEW
Jones E OldroydJapanAnna Fali NEGOTIATION
Salvatore U ButtBrazilStephen Shaw NEW
Antonio V FigeroaItalyIoni Bowcher QUALIFIED
Juan A OstroskyCanadaStephen Shaw NEGOTIATION
Octavia B WieserRussiaElwin Sharvill NEW
Jennifer Q AmigonItalyBernardo Dominic PROPOSAL
Johnson Y KuskoBrazilBernardo Dominic UNQUALIFIED
Octavia B BowleyJapanIoni Bowcher QUALIFIED
Costa R ShinkoUnited KingdomAmy Elsner NEW
Maria R BriddickBrazilIvan Magalhaes PROPOSAL
Costa T FollerGermanyOnyama Limba UNQUALIFIED
Cody F GillianRussiaBernardo Dominic PROPOSAL
Mayumi B GauchoArgentinaAnna Fali RENEWAL
Faith A FerenczBrazilAmy Elsner QUALIFIED
James H WhobreyUnited KingdomIoni Bowcher NEW
Johnson Y ButtBrazilOnyama Limba NEGOTIATION
Adams R NestleUnited KingdomIvan Magalhaes NEW
Frozen Columns
Name
Stacey U Gaucho
Julie I Maclead
Misaki H Whobrey
Juan Y Amigon
Stacey K Inouye
Deepesh Z Nestle
Aditya T Schemmer
Jefferson I Sergi
Jeanfrancois H Iturbide
Leon W Dilliard
Cody W Ruta
Leon M Schemmer
Octavia I Nestle
David U Rulapaugh
Silvio A Waycott
Jones V Shinko
Ricardo Y Ostrosky
Cody M Doe
Ashley A Butt
Darci N Poquette
Tony I Rim
Costa U Malet
Kadeem I Darakjy
Johnson T Perin
Faith U Amigon
Leon W Darakjy
Johnson L Nestle
Adams V Butt
Izzy M Garufi
Clifford G Garufi
Ashley C Vocelka
Julie C Kusko
Jefferson E Marrier
Darci Q Schemmer
Deepesh Z Doe
Rodrigues I Foller
Aika G Caldarera
Adams I Marrier
Claire P Morasca
Clifford F Morasca
Jennifer S Waycott
Aditya T Rim
Deepesh G Nestle
Octavia G Shinko
Deepesh Q Royster
Ashley I Ferencz
Misaki T Bowley
Ricardo P Dilliard
Leon T Gillian
Emily D Inouye
IdCountryDate
1000France2026-07-29
1001Argentina2026-07-31
1002Japan2026-07-12
1003Canada2026-07-12
1004Brazil2026-08-10
1005Brazil2026-08-09
1006France2026-07-15
1007Australia2026-07-15
1008Spain2026-07-18
1009India2026-07-13
1010United Kingdom2026-07-23
1011Italy2026-07-20
1012Japan2026-07-29
1013France2026-07-18
1014Australia2026-07-13
1015Spain2026-07-18
1016India2026-07-25
1017United Kingdom2026-07-30
1018Germany2026-07-21
1019India2026-08-01
1020India2026-07-31
1021Brazil2026-07-12
1022United Kingdom2026-07-15
1023Argentina2026-07-21
1024United Kingdom2026-08-09
1025Germany2026-07-13
1026Italy2026-07-29
1027India2026-07-13
1028United Kingdom2026-08-05
1029Japan2026-07-31
1030Italy2026-07-14
1031Japan2026-07-22
1032United Kingdom2026-07-16
1033United Kingdom2026-07-12
1034Canada2026-08-02
1035France2026-07-20
1036France2026-07-15
1037United Kingdom2026-08-10
1038Argentina2026-08-04
1039India2026-07-23
1040United Kingdom2026-07-30
1041Australia2026-07-15
1042Germany2026-08-10
1043France2026-07-29
1044Argentina2026-08-03
1045Argentina2026-07-13
1046Italy2026-08-04
1047Japan2026-08-06
1048United Kingdom2026-07-28
1049Spain2026-07-14

On-Demand Data

NameIdCountryDate
David P Nestle1000Spain2026-07-14
Arvin P Tollner1001Germany2026-07-19
Octavia H Waycott1002Brazil2026-08-01
Claire P Bolognia1003France2026-08-10
Leon I Darakjy1004Italy2026-07-14
David F Stenseth1005Spain2026-07-28
Misaki N Bolognia1006United Kingdom2026-08-04
Francesco J Caudy1007Russia2026-07-28
Rodrigues J Perin1008Spain2026-07-19
Francesco J Venere1009Russia2026-07-23
Claire X Iturbide1010Argentina2026-07-22
Octavia L Bolognia1011Japan2026-08-02
Murillo L Schemmer1012United Kingdom2026-07-24
Cody Q Vocelka1013Russia2026-08-02
James M Amigon1014Russia2026-07-23
Darci H Albares1015Brazil2026-07-24
Mujtaba Q Marrier1016Russia2026-08-04
Jeanfrancois P Oldroyd1017Italy2026-07-22
Adams V Glick1018Canada2026-07-15
Leon Z Malet1019Argentina2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore Y WaycottAustraliaStephen Shaw PROPOSAL
Tony A StensethRussiaStephen Shaw QUALIFIED
Ivar F FollerSpainXuxue Feng UNQUALIFIED
Julie Y FollerRussiaXuxue Feng UNQUALIFIED
Costa U PaprockiRussiaElwin Sharvill NEGOTIATION
Faith S GarufiUnited KingdomStephen Shaw PROPOSAL
Misaki D InouyeSpainOnyama Limba RENEWAL
James A NestleUnited KingdomBernardo Dominic RENEWAL
Ricardo B RimBrazilAmy Elsner UNQUALIFIED
Kaitlin M GarufiArgentinaAsiya Javayant UNQUALIFIED
Munro C RutaCanadaStephen Shaw UNQUALIFIED
Arvin M StockhamRussiaAsiya Javayant RENEWAL
Sinclair K InouyeBrazilStephen Shaw QUALIFIED
Leja E PoquetteItalyXuxue Feng RENEWAL
Wickens O SergiArgentinaXuxue Feng NEW
Morrow G NickaIndiaAsiya Javayant PROPOSAL
Izzy G ButtItalyStephen Shaw PROPOSAL
Wickens Y RimGermanyIvan Magalhaes NEW
Costa D BologniaCanadaXuxue Feng PROPOSAL
David K FollerCanadaElwin Sharvill NEW
Maisha I MacleadJapanAmy Elsner NEW
Sinclair V OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Mayumi P CaudyItalyOnyama Limba NEGOTIATION
Greenwood G FollerItalyIvan Magalhaes NEW
Claire E FollerIndiaBernardo Dominic PROPOSAL
Jones Q SaylorsRussiaElwin Sharvill RENEWAL
Sinclair A GillianItalyAnna Fali NEW
Mujtaba X MaletCanadaIvan Magalhaes RENEWAL
Munro L VenereCanadaAsiya Javayant QUALIFIED
Izzy G FigeroaJapanXuxue Feng QUALIFIED
Nicolas W NestleRussiaOnyama Limba UNQUALIFIED
Misaki K WieserUnited KingdomXuxue Feng RENEWAL
Murillo C DarakjyRussiaBernardo Dominic NEGOTIATION
Adams M InouyeCanadaIoni Bowcher NEGOTIATION
Cody W PerinJapanXuxue Feng NEGOTIATION
Aruna G TollnerAustraliaIvan Magalhaes NEW
Morrow C RutaIndiaOnyama Limba NEGOTIATION
Munro X FollerIndiaAmy Elsner UNQUALIFIED
Mujtaba E PoquetteAustraliaXuxue Feng NEGOTIATION
Faith C MarrierSpainBernardo Dominic RENEWAL

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