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
Claire F MarrierSpainAsiya Javayant RENEWAL
Darci Q OstroskyAustraliaAnna Fali PROPOSAL
Cody R FlosiSpainBernardo Dominic UNQUALIFIED
Morrow N RoysterItalyElwin Sharvill RENEWAL
Jennifer C ButtArgentinaOnyama Limba NEW
Leon S GarufiSpainIoni Bowcher NEGOTIATION
Antonio H SaylorsIndiaIoni Bowcher NEGOTIATION
Cody F PerinSpainIoni Bowcher NEW
Faith R RimFranceStephen Shaw UNQUALIFIED
Aditya C DarakjyGermanyOnyama Limba NEGOTIATION
Arvin D WhobreyItalyIoni Bowcher QUALIFIED
Tony E StockhamBrazilElwin Sharvill NEW
Cody K StensethGermanyAnna Fali NEGOTIATION
Kaitlin W MacleadRussiaAsiya Javayant NEGOTIATION
Octavia A VocelkaCanadaAnna Fali NEW
Arvin W BowleyIndiaIoni Bowcher UNQUALIFIED
Octavia V IturbideIndiaAsiya Javayant RENEWAL
Julie H RutaRussiaElwin Sharvill QUALIFIED
Emily T RulapaughCanadaAnna Fali PROPOSAL
Faith F ChuiBrazilAmy Elsner UNQUALIFIED
Munro Z KuskoAustraliaIoni Bowcher NEGOTIATION
Leon T MorascaJapanOnyama Limba NEW
Juan R GillianItalyAnna Fali NEGOTIATION
Arvin G GauchoIndiaAsiya Javayant PROPOSAL
Greenwood O GarufiCanadaAmy Elsner NEW
Sinclair G InouyeItalyIvan Magalhaes RENEWAL
Clifford E BowleyArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois N ShinkoBrazilIvan Magalhaes NEGOTIATION
Maria P VenereArgentinaBernardo Dominic NEW
Munro U StensethSpainOnyama Limba PROPOSAL
Kadeem Q AmigonJapanElwin Sharvill QUALIFIED
Alejandro R ShinkoItalyIvan Magalhaes RENEWAL
Alejandro W SchemmerUnited KingdomAnna Fali UNQUALIFIED
Juan H TollnerFranceAsiya Javayant NEW
Adams D WaycottFranceElwin Sharvill PROPOSAL
James B RimUnited KingdomBernardo Dominic RENEWAL
Silvio B GillianJapanXuxue Feng NEW
Jennifer X GarufiIndiaAmy Elsner QUALIFIED
Arvin C SaylorsRussiaXuxue Feng RENEWAL
Mujtaba C ChuiBrazilAsiya Javayant PROPOSAL
Claire C FlosiJapanElwin Sharvill NEGOTIATION
Deepesh S RutaGermanyElwin Sharvill NEW
Jones K NestleItalyAmy Elsner RENEWAL
Ricardo H SergiSpainOnyama Limba NEW
Chavez S CaldareraCanadaElwin Sharvill PROPOSAL
Nicolas P GarufiAustraliaAnna Fali QUALIFIED
Kadeem E RulapaughAustraliaIoni Bowcher PROPOSAL
Greenwood L GauchoUnited KingdomAnna Fali NEW
Stacey J AmigonFranceElwin Sharvill NEW
Salvatore E RutaItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa R PoquetteBrazilIoni Bowcher PROPOSAL
Juan Z WieserUnited KingdomBernardo Dominic QUALIFIED
Mujtaba B StockhamSpainOnyama Limba UNQUALIFIED
Smith M MaletCanadaIoni Bowcher RENEWAL
Morrow G PaprockiIndiaBernardo Dominic QUALIFIED
Aruna Y CaudyFranceBernardo Dominic UNQUALIFIED
Francesco Q KolmetzGermanyOnyama Limba NEGOTIATION
Ivar N SchemmerGermanyElwin Sharvill RENEWAL
James N StensethUnited KingdomIvan Magalhaes NEW
Ivar T PaprockiRussiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford W TollnerSpain2026-07-30Feltz Printing Service QUALIFIED76Bernardo Dominic
1001Ashley R OstroskyFrance2026-07-11Dorl, James J Esq NEW26Ivan Magalhaes
1002Murillo C NickaItaly2026-07-27Benton, John B Jr PROPOSAL87Ivan Magalhaes
1003Ashley P IturbideArgentina2026-07-19Feltz Printing Service UNQUALIFIED44Stephen Shaw
1004Arvin P DarakjyAustralia2026-08-05Chemel, James L Cpa NEW68Elwin Sharvill
1005Mujtaba G CampainJapan2026-08-07Commercial Press RENEWAL98Asiya Javayant
1006Smith U AlbaresIndia2026-07-24Morlong Associates QUALIFIED43Xuxue Feng
1007Mujtaba R NickaJapan2026-07-14King, Christopher A Esq UNQUALIFIED53Elwin Sharvill
1008Jeanfrancois X MaletRussia2026-07-15Chanay, Jeffrey A Esq NEGOTIATION48Ioni Bowcher
1009Leja K BologniaArgentina2026-08-03Printing Dimensions QUALIFIED84Anna Fali
1010Tony Z BowleyGermany2026-08-06Truhlar And Truhlar Attys PROPOSAL68Bernardo Dominic
1011Izzy G KuskoCanada2026-07-30Morlong Associates PROPOSAL36Xuxue Feng
1012Kaitlin S KuskoIndia2026-07-22Feltz Printing Service QUALIFIED97Ivan Magalhaes
1013Costa Z ButtBrazil2026-07-12Commercial Press NEW26Elwin Sharvill
1014Ashley O PerinCanada2026-08-06King, Christopher A Esq QUALIFIED98Anna Fali
1015Darci C KuskoRussia2026-07-12Dorl, James J Esq NEGOTIATION28Ioni Bowcher
1016Misaki P RimUnited Kingdom2026-07-29Chemel, James L Cpa RENEWAL95Elwin Sharvill
1017Maisha V ChuiAustralia2026-08-03Morlong Associates NEGOTIATION99Amy Elsner
1018Leon Z PaprockiIndia2026-07-28Truhlar And Truhlar Attys UNQUALIFIED25Onyama Limba
1019Juan N InouyeAustralia2026-07-29Rousseaux, Michael Esq QUALIFIED75Amy Elsner
1020Francesco P StockhamFrance2026-07-19King, Christopher A Esq QUALIFIED14Elwin Sharvill
1021Wickens W MaletUnited Kingdom2026-07-22Commercial Press NEW96Ivan Magalhaes
1022Claire J GauchoJapan2026-07-16Printing Dimensions NEW62Asiya Javayant
1023Aruna Y WaycottAustralia2026-08-01Buckley Miller Wright PROPOSAL90Onyama Limba
1024Jones U NestleArgentina2026-08-07Feiner Bros NEGOTIATION11Onyama Limba
1025Isabel J RutaItaly2026-07-12Feiner Bros PROPOSAL36Ioni Bowcher
1026Antonio C MorascaItaly2026-07-21King, Christopher A Esq NEGOTIATION8Ioni Bowcher
1027Emily X AmigonAustralia2026-07-24Feiner Bros PROPOSAL85Asiya Javayant
1028Ricardo G IturbideCanada2026-08-08Commercial Press PROPOSAL68Ioni Bowcher
1029Costa X PerinRussia2026-07-20Chemel, James L Cpa UNQUALIFIED91Stephen Shaw
1030Darci Q DoeUnited Kingdom2026-07-31King, Christopher A Esq QUALIFIED69Asiya Javayant
1031Smith H BowleyGermany2026-07-25Truhlar And Truhlar Attys PROPOSAL45Bernardo Dominic
1032Jennifer W MarrierAustralia2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED74Xuxue Feng
1033Aruna Z FollerItaly2026-07-25Rangoni Of Florence QUALIFIED4Onyama Limba
1034Emily M GillianIndia2026-07-16Buckley Miller Wright NEW92Xuxue Feng
1035Mayumi R FerenczArgentina2026-07-31Feltz Printing Service QUALIFIED79Ivan Magalhaes
1036Ivar F PoquetteJapan2026-08-06Buckley Miller Wright NEW14Amy Elsner
1037Arvin M RoysterFrance2026-07-24Feltz Printing Service NEGOTIATION86Onyama Limba
1038Antonio G DilliardBrazil2026-08-05Feiner Bros RENEWAL43Stephen Shaw
1039Maria I InouyeCanada2026-08-06Chanay, Jeffrey A Esq PROPOSAL15Anna Fali
1040Rodrigues G TollnerBrazil2026-07-19Chemel, James L Cpa NEGOTIATION49Amy Elsner
1041Aruna H WieserIndia2026-08-01Chemel, James L Cpa RENEWAL42Stephen Shaw
1042Emily V BologniaGermany2026-07-24Buckley Miller Wright QUALIFIED50Amy Elsner
1043Salvatore X PoquetteCanada2026-08-09Dorl, James J Esq NEW83Xuxue Feng
1044Julie S DarakjyJapan2026-08-05Dorl, James J Esq NEGOTIATION79Ioni Bowcher
1045Nicolas W NickaIndia2026-07-18Rousseaux, Michael Esq PROPOSAL36Ioni Bowcher
1046Rodrigues Q SaylorsFrance2026-08-06Chanay, Jeffrey A Esq NEW46Onyama Limba
1047Tony Z BowleyIndia2026-07-30Benton, John B Jr NEW87Amy Elsner
1048Antonio I CaudySpain2026-07-31Rousseaux, Michael Esq RENEWAL56Xuxue Feng
1049Adams L DilliardGermany2026-08-09Chanay, Jeffrey A Esq NEW35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Francesco H PoquetteGermanyBernardo Dominic NEW
Darci S BowleyCanadaElwin Sharvill QUALIFIED
Leja E VocelkaIndiaStephen Shaw RENEWAL
Jefferson C CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Julie Z WhobreyRussiaAnna Fali PROPOSAL
Costa D SchemmerRussiaStephen Shaw UNQUALIFIED
Faith Q DilliardGermanyXuxue Feng NEW
Adams R StockhamBrazilAsiya Javayant NEW
Johnson L PerinCanadaStephen Shaw UNQUALIFIED
Leja L WaycottIndiaElwin Sharvill QUALIFIED
Clifford R InouyeBrazilAmy Elsner PROPOSAL
Leon A KuskoRussiaElwin Sharvill NEW
Alejandro X NickaArgentinaXuxue Feng NEGOTIATION
Aruna Z ShinkoCanadaXuxue Feng PROPOSAL
Aruna P SlusarskiRussiaStephen Shaw QUALIFIED
Jefferson A WhobreyGermanyAmy Elsner UNQUALIFIED
Isabel N SlusarskiBrazilIoni Bowcher PROPOSAL
Ivar C KolmetzAustraliaAsiya Javayant UNQUALIFIED
Stacey J CaldareraItalyOnyama Limba QUALIFIED
Ricardo M CaudyArgentinaAsiya Javayant NEW
Kaitlin Z FlosiBrazilIoni Bowcher RENEWAL
Smith I TollnerItalyAsiya Javayant UNQUALIFIED
Greenwood L MaletJapanXuxue Feng PROPOSAL
Greenwood R ChuiAustraliaElwin Sharvill NEGOTIATION
Julie V NestleGermanyIoni Bowcher RENEWAL
Tony D SaylorsBrazilOnyama Limba NEW
Johnson I SlusarskiSpainElwin Sharvill UNQUALIFIED
Kadeem V SergiItalyIvan Magalhaes PROPOSAL
Jefferson H PoquetteUnited KingdomXuxue Feng QUALIFIED
Stacey F IturbideFranceIvan Magalhaes RENEWAL
James Z AlbaresIndiaAmy Elsner RENEWAL
Mayumi E SchemmerGermanyAsiya Javayant NEW
Mayumi J FerenczSpainIvan Magalhaes NEW
Deepesh G GarufiIndiaAsiya Javayant NEW
Octavia L WaycottSpainBernardo Dominic NEGOTIATION
Mayumi F KolmetzArgentinaBernardo Dominic NEGOTIATION
Emily O OstroskyUnited KingdomXuxue Feng NEGOTIATION
Mayumi O BologniaArgentinaAsiya Javayant QUALIFIED
Aruna Q TollnerFranceAmy Elsner PROPOSAL
Antonio G VenereArgentinaIoni Bowcher RENEWAL
Costa S DarakjyItalyBernardo Dominic QUALIFIED
David P GillianFranceAmy Elsner QUALIFIED
Johnson Z AmigonSpainStephen Shaw PROPOSAL
Antonio K AlbaresItalyBernardo Dominic RENEWAL
Aruna T GarufiCanadaOnyama Limba NEGOTIATION
Kadeem L NickaArgentinaAnna Fali QUALIFIED
Munro R KuskoItalyAnna Fali QUALIFIED
Aruna D ShinkoBrazilStephen Shaw NEW
Salvatore X ShinkoSpainXuxue Feng RENEWAL
Darci T ButtUnited KingdomIoni Bowcher PROPOSAL
Frozen Columns
Name
Francesco Z Wieser
Maisha K Albares
Cody B Paprocki
Aika X Iturbide
Aditya H Kolmetz
Misaki K Caldarera
Silvio R Butt
Jefferson J Morasca
Alejandro H Figeroa
Silvio P Schemmer
Tony O Inouye
Juan R Bowley
Izzy B Butt
Chavez Z Venere
Kaitlin X Paprocki
David Q Nestle
Arvin N Chui
Francesco G Poquette
Julie N Oldroyd
Sinclair G Wieser
Darci O Saylors
Maria G Venere
Aruna J Vocelka
Chavez P Flosi
Emily N Royster
Clifford Q Paprocki
Darci R Maclead
Smith J Nestle
Murillo Y Malet
Darci L Sergi
Tony F Briddick
Johnson X Slusarski
Aditya B Darakjy
Arvin S Glick
Octavia O Shinko
Jeanfrancois Z Maclead
Juan W Schemmer
Leon Z Bolognia
Aruna J Figeroa
Costa B Vocelka
Aruna P Iturbide
Juan X Stockham
Ashley K Glick
Faith E Campain
Aruna E Vocelka
Francesco F Malet
Claire E Inouye
Wickens Q Ostrosky
Alejandro A Briddick
Antonio V Bolognia
IdCountryDate
1000Argentina2026-07-12
1001Spain2026-07-31
1002Germany2026-07-24
1003Germany2026-07-20
1004Japan2026-07-31
1005Japan2026-08-08
1006Australia2026-08-02
1007Spain2026-07-14
1008United Kingdom2026-08-04
1009Italy2026-07-16
1010United Kingdom2026-07-18
1011India2026-07-27
1012Spain2026-07-28
1013India2026-07-28
1014Canada2026-07-22
1015Argentina2026-08-06
1016Germany2026-07-12
1017Japan2026-07-29
1018Germany2026-08-02
1019Canada2026-07-22
1020Canada2026-07-29
1021Australia2026-07-18
1022France2026-07-13
1023Canada2026-07-21
1024Germany2026-07-15
1025Spain2026-07-30
1026Japan2026-07-11
1027United Kingdom2026-07-16
1028Australia2026-08-01
1029Australia2026-08-02
1030Russia2026-07-25
1031Russia2026-08-07
1032Brazil2026-08-03
1033Italy2026-07-21
1034Canada2026-07-25
1035India2026-07-27
1036Brazil2026-07-17
1037Brazil2026-07-28
1038Australia2026-08-07
1039Brazil2026-07-22
1040Canada2026-08-08
1041Italy2026-07-18
1042India2026-08-05
1043India2026-08-03
1044Russia2026-08-03
1045Argentina2026-07-24
1046Spain2026-07-30
1047Australia2026-07-29
1048Australia2026-07-25
1049Brazil2026-07-23

