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
Claire M AmigonBrazilAsiya Javayant NEW
Salvatore B SaylorsBrazilElwin Sharvill PROPOSAL
Ivar N RutaCanadaElwin Sharvill QUALIFIED
Ricardo T AmigonSpainIoni Bowcher RENEWAL
Nicolas N RulapaughFranceAnna Fali QUALIFIED
James C RutaItalyIoni Bowcher PROPOSAL
Antonio F CaudyBrazilAnna Fali NEGOTIATION
Cody J MarrierRussiaAsiya Javayant NEGOTIATION
Darci F ShinkoSpainOnyama Limba PROPOSAL
Salvatore O VenereJapanAmy Elsner UNQUALIFIED
Ashley M VenereRussiaStephen Shaw QUALIFIED
Aditya T IturbideJapanIoni Bowcher NEW
Octavia Y DoeAustraliaAsiya Javayant NEW
Murillo J ShinkoBrazilAnna Fali NEW
Munro T BowleyFranceAmy Elsner UNQUALIFIED
Alejandro O BowleyRussiaBernardo Dominic UNQUALIFIED
Maria C CaldareraIndiaElwin Sharvill RENEWAL
Jennifer T SchemmerGermanyAsiya Javayant UNQUALIFIED
Ashley U PerinSpainAnna Fali QUALIFIED
Misaki Q PoquetteSpainAmy Elsner PROPOSAL
Stacey M KuskoFranceOnyama Limba NEGOTIATION
Deepesh R WieserAustraliaAnna Fali QUALIFIED
Jeanfrancois T CampainJapanIoni Bowcher UNQUALIFIED
Izzy V FlosiCanadaAnna Fali PROPOSAL
Antonio H MacleadJapanElwin Sharvill NEW
Arvin C BologniaIndiaIvan Magalhaes QUALIFIED
Kaitlin K ButtBrazilIoni Bowcher NEGOTIATION
Johnson A ChuiArgentinaXuxue Feng UNQUALIFIED
Cody N IturbideSpainXuxue Feng PROPOSAL
Morrow H KuskoArgentinaAnna Fali NEW
Jefferson M CampainIndiaIoni Bowcher NEGOTIATION
David Z FollerUnited KingdomStephen Shaw UNQUALIFIED
Leja X AlbaresBrazilOnyama Limba UNQUALIFIED
Isabel F CaldareraSpainElwin Sharvill UNQUALIFIED
Tony P PoquetteBrazilStephen Shaw PROPOSAL
Silvio K WieserItalyBernardo Dominic UNQUALIFIED
Mujtaba D BriddickArgentinaAmy Elsner QUALIFIED
Maria V CaudyFranceStephen Shaw QUALIFIED
Aruna W GlickSpainElwin Sharvill UNQUALIFIED
Francesco X CaldareraFranceAmy Elsner NEW
Jones U BowleyIndiaIoni Bowcher QUALIFIED
David J FigeroaCanadaAnna Fali QUALIFIED
Aruna X ShinkoAustraliaStephen Shaw RENEWAL
Stacey H PaprockiAustraliaBernardo Dominic NEGOTIATION
Salvatore Y DoeJapanElwin Sharvill QUALIFIED
Mujtaba T NestleRussiaAsiya Javayant PROPOSAL
Cody T MaletJapanIvan Magalhaes QUALIFIED
Wickens I WhobreyGermanyStephen Shaw NEGOTIATION
Darci O StockhamBrazilXuxue Feng NEW
Smith A StensethIndiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody T VocelkaArgentinaXuxue Feng PROPOSAL
Deepesh H AmigonSpainAsiya Javayant PROPOSAL
Maisha F BologniaArgentinaAmy Elsner RENEWAL
Darci C SergiIndiaBernardo Dominic UNQUALIFIED
David S RoysterGermanyIoni Bowcher UNQUALIFIED
Julie X GarufiJapanStephen Shaw NEGOTIATION
Deepesh B GarufiAustraliaAmy Elsner NEGOTIATION
Aditya P GarufiRussiaBernardo Dominic PROPOSAL
Aditya P BowleySpainStephen Shaw UNQUALIFIED
Johnson T InouyeBrazilAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson F CampainGermany2026-06-08Rangoni Of Florence NEGOTIATION71Anna Fali
1001Leon J WaycottBrazil2026-06-19Rousseaux, Michael Esq PROPOSAL56Elwin Sharvill
1002Aika A GauchoIndia2026-06-10Commercial Press NEGOTIATION71Onyama Limba
1003Maria M PaprockiFrance2026-06-08Rousseaux, Michael Esq PROPOSAL93Bernardo Dominic
1004Deepesh Y WieserSpain2026-06-22Benton, John B Jr PROPOSAL15Elwin Sharvill
1005Clifford B GarufiItaly2026-06-08King, Christopher A Esq PROPOSAL11Ioni Bowcher
1006Alejandro P SergiBrazil2026-06-03Chemel, James L Cpa UNQUALIFIED19Bernardo Dominic
1007Greenwood F MaletArgentina2026-06-25Commercial Press NEGOTIATION79Ioni Bowcher
1008Maisha U AlbaresSpain2026-06-17Commercial Press UNQUALIFIED26Anna Fali
1009Greenwood V GauchoFrance2026-06-13Benton, John B Jr QUALIFIED11Asiya Javayant
1010Kaitlin H CaldareraUnited Kingdom2026-07-01Dorl, James J Esq RENEWAL32Amy Elsner
1011James S KolmetzJapan2026-06-06Morlong Associates UNQUALIFIED63Ioni Bowcher
1012Ricardo G DilliardGermany2026-06-13Buckley Miller Wright NEW88Bernardo Dominic
1013Leon V FerenczAustralia2026-06-10Commercial Press QUALIFIED62Ivan Magalhaes
1014Aika W BriddickArgentina2026-06-06Chemel, James L Cpa UNQUALIFIED56Anna Fali
1015Emily O SchemmerItaly2026-07-02Truhlar And Truhlar Attys PROPOSAL79Onyama Limba
1016Johnson E KolmetzIndia2026-06-29Rangoni Of Florence NEW72Ioni Bowcher
1017David L WaycottIndia2026-06-18Commercial Press NEW22Ivan Magalhaes
1018Aruna Z DoeItaly2026-06-15Chanay, Jeffrey A Esq PROPOSAL48Onyama Limba
1019Costa O PaprockiCanada2026-06-23Feiner Bros NEW82Asiya Javayant
1020Emily O WaycottIndia2026-06-15Printing Dimensions NEW27Asiya Javayant
1021Greenwood I NestleCanada2026-06-22Rousseaux, Michael Esq NEGOTIATION47Ivan Magalhaes
1022Maisha V MaletJapan2026-06-17Morlong Associates QUALIFIED73Onyama Limba
1023Aditya S VocelkaArgentina2026-06-14Rousseaux, Michael Esq NEGOTIATION49Anna Fali
1024Clifford D PoquetteCanada2026-06-06Buckley Miller Wright QUALIFIED85Amy Elsner
1025Wickens G BriddickAustralia2026-06-10Rangoni Of Florence PROPOSAL74Asiya Javayant
1026Ashley S ChuiUnited Kingdom2026-06-09Rousseaux, Michael Esq UNQUALIFIED26Onyama Limba
1027Misaki A RutaAustralia2026-06-30Chanay, Jeffrey A Esq QUALIFIED41Elwin Sharvill
1028Julie L BologniaItaly2026-06-24Rangoni Of Florence RENEWAL89Onyama Limba
1029Maria M NickaRussia2026-07-02King, Christopher A Esq UNQUALIFIED99Xuxue Feng
1030Silvio W WieserFrance2026-06-11Feltz Printing Service QUALIFIED2Ioni Bowcher
1031Silvio G NickaGermany2026-06-27Feiner Bros RENEWAL12Xuxue Feng
1032Costa Q AlbaresAustralia2026-06-03Morlong Associates RENEWAL33Elwin Sharvill
1033Clifford I FollerCanada2026-06-16Benton, John B Jr RENEWAL14Asiya Javayant
1034Maria K MarrierArgentina2026-06-26Rangoni Of Florence NEGOTIATION50Anna Fali
1035Arvin S GauchoSpain2026-06-08Feiner Bros PROPOSAL93Amy Elsner
1036Adams Z GlickBrazil2026-06-07Feltz Printing Service NEW70Onyama Limba
1037Tony E StockhamUnited Kingdom2026-06-27Feltz Printing Service NEW20Asiya Javayant
1038Silvio Y BriddickIndia2026-06-12King, Christopher A Esq NEGOTIATION57Anna Fali
1039Jeanfrancois B AlbaresAustralia2026-06-12Chapman, Ross E Esq UNQUALIFIED61Amy Elsner
1040Juan D CampainUnited Kingdom2026-06-03Feltz Printing Service NEGOTIATION86Ioni Bowcher
1041Aika Y FollerFrance2026-06-29Chemel, James L Cpa UNQUALIFIED79Onyama Limba
1042Alejandro O TollnerItaly2026-06-16Dorl, James J Esq QUALIFIED9Onyama Limba
1043Clifford B KolmetzCanada2026-06-13Feiner Bros NEGOTIATION70Onyama Limba
1044Johnson L MorascaJapan2026-06-05Printing Dimensions NEW69Anna Fali
1045Smith A CaldareraItaly2026-06-17Buckley Miller Wright PROPOSAL77Ioni Bowcher
1046Mujtaba S MacleadIndia2026-07-02Feltz Printing Service NEGOTIATION50Anna Fali
1047Mujtaba B SaylorsArgentina2026-07-01Rangoni Of Florence PROPOSAL10Elwin Sharvill
1048Chavez I MorascaGermany2026-07-01Benton, John B Jr PROPOSAL46Ivan Magalhaes
1049Leon W CampainUnited Kingdom2026-06-14Chapman, Ross E Esq PROPOSAL25Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Arvin L KolmetzIndiaAmy Elsner NEGOTIATION
Cody W AmigonRussiaAnna Fali UNQUALIFIED
Jefferson N PoquetteArgentinaElwin Sharvill QUALIFIED
Chavez S MacleadSpainXuxue Feng RENEWAL
Chavez N FollerJapanAnna Fali PROPOSAL
Juan I GauchoRussiaStephen Shaw UNQUALIFIED
Kadeem H RoysterBrazilAnna Fali NEW
Francesco H PerinAustraliaIvan Magalhaes NEW
Jeanfrancois N CampainAustraliaXuxue Feng UNQUALIFIED
Mayumi I SaylorsSpainAsiya Javayant QUALIFIED
Arvin T GlickFranceAnna Fali NEW
Munro K TollnerCanadaBernardo Dominic NEGOTIATION
Ashley A SaylorsAustraliaXuxue Feng RENEWAL
Jefferson F GauchoIndiaAmy Elsner PROPOSAL
Johnson D RulapaughAustraliaAnna Fali RENEWAL
Maisha W InouyeJapanIoni Bowcher RENEWAL
Silvio Y AmigonGermanyXuxue Feng UNQUALIFIED
Clifford Y PaprockiAustraliaStephen Shaw PROPOSAL
Jeanfrancois D IturbideFranceElwin Sharvill RENEWAL
Murillo A StensethBrazilAsiya Javayant PROPOSAL
Kaitlin G SlusarskiArgentinaBernardo Dominic NEW
Jennifer O WaycottArgentinaIoni Bowcher UNQUALIFIED
Jefferson G SchemmerBrazilOnyama Limba QUALIFIED
Mayumi M MaletGermanyIvan Magalhaes QUALIFIED
Stacey O InouyeBrazilStephen Shaw NEGOTIATION
Octavia W RimArgentinaXuxue Feng RENEWAL
Ivar B CampainSpainBernardo Dominic UNQUALIFIED
Isabel H RoysterSpainOnyama Limba UNQUALIFIED
Ricardo O GillianCanadaXuxue Feng UNQUALIFIED
Tony X FollerUnited KingdomOnyama Limba NEGOTIATION
Morrow R MarrierSpainIvan Magalhaes NEGOTIATION
Alejandro F InouyeArgentinaAnna Fali PROPOSAL
Faith N VocelkaUnited KingdomAnna Fali QUALIFIED
Misaki O FollerUnited KingdomAnna Fali QUALIFIED
Darci P SlusarskiFranceAnna Fali QUALIFIED
Tony D InouyeBrazilElwin Sharvill UNQUALIFIED
Claire L PoquetteArgentinaStephen Shaw QUALIFIED
Jeanfrancois T StockhamFranceIoni Bowcher QUALIFIED
Emily L SaylorsSpainOnyama Limba NEW
Juan K StensethSpainAsiya Javayant PROPOSAL
Aika Q NestleFranceOnyama Limba NEW
Francesco F ButtCanadaStephen Shaw QUALIFIED
Stacey V FollerArgentinaBernardo Dominic PROPOSAL
Jennifer G DilliardCanadaAmy Elsner NEGOTIATION
Deepesh O BowleyBrazilIoni Bowcher QUALIFIED
Mujtaba X PerinJapanXuxue Feng RENEWAL
Misaki W IturbideCanadaIoni Bowcher NEW
Wickens A VenereBrazilStephen Shaw UNQUALIFIED
Kaitlin Z InouyeJapanXuxue Feng PROPOSAL
Murillo G GarufiItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Cody O Ruta
Deepesh P Kolmetz
Ricardo H Poquette
Salvatore I Darakjy
Jennifer K Tollner
Alejandro A Campain
Izzy M Ruta
Aika E Bolognia
Isabel L Flosi
Emily Z Royster
David N Rim
Faith I Foller
Jennifer D Maclead
Jones I Ruta
James H Rim
Silvio P Ostrosky
Antonio B Garufi
Leja Y Malet
Darci P Dilliard
Mujtaba R Rulapaugh
Costa A Poquette
Faith E Marrier
Mayumi B Poquette
Adams U Wieser
Ashley Y Oldroyd
Chavez G Vocelka
Wickens H Albares
Greenwood N Flosi
Smith I Morasca
Kaitlin T Bowley
Ricardo Z Slusarski
Alejandro A Chui
Silvio E Flosi
Adams A Caldarera
Maria N Glick
Darci I Kusko
Sinclair Z Paprocki
Misaki L Caudy
Mujtaba B Waycott
Greenwood Y Poquette
Ricardo O Caudy
Smith C Butt
Francesco A Nestle
Claire W Glick
Johnson O Marrier
Kadeem G Oldroyd
Kaitlin C Flosi
Chavez V Gillian
Johnson D Poquette
Ashley K Garufi
IdCountryDate
1000Japan2026-07-01
1001United Kingdom2026-06-21
1002Russia2026-06-20
1003Brazil2026-06-04
1004United Kingdom2026-06-25
1005Italy2026-06-30
1006Canada2026-06-18
1007Australia2026-06-15
1008Italy2026-06-18
1009Japan2026-06-29
1010Argentina2026-06-26
1011France2026-06-16
1012Australia2026-06-26
1013Russia2026-06-16
1014Canada2026-06-12
1015Italy2026-06-10
1016Russia2026-06-30
1017Australia2026-06-17
1018Russia2026-07-01
1019Australia2026-06-18
1020Australia2026-06-16
1021Canada2026-06-24
1022Italy2026-06-05
1023Germany2026-06-13
1024Argentina2026-06-20
1025India2026-06-07
1026Australia2026-06-20
1027Spain2026-06-10
1028Germany2026-06-19
1029Russia2026-06-10
1030Spain2026-06-19
1031Italy2026-06-11
1032Australia2026-06-09
1033France2026-06-13
1034Russia2026-06-03
1035Argentina2026-06-09
1036Italy2026-06-03
1037Canada2026-06-14
1038India2026-06-13
1039Brazil2026-07-01
1040Germany2026-06-18
1041Canada2026-06-13
1042Japan2026-06-06
1043Russia2026-06-04
1044Australia2026-06-13
1045Brazil2026-06-03
1046Argentina2026-06-10
1047Germany2026-06-25
1048Spain2026-06-28
1049Italy2026-06-05

