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
Leja X KuskoAustraliaStephen Shaw NEGOTIATION
Sinclair V BriddickBrazilElwin Sharvill NEW
David Q DarakjyJapanIoni Bowcher NEGOTIATION
Maisha J VocelkaFranceXuxue Feng NEGOTIATION
Chavez D RoysterCanadaAnna Fali QUALIFIED
Cody B RulapaughRussiaIvan Magalhaes QUALIFIED
Aruna K PaprockiRussiaAsiya Javayant RENEWAL
Misaki M WhobreyFranceAnna Fali NEGOTIATION
Costa K SergiGermanyAmy Elsner RENEWAL
Jefferson P NickaBrazilBernardo Dominic NEGOTIATION
Jeanfrancois V StensethAustraliaElwin Sharvill RENEWAL
Faith P RutaArgentinaIoni Bowcher UNQUALIFIED
Jefferson R WhobreyCanadaStephen Shaw NEGOTIATION
Clifford R RulapaughSpainXuxue Feng UNQUALIFIED
David P SergiRussiaAnna Fali UNQUALIFIED
Misaki Z VocelkaCanadaAmy Elsner QUALIFIED
Julie O PaprockiItalyElwin Sharvill NEGOTIATION
Rodrigues T ChuiAustraliaOnyama Limba QUALIFIED
Adams P NestleCanadaAnna Fali UNQUALIFIED
Stacey V DilliardUnited KingdomBernardo Dominic NEW
Adams D GarufiFranceIoni Bowcher QUALIFIED
Francesco D VenereCanadaAmy Elsner RENEWAL
Jeanfrancois P InouyeBrazilStephen Shaw NEW
Tony Y OldroydBrazilBernardo Dominic PROPOSAL
Faith M BologniaBrazilAmy Elsner NEGOTIATION
Costa S StensethGermanyStephen Shaw QUALIFIED
Johnson X BologniaUnited KingdomElwin Sharvill QUALIFIED
Arvin X KuskoGermanyStephen Shaw UNQUALIFIED
Morrow H AlbaresJapanStephen Shaw NEGOTIATION
Smith Y KolmetzItalyAmy Elsner PROPOSAL
Aditya M CaldareraAustraliaIoni Bowcher RENEWAL
Adams Q SlusarskiGermanyIvan Magalhaes NEW
Salvatore D VenereFranceBernardo Dominic QUALIFIED
Faith F FerenczSpainAmy Elsner RENEWAL
Adams R VocelkaRussiaIvan Magalhaes QUALIFIED
Emily X RimCanadaXuxue Feng UNQUALIFIED
Izzy P RutaCanadaXuxue Feng UNQUALIFIED
Jeanfrancois O AlbaresUnited KingdomXuxue Feng NEW
Wickens K BologniaFranceBernardo Dominic PROPOSAL
Rodrigues G TollnerItalyAmy Elsner NEW
Jefferson H KuskoBrazilAnna Fali NEGOTIATION
Salvatore M NickaJapanBernardo Dominic NEGOTIATION
Faith D RutaArgentinaAsiya Javayant NEGOTIATION
Francesco Y CaudySpainIvan Magalhaes UNQUALIFIED
Antonio I MaletSpainBernardo Dominic RENEWAL
Costa V ShinkoItalyAsiya Javayant QUALIFIED
Adams G PerinUnited KingdomIoni Bowcher RENEWAL
James P BowleyJapanStephen Shaw QUALIFIED
Antonio K CaldareraUnited KingdomIvan Magalhaes NEW
Aika T BologniaItalyOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin U KolmetzArgentinaOnyama Limba NEGOTIATION
Clifford S NickaItalyStephen Shaw RENEWAL
Aika P CaldareraJapanAmy Elsner PROPOSAL
Johnson M CaudyAustraliaAsiya Javayant RENEWAL
Julie U FlosiItalyAsiya Javayant PROPOSAL
Tony K SchemmerBrazilOnyama Limba QUALIFIED
Jones J FlosiArgentinaAnna Fali NEW
Jones M BologniaRussiaStephen Shaw PROPOSAL
Salvatore J SchemmerCanadaElwin Sharvill UNQUALIFIED
David V PerinFranceAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith P FigeroaArgentina2025-05-22Printing Dimensions QUALIFIED90Asiya Javayant
1001Munro B MaletJapan2025-06-02Morlong Associates NEGOTIATION82Stephen Shaw
1002Antonio Z RimArgentina2025-05-27King, Christopher A Esq PROPOSAL57Ivan Magalhaes
1003Antonio D CampainIndia2025-05-29Chemel, James L Cpa QUALIFIED23Stephen Shaw
1004Greenwood G RulapaughGermany2025-06-05Feltz Printing Service QUALIFIED66Bernardo Dominic
1005Izzy C PoquetteRussia2025-05-12Chapman, Ross E Esq RENEWAL4Ivan Magalhaes
1006Kadeem E WhobreyGermany2025-05-20Feltz Printing Service PROPOSAL25Ioni Bowcher
1007Costa K DoeItaly2025-05-18Chemel, James L Cpa NEW11Ivan Magalhaes
1008Darci P TollnerArgentina2025-05-24Buckley Miller Wright NEGOTIATION64Onyama Limba
1009Deepesh I GarufiFrance2025-06-07Rousseaux, Michael Esq QUALIFIED6Amy Elsner
1010James Z ShinkoUnited Kingdom2025-05-09Truhlar And Truhlar Attys NEW10Ioni Bowcher
1011Murillo C DilliardAustralia2025-05-26Commercial Press NEGOTIATION59Amy Elsner
1012Mayumi A GlickCanada2025-05-24Printing Dimensions PROPOSAL40Stephen Shaw
1013Munro R DilliardUnited Kingdom2025-06-05Dorl, James J Esq PROPOSAL7Asiya Javayant
1014Aditya Y InouyeSpain2025-05-19Truhlar And Truhlar Attys QUALIFIED61Bernardo Dominic
1015Maria E NickaSpain2025-05-22Feltz Printing Service NEGOTIATION37Xuxue Feng
1016Mayumi K KuskoAustralia2025-06-03Buckley Miller Wright UNQUALIFIED87Stephen Shaw
1017Maisha N StensethItaly2025-06-03Chapman, Ross E Esq UNQUALIFIED10Elwin Sharvill
1018Julie V InouyeGermany2025-05-20Chapman, Ross E Esq UNQUALIFIED17Bernardo Dominic
1019Alejandro E RulapaughGermany2025-05-30Benton, John B Jr NEGOTIATION74Ivan Magalhaes
1020Octavia E MorascaUnited Kingdom2025-06-01King, Christopher A Esq UNQUALIFIED20Amy Elsner
1021Faith T SaylorsIndia2025-05-12Chapman, Ross E Esq RENEWAL78Elwin Sharvill
1022Stacey H InouyeArgentina2025-05-25Chemel, James L Cpa NEW77Ioni Bowcher
1023Kaitlin D ChuiFrance2025-05-09Benton, John B Jr QUALIFIED77Xuxue Feng
1024Misaki N GarufiCanada2025-06-06Chanay, Jeffrey A Esq UNQUALIFIED52Xuxue Feng
1025Jones M NestleArgentina2025-05-17Morlong Associates RENEWAL96Elwin Sharvill
1026Munro I SlusarskiItaly2025-05-11King, Christopher A Esq PROPOSAL97Bernardo Dominic
1027Smith R RutaAustralia2025-05-11Chemel, James L Cpa QUALIFIED44Ioni Bowcher
1028Antonio G InouyeIndia2025-05-15Morlong Associates NEW15Asiya Javayant
1029Salvatore Y NestleSpain2025-05-27King, Christopher A Esq NEW70Anna Fali
1030Aditya W AlbaresRussia2025-05-29Commercial Press RENEWAL64Ivan Magalhaes
1031Nicolas E AlbaresItaly2025-06-03Benton, John B Jr UNQUALIFIED0Elwin Sharvill
1032Misaki V RulapaughIndia2025-05-14Feiner Bros QUALIFIED54Stephen Shaw
1033Nicolas P SlusarskiItaly2025-05-14Printing Dimensions UNQUALIFIED50Anna Fali
1034Leja O SergiIndia2025-05-20Rangoni Of Florence QUALIFIED95Bernardo Dominic
1035Greenwood C SergiFrance2025-05-23Chanay, Jeffrey A Esq NEGOTIATION56Elwin Sharvill
1036Octavia R NestleSpain2025-05-17Buckley Miller Wright PROPOSAL69Asiya Javayant
1037Rodrigues C MaletIndia2025-06-03Rousseaux, Michael Esq QUALIFIED29Amy Elsner
1038Stacey Y RimFrance2025-05-14Benton, John B Jr NEGOTIATION82Onyama Limba
1039Johnson R CaldareraRussia2025-06-05Buckley Miller Wright RENEWAL52Anna Fali
1040James Y KolmetzArgentina2025-05-10King, Christopher A Esq RENEWAL55Elwin Sharvill
1041Francesco Q GillianGermany2025-05-23Buckley Miller Wright QUALIFIED85Elwin Sharvill
1042Mayumi B VenereSpain2025-05-31Rousseaux, Michael Esq UNQUALIFIED51Ivan Magalhaes
1043Silvio I VocelkaGermany2025-05-13Chapman, Ross E Esq UNQUALIFIED31Stephen Shaw
1044Costa P RimRussia2025-05-20Chemel, James L Cpa UNQUALIFIED79Ivan Magalhaes
1045Jennifer Y MaletSpain2025-05-25Chemel, James L Cpa UNQUALIFIED17Elwin Sharvill
1046Aditya Y StensethArgentina2025-05-15Printing Dimensions NEGOTIATION61Onyama Limba
1047Deepesh I BowleyAustralia2025-05-25Rousseaux, Michael Esq PROPOSAL27Asiya Javayant
1048Kaitlin V MaletGermany2025-05-15Feltz Printing Service PROPOSAL81Bernardo Dominic
1049Aruna X NickaItaly2025-05-29Chapman, Ross E Esq UNQUALIFIED45Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jennifer K FigeroaSpainIoni Bowcher RENEWAL
Leon R TollnerSpainBernardo Dominic PROPOSAL
Chavez E VocelkaFranceIvan Magalhaes NEW
Misaki O GlickBrazilAnna Fali PROPOSAL
Faith E ButtCanadaAmy Elsner PROPOSAL
Morrow N BriddickBrazilBernardo Dominic UNQUALIFIED
Antonio N ShinkoCanadaOnyama Limba NEGOTIATION
Ricardo R SaylorsFranceAmy Elsner UNQUALIFIED
Isabel D OstroskyArgentinaIvan Magalhaes NEW
Adams L TollnerJapanBernardo Dominic NEGOTIATION
Wickens P MorascaAustraliaXuxue Feng QUALIFIED
Darci I SergiFranceXuxue Feng NEW
Costa R VenereItalyIvan Magalhaes UNQUALIFIED
Aruna D StockhamFranceBernardo Dominic PROPOSAL
Isabel C KolmetzFranceAnna Fali PROPOSAL
Costa Q InouyeFranceXuxue Feng UNQUALIFIED
Nicolas R FigeroaUnited KingdomAmy Elsner QUALIFIED
Tony N MarrierItalyAsiya Javayant QUALIFIED
Misaki O FollerFranceAnna Fali NEW
Stacey P DarakjyIndiaStephen Shaw NEGOTIATION
Mujtaba U MaletArgentinaIoni Bowcher UNQUALIFIED
Costa J NickaGermanyXuxue Feng PROPOSAL
Munro S MorascaGermanyIvan Magalhaes NEGOTIATION
Tony G MorascaSpainIvan Magalhaes PROPOSAL
Jefferson P MarrierSpainElwin Sharvill NEGOTIATION
Mujtaba I ShinkoCanadaBernardo Dominic PROPOSAL
Salvatore R MorascaAustraliaElwin Sharvill NEW
Smith H MarrierJapanAmy Elsner QUALIFIED
Jefferson W BriddickIndiaAnna Fali UNQUALIFIED
Jeanfrancois I FerenczGermanyAnna Fali RENEWAL
Leon W RutaAustraliaOnyama Limba QUALIFIED
Leja I GillianItalyStephen Shaw PROPOSAL
Maria V CampainJapanIoni Bowcher PROPOSAL
James U MacleadJapanBernardo Dominic PROPOSAL
Cody T WaycottIndiaStephen Shaw QUALIFIED
Jeanfrancois G SergiRussiaElwin Sharvill PROPOSAL
Aika L BologniaRussiaAsiya Javayant PROPOSAL
Alejandro Y BologniaCanadaAnna Fali NEW
Stacey Y MarrierGermanyIoni Bowcher RENEWAL
Octavia L OldroydCanadaAsiya Javayant UNQUALIFIED
Rodrigues E DoeJapanBernardo Dominic UNQUALIFIED
James E WieserIndiaStephen Shaw PROPOSAL
Morrow Y TollnerCanadaXuxue Feng RENEWAL
Francesco T FlosiCanadaBernardo Dominic RENEWAL
Johnson N FollerIndiaIoni Bowcher QUALIFIED
Ivar W SaylorsArgentinaAnna Fali UNQUALIFIED
Deepesh Y PaprockiSpainBernardo Dominic PROPOSAL
Chavez N KolmetzUnited KingdomIoni Bowcher QUALIFIED
Nicolas E FigeroaGermanyAsiya Javayant PROPOSAL
Aditya A FerenczIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Jeanfrancois F Whobrey
Salvatore I Albares
Antonio S Poquette
Aika K Darakjy
Faith I Schemmer
Aika Q Campain
James P Kolmetz
Kaitlin W Ruta
Mujtaba P Kusko
Smith M Stockham
Juan U Maclead
Julie O Albares
Johnson I Kusko
Sinclair E Campain
Darci I Ruta
Misaki W Stenseth
Faith I Rim
Antonio X Saylors
Aruna A Kolmetz
Mujtaba Z Gaucho
James O Chui
Munro Z Rulapaugh
Jennifer E Amigon
Darci E Oldroyd
Munro E Marrier
Murillo W Bolognia
Silvio I Malet
Greenwood Z Tollner
Octavia N Oldroyd
Nicolas X Shinko
James P Ferencz
Silvio P Venere
Morrow P Bolognia
Kadeem U Wieser
David N Gillian
Aruna E Nicka
Claire A Poquette
Jennifer L Wieser
Tony Q Iturbide
Smith Q Inouye
Ivar Z Paprocki
Leon H Caldarera
Johnson X Stockham
Misaki X Dilliard
Ricardo T Tollner
Mujtaba D Maclead
Stacey M Malet
David S Gillian
Jefferson D Marrier
Ricardo N Venere
IdCountryDate
1000Brazil2025-05-23
1001Brazil2025-05-16
1002Italy2025-05-09
1003Italy2025-05-11
1004Argentina2025-05-18
1005Spain2025-06-01
1006Canada2025-05-13
1007Spain2025-05-23
1008France2025-05-31
1009Japan2025-05-30
1010France2025-05-13
1011Italy2025-05-29
1012Germany2025-05-15
1013Spain2025-05-13
1014Canada2025-06-06
1015Italy2025-05-30
1016Germany2025-05-27
1017Russia2025-05-31
1018Germany2025-06-04
1019United Kingdom2025-06-06
1020Germany2025-06-06
1021Japan2025-05-31
1022Spain2025-05-11
1023Spain2025-06-03
1024Italy2025-05-16
1025Argentina2025-05-29
1026Japan2025-06-07
1027Canada2025-05-29
1028United Kingdom2025-05-24
1029Australia2025-05-22
1030India2025-05-09
1031Spain2025-06-02
1032United Kingdom2025-06-03
1033Spain2025-05-18
1034Germany2025-05-14
1035Canada2025-05-27
1036Japan2025-05-28
1037Japan2025-05-17
1038India2025-06-05
1039Brazil2025-05-24
1040Japan2025-05-12
1041Japan2025-05-30
1042Russia2025-06-04
1043India2025-05-30
1044United Kingdom2025-05-15
1045Australia2025-05-29
1046United Kingdom2025-05-29
1047Argentina2025-05-27
1048United Kingdom2025-06-02
1049Italy2025-06-02

