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
Cody M KuskoIndiaElwin Sharvill NEGOTIATION
Ricardo J DoeCanadaStephen Shaw NEGOTIATION
Aika C MarrierBrazilIoni Bowcher QUALIFIED
Nicolas M GarufiBrazilBernardo Dominic NEGOTIATION
Antonio S ButtGermanyIvan Magalhaes UNQUALIFIED
Wickens Z RimJapanIoni Bowcher RENEWAL
Jones F MacleadItalyElwin Sharvill UNQUALIFIED
Kaitlin R MorascaGermanyIoni Bowcher QUALIFIED
Murillo G NestleGermanyAsiya Javayant NEW
Nicolas W AlbaresSpainXuxue Feng PROPOSAL
Salvatore I CampainAustraliaStephen Shaw QUALIFIED
Jefferson F DilliardArgentinaXuxue Feng PROPOSAL
Jones A ChuiJapanBernardo Dominic UNQUALIFIED
Murillo I SchemmerBrazilAsiya Javayant PROPOSAL
Octavia D RutaSpainOnyama Limba UNQUALIFIED
Darci B OstroskyJapanBernardo Dominic UNQUALIFIED
Munro Y MaletIndiaAsiya Javayant NEW
Jennifer R MacleadBrazilAsiya Javayant NEW
Aruna I FerenczBrazilIvan Magalhaes RENEWAL
Ricardo Z FlosiItalyXuxue Feng QUALIFIED
Maria J NickaRussiaAnna Fali QUALIFIED
Aika S FollerCanadaIoni Bowcher RENEWAL
Johnson Q NickaUnited KingdomAsiya Javayant NEW
Ricardo X OstroskyIndiaIvan Magalhaes QUALIFIED
Murillo G NickaJapanStephen Shaw PROPOSAL
Costa A SaylorsAustraliaAsiya Javayant PROPOSAL
Izzy T FollerBrazilAsiya Javayant PROPOSAL
Silvio K StockhamRussiaBernardo Dominic RENEWAL
Alejandro B StensethItalyIoni Bowcher NEGOTIATION
Murillo H SergiArgentinaStephen Shaw NEGOTIATION
Morrow K WaycottAustraliaIvan Magalhaes NEGOTIATION
Mayumi B SlusarskiRussiaAmy Elsner RENEWAL
Tony F MacleadGermanyBernardo Dominic NEW
Ivar U SlusarskiCanadaBernardo Dominic PROPOSAL
Julie R PoquetteCanadaBernardo Dominic RENEWAL
Mayumi N FollerSpainAmy Elsner QUALIFIED
Clifford O KuskoGermanyIvan Magalhaes PROPOSAL
Antonio M KolmetzRussiaIvan Magalhaes PROPOSAL
Cody U CaudyIndiaIvan Magalhaes QUALIFIED
Juan V WhobreyArgentinaStephen Shaw PROPOSAL
Emily Y AmigonSpainStephen Shaw NEW
Juan X FlosiGermanyStephen Shaw UNQUALIFIED
James B DoeItalyIoni Bowcher RENEWAL
Salvatore W CampainCanadaXuxue Feng NEW
Rodrigues I RimRussiaStephen Shaw UNQUALIFIED
Wickens R PaprockiBrazilIvan Magalhaes NEW
Julie L RutaRussiaXuxue Feng NEGOTIATION
James P GarufiCanadaXuxue Feng NEW
Stacey B PaprockiAustraliaElwin Sharvill QUALIFIED
Munro D RulapaughCanadaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer M CaudyIndiaElwin Sharvill NEGOTIATION
Murillo X IturbideFranceBernardo Dominic UNQUALIFIED
David T ShinkoCanadaOnyama Limba QUALIFIED
Arvin O SaylorsUnited KingdomBernardo Dominic RENEWAL
Leja X GlickCanadaAmy Elsner UNQUALIFIED
Darci O MarrierIndiaBernardo Dominic NEW
Jeanfrancois U VocelkaFranceAsiya Javayant QUALIFIED
Maisha F OldroydRussiaXuxue Feng RENEWAL
Johnson B StensethIndiaIoni Bowcher NEGOTIATION
Kadeem M MarrierSpainXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro X KuskoCanada2026-08-21Chemel, James L Cpa QUALIFIED16Bernardo Dominic
1001Francesco T MorascaBrazil2026-08-09Printing Dimensions NEW65Asiya Javayant
1002Kaitlin X DoeJapan2026-08-20Commercial Press NEW48Anna Fali
1003Clifford Y VocelkaBrazil2026-08-10Rangoni Of Florence QUALIFIED11Onyama Limba
1004Munro I AmigonAustralia2026-07-31Chemel, James L Cpa QUALIFIED10Ioni Bowcher
1005Ricardo K CampainCanada2026-08-05Truhlar And Truhlar Attys NEW68Bernardo Dominic
1006Chavez J PerinRussia2026-08-04Morlong Associates UNQUALIFIED2Amy Elsner
1007Nicolas U DoeJapan2026-08-07Printing Dimensions UNQUALIFIED48Ioni Bowcher
1008Mayumi M FollerJapan2026-08-22Morlong Associates PROPOSAL60Ioni Bowcher
1009Cody Z KuskoJapan2026-08-10Benton, John B Jr QUALIFIED75Stephen Shaw
1010Chavez D PerinArgentina2026-08-03Chapman, Ross E Esq PROPOSAL5Asiya Javayant
1011Silvio N NickaSpain2026-08-11King, Christopher A Esq UNQUALIFIED20Anna Fali
1012Jones F DarakjyAustralia2026-07-30Printing Dimensions NEW41Amy Elsner
1013Silvio P SergiItaly2026-08-03King, Christopher A Esq PROPOSAL71Bernardo Dominic
1014Silvio B PerinFrance2026-08-12Chemel, James L Cpa RENEWAL45Ioni Bowcher
1015Ricardo B NickaRussia2026-08-19Chanay, Jeffrey A Esq NEW53Ioni Bowcher
1016Aika H MaletUnited Kingdom2026-08-06Morlong Associates UNQUALIFIED16Bernardo Dominic
1017Murillo X FigeroaCanada2026-07-31Rousseaux, Michael Esq UNQUALIFIED44Ivan Magalhaes
1018Morrow S BowleyFrance2026-08-01Chapman, Ross E Esq UNQUALIFIED33Amy Elsner
1019Jones Z KuskoSpain2026-08-17Benton, John B Jr QUALIFIED30Amy Elsner
1020Sinclair H MorascaUnited Kingdom2026-08-08Buckley Miller Wright RENEWAL8Ivan Magalhaes
1021Izzy Z SlusarskiCanada2026-08-09Chanay, Jeffrey A Esq PROPOSAL5Stephen Shaw
1022Jennifer X SaylorsSpain2026-08-19Feltz Printing Service UNQUALIFIED27Asiya Javayant
1023Tony H MorascaCanada2026-08-11Printing Dimensions RENEWAL56Elwin Sharvill
1024Misaki S GauchoIndia2026-07-29Feiner Bros NEW55Ivan Magalhaes
1025Nicolas C BriddickCanada2026-07-27Truhlar And Truhlar Attys UNQUALIFIED0Amy Elsner
1026Francesco B InouyeBrazil2026-07-29Chemel, James L Cpa NEW10Amy Elsner
1027Mujtaba G MarrierFrance2026-07-30Rangoni Of Florence NEW9Bernardo Dominic
1028Morrow C SaylorsGermany2026-07-28Printing Dimensions NEGOTIATION0Bernardo Dominic
1029David I KolmetzFrance2026-07-29Truhlar And Truhlar Attys QUALIFIED14Elwin Sharvill
1030Francesco R ChuiCanada2026-08-14Feiner Bros UNQUALIFIED82Elwin Sharvill
1031Salvatore F MarrierIndia2026-08-24Feiner Bros NEW82Asiya Javayant
1032Leja P StensethJapan2026-08-09Benton, John B Jr NEW17Anna Fali
1033David D MarrierRussia2026-07-29Feltz Printing Service RENEWAL32Ivan Magalhaes
1034Silvio N NestleIndia2026-08-20Feltz Printing Service UNQUALIFIED11Ivan Magalhaes
1035Munro K RoysterItaly2026-08-20Buckley Miller Wright PROPOSAL14Stephen Shaw
1036Silvio P ChuiJapan2026-07-31Chemel, James L Cpa QUALIFIED86Ioni Bowcher
1037Cody Y RoysterArgentina2026-08-03Truhlar And Truhlar Attys NEW51Ioni Bowcher
1038Claire R VenereGermany2026-08-02King, Christopher A Esq QUALIFIED28Onyama Limba
1039Octavia J RimUnited Kingdom2026-08-20Morlong Associates NEGOTIATION81Amy Elsner
1040Maria I ButtIndia2026-08-25King, Christopher A Esq UNQUALIFIED40Asiya Javayant
1041Kaitlin V InouyeSpain2026-08-03Benton, John B Jr QUALIFIED7Ivan Magalhaes
1042Chavez R FigeroaCanada2026-08-02Benton, John B Jr RENEWAL25Ioni Bowcher
1043Julie U WhobreyAustralia2026-08-22Chemel, James L Cpa NEW25Ioni Bowcher
1044Juan L InouyeFrance2026-07-29Buckley Miller Wright NEGOTIATION78Xuxue Feng
1045Juan K AlbaresSpain2026-08-25Printing Dimensions NEGOTIATION7Elwin Sharvill
1046Murillo S SchemmerArgentina2026-08-05King, Christopher A Esq NEW96Asiya Javayant
1047Misaki P DoeJapan2026-08-20Dorl, James J Esq QUALIFIED10Bernardo Dominic
1048Julie P NestleGermany2026-08-08Commercial Press NEW78Stephen Shaw
1049Isabel T OstroskyArgentina2026-08-23Truhlar And Truhlar Attys PROPOSAL63Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Antonio H MarrierGermanyBernardo Dominic NEW
Maisha R DoeArgentinaOnyama Limba RENEWAL
Salvatore O PaprockiItalyAmy Elsner PROPOSAL
Octavia B MacleadIndiaStephen Shaw NEGOTIATION
Isabel Z MacleadUnited KingdomStephen Shaw UNQUALIFIED
Salvatore Y KolmetzArgentinaStephen Shaw QUALIFIED
Ashley M KuskoBrazilElwin Sharvill RENEWAL
Francesco I PaprockiGermanyOnyama Limba UNQUALIFIED
Jones P RulapaughIndiaAmy Elsner QUALIFIED
Maisha V VocelkaCanadaOnyama Limba RENEWAL
Greenwood O StockhamArgentinaIvan Magalhaes NEW
Jennifer U MaletJapanOnyama Limba QUALIFIED
Smith S SlusarskiJapanOnyama Limba PROPOSAL
Munro X CampainUnited KingdomAmy Elsner QUALIFIED
Salvatore W NickaIndiaAsiya Javayant NEW
Greenwood F WaycottCanadaAmy Elsner RENEWAL
Smith N GarufiIndiaElwin Sharvill NEGOTIATION
Jefferson P WieserBrazilElwin Sharvill NEW
Sinclair T FerenczArgentinaStephen Shaw UNQUALIFIED
Stacey U GillianRussiaAnna Fali UNQUALIFIED
Ivar P GauchoAustraliaBernardo Dominic PROPOSAL
Wickens W SlusarskiItalyElwin Sharvill PROPOSAL
Munro U TollnerJapanAmy Elsner NEGOTIATION
Claire Q StockhamRussiaXuxue Feng PROPOSAL
Izzy C PaprockiIndiaStephen Shaw PROPOSAL
Juan L PaprockiBrazilAnna Fali QUALIFIED
Cody A GarufiUnited KingdomAnna Fali RENEWAL
Greenwood W NestleFranceElwin Sharvill QUALIFIED
Sinclair F GlickCanadaIvan Magalhaes PROPOSAL
Leon L SlusarskiCanadaIoni Bowcher RENEWAL
Silvio Y RutaSpainIoni Bowcher NEW
Claire K GillianGermanyIvan Magalhaes UNQUALIFIED
Kaitlin N TollnerItalyAmy Elsner UNQUALIFIED
Faith J SlusarskiBrazilIoni Bowcher NEW
Munro D InouyeIndiaAnna Fali RENEWAL
David A RulapaughIndiaElwin Sharvill QUALIFIED
Wickens I WieserCanadaOnyama Limba UNQUALIFIED
Claire S InouyeJapanBernardo Dominic QUALIFIED
Francesco R GillianBrazilAmy Elsner NEW
Maisha X InouyeItalyOnyama Limba QUALIFIED
Maisha M RutaAustraliaIoni Bowcher NEGOTIATION
Antonio J GarufiJapanXuxue Feng QUALIFIED
James E FerenczGermanyBernardo Dominic QUALIFIED
Munro V IturbideBrazilElwin Sharvill RENEWAL
Leon O AmigonBrazilOnyama Limba NEW
Mujtaba H IturbideBrazilAnna Fali NEGOTIATION
Misaki K RutaItalyAmy Elsner NEW
Misaki L SaylorsIndiaStephen Shaw NEGOTIATION
Ivar O ButtSpainBernardo Dominic PROPOSAL
Claire F RimGermanyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Isabel Q Gaucho
Juan K Nicka
Octavia W Saylors
Francesco W Figeroa
Wickens N Malet
Mujtaba A Stenseth
Ashley M Bowley
Nicolas W Doe
Chavez S Paprocki
Mujtaba D Marrier
Smith B Flosi
Arvin U Whobrey
Smith L Bolognia
Adams N Nicka
Antonio U Darakjy
Cody V Schemmer
Cody F Albares
Tony P Waycott
Johnson Y Iturbide
Cody Z Oldroyd
Jennifer C Maclead
Leon K Iturbide
Morrow U Schemmer
Silvio I Doe
Smith P Nicka
Silvio S Doe
Sinclair H Malet
Aditya Y Gaucho
Sinclair Z Vocelka
Kadeem C Vocelka
Misaki B Ostrosky
James D Campain
Silvio L Foller
Jennifer J Albares
Julie K Flosi
Aika Q Iturbide
Faith D Maclead
Maria F Figeroa
Darci W Morasca
Aditya K Nicka
Tony N Vocelka
Francesco T Bolognia
Leja J Paprocki
Nicolas R Slusarski
Leon P Gaucho
Alejandro H Darakjy
James W Ostrosky
Wickens E Bolognia
Isabel Z Caudy
Jefferson S Whobrey
IdCountryDate
1000Japan2026-08-25
1001India2026-07-29
1002India2026-08-06
1003Italy2026-07-29
1004Australia2026-08-18
1005Argentina2026-08-13
1006Canada2026-08-01
1007India2026-08-11
1008Brazil2026-08-18
1009India2026-08-07
1010Brazil2026-08-16
1011Italy2026-08-24
1012Germany2026-08-24
1013Canada2026-08-06
1014Argentina2026-08-07
1015Canada2026-08-17
1016Australia2026-08-20
1017Canada2026-08-16
1018Italy2026-08-13
1019France2026-08-01
1020Brazil2026-08-24
1021France2026-08-19
1022Spain2026-08-08
1023Canada2026-08-14
1024Brazil2026-08-14
1025France2026-08-06
1026Brazil2026-08-11
1027India2026-08-05
1028Argentina2026-08-07
1029Argentina2026-08-01
1030France2026-08-23
1031Russia2026-08-19
1032Australia2026-08-12
1033Argentina2026-07-31
1034France2026-08-20
1035Italy2026-08-13
1036Spain2026-08-21
1037Australia2026-08-25
1038Canada2026-08-13
1039Japan2026-08-19
1040Russia2026-08-16
1041Canada2026-08-03
1042Italy2026-08-02
1043Italy2026-08-07
1044Russia2026-08-15
1045Germany2026-08-10
1046Brazil2026-08-22
1047Spain2026-08-02
1048Italy2026-07-28
1049Brazil2026-08-18

