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
James K ShinkoSpainOnyama Limba QUALIFIED
Mujtaba E ButtIndiaAmy Elsner UNQUALIFIED
David K RutaArgentinaAsiya Javayant NEW
Silvio B CampainBrazilAsiya Javayant NEGOTIATION
Maria N OldroydAustraliaBernardo Dominic NEGOTIATION
Wickens H NestleArgentinaOnyama Limba UNQUALIFIED
Claire Y MaletBrazilElwin Sharvill PROPOSAL
Deepesh Q ChuiRussiaBernardo Dominic PROPOSAL
Misaki R WaycottJapanBernardo Dominic NEGOTIATION
Leon U GlickFranceAsiya Javayant UNQUALIFIED
Munro O ShinkoGermanyAnna Fali QUALIFIED
James S ButtBrazilBernardo Dominic NEGOTIATION
Salvatore S MaletArgentinaStephen Shaw NEW
Leja M CampainSpainIoni Bowcher PROPOSAL
Morrow I AmigonArgentinaStephen Shaw QUALIFIED
Cody D BologniaGermanyXuxue Feng QUALIFIED
Jeanfrancois N MaletUnited KingdomOnyama Limba UNQUALIFIED
Emily P GauchoRussiaOnyama Limba RENEWAL
Johnson D OldroydRussiaStephen Shaw UNQUALIFIED
Clifford A DoeRussiaAnna Fali NEGOTIATION
Smith G AlbaresRussiaXuxue Feng QUALIFIED
Morrow C SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin K CaldareraCanadaStephen Shaw PROPOSAL
Leon C CaudyGermanyAsiya Javayant PROPOSAL
Silvio S CampainBrazilIvan Magalhaes PROPOSAL
Kaitlin Z NestleBrazilAsiya Javayant QUALIFIED
Ivar X MaletBrazilOnyama Limba RENEWAL
Cody D MacleadFranceIvan Magalhaes PROPOSAL
Clifford B WhobreyItalyAmy Elsner RENEWAL
Aruna M AlbaresRussiaBernardo Dominic QUALIFIED
Sinclair T StockhamBrazilAsiya Javayant RENEWAL
Jeanfrancois H GarufiAustraliaStephen Shaw NEGOTIATION
Darci G StensethArgentinaStephen Shaw RENEWAL
Rodrigues X FerenczAustraliaIvan Magalhaes QUALIFIED
Clifford A MarrierFranceBernardo Dominic UNQUALIFIED
Jeanfrancois Y BowleyJapanAsiya Javayant QUALIFIED
Jeanfrancois D MorascaGermanyBernardo Dominic NEW
Salvatore Z SchemmerSpainAnna Fali QUALIFIED
Smith U OldroydUnited KingdomAsiya Javayant NEW
Nicolas X OstroskyGermanyStephen Shaw NEW
Jennifer D FerenczArgentinaIvan Magalhaes RENEWAL
Chavez M NestleBrazilOnyama Limba RENEWAL
Wickens C FollerIndiaIvan Magalhaes NEW
Nicolas O CaldareraSpainIoni Bowcher RENEWAL
Aika T FlosiAustraliaAsiya Javayant QUALIFIED
Stacey Q KolmetzItalyElwin Sharvill NEGOTIATION
Jones Q RimRussiaOnyama Limba RENEWAL
Deepesh H MorascaBrazilOnyama Limba NEGOTIATION
Adams X BriddickUnited KingdomOnyama Limba PROPOSAL
Aditya B WhobreyIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Aika R CampainRussiaAnna Fali NEW
Stacey B CaudyCanadaAnna Fali NEGOTIATION
Leja G CaldareraBrazilAmy Elsner QUALIFIED
Leon H ButtCanadaStephen Shaw PROPOSAL
Greenwood M SlusarskiIndiaIoni Bowcher QUALIFIED
Tony I KolmetzJapanStephen Shaw UNQUALIFIED
Alejandro L StockhamBrazilXuxue Feng QUALIFIED
Jennifer V AlbaresArgentinaIvan Magalhaes RENEWAL
Leon G FerenczGermanyAnna Fali RENEWAL
Aika Y SchemmerBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley K PoquetteAustralia2026-07-27Benton, John B Jr NEW2Ioni Bowcher
1001Octavia A CampainCanada2026-08-03Feiner Bros RENEWAL44Stephen Shaw
1002Maisha E NickaSpain2026-08-11King, Christopher A Esq RENEWAL97Asiya Javayant
1003Leja L NickaJapan2026-07-27Rangoni Of Florence QUALIFIED85Xuxue Feng
1004Aruna G SergiSpain2026-08-03Chanay, Jeffrey A Esq NEGOTIATION82Bernardo Dominic
1005Darci P InouyeSpain2026-07-26Printing Dimensions NEGOTIATION56Ivan Magalhaes
1006Octavia P KolmetzItaly2026-08-13Truhlar And Truhlar Attys NEW29Amy Elsner
1007Kadeem Z NickaUnited Kingdom2026-08-11Rangoni Of Florence NEW13Amy Elsner
1008Arvin F MaletArgentina2026-08-06Benton, John B Jr PROPOSAL76Anna Fali
1009Maisha K MaletFrance2026-07-29Truhlar And Truhlar Attys UNQUALIFIED8Stephen Shaw
1010Salvatore A DarakjyArgentina2026-07-23King, Christopher A Esq RENEWAL78Ioni Bowcher
1011Leja N MaletArgentina2026-07-27Buckley Miller Wright PROPOSAL93Ivan Magalhaes
1012Ashley I RutaCanada2026-08-01Commercial Press NEW63Bernardo Dominic
1013Mujtaba U RutaFrance2026-07-24Rousseaux, Michael Esq QUALIFIED94Anna Fali
1014Jones O AmigonFrance2026-08-12Truhlar And Truhlar Attys NEW24Stephen Shaw
1015Jefferson O FlosiGermany2026-07-22Rangoni Of Florence NEGOTIATION45Xuxue Feng
1016Greenwood Y CaudyBrazil2026-08-07King, Christopher A Esq RENEWAL9Bernardo Dominic
1017Jefferson N FigeroaCanada2026-07-18Rangoni Of Florence NEW12Stephen Shaw
1018Stacey C ShinkoBrazil2026-07-17Chapman, Ross E Esq RENEWAL23Asiya Javayant
1019Aruna Q MorascaItaly2026-08-07Commercial Press NEGOTIATION38Anna Fali
1020Octavia P WaycottAustralia2026-07-29Commercial Press NEW70Ioni Bowcher
1021Clifford D FerenczFrance2026-08-07Rousseaux, Michael Esq RENEWAL53Ivan Magalhaes
1022Greenwood Z BriddickSpain2026-07-31Buckley Miller Wright QUALIFIED78Bernardo Dominic
1023Jeanfrancois H MacleadFrance2026-08-04Commercial Press UNQUALIFIED14Amy Elsner
1024Murillo S WhobreyAustralia2026-08-06Benton, John B Jr NEGOTIATION13Amy Elsner
1025James V TollnerFrance2026-07-17Rangoni Of Florence UNQUALIFIED91Bernardo Dominic
1026Smith R MaletRussia2026-08-09Rangoni Of Florence RENEWAL81Bernardo Dominic
1027Ashley O TollnerIndia2026-07-30Truhlar And Truhlar Attys NEW21Bernardo Dominic
1028Leja I FigeroaBrazil2026-08-02Feltz Printing Service PROPOSAL58Stephen Shaw
1029Julie G DilliardArgentina2026-07-23Rousseaux, Michael Esq RENEWAL95Ioni Bowcher
1030Ashley I VocelkaUnited Kingdom2026-07-28Benton, John B Jr NEW67Ivan Magalhaes
1031Isabel I WieserCanada2026-08-11Benton, John B Jr UNQUALIFIED20Bernardo Dominic
1032Costa P KolmetzSpain2026-07-20Commercial Press PROPOSAL82Elwin Sharvill
1033Stacey Y DarakjySpain2026-08-13Benton, John B Jr NEGOTIATION97Elwin Sharvill
1034Antonio C KolmetzSpain2026-07-24Chapman, Ross E Esq NEGOTIATION59Elwin Sharvill
1035Munro I PaprockiArgentina2026-07-26Morlong Associates RENEWAL88Ioni Bowcher
1036Misaki R FigeroaAustralia2026-08-06Chapman, Ross E Esq QUALIFIED57Asiya Javayant
1037Jeanfrancois L GauchoJapan2026-07-26Chemel, James L Cpa NEGOTIATION38Elwin Sharvill
1038Cody M PerinItaly2026-07-22King, Christopher A Esq RENEWAL60Onyama Limba
1039Tony H SergiFrance2026-07-17Truhlar And Truhlar Attys NEGOTIATION20Asiya Javayant
1040Mayumi V ShinkoFrance2026-08-05Printing Dimensions RENEWAL29Bernardo Dominic
1041Maria M BowleyArgentina2026-08-09Rousseaux, Michael Esq UNQUALIFIED24Ivan Magalhaes
1042Aditya H WaycottItaly2026-07-17Morlong Associates QUALIFIED17Amy Elsner
1043Adams P MarrierSpain2026-07-16Benton, John B Jr UNQUALIFIED39Ioni Bowcher
1044Rodrigues Z BowleyJapan2026-07-23Feltz Printing Service NEGOTIATION32Anna Fali
1045Chavez B PaprockiRussia2026-08-07King, Christopher A Esq PROPOSAL59Bernardo Dominic
1046Juan E NickaIndia2026-07-20Chapman, Ross E Esq RENEWAL16Onyama Limba
1047Wickens W PoquetteItaly2026-07-17Chapman, Ross E Esq UNQUALIFIED90Ioni Bowcher
1048Maria A PoquetteArgentina2026-08-10King, Christopher A Esq NEGOTIATION32Bernardo Dominic
1049Ashley W PoquetteAustralia2026-08-11Benton, John B Jr RENEWAL64Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Chavez O GlickGermanyOnyama Limba PROPOSAL
Kaitlin R RutaFranceBernardo Dominic PROPOSAL
Jefferson V ShinkoCanadaOnyama Limba UNQUALIFIED
Izzy S GauchoCanadaElwin Sharvill NEW
Misaki W WaycottIndiaIvan Magalhaes RENEWAL
Nicolas J DoeCanadaAnna Fali RENEWAL
Aika G RutaCanadaAnna Fali UNQUALIFIED
Antonio T OldroydCanadaIoni Bowcher NEGOTIATION
Faith R FollerCanadaElwin Sharvill QUALIFIED
Smith M CampainCanadaElwin Sharvill PROPOSAL
Claire F StensethGermanyElwin Sharvill PROPOSAL
Emily X CaldareraSpainAmy Elsner RENEWAL
Cody O SchemmerFranceIvan Magalhaes PROPOSAL
Maisha S IturbideUnited KingdomOnyama Limba NEW
Mujtaba H SaylorsItalyAmy Elsner RENEWAL
Claire H NickaArgentinaOnyama Limba QUALIFIED
Mayumi A BriddickRussiaBernardo Dominic PROPOSAL
Antonio J ChuiFranceIvan Magalhaes NEGOTIATION
Faith W FlosiCanadaAmy Elsner QUALIFIED
David X WieserArgentinaStephen Shaw QUALIFIED
Wickens U KolmetzCanadaAmy Elsner QUALIFIED
Sinclair D WieserBrazilIvan Magalhaes NEW
Deepesh Q KuskoCanadaBernardo Dominic RENEWAL
Deepesh V SergiBrazilElwin Sharvill RENEWAL
Julie A MaletArgentinaAmy Elsner NEW
Ashley W DilliardUnited KingdomIoni Bowcher PROPOSAL
Octavia X FollerCanadaXuxue Feng UNQUALIFIED
Jennifer V VenereBrazilXuxue Feng NEW
Aditya C OstroskyIndiaIoni Bowcher NEGOTIATION
Aika T IturbideSpainStephen Shaw NEW
Francesco A TollnerJapanBernardo Dominic NEW
Jennifer V MarrierSpainIoni Bowcher NEGOTIATION
Jennifer D ShinkoCanadaAnna Fali UNQUALIFIED
Julie O ShinkoCanadaElwin Sharvill RENEWAL
Aika U NickaGermanyOnyama Limba QUALIFIED
Silvio X SergiUnited KingdomAsiya Javayant RENEWAL
Emily E DilliardJapanIoni Bowcher UNQUALIFIED
Alejandro U SchemmerGermanyBernardo Dominic UNQUALIFIED
Arvin W RulapaughCanadaXuxue Feng NEGOTIATION
Stacey H AmigonBrazilBernardo Dominic QUALIFIED
David Q StensethBrazilBernardo Dominic QUALIFIED
Munro P KolmetzCanadaAsiya Javayant RENEWAL
Arvin H ShinkoSpainAnna Fali RENEWAL
Mayumi A DilliardGermanyIoni Bowcher PROPOSAL
Johnson H TollnerCanadaAnna Fali RENEWAL
Alejandro Z IturbideSpainBernardo Dominic NEW
Arvin C MacleadFranceIoni Bowcher NEGOTIATION
Morrow Q WieserFranceBernardo Dominic NEW
Francesco I TollnerCanadaStephen Shaw PROPOSAL
Greenwood X GauchoItalyElwin Sharvill PROPOSAL
Frozen Columns
Name
Leja C Chui
Leja V Stenseth
Aika H Butt
Morrow Z Nestle
Alejandro W Whobrey
Ricardo F Tollner
Munro V Shinko
Nicolas P Darakjy
Misaki R Morasca
Izzy P Venere
Arvin C Ferencz
Smith P Nestle
Misaki G Chui
Claire R Rulapaugh
Francesco K Saylors
Wickens S Caudy
Jennifer F Campain
Francesco E Garufi
Jeanfrancois F Kusko
Octavia Y Rim
Isabel W Ferencz
Chavez M Bowley
Johnson P Gaucho
Jones V Tollner
Nicolas P Ferencz
Ricardo T Nicka
Nicolas G Stockham
Greenwood D Slusarski
Arvin V Garufi
Julie O Waycott
Johnson A Rulapaugh
Jefferson H Kusko
Cody H Waycott
Kadeem J Iturbide
Cody Y Rulapaugh
Jeanfrancois J Inouye
Mujtaba L Malet
Munro V Ferencz
Morrow U Wieser
Munro P Ferencz
Claire W Gillian
Mayumi U Chui
Rodrigues K Briddick
Maria B Iturbide
Jefferson Y Oldroyd
Wickens L Iturbide
Clifford N Amigon
Leon I Caldarera
Faith W Bolognia
Isabel P Whobrey
IdCountryDate
1000Argentina2026-07-19
1001Russia2026-07-18
1002India2026-08-09
1003Canada2026-08-08
1004Japan2026-08-03
1005Russia2026-08-12
1006India2026-07-31
1007Italy2026-07-29
1008Brazil2026-07-24
1009France2026-07-23
1010Argentina2026-07-30
1011United Kingdom2026-07-27
1012Canada2026-07-24
1013Italy2026-07-17
1014Germany2026-08-13
1015Germany2026-07-28
1016Germany2026-07-23
1017France2026-08-05
1018Russia2026-08-07
1019Spain2026-07-16
1020Brazil2026-07-31
1021United Kingdom2026-07-23
1022Spain2026-07-21
1023Argentina2026-07-26
1024United Kingdom2026-07-19
1025Japan2026-08-07
1026Canada2026-07-21
1027Italy2026-08-13
1028Russia2026-07-20
1029Spain2026-07-23
1030France2026-08-07
1031Spain2026-07-29
1032Russia2026-07-20
1033Russia2026-08-08
1034Australia2026-08-07
1035India2026-08-10
1036Argentina2026-07-22
1037France2026-07-25
1038Japan2026-07-23
1039Australia2026-08-12
1040Australia2026-07-27
1041Germany2026-08-12
1042Brazil2026-08-04
1043Russia2026-08-11
1044Spain2026-08-08
1045France2026-07-23
1046France2026-08-07
1047Russia2026-07-25
1048Spain2026-07-20
1049Italy2026-07-19