On-Demand Data

NameIdCountryDate
Aditya D Malet1000Argentina2026-06-28
James W Caldarera1001Brazil2026-07-02
Morrow L Doe1002Spain2026-06-07
Francesco E Wieser1003France2026-06-10
Leja F Whobrey1004France2026-06-07
Chavez D Briddick1005Argentina2026-06-15
Kadeem J Kolmetz1006Russia2026-06-19
Juan H Foller1007Italy2026-06-18
Aika Y Slusarski1008Germany2026-07-01
Cody O Albares1009India2026-06-10
Aruna Y Amigon1010Argentina2026-06-22
Greenwood O Bowley1011Russia2026-06-07
Antonio O Kolmetz1012Brazil2026-06-26
Chavez A Shinko1013Japan2026-06-16
Jones G Gillian1014Russia2026-06-10
Darci O Morasca1015Brazil2026-06-21
Tony F Vocelka1016Spain2026-06-12
Greenwood R Campain1017Russia2026-06-10
Aika X Schemmer1018France2026-06-27
Munro Z Saylors1019United Kingdom2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David D AlbaresFranceElwin Sharvill NEW
Francesco J PaprockiCanadaStephen Shaw NEGOTIATION
James U SergiArgentinaAnna Fali RENEWAL
Faith A MaletJapanAmy Elsner PROPOSAL
Johnson X FollerCanadaOnyama Limba PROPOSAL
David R GlickAustraliaStephen Shaw RENEWAL
Francesco E KuskoJapanAnna Fali PROPOSAL
Misaki T OstroskyArgentinaIoni Bowcher RENEWAL
Antonio A GlickIndiaAsiya Javayant NEW
Aditya Q SlusarskiJapanBernardo Dominic NEW
Ricardo B PaprockiItalyIvan Magalhaes PROPOSAL
Maisha X BologniaJapanAmy Elsner NEW
Claire T MaletBrazilOnyama Limba NEGOTIATION
Kadeem L GlickItalyOnyama Limba UNQUALIFIED
Antonio X MacleadFranceOnyama Limba NEW
Mujtaba G CampainJapanAmy Elsner QUALIFIED
Smith O GauchoArgentinaAsiya Javayant QUALIFIED
Mujtaba P AlbaresUnited KingdomStephen Shaw NEGOTIATION
Tony F KuskoJapanAsiya Javayant NEW
Ashley M SergiSpainIoni Bowcher NEGOTIATION
Costa D DarakjyCanadaBernardo Dominic NEW
Stacey A MaletSpainIvan Magalhaes NEGOTIATION
Maisha R BriddickBrazilElwin Sharvill NEW
Smith H AmigonIndiaAmy Elsner NEW
Tony S GillianItalyIoni Bowcher NEGOTIATION
Emily R SchemmerFranceAmy Elsner PROPOSAL
Clifford F SaylorsGermanyXuxue Feng RENEWAL
Deepesh S ShinkoArgentinaXuxue Feng PROPOSAL
David U RulapaughIndiaBernardo Dominic NEW
Jones Y KuskoAustraliaXuxue Feng PROPOSAL
Chavez I MarrierGermanyElwin Sharvill QUALIFIED
Stacey A DoeCanadaAnna Fali QUALIFIED
Costa H RulapaughIndiaXuxue Feng PROPOSAL
Rodrigues X AmigonCanadaOnyama Limba PROPOSAL
Deepesh Q DarakjyJapanAmy Elsner PROPOSAL
Wickens P WhobreyItalyBernardo Dominic PROPOSAL
Ricardo C StensethSpainElwin Sharvill QUALIFIED
Ivar D IturbideFranceAsiya Javayant RENEWAL
Emily J SlusarskiCanadaIvan Magalhaes QUALIFIED
Leon T AmigonIndiaAsiya Javayant PROPOSAL

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