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
Octavia H InouyeArgentinaAnna Fali UNQUALIFIED
Smith N CaldareraUnited KingdomBernardo Dominic QUALIFIED
Deepesh T WaycottBrazilElwin Sharvill NEW
Sinclair T ButtBrazilAnna Fali RENEWAL
Faith I MaletBrazilIoni Bowcher NEGOTIATION
Kadeem Z VenereCanadaElwin Sharvill NEW
Ashley J IturbideIndiaAnna Fali NEGOTIATION
Tony E CaldareraGermanyBernardo Dominic NEW
Octavia R GauchoCanadaAnna Fali NEW
Aditya L FerenczIndiaAnna Fali RENEWAL
Izzy H GlickRussiaOnyama Limba PROPOSAL
Costa G VenereBrazilElwin Sharvill NEGOTIATION
Morrow X PaprockiBrazilIoni Bowcher NEW
Silvio K FollerAustraliaElwin Sharvill PROPOSAL
Leja G OldroydFranceXuxue Feng UNQUALIFIED
James U ShinkoIndiaIoni Bowcher PROPOSAL
Chavez W NestleItalyElwin Sharvill NEW
Clifford N OldroydJapanAsiya Javayant QUALIFIED
Greenwood A WieserFranceBernardo Dominic PROPOSAL
Faith S PerinUnited KingdomAmy Elsner QUALIFIED
Maisha Q NickaAustraliaElwin Sharvill RENEWAL
Leja C MacleadRussiaIoni Bowcher PROPOSAL
Leon K SlusarskiJapanXuxue Feng PROPOSAL
Leon M MarrierAustraliaIvan Magalhaes RENEWAL
James E VocelkaGermanyIoni Bowcher UNQUALIFIED
Alejandro S CaldareraJapanStephen Shaw PROPOSAL
Antonio W GillianGermanyAnna Fali RENEWAL
Salvatore M NestleRussiaBernardo Dominic PROPOSAL
Costa A GarufiFranceBernardo Dominic QUALIFIED
Cody E VenereAustraliaAnna Fali UNQUALIFIED
Munro Z SlusarskiGermanyIoni Bowcher QUALIFIED
Smith S FlosiJapanIoni Bowcher RENEWAL
Kaitlin N FigeroaItalyAmy Elsner NEW
Tony I DarakjyItalyBernardo Dominic QUALIFIED
Greenwood S RulapaughBrazilIvan Magalhaes PROPOSAL
Ricardo D BriddickJapanIoni Bowcher UNQUALIFIED
Cody E DarakjyBrazilAmy Elsner RENEWAL
Nicolas U TollnerArgentinaAmy Elsner PROPOSAL
Antonio H SaylorsSpainAmy Elsner NEGOTIATION
Morrow O KuskoCanadaAsiya Javayant NEGOTIATION
Mayumi D RimItalyIvan Magalhaes QUALIFIED
Greenwood R CaudyIndiaStephen Shaw NEW
David M SergiUnited KingdomAmy Elsner PROPOSAL
Leja D NestleCanadaAmy Elsner PROPOSAL
Morrow H OstroskyFranceAmy Elsner NEGOTIATION
Stacey D SergiFranceBernardo Dominic PROPOSAL
Adams M RutaItalyIvan Magalhaes PROPOSAL
Wickens S CaldareraIndiaElwin Sharvill QUALIFIED
Costa L DoeJapanAmy Elsner UNQUALIFIED
Rodrigues T ButtCanadaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo P AmigonCanadaStephen Shaw QUALIFIED
Jennifer I InouyeAustraliaBernardo Dominic RENEWAL
Mujtaba X CaldareraRussiaAnna Fali PROPOSAL
Stacey T TollnerSpainElwin Sharvill QUALIFIED
Nicolas W NestleBrazilStephen Shaw RENEWAL
Isabel R ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore Z BologniaJapanAnna Fali NEGOTIATION
Juan N SchemmerAustraliaOnyama Limba QUALIFIED
Johnson D KolmetzAustraliaIoni Bowcher PROPOSAL
Jefferson P GillianItalyAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois T ButtAustralia2025-04-14Feltz Printing Service QUALIFIED40Onyama Limba
1001Morrow I CampainItaly2025-04-11King, Christopher A Esq NEW64Bernardo Dominic
1002Misaki H GlickCanada2025-04-14Dorl, James J Esq QUALIFIED90Amy Elsner
1003Tony D CaudyIndia2025-04-02Morlong Associates PROPOSAL82Xuxue Feng
1004Stacey X FlosiJapan2025-04-12Dorl, James J Esq UNQUALIFIED75Elwin Sharvill
1005Faith X RulapaughAustralia2025-04-17Commercial Press PROPOSAL15Xuxue Feng
1006Claire J VocelkaJapan2025-04-08Morlong Associates RENEWAL11Anna Fali
1007Kadeem N KuskoGermany2025-04-13Commercial Press RENEWAL50Anna Fali
1008Maria S FerenczBrazil2025-04-29King, Christopher A Esq RENEWAL58Anna Fali
1009Isabel J BowleyGermany2025-04-05Chemel, James L Cpa QUALIFIED23Xuxue Feng
1010Morrow Y GarufiItaly2025-04-13King, Christopher A Esq NEW45Xuxue Feng
1011Juan H PoquetteAustralia2025-04-11Buckley Miller Wright RENEWAL72Xuxue Feng
1012Faith T SlusarskiItaly2025-04-17Rangoni Of Florence RENEWAL88Bernardo Dominic
1013Salvatore F MaletItaly2025-04-07Chanay, Jeffrey A Esq PROPOSAL12Onyama Limba
1014Silvio K StensethGermany2025-04-29Benton, John B Jr NEW88Ivan Magalhaes
1015Julie M SchemmerCanada2025-04-21Benton, John B Jr QUALIFIED59Xuxue Feng
1016Maria Q GauchoGermany2025-04-10Printing Dimensions RENEWAL82Stephen Shaw
1017Leja X MorascaSpain2025-04-12Dorl, James J Esq NEW85Elwin Sharvill
1018Claire Y ShinkoFrance2025-04-18Chapman, Ross E Esq NEGOTIATION5Onyama Limba
1019Deepesh W CaldareraCanada2025-04-04Truhlar And Truhlar Attys NEW6Bernardo Dominic
1020Chavez M RoysterItaly2025-04-19Truhlar And Truhlar Attys UNQUALIFIED15Xuxue Feng
1021Adams K GillianUnited Kingdom2025-04-17Chanay, Jeffrey A Esq QUALIFIED1Xuxue Feng
1022Cody P RoysterSpain2025-04-19King, Christopher A Esq PROPOSAL57Ioni Bowcher
1023Munro P KolmetzBrazil2025-04-13Benton, John B Jr NEGOTIATION9Asiya Javayant
1024Aruna Q GlickBrazil2025-04-25Feiner Bros UNQUALIFIED4Elwin Sharvill
1025Juan N NickaBrazil2025-04-12Truhlar And Truhlar Attys NEW94Bernardo Dominic
1026Aika H OstroskyFrance2025-04-18Feiner Bros UNQUALIFIED58Onyama Limba
1027Aika S CampainIndia2025-04-25Feltz Printing Service UNQUALIFIED72Bernardo Dominic
1028Maisha R KolmetzUnited Kingdom2025-04-15King, Christopher A Esq UNQUALIFIED44Asiya Javayant
1029Jones Z SaylorsSpain2025-04-20King, Christopher A Esq RENEWAL34Ioni Bowcher
1030Salvatore A FollerIndia2025-04-11Chapman, Ross E Esq NEGOTIATION24Asiya Javayant
1031Leon J SergiItaly2025-04-21Chapman, Ross E Esq RENEWAL92Anna Fali
1032James L FerenczBrazil2025-04-25Rousseaux, Michael Esq PROPOSAL81Elwin Sharvill
1033Julie W PerinItaly2025-04-08Rangoni Of Florence QUALIFIED40Xuxue Feng
1034James W RutaIndia2025-04-28Feltz Printing Service PROPOSAL96Ivan Magalhaes
1035Ashley C GauchoSpain2025-04-20Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1036Arvin W StockhamCanada2025-04-27Rangoni Of Florence UNQUALIFIED51Ioni Bowcher
1037Kaitlin N GlickAustralia2025-04-19Benton, John B Jr RENEWAL33Ivan Magalhaes
1038Julie R FigeroaArgentina2025-04-03Rousseaux, Michael Esq NEGOTIATION48Xuxue Feng
1039Kadeem L StockhamAustralia2025-04-11Rangoni Of Florence UNQUALIFIED96Onyama Limba
1040Sinclair O VenereItaly2025-04-18Commercial Press UNQUALIFIED71Bernardo Dominic
1041Misaki R MaletJapan2025-04-17Rousseaux, Michael Esq UNQUALIFIED77Amy Elsner
1042Misaki S RutaAustralia2025-04-01King, Christopher A Esq PROPOSAL22Ivan Magalhaes
1043Sinclair Y IturbideSpain2025-04-03Commercial Press UNQUALIFIED16Elwin Sharvill
1044Juan V DarakjyArgentina2025-04-14Feiner Bros PROPOSAL72Elwin Sharvill
1045Stacey U NickaBrazil2025-04-01Chemel, James L Cpa QUALIFIED82Amy Elsner
1046Jones H StockhamSpain2025-04-19Rousseaux, Michael Esq UNQUALIFIED47Ivan Magalhaes
1047Aruna I DoeGermany2025-04-06Truhlar And Truhlar Attys UNQUALIFIED75Bernardo Dominic
1048Ivar X ButtSpain2025-04-01Benton, John B Jr NEW98Ioni Bowcher
1049Cody N AmigonBrazil2025-04-02Chapman, Ross E Esq NEGOTIATION32Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Izzy Y GarufiCanadaStephen Shaw RENEWAL
Nicolas H StockhamBrazilAsiya Javayant RENEWAL
Aika L FollerSpainAnna Fali UNQUALIFIED
Aditya X AmigonCanadaAmy Elsner UNQUALIFIED
Sinclair P SlusarskiAustraliaAsiya Javayant NEGOTIATION
Kaitlin X FerenczFranceXuxue Feng NEW
Clifford I GlickAustraliaIoni Bowcher QUALIFIED
Chavez G DilliardRussiaXuxue Feng RENEWAL
Maria I BowleyRussiaAnna Fali UNQUALIFIED
Aditya T NestleJapanAnna Fali UNQUALIFIED
Claire F OstroskyItalyIvan Magalhaes RENEWAL
Emily G BriddickFranceAsiya Javayant NEGOTIATION
Ivar F IturbideIndiaElwin Sharvill UNQUALIFIED
Misaki G DilliardGermanyXuxue Feng UNQUALIFIED
Juan Z RutaRussiaStephen Shaw UNQUALIFIED
Aika G OldroydGermanyOnyama Limba RENEWAL
Kaitlin D NickaBrazilAmy Elsner PROPOSAL
Wickens Y OstroskyIndiaOnyama Limba PROPOSAL
David R KolmetzJapanIvan Magalhaes PROPOSAL
Salvatore V FerenczArgentinaIoni Bowcher NEW
Murillo K MarrierJapanElwin Sharvill RENEWAL
Jefferson W PoquetteCanadaIoni Bowcher PROPOSAL
Francesco C TollnerArgentinaAnna Fali NEW
Sinclair U VenereJapanXuxue Feng NEW
Silvio F OstroskyAustraliaIoni Bowcher NEGOTIATION
Jefferson L OldroydFranceIvan Magalhaes NEW
Tony I GauchoBrazilAnna Fali NEW
Munro W AlbaresAustraliaStephen Shaw NEW
Alejandro Q KuskoCanadaBernardo Dominic NEW
Greenwood F CaudySpainOnyama Limba PROPOSAL
Tony B GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Isabel C AmigonIndiaIvan Magalhaes NEGOTIATION
Cody I GauchoItalyXuxue Feng PROPOSAL
Misaki P AmigonRussiaAmy Elsner NEGOTIATION
Arvin C MaletGermanyAmy Elsner NEW
Darci Y StockhamItalyOnyama Limba NEGOTIATION
Jeanfrancois Q WhobreyCanadaAmy Elsner UNQUALIFIED
David L DilliardItalyIvan Magalhaes QUALIFIED
Rodrigues B FigeroaGermanyAsiya Javayant RENEWAL
Juan V MaletGermanyOnyama Limba QUALIFIED
Ashley W CaudyAustraliaElwin Sharvill QUALIFIED
Alejandro R AlbaresSpainElwin Sharvill QUALIFIED
Tony J PaprockiGermanyIvan Magalhaes QUALIFIED
Aruna G KuskoFranceAmy Elsner PROPOSAL
Misaki Y NestleUnited KingdomStephen Shaw PROPOSAL
Aika K DarakjyJapanIoni Bowcher QUALIFIED
Silvio K FollerUnited KingdomXuxue Feng PROPOSAL
Munro I SergiItalyStephen Shaw NEGOTIATION
Sinclair W DilliardIndiaIvan Magalhaes NEW
Antonio M BowleyItalyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Munro V Amigon
Ricardo R Nicka
Mujtaba R Ferencz
Aruna T Figeroa
Aruna Z Rim
Julie F Poquette
Ricardo W Figeroa
Ashley X Dilliard
Jefferson A Morasca
Emily S Rulapaugh
Isabel Z Schemmer
Murillo U Caudy
Tony I Wieser
Claire S Paprocki
Wickens C Saylors
Kaitlin P Perin
Johnson S Schemmer
Jeanfrancois O Figeroa
Alejandro F Ruta
Maria C Ostrosky
Ivar S Kolmetz
Jennifer V Saylors
Julie E Malet
Ivar G Ruta
Mujtaba B Rim
Munro H Waycott
Rodrigues Z Marrier
Julie S Bowley
Jennifer P Butt
Clifford U Malet
Aruna K Nicka
Darci V Foller
Julie Y Paprocki
Emily Q Malet
Emily P Wieser
Silvio B Garufi
Morrow N Nestle
Nicolas V Figeroa
Francesco I Poquette
David R Dilliard
Clifford F Garufi
Cody P Vocelka
Claire S Venere
Stacey H Caudy
Aditya K Venere
James O Kolmetz
Octavia V Foller
Kadeem Y Ferencz
Claire B Figeroa
Smith K Foller
IdCountryDate
1000Argentina2025-04-09
1001France2025-03-31
1002India2025-04-04
1003Brazil2025-04-16
1004Japan2025-04-07
1005United Kingdom2025-04-09
1006United Kingdom2025-04-27
1007Germany2025-04-19
1008Spain2025-04-26
1009Germany2025-04-08
1010France2025-04-22
1011Canada2025-03-31
1012Japan2025-03-31
1013France2025-04-17
1014Russia2025-04-06
1015India2025-04-22
1016India2025-04-10
1017India2025-04-19
1018Argentina2025-04-13
1019Australia2025-04-13
1020Japan2025-04-14
1021Spain2025-04-14
1022Russia2025-04-24
1023Australia2025-04-07
1024Canada2025-04-29
1025Argentina2025-04-18
1026Russia2025-04-28
1027India2025-04-03
1028France2025-03-31
1029Brazil2025-04-11
1030France2025-04-15
1031Russia2025-04-06
1032Germany2025-04-22
1033France2025-04-23
1034Japan2025-04-03
1035Canada2025-04-02
1036Japan2025-04-18
1037United Kingdom2025-04-21
1038Canada2025-04-27
1039Canada2025-04-19
1040Italy2025-04-03
1041Japan2025-04-10
1042Italy2025-04-03
1043Japan2025-04-13
1044France2025-04-20
1045Russia2025-04-14
1046France2025-04-22
1047Argentina2025-04-10
1048Russia2025-04-10
1049Italy2025-04-27

