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
Arvin T PoquetteArgentinaStephen Shaw RENEWAL
Darci U RulapaughBrazilAsiya Javayant RENEWAL
Mujtaba H DarakjyBrazilIvan Magalhaes PROPOSAL
Ricardo G PerinArgentinaOnyama Limba UNQUALIFIED
Murillo R PerinFranceElwin Sharvill RENEWAL
Ricardo B MarrierArgentinaAnna Fali RENEWAL
Claire W StockhamUnited KingdomXuxue Feng NEW
David X VenereSpainAmy Elsner UNQUALIFIED
Aditya D FigeroaUnited KingdomOnyama Limba NEW
Clifford G RutaAustraliaStephen Shaw NEW
Juan P StockhamGermanyIoni Bowcher QUALIFIED
Rodrigues J SaylorsFranceOnyama Limba UNQUALIFIED
Kadeem F ChuiBrazilAsiya Javayant NEGOTIATION
Izzy M FollerCanadaAnna Fali RENEWAL
Mujtaba A DarakjyBrazilIvan Magalhaes PROPOSAL
Clifford J CampainArgentinaAnna Fali RENEWAL
Clifford W BologniaIndiaAnna Fali NEGOTIATION
Maisha X TollnerRussiaXuxue Feng NEW
Greenwood W WaycottGermanyElwin Sharvill RENEWAL
Darci D ChuiFranceXuxue Feng PROPOSAL
Salvatore K FigeroaBrazilOnyama Limba UNQUALIFIED
Murillo S ShinkoSpainIvan Magalhaes QUALIFIED
Leja A InouyeRussiaXuxue Feng RENEWAL
James I SlusarskiJapanAnna Fali NEW
Ashley K WhobreyUnited KingdomAnna Fali RENEWAL
Deepesh Q VocelkaSpainAmy Elsner QUALIFIED
Leja N WaycottJapanElwin Sharvill PROPOSAL
Cody T MacleadJapanXuxue Feng NEW
Clifford M MaletCanadaBernardo Dominic QUALIFIED
Aruna X MorascaItalyAnna Fali PROPOSAL
Tony H BologniaItalyAsiya Javayant NEGOTIATION
Greenwood B AlbaresCanadaElwin Sharvill UNQUALIFIED
Ivar A FerenczGermanyIvan Magalhaes NEW
Mujtaba V VocelkaRussiaIvan Magalhaes NEW
Jones W FigeroaFranceAnna Fali UNQUALIFIED
Leon T SaylorsRussiaStephen Shaw QUALIFIED
Jennifer H KolmetzGermanyIvan Magalhaes UNQUALIFIED
Adams N NickaUnited KingdomAnna Fali UNQUALIFIED
Cody E MaletBrazilXuxue Feng RENEWAL
Tony K CampainCanadaOnyama Limba UNQUALIFIED
Munro H KuskoGermanyBernardo Dominic NEW
Adams N PaprockiGermanyIoni Bowcher UNQUALIFIED
Mujtaba L WhobreySpainElwin Sharvill NEW
Jeanfrancois W InouyeIndiaAsiya Javayant NEGOTIATION
Murillo Z PoquetteFranceXuxue Feng NEW
Aditya P CaudyItalyElwin Sharvill NEW
Jefferson J SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois R MarrierSpainXuxue Feng PROPOSAL
Chavez I InouyeGermanyAnna Fali UNQUALIFIED
Nicolas D OstroskyGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Aruna B KuskoRussiaAsiya Javayant QUALIFIED
Emily P PoquetteBrazilXuxue Feng QUALIFIED
Juan L FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
James V OldroydAustraliaAsiya Javayant PROPOSAL
Smith H VenereIndiaOnyama Limba QUALIFIED
Jefferson O DarakjyBrazilStephen Shaw NEW
Alejandro A FollerBrazilBernardo Dominic QUALIFIED
Deepesh F SchemmerJapanAsiya Javayant PROPOSAL
Leja N AmigonSpainBernardo Dominic UNQUALIFIED
Antonio S CampainSpainIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James S SaylorsItaly2025-06-05Commercial Press PROPOSAL61Anna Fali
1001Murillo E SchemmerCanada2025-05-20Benton, John B Jr NEGOTIATION71Amy Elsner
1002Clifford Y ShinkoRussia2025-06-09Printing Dimensions NEW99Bernardo Dominic
1003Deepesh N KolmetzItaly2025-06-07Dorl, James J Esq NEGOTIATION43Elwin Sharvill
1004Jennifer E DoeBrazil2025-05-30Commercial Press PROPOSAL46Anna Fali
1005Izzy A ButtJapan2025-06-01Benton, John B Jr RENEWAL42Amy Elsner
1006Munro C PoquetteIndia2025-05-18Chanay, Jeffrey A Esq RENEWAL38Amy Elsner
1007Misaki Y FerenczGermany2025-05-29Rousseaux, Michael Esq NEW53Stephen Shaw
1008Chavez D GarufiJapan2025-05-22Chemel, James L Cpa NEGOTIATION62Ioni Bowcher
1009Kadeem A MaletFrance2025-05-20Rousseaux, Michael Esq NEW14Bernardo Dominic
1010Maria W MorascaSpain2025-06-03Chapman, Ross E Esq QUALIFIED97Elwin Sharvill
1011Silvio F InouyeRussia2025-05-25Printing Dimensions UNQUALIFIED70Stephen Shaw
1012Jeanfrancois X CaudySpain2025-05-18King, Christopher A Esq NEW46Ioni Bowcher
1013Kadeem V MaletRussia2025-05-27Truhlar And Truhlar Attys QUALIFIED77Ivan Magalhaes
1014Greenwood V DilliardBrazil2025-05-26Feltz Printing Service QUALIFIED70Ivan Magalhaes
1015Leon T BologniaJapan2025-05-30Rousseaux, Michael Esq NEW53Amy Elsner
1016Silvio J OldroydIndia2025-05-20Truhlar And Truhlar Attys RENEWAL38Onyama Limba
1017Munro G MorascaIndia2025-06-14Commercial Press NEW64Stephen Shaw
1018Stacey R StensethFrance2025-06-16King, Christopher A Esq NEGOTIATION0Anna Fali
1019Ivar T RoysterIndia2025-05-23Commercial Press RENEWAL90Ioni Bowcher
1020Johnson H ChuiAustralia2025-06-04Feiner Bros UNQUALIFIED42Bernardo Dominic
1021Smith V TollnerJapan2025-05-19Benton, John B Jr QUALIFIED22Bernardo Dominic
1022David J SlusarskiBrazil2025-06-10Morlong Associates UNQUALIFIED78Stephen Shaw
1023Chavez V InouyeGermany2025-06-13Benton, John B Jr NEGOTIATION75Amy Elsner
1024Kadeem G MaletItaly2025-05-26Rangoni Of Florence RENEWAL4Bernardo Dominic
1025Jennifer W PoquetteFrance2025-06-12Commercial Press PROPOSAL20Stephen Shaw
1026Deepesh B SaylorsGermany2025-05-19Chanay, Jeffrey A Esq UNQUALIFIED97Ivan Magalhaes
1027Kadeem C SlusarskiGermany2025-06-06Chanay, Jeffrey A Esq NEW73Stephen Shaw
1028Nicolas V StockhamItaly2025-05-25King, Christopher A Esq UNQUALIFIED11Asiya Javayant
1029Kadeem C CampainUnited Kingdom2025-06-07Printing Dimensions NEGOTIATION95Bernardo Dominic
1030Ivar J InouyeCanada2025-06-12Feltz Printing Service UNQUALIFIED62Asiya Javayant
1031Greenwood U MacleadAustralia2025-06-09Commercial Press RENEWAL47Xuxue Feng
1032Maisha G NickaFrance2025-06-09Rousseaux, Michael Esq UNQUALIFIED18Ivan Magalhaes
1033Maisha F RoysterBrazil2025-05-21Rousseaux, Michael Esq RENEWAL87Ivan Magalhaes
1034Aika R MaletIndia2025-06-13Chanay, Jeffrey A Esq UNQUALIFIED67Onyama Limba
1035Deepesh N FlosiSpain2025-06-07Benton, John B Jr PROPOSAL80Ivan Magalhaes
1036Aruna U AmigonFrance2025-06-07Benton, John B Jr NEGOTIATION66Bernardo Dominic
1037Mujtaba Q KuskoFrance2025-06-07Buckley Miller Wright RENEWAL38Asiya Javayant
1038David D MaletJapan2025-06-09Benton, John B Jr UNQUALIFIED53Asiya Javayant
1039Silvio D GlickFrance2025-05-30Truhlar And Truhlar Attys PROPOSAL86Anna Fali
1040Izzy N RimUnited Kingdom2025-06-02Chemel, James L Cpa RENEWAL80Ivan Magalhaes
1041Kadeem H SergiFrance2025-06-14King, Christopher A Esq NEW79Xuxue Feng
1042Johnson I GlickUnited Kingdom2025-06-13Rousseaux, Michael Esq NEW97Amy Elsner
1043Nicolas S FerenczJapan2025-05-22Truhlar And Truhlar Attys RENEWAL27Ivan Magalhaes
1044Silvio M GlickBrazil2025-06-14Commercial Press PROPOSAL84Ivan Magalhaes
1045Clifford D InouyeRussia2025-06-08Feiner Bros QUALIFIED13Ioni Bowcher
1046Stacey R DoeJapan2025-06-16Feiner Bros QUALIFIED79Stephen Shaw
1047Emily F GarufiBrazil2025-06-05Feiner Bros QUALIFIED55Bernardo Dominic
1048Leon A CaldareraArgentina2025-06-15Chemel, James L Cpa PROPOSAL8Ivan Magalhaes
1049Aruna L SaylorsAustralia2025-05-18Chemel, James L Cpa QUALIFIED25Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aruna H BowleyRussiaAsiya Javayant QUALIFIED
Emily V AlbaresIndiaElwin Sharvill NEW
Silvio G PaprockiGermanyElwin Sharvill QUALIFIED
Munro C StockhamSpainIoni Bowcher PROPOSAL
Murillo P TollnerUnited KingdomElwin Sharvill NEW
Clifford W BriddickUnited KingdomAmy Elsner QUALIFIED
Claire H OstroskyUnited KingdomXuxue Feng QUALIFIED
Ricardo O PoquetteRussiaAmy Elsner QUALIFIED
James Q InouyeGermanyBernardo Dominic NEW
Greenwood P StockhamFranceOnyama Limba RENEWAL
Jefferson K ShinkoIndiaOnyama Limba NEGOTIATION
Stacey G FollerGermanyBernardo Dominic RENEWAL
David Z OstroskyItalyAsiya Javayant NEGOTIATION
Aika L PaprockiSpainStephen Shaw NEGOTIATION
Maisha X MarrierBrazilAnna Fali PROPOSAL
Ricardo K GarufiRussiaAsiya Javayant UNQUALIFIED
Jones F WhobreyBrazilOnyama Limba PROPOSAL
Stacey E RutaRussiaIvan Magalhaes NEW
Aruna J ButtBrazilAnna Fali QUALIFIED
Antonio P CaldareraIndiaIvan Magalhaes UNQUALIFIED
Stacey U MacleadItalyStephen Shaw QUALIFIED
Misaki X DilliardJapanStephen Shaw NEW
Maria I NestleUnited KingdomAmy Elsner NEW
Alejandro C GarufiIndiaOnyama Limba QUALIFIED
Aruna H RimSpainAmy Elsner NEGOTIATION
Mujtaba W KuskoItalyElwin Sharvill RENEWAL
Aika E RulapaughBrazilAmy Elsner NEGOTIATION
David F ButtCanadaAsiya Javayant RENEWAL
Morrow E CaudyItalyIvan Magalhaes UNQUALIFIED
Juan K InouyeAustraliaStephen Shaw PROPOSAL
Murillo K OstroskyIndiaBernardo Dominic UNQUALIFIED
Smith U FollerJapanBernardo Dominic NEW
Leja X StockhamFranceIvan Magalhaes RENEWAL
Nicolas I KolmetzArgentinaIvan Magalhaes PROPOSAL
Jones V GauchoUnited KingdomXuxue Feng UNQUALIFIED
Leja R ChuiFranceIvan Magalhaes QUALIFIED
Mujtaba D DoeArgentinaIvan Magalhaes RENEWAL
Misaki V StockhamFranceAnna Fali PROPOSAL
Misaki W AmigonGermanyXuxue Feng NEGOTIATION
Adams L RimSpainOnyama Limba UNQUALIFIED
Jefferson Y WhobreyRussiaIoni Bowcher QUALIFIED
Kaitlin I VocelkaArgentinaIvan Magalhaes PROPOSAL
Costa Y MacleadArgentinaAmy Elsner NEW
Aruna E StensethUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues C StensethFranceAsiya Javayant NEW
Darci C NickaSpainElwin Sharvill PROPOSAL
Jones C DarakjyCanadaIoni Bowcher QUALIFIED
Alejandro P MaletAustraliaOnyama Limba RENEWAL
Kaitlin S PaprockiBrazilIoni Bowcher PROPOSAL
Stacey C NickaRussiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Ivar N Oldroyd
Leon L Malet
Alejandro U Butt
Izzy G Gaucho
Adams U Slusarski
Aruna A Tollner
Ricardo H Ruta
Antonio H Ruta
Mujtaba L Caudy
Rodrigues V Saylors
Nicolas Y Campain
Rodrigues U Ostrosky
Leon Z Iturbide
Morrow Y Whobrey
Johnson G Inouye
Emily Z Saylors
Costa J Tollner
Johnson B Morasca
Octavia D Campain
Leja W Ferencz
Leon J Chui
Clifford H Whobrey
Aruna W Marrier
Clifford Q Malet
Julie Y Caldarera
Kadeem J Nestle
Johnson Y Ruta
Claire Q Briddick
Kaitlin O Venere
Ivar O Caldarera
Emily L Foller
Chavez S Caldarera
Julie G Marrier
Antonio Y Nestle
Maria C Flosi
Maisha S Briddick
Alejandro H Iturbide
Leja W Chui
Mayumi X Vocelka
Ricardo K Bolognia
Sinclair R Saylors
Adams E Garufi
Ashley V Glick
Wickens V Saylors
Ricardo E Foller
Francesco J Kolmetz
Aditya K Glick
Francesco H Waycott
Sinclair O Shinko
Alejandro Y Venere
IdCountryDate
1000Spain2025-06-14
1001Australia2025-05-26
1002Argentina2025-05-18
1003Canada2025-06-06
1004Russia2025-05-18
1005Australia2025-05-19
1006Australia2025-05-24
1007Spain2025-05-29
1008Japan2025-05-22
1009Australia2025-05-28
1010United Kingdom2025-06-10
1011Italy2025-06-14
1012Italy2025-06-15
1013France2025-06-12
1014Italy2025-05-26
1015Italy2025-06-01
1016Canada2025-05-25
1017Spain2025-06-13
1018Spain2025-05-28
1019Spain2025-06-12
1020India2025-05-31
1021Russia2025-05-19
1022United Kingdom2025-05-30
1023France2025-06-04
1024France2025-05-19
1025Canada2025-06-16
1026India2025-06-06
1027Australia2025-06-02
1028Japan2025-06-10
1029Argentina2025-05-18
1030Spain2025-06-13
1031United Kingdom2025-06-14
1032Japan2025-06-10
1033Australia2025-06-05
1034France2025-05-20
1035Argentina2025-06-01
1036Russia2025-05-31
1037Russia2025-06-13
1038Japan2025-05-30
1039Japan2025-05-27
1040Italy2025-06-11
1041Spain2025-06-10
1042Italy2025-05-27
1043Russia2025-05-18
1044Canada2025-06-07
1045Argentina2025-06-03
1046Italy2025-05-25
1047India2025-05-29
1048India2025-06-01
1049Argentina2025-06-15

