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
Johnson U CaudySpainAnna Fali PROPOSAL
Chavez Q NestleGermanyOnyama Limba QUALIFIED
Julie C OstroskyAustraliaBernardo Dominic NEW
Leja S InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Kadeem R FollerGermanyElwin Sharvill NEW
Costa D ButtCanadaAnna Fali QUALIFIED
Mayumi A PaprockiGermanyOnyama Limba NEW
Kadeem F RimBrazilIoni Bowcher RENEWAL
Isabel B BriddickArgentinaAsiya Javayant PROPOSAL
Jennifer U ShinkoRussiaXuxue Feng QUALIFIED
Darci R TollnerBrazilAnna Fali PROPOSAL
Maisha F SchemmerGermanyIoni Bowcher QUALIFIED
Greenwood C BowleyItalyAsiya Javayant RENEWAL
Deepesh O FlosiItalyXuxue Feng RENEWAL
Ivar B OldroydSpainOnyama Limba NEW
Nicolas N MacleadJapanBernardo Dominic PROPOSAL
Jefferson B OldroydAustraliaElwin Sharvill RENEWAL
Smith H VenereRussiaAnna Fali PROPOSAL
Claire L CaudyUnited KingdomAnna Fali QUALIFIED
Antonio W MacleadIndiaIoni Bowcher NEGOTIATION
Aditya X StensethCanadaIoni Bowcher QUALIFIED
Smith Z MaletItalyStephen Shaw NEGOTIATION
Emily D VocelkaGermanyIoni Bowcher UNQUALIFIED
Wickens U StockhamArgentinaStephen Shaw QUALIFIED
Julie I CaldareraItalyIoni Bowcher PROPOSAL
Costa W WieserJapanAsiya Javayant PROPOSAL
Ashley G PaprockiItalyStephen Shaw PROPOSAL
Claire B VocelkaFranceBernardo Dominic NEGOTIATION
Sinclair U MacleadFranceIoni Bowcher NEW
Leon J OstroskyBrazilXuxue Feng PROPOSAL
Jennifer Y PaprockiItalyStephen Shaw RENEWAL
Kadeem V OldroydCanadaIvan Magalhaes QUALIFIED
Alejandro R FigeroaSpainAmy Elsner NEW
Morrow K FigeroaItalyIoni Bowcher PROPOSAL
Chavez O RimCanadaBernardo Dominic NEGOTIATION
Aruna N StockhamJapanBernardo Dominic QUALIFIED
Clifford Z RulapaughAustraliaIvan Magalhaes QUALIFIED
Rodrigues I CaudyGermanyStephen Shaw NEGOTIATION
Octavia X SlusarskiFranceAnna Fali RENEWAL
Ivar L PerinIndiaIoni Bowcher NEW
Aruna V SchemmerArgentinaAnna Fali PROPOSAL
Jeanfrancois M KuskoFranceAnna Fali UNQUALIFIED
Isabel R CaldareraArgentinaAnna Fali RENEWAL
Stacey O FollerRussiaStephen Shaw NEW
Greenwood K GillianItalyIvan Magalhaes NEGOTIATION
David M GauchoBrazilElwin Sharvill RENEWAL
Silvio P VocelkaSpainBernardo Dominic UNQUALIFIED
Mayumi B AlbaresRussiaElwin Sharvill PROPOSAL
Munro R MacleadRussiaAnna Fali NEGOTIATION
Cody Z WaycottCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith V MaletSpainIvan Magalhaes UNQUALIFIED
Emily B MaletGermanyIvan Magalhaes UNQUALIFIED
Faith V MarrierUnited KingdomIoni Bowcher NEGOTIATION
Antonio D SchemmerAustraliaAnna Fali PROPOSAL
Darci V FlosiArgentinaOnyama Limba QUALIFIED
Jones B FlosiUnited KingdomAnna Fali PROPOSAL
Silvio J AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin W NickaIndiaAmy Elsner RENEWAL
Jennifer Y WaycottFranceAmy Elsner UNQUALIFIED
Alejandro E StensethJapanAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire J VocelkaArgentina2026-07-30Truhlar And Truhlar Attys NEGOTIATION91Elwin Sharvill
1001Rodrigues M OldroydFrance2026-08-05Rousseaux, Michael Esq PROPOSAL38Ivan Magalhaes
1002Aika U FigeroaGermany2026-08-07Truhlar And Truhlar Attys PROPOSAL80Anna Fali
1003Faith F MaletUnited Kingdom2026-08-08Feltz Printing Service UNQUALIFIED70Ioni Bowcher
1004Mujtaba Q WieserFrance2026-08-16Chapman, Ross E Esq NEW97Xuxue Feng
1005Chavez C SergiSpain2026-08-22Rousseaux, Michael Esq QUALIFIED96Amy Elsner
1006Izzy U ButtSpain2026-08-25Printing Dimensions PROPOSAL89Amy Elsner
1007Francesco T KolmetzArgentina2026-08-22Chemel, James L Cpa NEGOTIATION75Onyama Limba
1008Antonio P BriddickBrazil2026-08-15Feiner Bros QUALIFIED33Asiya Javayant
1009Mayumi O PaprockiCanada2026-08-12Benton, John B Jr PROPOSAL2Amy Elsner
1010Julie H GarufiArgentina2026-08-22Truhlar And Truhlar Attys NEW72Amy Elsner
1011Misaki A AmigonBrazil2026-08-24Rangoni Of Florence NEW65Elwin Sharvill
1012David L KolmetzArgentina2026-08-11Commercial Press RENEWAL15Asiya Javayant
1013Jennifer C BowleySpain2026-08-12Chapman, Ross E Esq NEW90Ivan Magalhaes
1014Smith F PoquetteJapan2026-08-22Benton, John B Jr NEGOTIATION4Xuxue Feng
1015David U MorascaIndia2026-08-16Truhlar And Truhlar Attys PROPOSAL45Amy Elsner
1016Morrow H MarrierGermany2026-08-05Benton, John B Jr PROPOSAL96Xuxue Feng
1017Maria X ChuiArgentina2026-08-26King, Christopher A Esq PROPOSAL19Stephen Shaw
1018Isabel I DarakjyFrance2026-08-07Commercial Press RENEWAL83Bernardo Dominic
1019Salvatore H GauchoSpain2026-08-03Chapman, Ross E Esq PROPOSAL54Bernardo Dominic
1020Stacey Z PerinItaly2026-08-08Printing Dimensions QUALIFIED87Amy Elsner
1021Claire Q RoysterIndia2026-07-29Rangoni Of Florence RENEWAL53Ivan Magalhaes
1022Munro X GlickCanada2026-08-25Rangoni Of Florence NEGOTIATION3Onyama Limba
1023Isabel I PaprockiCanada2026-08-06Commercial Press PROPOSAL53Asiya Javayant
1024Kaitlin P BologniaRussia2026-08-10Buckley Miller Wright PROPOSAL40Ioni Bowcher
1025Faith I MorascaAustralia2026-08-04Feiner Bros UNQUALIFIED29Amy Elsner
1026Maisha T DarakjyJapan2026-08-24Chanay, Jeffrey A Esq UNQUALIFIED51Stephen Shaw
1027Francesco Y InouyeIndia2026-08-11Feiner Bros QUALIFIED42Xuxue Feng
1028Maisha X BriddickJapan2026-08-24Chanay, Jeffrey A Esq NEGOTIATION29Anna Fali
1029Morrow K MaletAustralia2026-08-18Printing Dimensions PROPOSAL23Ivan Magalhaes
1030Deepesh K CaldareraIndia2026-08-09Feltz Printing Service NEW89Xuxue Feng
1031Jefferson D VocelkaCanada2026-08-18Dorl, James J Esq UNQUALIFIED19Stephen Shaw
1032Izzy B DarakjySpain2026-08-01Chapman, Ross E Esq UNQUALIFIED16Bernardo Dominic
1033Munro N BriddickArgentina2026-08-20Dorl, James J Esq PROPOSAL82Onyama Limba
1034Costa J BriddickUnited Kingdom2026-08-08Dorl, James J Esq UNQUALIFIED89Onyama Limba
1035Wickens P PoquetteUnited Kingdom2026-08-12Feiner Bros NEW63Stephen Shaw
1036Chavez S SaylorsGermany2026-08-10Rangoni Of Florence RENEWAL6Stephen Shaw
1037Octavia P DilliardFrance2026-08-05Dorl, James J Esq PROPOSAL0Ioni Bowcher
1038Jones J MacleadBrazil2026-08-19Feiner Bros NEW88Asiya Javayant
1039Kaitlin O ButtIndia2026-08-11Buckley Miller Wright QUALIFIED67Elwin Sharvill
1040Mujtaba Y PoquetteCanada2026-08-25Truhlar And Truhlar Attys UNQUALIFIED22Ioni Bowcher
1041Murillo Q CaldareraArgentina2026-08-11Rousseaux, Michael Esq NEGOTIATION92Elwin Sharvill
1042Aruna M RimIndia2026-07-29King, Christopher A Esq RENEWAL40Elwin Sharvill
1043Misaki U FollerArgentina2026-08-16Morlong Associates PROPOSAL87Anna Fali
1044Johnson K CaldareraCanada2026-08-13Printing Dimensions UNQUALIFIED94Anna Fali
1045Ivar E FerenczCanada2026-08-03Chanay, Jeffrey A Esq RENEWAL74Asiya Javayant
1046Smith A RimBrazil2026-08-16Rousseaux, Michael Esq RENEWAL3Anna Fali
1047Antonio M ChuiSpain2026-08-21Rangoni Of Florence NEGOTIATION14Onyama Limba
1048Misaki J CaldareraRussia2026-08-05Feiner Bros UNQUALIFIED40Bernardo Dominic
1049Ashley T SergiArgentina2026-08-26Rangoni Of Florence UNQUALIFIED26Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Deepesh T FollerGermanyAnna Fali NEGOTIATION
Johnson L OldroydIndiaOnyama Limba QUALIFIED
Alejandro Z BologniaRussiaXuxue Feng NEW
Faith T ChuiGermanyElwin Sharvill QUALIFIED
Chavez U CaudyCanadaBernardo Dominic QUALIFIED
Johnson Q DoeArgentinaStephen Shaw PROPOSAL
Claire O KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer X MarrierJapanElwin Sharvill NEGOTIATION
Nicolas M BologniaCanadaStephen Shaw RENEWAL
Izzy R KolmetzCanadaOnyama Limba RENEWAL
Mayumi X GillianIndiaIvan Magalhaes RENEWAL
Jeanfrancois T CaldareraUnited KingdomXuxue Feng PROPOSAL
Leon R DoeAustraliaStephen Shaw RENEWAL
Wickens I AmigonIndiaBernardo Dominic RENEWAL
Emily F SlusarskiUnited KingdomStephen Shaw PROPOSAL
Octavia J SaylorsBrazilAmy Elsner PROPOSAL
Clifford I MaletUnited KingdomAnna Fali QUALIFIED
Emily Z OstroskyAustraliaElwin Sharvill UNQUALIFIED
Munro V WaycottAustraliaAmy Elsner PROPOSAL
Ricardo M CaldareraJapanStephen Shaw PROPOSAL
Izzy K GauchoGermanyXuxue Feng NEGOTIATION
Maria G PerinCanadaIoni Bowcher NEGOTIATION
Deepesh Q TollnerIndiaElwin Sharvill NEW
Chavez S StockhamCanadaElwin Sharvill PROPOSAL
Johnson K DilliardItalyXuxue Feng QUALIFIED
Salvatore D DoeRussiaAsiya Javayant PROPOSAL
Salvatore R KuskoCanadaAnna Fali QUALIFIED
Ivar T VenereFranceAnna Fali NEW
Ashley A VenereSpainIoni Bowcher PROPOSAL
Deepesh H WieserCanadaXuxue Feng UNQUALIFIED
Faith J RoysterRussiaIvan Magalhaes NEW
Silvio I GlickSpainOnyama Limba QUALIFIED
Chavez P FigeroaSpainAmy Elsner UNQUALIFIED
Kaitlin Q BriddickRussiaIvan Magalhaes NEW
Aruna Q CampainCanadaStephen Shaw QUALIFIED
Darci X StockhamUnited KingdomAnna Fali UNQUALIFIED
Costa S PaprockiCanadaElwin Sharvill PROPOSAL
Francesco H TollnerFranceStephen Shaw PROPOSAL
Emily P MaletItalyStephen Shaw NEGOTIATION
Tony R SergiBrazilOnyama Limba PROPOSAL
Leon O PaprockiJapanAnna Fali RENEWAL
Maisha H PaprockiUnited KingdomIoni Bowcher QUALIFIED
Kadeem N RutaCanadaIvan Magalhaes UNQUALIFIED
Faith D DarakjyJapanIvan Magalhaes NEW
Costa J SchemmerBrazilElwin Sharvill UNQUALIFIED
Smith A RimBrazilAnna Fali NEW
Clifford W MaletSpainOnyama Limba UNQUALIFIED
Arvin S BologniaCanadaAnna Fali QUALIFIED
Adams G VocelkaGermanyElwin Sharvill RENEWAL
Mujtaba H ButtCanadaOnyama Limba UNQUALIFIED
Frozen Columns
Name
James S Bowley
Leja C Darakjy
Jeanfrancois X Ferencz
Wickens E Nestle
Antonio B Flosi
Clifford C Malet
Kadeem O Whobrey
Tony P Malet
Julie M Garufi
Faith D Ruta
Arvin B Vocelka
Rodrigues G Amigon
Morrow T Amigon
Morrow N Foller
Maria Z Campain
Salvatore D Briddick
Stacey M Marrier
Arvin C Nicka
Smith J Doe
Cody O Kusko
Deepesh G Royster
Costa O Sergi
Darci B Albares
Stacey J Stenseth
Ivar A Nicka
Izzy J Vocelka
Morrow D Maclead
Stacey P Paprocki
Kaitlin A Albares
Chavez F Nicka
Maisha S Ferencz
Adams W Waycott
Jeanfrancois J Venere
Izzy D Poquette
Leon C Kusko
Aruna E Flosi
Julie B Nicka
Morrow U Saylors
James C Slusarski
Maria M Malet
Octavia J Tollner
Misaki G Stockham
Munro X Saylors
Morrow O Iturbide
Arvin T Briddick
Darci Q Tollner
Salvatore J Saylors
David L Waycott
Stacey M Nestle
Johnson P Briddick
IdCountryDate
1000Japan2026-08-11
1001Italy2026-08-08
1002Australia2026-08-02
1003India2026-08-24
1004Canada2026-08-11
1005Spain2026-08-20
1006Russia2026-07-29
1007India2026-08-21
1008Japan2026-08-12
1009Russia2026-08-11
1010India2026-07-31
1011Australia2026-08-09
1012Australia2026-08-10
1013France2026-07-31
1014Canada2026-08-07
1015Italy2026-08-02
1016Germany2026-08-21
1017India2026-08-18
1018Russia2026-08-01
1019Germany2026-08-09
1020Spain2026-08-23
1021Canada2026-08-12
1022Russia2026-08-07
1023Italy2026-08-01
1024Russia2026-08-15
1025Italy2026-07-28
1026Canada2026-08-18
1027France2026-08-19
1028Russia2026-08-16
1029Japan2026-08-02
1030Spain2026-07-29
1031Spain2026-07-30
1032Brazil2026-08-23
1033Germany2026-07-30
1034France2026-08-09
1035Brazil2026-08-07
1036Italy2026-08-19
1037France2026-08-12
1038Russia2026-08-03
1039Spain2026-08-22
1040Spain2026-08-13
1041Italy2026-07-30
1042Canada2026-08-05
1043Germany2026-08-02
1044India2026-07-28
1045Russia2026-08-06
1046Australia2026-08-20
1047Germany2026-08-13
1048France2026-07-30
1049Japan2026-08-04

