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
Jones S DoeUnited KingdomXuxue Feng RENEWAL
Izzy C FollerBrazilStephen Shaw NEW
Jones N ButtArgentinaIvan Magalhaes UNQUALIFIED
Isabel X DilliardItalyIoni Bowcher RENEWAL
Chavez R RutaFranceIvan Magalhaes QUALIFIED
Kadeem Y OstroskyArgentinaAsiya Javayant RENEWAL
Jennifer G CaudyItalyAnna Fali NEGOTIATION
Mayumi R ShinkoArgentinaAmy Elsner UNQUALIFIED
Aika K SaylorsCanadaOnyama Limba NEW
Leon T NickaArgentinaAnna Fali RENEWAL
Mayumi I GlickArgentinaAsiya Javayant UNQUALIFIED
Faith P BowleyUnited KingdomAsiya Javayant NEGOTIATION
Claire C GarufiRussiaIoni Bowcher NEW
Murillo K VenereUnited KingdomAnna Fali NEGOTIATION
Maisha I InouyeCanadaAnna Fali QUALIFIED
Emily Q WieserFranceIvan Magalhaes UNQUALIFIED
Jefferson E WaycottRussiaAsiya Javayant PROPOSAL
Octavia B CaldareraSpainIvan Magalhaes NEGOTIATION
Rodrigues N MarrierFranceElwin Sharvill UNQUALIFIED
Leon J MacleadJapanOnyama Limba QUALIFIED
Nicolas X StensethAustraliaBernardo Dominic QUALIFIED
Stacey G FollerBrazilAnna Fali RENEWAL
Maisha O StockhamRussiaStephen Shaw UNQUALIFIED
Tony N ShinkoJapanAsiya Javayant NEW
Munro F WieserAustraliaXuxue Feng RENEWAL
Emily F ButtArgentinaIvan Magalhaes NEGOTIATION
Maria B BowleyCanadaElwin Sharvill QUALIFIED
Deepesh J GillianGermanyAsiya Javayant RENEWAL
Claire G WaycottSpainAmy Elsner NEGOTIATION
Salvatore C OstroskyIndiaOnyama Limba UNQUALIFIED
Adams J CaudyItalyElwin Sharvill RENEWAL
Aika F WieserCanadaIoni Bowcher RENEWAL
Isabel V ChuiSpainElwin Sharvill QUALIFIED
Jeanfrancois G KuskoUnited KingdomAmy Elsner RENEWAL
Claire A MarrierItalyOnyama Limba NEW
Mayumi P VenereAustraliaAsiya Javayant UNQUALIFIED
Aruna X KuskoFranceAnna Fali NEW
Jefferson J FigeroaArgentinaAsiya Javayant UNQUALIFIED
Silvio H VocelkaCanadaIvan Magalhaes NEGOTIATION
Mayumi L MacleadAustraliaElwin Sharvill UNQUALIFIED
Adams F MacleadCanadaXuxue Feng NEGOTIATION
Izzy D TollnerAustraliaAmy Elsner UNQUALIFIED
Claire Q KolmetzGermanyAsiya Javayant RENEWAL
Izzy E KolmetzCanadaStephen Shaw RENEWAL
Murillo A WieserFranceOnyama Limba NEW
Sinclair X GlickItalyXuxue Feng UNQUALIFIED
Sinclair A ChuiJapanAnna Fali PROPOSAL
Octavia J DarakjyJapanAnna Fali PROPOSAL
Kaitlin W AmigonIndiaIvan Magalhaes RENEWAL
Mayumi H PoquetteUnited KingdomBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas N WieserCanadaIvan Magalhaes QUALIFIED
Leon R MarrierItalyElwin Sharvill NEGOTIATION
Leja Q OstroskyItalyXuxue Feng UNQUALIFIED
Octavia Z VenereFranceIoni Bowcher QUALIFIED
Wickens M DilliardGermanyXuxue Feng QUALIFIED
Jeanfrancois W GillianRussiaAsiya Javayant QUALIFIED
Aruna Y TollnerSpainElwin Sharvill PROPOSAL
Chavez H SaylorsJapanBernardo Dominic NEGOTIATION
Octavia F MaletIndiaAnna Fali QUALIFIED
Ashley X TollnerIndiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie L WieserSpain2026-08-12Feiner Bros QUALIFIED73Bernardo Dominic
1001Mujtaba C BowleyIndia2026-07-31Truhlar And Truhlar Attys UNQUALIFIED14Elwin Sharvill
1002Deepesh H RimFrance2026-08-04Benton, John B Jr UNQUALIFIED94Bernardo Dominic
1003Smith M WhobreyAustralia2026-08-05Chemel, James L Cpa QUALIFIED19Ivan Magalhaes
1004Stacey T StensethGermany2026-07-21Rousseaux, Michael Esq NEW90Ivan Magalhaes
1005Stacey F WaycottCanada2026-07-31Feltz Printing Service UNQUALIFIED18Ioni Bowcher
1006Isabel Y StockhamItaly2026-07-15Benton, John B Jr NEGOTIATION97Asiya Javayant
1007James U SchemmerRussia2026-08-07Chanay, Jeffrey A Esq NEGOTIATION28Ivan Magalhaes
1008Darci R StockhamJapan2026-07-20Rousseaux, Michael Esq NEGOTIATION15Stephen Shaw
1009Alejandro F AmigonCanada2026-07-24Chemel, James L Cpa QUALIFIED79Elwin Sharvill
1010Ashley L CaldareraIndia2026-08-13Truhlar And Truhlar Attys QUALIFIED47Ivan Magalhaes
1011Ashley F CaldareraUnited Kingdom2026-07-22Chapman, Ross E Esq PROPOSAL59Xuxue Feng
1012Mujtaba Z SchemmerAustralia2026-07-27Morlong Associates NEGOTIATION46Asiya Javayant
1013Misaki G GarufiCanada2026-07-29Printing Dimensions NEGOTIATION91Elwin Sharvill
1014Deepesh H StensethArgentina2026-07-17Chapman, Ross E Esq NEW13Xuxue Feng
1015Munro V GillianRussia2026-08-11Truhlar And Truhlar Attys RENEWAL10Onyama Limba
1016Alejandro W VocelkaFrance2026-08-04Benton, John B Jr NEW16Amy Elsner
1017Tony J MorascaGermany2026-07-27King, Christopher A Esq NEW97Bernardo Dominic
1018Alejandro G StensethRussia2026-08-04Morlong Associates UNQUALIFIED73Elwin Sharvill
1019Mayumi L AmigonJapan2026-08-03Commercial Press NEW4Bernardo Dominic
1020Ricardo F SergiUnited Kingdom2026-08-04Rousseaux, Michael Esq NEW21Asiya Javayant
1021Greenwood E AlbaresGermany2026-07-26Morlong Associates PROPOSAL56Asiya Javayant
1022Ashley Y MorascaBrazil2026-07-30Benton, John B Jr PROPOSAL9Stephen Shaw
1023Jones F KolmetzFrance2026-08-08Chemel, James L Cpa UNQUALIFIED44Amy Elsner
1024Ricardo Q MarrierIndia2026-08-12King, Christopher A Esq PROPOSAL99Xuxue Feng
1025Chavez A VocelkaUnited Kingdom2026-07-16Printing Dimensions NEGOTIATION49Stephen Shaw
1026Leon Q BriddickGermany2026-07-29Buckley Miller Wright RENEWAL5Amy Elsner
1027Isabel V WieserCanada2026-08-06Commercial Press UNQUALIFIED16Elwin Sharvill
1028Antonio W PerinAustralia2026-08-01Chemel, James L Cpa NEGOTIATION97Ivan Magalhaes
1029Kadeem M MarrierBrazil2026-07-30Truhlar And Truhlar Attys PROPOSAL6Xuxue Feng
1030Alejandro K KuskoIndia2026-07-17Feltz Printing Service UNQUALIFIED48Ivan Magalhaes
1031Costa M CaudyCanada2026-08-05Dorl, James J Esq NEGOTIATION17Elwin Sharvill
1032Juan T SaylorsSpain2026-07-20Feltz Printing Service RENEWAL97Anna Fali
1033Sinclair H RulapaughCanada2026-08-02King, Christopher A Esq UNQUALIFIED24Onyama Limba
1034Arvin K StockhamBrazil2026-07-29Feltz Printing Service NEW38Ivan Magalhaes
1035Mayumi D MacleadArgentina2026-08-09Rousseaux, Michael Esq PROPOSAL63Stephen Shaw
1036Greenwood W DilliardRussia2026-07-23Buckley Miller Wright NEGOTIATION98Onyama Limba
1037Misaki L GarufiArgentina2026-08-01Rangoni Of Florence QUALIFIED12Bernardo Dominic
1038Ashley B NestleFrance2026-07-29Printing Dimensions NEGOTIATION5Elwin Sharvill
1039Faith H FerenczUnited Kingdom2026-07-31Rousseaux, Michael Esq PROPOSAL47Xuxue Feng
1040Kadeem C BowleySpain2026-07-30Dorl, James J Esq QUALIFIED30Anna Fali
1041Ivar U DarakjyBrazil2026-07-24Commercial Press NEGOTIATION88Anna Fali
1042Francesco I InouyeAustralia2026-07-28Morlong Associates RENEWAL3Bernardo Dominic
1043Faith H InouyeBrazil2026-08-11Dorl, James J Esq NEW43Asiya Javayant
1044Misaki F CampainSpain2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED88Ivan Magalhaes
1045Ivar E SergiIndia2026-07-31Feiner Bros RENEWAL30Asiya Javayant
1046Antonio W DilliardBrazil2026-08-07Chanay, Jeffrey A Esq NEW48Anna Fali
1047Maisha C PoquetteUnited Kingdom2026-07-17Dorl, James J Esq NEGOTIATION27Asiya Javayant
1048Arvin W MaletUnited Kingdom2026-07-15Chapman, Ross E Esq QUALIFIED61Onyama Limba
1049Mujtaba K BriddickRussia2026-08-11Feiner Bros NEW37Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Arvin G FigeroaJapanOnyama Limba NEW
Aditya C StockhamJapanXuxue Feng RENEWAL
Jefferson C SlusarskiUnited KingdomAsiya Javayant RENEWAL
Antonio B CaudyItalyIvan Magalhaes NEGOTIATION
Mujtaba E DoeRussiaOnyama Limba UNQUALIFIED
Ivar Z CaldareraItalyIoni Bowcher NEGOTIATION
Francesco V StockhamCanadaAnna Fali QUALIFIED
Aditya V OldroydArgentinaOnyama Limba NEW
Isabel T BriddickFranceIvan Magalhaes PROPOSAL
Izzy Y CampainAustraliaAnna Fali QUALIFIED
David S RulapaughItalyIoni Bowcher NEW
Silvio G VocelkaAustraliaAmy Elsner NEW
Silvio I MaletRussiaXuxue Feng PROPOSAL
Faith A GauchoArgentinaXuxue Feng NEW
Jeanfrancois Y StensethIndiaIoni Bowcher QUALIFIED
Jefferson N MarrierJapanIoni Bowcher NEW
Aruna I WhobreyRussiaElwin Sharvill QUALIFIED
Munro Q RutaSpainXuxue Feng RENEWAL
Maria W SaylorsJapanOnyama Limba UNQUALIFIED
Misaki P NestleCanadaElwin Sharvill UNQUALIFIED
Wickens P BriddickSpainXuxue Feng NEGOTIATION
Salvatore B PerinUnited KingdomElwin Sharvill NEGOTIATION
Munro D VocelkaSpainAmy Elsner QUALIFIED
Kadeem H WhobreyAustraliaOnyama Limba RENEWAL
Jennifer C BriddickCanadaBernardo Dominic RENEWAL
Julie D FigeroaFranceIvan Magalhaes QUALIFIED
Arvin D OstroskyUnited KingdomStephen Shaw NEW
Rodrigues L WaycottCanadaAsiya Javayant PROPOSAL
Chavez M WhobreyUnited KingdomOnyama Limba PROPOSAL
Aruna O CampainGermanyXuxue Feng UNQUALIFIED
Arvin F MaletGermanyAmy Elsner NEW
Isabel O PoquetteBrazilAmy Elsner NEGOTIATION
Munro A IturbideItalyAsiya Javayant UNQUALIFIED
Francesco J ShinkoSpainElwin Sharvill NEW
Kadeem I CampainRussiaAsiya Javayant NEGOTIATION
Greenwood N AlbaresJapanIoni Bowcher NEGOTIATION
Mayumi P FerenczBrazilStephen Shaw NEW
Arvin G RulapaughIndiaAnna Fali QUALIFIED
Aika I VocelkaRussiaIoni Bowcher QUALIFIED
Silvio E DilliardRussiaIoni Bowcher UNQUALIFIED
Jennifer Q NickaIndiaOnyama Limba NEW
Kadeem S SchemmerArgentinaStephen Shaw QUALIFIED
Julie F ButtUnited KingdomIoni Bowcher NEW
Ivar Q BriddickIndiaStephen Shaw PROPOSAL
Claire G IturbideBrazilOnyama Limba NEW
Deepesh Y MorascaRussiaAsiya Javayant NEW
Mayumi N BologniaArgentinaBernardo Dominic NEW
Leon F NestleUnited KingdomAmy Elsner PROPOSAL
Aika S DoeArgentinaOnyama Limba NEGOTIATION
Isabel C DoeAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Leja M Kolmetz
Claire B Kusko
Clifford P Oldroyd
Ricardo V Gillian
Munro T Vocelka
Maria Z Briddick
Leja R Rulapaugh
Faith A Gaucho
Mayumi S Gillian
Jones B Saylors
Nicolas N Darakjy
Adams M Royster
Ivar E Paprocki
David M Shinko
James J Malet
Octavia P Flosi
Octavia H Stenseth
Arvin J Slusarski
Leon M Amigon
Octavia A Malet
Kadeem C Gaucho
Maisha Q Flosi
Jefferson P Kolmetz
Antonio P Glick
Adams L Foller
Ashley T Flosi
Silvio A Shinko
Costa R Nestle
Johnson S Bowley
Sinclair U Vocelka
Jefferson N Ferencz
Munro P Poquette
David K Figeroa
Alejandro Z Slusarski
Wickens O Waycott
Isabel U Slusarski
Morrow T Caudy
Jones W Shinko
Faith J Ruta
Rodrigues F Whobrey
James P Wieser
Antonio R Slusarski
Munro H Ruta
Emily P Gillian
Aika X Butt
Jones W Kolmetz
Chavez T Sergi
Aruna W Malet
Alejandro T Figeroa
Jefferson H Rim
IdCountryDate
1000Argentina2026-08-06
1001Canada2026-07-18
1002United Kingdom2026-08-02
1003Argentina2026-08-13
1004Italy2026-08-05
1005United Kingdom2026-07-17
1006Spain2026-08-01
1007Australia2026-07-25
1008India2026-08-03
1009Japan2026-07-15
1010France2026-08-05
1011United Kingdom2026-08-05
1012Canada2026-07-24
1013France2026-08-02
1014Argentina2026-07-30
1015Australia2026-07-15
1016Spain2026-07-29
1017Brazil2026-08-01
1018Japan2026-07-18
1019Italy2026-08-07
1020Germany2026-07-18
1021Italy2026-08-06
1022Canada2026-07-20
1023Australia2026-08-11
1024France2026-07-16
1025Germany2026-08-10
1026Russia2026-08-03
1027India2026-08-02
1028India2026-08-12
1029Spain2026-08-02
1030Japan2026-08-09
1031France2026-07-25
1032Italy2026-07-20
1033Australia2026-07-22
1034Brazil2026-08-07
1035India2026-07-31
1036France2026-08-12
1037Russia2026-07-19
1038Spain2026-07-27
1039Russia2026-07-22
1040Brazil2026-07-29
1041France2026-07-27
1042Italy2026-08-01
1043Germany2026-07-26
1044United Kingdom2026-07-15
1045Canada2026-08-01
1046Italy2026-08-06
1047India2026-07-28
1048Brazil2026-08-10
1049Brazil2026-08-09