On-Demand Data

NameIdCountryDate
Tony C Darakjy1000Germany2025-06-14
Leja U Gaucho1001Italy2025-05-27
Munro D Campain1002United Kingdom2025-06-08
Nicolas U Schemmer1003India2025-05-30
Maisha N Slusarski1004Spain2025-05-30
Salvatore Q Stenseth1005Spain2025-06-06
Munro B Poquette1006Argentina2025-06-15
Wickens E Oldroyd1007Argentina2025-06-11
Nicolas J Royster1008Italy2025-05-25
Ashley P Nicka1009Argentina2025-05-27
Julie S Nestle1010Canada2025-06-11
Stacey P Bowley1011Argentina2025-06-04
Costa K Albares1012Japan2025-06-13
Aruna Z Figeroa1013Italy2025-05-30
Darci T Garufi1014United Kingdom2025-05-28
Murillo H Rim1015Russia2025-05-25
David C Ostrosky1016Japan2025-06-12
Ricardo U Caudy1017Australia2025-05-20
Clifford M Slusarski1018Canada2025-05-27
Kaitlin O Morasca1019Germany2025-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo D MorascaUnited KingdomElwin Sharvill RENEWAL
Wickens G MaletIndiaStephen Shaw NEW
Wickens N SchemmerItalyAsiya Javayant RENEWAL
Kadeem P VocelkaItalyElwin Sharvill RENEWAL
Chavez S KuskoArgentinaStephen Shaw RENEWAL
Jennifer U GillianItalyAsiya Javayant RENEWAL
Chavez Y GarufiUnited KingdomIoni Bowcher NEW
Octavia C RulapaughIndiaAmy Elsner PROPOSAL
Johnson M GauchoFranceElwin Sharvill NEGOTIATION
Wickens L SlusarskiBrazilElwin Sharvill NEGOTIATION
Salvatore P GarufiAustraliaElwin Sharvill RENEWAL
Faith N MorascaCanadaAmy Elsner RENEWAL
Jones H BologniaSpainAnna Fali NEGOTIATION
Emily N ChuiCanadaXuxue Feng RENEWAL
Alejandro F StensethAustraliaOnyama Limba QUALIFIED
Faith W GillianArgentinaAmy Elsner QUALIFIED
Alejandro M IturbideArgentinaElwin Sharvill RENEWAL
Julie Z VocelkaRussiaBernardo Dominic UNQUALIFIED
Leon O CaudyCanadaOnyama Limba PROPOSAL
Kadeem K WhobreyGermanyXuxue Feng PROPOSAL
Julie R RulapaughJapanAnna Fali UNQUALIFIED
Jefferson K OldroydIndiaIoni Bowcher NEW
Darci F FigeroaIndiaStephen Shaw NEGOTIATION
Ricardo Z DarakjyBrazilOnyama Limba RENEWAL
Clifford E OstroskyJapanAmy Elsner QUALIFIED
Claire A PaprockiGermanyAnna Fali QUALIFIED
Jones P MorascaFranceIvan Magalhaes PROPOSAL
Ricardo K NickaItalyIoni Bowcher RENEWAL
Sinclair B RutaArgentinaOnyama Limba NEGOTIATION
Nicolas M MaletUnited KingdomXuxue Feng NEW
Rodrigues N RulapaughIndiaElwin Sharvill NEGOTIATION
Mayumi J CaudyBrazilElwin Sharvill NEGOTIATION
James N InouyeCanadaAmy Elsner UNQUALIFIED
Ricardo P AmigonUnited KingdomXuxue Feng RENEWAL
Johnson X WaycottAustraliaStephen Shaw QUALIFIED
Clifford A GillianArgentinaStephen Shaw UNQUALIFIED
Cody A InouyeBrazilAmy Elsner RENEWAL
Costa M MaletGermanyXuxue Feng NEGOTIATION
Mujtaba X MaletBrazilIvan Magalhaes UNQUALIFIED
Ashley F MacleadIndiaOnyama Limba PROPOSAL

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