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
Nicolas A MarrierSpainAsiya Javayant RENEWAL
Cody D PerinCanadaAnna Fali QUALIFIED
Julie U NickaBrazilAsiya Javayant NEGOTIATION
Aika O RulapaughUnited KingdomAnna Fali NEW
Morrow P PoquetteGermanyStephen Shaw RENEWAL
Rodrigues W GlickSpainIvan Magalhaes PROPOSAL
Juan L MaletGermanyIvan Magalhaes UNQUALIFIED
Izzy L AlbaresArgentinaAmy Elsner NEW
Munro C IturbideRussiaIvan Magalhaes QUALIFIED
Rodrigues L BowleyItalyOnyama Limba UNQUALIFIED
Clifford O PaprockiCanadaOnyama Limba UNQUALIFIED
Kaitlin Q ShinkoFranceAsiya Javayant QUALIFIED
Alejandro F BologniaRussiaAnna Fali NEGOTIATION
Smith S KuskoCanadaElwin Sharvill NEW
Nicolas Y GlickJapanAsiya Javayant QUALIFIED
James L GillianBrazilBernardo Dominic NEW
James R WhobreyIndiaAsiya Javayant NEW
Clifford H SergiSpainIvan Magalhaes RENEWAL
Julie J DoeAustraliaStephen Shaw QUALIFIED
Kadeem T BologniaGermanyOnyama Limba QUALIFIED
Costa L StensethIndiaStephen Shaw QUALIFIED
Faith F RutaUnited KingdomOnyama Limba RENEWAL
Nicolas Q MorascaAustraliaIoni Bowcher NEW
Murillo B DarakjySpainAnna Fali NEW
Leja K PerinArgentinaAsiya Javayant NEGOTIATION
Claire L SchemmerFranceXuxue Feng UNQUALIFIED
Arvin L BologniaIndiaStephen Shaw RENEWAL
Maisha R PerinFranceIoni Bowcher NEW
David T NickaRussiaIvan Magalhaes QUALIFIED
Maisha B ButtBrazilAmy Elsner NEW
Salvatore K WieserItalyIvan Magalhaes NEW
Adams N SchemmerUnited KingdomIvan Magalhaes NEW
David M PoquetteAustraliaAmy Elsner UNQUALIFIED
Ivar L StensethBrazilAmy Elsner NEGOTIATION
Cody U AmigonGermanyElwin Sharvill NEGOTIATION
James T AmigonItalyAnna Fali NEGOTIATION
Julie B DoeRussiaAnna Fali UNQUALIFIED
James W AlbaresIndiaBernardo Dominic NEGOTIATION
Izzy U NickaUnited KingdomBernardo Dominic PROPOSAL
Stacey J GauchoUnited KingdomIoni Bowcher QUALIFIED
Tony Q IturbideArgentinaBernardo Dominic RENEWAL
Silvio H RutaGermanyStephen Shaw PROPOSAL
Jeanfrancois S BowleyArgentinaOnyama Limba NEW
Stacey M ChuiJapanStephen Shaw NEW
Ashley N VenereUnited KingdomStephen Shaw QUALIFIED
Francesco E SchemmerSpainAsiya Javayant UNQUALIFIED
Johnson X KolmetzCanadaOnyama Limba NEGOTIATION
David C MacleadItalyAmy Elsner NEW
Tony K OstroskyCanadaAmy Elsner NEGOTIATION
Nicolas H NestleFranceAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford P FerenczSpainIoni Bowcher NEGOTIATION
Arvin E CaldareraCanadaXuxue Feng QUALIFIED
Salvatore D GlickJapanXuxue Feng QUALIFIED
Aditya V RoysterGermanyElwin Sharvill UNQUALIFIED
Clifford N InouyeCanadaAmy Elsner QUALIFIED
Mayumi I FerenczBrazilAmy Elsner QUALIFIED
Ricardo I MorascaSpainXuxue Feng PROPOSAL
Francesco J RoysterSpainAmy Elsner NEW
Costa C DilliardGermanyAsiya Javayant QUALIFIED
Cody X RulapaughFranceIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem W SaylorsBrazil2026-08-13Rangoni Of Florence NEW69Amy Elsner
1001Salvatore U RulapaughRussia2026-07-29Rangoni Of Florence NEW46Anna Fali
1002James Q SaylorsIndia2026-07-31Truhlar And Truhlar Attys NEW69Anna Fali
1003Kaitlin T KolmetzItaly2026-08-05Rangoni Of Florence PROPOSAL41Bernardo Dominic
1004Ashley J RimArgentina2026-08-03Chemel, James L Cpa NEGOTIATION47Anna Fali
1005Mujtaba R ChuiJapan2026-08-21Printing Dimensions RENEWAL78Bernardo Dominic
1006James U KuskoBrazil2026-08-19Chemel, James L Cpa NEGOTIATION18Xuxue Feng
1007Leja X PoquetteRussia2026-07-31Chemel, James L Cpa NEGOTIATION29Amy Elsner
1008Chavez D FlosiBrazil2026-08-04Chapman, Ross E Esq UNQUALIFIED56Onyama Limba
1009Ashley A FlosiCanada2026-08-05Commercial Press RENEWAL64Anna Fali
1010Aika P PaprockiFrance2026-08-22Dorl, James J Esq NEW64Elwin Sharvill
1011Ivar C TollnerJapan2026-08-05Benton, John B Jr NEW34Bernardo Dominic
1012Ivar E BowleyCanada2026-08-23Feltz Printing Service RENEWAL88Elwin Sharvill
1013Jennifer K OldroydBrazil2026-08-08King, Christopher A Esq NEW27Xuxue Feng
1014Greenwood O SlusarskiArgentina2026-08-27Buckley Miller Wright NEGOTIATION16Xuxue Feng
1015Antonio C DarakjyRussia2026-08-27Chanay, Jeffrey A Esq NEW87Xuxue Feng
1016Octavia X IturbideGermany2026-08-11Chemel, James L Cpa NEW56Ioni Bowcher
1017Smith U BologniaGermany2026-08-05Chanay, Jeffrey A Esq NEW18Ivan Magalhaes
1018Antonio W FerenczIndia2026-08-04Commercial Press NEGOTIATION97Asiya Javayant
1019Deepesh N MaletItaly2026-08-02Commercial Press QUALIFIED89Ivan Magalhaes
1020Jeanfrancois X CaudyJapan2026-08-08Feiner Bros QUALIFIED16Amy Elsner
1021Claire L PoquetteCanada2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED19Bernardo Dominic
1022Octavia U MacleadJapan2026-08-05Printing Dimensions RENEWAL51Xuxue Feng
1023Rodrigues X StensethRussia2026-08-14Morlong Associates QUALIFIED92Ivan Magalhaes
1024Stacey B StensethIndia2026-08-18Dorl, James J Esq QUALIFIED70Bernardo Dominic
1025Rodrigues I IturbideCanada2026-08-08Dorl, James J Esq NEW44Ivan Magalhaes
1026Stacey W MarrierArgentina2026-08-13Truhlar And Truhlar Attys NEGOTIATION40Amy Elsner
1027Leon X FerenczAustralia2026-08-13Chemel, James L Cpa NEW6Amy Elsner
1028Aika A InouyeRussia2026-07-30Rangoni Of Florence RENEWAL49Ivan Magalhaes
1029Tony Y FigeroaItaly2026-08-25Feltz Printing Service RENEWAL24Asiya Javayant
1030Kaitlin C DilliardSpain2026-08-04Dorl, James J Esq NEGOTIATION55Elwin Sharvill
1031Francesco V TollnerIndia2026-08-15Rangoni Of Florence RENEWAL22Anna Fali
1032Costa E WaycottGermany2026-08-12Rangoni Of Florence UNQUALIFIED19Amy Elsner
1033Faith N MarrierFrance2026-08-18Chemel, James L Cpa RENEWAL12Elwin Sharvill
1034Aditya W DoeUnited Kingdom2026-08-18Rousseaux, Michael Esq QUALIFIED2Anna Fali
1035James B FerenczCanada2026-08-12Truhlar And Truhlar Attys NEW45Ivan Magalhaes
1036Izzy C BologniaBrazil2026-08-05Chapman, Ross E Esq RENEWAL71Elwin Sharvill
1037Clifford H KuskoSpain2026-08-20Rangoni Of Florence QUALIFIED67Anna Fali
1038Antonio B KuskoBrazil2026-08-01Benton, John B Jr QUALIFIED96Stephen Shaw
1039Misaki S WaycottArgentina2026-08-12Truhlar And Truhlar Attys NEW20Xuxue Feng
1040Costa T FerenczRussia2026-08-04Rousseaux, Michael Esq UNQUALIFIED73Amy Elsner
1041Jefferson G SlusarskiRussia2026-08-09Dorl, James J Esq NEW18Amy Elsner
1042Murillo N RimIndia2026-08-07Rangoni Of Florence PROPOSAL84Bernardo Dominic
1043Deepesh Z NickaSpain2026-08-04Truhlar And Truhlar Attys UNQUALIFIED77Elwin Sharvill
1044Izzy M GlickIndia2026-08-26King, Christopher A Esq RENEWAL7Asiya Javayant
1045Silvio Y CaldareraItaly2026-08-08King, Christopher A Esq PROPOSAL17Amy Elsner
1046Maisha I VocelkaCanada2026-08-15Buckley Miller Wright NEGOTIATION27Ioni Bowcher
1047Misaki K DoeAustralia2026-08-14Morlong Associates NEW96Bernardo Dominic
1048Alejandro C DarakjyIndia2026-08-12Commercial Press PROPOSAL36Bernardo Dominic
1049Jennifer X RutaRussia2026-08-16King, Christopher A Esq NEGOTIATION17Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Nicolas B PaprockiJapanBernardo Dominic PROPOSAL
Isabel Y NestleBrazilOnyama Limba QUALIFIED
Leon U SaylorsSpainAnna Fali PROPOSAL
David J CaudyArgentinaIvan Magalhaes PROPOSAL
Murillo Y FerenczUnited KingdomAmy Elsner NEGOTIATION
Johnson V CaudyCanadaStephen Shaw RENEWAL
Alejandro O MacleadItalyXuxue Feng UNQUALIFIED
Faith E NickaArgentinaAsiya Javayant UNQUALIFIED
Misaki G PerinGermanyElwin Sharvill NEW
Antonio L CaldareraJapanElwin Sharvill NEGOTIATION
David T SchemmerAustraliaAnna Fali RENEWAL
Adams U WhobreyItalyXuxue Feng QUALIFIED
Misaki P CampainBrazilIvan Magalhaes QUALIFIED
Sinclair N FlosiItalyAsiya Javayant UNQUALIFIED
Antonio G VocelkaArgentinaAnna Fali RENEWAL
Munro Y StensethIndiaAmy Elsner PROPOSAL
Juan R DarakjyRussiaOnyama Limba QUALIFIED
Octavia L AmigonArgentinaStephen Shaw QUALIFIED
Ashley H RulapaughBrazilAmy Elsner NEGOTIATION
Wickens G CampainRussiaAmy Elsner RENEWAL
Jones C CaldareraSpainBernardo Dominic PROPOSAL
Alejandro S FlosiAustraliaAnna Fali PROPOSAL
Greenwood C SchemmerCanadaAmy Elsner NEGOTIATION
Mujtaba H KolmetzItalyBernardo Dominic UNQUALIFIED
Morrow U OstroskyRussiaIvan Magalhaes PROPOSAL
Kaitlin E AmigonBrazilIvan Magalhaes PROPOSAL
Darci H AlbaresAustraliaAnna Fali QUALIFIED
Julie L DarakjySpainStephen Shaw NEW
Juan J RimIndiaXuxue Feng UNQUALIFIED
Stacey S InouyeIndiaElwin Sharvill NEGOTIATION
Misaki P CampainRussiaAnna Fali QUALIFIED
Adams A KolmetzGermanyStephen Shaw UNQUALIFIED
Ashley R IturbideIndiaBernardo Dominic NEW
Tony E ChuiItalyIvan Magalhaes PROPOSAL
Morrow Z MorascaJapanOnyama Limba NEW
Adams V BowleyRussiaAsiya Javayant RENEWAL
Nicolas A CampainJapanBernardo Dominic QUALIFIED
Stacey K OstroskyRussiaBernardo Dominic QUALIFIED
Leon U VocelkaGermanyOnyama Limba RENEWAL
Stacey V GillianGermanyBernardo Dominic QUALIFIED
Leja W FlosiIndiaIvan Magalhaes QUALIFIED
Francesco I ChuiGermanyIoni Bowcher PROPOSAL
Emily Z DoeIndiaAmy Elsner UNQUALIFIED
Jefferson T KuskoIndiaXuxue Feng NEW
Faith L FigeroaIndiaAsiya Javayant PROPOSAL
Salvatore M MaletArgentinaAmy Elsner UNQUALIFIED
Arvin J CaldareraAustraliaStephen Shaw QUALIFIED
Arvin W PoquetteBrazilIoni Bowcher RENEWAL
Aika I MorascaFranceAmy Elsner NEW
Jones R OldroydItalyAnna Fali UNQUALIFIED
Frozen Columns
Name
Ivar F Gaucho
Kadeem Z Royster
Ivar D Albares
Jefferson G Nestle
Faith C Oldroyd
Izzy U Flosi
Murillo V Caudy
Kadeem U Kolmetz
Cody E Wieser
Alejandro P Rim
Mujtaba P Briddick
Stacey R Chui
Misaki C Marrier
Jefferson N Darakjy
Nicolas H Figeroa
Izzy V Flosi
Morrow J Malet
Faith S Bolognia
Mujtaba N Nestle
Isabel Q Ferencz
Kadeem L Kusko
Murillo L Rulapaugh
Adams A Malet
Kadeem I Ruta
Wickens G Bowley
Mujtaba K Rulapaugh
James H Darakjy
Deepesh K Shinko
Misaki A Inouye
Rodrigues C Marrier
Kadeem B Campain
Jones B Gaucho
Leja J Royster
Francesco O Butt
Rodrigues Q Tollner
Arvin A Shinko
Ivar N Dilliard
Izzy D Schemmer
Faith J Sergi
Francesco I Gaucho
Arvin T Kolmetz
Juan T Iturbide
Greenwood Z Stockham
Misaki B Stenseth
Morrow E Nestle
Julie Y Malet
Murillo R Caldarera
Leon X Schemmer
Rodrigues L Royster
Claire O Waycott
IdCountryDate
1000Spain2026-08-13
1001India2026-08-06
1002Russia2026-08-18
1003Argentina2026-08-16
1004United Kingdom2026-08-10
1005Germany2026-08-17
1006Japan2026-08-26
1007France2026-07-31
1008Brazil2026-08-14
1009United Kingdom2026-08-06
1010Brazil2026-08-05
1011Argentina2026-08-11
1012United Kingdom2026-08-20
1013United Kingdom2026-08-09
1014Canada2026-08-21
1015France2026-07-29
1016Russia2026-08-27
1017Japan2026-08-12
1018United Kingdom2026-08-16
1019Russia2026-08-01
1020Spain2026-08-09
1021Argentina2026-08-21
1022France2026-08-12
1023Australia2026-08-07
1024Canada2026-07-30
1025Spain2026-08-03
1026India2026-08-08
1027Argentina2026-08-01
1028Japan2026-08-06
1029Russia2026-08-26
1030France2026-08-20
1031Italy2026-08-25
1032France2026-07-31
1033India2026-07-29
1034Brazil2026-08-19
1035Russia2026-08-04
1036Brazil2026-08-04
1037Australia2026-08-16
1038Brazil2026-08-18
1039Italy2026-08-12
1040Germany2026-08-08
1041Germany2026-08-20
1042Japan2026-08-22
1043France2026-08-09
1044Spain2026-08-09
1045Italy2026-08-20
1046Spain2026-08-19
1047United Kingdom2026-08-08
1048Russia2026-08-19
1049Brazil2026-08-23

