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
Deepesh H FollerFranceAmy Elsner NEGOTIATION
Arvin V GlickArgentinaIvan Magalhaes UNQUALIFIED
Morrow J InouyeBrazilOnyama Limba NEGOTIATION
Salvatore G PaprockiCanadaIoni Bowcher UNQUALIFIED
Jefferson Q TollnerSpainXuxue Feng QUALIFIED
Darci V WaycottCanadaOnyama Limba UNQUALIFIED
Adams Y NestleGermanyStephen Shaw NEW
Deepesh D GlickBrazilBernardo Dominic PROPOSAL
Murillo F SlusarskiCanadaAnna Fali NEW
Jeanfrancois Q CampainAustraliaIoni Bowcher QUALIFIED
Aruna O OldroydItalyAnna Fali RENEWAL
Arvin W VocelkaBrazilIoni Bowcher UNQUALIFIED
Tony G GillianAustraliaXuxue Feng PROPOSAL
Munro E PoquetteGermanyXuxue Feng PROPOSAL
Munro L FollerFranceOnyama Limba NEW
Julie Q GillianUnited KingdomAsiya Javayant RENEWAL
Aika I VocelkaArgentinaAsiya Javayant UNQUALIFIED
Alejandro N WaycottBrazilBernardo Dominic NEW
Nicolas Q NestleGermanyXuxue Feng QUALIFIED
Jennifer N StockhamCanadaOnyama Limba NEGOTIATION
Chavez O DoeFranceXuxue Feng UNQUALIFIED
Antonio B SlusarskiFranceStephen Shaw RENEWAL
Maria V IturbideBrazilOnyama Limba NEGOTIATION
Clifford G WhobreyUnited KingdomAnna Fali RENEWAL
David Z ButtJapanAmy Elsner NEGOTIATION
Sinclair T ButtAustraliaXuxue Feng NEW
Salvatore F PerinAustraliaBernardo Dominic RENEWAL
Ivar J AmigonUnited KingdomStephen Shaw NEW
David A FerenczItalyIvan Magalhaes RENEWAL
Darci X SergiBrazilIvan Magalhaes UNQUALIFIED
Costa J StockhamArgentinaIvan Magalhaes QUALIFIED
Julie C RimGermanyBernardo Dominic UNQUALIFIED
Aditya I CaudyAustraliaIvan Magalhaes NEW
Morrow Y BologniaSpainAnna Fali NEGOTIATION
Aditya U StensethIndiaIoni Bowcher NEGOTIATION
Wickens E GauchoGermanyElwin Sharvill NEW
Deepesh X TollnerBrazilAmy Elsner NEW
Jefferson D MacleadSpainStephen Shaw UNQUALIFIED
Izzy C SlusarskiArgentinaStephen Shaw RENEWAL
Izzy V VocelkaArgentinaBernardo Dominic QUALIFIED
Wickens V StensethIndiaXuxue Feng RENEWAL
Francesco L GillianFranceBernardo Dominic NEW
Salvatore P InouyeBrazilAsiya Javayant PROPOSAL
Leon F GarufiJapanIvan Magalhaes UNQUALIFIED
Ricardo Z PerinIndiaBernardo Dominic RENEWAL
Leon K DoeBrazilIoni Bowcher NEW
Juan C OstroskyBrazilElwin Sharvill RENEWAL
Faith E ButtBrazilIoni Bowcher NEGOTIATION
David D FollerGermanyStephen Shaw UNQUALIFIED
Smith Z TollnerCanadaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya S VenereIndiaStephen Shaw NEW
Sinclair J ShinkoBrazilOnyama Limba NEGOTIATION
Cody K CaudyItalyElwin Sharvill NEW
Rodrigues G SchemmerArgentinaIoni Bowcher RENEWAL
Deepesh B GillianBrazilAmy Elsner PROPOSAL
Jefferson F FerenczBrazilIoni Bowcher NEW
Emily L SchemmerBrazilIoni Bowcher UNQUALIFIED
Chavez Z CaldareraJapanBernardo Dominic NEGOTIATION
Sinclair G BowleyIndiaAmy Elsner NEW
Alejandro P MacleadBrazilAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens Q CampainGermany2026-08-20Chemel, James L Cpa QUALIFIED4Ioni Bowcher
1001Chavez U FlosiSpain2026-08-19Commercial Press NEW71Anna Fali
1002Julie E SlusarskiItaly2026-08-19Truhlar And Truhlar Attys PROPOSAL33Stephen Shaw
1003Alejandro I MacleadSpain2026-08-12Rousseaux, Michael Esq UNQUALIFIED46Onyama Limba
1004Ashley N StockhamBrazil2026-07-27Rousseaux, Michael Esq NEGOTIATION87Xuxue Feng
1005Darci E OstroskyRussia2026-08-01Benton, John B Jr NEW20Ioni Bowcher
1006Maisha Z OstroskyUnited Kingdom2026-08-04Buckley Miller Wright NEGOTIATION45Xuxue Feng
1007Adams P DarakjySpain2026-07-24Commercial Press NEGOTIATION16Stephen Shaw
1008Leja U BologniaSpain2026-08-17Rangoni Of Florence NEGOTIATION56Stephen Shaw
1009Cody G RulapaughJapan2026-07-23Rousseaux, Michael Esq NEW40Stephen Shaw
1010Maria X CaldareraIndia2026-07-30King, Christopher A Esq PROPOSAL87Onyama Limba
1011James C RulapaughFrance2026-08-04Commercial Press QUALIFIED71Onyama Limba
1012Morrow C WieserItaly2026-08-12Dorl, James J Esq QUALIFIED47Amy Elsner
1013Salvatore T MacleadIndia2026-08-11Feiner Bros NEGOTIATION14Bernardo Dominic
1014Murillo T OldroydUnited Kingdom2026-08-04Commercial Press QUALIFIED5Ioni Bowcher
1015Clifford Y StockhamJapan2026-08-11Dorl, James J Esq RENEWAL81Amy Elsner
1016Maisha I CampainBrazil2026-07-31Printing Dimensions UNQUALIFIED83Ivan Magalhaes
1017Jeanfrancois Z PerinBrazil2026-08-14King, Christopher A Esq PROPOSAL19Xuxue Feng
1018Octavia B ShinkoCanada2026-08-03Buckley Miller Wright RENEWAL89Anna Fali
1019Antonio U VocelkaBrazil2026-07-31King, Christopher A Esq RENEWAL47Bernardo Dominic
1020Arvin Z CaldareraArgentina2026-07-28King, Christopher A Esq UNQUALIFIED99Amy Elsner
1021Sinclair O BologniaItaly2026-08-13Truhlar And Truhlar Attys UNQUALIFIED77Stephen Shaw
1022Misaki H SaylorsSpain2026-08-06Commercial Press NEGOTIATION74Asiya Javayant
1023Leon W InouyeItaly2026-08-02Printing Dimensions RENEWAL54Onyama Limba
1024Greenwood Y MaletIndia2026-08-06Printing Dimensions UNQUALIFIED50Stephen Shaw
1025Mayumi U CaldareraUnited Kingdom2026-08-21Benton, John B Jr NEGOTIATION83Anna Fali
1026Clifford I KuskoAustralia2026-08-04Rangoni Of Florence NEW91Onyama Limba
1027Octavia T FerenczItaly2026-08-07Rangoni Of Florence QUALIFIED18Amy Elsner
1028Stacey Q VocelkaRussia2026-08-08Buckley Miller Wright RENEWAL38Onyama Limba
1029Octavia U GlickSpain2026-07-24Truhlar And Truhlar Attys NEGOTIATION81Onyama Limba
1030Stacey R RimUnited Kingdom2026-08-01Rousseaux, Michael Esq PROPOSAL51Elwin Sharvill
1031Izzy Y SchemmerFrance2026-08-19King, Christopher A Esq RENEWAL74Ioni Bowcher
1032Alejandro I RutaUnited Kingdom2026-08-05Buckley Miller Wright NEGOTIATION93Asiya Javayant
1033Leja U RoysterUnited Kingdom2026-07-23Commercial Press RENEWAL50Onyama Limba
1034Mujtaba G FollerCanada2026-07-25Feiner Bros PROPOSAL81Stephen Shaw
1035Arvin A MaletItaly2026-08-05Chanay, Jeffrey A Esq NEW62Ivan Magalhaes
1036Aditya F StensethJapan2026-08-03Truhlar And Truhlar Attys NEW87Ivan Magalhaes
1037Cody P StensethFrance2026-08-04Chemel, James L Cpa UNQUALIFIED95Asiya Javayant
1038Isabel K NickaSpain2026-08-21King, Christopher A Esq UNQUALIFIED1Anna Fali
1039Francesco W CampainUnited Kingdom2026-07-23Truhlar And Truhlar Attys UNQUALIFIED35Bernardo Dominic
1040Mayumi Q GlickUnited Kingdom2026-08-06Feiner Bros UNQUALIFIED95Elwin Sharvill
1041Jennifer Y AmigonCanada2026-08-17Dorl, James J Esq NEGOTIATION84Bernardo Dominic
1042Faith W IturbideIndia2026-08-08Rangoni Of Florence RENEWAL24Anna Fali
1043Chavez G OldroydSpain2026-08-04Feltz Printing Service NEGOTIATION36Onyama Limba
1044Greenwood P BologniaBrazil2026-07-31Chapman, Ross E Esq PROPOSAL84Stephen Shaw
1045Aruna N IturbideIndia2026-07-24Commercial Press QUALIFIED82Ioni Bowcher
1046Julie F NickaJapan2026-08-13Dorl, James J Esq UNQUALIFIED21Amy Elsner
1047Ricardo K GarufiRussia2026-08-03Buckley Miller Wright RENEWAL7Ivan Magalhaes
1048Stacey K GlickIndia2026-08-16Chemel, James L Cpa NEW73Bernardo Dominic
1049Cody N BologniaCanada2026-07-29Chapman, Ross E Esq UNQUALIFIED63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria N AlbaresFranceAsiya Javayant NEW
Stacey R BologniaItalyBernardo Dominic QUALIFIED
Julie S ChuiGermanyBernardo Dominic NEGOTIATION
Morrow H GauchoItalyElwin Sharvill NEW
Wickens G RimRussiaAnna Fali PROPOSAL
Adams Q MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro Q MarrierCanadaElwin Sharvill NEW
Deepesh N NickaCanadaIvan Magalhaes QUALIFIED
Francesco G CampainJapanAmy Elsner RENEWAL
Mayumi M OldroydSpainIvan Magalhaes NEGOTIATION
Kaitlin M ButtArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois I KolmetzFranceIoni Bowcher NEGOTIATION
Salvatore J GillianArgentinaIvan Magalhaes NEGOTIATION
David O WhobreyUnited KingdomAmy Elsner NEGOTIATION
Leja Z RutaItalyAmy Elsner QUALIFIED
Costa I IturbideFranceIoni Bowcher PROPOSAL
Juan B SchemmerGermanyAsiya Javayant RENEWAL
Sinclair O CaudyArgentinaStephen Shaw UNQUALIFIED
Morrow R OldroydIndiaAmy Elsner NEGOTIATION
Costa E GlickArgentinaXuxue Feng QUALIFIED
Arvin V ButtUnited KingdomAsiya Javayant NEW
Chavez F OldroydArgentinaIoni Bowcher RENEWAL
Faith H GarufiCanadaIoni Bowcher UNQUALIFIED
Antonio U PerinJapanXuxue Feng RENEWAL
Arvin D RulapaughSpainAnna Fali NEW
Kadeem E StockhamFranceAmy Elsner RENEWAL
Aruna N DoeItalyAnna Fali QUALIFIED
Kadeem L MacleadAustraliaBernardo Dominic RENEWAL
Emily Z FigeroaCanadaIoni Bowcher RENEWAL
Izzy O CampainBrazilBernardo Dominic NEGOTIATION
Jefferson M KolmetzUnited KingdomAsiya Javayant QUALIFIED
Mayumi O SaylorsItalyStephen Shaw RENEWAL
Munro H CampainGermanyAmy Elsner RENEWAL
James G KolmetzUnited KingdomStephen Shaw NEGOTIATION
Adams D PerinSpainIvan Magalhaes QUALIFIED
Misaki Q GlickCanadaElwin Sharvill RENEWAL
Leja F WhobreyUnited KingdomIoni Bowcher NEW
Greenwood V BowleyUnited KingdomElwin Sharvill NEW
Murillo Y GauchoSpainElwin Sharvill NEGOTIATION
Aruna I TollnerBrazilElwin Sharvill UNQUALIFIED
Wickens Y FollerSpainXuxue Feng NEW
Claire L BologniaFranceIvan Magalhaes PROPOSAL
Darci J ChuiRussiaBernardo Dominic QUALIFIED
Munro T InouyeRussiaAmy Elsner QUALIFIED
Maisha Q FerenczFranceBernardo Dominic RENEWAL
Munro B KolmetzCanadaBernardo Dominic QUALIFIED
Antonio E SaylorsIndiaAnna Fali NEW
Wickens P AmigonJapanIvan Magalhaes RENEWAL
Emily T RutaAustraliaOnyama Limba NEW
Adams R BriddickItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Alejandro F Glick
Faith J Dilliard
Maria I Butt
Julie P Vocelka
Morrow X Stenseth
Adams Z Garufi
David D Waycott
Ivar M Malet
Rodrigues P Nestle
Kadeem E Gillian
Chavez Z Wieser
Maisha L Saylors
Ashley A Caudy
James J Schemmer
Antonio G Venere
Faith K Caudy
Jennifer X Whobrey
Izzy J Figeroa
Nicolas H Vocelka
Leja T Wieser
James V Perin
Octavia K Stenseth
Nicolas Z Albares
Greenwood B Gillian
Maisha C Maclead
Francesco H Foller
Clifford V Schemmer
Costa Q Venere
Silvio S Chui
Johnson C Paprocki
Costa U Wieser
Cody Y Briddick
Isabel H Rim
Julie H Chui
Munro Q Kolmetz
Jennifer B Paprocki
Greenwood F Caudy
Arvin O Garufi
Kadeem P Garufi
Smith J Iturbide
Antonio X Figeroa
Alejandro R Dilliard
Arvin M Glick
Aruna T Malet
Alejandro C Kolmetz
Stacey O Gillian
Faith A Oldroyd
Sinclair I Foller
Misaki T Glick
Kaitlin K Nestle
IdCountryDate
1000France2026-08-20
1001Russia2026-08-09
1002India2026-08-08
1003Italy2026-08-15
1004Spain2026-08-19
1005Russia2026-07-28
1006Germany2026-08-12
1007Canada2026-08-01
1008Germany2026-07-31
1009India2026-07-26
1010Argentina2026-08-19
1011France2026-07-30
1012India2026-08-11
1013France2026-08-17
1014France2026-07-29
1015Russia2026-08-12
1016Germany2026-08-03
1017Canada2026-08-15
1018Australia2026-07-31
1019Germany2026-07-25
1020France2026-08-05
1021Germany2026-08-13
1022Argentina2026-08-17
1023Russia2026-07-24
1024Argentina2026-08-21
1025Germany2026-07-25
1026United Kingdom2026-08-06
1027Germany2026-08-18
1028Russia2026-07-25
1029Brazil2026-07-25
1030Russia2026-08-14
1031Germany2026-08-17
1032France2026-08-04
1033Russia2026-08-19
1034Russia2026-08-08
1035India2026-08-03
1036United Kingdom2026-07-23
1037Canada2026-08-03
1038India2026-08-11
1039United Kingdom2026-08-14
1040Canada2026-07-24
1041Japan2026-08-15
1042Russia2026-07-27
1043Russia2026-08-17
1044Japan2026-08-02
1045India2026-08-07
1046Canada2026-08-20
1047France2026-07-25
1048United Kingdom2026-08-02
1049Argentina2026-08-15

