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
Aruna L GarufiSpainAsiya Javayant NEGOTIATION
Arvin T RutaArgentinaOnyama Limba QUALIFIED
Nicolas O MaletSpainAnna Fali NEW
Stacey X GarufiFranceBernardo Dominic PROPOSAL
Faith O GillianSpainBernardo Dominic NEGOTIATION
Murillo S WaycottJapanAnna Fali NEW
Octavia T MorascaBrazilXuxue Feng NEW
Deepesh L OstroskyBrazilIoni Bowcher RENEWAL
Salvatore E SchemmerCanadaIoni Bowcher RENEWAL
Johnson W SaylorsItalyElwin Sharvill NEGOTIATION
Munro W RoysterUnited KingdomStephen Shaw PROPOSAL
Maisha X WhobreyUnited KingdomStephen Shaw UNQUALIFIED
James I SaylorsRussiaElwin Sharvill UNQUALIFIED
Izzy S ChuiArgentinaBernardo Dominic QUALIFIED
Rodrigues J ChuiGermanyAsiya Javayant NEGOTIATION
Ricardo M RutaJapanBernardo Dominic NEGOTIATION
David N ButtItalyBernardo Dominic NEGOTIATION
David L CaldareraGermanyIoni Bowcher PROPOSAL
Rodrigues X OstroskySpainXuxue Feng NEGOTIATION
Kaitlin S WhobreyFranceStephen Shaw PROPOSAL
Silvio X MaletCanadaStephen Shaw UNQUALIFIED
Julie K MacleadItalyStephen Shaw RENEWAL
Arvin R VocelkaJapanElwin Sharvill NEW
Cody B VenereCanadaOnyama Limba PROPOSAL
Alejandro V AmigonGermanyAsiya Javayant UNQUALIFIED
Kadeem V PoquetteCanadaOnyama Limba RENEWAL
Arvin Z BriddickFranceStephen Shaw PROPOSAL
Maria F VenereJapanIvan Magalhaes NEGOTIATION
Isabel Y RoysterAustraliaXuxue Feng QUALIFIED
Mayumi C MacleadJapanIvan Magalhaes QUALIFIED
Jones Q NickaSpainAmy Elsner PROPOSAL
Ricardo Z DarakjyAustraliaAnna Fali NEGOTIATION
Arvin U AmigonGermanyStephen Shaw NEW
Silvio P ButtRussiaAsiya Javayant RENEWAL
Isabel F AlbaresArgentinaAsiya Javayant NEW
Ivar M GillianItalyAnna Fali NEW
Smith G StensethGermanyBernardo Dominic NEGOTIATION
Ivar T WaycottBrazilBernardo Dominic RENEWAL
Emily A GlickRussiaAsiya Javayant NEW
Jennifer Y NickaItalyStephen Shaw QUALIFIED
Tony A RutaCanadaStephen Shaw NEGOTIATION
James R FigeroaUnited KingdomAsiya Javayant PROPOSAL
Jones P ButtRussiaElwin Sharvill PROPOSAL
James G GarufiSpainOnyama Limba PROPOSAL
Cody K StensethFranceElwin Sharvill PROPOSAL
Sinclair P TollnerFranceAmy Elsner RENEWAL
Greenwood L KolmetzItalyXuxue Feng UNQUALIFIED
Wickens G IturbideRussiaAmy Elsner QUALIFIED
Francesco C BowleyArgentinaBernardo Dominic NEGOTIATION
Claire V BowleyGermanyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith I DoeBrazilXuxue Feng UNQUALIFIED
Claire P KuskoRussiaIvan Magalhaes RENEWAL
Antonio H OstroskyGermanyIvan Magalhaes PROPOSAL
Aditya P SlusarskiFranceStephen Shaw RENEWAL
Maria I RimJapanAmy Elsner UNQUALIFIED
Jefferson F MaletArgentinaXuxue Feng PROPOSAL
Wickens L MacleadAustraliaAnna Fali PROPOSAL
Jefferson Q TollnerBrazilElwin Sharvill NEGOTIATION
Ivar O SchemmerArgentinaAnna Fali NEGOTIATION
Deepesh L KolmetzItalyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar H FigeroaGermany2026-07-26Dorl, James J Esq NEGOTIATION59Amy Elsner
1001Wickens R KolmetzCanada2026-08-15Benton, John B Jr PROPOSAL79Xuxue Feng
1002Izzy B NickaBrazil2026-08-16Rousseaux, Michael Esq RENEWAL66Bernardo Dominic
1003Smith X WhobreyJapan2026-08-06Feltz Printing Service PROPOSAL59Amy Elsner
1004Mujtaba E RoysterGermany2026-08-06Rangoni Of Florence NEW54Asiya Javayant
1005Arvin A FigeroaUnited Kingdom2026-08-13Rousseaux, Michael Esq RENEWAL85Elwin Sharvill
1006Tony J PaprockiRussia2026-08-05Feltz Printing Service QUALIFIED61Asiya Javayant
1007Leon J KuskoUnited Kingdom2026-08-19Chemel, James L Cpa UNQUALIFIED82Ioni Bowcher
1008David R StockhamArgentina2026-08-17Commercial Press NEGOTIATION80Onyama Limba
1009Mujtaba P GarufiBrazil2026-08-06King, Christopher A Esq RENEWAL3Ioni Bowcher
1010Antonio K AlbaresIndia2026-07-31Feiner Bros NEGOTIATION67Ioni Bowcher
1011Emily D RoysterGermany2026-08-02Buckley Miller Wright UNQUALIFIED84Xuxue Feng
1012Wickens Z StockhamAustralia2026-08-13Feltz Printing Service PROPOSAL47Bernardo Dominic
1013James C NestleUnited Kingdom2026-07-25Morlong Associates UNQUALIFIED70Amy Elsner
1014Antonio S MorascaCanada2026-08-19Rousseaux, Michael Esq RENEWAL38Amy Elsner
1015Ashley T PoquetteIndia2026-08-16Truhlar And Truhlar Attys PROPOSAL96Ioni Bowcher
1016Emily D SchemmerSpain2026-08-07Commercial Press QUALIFIED16Asiya Javayant
1017Jennifer W DoeAustralia2026-07-27Rangoni Of Florence NEW16Ioni Bowcher
1018Darci U PerinArgentina2026-08-18Buckley Miller Wright RENEWAL72Asiya Javayant
1019Costa F CaudyRussia2026-08-02Feiner Bros PROPOSAL58Ioni Bowcher
1020Cody E FerenczUnited Kingdom2026-08-09Feltz Printing Service RENEWAL77Asiya Javayant
1021Maisha I KuskoRussia2026-07-26Commercial Press RENEWAL96Bernardo Dominic
1022Morrow I WaycottSpain2026-08-04Benton, John B Jr QUALIFIED73Bernardo Dominic
1023Claire R WieserJapan2026-08-21Truhlar And Truhlar Attys RENEWAL41Anna Fali
1024Ivar X SaylorsCanada2026-08-13Rousseaux, Michael Esq PROPOSAL0Anna Fali
1025Johnson G TollnerGermany2026-07-27Dorl, James J Esq QUALIFIED66Ioni Bowcher
1026Stacey V StockhamCanada2026-08-13Printing Dimensions NEGOTIATION24Asiya Javayant
1027Misaki L ButtItaly2026-08-10Chanay, Jeffrey A Esq PROPOSAL20Onyama Limba
1028Francesco D BologniaBrazil2026-08-06Dorl, James J Esq NEW31Anna Fali
1029Kadeem N ButtJapan2026-07-24Benton, John B Jr RENEWAL18Elwin Sharvill
1030Antonio Q KolmetzBrazil2026-07-25Feiner Bros NEW56Ioni Bowcher
1031Juan B GarufiRussia2026-08-07Dorl, James J Esq NEGOTIATION22Stephen Shaw
1032Francesco W RimIndia2026-08-14Morlong Associates RENEWAL27Ioni Bowcher
1033Stacey O MaletUnited Kingdom2026-08-10Chapman, Ross E Esq NEW48Onyama Limba
1034Stacey P RutaGermany2026-07-31Morlong Associates NEW79Xuxue Feng
1035Mujtaba O DoeRussia2026-08-15Feiner Bros NEW21Xuxue Feng
1036Jeanfrancois K DilliardIndia2026-07-24Chemel, James L Cpa QUALIFIED34Bernardo Dominic
1037Nicolas R CaudySpain2026-07-24Feltz Printing Service UNQUALIFIED84Bernardo Dominic
1038Ricardo H NestleItaly2026-07-23Benton, John B Jr PROPOSAL36Onyama Limba
1039Munro M WaycottUnited Kingdom2026-08-07Feltz Printing Service NEW7Amy Elsner
1040Kaitlin O SchemmerRussia2026-07-23Feiner Bros PROPOSAL75Ioni Bowcher
1041Maisha P SlusarskiBrazil2026-08-02Buckley Miller Wright NEGOTIATION4Asiya Javayant
1042Murillo Y BowleyArgentina2026-08-15King, Christopher A Esq UNQUALIFIED0Amy Elsner
1043Juan P NickaUnited Kingdom2026-07-26Chanay, Jeffrey A Esq NEW9Onyama Limba
1044Arvin Y GillianFrance2026-08-18Chemel, James L Cpa NEGOTIATION59Anna Fali
1045Wickens C CampainRussia2026-08-08Rousseaux, Michael Esq NEGOTIATION61Ioni Bowcher
1046Mayumi V CaldareraUnited Kingdom2026-08-14King, Christopher A Esq QUALIFIED24Xuxue Feng
1047Cody W KolmetzAustralia2026-07-31Chapman, Ross E Esq NEGOTIATION97Onyama Limba
1048Leon V ShinkoArgentina2026-08-18Dorl, James J Esq NEGOTIATION21Ivan Magalhaes
1049Jennifer P WieserFrance2026-08-14King, Christopher A Esq RENEWAL83Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aruna P VocelkaAustraliaOnyama Limba NEGOTIATION
Deepesh X GauchoGermanyStephen Shaw QUALIFIED
Jefferson G DarakjyCanadaAsiya Javayant NEGOTIATION
Jeanfrancois L ButtSpainAsiya Javayant NEGOTIATION
Smith A AlbaresGermanyXuxue Feng PROPOSAL
Salvatore Y WieserBrazilAsiya Javayant RENEWAL
Jefferson O OldroydIndiaIvan Magalhaes PROPOSAL
Rodrigues F SchemmerGermanyAnna Fali QUALIFIED
Claire X InouyeJapanIvan Magalhaes RENEWAL
Kaitlin J OldroydCanadaIvan Magalhaes PROPOSAL
Antonio W OldroydJapanOnyama Limba NEGOTIATION
Jennifer L ShinkoArgentinaStephen Shaw RENEWAL
Salvatore R StockhamArgentinaOnyama Limba RENEWAL
Salvatore B WaycottFranceAsiya Javayant NEGOTIATION
Kadeem Q StensethCanadaStephen Shaw QUALIFIED
Kaitlin E FlosiUnited KingdomStephen Shaw NEGOTIATION
Morrow Y FollerCanadaXuxue Feng NEGOTIATION
Salvatore C StensethArgentinaIoni Bowcher NEGOTIATION
Ivar W FerenczBrazilAmy Elsner RENEWAL
Jefferson G OldroydArgentinaElwin Sharvill QUALIFIED
Mayumi O PaprockiItalyOnyama Limba QUALIFIED
Ivar R PerinAustraliaAsiya Javayant NEGOTIATION
Greenwood C WieserGermanyAmy Elsner QUALIFIED
Smith Y StensethJapanIvan Magalhaes RENEWAL
Maisha A StockhamCanadaBernardo Dominic UNQUALIFIED
Maria S RutaJapanBernardo Dominic UNQUALIFIED
Ivar P ButtArgentinaBernardo Dominic UNQUALIFIED
Ivar I PoquetteAustraliaXuxue Feng NEW
Murillo A PerinRussiaAsiya Javayant QUALIFIED
Cody Y ButtArgentinaAnna Fali RENEWAL
Kadeem J PaprockiBrazilAnna Fali NEW
Aditya X GlickFranceIoni Bowcher NEW
Faith J CaudyIndiaAnna Fali QUALIFIED
Clifford A BowleyFranceStephen Shaw NEW
Leja Y StockhamAustraliaIvan Magalhaes NEGOTIATION
Greenwood U DilliardUnited KingdomXuxue Feng UNQUALIFIED
Smith Z StensethItalyAmy Elsner UNQUALIFIED
Silvio Z SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy M DarakjyGermanyIoni Bowcher NEGOTIATION
Julie A IturbideFranceIvan Magalhaes UNQUALIFIED
James X CaudyBrazilElwin Sharvill NEGOTIATION
Octavia T VocelkaFranceStephen Shaw NEGOTIATION
Aditya L BriddickRussiaElwin Sharvill PROPOSAL
Maria K AmigonRussiaAmy Elsner RENEWAL
Smith M TollnerSpainOnyama Limba QUALIFIED
Deepesh B RimCanadaAnna Fali NEW
Isabel J KolmetzGermanyIvan Magalhaes PROPOSAL
Kaitlin J MaletItalyAmy Elsner PROPOSAL
Isabel X ButtItalyStephen Shaw NEGOTIATION
Izzy Z CampainSpainAnna Fali NEW
Frozen Columns
Name
Faith P Stockham
Darci G Whobrey
Deepesh M Campain
Jennifer M Ruta
Arvin P Royster
Mayumi U Briddick
Isabel A Glick
Octavia L Schemmer
Ashley L Ferencz
Ricardo Q Dilliard
Jefferson Y Slusarski
Cody Y Paprocki
Darci H Albares
Johnson L Whobrey
Kadeem Z Briddick
Misaki K Gaucho
Julie P Glick
Juan H Inouye
Ivar K Nicka
Greenwood V Garufi
Rodrigues V Waycott
Wickens W Garufi
Rodrigues R Doe
Nicolas D Sergi
Mayumi I Ruta
Alejandro Z Venere
Isabel S Rim
Octavia Y Rulapaugh
James J Dilliard
Costa F Tollner
Murillo P Rim
Costa G Maclead
Maria Q Stockham
Murillo Q Kolmetz
Cody J Campain
Greenwood U Figeroa
Ricardo E Schemmer
Aika L Morasca
Cody C Campain
Wickens U Caldarera
Jones I Schemmer
Aruna B Perin
Antonio Q Sergi
Smith M Sergi
Misaki O Chui
Faith P Kusko
James Q Nicka
Maisha B Morasca
Aika S Inouye
Mayumi E Nestle
IdCountryDate
1000United Kingdom2026-08-15
1001Germany2026-08-01
1002Australia2026-08-13
1003Spain2026-08-21
1004Argentina2026-08-01
1005France2026-08-01
1006Brazil2026-07-28
1007India2026-08-17
1008Australia2026-08-13
1009India2026-08-03
1010Germany2026-08-17
1011Canada2026-08-12
1012Australia2026-08-17
1013Russia2026-08-06
1014France2026-07-26
1015Canada2026-07-26
1016Canada2026-08-20
1017United Kingdom2026-08-02
1018Brazil2026-07-24
1019France2026-08-14
1020Italy2026-07-30
1021India2026-08-03
1022Brazil2026-08-03
1023Italy2026-08-19
1024Japan2026-07-28
1025United Kingdom2026-07-25
1026Argentina2026-08-16
1027Canada2026-08-15
1028Canada2026-08-03
1029Russia2026-07-26
1030Brazil2026-07-24
1031Germany2026-07-28
1032Germany2026-08-16
1033Argentina2026-08-06
1034Brazil2026-08-10
1035Japan2026-08-18
1036Italy2026-07-24
1037Japan2026-07-23
1038India2026-08-17
1039United Kingdom2026-08-01
1040Canada2026-08-04
1041Germany2026-08-06
1042Italy2026-08-06
1043Australia2026-08-20
1044France2026-08-01
1045United Kingdom2026-07-24
1046Australia2026-08-09
1047Argentina2026-07-26
1048Japan2026-08-21
1049Germany2026-08-02