On-Demand Data

NameIdCountryDate
Leon S Paprocki1000Italy2026-08-14
Antonio G Stockham1001Russia2026-08-08
Jennifer J Royster1002Argentina2026-08-12
Deepesh L Waycott1003India2026-08-20
Ivar J Ruta1004Italy2026-08-13
Morrow D Ostrosky1005Canada2026-08-02
Claire K Albares1006Spain2026-08-11
Julie T Ruta1007Argentina2026-08-10
Juan I Kolmetz1008Spain2026-08-21
Rodrigues N Darakjy1009India2026-07-29
Antonio X Ferencz1010Argentina2026-07-31
Mayumi W Figeroa1011United Kingdom2026-08-01
Munro X Butt1012Australia2026-08-05
Kaitlin K Stockham1013Japan2026-08-08
Francesco T Rim1014Italy2026-08-07
Antonio H Bowley1015Argentina2026-08-08
Isabel Z Butt1016Australia2026-08-05
Francesco P Poquette1017Argentina2026-08-23
Jefferson D Ferencz1018United Kingdom2026-08-24
Izzy O Tollner1019India2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio I BowleyUnited KingdomIvan Magalhaes PROPOSAL
Faith V AmigonSpainIoni Bowcher NEW
Julie O SlusarskiGermanyIvan Magalhaes NEW
Smith J CampainItalyAnna Fali UNQUALIFIED
Emily O SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Smith B ShinkoItalyXuxue Feng QUALIFIED
Costa B FerenczIndiaAmy Elsner QUALIFIED
David C SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Leja T TollnerCanadaOnyama Limba UNQUALIFIED
Deepesh E RimUnited KingdomElwin Sharvill QUALIFIED
Ivar I DoeIndiaStephen Shaw PROPOSAL
Chavez Q FlosiItalyAnna Fali NEGOTIATION
Ashley E MaletFranceIoni Bowcher NEW
Silvio D AmigonIndiaAsiya Javayant RENEWAL
Mayumi A GillianArgentinaElwin Sharvill NEW
Antonio R MaletArgentinaIoni Bowcher NEGOTIATION
Leon T RulapaughItalyAnna Fali PROPOSAL
Maisha K InouyeRussiaElwin Sharvill UNQUALIFIED
Claire D WieserIndiaAmy Elsner QUALIFIED
Ricardo M PerinSpainIvan Magalhaes QUALIFIED
Silvio D AmigonJapanElwin Sharvill NEGOTIATION
Alejandro W VenereIndiaElwin Sharvill UNQUALIFIED
Deepesh W RoysterIndiaAsiya Javayant NEGOTIATION
Claire Q WaycottGermanyAsiya Javayant QUALIFIED
Arvin V GlickRussiaBernardo Dominic UNQUALIFIED
Claire P GauchoCanadaAnna Fali NEW
Isabel K StockhamIndiaAsiya Javayant NEW
Sinclair O OldroydJapanAnna Fali PROPOSAL
Julie O MorascaArgentinaStephen Shaw QUALIFIED
Smith L GauchoGermanyAnna Fali NEGOTIATION
Emily D KolmetzJapanAmy Elsner UNQUALIFIED
Mujtaba K MaletGermanyAmy Elsner NEW
Arvin T InouyeGermanyElwin Sharvill NEGOTIATION
Octavia E MaletAustraliaAmy Elsner RENEWAL
Ivar V CaudyRussiaBernardo Dominic PROPOSAL
Silvio I TollnerAustraliaElwin Sharvill RENEWAL
Kadeem O ShinkoIndiaBernardo Dominic RENEWAL
Kadeem H GarufiFranceIoni Bowcher NEGOTIATION
Tony M KolmetzRussiaAmy Elsner PROPOSAL
Ashley I GillianRussiaXuxue Feng NEW

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