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
Juan S RoysterArgentinaOnyama Limba RENEWAL
Sinclair I BriddickSpainOnyama Limba UNQUALIFIED
Deepesh K CampainBrazilStephen Shaw PROPOSAL
Costa P WhobreyCanadaAmy Elsner UNQUALIFIED
Cody Q MaletUnited KingdomStephen Shaw NEGOTIATION
Deepesh G FollerCanadaAmy Elsner PROPOSAL
Jennifer G FollerGermanyIoni Bowcher PROPOSAL
Leja Y GlickFranceAmy Elsner PROPOSAL
Darci R ButtJapanXuxue Feng NEW
Stacey N NickaGermanyAnna Fali PROPOSAL
Maria O NickaItalyOnyama Limba QUALIFIED
Morrow M OstroskyBrazilOnyama Limba NEGOTIATION
Mayumi P ButtRussiaStephen Shaw PROPOSAL
Kaitlin P BriddickBrazilStephen Shaw RENEWAL
Deepesh G MaletBrazilAmy Elsner RENEWAL
Julie C ShinkoArgentinaAmy Elsner UNQUALIFIED
Salvatore Z FlosiItalyAnna Fali QUALIFIED
Wickens G NestleItalyStephen Shaw NEW
Maisha R WieserAustraliaIoni Bowcher NEW
Mayumi N BowleyIndiaElwin Sharvill PROPOSAL
Munro B SchemmerIndiaAsiya Javayant UNQUALIFIED
Rodrigues D StockhamRussiaOnyama Limba NEGOTIATION
Cody E ButtBrazilIvan Magalhaes NEW
David J PoquetteFranceStephen Shaw UNQUALIFIED
Jones E GauchoGermanyStephen Shaw NEW
Sinclair T SergiFranceOnyama Limba UNQUALIFIED
Alejandro M MacleadRussiaElwin Sharvill PROPOSAL
Misaki H NestleSpainIoni Bowcher NEW
Wickens Q VocelkaRussiaBernardo Dominic NEW
Morrow Y FollerArgentinaIvan Magalhaes RENEWAL
Juan S KuskoGermanyOnyama Limba UNQUALIFIED
Isabel P DarakjyItalyAmy Elsner QUALIFIED
Octavia Q GarufiJapanXuxue Feng QUALIFIED
Greenwood L FlosiGermanyElwin Sharvill UNQUALIFIED
Johnson U ButtSpainIvan Magalhaes NEW
Stacey U DoeBrazilStephen Shaw PROPOSAL
Mayumi D CaudyItalyXuxue Feng NEW
Kadeem P StockhamJapanElwin Sharvill NEGOTIATION
Clifford T CampainAustraliaAnna Fali NEW
Nicolas X FigeroaItalyIvan Magalhaes PROPOSAL
Wickens P StensethAustraliaIoni Bowcher NEW
Clifford C BowleySpainXuxue Feng PROPOSAL
Alejandro H MarrierAustraliaIoni Bowcher UNQUALIFIED
Nicolas L WieserArgentinaAsiya Javayant NEW
Morrow H KolmetzRussiaStephen Shaw PROPOSAL
Cody G WaycottSpainIoni Bowcher PROPOSAL
Maria V KolmetzAustraliaIoni Bowcher UNQUALIFIED
Octavia Y WhobreyItalyBernardo Dominic RENEWAL
Tony T AmigonItalyAnna Fali PROPOSAL
Cody C FigeroaArgentinaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford E CaudyArgentinaElwin Sharvill NEW
Maria V BologniaCanadaIoni Bowcher UNQUALIFIED
Sinclair E InouyeJapanAsiya Javayant RENEWAL
Maria U FerenczBrazilXuxue Feng PROPOSAL
Murillo W FerenczFranceXuxue Feng NEGOTIATION
Ivar P SaylorsFranceAmy Elsner QUALIFIED
Clifford L RulapaughFranceAmy Elsner UNQUALIFIED
Ashley H PaprockiUnited KingdomIoni Bowcher NEW
Clifford W BriddickGermanyBernardo Dominic RENEWAL
Mayumi D PaprockiRussiaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco P InouyeArgentina2026-08-08Chanay, Jeffrey A Esq QUALIFIED93Onyama Limba
1001Julie Z VocelkaGermany2026-07-28Buckley Miller Wright RENEWAL35Xuxue Feng
1002Francesco N VenereAustralia2026-08-13Chemel, James L Cpa PROPOSAL27Xuxue Feng
1003Julie C NestleBrazil2026-08-17Buckley Miller Wright QUALIFIED70Amy Elsner
1004Alejandro J VocelkaSpain2026-08-15Chapman, Ross E Esq NEGOTIATION69Asiya Javayant
1005Ashley Y StockhamArgentina2026-08-09Rangoni Of Florence UNQUALIFIED58Asiya Javayant
1006Kadeem V FerenczBrazil2026-07-30Benton, John B Jr NEW33Stephen Shaw
1007Ricardo S CaudyAustralia2026-07-26King, Christopher A Esq UNQUALIFIED65Xuxue Feng
1008Claire Z PoquetteArgentina2026-07-28Feltz Printing Service PROPOSAL67Onyama Limba
1009Jeanfrancois X AmigonIndia2026-08-13Chemel, James L Cpa NEW18Amy Elsner
1010Sinclair W SaylorsGermany2026-07-31Chemel, James L Cpa UNQUALIFIED8Stephen Shaw
1011Ashley X RimIndia2026-07-30Rangoni Of Florence PROPOSAL94Ivan Magalhaes
1012Costa W PerinUnited Kingdom2026-07-26King, Christopher A Esq NEW66Bernardo Dominic
1013Sinclair B ButtSpain2026-08-07Printing Dimensions UNQUALIFIED36Amy Elsner
1014James U BriddickJapan2026-08-02Rangoni Of Florence QUALIFIED45Onyama Limba
1015Kaitlin P KolmetzCanada2026-08-13Printing Dimensions PROPOSAL29Anna Fali
1016Smith G MacleadFrance2026-08-12Chanay, Jeffrey A Esq NEGOTIATION64Elwin Sharvill
1017Alejandro K InouyeRussia2026-07-25Buckley Miller Wright QUALIFIED84Anna Fali
1018Izzy W KuskoJapan2026-07-25Buckley Miller Wright NEW77Asiya Javayant
1019Emily C TollnerFrance2026-07-25Chanay, Jeffrey A Esq NEW1Anna Fali
1020Sinclair R TollnerCanada2026-07-28Chapman, Ross E Esq PROPOSAL65Bernardo Dominic
1021Emily B DoeUnited Kingdom2026-08-03Dorl, James J Esq NEW89Bernardo Dominic
1022Jones I InouyeBrazil2026-08-15Commercial Press PROPOSAL80Elwin Sharvill
1023Arvin A MorascaIndia2026-07-26Rangoni Of Florence PROPOSAL47Amy Elsner
1024Kadeem W OstroskyItaly2026-07-29Feltz Printing Service NEGOTIATION47Ivan Magalhaes
1025Rodrigues K RutaBrazil2026-08-14Chanay, Jeffrey A Esq UNQUALIFIED22Amy Elsner
1026Claire X RulapaughArgentina2026-07-24Feltz Printing Service NEW27Xuxue Feng
1027Arvin Z MarrierIndia2026-08-12Chanay, Jeffrey A Esq NEGOTIATION30Bernardo Dominic
1028Jefferson H GarufiRussia2026-07-30Buckley Miller Wright NEW61Ivan Magalhaes
1029Wickens H NickaCanada2026-08-10Chanay, Jeffrey A Esq NEGOTIATION83Xuxue Feng
1030Leja P KuskoCanada2026-08-12Commercial Press NEW33Stephen Shaw
1031Maria H RimGermany2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED18Anna Fali
1032David D MaletFrance2026-08-01Truhlar And Truhlar Attys PROPOSAL28Ioni Bowcher
1033Arvin V AlbaresJapan2026-08-10Printing Dimensions RENEWAL82Stephen Shaw
1034Claire S ButtJapan2026-08-08Commercial Press UNQUALIFIED14Ivan Magalhaes
1035Clifford C VenereArgentina2026-08-14Chemel, James L Cpa NEGOTIATION19Elwin Sharvill
1036David B ButtJapan2026-08-19Rousseaux, Michael Esq QUALIFIED16Onyama Limba
1037Ashley I IturbideItaly2026-08-11Commercial Press NEGOTIATION98Elwin Sharvill
1038Arvin H DilliardAustralia2026-07-24Dorl, James J Esq UNQUALIFIED56Xuxue Feng
1039Cody C BriddickCanada2026-08-19Commercial Press QUALIFIED45Onyama Limba
1040Francesco A MorascaGermany2026-08-07Benton, John B Jr RENEWAL76Xuxue Feng
1041Maisha A SergiAustralia2026-08-02Truhlar And Truhlar Attys NEGOTIATION86Xuxue Feng
1042Aika A IturbideIndia2026-08-17Feiner Bros PROPOSAL21Xuxue Feng
1043Munro S GillianArgentina2026-08-20Benton, John B Jr PROPOSAL50Anna Fali
1044Sinclair I WieserJapan2026-08-07King, Christopher A Esq UNQUALIFIED5Elwin Sharvill
1045Cody N MarrierItaly2026-08-15Feltz Printing Service QUALIFIED49Stephen Shaw
1046David Z FerenczGermany2026-08-16King, Christopher A Esq RENEWAL85Elwin Sharvill
1047Kaitlin R MaletGermany2026-08-07Feiner Bros RENEWAL42Amy Elsner
1048David L BriddickJapan2026-08-05Benton, John B Jr PROPOSAL8Anna Fali
1049Murillo D VenereCanada2026-08-03Buckley Miller Wright PROPOSAL15Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire A SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Johnson Z MorascaFranceIvan Magalhaes RENEWAL
Aika W FigeroaJapanElwin Sharvill UNQUALIFIED
Jones D MaletItalyXuxue Feng QUALIFIED
Smith M ButtJapanAsiya Javayant QUALIFIED
Stacey T BriddickSpainAsiya Javayant RENEWAL
Maria J IturbideCanadaXuxue Feng NEGOTIATION
Rodrigues T GillianSpainIoni Bowcher NEW
Jennifer Q RoysterBrazilStephen Shaw UNQUALIFIED
Silvio M StensethJapanElwin Sharvill PROPOSAL
Isabel Q MaletUnited KingdomAmy Elsner QUALIFIED
Wickens B VenereRussiaStephen Shaw NEGOTIATION
Misaki T CampainUnited KingdomXuxue Feng NEGOTIATION
Silvio K PerinIndiaIvan Magalhaes RENEWAL
Murillo W OstroskyRussiaAsiya Javayant QUALIFIED
Izzy D FollerJapanAmy Elsner RENEWAL
Rodrigues Q InouyeCanadaElwin Sharvill NEGOTIATION
Francesco V BriddickIndiaAnna Fali RENEWAL
Nicolas J StensethArgentinaAnna Fali PROPOSAL
Aika H WhobreyGermanyOnyama Limba PROPOSAL
Emily R StockhamItalyElwin Sharvill RENEWAL
Antonio G NestleRussiaOnyama Limba UNQUALIFIED
Ashley S PerinFranceOnyama Limba RENEWAL
Aika G FerenczIndiaAmy Elsner NEGOTIATION
Silvio N PoquetteFranceIvan Magalhaes PROPOSAL
Ricardo P SchemmerBrazilElwin Sharvill NEW
Misaki U GarufiRussiaIoni Bowcher NEW
Morrow J GarufiCanadaAnna Fali QUALIFIED
Aditya K BowleyArgentinaStephen Shaw NEW
Silvio M AmigonArgentinaOnyama Limba PROPOSAL
Jennifer R NickaItalyIoni Bowcher NEGOTIATION
Jennifer W ButtRussiaOnyama Limba PROPOSAL
Jennifer A GauchoAustraliaAsiya Javayant RENEWAL
Jones U GlickRussiaXuxue Feng PROPOSAL
Jeanfrancois U FollerCanadaStephen Shaw RENEWAL
Smith V RulapaughGermanyAmy Elsner NEW
Smith G BriddickRussiaIvan Magalhaes RENEWAL
Antonio W SergiAustraliaElwin Sharvill UNQUALIFIED
Clifford D MacleadItalyBernardo Dominic QUALIFIED
Alejandro R SlusarskiItalyStephen Shaw PROPOSAL
Maisha Y GlickBrazilStephen Shaw RENEWAL
Alejandro F WaycottAustraliaElwin Sharvill NEGOTIATION
Aika I TollnerGermanyAnna Fali NEGOTIATION
Darci J CaudyIndiaBernardo Dominic RENEWAL
Costa J ButtArgentinaAnna Fali RENEWAL
James A MaletFranceAmy Elsner QUALIFIED
Greenwood R FigeroaGermanyXuxue Feng PROPOSAL
Leon N BowleyUnited KingdomAsiya Javayant NEGOTIATION
Leja E SlusarskiArgentinaOnyama Limba UNQUALIFIED
Rodrigues B MaletFranceXuxue Feng NEW
Frozen Columns
Name
Nicolas V Marrier
Julie S Figeroa
Jones Y Oldroyd
Aika Q Figeroa
Mayumi V Flosi
Rodrigues G Slusarski
James S Figeroa
Rodrigues F Gillian
Chavez I Paprocki
Antonio I Oldroyd
Leon F Poquette
Kadeem J Nestle
Tony L Vocelka
Ashley Q Vocelka
Chavez S Malet
Misaki G Ferencz
Darci Q Nestle
Kaitlin X Morasca
Cody R Caudy
Munro B Garufi
Jeanfrancois L Rulapaugh
Kaitlin R Rulapaugh
Jeanfrancois P Flosi
Costa D Poquette
Greenwood L Schemmer
Mujtaba P Glick
Smith N Wieser
Tony S Ostrosky
Salvatore E Maclead
Jeanfrancois J Gillian
Costa T Flosi
Antonio H Stenseth
Munro N Ruta
James R Poquette
Aika C Glick
Maisha D Briddick
Ashley Q Ostrosky
Emily G Albares
Costa W Bowley
Jennifer V Saylors
Johnson M Flosi
Smith T Shinko
Leon M Bolognia
Leon N Perin
Murillo I Glick
Mujtaba U Nestle
Tony D Stenseth
Clifford B Dilliard
Jeanfrancois T Kusko
Mayumi P Ostrosky
IdCountryDate
1000India2026-08-12
1001Australia2026-07-30
1002Germany2026-08-11
1003Italy2026-08-18
1004France2026-08-07
1005Spain2026-08-16
1006Spain2026-07-25
1007Japan2026-07-23
1008Spain2026-07-24
1009Argentina2026-08-02
1010Brazil2026-07-28
1011India2026-08-20
1012Germany2026-08-12
1013Australia2026-08-20
1014France2026-08-12
1015Spain2026-07-27
1016Spain2026-07-27
1017Germany2026-07-23
1018Italy2026-08-05
1019Argentina2026-08-05
1020Brazil2026-08-08
1021Russia2026-08-19
1022Argentina2026-07-29
1023Argentina2026-08-15
1024Spain2026-08-19
1025India2026-07-27
1026France2026-08-09
1027United Kingdom2026-07-31
1028Spain2026-08-14
1029Russia2026-08-06
1030Canada2026-08-16
1031Argentina2026-07-25
1032Australia2026-07-22
1033Russia2026-07-22
1034Brazil2026-07-24
1035Japan2026-08-13
1036Japan2026-08-17
1037Australia2026-07-25
1038France2026-07-28
1039France2026-08-03
1040Spain2026-07-25
1041Russia2026-08-02
1042Australia2026-08-19
1043Russia2026-08-14
1044France2026-08-19
1045Spain2026-07-26
1046France2026-08-11
1047Russia2026-07-30
1048Argentina2026-07-29
1049Brazil2026-08-17