On-Demand Data

NameIdCountryDate
Aika N Dilliard1000Argentina2026-07-30
Leja T Bolognia1001Germany2026-08-17
Claire W Glick1002Spain2026-07-29
Morrow A Stockham1003France2026-08-03
Octavia F Paprocki1004United Kingdom2026-08-11
Deepesh L Inouye1005Japan2026-08-16
Aditya S Oldroyd1006Canada2026-08-08
Izzy J Bowley1007Germany2026-08-12
Misaki X Marrier1008Brazil2026-08-05
Sinclair W Gaucho1009India2026-08-14
Jefferson K Campain1010United Kingdom2026-08-17
Silvio I Darakjy1011United Kingdom2026-08-16
Smith W Ferencz1012Australia2026-08-06
Rodrigues A Flosi1013Italy2026-08-16
Deepesh B Chui1014United Kingdom2026-07-28
Juan M Darakjy1015Italy2026-08-17
Jeanfrancois N Nicka1016Spain2026-08-10
Leja J Marrier1017France2026-08-22
David I Flosi1018Spain2026-08-08
Octavia H Morasca1019United Kingdom2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo C NestleBrazilAsiya Javayant NEGOTIATION
David K VenereAustraliaIvan Magalhaes NEGOTIATION
Claire V PerinGermanyElwin Sharvill NEGOTIATION
Silvio B RimIndiaStephen Shaw NEGOTIATION
Mujtaba N TollnerBrazilIoni Bowcher QUALIFIED
Maisha I StensethCanadaAnna Fali NEGOTIATION
Faith B FigeroaFranceAsiya Javayant NEW
Sinclair P WaycottJapanIoni Bowcher RENEWAL
Johnson P RutaCanadaElwin Sharvill RENEWAL
Jennifer L RutaSpainAsiya Javayant PROPOSAL
Julie T MaletCanadaStephen Shaw NEW
Silvio G WieserIndiaIoni Bowcher QUALIFIED
Maria Z MorascaBrazilXuxue Feng QUALIFIED
Adams V StockhamFranceOnyama Limba NEGOTIATION
Ivar E BologniaIndiaElwin Sharvill PROPOSAL
Francesco O WieserAustraliaAsiya Javayant NEW
Juan L SaylorsGermanyStephen Shaw QUALIFIED
Ashley J FigeroaIndiaIoni Bowcher NEW
Salvatore R FlosiAustraliaAsiya Javayant RENEWAL
Francesco Z PoquetteRussiaStephen Shaw NEGOTIATION
Wickens D GauchoAustraliaIvan Magalhaes PROPOSAL
Chavez T SergiFranceStephen Shaw NEGOTIATION
Antonio K GauchoSpainIoni Bowcher PROPOSAL
Kadeem I PoquetteUnited KingdomIoni Bowcher PROPOSAL
Arvin G StensethGermanyIoni Bowcher UNQUALIFIED
Octavia X InouyeBrazilAsiya Javayant QUALIFIED
Jennifer E ChuiSpainIoni Bowcher NEGOTIATION
Arvin K GillianArgentinaXuxue Feng RENEWAL
Mayumi J BriddickRussiaOnyama Limba NEGOTIATION
Silvio S GlickIndiaElwin Sharvill QUALIFIED
Murillo C GauchoCanadaXuxue Feng RENEWAL
Isabel L SaylorsBrazilOnyama Limba RENEWAL
Clifford K NestleBrazilAsiya Javayant PROPOSAL
Ashley H DilliardUnited KingdomXuxue Feng RENEWAL
Octavia Z StensethFranceAnna Fali RENEWAL
Cody F MacleadGermanyStephen Shaw NEW
Morrow G GlickAustraliaBernardo Dominic UNQUALIFIED
Isabel D SaylorsSpainAnna Fali QUALIFIED
Kadeem X CampainUnited KingdomOnyama Limba PROPOSAL
Ivar Q GillianItalyIoni 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>