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
Maisha Z PaprockiUnited KingdomOnyama Limba QUALIFIED
Jones M StockhamCanadaBernardo Dominic NEW
Sinclair O GarufiJapanIoni Bowcher NEGOTIATION
Jeanfrancois M SergiArgentinaOnyama Limba NEW
Leon P RimGermanyAnna Fali PROPOSAL
Aditya Q AmigonArgentinaIoni Bowcher RENEWAL
Adams X WhobreyJapanElwin Sharvill NEW
Ivar X FlosiCanadaAsiya Javayant UNQUALIFIED
Emily W BriddickAustraliaIoni Bowcher NEGOTIATION
Claire X SchemmerAustraliaBernardo Dominic QUALIFIED
Julie R NickaCanadaAsiya Javayant QUALIFIED
Kadeem D MacleadSpainOnyama Limba RENEWAL
Arvin B ChuiFranceElwin Sharvill UNQUALIFIED
Clifford I FigeroaJapanIvan Magalhaes QUALIFIED
Maria E AmigonIndiaIoni Bowcher QUALIFIED
Arvin T InouyeArgentinaBernardo Dominic PROPOSAL
Arvin F GarufiItalyAnna Fali RENEWAL
Jones K PerinBrazilAnna Fali UNQUALIFIED
Misaki Z GauchoFranceStephen Shaw NEGOTIATION
Aruna F RoysterUnited KingdomIoni Bowcher RENEWAL
Jones A AlbaresItalyBernardo Dominic NEW
Silvio F RoysterCanadaElwin Sharvill RENEWAL
Adams A TollnerGermanyElwin Sharvill QUALIFIED
Stacey P DoeUnited KingdomAsiya Javayant RENEWAL
Rodrigues S SergiCanadaElwin Sharvill NEW
Ricardo F RulapaughGermanyIoni Bowcher NEW
Jeanfrancois D PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Leon S RulapaughBrazilIoni Bowcher NEGOTIATION
Salvatore C KolmetzBrazilAmy Elsner NEW
Leja Q MarrierJapanElwin Sharvill RENEWAL
Kaitlin H NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Leja Z MacleadUnited KingdomIvan Magalhaes PROPOSAL
Chavez C OstroskyGermanyAmy Elsner NEGOTIATION
Aditya L WhobreyIndiaAmy Elsner NEGOTIATION
Faith D StockhamUnited KingdomStephen Shaw QUALIFIED
Leon W InouyeItalyIvan Magalhaes QUALIFIED
Munro J CaldareraFranceBernardo Dominic NEGOTIATION
Maria V GauchoSpainAnna Fali PROPOSAL
Greenwood J RutaFranceXuxue Feng NEGOTIATION
Arvin V BriddickAustraliaAnna Fali NEGOTIATION
Ivar U IturbideAustraliaElwin Sharvill RENEWAL
Stacey Y AmigonRussiaOnyama Limba NEGOTIATION
Octavia J OstroskyRussiaXuxue Feng RENEWAL
Sinclair X DoeFranceIvan Magalhaes NEW
Maisha Q PaprockiSpainIvan Magalhaes RENEWAL
Greenwood S StockhamSpainBernardo Dominic PROPOSAL
Maisha B PerinArgentinaXuxue Feng PROPOSAL
Kadeem L SchemmerCanadaAmy Elsner NEGOTIATION
Greenwood K VocelkaAustraliaAmy Elsner RENEWAL
Nicolas W VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford G SlusarskiJapanAnna Fali RENEWAL
Munro D OstroskyIndiaIoni Bowcher RENEWAL
Cody M BologniaAustraliaAmy Elsner UNQUALIFIED
Nicolas C FlosiUnited KingdomOnyama Limba PROPOSAL
Arvin J WhobreyGermanyAnna Fali NEGOTIATION
Alejandro G MorascaAustraliaAnna Fali NEW
Aruna P ChuiFranceStephen Shaw QUALIFIED
Sinclair Q GlickRussiaAmy Elsner PROPOSAL
Murillo P DilliardGermanyElwin Sharvill NEW
Murillo W NestleRussiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar F SlusarskiFrance2025-05-27Feltz Printing Service NEW48Asiya Javayant
1001Izzy Y RutaArgentina2025-06-01Rousseaux, Michael Esq RENEWAL68Ivan Magalhaes
1002Aditya K StensethBrazil2025-06-03Feiner Bros QUALIFIED61Elwin Sharvill
1003David L GlickGermany2025-06-07Printing Dimensions NEW5Xuxue Feng
1004Kaitlin L RulapaughRussia2025-06-04Feiner Bros UNQUALIFIED97Anna Fali
1005Octavia M AmigonFrance2025-06-05Chemel, James L Cpa NEGOTIATION81Asiya Javayant
1006Aruna G SlusarskiGermany2025-06-14Printing Dimensions NEW34Xuxue Feng
1007Jennifer P IturbideSpain2025-06-06King, Christopher A Esq NEW69Xuxue Feng
1008Maisha X MaletFrance2025-06-06Chanay, Jeffrey A Esq NEW55Amy Elsner
1009Smith P SlusarskiAustralia2025-06-16Chanay, Jeffrey A Esq UNQUALIFIED36Ivan Magalhaes
1010Ivar R InouyeCanada2025-05-20Buckley Miller Wright RENEWAL92Amy Elsner
1011Chavez B OstroskyFrance2025-05-28Rangoni Of Florence UNQUALIFIED27Asiya Javayant
1012Emily M IturbideIndia2025-06-09Rousseaux, Michael Esq NEW38Bernardo Dominic
1013Kaitlin W WhobreyAustralia2025-05-23Commercial Press RENEWAL27Xuxue Feng
1014Jones S PaprockiArgentina2025-06-03Dorl, James J Esq RENEWAL89Onyama Limba
1015Jones K FollerAustralia2025-05-18Buckley Miller Wright NEW8Amy Elsner
1016Leja W BologniaArgentina2025-05-20Truhlar And Truhlar Attys NEW32Asiya Javayant
1017Octavia K WieserFrance2025-06-02Benton, John B Jr PROPOSAL86Elwin Sharvill
1018Leon D StensethFrance2025-05-28Chanay, Jeffrey A Esq PROPOSAL71Stephen Shaw
1019Mayumi S NestleRussia2025-05-21Dorl, James J Esq QUALIFIED12Asiya Javayant
1020Chavez X KolmetzJapan2025-06-14Benton, John B Jr QUALIFIED78Elwin Sharvill
1021Sinclair P ChuiSpain2025-05-23Dorl, James J Esq NEGOTIATION57Ivan Magalhaes
1022Chavez T MarrierFrance2025-05-29King, Christopher A Esq QUALIFIED81Elwin Sharvill
1023Kaitlin B ButtItaly2025-05-25Feiner Bros QUALIFIED52Anna Fali
1024Clifford T SlusarskiUnited Kingdom2025-05-18Morlong Associates QUALIFIED3Asiya Javayant
1025Julie W SlusarskiSpain2025-06-02Feiner Bros QUALIFIED91Stephen Shaw
1026Darci S ShinkoGermany2025-06-06Rousseaux, Michael Esq UNQUALIFIED40Elwin Sharvill
1027Darci I CaudyFrance2025-05-19Chanay, Jeffrey A Esq UNQUALIFIED54Amy Elsner
1028Leja Y ChuiIndia2025-05-26Feltz Printing Service RENEWAL64Amy Elsner
1029Salvatore B PerinIndia2025-06-13Feltz Printing Service UNQUALIFIED30Amy Elsner
1030Cody Z SaylorsItaly2025-05-27Feltz Printing Service NEW96Stephen Shaw
1031Ricardo Y OldroydItaly2025-05-19Printing Dimensions QUALIFIED58Ivan Magalhaes
1032Jones I MorascaGermany2025-05-23Commercial Press UNQUALIFIED39Ioni Bowcher
1033Juan Y SaylorsAustralia2025-06-05King, Christopher A Esq PROPOSAL70Anna Fali
1034Rodrigues Y GillianArgentina2025-05-18Benton, John B Jr QUALIFIED71Ivan Magalhaes
1035Murillo A FerenczRussia2025-06-02Commercial Press PROPOSAL51Amy Elsner
1036Tony G WhobreyIndia2025-06-07King, Christopher A Esq RENEWAL95Amy Elsner
1037Antonio S GauchoCanada2025-06-12Benton, John B Jr PROPOSAL98Amy Elsner
1038Munro E WieserItaly2025-06-13Rousseaux, Michael Esq NEW19Amy Elsner
1039Jennifer U FollerIndia2025-06-02Rousseaux, Michael Esq RENEWAL21Amy Elsner
1040Leja H AlbaresIndia2025-06-11Truhlar And Truhlar Attys UNQUALIFIED16Amy Elsner
1041Emily W WaycottSpain2025-05-23Chanay, Jeffrey A Esq PROPOSAL40Elwin Sharvill
1042Leon P MorascaArgentina2025-06-05Morlong Associates UNQUALIFIED70Ivan Magalhaes
1043David O AlbaresSpain2025-05-28King, Christopher A Esq NEGOTIATION13Xuxue Feng
1044Isabel X WieserFrance2025-06-15Feiner Bros RENEWAL81Ivan Magalhaes
1045Maisha T MaletUnited Kingdom2025-05-25Commercial Press NEGOTIATION49Onyama Limba
1046Jeanfrancois U KuskoAustralia2025-06-15Feiner Bros UNQUALIFIED28Amy Elsner
1047Emily M InouyeSpain2025-05-31Chapman, Ross E Esq QUALIFIED46Bernardo Dominic
1048Maria E InouyeJapan2025-05-30Feiner Bros RENEWAL55Elwin Sharvill
1049Jennifer F RimItaly2025-05-27Dorl, James J Esq QUALIFIED41Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Julie H DilliardAustraliaOnyama Limba QUALIFIED
Kaitlin Q BriddickBrazilBernardo Dominic QUALIFIED
Mayumi T OldroydFranceXuxue Feng PROPOSAL
Izzy C SergiItalyAmy Elsner UNQUALIFIED
Alejandro F GlickRussiaAsiya Javayant UNQUALIFIED
Maisha Q GillianCanadaStephen Shaw RENEWAL
Greenwood R AlbaresCanadaStephen Shaw UNQUALIFIED
Isabel C GlickItalyIvan Magalhaes UNQUALIFIED
Jennifer S StensethBrazilXuxue Feng PROPOSAL
Ivar L MacleadRussiaAnna Fali NEGOTIATION
Jones X RoysterIndiaOnyama Limba NEW
Silvio R MaletUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois F OstroskyIndiaElwin Sharvill NEGOTIATION
Rodrigues U VenereBrazilOnyama Limba UNQUALIFIED
Ashley Z FollerFranceAsiya Javayant UNQUALIFIED
Jones D SaylorsGermanyStephen Shaw UNQUALIFIED
Mujtaba H AlbaresSpainStephen Shaw RENEWAL
Salvatore B GlickJapanXuxue Feng NEGOTIATION
James W NestleRussiaXuxue Feng RENEWAL
Isabel M StockhamBrazilStephen Shaw UNQUALIFIED
Cody M RimGermanyAmy Elsner NEW
Darci Q NestleArgentinaBernardo Dominic NEGOTIATION
Francesco O RimBrazilOnyama Limba RENEWAL
Maisha X MaletAustraliaAnna Fali NEGOTIATION
Jeanfrancois A OstroskyItalyAsiya Javayant NEW
Arvin M SchemmerItalyOnyama Limba UNQUALIFIED
Kaitlin G FollerRussiaXuxue Feng PROPOSAL
Francesco B CaldareraUnited KingdomAsiya Javayant PROPOSAL
David W DoeCanadaAnna Fali NEGOTIATION
Salvatore T DoeJapanStephen Shaw QUALIFIED
Ricardo W RulapaughBrazilElwin Sharvill NEW
Wickens V FigeroaCanadaIvan Magalhaes QUALIFIED
Nicolas K GauchoRussiaXuxue Feng PROPOSAL
Jennifer F MaletAustraliaAmy Elsner NEW
Silvio M RulapaughAustraliaElwin Sharvill UNQUALIFIED
Juan M CampainRussiaElwin Sharvill NEGOTIATION
Izzy C SchemmerAustraliaBernardo Dominic QUALIFIED
Deepesh M TollnerItalyAmy Elsner QUALIFIED
Francesco S BologniaArgentinaAmy Elsner UNQUALIFIED
Smith L VenereFranceXuxue Feng UNQUALIFIED
Deepesh R MacleadIndiaStephen Shaw RENEWAL
Murillo U WhobreyAustraliaAnna Fali NEGOTIATION
Ricardo B RulapaughCanadaAsiya Javayant NEGOTIATION
Chavez C PoquetteIndiaXuxue Feng RENEWAL
Octavia R GillianArgentinaAsiya Javayant NEGOTIATION
Nicolas F ChuiIndiaAnna Fali QUALIFIED
Darci L VenereFranceAsiya Javayant RENEWAL
Maria Q MorascaIndiaAnna Fali NEGOTIATION
Kadeem V GauchoBrazilAmy Elsner UNQUALIFIED
Mayumi Y AlbaresGermanyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Greenwood A Paprocki
Jones A Dilliard
Costa T Saylors
Antonio M Tollner
Silvio I Butt
Smith V Campain
Tony H Stockham
Aruna N Albares
Emily F Figeroa
Arvin P Dilliard
James O Amigon
Salvatore E Vocelka
Morrow P Bolognia
Leja R Kolmetz
Kadeem W Perin
Jefferson Q Stenseth
Aditya M Perin
Ashley I Caldarera
Adams Z Stockham
Cody T Amigon
Kaitlin L Schemmer
Wickens T Oldroyd
Costa P Kolmetz
Emily E Ruta
Sinclair Z Nicka
Morrow O Venere
Adams S Kolmetz
Aika W Slusarski
Alejandro O Royster
Maria O Malet
Aruna D Rim
Murillo G Stockham
Julie H Caldarera
Greenwood P Paprocki
Sinclair G Gaucho
Ricardo D Iturbide
Ivar Q Stockham
Munro L Gillian
Nicolas T Bowley
Maria X Glick
Jones T Ruta
Claire C Royster
Maisha X Venere
Cody C Perin
Costa Z Sergi
Aika R Amigon
Claire W Royster
Alejandro G Maclead
Ashley P Schemmer
Ashley V Paprocki
IdCountryDate
1000France2025-05-19
1001France2025-06-11
1002Canada2025-05-27
1003Japan2025-06-02
1004Australia2025-05-26
1005Brazil2025-06-10
1006Russia2025-06-07
1007Argentina2025-05-21
1008Italy2025-05-21
1009United Kingdom2025-06-08
1010Brazil2025-05-23
1011Russia2025-06-06
1012Brazil2025-05-23
1013Canada2025-05-28
1014Russia2025-06-06
1015Spain2025-05-21
1016Japan2025-05-23
1017Italy2025-06-15
1018Russia2025-06-15
1019Australia2025-05-20
1020Spain2025-06-13
1021Japan2025-06-12
1022Russia2025-06-04
1023Spain2025-05-23
1024Russia2025-06-06
1025Australia2025-06-15
1026Russia2025-06-11
1027Australia2025-06-08
1028Italy2025-05-30
1029Canada2025-05-24
1030India2025-06-14
1031India2025-05-19
1032Japan2025-06-12
1033Russia2025-05-24
1034France2025-06-13
1035Germany2025-06-12
1036United Kingdom2025-06-01
1037Canada2025-05-18
1038Australia2025-06-02
1039Brazil2025-05-25
1040Germany2025-05-29
1041Spain2025-05-22
1042United Kingdom2025-06-13
1043Australia2025-05-31
1044India2025-05-29
1045Spain2025-06-06
1046India2025-06-04
1047United Kingdom2025-06-04
1048Australia2025-06-05
1049Argentina2025-06-12