On-Demand Data

NameIdCountryDate
James A Vocelka1000Italy2025-04-03
David Y Marrier1001Brazil2025-04-11
Cody K Sergi1002Germany2025-04-17
Chavez U Tollner1003Spain2025-04-02
Tony H Slusarski1004Argentina2025-04-05
Salvatore D Perin1005Australia2025-04-11
Leon D Saylors1006Germany2025-04-14
James N Waycott1007India2025-04-09
Sinclair F Poquette1008France2025-04-02
Cody I Caldarera1009Australia2025-04-06
Antonio U Rim1010Argentina2025-04-13
Mayumi L Tollner1011Germany2025-03-31
Nicolas D Glick1012Germany2025-04-29
Emily Z Stockham1013Germany2025-04-12
Maria E Chui1014Italy2025-04-26
Chavez A Iturbide1015Russia2025-04-22
Juan O Oldroyd1016Germany2025-04-29
Darci D Paprocki1017Australia2025-04-15
Nicolas E Flosi1018France2025-04-12
Mujtaba T Poquette1019Brazil2025-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo T WhobreyFranceBernardo Dominic RENEWAL
Morrow G AmigonFranceIvan Magalhaes QUALIFIED
Silvio D NickaJapanOnyama Limba PROPOSAL
Murillo M BowleyCanadaAmy Elsner PROPOSAL
Silvio A PerinJapanOnyama Limba RENEWAL
Julie M MarrierItalyAmy Elsner NEGOTIATION
Kaitlin X RulapaughCanadaAmy Elsner UNQUALIFIED
Julie F OstroskyAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois U MaletCanadaAnna Fali UNQUALIFIED
Arvin D FigeroaRussiaAnna Fali PROPOSAL
Aditya P MorascaRussiaStephen Shaw NEW
Francesco Q VocelkaFranceBernardo Dominic NEGOTIATION
Clifford R PerinAustraliaOnyama Limba NEGOTIATION
Leon R CampainGermanyAnna Fali PROPOSAL
Greenwood Y GarufiRussiaStephen Shaw UNQUALIFIED
Maisha K VenereJapanAsiya Javayant UNQUALIFIED
Faith T InouyeBrazilOnyama Limba NEGOTIATION
Ivar T DilliardBrazilAnna Fali RENEWAL
Adams K ButtArgentinaIvan Magalhaes QUALIFIED
Salvatore E KuskoUnited KingdomIoni Bowcher RENEWAL
Cody X ChuiFranceAnna Fali UNQUALIFIED
Johnson Y CampainSpainAsiya Javayant PROPOSAL
Isabel N OldroydCanadaStephen Shaw NEW
Aditya F MorascaAustraliaElwin Sharvill QUALIFIED
Ricardo K RimAustraliaAmy Elsner QUALIFIED
Izzy X PerinIndiaXuxue Feng QUALIFIED
Jeanfrancois L BologniaSpainOnyama Limba RENEWAL
Isabel Y NestleJapanXuxue Feng PROPOSAL
Munro N RoysterSpainAnna Fali RENEWAL
Octavia G SchemmerItalyElwin Sharvill NEW
Julie R RoysterGermanyXuxue Feng RENEWAL
Jefferson F WhobreyArgentinaBernardo Dominic NEGOTIATION
Alejandro Y VenereUnited KingdomStephen Shaw NEGOTIATION
Mayumi I FigeroaArgentinaAsiya Javayant UNQUALIFIED
Silvio F GlickGermanyBernardo Dominic NEGOTIATION
Rodrigues C ButtBrazilIoni Bowcher QUALIFIED
Leja K NickaBrazilIvan Magalhaes RENEWAL
Juan W RoysterBrazilXuxue Feng NEGOTIATION
Emily S ChuiCanadaOnyama Limba NEGOTIATION
Izzy S KolmetzCanadaAnna Fali RENEWAL

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