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
Antonio D DilliardSpainXuxue Feng NEW
Faith N SlusarskiIndiaAmy Elsner QUALIFIED
Maisha H ChuiArgentinaIvan Magalhaes RENEWAL
Clifford M StensethSpainAsiya Javayant UNQUALIFIED
Smith A PerinRussiaAnna Fali PROPOSAL
Silvio O DoeGermanyElwin Sharvill PROPOSAL
Mayumi P WieserRussiaIvan Magalhaes UNQUALIFIED
Ashley W RulapaughAustraliaIvan Magalhaes RENEWAL
Jefferson G BologniaAustraliaAmy Elsner QUALIFIED
Leja W SlusarskiIndiaAsiya Javayant NEW
Mayumi V BologniaUnited KingdomXuxue Feng PROPOSAL
Deepesh A BriddickSpainIoni Bowcher UNQUALIFIED
Munro O MarrierBrazilBernardo Dominic UNQUALIFIED
Chavez O GarufiItalyBernardo Dominic QUALIFIED
Chavez C DarakjyItalyIvan Magalhaes PROPOSAL
Smith N FigeroaSpainStephen Shaw UNQUALIFIED
Murillo P WaycottIndiaAnna Fali PROPOSAL
Adams M StensethBrazilAnna Fali QUALIFIED
Clifford H StensethUnited KingdomIvan Magalhaes NEW
Julie P PoquetteIndiaAsiya Javayant RENEWAL
Murillo H VocelkaSpainOnyama Limba UNQUALIFIED
Claire A RimIndiaElwin Sharvill RENEWAL
Alejandro G PerinJapanXuxue Feng RENEWAL
Ashley H PerinCanadaBernardo Dominic RENEWAL
Octavia C KuskoJapanAmy Elsner NEW
Faith Z OstroskyItalyAnna Fali NEGOTIATION
Rodrigues I OstroskySpainAnna Fali QUALIFIED
Tony C MorascaGermanyAnna Fali PROPOSAL
Smith K MacleadRussiaXuxue Feng PROPOSAL
Salvatore R SergiRussiaElwin Sharvill RENEWAL
James X MacleadJapanStephen Shaw NEW
Costa F WaycottUnited KingdomIvan Magalhaes NEW
Julie H CaldareraItalyElwin Sharvill PROPOSAL
Mayumi I GillianGermanyStephen Shaw PROPOSAL
Jennifer M CaldareraUnited KingdomAmy Elsner PROPOSAL
Maria F RulapaughFranceOnyama Limba QUALIFIED
Julie K SergiItalyIvan Magalhaes QUALIFIED
Misaki U BologniaSpainBernardo Dominic PROPOSAL
Ivar W SergiUnited KingdomStephen Shaw UNQUALIFIED
Jones Z MacleadFranceStephen Shaw UNQUALIFIED
Jones I ChuiFranceOnyama Limba UNQUALIFIED
Ricardo Y WieserIndiaBernardo Dominic RENEWAL
Misaki S FollerCanadaAmy Elsner RENEWAL
Izzy F InouyeGermanyXuxue Feng NEW
James V TollnerAustraliaIvan Magalhaes NEGOTIATION
Smith C KuskoAustraliaStephen Shaw NEGOTIATION
Aditya E FigeroaCanadaAnna Fali PROPOSAL
Isabel P KolmetzJapanIoni Bowcher QUALIFIED
Jefferson P GlickUnited KingdomXuxue Feng NEGOTIATION
Chavez H IturbideGermanyIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey F GillianCanadaAmy Elsner NEGOTIATION
Morrow M GauchoFranceOnyama Limba NEGOTIATION
Johnson S PoquetteArgentinaIoni Bowcher NEGOTIATION
Kaitlin Z MarrierCanadaIvan Magalhaes RENEWAL
Kadeem N AmigonArgentinaAmy Elsner PROPOSAL
Ivar L PerinBrazilStephen Shaw UNQUALIFIED
Jones V GlickArgentinaBernardo Dominic NEGOTIATION
Ivar R WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Maria R ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood H MaletItalyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel X CampainCanada2026-06-15Feiner Bros UNQUALIFIED29Elwin Sharvill
1001Maria S PerinBrazil2026-07-02Dorl, James J Esq NEGOTIATION7Ivan Magalhaes
1002Alejandro I PaprockiUnited Kingdom2026-06-20Buckley Miller Wright NEW9Asiya Javayant
1003Mayumi R FollerIndia2026-06-09Chanay, Jeffrey A Esq QUALIFIED66Ioni Bowcher
1004Ashley W SlusarskiCanada2026-06-04Rousseaux, Michael Esq QUALIFIED76Amy Elsner
1005Maisha D RulapaughAustralia2026-06-11Commercial Press NEGOTIATION22Asiya Javayant
1006Wickens G NestleAustralia2026-06-21Chemel, James L Cpa UNQUALIFIED42Bernardo Dominic
1007Izzy P IturbideFrance2026-06-22Chanay, Jeffrey A Esq QUALIFIED78Ioni Bowcher
1008Alejandro W OstroskyArgentina2026-06-19King, Christopher A Esq QUALIFIED6Amy Elsner
1009David L ButtFrance2026-07-01Commercial Press NEW68Ivan Magalhaes
1010Tony S FlosiFrance2026-07-01Chemel, James L Cpa UNQUALIFIED11Anna Fali
1011Ashley H RimUnited Kingdom2026-06-29Buckley Miller Wright PROPOSAL67Ioni Bowcher
1012Wickens N InouyeBrazil2026-06-26Chemel, James L Cpa RENEWAL99Ioni Bowcher
1013Aika L DilliardUnited Kingdom2026-06-28King, Christopher A Esq UNQUALIFIED4Onyama Limba
1014James C SchemmerCanada2026-06-22Rousseaux, Michael Esq NEW6Bernardo Dominic
1015James H FigeroaAustralia2026-06-23Morlong Associates RENEWAL88Anna Fali
1016Ivar Y MaletGermany2026-06-14Commercial Press NEGOTIATION22Amy Elsner
1017Sinclair B FlosiGermany2026-06-04Commercial Press NEW64Ioni Bowcher
1018Arvin F BriddickAustralia2026-06-09Rangoni Of Florence PROPOSAL58Onyama Limba
1019Emily W OstroskyFrance2026-06-20Chemel, James L Cpa NEGOTIATION73Ioni Bowcher
1020Silvio V RimFrance2026-06-10Commercial Press RENEWAL22Bernardo Dominic
1021Faith J MaletArgentina2026-06-30Buckley Miller Wright NEW48Asiya Javayant
1022Jeanfrancois G StockhamAustralia2026-06-21Dorl, James J Esq UNQUALIFIED30Asiya Javayant
1023Ricardo A FollerArgentina2026-06-05Morlong Associates PROPOSAL30Xuxue Feng
1024Jones V CampainJapan2026-06-15Truhlar And Truhlar Attys UNQUALIFIED17Xuxue Feng
1025Claire D ButtIndia2026-06-24Dorl, James J Esq PROPOSAL12Ivan Magalhaes
1026Morrow B CaldareraUnited Kingdom2026-07-02Feiner Bros UNQUALIFIED96Stephen Shaw
1027Ricardo U ButtArgentina2026-06-20Chanay, Jeffrey A Esq NEW95Amy Elsner
1028Leon J DoeAustralia2026-06-10Rangoni Of Florence PROPOSAL38Amy Elsner
1029Juan P PaprockiItaly2026-06-13Rangoni Of Florence PROPOSAL96Ivan Magalhaes
1030Murillo Y KolmetzSpain2026-06-13Morlong Associates PROPOSAL94Elwin Sharvill
1031Stacey V SlusarskiCanada2026-06-23Feiner Bros NEW72Stephen Shaw
1032Leja C IturbideSpain2026-06-17Feiner Bros UNQUALIFIED48Ioni Bowcher
1033Sinclair R CampainCanada2026-06-13Commercial Press PROPOSAL38Onyama Limba
1034Antonio I PoquetteAustralia2026-06-15Chemel, James L Cpa NEGOTIATION57Bernardo Dominic
1035Francesco F ShinkoGermany2026-06-08Feltz Printing Service UNQUALIFIED41Onyama Limba
1036Kadeem A WhobreyBrazil2026-06-21Commercial Press QUALIFIED49Amy Elsner
1037Darci D GillianUnited Kingdom2026-06-30Chanay, Jeffrey A Esq QUALIFIED1Xuxue Feng
1038Aruna E WaycottBrazil2026-06-20Commercial Press QUALIFIED15Amy Elsner
1039Deepesh E WhobreyItaly2026-06-03Chanay, Jeffrey A Esq PROPOSAL89Anna Fali
1040Tony W IturbideItaly2026-06-06Buckley Miller Wright RENEWAL86Ivan Magalhaes
1041Rodrigues H InouyeFrance2026-06-15Rousseaux, Michael Esq NEGOTIATION16Elwin Sharvill
1042Claire Y NickaBrazil2026-06-15Feiner Bros UNQUALIFIED59Onyama Limba
1043Clifford R RulapaughFrance2026-06-16Dorl, James J Esq QUALIFIED82Bernardo Dominic
1044Kadeem J RimIndia2026-06-24Truhlar And Truhlar Attys UNQUALIFIED1Elwin Sharvill
1045Ashley V DoeRussia2026-06-10Chanay, Jeffrey A Esq QUALIFIED80Amy Elsner
1046Chavez A ButtUnited Kingdom2026-06-23Rousseaux, Michael Esq PROPOSAL26Ivan Magalhaes
1047Emily Y WaycottSpain2026-06-03Chemel, James L Cpa UNQUALIFIED56Anna Fali
1048Octavia J CaldareraSpain2026-06-16Rangoni Of Florence NEGOTIATION26Asiya Javayant
1049Cody D PaprockiCanada2026-06-26Chanay, Jeffrey A Esq NEW34Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jones J AmigonItalyAnna Fali UNQUALIFIED
Leja S RimCanadaAsiya Javayant UNQUALIFIED
Chavez V OldroydRussiaAsiya Javayant QUALIFIED
Octavia F NestleIndiaAnna Fali NEW
Greenwood K DilliardAustraliaStephen Shaw QUALIFIED
Clifford F RoysterRussiaAnna Fali QUALIFIED
Morrow M MacleadBrazilBernardo Dominic UNQUALIFIED
Alejandro I SchemmerItalyBernardo Dominic UNQUALIFIED
Johnson R VenereJapanBernardo Dominic QUALIFIED
Deepesh I BriddickFranceAsiya Javayant QUALIFIED
Ashley L OstroskyBrazilXuxue Feng NEGOTIATION
Juan Q GauchoUnited KingdomOnyama Limba QUALIFIED
Francesco X FigeroaRussiaXuxue Feng NEW
Deepesh V PaprockiGermanyXuxue Feng QUALIFIED
Murillo F DilliardJapanXuxue Feng QUALIFIED
Faith A KolmetzArgentinaIoni Bowcher PROPOSAL
Juan V OstroskyFranceAmy Elsner UNQUALIFIED
Jeanfrancois N MorascaItalyAmy Elsner RENEWAL
Nicolas M WieserIndiaAnna Fali PROPOSAL
Wickens N WhobreySpainIoni Bowcher NEGOTIATION
Francesco Q FlosiRussiaIoni Bowcher UNQUALIFIED
Octavia Q BowleyArgentinaOnyama Limba PROPOSAL
Jennifer M TollnerRussiaIoni Bowcher NEW
Kadeem Y VocelkaArgentinaBernardo Dominic RENEWAL
Alejandro U MarrierGermanyAmy Elsner UNQUALIFIED
Darci I VocelkaArgentinaAnna Fali NEW
David A MaletItalyIoni Bowcher PROPOSAL
Jones C PoquetteCanadaIvan Magalhaes QUALIFIED
Arvin K MacleadJapanOnyama Limba PROPOSAL
Clifford T RutaItalyAnna Fali UNQUALIFIED
Emily X CaudyIndiaIvan Magalhaes PROPOSAL
Leja V DoeGermanyAmy Elsner NEGOTIATION
Wickens H VocelkaGermanyStephen Shaw QUALIFIED
Stacey H BologniaGermanyBernardo Dominic QUALIFIED
Julie R VenereCanadaIoni Bowcher NEW
Aruna O MaletAustraliaElwin Sharvill NEW
Octavia S IturbideSpainIvan Magalhaes UNQUALIFIED
Maria X SlusarskiCanadaBernardo Dominic RENEWAL
Darci D StockhamBrazilIoni Bowcher PROPOSAL
Francesco X MorascaRussiaAnna Fali UNQUALIFIED
Johnson E RimUnited KingdomAmy Elsner RENEWAL
Ricardo M SergiGermanyAsiya Javayant RENEWAL
Antonio M CampainUnited KingdomIoni Bowcher PROPOSAL
Ricardo L ShinkoSpainIoni Bowcher NEW
Aruna B StockhamSpainAsiya Javayant QUALIFIED
Stacey H BologniaAustraliaAnna Fali NEGOTIATION
Emily A FlosiRussiaAmy Elsner UNQUALIFIED
Emily U GlickAustraliaOnyama Limba QUALIFIED
Maisha T FlosiArgentinaElwin Sharvill NEGOTIATION
Aruna P InouyeJapanIvan Magalhaes PROPOSAL
Frozen Columns
Name
Salvatore M Malet
Aruna L Amigon
Isabel C Kusko
Juan A Gillian
Izzy N Gillian
Kadeem R Flosi
Isabel K Glick
Julie X Marrier
Leja P Flosi
Leon Y Tollner
Deepesh E Flosi
Aika E Ferencz
Aruna A Shinko
Chavez K Vocelka
Izzy Y Perin
Munro D Glick
Chavez I Ruta
Isabel N Maclead
Deepesh V Vocelka
Munro T Garufi
Izzy W Bolognia
Silvio R Figeroa
Jones S Inouye
Sinclair F Tollner
Antonio R Shinko
Aika V Tollner
Kadeem A Morasca
Arvin X Butt
Aditya P Vocelka
Antonio J Oldroyd
Emily V Perin
Faith B Nestle
Alejandro Q Poquette
Ricardo Y Wieser
Clifford J Doe
Salvatore C Albares
Darci Y Foller
Juan Y Albares
Julie Z Iturbide
Ashley L Oldroyd
Smith F Saylors
Costa J Saylors
Aditya I Schemmer
Smith V Iturbide
Francesco C Stenseth
Ashley H Malet
Ivar X Briddick
Cody Y Butt
Octavia Y Paprocki
Izzy H Tollner
IdCountryDate
1000Germany2026-06-25
1001France2026-06-15
1002Canada2026-06-13
1003Brazil2026-06-06
1004Argentina2026-06-19
1005Germany2026-06-14
1006Russia2026-06-28
1007United Kingdom2026-06-24
1008India2026-06-27
1009Australia2026-06-21
1010Brazil2026-06-12
1011Brazil2026-06-28
1012Brazil2026-06-19
1013Australia2026-07-01
1014France2026-06-26
1015Argentina2026-07-02
1016United Kingdom2026-06-16
1017France2026-06-26
1018India2026-06-09
1019United Kingdom2026-06-05
1020Spain2026-06-27
1021Argentina2026-06-11
1022United Kingdom2026-06-30
1023Australia2026-06-09
1024Canada2026-06-24
1025Japan2026-06-05
1026India2026-06-15
1027Brazil2026-06-11
1028India2026-06-04
1029United Kingdom2026-06-20
1030Germany2026-06-23
1031Australia2026-06-17
1032United Kingdom2026-06-04
1033Brazil2026-06-19
1034Spain2026-06-10
1035Italy2026-06-20
1036Argentina2026-07-02
1037Australia2026-06-24
1038Australia2026-06-07
1039United Kingdom2026-06-05
1040France2026-06-14
1041Argentina2026-06-22
1042Argentina2026-06-30
1043Russia2026-06-15
1044Germany2026-06-05
1045Germany2026-06-04
1046France2026-06-27
1047Canada2026-06-25
1048India2026-06-29
1049Canada2026-07-02