On-Demand Data

NameIdCountryDate
Chavez N Poquette1000Russia2026-08-08
Clifford J Gaucho1001Germany2026-08-21
James P Figeroa1002Canada2026-08-21
Greenwood O Tollner1003Canada2026-07-31
Aditya M Malet1004Argentina2026-08-21
Faith J Glick1005Australia2026-07-23
Antonio T Gillian1006Argentina2026-07-23
Tony G Stenseth1007Australia2026-08-20
Smith H Nicka1008Australia2026-07-25
Stacey Z Bolognia1009Canada2026-08-11
Mayumi I Figeroa1010Australia2026-07-29
Chavez I Amigon1011Brazil2026-08-13
Darci N Perin1012Spain2026-07-28
Arvin I Campain1013India2026-07-26
Murillo Y Shinko1014Argentina2026-08-07
Stacey A Tollner1015Russia2026-07-26
James X Royster1016France2026-08-14
Jones X Marrier1017Australia2026-08-19
Murillo U Ruta1018India2026-07-30
Morrow N Schemmer1019United Kingdom2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba A MarrierJapanBernardo Dominic UNQUALIFIED
Wickens L KuskoUnited KingdomAnna Fali NEGOTIATION
Leja G DarakjyBrazilIoni Bowcher RENEWAL
Ashley X FollerCanadaAmy Elsner QUALIFIED
Clifford Y StensethJapanStephen Shaw UNQUALIFIED
Aika W DarakjyJapanAnna Fali PROPOSAL
Ivar Z FigeroaArgentinaIvan Magalhaes NEGOTIATION
Chavez C CaudyFranceAmy Elsner QUALIFIED
Salvatore R MaletItalyElwin Sharvill PROPOSAL
Jefferson E MaletFranceElwin Sharvill RENEWAL
David H OldroydGermanyXuxue Feng NEW
James Z DilliardRussiaIvan Magalhaes RENEWAL
Maria D ChuiJapanElwin Sharvill UNQUALIFIED
Smith W RutaArgentinaOnyama Limba NEW
Isabel J GlickRussiaIoni Bowcher PROPOSAL
Jones T WaycottCanadaAnna Fali NEGOTIATION
Francesco N ChuiSpainIvan Magalhaes PROPOSAL
Emily M BologniaBrazilElwin Sharvill NEGOTIATION
Chavez X CampainFranceIoni Bowcher RENEWAL
Ricardo E MacleadArgentinaElwin Sharvill RENEWAL
Francesco P FollerBrazilAmy Elsner NEGOTIATION
James T PaprockiArgentinaIoni Bowcher QUALIFIED
Aika F StockhamCanadaXuxue Feng UNQUALIFIED
Claire S FerenczFranceStephen Shaw QUALIFIED
Ivar N StensethJapanIvan Magalhaes RENEWAL
Deepesh M MaletCanadaAmy Elsner UNQUALIFIED
Cody S BriddickGermanyAsiya Javayant NEW
Francesco H RimFranceXuxue Feng NEW
Salvatore A KuskoJapanAsiya Javayant NEGOTIATION
Darci T PoquetteItalyAsiya Javayant UNQUALIFIED
Aruna U FollerArgentinaStephen Shaw UNQUALIFIED
Costa B ChuiIndiaOnyama Limba RENEWAL
Faith V PoquetteSpainAsiya Javayant QUALIFIED
Stacey M OstroskyGermanyElwin Sharvill QUALIFIED
Aruna C MaletSpainIoni Bowcher UNQUALIFIED
Silvio E ChuiUnited KingdomStephen Shaw QUALIFIED
Stacey N WaycottBrazilStephen Shaw QUALIFIED
James D SaylorsCanadaAsiya Javayant PROPOSAL
Kadeem B DoeFranceOnyama Limba RENEWAL
Costa L WieserArgentinaXuxue Feng UNQUALIFIED

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