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 P VocelkaUnited KingdomAnna Fali QUALIFIED
Darci V MacleadUnited KingdomAsiya Javayant NEGOTIATION
Morrow B IturbideGermanyBernardo Dominic QUALIFIED
Tony S StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Johnson M NickaUnited KingdomIoni Bowcher RENEWAL
Misaki E VenereIndiaOnyama Limba NEGOTIATION
Darci T SchemmerRussiaIvan Magalhaes RENEWAL
Jeanfrancois P AmigonGermanyElwin Sharvill PROPOSAL
Mayumi I ButtGermanyIoni Bowcher RENEWAL
Chavez N SaylorsRussiaXuxue Feng NEGOTIATION
Francesco D NestleJapanBernardo Dominic NEW
Darci Y MarrierIndiaOnyama Limba RENEWAL
Murillo U FollerArgentinaStephen Shaw QUALIFIED
Arvin O KolmetzBrazilIvan Magalhaes NEGOTIATION
Deepesh G GauchoFranceStephen Shaw PROPOSAL
Misaki U VocelkaFranceIvan Magalhaes NEW
Aruna H CampainSpainIoni Bowcher PROPOSAL
Munro O NestleAustraliaAsiya Javayant PROPOSAL
Cody T GillianRussiaIvan Magalhaes QUALIFIED
Izzy Q DarakjyArgentinaAmy Elsner UNQUALIFIED
Misaki A DarakjyIndiaOnyama Limba RENEWAL
Ashley W PerinJapanElwin Sharvill UNQUALIFIED
James O MarrierJapanElwin Sharvill RENEWAL
Tony I CaudyCanadaIoni Bowcher NEW
Emily M FlosiIndiaOnyama Limba PROPOSAL
Jones G RutaGermanyStephen Shaw NEW
Wickens M MorascaGermanyStephen Shaw RENEWAL
Costa E NickaAustraliaStephen Shaw NEGOTIATION
Alejandro L BologniaGermanyIvan Magalhaes RENEWAL
Emily Q FigeroaRussiaAsiya Javayant RENEWAL
Antonio C RimArgentinaAmy Elsner PROPOSAL
Sinclair T MacleadIndiaAsiya Javayant PROPOSAL
Ashley P VocelkaBrazilStephen Shaw NEW
Darci J MaletGermanyAmy Elsner NEGOTIATION
Arvin M RulapaughBrazilOnyama Limba RENEWAL
Antonio U MaletSpainXuxue Feng NEGOTIATION
Aruna F AmigonArgentinaAmy Elsner NEGOTIATION
Leja U MarrierCanadaIoni Bowcher RENEWAL
David D PaprockiIndiaXuxue Feng NEGOTIATION
Leja Q RutaUnited KingdomIvan Magalhaes PROPOSAL
Clifford C ButtArgentinaBernardo Dominic UNQUALIFIED
Aruna K AmigonIndiaStephen Shaw QUALIFIED
Jones X IturbideCanadaAnna Fali PROPOSAL
Deepesh E FollerUnited KingdomIvan Magalhaes QUALIFIED
Francesco G RoysterIndiaIoni Bowcher PROPOSAL
Faith W SlusarskiFranceElwin Sharvill PROPOSAL
Francesco A MorascaCanadaXuxue Feng PROPOSAL
Faith V SlusarskiRussiaAnna Fali NEW
Morrow M NickaSpainAnna Fali PROPOSAL
Octavia N MaletAustraliaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio K IturbideFranceBernardo Dominic RENEWAL
Wickens G PerinArgentinaIvan Magalhaes NEW
Deepesh M OldroydJapanXuxue Feng PROPOSAL
Faith T VocelkaAustraliaBernardo Dominic RENEWAL
Costa H GillianIndiaOnyama Limba NEW
Cody B ShinkoJapanAsiya Javayant RENEWAL
James Q MaletJapanAmy Elsner NEW
Misaki J InouyeSpainStephen Shaw NEW
Kadeem H RoysterArgentinaIoni Bowcher NEW
Ashley X BriddickUnited KingdomIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci U GillianGermany2026-08-09Feiner Bros QUALIFIED66Onyama Limba
1001Aditya N ChuiUnited Kingdom2026-07-27King, Christopher A Esq NEW67Elwin Sharvill
1002Leon F KolmetzJapan2026-08-12Rousseaux, Michael Esq RENEWAL24Asiya Javayant
1003Chavez B StensethGermany2026-08-03Feltz Printing Service RENEWAL41Anna Fali
1004Darci N KuskoIndia2026-07-30Morlong Associates UNQUALIFIED88Elwin Sharvill
1005Isabel G BologniaUnited Kingdom2026-08-09Rangoni Of Florence UNQUALIFIED61Elwin Sharvill
1006James U PaprockiFrance2026-07-24Rangoni Of Florence NEW54Elwin Sharvill
1007Faith V BowleyRussia2026-07-31Truhlar And Truhlar Attys PROPOSAL42Elwin Sharvill
1008Jennifer A MacleadBrazil2026-07-29Chanay, Jeffrey A Esq QUALIFIED49Xuxue Feng
1009Sinclair I SchemmerBrazil2026-08-07Benton, John B Jr QUALIFIED34Bernardo Dominic
1010Clifford S MaletCanada2026-08-11Chemel, James L Cpa UNQUALIFIED12Anna Fali
1011Maisha V RulapaughJapan2026-08-03Feltz Printing Service NEGOTIATION16Stephen Shaw
1012Clifford C VenereBrazil2026-07-26Rousseaux, Michael Esq QUALIFIED48Stephen Shaw
1013Izzy X DilliardCanada2026-07-28Feiner Bros PROPOSAL4Onyama Limba
1014Costa H DoeItaly2026-08-06Dorl, James J Esq NEW39Xuxue Feng
1015Arvin B MarrierCanada2026-07-25King, Christopher A Esq RENEWAL21Amy Elsner
1016Faith G PaprockiAustralia2026-07-28Morlong Associates UNQUALIFIED97Ioni Bowcher
1017Stacey C KolmetzSpain2026-08-19Benton, John B Jr RENEWAL17Ivan Magalhaes
1018Nicolas A SchemmerIndia2026-08-20Benton, John B Jr PROPOSAL40Anna Fali
1019Jones G StensethAustralia2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED21Bernardo Dominic
1020Jones O WhobreyFrance2026-08-19Dorl, James J Esq NEW57Onyama Limba
1021David M ChuiJapan2026-08-15Truhlar And Truhlar Attys RENEWAL51Onyama Limba
1022Jennifer U WaycottSpain2026-08-17Printing Dimensions QUALIFIED0Ivan Magalhaes
1023Salvatore Z BologniaGermany2026-07-22Feiner Bros RENEWAL83Ioni Bowcher
1024Costa H DoeGermany2026-08-02Feltz Printing Service NEW67Ioni Bowcher
1025Arvin T AlbaresGermany2026-07-24Rangoni Of Florence UNQUALIFIED54Ioni Bowcher
1026Stacey H PoquetteUnited Kingdom2026-08-01Rangoni Of Florence NEGOTIATION61Elwin Sharvill
1027Salvatore L GarufiGermany2026-08-13Truhlar And Truhlar Attys NEGOTIATION31Xuxue Feng
1028Ashley C RimGermany2026-08-20Benton, John B Jr UNQUALIFIED49Ioni Bowcher
1029Francesco W OldroydArgentina2026-08-01Benton, John B Jr NEW20Ivan Magalhaes
1030Aika A PoquetteRussia2026-07-23Printing Dimensions NEW58Elwin Sharvill
1031Jennifer K IturbideFrance2026-07-28Chapman, Ross E Esq NEGOTIATION28Stephen Shaw
1032Adams O IturbideRussia2026-07-29Chanay, Jeffrey A Esq RENEWAL83Elwin Sharvill
1033Deepesh F VocelkaArgentina2026-07-26King, Christopher A Esq RENEWAL74Amy Elsner
1034Leja P SergiIndia2026-08-16Benton, John B Jr QUALIFIED46Elwin Sharvill
1035Ashley P PoquetteIndia2026-07-23Morlong Associates UNQUALIFIED77Elwin Sharvill
1036Morrow I MorascaItaly2026-07-26Printing Dimensions NEW61Amy Elsner
1037Jeanfrancois E VocelkaSpain2026-08-08Truhlar And Truhlar Attys UNQUALIFIED1Ivan Magalhaes
1038Aditya E VocelkaUnited Kingdom2026-08-10Buckley Miller Wright RENEWAL7Ivan Magalhaes
1039Salvatore M KolmetzItaly2026-08-02Feiner Bros NEGOTIATION57Ivan Magalhaes
1040Emily N TollnerSpain2026-07-25Rousseaux, Michael Esq PROPOSAL65Onyama Limba
1041Stacey A OstroskyItaly2026-08-05Rangoni Of Florence RENEWAL8Amy Elsner
1042Wickens T BowleyBrazil2026-07-29King, Christopher A Esq NEGOTIATION57Bernardo Dominic
1043Octavia P ButtUnited Kingdom2026-08-02Feiner Bros QUALIFIED60Anna Fali
1044Nicolas F AlbaresBrazil2026-07-25Benton, John B Jr QUALIFIED81Asiya Javayant
1045Francesco H NickaBrazil2026-08-20Chapman, Ross E Esq UNQUALIFIED46Elwin Sharvill
1046Octavia X NestleJapan2026-07-27Dorl, James J Esq QUALIFIED14Asiya Javayant
1047Clifford C DarakjySpain2026-08-19Feiner Bros NEW94Elwin Sharvill
1048Faith S MorascaArgentina2026-08-11King, Christopher A Esq UNQUALIFIED2Stephen Shaw
1049Claire A MacleadSpain2026-07-24Truhlar And Truhlar Attys NEW19Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Smith W WieserUnited KingdomIvan Magalhaes NEW
Aditya L WaycottAustraliaBernardo Dominic UNQUALIFIED
Ivar X RulapaughArgentinaBernardo Dominic NEGOTIATION
Stacey J SergiRussiaOnyama Limba UNQUALIFIED
Jennifer F GillianBrazilAmy Elsner NEW
Ashley V CampainAustraliaElwin Sharvill NEW
Julie S GarufiIndiaIvan Magalhaes PROPOSAL
Clifford X CaudyFranceBernardo Dominic NEW
Mujtaba P FigeroaIndiaStephen Shaw UNQUALIFIED
James T KuskoIndiaStephen Shaw NEGOTIATION
Alejandro P NestleBrazilIoni Bowcher NEGOTIATION
Juan Q CampainArgentinaIoni Bowcher NEGOTIATION
Tony E AmigonItalyOnyama Limba RENEWAL
Jefferson J KuskoRussiaIoni Bowcher UNQUALIFIED
Ivar R FerenczBrazilAsiya Javayant NEW
Darci W DarakjyRussiaElwin Sharvill PROPOSAL
Jennifer G NickaJapanAnna Fali NEW
Kaitlin J RoysterJapanStephen Shaw RENEWAL
Emily G WhobreyArgentinaIoni Bowcher UNQUALIFIED
Francesco L StensethArgentinaAnna Fali RENEWAL
Claire C ButtItalyXuxue Feng PROPOSAL
Morrow S RoysterCanadaAsiya Javayant QUALIFIED
Arvin M ChuiArgentinaIvan Magalhaes QUALIFIED
Aika A FlosiItalyElwin Sharvill UNQUALIFIED
Ricardo L CaldareraCanadaBernardo Dominic UNQUALIFIED
Antonio D GarufiIndiaAsiya Javayant UNQUALIFIED
Stacey Q VenereUnited KingdomAmy Elsner QUALIFIED
Antonio C ChuiGermanyAmy Elsner NEGOTIATION
Silvio H WaycottRussiaIoni Bowcher QUALIFIED
Aditya H MorascaFranceStephen Shaw NEW
Nicolas R CaldareraItalyStephen Shaw NEGOTIATION
Misaki T StockhamItalyIoni Bowcher UNQUALIFIED
Aika H RulapaughGermanyXuxue Feng RENEWAL
Cody A DoeBrazilBernardo Dominic UNQUALIFIED
Kadeem Y FlosiBrazilOnyama Limba NEW
Arvin Z RutaBrazilAmy Elsner NEW
Mujtaba F GauchoSpainIvan Magalhaes NEW
Kadeem V CaldareraCanadaBernardo Dominic QUALIFIED
Ricardo M BriddickBrazilElwin Sharvill PROPOSAL
David R VenereItalyOnyama Limba UNQUALIFIED
David E DarakjySpainIoni Bowcher RENEWAL
Costa K CaudyArgentinaAmy Elsner QUALIFIED
Antonio E FigeroaFranceIvan Magalhaes UNQUALIFIED
Maria S PaprockiJapanBernardo Dominic NEW
Aditya R TollnerFranceIoni Bowcher UNQUALIFIED
Jeanfrancois D FlosiBrazilXuxue Feng UNQUALIFIED
Octavia K InouyeJapanElwin Sharvill NEW
Kadeem C GillianGermanyAmy Elsner NEW
Leja Q VocelkaAustraliaAnna Fali NEGOTIATION
Aika X DoeJapanAsiya Javayant PROPOSAL
Frozen Columns
Name
Cody V Perin
Ashley Y Perin
Kadeem R Butt
Mayumi X Malet
Julie B Oldroyd
Adams B Waycott
Johnson O Chui
Stacey Q Morasca
Salvatore T Bolognia
Julie N Butt
Mayumi S Iturbide
David P Ferencz
Juan V Poquette
Rodrigues R Bowley
Sinclair D Briddick
James Q Nicka
Alejandro U Rim
James V Gillian
Smith S Morasca
Tony S Schemmer
Juan R Caudy
James B Oldroyd
Isabel E Venere
Julie Q Briddick
Ivar A Bolognia
James L Shinko
Aruna Z Malet
Kadeem Z Morasca
Francesco E Vocelka
Ivar K Ferencz
Darci E Campain
Francesco J Poquette
Greenwood Z Venere
Clifford C Caldarera
Julie D Ruta
Sinclair M Foller
Jones X Shinko
Silvio P Gillian
Francesco E Saylors
Deepesh D Oldroyd
Arvin A Nicka
Mayumi V Ruta
Smith R Venere
Aika S Albares
Jeanfrancois D Albares
Salvatore M Wieser
Morrow K Foller
Sinclair E Albares
Silvio W Briddick
Morrow X Royster
IdCountryDate
1000Spain2026-08-08
1001Canada2026-08-01
1002Spain2026-07-29
1003Australia2026-07-23
1004United Kingdom2026-08-08
1005Germany2026-07-28
1006Canada2026-08-08
1007Germany2026-07-29
1008Japan2026-08-03
1009Brazil2026-08-11
1010Canada2026-08-18
1011Brazil2026-08-20
1012Argentina2026-08-14
1013Argentina2026-07-22
1014United Kingdom2026-08-19
1015Canada2026-08-14
1016Argentina2026-07-25
1017Germany2026-08-01
1018Argentina2026-08-16
1019Argentina2026-08-19
1020Spain2026-08-01
1021Australia2026-07-30
1022Australia2026-07-29
1023Japan2026-07-27
1024United Kingdom2026-07-28
1025Australia2026-08-18
1026Argentina2026-08-09
1027France2026-08-03
1028India2026-08-12
1029Australia2026-08-14
1030United Kingdom2026-08-09
1031Russia2026-08-15
1032India2026-08-01
1033Germany2026-08-20
1034Brazil2026-08-10
1035France2026-08-13
1036Italy2026-07-24
1037Spain2026-07-26
1038Germany2026-08-19
1039Canada2026-08-11
1040Japan2026-07-25
1041Italy2026-08-16
1042Italy2026-08-19
1043France2026-08-02
1044Italy2026-07-25
1045Canada2026-07-23
1046France2026-08-01
1047Brazil2026-08-07
1048Germany2026-07-25
1049Argentina2026-08-18