On-Demand Data

NameIdCountryDate
Silvio H Paprocki1000United Kingdom2026-08-03
Munro J Glick1001Japan2026-07-26
Jefferson N Bolognia1002Brazil2026-07-25
Octavia Q Foller1003Argentina2026-08-06
Tony Z Marrier1004United Kingdom2026-08-11
Leon P Perin1005United Kingdom2026-08-13
Kadeem C Maclead1006Russia2026-08-01
Claire N Rim1007Japan2026-08-02
Julie F Poquette1008India2026-07-22
Jeanfrancois N Perin1009United Kingdom2026-07-30
Murillo N Flosi1010Russia2026-07-22
Juan D Marrier1011Australia2026-08-08
Leon F Saylors1012Russia2026-08-14
Salvatore I Nestle1013Canada2026-08-11
Isabel C Kusko1014Argentina2026-08-19
Clifford E Marrier1015Japan2026-08-04
Misaki K Schemmer1016France2026-07-25
Jefferson W Bolognia1017Germany2026-08-02
Jeanfrancois D Albares1018Germany2026-08-04
Silvio T Venere1019Australia2026-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki E MaletItalyStephen Shaw UNQUALIFIED
Claire J MorascaSpainAmy Elsner QUALIFIED
Greenwood Y DilliardArgentinaOnyama Limba QUALIFIED
Izzy Y PerinAustraliaAnna Fali UNQUALIFIED
Costa S SergiArgentinaAnna Fali UNQUALIFIED
Claire Z SlusarskiJapanBernardo Dominic NEGOTIATION
Misaki K NestleFranceOnyama Limba PROPOSAL
Tony I GillianJapanStephen Shaw UNQUALIFIED
David K StockhamArgentinaAmy Elsner NEW
Leon M DarakjyRussiaElwin Sharvill RENEWAL
Ashley W SergiRussiaIoni Bowcher PROPOSAL
James D StensethJapanAmy Elsner UNQUALIFIED
Costa B DarakjyCanadaOnyama Limba QUALIFIED
Silvio H BriddickCanadaAmy Elsner NEGOTIATION
Morrow W OldroydFranceAsiya Javayant QUALIFIED
Francesco A RoysterFranceElwin Sharvill NEW
Maria X WieserItalyAmy Elsner UNQUALIFIED
Jefferson N DilliardIndiaIoni Bowcher PROPOSAL
Adams G KuskoArgentinaXuxue Feng NEGOTIATION
Maisha U KuskoGermanyIvan Magalhaes NEW
Claire R NestleArgentinaBernardo Dominic NEGOTIATION
Cody D MarrierItalyIoni Bowcher QUALIFIED
Stacey H CaudyGermanyAsiya Javayant UNQUALIFIED
Deepesh S PaprockiAustraliaAsiya Javayant UNQUALIFIED
Emily V ButtUnited KingdomBernardo Dominic UNQUALIFIED
Darci Q DarakjyItalyOnyama Limba UNQUALIFIED
Emily F AmigonFranceElwin Sharvill NEGOTIATION
Ashley R FlosiRussiaAsiya Javayant QUALIFIED
Deepesh H IturbideIndiaAmy Elsner RENEWAL
Adams G PoquetteIndiaXuxue Feng RENEWAL
Aruna D OldroydSpainStephen Shaw UNQUALIFIED
Mujtaba F MaletGermanyElwin Sharvill UNQUALIFIED
James V FollerFranceAnna Fali UNQUALIFIED
Ashley T BowleyJapanIoni Bowcher PROPOSAL
Izzy Q CampainIndiaOnyama Limba NEGOTIATION
Kaitlin L WieserRussiaElwin Sharvill QUALIFIED
Rodrigues H SergiAustraliaStephen Shaw NEW
Mujtaba O StockhamRussiaAsiya Javayant NEW
Julie F RimArgentinaIvan Magalhaes NEGOTIATION
Clifford T SergiAustraliaAsiya Javayant QUALIFIED

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