On-Demand Data

NameIdCountryDate
Claire F Oldroyd1000Japan2026-06-22
Leja E Schemmer1001United Kingdom2026-06-26
Costa M Bolognia1002France2026-06-28
Jeanfrancois V Shinko1003Germany2026-06-18
Silvio B Waycott1004Russia2026-06-21
Smith K Garufi1005India2026-06-22
Nicolas J Venere1006Australia2026-06-04
Aditya Q Stenseth1007Japan2026-06-27
James G Darakjy1008Germany2026-06-25
Murillo C Wieser1009Spain2026-06-13
Ashley K Chui1010Australia2026-06-23
Ricardo N Ferencz1011Australia2026-06-13
Deepesh O Iturbide1012Germany2026-06-06
Clifford V Inouye1013Spain2026-06-07
Ashley Y Tollner1014Spain2026-06-24
Aika C Amigon1015India2026-06-12
Francesco C Wieser1016Australia2026-06-13
Arvin V Ferencz1017Brazil2026-07-02
Aika N Morasca1018Spain2026-06-25
Misaki Z Venere1019Brazil2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia W FigeroaJapanOnyama Limba RENEWAL
Stacey N AlbaresArgentinaXuxue Feng NEW
Izzy C CaudySpainIvan Magalhaes UNQUALIFIED
Aditya E MarrierSpainElwin Sharvill RENEWAL
Mujtaba O RoysterItalyAmy Elsner UNQUALIFIED
Jennifer P VocelkaAustraliaIvan Magalhaes NEW
Emily Q RulapaughItalyXuxue Feng UNQUALIFIED
Smith V MacleadBrazilAnna Fali RENEWAL
Rodrigues A GauchoJapanIoni Bowcher NEW
Faith G BologniaBrazilBernardo Dominic NEGOTIATION
Kadeem G GauchoBrazilIvan Magalhaes NEGOTIATION
Aruna S RoysterAustraliaStephen Shaw NEW
Stacey M SergiIndiaStephen Shaw RENEWAL
Octavia I SergiIndiaOnyama Limba RENEWAL
Tony D SchemmerIndiaElwin Sharvill PROPOSAL
Nicolas T BologniaIndiaStephen Shaw RENEWAL
Leon W VocelkaGermanyAsiya Javayant PROPOSAL
Cody X ChuiItalyIvan Magalhaes RENEWAL
Leja A TollnerArgentinaXuxue Feng PROPOSAL
Ivar X FlosiFranceXuxue Feng NEW
Julie X VocelkaSpainXuxue Feng NEW
Isabel F CaldareraIndiaAmy Elsner NEW
Munro B FollerJapanStephen Shaw QUALIFIED
Costa T PaprockiUnited KingdomElwin Sharvill QUALIFIED
Ricardo F NestleFranceBernardo Dominic PROPOSAL
Jones V ButtBrazilIvan Magalhaes UNQUALIFIED
James Z KuskoFranceIvan Magalhaes NEW
Antonio J DarakjyUnited KingdomAmy Elsner NEGOTIATION
Johnson A StockhamItalyElwin Sharvill UNQUALIFIED
Alejandro X CampainArgentinaAnna Fali UNQUALIFIED
Greenwood P RimItalyXuxue Feng PROPOSAL
Leja C StockhamIndiaXuxue Feng PROPOSAL
Misaki U ShinkoRussiaOnyama Limba RENEWAL
Greenwood S GauchoJapanStephen Shaw NEW
Chavez T StensethAustraliaStephen Shaw PROPOSAL
Kaitlin B StockhamJapanOnyama Limba QUALIFIED
Ashley B VenereSpainIoni Bowcher NEW
Aruna Y BriddickItalyStephen Shaw NEW
Maria F OldroydUnited KingdomStephen Shaw NEW
Silvio L BriddickIndiaElwin Sharvill 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>