On-Demand Data

NameIdCountryDate
Kadeem K Saylors1000Japan2026-07-22
David W Ruta1001United Kingdom2026-07-25
Leja A Morasca1002Japan2026-07-28
Kaitlin J Bolognia1003Germany2026-07-21
Stacey S Ruta1004Argentina2026-07-19
Jeanfrancois L Malet1005Canada2026-07-30
Rodrigues S Venere1006United Kingdom2026-07-21
Wickens I Kolmetz1007Italy2026-07-30
Darci C Stenseth1008France2026-07-23
Murillo N Malet1009India2026-07-30
Emily V Caudy1010Brazil2026-07-28
Aika G Perin1011India2026-08-02
Greenwood C Briddick1012Argentina2026-07-21
James L Chui1013Germany2026-07-30
Antonio W Dilliard1014United Kingdom2026-07-22
Deepesh G Tollner1015Canada2026-07-19
Nicolas C Kusko1016India2026-07-15
Aditya J Butt1017India2026-07-25
Maria C Gaucho1018Argentina2026-07-16
Juan T Whobrey1019Italy2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin A GauchoCanadaIoni Bowcher NEW
Munro M DarakjyJapanXuxue Feng NEW
Misaki W FlosiGermanyXuxue Feng RENEWAL
Kaitlin G FollerBrazilOnyama Limba PROPOSAL
Misaki T WieserSpainOnyama Limba QUALIFIED
Sinclair B SergiUnited KingdomAnna Fali NEGOTIATION
Leja X ButtCanadaElwin Sharvill RENEWAL
Wickens S MaletJapanAmy Elsner PROPOSAL
Francesco N NickaItalyXuxue Feng QUALIFIED
Cody C RutaRussiaAmy Elsner NEW
Jeanfrancois Y AmigonArgentinaIoni Bowcher PROPOSAL
Darci X MaletUnited KingdomBernardo Dominic PROPOSAL
Faith T CampainGermanyElwin Sharvill NEGOTIATION
Isabel P FlosiIndiaElwin Sharvill NEGOTIATION
Julie W NickaArgentinaBernardo Dominic UNQUALIFIED
Cody H GarufiAustraliaElwin Sharvill NEW
Kadeem J SaylorsItalyXuxue Feng UNQUALIFIED
Rodrigues W SlusarskiUnited KingdomStephen Shaw PROPOSAL
Darci R BriddickArgentinaAmy Elsner UNQUALIFIED
Jennifer C IturbideFranceAmy Elsner QUALIFIED
Smith E CampainFranceIvan Magalhaes NEGOTIATION
Jennifer V GarufiArgentinaElwin Sharvill NEW
Jefferson L SchemmerAustraliaElwin Sharvill UNQUALIFIED
Jefferson P CaldareraJapanAmy Elsner PROPOSAL
Isabel N WhobreySpainXuxue Feng QUALIFIED
James D ChuiGermanyAnna Fali PROPOSAL
Rodrigues G ButtIndiaAmy Elsner QUALIFIED
Ashley Y ChuiItalyBernardo Dominic UNQUALIFIED
Clifford F ButtGermanyOnyama Limba NEW
Jennifer X SaylorsRussiaAmy Elsner NEW
Leon G OldroydIndiaElwin Sharvill RENEWAL
Smith V RimBrazilElwin Sharvill QUALIFIED
Johnson D GauchoJapanOnyama Limba NEGOTIATION
Mujtaba C StockhamJapanOnyama Limba QUALIFIED
Antonio H StensethBrazilAsiya Javayant PROPOSAL
Claire N ButtArgentinaOnyama Limba PROPOSAL
Silvio M OldroydArgentinaOnyama Limba RENEWAL
Octavia G GauchoGermanyAsiya Javayant PROPOSAL
Munro Q PaprockiFranceIvan Magalhaes PROPOSAL
Murillo F KolmetzUnited KingdomIoni 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>