On-Demand Data

NameIdCountryDate
Jones W Doe1000Italy2026-07-24
Costa G Waycott1001Brazil2026-08-01
Munro T Paprocki1002Italy2026-08-13
Smith F Rim1003Germany2026-07-21
Stacey L Campain1004United Kingdom2026-08-12
Nicolas F Bowley1005Germany2026-08-04
Mayumi Z Figeroa1006Italy2026-08-04
Jones W Poquette1007Japan2026-08-13
Sinclair O Royster1008Germany2026-07-22
Deepesh F Iturbide1009Russia2026-07-31
Claire V Darakjy1010Italy2026-08-03
Jennifer T Ruta1011Japan2026-07-24
Arvin F Amigon1012Spain2026-07-15
Aruna U Gaucho1013Germany2026-07-22
Ivar Y Maclead1014Brazil2026-07-19
Misaki T Bolognia1015Brazil2026-07-30
Faith I Vocelka1016United Kingdom2026-08-06
Mujtaba T Whobrey1017Russia2026-08-07
Jennifer G Poquette1018Italy2026-07-18
Stacey I Flosi1019Australia2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair H RoysterAustraliaXuxue Feng QUALIFIED
David W DilliardCanadaAnna Fali QUALIFIED
James V RoysterUnited KingdomIvan Magalhaes QUALIFIED
Morrow I SchemmerAustraliaXuxue Feng NEGOTIATION
Jennifer F ChuiRussiaXuxue Feng NEW
Wickens D RoysterCanadaBernardo Dominic RENEWAL
Murillo X VenereRussiaXuxue Feng RENEWAL
Isabel N DarakjyJapanIvan Magalhaes QUALIFIED
Clifford J VocelkaFranceXuxue Feng RENEWAL
Jones W MarrierAustraliaElwin Sharvill NEGOTIATION
Costa X VenereArgentinaAnna Fali PROPOSAL
Mayumi F CaudyRussiaAnna Fali UNQUALIFIED
Alejandro T PerinCanadaAsiya Javayant RENEWAL
Nicolas H OstroskyIndiaElwin Sharvill RENEWAL
Mayumi Z WhobreyItalyAsiya Javayant PROPOSAL
Munro M CaldareraArgentinaStephen Shaw PROPOSAL
Emily F ButtAustraliaStephen Shaw QUALIFIED
Cody I MarrierSpainStephen Shaw RENEWAL
Mayumi M ButtArgentinaOnyama Limba UNQUALIFIED
Smith Q FlosiUnited KingdomAnna Fali UNQUALIFIED
Ashley S PaprockiCanadaStephen Shaw NEGOTIATION
Adams U MorascaBrazilStephen Shaw RENEWAL
Kadeem O PaprockiArgentinaOnyama Limba PROPOSAL
Aruna D MaletJapanAmy Elsner QUALIFIED
Kaitlin M StockhamSpainAmy Elsner QUALIFIED
Nicolas E RulapaughBrazilAmy Elsner PROPOSAL
Aditya F PaprockiFranceAnna Fali NEGOTIATION
Rodrigues P CampainUnited KingdomIoni Bowcher NEGOTIATION
Juan M VenereBrazilAmy Elsner NEW
David S FlosiAustraliaAsiya Javayant NEW
Jefferson Q ShinkoAustraliaIvan Magalhaes QUALIFIED
Maisha X KuskoJapanBernardo Dominic PROPOSAL
Stacey A DilliardGermanyIvan Magalhaes UNQUALIFIED
Salvatore V RimFranceAnna Fali RENEWAL
Tony P NickaJapanAnna Fali NEW
Faith E FigeroaCanadaAnna Fali NEW
Rodrigues Y WaycottAustraliaElwin Sharvill NEW
Jeanfrancois K RoysterGermanyIoni Bowcher NEGOTIATION
Chavez X PaprockiRussiaElwin Sharvill PROPOSAL
Maria B DoeJapanIvan Magalhaes 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>