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
Jefferson B RoysterGermanyOnyama Limba RENEWAL
Julie S KolmetzRussiaAmy Elsner QUALIFIED
James H GauchoIndiaElwin Sharvill NEGOTIATION
Leja K NestleGermanyAnna Fali NEW
Cody U FollerIndiaAsiya Javayant NEGOTIATION
Faith W ChuiIndiaAnna Fali RENEWAL
James M ButtCanadaStephen Shaw NEGOTIATION
Salvatore M WhobreyUnited KingdomAmy Elsner NEGOTIATION
Maisha Q GarufiJapanXuxue Feng QUALIFIED
Octavia B RimRussiaStephen Shaw QUALIFIED
Nicolas H PaprockiUnited KingdomXuxue Feng PROPOSAL
Murillo C CaudyItalyXuxue Feng UNQUALIFIED
Kadeem Y AlbaresArgentinaIvan Magalhaes QUALIFIED
Leja T PaprockiBrazilXuxue Feng UNQUALIFIED
Aditya C InouyeGermanyAnna Fali NEGOTIATION
Jones L ChuiGermanyOnyama Limba NEW
Ashley O ChuiRussiaOnyama Limba UNQUALIFIED
Deepesh C ShinkoArgentinaIoni Bowcher QUALIFIED
James Q GlickGermanyAsiya Javayant NEW
Wickens G DoeFranceAmy Elsner RENEWAL
Munro U RutaFranceBernardo Dominic RENEWAL
Sinclair D PoquetteGermanyOnyama Limba NEW
Maria M BologniaBrazilAmy Elsner UNQUALIFIED
Sinclair J WaycottGermanyIoni Bowcher UNQUALIFIED
Julie U NestleFranceElwin Sharvill UNQUALIFIED
Jennifer H SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Chavez N SergiCanadaIvan Magalhaes NEW
Mayumi L GillianArgentinaIoni Bowcher PROPOSAL
Leon G RoysterCanadaAmy Elsner NEW
Octavia U SaylorsGermanyOnyama Limba PROPOSAL
James A TollnerGermanyOnyama Limba NEW
Johnson Y MorascaAustraliaAmy Elsner QUALIFIED
Jones P RulapaughJapanOnyama Limba PROPOSAL
James I MorascaGermanyIvan Magalhaes NEGOTIATION
Cody L WaycottUnited KingdomXuxue Feng NEGOTIATION
Ivar X CampainJapanAsiya Javayant QUALIFIED
Wickens V MaletRussiaIoni Bowcher QUALIFIED
Mayumi K GauchoIndiaElwin Sharvill PROPOSAL
Maisha B BriddickSpainIvan Magalhaes NEW
Faith V GauchoArgentinaAsiya Javayant UNQUALIFIED
Octavia G AlbaresRussiaIvan Magalhaes RENEWAL
Juan M WieserItalyIvan Magalhaes NEGOTIATION
Rodrigues I RutaGermanyAsiya Javayant RENEWAL
Kadeem P CaudyFranceBernardo Dominic NEGOTIATION
Leja D MarrierAustraliaElwin Sharvill PROPOSAL
Izzy T RulapaughFranceStephen Shaw QUALIFIED
Juan S DarakjyIndiaAnna Fali RENEWAL
Ivar S SlusarskiSpainIoni Bowcher PROPOSAL
Aruna K BologniaGermanyXuxue Feng QUALIFIED
Aika O SlusarskiItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood D AmigonIndiaBernardo Dominic PROPOSAL
Antonio Y RulapaughAustraliaOnyama Limba PROPOSAL
Smith Y RimFranceXuxue Feng NEW
Octavia Q SlusarskiBrazilIoni Bowcher PROPOSAL
Jennifer K NickaSpainXuxue Feng RENEWAL
Octavia Z MaletFranceAmy Elsner PROPOSAL
Octavia O GarufiAustraliaIoni Bowcher UNQUALIFIED
Silvio S DarakjyFranceElwin Sharvill UNQUALIFIED
Maisha K BologniaItalyOnyama Limba RENEWAL
Claire B RulapaughFranceAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Y ShinkoBrazil2026-07-08Commercial Press PROPOSAL63Stephen Shaw
1001Alejandro T MorascaArgentina2026-06-29Chanay, Jeffrey A Esq RENEWAL21Asiya Javayant
1002Kaitlin L ButtArgentina2026-06-18Rousseaux, Michael Esq PROPOSAL58Ivan Magalhaes
1003Jeanfrancois W OldroydJapan2026-06-25Chapman, Ross E Esq NEW6Amy Elsner
1004Ashley E ButtArgentina2026-06-20Printing Dimensions NEW96Stephen Shaw
1005Adams W CaudyArgentina2026-07-02King, Christopher A Esq PROPOSAL93Amy Elsner
1006Leja T WhobreyRussia2026-07-05Morlong Associates NEGOTIATION54Stephen Shaw
1007Murillo V MarrierBrazil2026-07-01Buckley Miller Wright PROPOSAL32Stephen Shaw
1008Alejandro P OstroskyArgentina2026-06-18Rousseaux, Michael Esq RENEWAL56Asiya Javayant
1009Jennifer Y ShinkoAustralia2026-06-19Chapman, Ross E Esq RENEWAL82Ivan Magalhaes
1010Murillo X RulapaughJapan2026-07-07Chanay, Jeffrey A Esq NEGOTIATION41Anna Fali
1011Faith M AmigonAustralia2026-06-14Chemel, James L Cpa UNQUALIFIED93Anna Fali
1012Ashley M BriddickBrazil2026-06-15Commercial Press RENEWAL52Ioni Bowcher
1013Misaki R BowleyIndia2026-07-07Chanay, Jeffrey A Esq RENEWAL76Onyama Limba
1014Leon D RutaUnited Kingdom2026-07-01Printing Dimensions NEW14Bernardo Dominic
1015Wickens I BriddickItaly2026-07-07Benton, John B Jr RENEWAL92Amy Elsner
1016Costa I MaletGermany2026-06-17Rousseaux, Michael Esq RENEWAL12Bernardo Dominic
1017Cody T NickaIndia2026-06-18Truhlar And Truhlar Attys QUALIFIED75Onyama Limba
1018Murillo K StensethSpain2026-07-04Chemel, James L Cpa NEW91Anna Fali
1019Isabel A AmigonJapan2026-06-21Chanay, Jeffrey A Esq NEGOTIATION31Asiya Javayant
1020Aika K GillianGermany2026-06-23Rangoni Of Florence PROPOSAL39Amy Elsner
1021Deepesh O InouyeItaly2026-06-20Rangoni Of Florence PROPOSAL75Amy Elsner
1022Jones E NestleUnited Kingdom2026-07-06Printing Dimensions RENEWAL6Elwin Sharvill
1023Jefferson V KolmetzJapan2026-06-18King, Christopher A Esq PROPOSAL88Ioni Bowcher
1024Adams R FigeroaIndia2026-06-12Morlong Associates NEW78Elwin Sharvill
1025Emily N TollnerArgentina2026-06-22Chanay, Jeffrey A Esq RENEWAL73Ivan Magalhaes
1026Munro H OstroskyAustralia2026-06-18Morlong Associates PROPOSAL7Stephen Shaw
1027Jennifer J SaylorsJapan2026-07-09Truhlar And Truhlar Attys NEW90Stephen Shaw
1028Wickens A NestleSpain2026-07-07Chapman, Ross E Esq NEW58Anna Fali
1029James P FollerItaly2026-06-13Chemel, James L Cpa PROPOSAL6Ioni Bowcher
1030Nicolas Y KuskoGermany2026-06-26Truhlar And Truhlar Attys NEW84Stephen Shaw
1031Greenwood C PoquetteJapan2026-07-05Rangoni Of Florence RENEWAL52Elwin Sharvill
1032Faith O DoeRussia2026-07-07Feltz Printing Service PROPOSAL66Elwin Sharvill
1033Wickens N SlusarskiUnited Kingdom2026-06-27Dorl, James J Esq QUALIFIED99Amy Elsner
1034Ashley Q PerinArgentina2026-06-15Commercial Press NEW5Stephen Shaw
1035Munro X VocelkaSpain2026-06-12Chemel, James L Cpa UNQUALIFIED81Onyama Limba
1036Adams L OstroskyRussia2026-07-06Feiner Bros NEW94Amy Elsner
1037Rodrigues A IturbideArgentina2026-06-23King, Christopher A Esq QUALIFIED14Ioni Bowcher
1038Jeanfrancois W SaylorsCanada2026-07-02Rousseaux, Michael Esq NEGOTIATION16Ivan Magalhaes
1039Aruna T RulapaughIndia2026-06-20Rousseaux, Michael Esq UNQUALIFIED91Anna Fali
1040Silvio V StockhamAustralia2026-06-15Benton, John B Jr RENEWAL21Amy Elsner
1041Deepesh B MacleadJapan2026-06-22Printing Dimensions PROPOSAL51Ioni Bowcher
1042Jefferson N GauchoAustralia2026-07-10Dorl, James J Esq RENEWAL97Stephen Shaw
1043Arvin Q DoeCanada2026-07-04Rangoni Of Florence NEGOTIATION29Ioni Bowcher
1044Jennifer J MacleadBrazil2026-06-11Rousseaux, Michael Esq UNQUALIFIED11Xuxue Feng
1045David L FigeroaBrazil2026-07-04Rangoni Of Florence UNQUALIFIED14Anna Fali
1046Maria F PoquetteAustralia2026-06-28Rangoni Of Florence PROPOSAL34Asiya Javayant
1047Mujtaba S SlusarskiAustralia2026-06-17Dorl, James J Esq NEW93Asiya Javayant
1048Maria N GlickSpain2026-06-16Chapman, Ross E Esq NEGOTIATION33Bernardo Dominic
1049Sinclair F BologniaRussia2026-07-02Feiner Bros NEW25Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Julie L FerenczRussiaElwin Sharvill PROPOSAL
Ashley L OldroydIndiaElwin Sharvill NEW
Sinclair I BowleyArgentinaAmy Elsner QUALIFIED
Greenwood B DilliardIndiaXuxue Feng RENEWAL
Tony P NickaGermanyXuxue Feng NEGOTIATION
Jones N BriddickItalyElwin Sharvill UNQUALIFIED
Kadeem D DoeFranceIvan Magalhaes RENEWAL
Sinclair E SlusarskiJapanXuxue Feng NEW
Izzy N SlusarskiGermanyIoni Bowcher NEGOTIATION
Isabel T MorascaSpainElwin Sharvill PROPOSAL
Isabel K MaletUnited KingdomAnna Fali NEGOTIATION
Greenwood S ButtJapanAmy Elsner RENEWAL
Wickens M CampainSpainAnna Fali NEW
Darci T WaycottFranceStephen Shaw RENEWAL
Aditya H VocelkaArgentinaIvan Magalhaes QUALIFIED
Misaki I BriddickBrazilElwin Sharvill UNQUALIFIED
Antonio R GillianIndiaIoni Bowcher RENEWAL
Mujtaba D BriddickJapanIvan Magalhaes NEW
Jefferson G GarufiBrazilStephen Shaw PROPOSAL
Sinclair Q VocelkaGermanyAmy Elsner UNQUALIFIED
Misaki A ShinkoAustraliaIvan Magalhaes NEGOTIATION
Wickens W KolmetzSpainAnna Fali QUALIFIED
Kaitlin I WhobreyItalyIoni Bowcher RENEWAL
Ricardo S ButtFranceAsiya Javayant NEGOTIATION
Greenwood U StockhamUnited KingdomOnyama Limba UNQUALIFIED
Jennifer V FerenczGermanyAnna Fali PROPOSAL
Wickens R CaldareraArgentinaBernardo Dominic UNQUALIFIED
Wickens Y DarakjyIndiaStephen Shaw NEGOTIATION
Stacey K GlickItalyAnna Fali QUALIFIED
Cody T TollnerCanadaIoni Bowcher RENEWAL
Francesco F WieserUnited KingdomAsiya Javayant NEW
Maria Y FerenczSpainOnyama Limba UNQUALIFIED
Jefferson S BriddickItalyAsiya Javayant QUALIFIED
Adams D BriddickCanadaAnna Fali QUALIFIED
Cody I FlosiAustraliaAmy Elsner PROPOSAL
Mayumi L OldroydJapanBernardo Dominic RENEWAL
Greenwood T TollnerCanadaAsiya Javayant NEW
Jones D ChuiIndiaBernardo Dominic PROPOSAL
Aruna L KuskoItalyAsiya Javayant NEW
James V InouyeUnited KingdomStephen Shaw PROPOSAL
Munro J ButtRussiaBernardo Dominic NEW
Octavia L InouyeItalyXuxue Feng QUALIFIED
Munro J NickaArgentinaElwin Sharvill NEW
Deepesh X SchemmerBrazilAmy Elsner RENEWAL
Kaitlin X GlickAustraliaStephen Shaw NEW
Arvin B ShinkoSpainStephen Shaw RENEWAL
Aruna M DarakjyUnited KingdomXuxue Feng NEW
Smith Q OldroydCanadaOnyama Limba QUALIFIED
Leon R WhobreyItalyBernardo Dominic UNQUALIFIED
Aditya R VenereArgentinaIoni Bowcher PROPOSAL
Frozen Columns
Name
Smith B Glick
Johnson O Sergi
Costa G Kusko
Salvatore L Malet
Ivar Z Sergi
Maisha S Wieser
Jones C Inouye
Jefferson A Flosi
Ivar T Iturbide
Clifford I Slusarski
Nicolas Z Caudy
Aditya B Caudy
Adams D Foller
Clifford N Flosi
Izzy N Marrier
Juan D Slusarski
Mujtaba E Nicka
Rodrigues U Inouye
Aika T Flosi
Costa U Chui
Mayumi S Glick
Smith N Flosi
Ashley S Sergi
Maria R Darakjy
Tony X Kolmetz
Silvio H Figeroa
Leon I Vocelka
Stacey T Shinko
Ricardo V Tollner
Greenwood D Nestle
Tony S Stenseth
Munro U Poquette
Aditya P Gillian
Deepesh P Chui
Alejandro Y Gaucho
Stacey V Kusko
Rodrigues I Rim
Adams B Slusarski
Izzy W Flosi
Tony A Iturbide
Sinclair U Schemmer
Nicolas W Oldroyd
Clifford F Perin
Silvio E Briddick
Murillo I Kusko
Emily F Schemmer
Salvatore J Perin
Leja K Whobrey
Adams N Albares
Antonio A Maclead
IdCountryDate
1000Australia2026-06-17
1001Canada2026-06-27
1002Japan2026-06-18
1003Argentina2026-06-24
1004India2026-07-08
1005France2026-07-04
1006Russia2026-06-19
1007India2026-07-08
1008Italy2026-07-07
1009Germany2026-07-04
1010India2026-06-16
1011India2026-07-03
1012Canada2026-06-29
1013Argentina2026-06-19
1014United Kingdom2026-06-22
1015Spain2026-07-09
1016France2026-07-08
1017France2026-07-08
1018Germany2026-06-14
1019Russia2026-07-05
1020Argentina2026-06-11
1021Russia2026-06-13
1022Russia2026-06-24
1023Spain2026-06-12
1024Italy2026-06-25
1025Germany2026-07-03
1026Russia2026-06-14
1027India2026-06-13
1028Germany2026-06-30
1029Japan2026-07-04
1030Australia2026-07-02
1031Russia2026-06-11
1032United Kingdom2026-06-13
1033United Kingdom2026-06-22
1034Brazil2026-07-08
1035Australia2026-06-27
1036France2026-07-08
1037Japan2026-06-15
1038France2026-07-05
1039Japan2026-06-27
1040France2026-07-02
1041Russia2026-06-18
1042Brazil2026-07-03
1043India2026-06-12
1044Canada2026-06-24
1045Spain2026-06-17
1046Italy2026-06-23
1047Russia2026-06-23
1048Russia2026-06-26
1049Argentina2026-06-13

