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 J RoysterFranceAmy Elsner RENEWAL
Nicolas X NestleJapanBernardo Dominic NEGOTIATION
Julie X SergiUnited KingdomAsiya Javayant NEW
Antonio U InouyeRussiaAmy Elsner QUALIFIED
Adams K VenereCanadaElwin Sharvill UNQUALIFIED
Darci A StockhamItalyStephen Shaw NEGOTIATION
Octavia N ShinkoCanadaAmy Elsner PROPOSAL
Adams X GlickJapanAmy Elsner QUALIFIED
Adams T SaylorsAustraliaIoni Bowcher PROPOSAL
Wickens A AmigonCanadaAnna Fali QUALIFIED
Jeanfrancois A SchemmerItalyBernardo Dominic QUALIFIED
Morrow Y DilliardGermanyElwin Sharvill RENEWAL
Jefferson T ChuiSpainIvan Magalhaes NEW
Clifford Q DilliardCanadaStephen Shaw QUALIFIED
Kadeem Y KuskoCanadaAnna Fali NEW
Alejandro O BowleyJapanAmy Elsner UNQUALIFIED
Clifford Y KuskoBrazilBernardo Dominic NEGOTIATION
Francesco G SaylorsFranceIoni Bowcher PROPOSAL
Maisha B MorascaUnited KingdomStephen Shaw RENEWAL
Munro T CaudyGermanyAnna Fali PROPOSAL
Aika B NickaSpainAsiya Javayant UNQUALIFIED
Wickens U GauchoFranceStephen Shaw NEGOTIATION
Aruna F WaycottRussiaIvan Magalhaes NEW
Juan R BriddickFranceBernardo Dominic NEW
Aruna J IturbideCanadaAnna Fali UNQUALIFIED
Rodrigues D CaudyGermanyOnyama Limba NEGOTIATION
Julie K KuskoArgentinaIoni Bowcher NEW
Maria G FigeroaGermanyIvan Magalhaes PROPOSAL
Munro C DarakjyGermanyIvan Magalhaes RENEWAL
Ricardo L FigeroaArgentinaElwin Sharvill QUALIFIED
Leon N OldroydJapanAnna Fali NEW
Kadeem R WieserArgentinaAmy Elsner PROPOSAL
Octavia Q OstroskyJapanStephen Shaw QUALIFIED
Arvin V ChuiRussiaAsiya Javayant RENEWAL
Claire H OldroydItalyIoni Bowcher PROPOSAL
Mayumi Z BologniaRussiaAmy Elsner NEGOTIATION
Rodrigues E MaletUnited KingdomElwin Sharvill UNQUALIFIED
Leon Z DilliardUnited KingdomIoni Bowcher NEGOTIATION
Cody B MaletArgentinaIoni Bowcher UNQUALIFIED
Sinclair O MorascaFranceElwin Sharvill NEGOTIATION
Claire R BologniaAustraliaElwin Sharvill NEW
Kaitlin Y FigeroaAustraliaAnna Fali UNQUALIFIED
Mayumi R DilliardArgentinaElwin Sharvill UNQUALIFIED
Antonio J WaycottRussiaIoni Bowcher PROPOSAL
Francesco X VenereItalyAsiya Javayant QUALIFIED
Wickens I AlbaresItalyAsiya Javayant PROPOSAL
David I BowleyRussiaAmy Elsner PROPOSAL
Wickens R GillianIndiaStephen Shaw NEW
Alejandro T VocelkaAustraliaAmy Elsner UNQUALIFIED
Jennifer C FigeroaBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Claire W RutaBrazilOnyama Limba QUALIFIED
Johnson Y VocelkaArgentinaAmy Elsner NEGOTIATION
Maisha E WaycottArgentinaIoni Bowcher NEGOTIATION
Leja U GarufiRussiaAmy Elsner NEW
Mujtaba C StensethJapanOnyama Limba NEW
Maisha H OstroskyGermanyAnna Fali UNQUALIFIED
Aditya M GillianBrazilElwin Sharvill QUALIFIED
Izzy N SaylorsAustraliaAnna Fali NEGOTIATION
Antonio F StensethJapanAnna Fali NEGOTIATION
Adams W ButtIndiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro H GlickAustralia2026-07-16Feltz Printing Service QUALIFIED25Stephen Shaw
1001Emily G SchemmerFrance2026-07-02Feiner Bros NEGOTIATION50Xuxue Feng
1002Aika X DilliardCanada2026-07-04Truhlar And Truhlar Attys QUALIFIED98Anna Fali
1003Kaitlin F RutaSpain2026-07-13Rousseaux, Michael Esq RENEWAL6Ioni Bowcher
1004Arvin A DilliardUnited Kingdom2026-07-19Commercial Press RENEWAL76Ivan Magalhaes
1005Juan Y DilliardArgentina2026-07-26Printing Dimensions NEGOTIATION3Ioni Bowcher
1006Ivar T DoeItaly2026-07-18Chemel, James L Cpa RENEWAL84Bernardo Dominic
1007Adams A DarakjyGermany2026-07-03Feltz Printing Service PROPOSAL93Elwin Sharvill
1008Octavia H CaldareraItaly2026-07-14Buckley Miller Wright UNQUALIFIED69Onyama Limba
1009Maisha T MacleadSpain2026-07-13Feltz Printing Service RENEWAL73Bernardo Dominic
1010Leon U GauchoItaly2026-07-25Chapman, Ross E Esq RENEWAL9Ivan Magalhaes
1011Aditya F ButtUnited Kingdom2026-07-20Rangoni Of Florence PROPOSAL48Stephen Shaw
1012Jefferson T GillianCanada2026-07-15Dorl, James J Esq NEW6Amy Elsner
1013Juan C ButtJapan2026-07-08Printing Dimensions QUALIFIED71Ioni Bowcher
1014Julie I DarakjyGermany2026-07-14Feltz Printing Service RENEWAL31Amy Elsner
1015Izzy S GarufiBrazil2026-07-27Chemel, James L Cpa NEGOTIATION54Ioni Bowcher
1016David A BowleyJapan2026-07-02Truhlar And Truhlar Attys QUALIFIED30Elwin Sharvill
1017Juan F FerenczAustralia2026-07-31Feiner Bros NEGOTIATION84Elwin Sharvill
1018Faith M WieserBrazil2026-07-02Rangoni Of Florence RENEWAL88Xuxue Feng
1019Sinclair Q GillianUnited Kingdom2026-07-17Truhlar And Truhlar Attys PROPOSAL94Elwin Sharvill
1020Maisha T GillianFrance2026-07-28Buckley Miller Wright NEW19Elwin Sharvill
1021Ricardo T StockhamGermany2026-07-27Feltz Printing Service PROPOSAL5Xuxue Feng
1022Arvin C BriddickUnited Kingdom2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED12Ioni Bowcher
1023Rodrigues G CaldareraUnited Kingdom2026-07-10Rangoni Of Florence NEGOTIATION60Amy Elsner
1024Jefferson S CampainItaly2026-07-21Chanay, Jeffrey A Esq PROPOSAL49Anna Fali
1025Costa Q SaylorsAustralia2026-07-03Rangoni Of Florence PROPOSAL55Elwin Sharvill
1026Clifford S SaylorsArgentina2026-07-21Chemel, James L Cpa PROPOSAL7Ivan Magalhaes
1027Jones Q AlbaresArgentina2026-07-25Morlong Associates RENEWAL47Amy Elsner
1028Maisha T WhobreyArgentina2026-07-19Benton, John B Jr NEW37Ivan Magalhaes
1029Jefferson U PaprockiCanada2026-07-31Feiner Bros RENEWAL21Onyama Limba
1030Wickens F KuskoSpain2026-07-18Feiner Bros UNQUALIFIED43Bernardo Dominic
1031Chavez G BowleyBrazil2026-07-22Chanay, Jeffrey A Esq PROPOSAL87Stephen Shaw
1032Leon P PerinFrance2026-07-04Chanay, Jeffrey A Esq PROPOSAL17Onyama Limba
1033Munro P SlusarskiGermany2026-07-07Commercial Press NEGOTIATION85Ioni Bowcher
1034Maisha F SlusarskiAustralia2026-07-16Truhlar And Truhlar Attys UNQUALIFIED29Elwin Sharvill
1035Jennifer E SergiArgentina2026-07-29Chemel, James L Cpa PROPOSAL31Anna Fali
1036Rodrigues W KuskoJapan2026-07-14Morlong Associates NEGOTIATION88Xuxue Feng
1037Emily X VocelkaCanada2026-07-31Feltz Printing Service NEW55Ioni Bowcher
1038Julie Y AlbaresUnited Kingdom2026-07-04Rousseaux, Michael Esq RENEWAL33Xuxue Feng
1039Mujtaba T PaprockiFrance2026-07-28Morlong Associates NEGOTIATION89Onyama Limba
1040Ashley Y InouyeUnited Kingdom2026-07-08Benton, John B Jr QUALIFIED75Elwin Sharvill
1041Adams K StockhamSpain2026-07-11Chanay, Jeffrey A Esq QUALIFIED54Amy Elsner
1042Isabel V SergiGermany2026-07-09Dorl, James J Esq RENEWAL87Bernardo Dominic
1043Nicolas Z ButtJapan2026-07-24Chapman, Ross E Esq NEGOTIATION5Stephen Shaw
1044Silvio T DilliardGermany2026-07-09Chanay, Jeffrey A Esq NEGOTIATION1Stephen Shaw
1045Leon N GlickArgentina2026-07-12Chemel, James L Cpa RENEWAL48Onyama Limba
1046Leon G StockhamFrance2026-07-22Morlong Associates RENEWAL54Stephen Shaw
1047Silvio F GillianItaly2026-07-26Chemel, James L Cpa PROPOSAL3Xuxue Feng
1048Munro T GarufiGermany2026-07-24Morlong Associates RENEWAL18Asiya Javayant
1049Antonio N MaletSpain2026-07-25King, Christopher A Esq NEGOTIATION29Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Antonio G KuskoRussiaXuxue Feng NEW
Octavia O ChuiRussiaAsiya Javayant RENEWAL
Claire I KolmetzIndiaStephen Shaw QUALIFIED
Maisha V DoeGermanyStephen Shaw NEGOTIATION
Leja Q VenereArgentinaAmy Elsner NEW
Ashley W IturbideFranceElwin Sharvill UNQUALIFIED
Costa V StensethRussiaAnna Fali QUALIFIED
Ivar J BriddickItalyBernardo Dominic NEW
Cody W GlickAustraliaAnna Fali PROPOSAL
Faith K CaudyGermanyAmy Elsner NEW
Maria D KuskoSpainXuxue Feng NEW
Octavia T RoysterIndiaAnna Fali NEW
Wickens M BriddickSpainAnna Fali UNQUALIFIED
Adams M WieserGermanyAmy Elsner QUALIFIED
Misaki K OldroydSpainIoni Bowcher QUALIFIED
Tony E GauchoItalyAsiya Javayant PROPOSAL
Francesco U RoysterIndiaElwin Sharvill RENEWAL
Greenwood P SlusarskiRussiaIvan Magalhaes RENEWAL
Ashley D KuskoFranceIoni Bowcher NEGOTIATION
Wickens E GarufiAustraliaIvan Magalhaes RENEWAL
Arvin B ButtJapanOnyama Limba NEGOTIATION
Murillo Q StensethFranceIoni Bowcher UNQUALIFIED
Jefferson M IturbideGermanyAsiya Javayant PROPOSAL
Morrow R MorascaFranceAmy Elsner UNQUALIFIED
Mujtaba K GauchoSpainAmy Elsner PROPOSAL
Kadeem Y OldroydRussiaOnyama Limba PROPOSAL
Kadeem F BologniaItalyXuxue Feng NEW
Murillo M RoysterSpainAnna Fali QUALIFIED
Cody O WaycottItalyElwin Sharvill RENEWAL
Isabel H TollnerArgentinaAsiya Javayant UNQUALIFIED
Jennifer E WieserCanadaElwin Sharvill NEW
Leon J RulapaughGermanyXuxue Feng UNQUALIFIED
Faith T FigeroaCanadaStephen Shaw RENEWAL
Wickens V AmigonFranceElwin Sharvill NEGOTIATION
Wickens I GlickBrazilElwin Sharvill UNQUALIFIED
Darci R RimBrazilOnyama Limba NEGOTIATION
Deepesh I RimJapanStephen Shaw NEW
James P NestleUnited KingdomStephen Shaw RENEWAL
Alejandro I CaudyJapanAmy Elsner NEGOTIATION
Ivar X NickaCanadaXuxue Feng QUALIFIED
Juan Y MarrierRussiaElwin Sharvill UNQUALIFIED
Jennifer C FlosiFranceElwin Sharvill PROPOSAL
Stacey I FollerAustraliaAnna Fali QUALIFIED
Adams O NickaArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois G BriddickFranceIoni Bowcher QUALIFIED
Octavia Q DilliardFranceOnyama Limba QUALIFIED
Mayumi J OldroydRussiaAsiya Javayant UNQUALIFIED
Kadeem Y KolmetzArgentinaIvan Magalhaes RENEWAL
Isabel P InouyeFranceAmy Elsner UNQUALIFIED
Wickens N AmigonItalyXuxue Feng NEW
Frozen Columns
Name
Smith V Doe
Salvatore H Ruta
Clifford T Kusko
Munro R Slusarski
Smith A Vocelka
David B Waycott
Alejandro A Marrier
Aika R Kolmetz
Johnson R Inouye
Izzy P Saylors
Jones G Kusko
Mayumi W Schemmer
David A Kolmetz
Jefferson H Rulapaugh
Arvin W Bowley
Greenwood O Stockham
Mayumi Q Nicka
Salvatore Y Kusko
Nicolas F Bowley
Emily S Doe
Deepesh B Tollner
Misaki Q Kolmetz
Jefferson O Ostrosky
Rodrigues F Ruta
Costa D Paprocki
Tony Z Morasca
Leon B Doe
Deepesh M Shinko
James T Perin
Ivar R Butt
Maria A Paprocki
Jones A Sergi
Deepesh I Albares
Mayumi M Tollner
Francesco P Poquette
Sinclair Z Poquette
Octavia L Bolognia
Mujtaba S Perin
Antonio K Nicka
Silvio A Gaucho
Morrow C Vocelka
Cody Z Rim
Misaki E Morasca
Darci V Albares
Ricardo P Wieser
Aika U Schemmer
Ivar L Shinko
Aruna K Dilliard
Ricardo K Rim
Jefferson B Maclead
IdCountryDate
1000Italy2026-07-18
1001Russia2026-07-30
1002India2026-07-27
1003United Kingdom2026-07-31
1004Italy2026-07-03
1005Germany2026-07-04
1006Argentina2026-07-23
1007Argentina2026-07-22
1008Canada2026-07-02
1009Russia2026-07-08
1010Russia2026-07-09
1011Germany2026-07-14
1012Argentina2026-07-13
1013Brazil2026-07-14
1014Spain2026-07-23
1015Japan2026-07-15
1016Argentina2026-07-05
1017United Kingdom2026-07-23
1018Argentina2026-07-28
1019Argentina2026-07-03
1020France2026-07-08
1021Canada2026-07-15
1022Australia2026-07-25
1023United Kingdom2026-07-28
1024Argentina2026-07-31
1025Russia2026-07-19
1026Canada2026-07-04
1027Russia2026-07-16
1028Australia2026-07-02
1029Australia2026-07-12
1030Japan2026-07-28
1031Australia2026-07-12
1032France2026-07-27
1033United Kingdom2026-07-14
1034United Kingdom2026-07-10
1035Argentina2026-07-16
1036Argentina2026-07-11
1037Brazil2026-07-24
1038Brazil2026-07-18
1039Spain2026-07-11
1040Canada2026-07-17
1041Japan2026-07-25
1042Italy2026-07-14
1043Australia2026-07-19
1044Italy2026-07-31
1045United Kingdom2026-07-27
1046Japan2026-07-18
1047Germany2026-07-26
1048United Kingdom2026-07-29
1049India2026-07-13