On-Demand Data

NameIdCountryDate
Claire C Marrier1000India2026-08-01
Smith Z Morasca1001India2026-07-28
Izzy A Flosi1002United Kingdom2026-07-23
Francesco O Amigon1003Australia2026-08-01
Ricardo O Albares1004France2026-08-03
Mayumi V Garufi1005Brazil2026-07-23
Juan S Perin1006Japan2026-08-17
Aruna P Dilliard1007Germany2026-07-31
Darci U Kusko1008Germany2026-07-30
Octavia N Maclead1009Canada2026-08-05
Silvio S Bowley1010Russia2026-07-28
Darci I Oldroyd1011Germany2026-08-08
James Y Whobrey1012Italy2026-08-18
Tony A Butt1013Argentina2026-07-25
Ivar O Schemmer1014Brazil2026-08-14
David G Wieser1015Canada2026-08-04
Darci P Dilliard1016Japan2026-07-31
Costa V Doe1017Brazil2026-08-01
James T Marrier1018Italy2026-08-04
Jeanfrancois M Ostrosky1019Germany2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya J MacleadGermanyXuxue Feng NEW
Julie U DarakjyGermanyIoni Bowcher QUALIFIED
Aditya A FlosiGermanyIvan Magalhaes UNQUALIFIED
Arvin X KolmetzCanadaAsiya Javayant UNQUALIFIED
Wickens L RoysterItalyXuxue Feng NEGOTIATION
Mujtaba X MaletSpainAsiya Javayant QUALIFIED
Johnson J CampainGermanyStephen Shaw NEW
Isabel B BologniaBrazilXuxue Feng NEGOTIATION
Greenwood S MarrierAustraliaAsiya Javayant PROPOSAL
Izzy K FigeroaJapanIvan Magalhaes RENEWAL
Deepesh Y NickaAustraliaAsiya Javayant RENEWAL
Deepesh X KolmetzArgentinaOnyama Limba NEW
Adams M ShinkoItalyIoni Bowcher NEGOTIATION
Tony Z CaudyItalyIvan Magalhaes PROPOSAL
Leon F MorascaRussiaBernardo Dominic UNQUALIFIED
Ricardo S FerenczArgentinaOnyama Limba RENEWAL
Jones P IturbideItalyAnna Fali NEW
Costa M BriddickItalyXuxue Feng PROPOSAL
Izzy I RutaArgentinaAmy Elsner UNQUALIFIED
Leja F NickaIndiaStephen Shaw NEW
Leon S ButtCanadaStephen Shaw PROPOSAL
Rodrigues F BriddickAustraliaAmy Elsner PROPOSAL
Jennifer D KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Wickens M MacleadBrazilOnyama Limba NEW
Smith R SergiGermanyAmy Elsner RENEWAL
Adams N BriddickIndiaXuxue Feng NEGOTIATION
Jefferson F CaudySpainIvan Magalhaes NEGOTIATION
Johnson O DoeArgentinaOnyama Limba NEGOTIATION
Julie P NestleAustraliaIoni Bowcher QUALIFIED
Clifford N ChuiArgentinaAnna Fali NEGOTIATION
Darci A InouyeBrazilStephen Shaw QUALIFIED
Misaki D StockhamGermanyStephen Shaw NEW
Maisha Z NestleSpainIvan Magalhaes PROPOSAL
Faith L StockhamIndiaAsiya Javayant RENEWAL
Izzy I VocelkaGermanyAnna Fali NEW
Jefferson Q KuskoBrazilElwin Sharvill RENEWAL
Maria M MaletArgentinaBernardo Dominic QUALIFIED
Sinclair V RutaRussiaAnna Fali NEGOTIATION
Munro F ButtJapanOnyama Limba NEGOTIATION
Juan X TollnerCanadaXuxue Feng 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>