On-Demand Data

NameIdCountryDate
Greenwood V Inouye1000Brazil2026-08-13
Rodrigues C Gillian1001Brazil2026-08-14
Silvio D Kolmetz1002Brazil2026-08-08
Mayumi N Chui1003Russia2026-07-31
Octavia T Gaucho1004Spain2026-08-19
Juan J Shinko1005Russia2026-08-23
Aika Y Malet1006Germany2026-08-18
Aruna T Caudy1007Russia2026-08-23
Misaki F Shinko1008United Kingdom2026-08-11
Munro V Maclead1009Canada2026-08-24
Jones L Vocelka1010Italy2026-08-15
Ricardo K Ferencz1011Brazil2026-08-15
Murillo M Darakjy1012Canada2026-08-09
Alejandro W Royster1013Italy2026-08-09
Aditya M Schemmer1014United Kingdom2026-08-08
Kaitlin T Royster1015Germany2026-07-31
Kaitlin Y Nicka1016Italy2026-08-21
Leja Z Stenseth1017Russia2026-08-16
Stacey V Sergi1018Spain2026-08-19
Kadeem Q Shinko1019France2026-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley P BriddickArgentinaStephen Shaw NEGOTIATION
Adams G AlbaresFranceOnyama Limba RENEWAL
James J GarufiJapanOnyama Limba NEW
Clifford U BowleySpainXuxue Feng NEW
Juan F BologniaCanadaAnna Fali PROPOSAL
Julie W CampainAustraliaBernardo Dominic NEW
Emily G StockhamUnited KingdomStephen Shaw QUALIFIED
Misaki P FlosiIndiaAmy Elsner PROPOSAL
Octavia O SergiItalyStephen Shaw RENEWAL
Octavia T PerinRussiaXuxue Feng RENEWAL
Emily S IturbideJapanAnna Fali UNQUALIFIED
Kaitlin S ShinkoArgentinaIoni Bowcher NEW
Morrow R WhobreyGermanyBernardo Dominic NEW
Kadeem K AlbaresIndiaAnna Fali PROPOSAL
Antonio E RoysterGermanyXuxue Feng NEW
Darci G VocelkaItalyXuxue Feng UNQUALIFIED
Ashley P FollerItalyAnna Fali NEW
Mayumi T CampainIndiaOnyama Limba PROPOSAL
Sinclair T OstroskyGermanyBernardo Dominic NEGOTIATION
Jennifer O InouyeSpainXuxue Feng NEGOTIATION
Smith H BowleyItalyOnyama Limba PROPOSAL
Maisha D SaylorsSpainXuxue Feng UNQUALIFIED
Kadeem N GauchoBrazilElwin Sharvill NEW
Chavez L WieserAustraliaElwin Sharvill NEW
Stacey M SlusarskiAustraliaOnyama Limba NEGOTIATION
Aditya H NickaArgentinaXuxue Feng PROPOSAL
Jones O SlusarskiCanadaBernardo Dominic RENEWAL
Mayumi P KuskoCanadaIvan Magalhaes NEGOTIATION
Smith S CampainAustraliaIvan Magalhaes NEW
Greenwood I KolmetzSpainElwin Sharvill NEGOTIATION
Izzy R PerinBrazilIoni Bowcher UNQUALIFIED
Smith T SlusarskiRussiaAmy Elsner QUALIFIED
Emily J InouyeAustraliaStephen Shaw NEW
Leon C MacleadGermanyBernardo Dominic NEW
Darci Q FlosiAustraliaAnna Fali PROPOSAL
Aruna R MaletRussiaElwin Sharvill NEGOTIATION
Emily Q MaletJapanAmy Elsner NEGOTIATION
Jefferson G BowleySpainAnna Fali RENEWAL
Greenwood A MarrierArgentinaBernardo Dominic PROPOSAL
Ashley Z DoeArgentinaBernardo Dominic 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>