On-Demand Data

NameIdCountryDate
Johnson M Tollner1000Argentina2025-05-29
Clifford D Albares1001Spain2025-05-18
Julie Z Oldroyd1002Spain2025-05-29
James W Butt1003Japan2025-05-29
David V Bowley1004France2025-06-14
Misaki W Poquette1005Germany2025-05-20
Stacey W Inouye1006Japan2025-05-22
Arvin U Malet1007Italy2025-05-30
Faith L Rim1008Russia2025-06-08
Maisha W Caldarera1009India2025-06-16
Alejandro I Rulapaugh1010Argentina2025-06-13
Johnson M Paprocki1011Italy2025-05-22
Nicolas L Royster1012United Kingdom2025-05-29
Aruna W Royster1013Spain2025-05-27
Tony W Figeroa1014France2025-06-15
Darci K Butt1015Spain2025-05-21
Adams H Venere1016Italy2025-05-18
Juan D Gillian1017Brazil2025-05-29
Alejandro B Nestle1018United Kingdom2025-06-12
Leja C Royster1019Italy2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams E FollerCanadaAmy Elsner UNQUALIFIED
Tony T MaletItalyXuxue Feng NEGOTIATION
Deepesh B RoysterSpainBernardo Dominic QUALIFIED
Jones A MacleadCanadaAmy Elsner QUALIFIED
Munro P RutaGermanyIvan Magalhaes QUALIFIED
James C DilliardUnited KingdomIoni Bowcher NEGOTIATION
Isabel X OldroydGermanyAnna Fali PROPOSAL
Maisha Z StensethIndiaXuxue Feng RENEWAL
Ricardo X FollerUnited KingdomElwin Sharvill RENEWAL
Leon D MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha K MaletUnited KingdomAsiya Javayant RENEWAL
Greenwood M ButtCanadaAnna Fali NEW
Emily I ButtBrazilAmy Elsner NEGOTIATION
Maisha B PaprockiFranceElwin Sharvill RENEWAL
Julie D CaudyRussiaXuxue Feng NEW
Jones B SlusarskiItalyOnyama Limba UNQUALIFIED
Smith P StensethCanadaAnna Fali NEGOTIATION
Deepesh K StensethSpainAnna Fali NEW
Kaitlin S StockhamItalyAsiya Javayant QUALIFIED
Jefferson M AmigonItalyAmy Elsner NEGOTIATION
Arvin G AlbaresRussiaStephen Shaw UNQUALIFIED
Nicolas X GauchoBrazilIvan Magalhaes UNQUALIFIED
Salvatore O DoeSpainBernardo Dominic PROPOSAL
Munro H NickaCanadaBernardo Dominic QUALIFIED
Misaki C VocelkaGermanyElwin Sharvill PROPOSAL
Kaitlin S PoquetteUnited KingdomElwin Sharvill RENEWAL
Smith O VenereJapanBernardo Dominic NEW
Jefferson M KuskoSpainStephen Shaw NEW
Wickens E MaletIndiaIoni Bowcher RENEWAL
Munro Q FlosiRussiaXuxue Feng NEW
Alejandro Y KuskoSpainStephen Shaw QUALIFIED
Aika T WaycottIndiaIoni Bowcher RENEWAL
Munro J FerenczGermanyXuxue Feng RENEWAL
Mujtaba A RimFranceElwin Sharvill NEW
Aika R GauchoRussiaAnna Fali NEGOTIATION
Leon E DarakjyGermanyAnna Fali NEW
Faith O RimCanadaXuxue Feng NEW
Stacey H WieserArgentinaOnyama Limba UNQUALIFIED
Mujtaba P FollerBrazilAsiya Javayant QUALIFIED
Emily K SaylorsFranceXuxue Feng UNQUALIFIED

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