On-Demand Data

NameIdCountryDate
Greenwood O Slusarski1000Spain2026-06-19
Nicolas R Wieser1001Australia2026-06-21
Chavez R Amigon1002Italy2026-07-09
Stacey C Wieser1003Germany2026-06-12
Munro T Bowley1004Brazil2026-06-16
Maria A Royster1005Canada2026-07-02
Misaki N Maclead1006United Kingdom2026-06-14
Munro U Gaucho1007France2026-06-11
Deepesh A Darakjy1008Spain2026-06-14
Salvatore C Gillian1009Russia2026-06-15
Mayumi R Ferencz1010Australia2026-06-26
Faith R Sergi1011Argentina2026-07-09
Johnson N Shinko1012Australia2026-06-16
Jeanfrancois Y Schemmer1013Canada2026-06-17
Francesco V Tollner1014Spain2026-06-19
Octavia L Whobrey1015Japan2026-07-07
Cody O Stenseth1016Australia2026-06-20
Misaki F Shinko1017France2026-07-04
Emily X Paprocki1018Australia2026-06-28
Stacey R Kusko1019India2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin H FlosiFranceElwin Sharvill NEGOTIATION
Izzy K DarakjyRussiaAnna Fali NEW
Leja U CaudyGermanyAmy Elsner NEGOTIATION
Cody Q WieserArgentinaIvan Magalhaes RENEWAL
Greenwood G OldroydGermanyIoni Bowcher QUALIFIED
Cody H GillianJapanAsiya Javayant NEW
Costa W StensethRussiaIvan Magalhaes UNQUALIFIED
Clifford L VenereSpainAsiya Javayant PROPOSAL
Johnson M SchemmerIndiaOnyama Limba RENEWAL
Francesco M PaprockiArgentinaXuxue Feng PROPOSAL
Clifford N IturbideIndiaStephen Shaw NEGOTIATION
David J SaylorsCanadaAnna Fali NEW
Salvatore I MaletAustraliaAsiya Javayant NEW
Costa Z NestleIndiaAsiya Javayant RENEWAL
Greenwood X AmigonItalyIvan Magalhaes RENEWAL
Jones P GarufiUnited KingdomElwin Sharvill NEW
Kaitlin I CampainCanadaXuxue Feng NEGOTIATION
Salvatore R PerinJapanAsiya Javayant NEGOTIATION
Deepesh R WieserUnited KingdomIoni Bowcher RENEWAL
Darci Q VenereAustraliaOnyama Limba QUALIFIED
Wickens F AlbaresBrazilIvan Magalhaes NEGOTIATION
Leon U BriddickSpainIvan Magalhaes RENEWAL
Francesco L ButtArgentinaAmy Elsner NEGOTIATION
Misaki V FlosiUnited KingdomElwin Sharvill QUALIFIED
Wickens K CaldareraRussiaBernardo Dominic QUALIFIED
Julie P MacleadUnited KingdomOnyama Limba QUALIFIED
Rodrigues Z WieserIndiaElwin Sharvill QUALIFIED
Stacey L BriddickIndiaBernardo Dominic UNQUALIFIED
Jennifer I SaylorsCanadaAnna Fali QUALIFIED
Ricardo M AlbaresSpainIvan Magalhaes NEGOTIATION
Juan S SlusarskiItalyIoni Bowcher QUALIFIED
Claire R SlusarskiItalyIvan Magalhaes PROPOSAL
Mujtaba Y DilliardItalyBernardo Dominic NEGOTIATION
Arvin R MaletJapanAsiya Javayant NEW
Leon J KuskoUnited KingdomIvan Magalhaes QUALIFIED
James L PoquetteSpainIvan Magalhaes UNQUALIFIED
Adams F DilliardJapanIoni Bowcher NEW
Aika M VenereBrazilAmy Elsner UNQUALIFIED
Cody V InouyeRussiaOnyama Limba PROPOSAL
Jeanfrancois H FollerCanadaIoni Bowcher 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>