On-Demand Data

NameIdCountryDate
Stacey N Venere1000India2026-07-25
Morrow R Schemmer1001France2026-07-30
Julie F Rim1002Russia2026-08-08
Jones V Caldarera1003United Kingdom2026-08-06
Jennifer O Iturbide1004India2026-07-21
Costa R Rulapaugh1005Canada2026-08-03
Ricardo F Schemmer1006Italy2026-07-25
Darci I Whobrey1007United Kingdom2026-07-30
Rodrigues N Figeroa1008Canada2026-07-14
Sinclair Z Whobrey1009United Kingdom2026-07-19
Rodrigues Y Dilliard1010Japan2026-08-07
Maisha K Sergi1011Argentina2026-07-17
Emily I Iturbide1012Italy2026-07-28
Chavez Q Butt1013Japan2026-08-02
Isabel F Malet1014Brazil2026-08-07
Aditya P Marrier1015India2026-08-06
Tony C Wieser1016Italy2026-07-11
Leja C Morasca1017Germany2026-07-11
Ricardo P Rulapaugh1018Argentina2026-07-17
Ivar T Doe1019Canada2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith O RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Maria K WhobreyJapanIvan Magalhaes PROPOSAL
Deepesh Z SaylorsJapanIvan Magalhaes PROPOSAL
James Q WhobreyIndiaIvan Magalhaes NEGOTIATION
Sinclair I StensethAustraliaAsiya Javayant UNQUALIFIED
David G RulapaughIndiaXuxue Feng QUALIFIED
Salvatore Y DilliardSpainAsiya Javayant QUALIFIED
Tony T InouyeArgentinaAsiya Javayant RENEWAL
Nicolas S VocelkaCanadaStephen Shaw UNQUALIFIED
Isabel G GlickBrazilBernardo Dominic UNQUALIFIED
Rodrigues R VenereRussiaIoni Bowcher NEGOTIATION
Smith F OstroskyRussiaOnyama Limba QUALIFIED
Maisha R PerinGermanyIvan Magalhaes PROPOSAL
Tony U KolmetzUnited KingdomIvan Magalhaes RENEWAL
Juan I CampainCanadaAnna Fali NEW
Chavez X VocelkaGermanyStephen Shaw RENEWAL
Salvatore H DilliardGermanyAsiya Javayant NEW
Murillo E KolmetzCanadaOnyama Limba RENEWAL
Rodrigues M FlosiBrazilAsiya Javayant PROPOSAL
Deepesh B SaylorsUnited KingdomAmy Elsner NEGOTIATION
Antonio R CaldareraAustraliaIoni Bowcher NEGOTIATION
Tony F DoeArgentinaAnna Fali PROPOSAL
Izzy R BriddickJapanAmy Elsner NEW
Misaki G PerinSpainAsiya Javayant QUALIFIED
Sinclair W WaycottGermanyAnna Fali PROPOSAL
Aika F IturbideItalyXuxue Feng PROPOSAL
Ashley E MaletRussiaBernardo Dominic NEGOTIATION
Cody W BriddickFranceBernardo Dominic UNQUALIFIED
Adams X ShinkoSpainOnyama Limba PROPOSAL
Sinclair O CaldareraArgentinaXuxue Feng UNQUALIFIED
Silvio Z RutaCanadaStephen Shaw UNQUALIFIED
Tony S SchemmerIndiaXuxue Feng RENEWAL
Nicolas Z RutaJapanBernardo Dominic QUALIFIED
Juan P SlusarskiItalyElwin Sharvill NEGOTIATION
Salvatore M RulapaughIndiaIvan Magalhaes RENEWAL
Mujtaba A MaletAustraliaOnyama Limba NEW
Salvatore O MarrierArgentinaStephen Shaw NEW
Aruna T PaprockiRussiaXuxue Feng QUALIFIED
Emily X CaldareraUnited KingdomStephen Shaw QUALIFIED
Kaitlin Y FollerItalyAmy Elsner 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>