On-Demand Data

NameIdCountryDate
Cody G Poquette1000Japan2025-05-19
Julie M Ferencz1001Canada2025-05-18
Nicolas R Vocelka1002Germany2025-05-09
Rodrigues S Perin1003Italy2025-06-03
Ivar P Paprocki1004Germany2025-06-07
Ashley P Albares1005Russia2025-05-09
David T Oldroyd1006Brazil2025-05-10
Greenwood S Rulapaugh1007Brazil2025-05-30
Maisha J Malet1008Japan2025-05-24
Cody L Flosi1009Canada2025-05-11
Nicolas J Ostrosky1010Argentina2025-06-01
Darci C Dilliard1011Canada2025-05-23
Greenwood S Chui1012Australia2025-05-29
Chavez M Darakjy1013United Kingdom2025-05-18
Cody N Bowley1014Spain2025-06-06
Maria K Caldarera1015Russia2025-05-12
Chavez Y Venere1016Canada2025-05-13
Maria T Gaucho1017Argentina2025-05-21
Chavez F Inouye1018Spain2025-05-22
Munro Q Ferencz1019France2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens Z SaylorsAustraliaIvan Magalhaes QUALIFIED
Julie G WaycottSpainElwin Sharvill NEGOTIATION
Jennifer G BologniaUnited KingdomOnyama Limba PROPOSAL
Wickens R PaprockiItalyXuxue Feng PROPOSAL
Kadeem O StensethArgentinaOnyama Limba UNQUALIFIED
Aditya Z AlbaresFranceIoni Bowcher NEGOTIATION
Deepesh F MorascaAustraliaIoni Bowcher RENEWAL
Francesco H FlosiGermanyAsiya Javayant QUALIFIED
Octavia H CaldareraArgentinaElwin Sharvill RENEWAL
Kadeem C NickaJapanAmy Elsner UNQUALIFIED
Salvatore L ButtBrazilOnyama Limba NEGOTIATION
Kadeem E CaldareraItalyOnyama Limba QUALIFIED
Antonio B IturbideArgentinaBernardo Dominic UNQUALIFIED
Aditya C DarakjyAustraliaAnna Fali QUALIFIED
Octavia Q MacleadCanadaIvan Magalhaes RENEWAL
Adams O DilliardItalyAnna Fali RENEWAL
Leja Z KolmetzRussiaElwin Sharvill NEW
Darci Y AmigonAustraliaOnyama Limba QUALIFIED
Morrow G NestleRussiaElwin Sharvill RENEWAL
Misaki X NickaBrazilAnna Fali NEW
Maria D SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Octavia Y DoeGermanyAmy Elsner NEW
Francesco O NestleIndiaAmy Elsner PROPOSAL
James V BowleyIndiaAsiya Javayant QUALIFIED
Izzy R AmigonCanadaElwin Sharvill RENEWAL
Maisha X SaylorsCanadaIvan Magalhaes PROPOSAL
Izzy G CaudyCanadaBernardo Dominic RENEWAL
Aditya W PerinAustraliaAmy Elsner PROPOSAL
Antonio G GauchoAustraliaIvan Magalhaes UNQUALIFIED
Octavia M RoysterGermanyBernardo Dominic PROPOSAL
Jeanfrancois O MaletArgentinaIvan Magalhaes NEW
Costa V NickaArgentinaElwin Sharvill QUALIFIED
Silvio B FerenczArgentinaAmy Elsner NEGOTIATION
Isabel J BowleySpainAnna Fali RENEWAL
Greenwood E PerinItalyIvan Magalhaes UNQUALIFIED
Jeanfrancois L MarrierAustraliaStephen Shaw QUALIFIED
Murillo F RulapaughGermanyAsiya Javayant QUALIFIED
James O BologniaFranceAmy Elsner RENEWAL
Jeanfrancois P PaprockiFranceXuxue Feng RENEWAL
Rodrigues O FollerRussiaIvan Magalhaes 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>