On-Demand Data

NameIdCountryDate
Costa P Kusko1000Germany2026-08-13
Smith K Wieser1001Argentina2026-08-05
Rodrigues H Caldarera1002India2026-07-24
Mayumi W Sergi1003Germany2026-07-27
Silvio A Inouye1004Russia2026-07-28
Isabel L Gillian1005Argentina2026-07-26
Maisha H Chui1006Spain2026-08-09
Julie J Briddick1007Canada2026-07-27
Maria Y Vocelka1008France2026-08-02
James E Marrier1009Japan2026-08-17
Octavia U Albares1010Argentina2026-08-08
Ricardo L Waycott1011Italy2026-08-07
Sinclair I Wieser1012France2026-08-14
Jeanfrancois V Vocelka1013Brazil2026-07-24
Sinclair T Dilliard1014Australia2026-07-26
Aditya Z Malet1015India2026-07-30
Jones X Marrier1016Spain2026-08-08
Rodrigues F Oldroyd1017Australia2026-08-10
Stacey D Ostrosky1018Spain2026-08-14
Octavia H Darakjy1019India2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois D FollerJapanOnyama Limba UNQUALIFIED
Kaitlin X SchemmerUnited KingdomAsiya Javayant NEW
Aruna F WhobreyArgentinaStephen Shaw PROPOSAL
Mujtaba O CaldareraFranceAmy Elsner NEW
Aditya X NickaFranceElwin Sharvill UNQUALIFIED
Silvio P AmigonItalyStephen Shaw RENEWAL
Ashley I SlusarskiArgentinaAsiya Javayant RENEWAL
Stacey S SergiItalyIoni Bowcher NEGOTIATION
David U VenereGermanyAmy Elsner QUALIFIED
David R SaylorsGermanyIvan Magalhaes PROPOSAL
Aruna W NickaRussiaXuxue Feng NEW
Kadeem Y MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Faith H TollnerArgentinaIoni Bowcher PROPOSAL
Smith O NestleSpainBernardo Dominic NEW
Kaitlin W RutaJapanBernardo Dominic QUALIFIED
Octavia E DoeJapanStephen Shaw NEW
Darci T BologniaArgentinaBernardo Dominic NEW
Julie H StensethCanadaIvan Magalhaes RENEWAL
Leon W SaylorsRussiaXuxue Feng PROPOSAL
Leon G AmigonJapanElwin Sharvill RENEWAL
Claire K FollerGermanyBernardo Dominic PROPOSAL
Chavez Q AmigonUnited KingdomAsiya Javayant RENEWAL
Nicolas G WieserBrazilAsiya Javayant NEW
Alejandro S CaldareraCanadaXuxue Feng QUALIFIED
Smith E IturbideCanadaAmy Elsner PROPOSAL
Silvio W CaudyGermanyBernardo Dominic PROPOSAL
Mayumi I GlickUnited KingdomElwin Sharvill PROPOSAL
Julie U SergiRussiaBernardo Dominic NEW
Francesco C VocelkaAustraliaIoni Bowcher QUALIFIED
Mayumi E ShinkoArgentinaBernardo Dominic QUALIFIED
Aruna P GillianSpainAmy Elsner PROPOSAL
Greenwood C PaprockiGermanyOnyama Limba PROPOSAL
Smith Y RulapaughFranceAnna Fali QUALIFIED
Silvio Z MaletItalyStephen Shaw RENEWAL
Octavia E CampainArgentinaAsiya Javayant NEW
Isabel K FlosiBrazilStephen Shaw PROPOSAL
Izzy X SergiRussiaAmy Elsner RENEWAL
Claire U StensethJapanElwin Sharvill RENEWAL
Maisha E CaldareraAustraliaIoni Bowcher QUALIFIED
Kaitlin A GillianArgentinaElwin Sharvill 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>