On-Demand Data

NameIdCountryDate
Greenwood N Inouye1000United Kingdom2026-07-25
Misaki K Doe1001India2026-07-19
Faith U Saylors1002India2026-07-26
Murillo N Waycott1003Italy2026-07-24
Misaki K Shinko1004France2026-07-17
Ivar B Schemmer1005Australia2026-07-02
Wickens A Dilliard1006Australia2026-07-14
Maria Q Wieser1007Germany2026-07-17
Smith G Venere1008Italy2026-07-02
Juan C Nicka1009Japan2026-07-26
Ashley P Garufi1010Australia2026-07-31
Maisha Z Maclead1011Brazil2026-07-17
Antonio N Caudy1012Germany2026-07-11
Aika Q Figeroa1013Australia2026-07-08
Claire R Paprocki1014Russia2026-07-24
Jeanfrancois R Schemmer1015Russia2026-07-10
Kaitlin B Maclead1016Argentina2026-07-27
Aika G Darakjy1017Canada2026-07-29
James U Marrier1018Germany2026-07-11
Wickens U Whobrey1019Japan2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin E FigeroaJapanAmy Elsner RENEWAL
Cody Y OstroskyIndiaXuxue Feng NEGOTIATION
Faith R MacleadArgentinaOnyama Limba NEGOTIATION
Mujtaba J AlbaresJapanAsiya Javayant NEGOTIATION
Aruna Z GarufiArgentinaIoni Bowcher PROPOSAL
Smith C GauchoJapanXuxue Feng NEGOTIATION
Juan T DilliardSpainAnna Fali RENEWAL
Aika S ChuiJapanIvan Magalhaes UNQUALIFIED
Munro I OstroskyRussiaIoni Bowcher RENEWAL
Smith T PaprockiRussiaStephen Shaw PROPOSAL
Salvatore T GillianSpainOnyama Limba PROPOSAL
Juan X CampainSpainAnna Fali NEW
Isabel R ButtRussiaAmy Elsner RENEWAL
Tony Y NickaArgentinaIoni Bowcher RENEWAL
Juan C FollerAustraliaStephen Shaw PROPOSAL
Jeanfrancois R VenereAustraliaBernardo Dominic QUALIFIED
Aruna R VenereAustraliaStephen Shaw NEGOTIATION
Jones Y WieserItalyElwin Sharvill QUALIFIED
Octavia H GarufiItalyBernardo Dominic NEGOTIATION
Munro F KolmetzUnited KingdomIoni Bowcher RENEWAL
Mayumi R SaylorsRussiaOnyama Limba NEW
Maria A KuskoUnited KingdomXuxue Feng RENEWAL
Kadeem M FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Francesco R KuskoArgentinaIvan Magalhaes NEW
Leon Z SlusarskiRussiaOnyama Limba PROPOSAL
Kaitlin F MacleadArgentinaAmy Elsner NEGOTIATION
Smith R MaletCanadaOnyama Limba PROPOSAL
Ivar K StockhamJapanBernardo Dominic RENEWAL
Ricardo I PerinSpainBernardo Dominic NEGOTIATION
Munro E MacleadJapanXuxue Feng NEW
Francesco R SaylorsAustraliaAmy Elsner NEW
Costa V MorascaFranceStephen Shaw NEGOTIATION
Greenwood V MacleadSpainIvan Magalhaes NEW
Juan D ButtFranceAmy Elsner RENEWAL
Jeanfrancois R IturbideFranceStephen Shaw PROPOSAL
Arvin F FlosiFranceElwin Sharvill NEW
Julie Z DoeItalyIvan Magalhaes QUALIFIED
Maisha W IturbideRussiaStephen Shaw PROPOSAL
Ivar P CampainBrazilIvan Magalhaes PROPOSAL
Antonio U KuskoRussiaBernardo Dominic 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>