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
Maisha K AmigonSpainXuxue Feng NEW
Julie Y DoeJapanAmy Elsner RENEWAL
Antonio Q GarufiArgentinaIvan Magalhaes PROPOSAL
Jones P RutaJapanElwin Sharvill QUALIFIED
Misaki M MaletRussiaIoni Bowcher NEW
Chavez J SchemmerRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois E BowleyItalyOnyama Limba PROPOSAL
Arvin G FlosiAustraliaAsiya Javayant PROPOSAL
Johnson J InouyeAustraliaAnna Fali NEW
Sinclair I GarufiArgentinaAmy Elsner RENEWAL
Chavez X BologniaGermanyAmy Elsner RENEWAL
Mujtaba H BriddickItalyAmy Elsner NEW
Cody N WieserBrazilBernardo Dominic NEW
Jennifer Y RutaSpainIoni Bowcher UNQUALIFIED
Ashley K GarufiItalyIvan Magalhaes UNQUALIFIED
Izzy G FigeroaRussiaElwin Sharvill QUALIFIED
Jeanfrancois J GlickCanadaStephen Shaw RENEWAL
Jones H RulapaughIndiaIoni Bowcher NEGOTIATION
Leon A ChuiArgentinaBernardo Dominic NEW
Isabel P IturbideRussiaElwin Sharvill UNQUALIFIED
Murillo K OldroydFranceAnna Fali UNQUALIFIED
Jefferson P MarrierArgentinaIoni Bowcher RENEWAL
Jennifer T WieserJapanElwin Sharvill NEW
Tony D OldroydGermanyAsiya Javayant NEGOTIATION
Maria L NestleSpainIoni Bowcher RENEWAL
Alejandro S StockhamIndiaElwin Sharvill NEGOTIATION
Jones I GillianUnited KingdomBernardo Dominic UNQUALIFIED
Aika D NestleJapanElwin Sharvill NEW
Stacey Y VenereFranceAmy Elsner PROPOSAL
Murillo F NickaCanadaXuxue Feng PROPOSAL
Aditya Z InouyeSpainElwin Sharvill NEW
Mujtaba T WieserFranceElwin Sharvill RENEWAL
Leja H KuskoFranceAsiya Javayant RENEWAL
Emily K VenereArgentinaElwin Sharvill QUALIFIED
James S WieserSpainBernardo Dominic QUALIFIED
Claire W FerenczArgentinaIoni Bowcher NEW
Aika O CaudySpainBernardo Dominic QUALIFIED
Stacey P RoysterItalyXuxue Feng QUALIFIED
Jeanfrancois N BowleyCanadaAmy Elsner QUALIFIED
Claire Y OstroskyArgentinaOnyama Limba RENEWAL
Izzy C RoysterBrazilBernardo Dominic PROPOSAL
Munro K DarakjyArgentinaStephen Shaw RENEWAL
Julie S VocelkaSpainOnyama Limba NEGOTIATION
Octavia N VocelkaFranceAmy Elsner QUALIFIED
Jones M NestleSpainElwin Sharvill NEW
Nicolas E NestleItalyOnyama Limba PROPOSAL
James Y NestleCanadaAsiya Javayant RENEWAL
Adams Y WaycottFranceElwin Sharvill QUALIFIED
Misaki E IturbideCanadaBernardo Dominic NEW
Darci X BriddickJapanAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore U GarufiArgentinaBernardo Dominic NEW
Mayumi M WaycottJapanXuxue Feng UNQUALIFIED
Sinclair W ShinkoRussiaAmy Elsner PROPOSAL
Izzy V PoquetteIndiaIvan Magalhaes QUALIFIED
Nicolas R DarakjyBrazilBernardo Dominic PROPOSAL
Cody V PaprockiJapanStephen Shaw UNQUALIFIED
Clifford W FlosiIndiaAnna Fali NEW
Juan C FollerRussiaAnna Fali NEGOTIATION
Deepesh T AmigonGermanyAsiya Javayant NEGOTIATION
Johnson Y SchemmerSpainBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba U OstroskyIndia2026-07-28Dorl, James J Esq UNQUALIFIED62Amy Elsner
1001Deepesh D WieserUnited Kingdom2026-08-04Chanay, Jeffrey A Esq RENEWAL76Asiya Javayant
1002Aika V SchemmerItaly2026-08-16Feltz Printing Service NEW87Amy Elsner
1003Clifford N SlusarskiBrazil2026-07-20Feltz Printing Service RENEWAL42Xuxue Feng
1004Johnson G WhobreyItaly2026-07-20Truhlar And Truhlar Attys QUALIFIED60Anna Fali
1005Maisha U MaletCanada2026-08-16Chanay, Jeffrey A Esq RENEWAL42Amy Elsner
1006Alejandro E SlusarskiRussia2026-08-06Dorl, James J Esq NEGOTIATION37Ivan Magalhaes
1007Ivar I TollnerUnited Kingdom2026-07-24Dorl, James J Esq NEW42Bernardo Dominic
1008Nicolas Z FerenczCanada2026-07-29Chemel, James L Cpa NEGOTIATION31Anna Fali
1009Misaki A NestleCanada2026-08-15Commercial Press RENEWAL71Ivan Magalhaes
1010Mujtaba D CampainFrance2026-08-13Commercial Press PROPOSAL52Asiya Javayant
1011Ashley I IturbideAustralia2026-07-27Dorl, James J Esq RENEWAL90Asiya Javayant
1012Alejandro U WieserIndia2026-08-03Rangoni Of Florence UNQUALIFIED30Elwin Sharvill
1013Mujtaba A WhobreyAustralia2026-07-27Commercial Press NEGOTIATION83Elwin Sharvill
1014Maria Z SergiFrance2026-07-23Benton, John B Jr QUALIFIED99Elwin Sharvill
1015Juan P KolmetzGermany2026-07-20King, Christopher A Esq QUALIFIED64Stephen Shaw
1016Julie S KolmetzFrance2026-07-20Benton, John B Jr NEW58Onyama Limba
1017Salvatore T RutaFrance2026-08-03Chemel, James L Cpa NEGOTIATION2Anna Fali
1018Claire X AmigonUnited Kingdom2026-08-06Chanay, Jeffrey A Esq RENEWAL53Ioni Bowcher
1019Mayumi C DarakjyItaly2026-08-05Rangoni Of Florence NEW82Onyama Limba
1020Clifford D FollerIndia2026-08-07Morlong Associates RENEWAL78Anna Fali
1021Ricardo O RulapaughGermany2026-08-08Chapman, Ross E Esq NEGOTIATION13Xuxue Feng
1022James D WaycottGermany2026-07-20Dorl, James J Esq RENEWAL33Stephen Shaw
1023Morrow Y NickaUnited Kingdom2026-07-29Chanay, Jeffrey A Esq PROPOSAL30Amy Elsner
1024Antonio O GlickItaly2026-07-24Commercial Press NEW66Ioni Bowcher
1025Aruna Y CaudyItaly2026-07-23Chemel, James L Cpa UNQUALIFIED34Stephen Shaw
1026Murillo Y FollerBrazil2026-07-25Dorl, James J Esq NEW51Ioni Bowcher
1027Ashley L DoeSpain2026-08-03King, Christopher A Esq QUALIFIED89Onyama Limba
1028Isabel F WaycottSpain2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED80Bernardo Dominic
1029Maisha D SlusarskiUnited Kingdom2026-08-10King, Christopher A Esq RENEWAL44Stephen Shaw
1030Salvatore M DilliardRussia2026-08-17Truhlar And Truhlar Attys NEW12Asiya Javayant
1031David I ButtGermany2026-07-22Feiner Bros PROPOSAL97Ivan Magalhaes
1032Jeanfrancois L PerinIndia2026-07-30Rangoni Of Florence UNQUALIFIED64Ioni Bowcher
1033Alejandro R RutaBrazil2026-08-06Benton, John B Jr RENEWAL45Xuxue Feng
1034Aika E AmigonAustralia2026-08-05Commercial Press UNQUALIFIED99Ioni Bowcher
1035Johnson V ShinkoGermany2026-08-03Benton, John B Jr UNQUALIFIED75Elwin Sharvill
1036Misaki W NickaItaly2026-08-08Rousseaux, Michael Esq NEGOTIATION77Xuxue Feng
1037Costa M GauchoAustralia2026-08-07Chanay, Jeffrey A Esq NEW2Onyama Limba
1038Wickens M ChuiIndia2026-08-11Chemel, James L Cpa UNQUALIFIED30Onyama Limba
1039Cody C AmigonGermany2026-08-10Feiner Bros NEW53Amy Elsner
1040Costa G IturbideItaly2026-07-20Feltz Printing Service UNQUALIFIED23Stephen Shaw
1041Ashley Q StockhamCanada2026-08-11Feltz Printing Service PROPOSAL0Stephen Shaw
1042Costa G CaldareraItaly2026-07-24Benton, John B Jr NEGOTIATION83Elwin Sharvill
1043Cody L KolmetzGermany2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED15Anna Fali
1044Cody E FerenczUnited Kingdom2026-08-07Dorl, James J Esq RENEWAL5Xuxue Feng
1045Faith U NickaJapan2026-07-25Truhlar And Truhlar Attys QUALIFIED1Elwin Sharvill
1046Nicolas G ButtAustralia2026-08-15Commercial Press PROPOSAL60Ioni Bowcher
1047Aruna V KolmetzRussia2026-08-06Feiner Bros NEGOTIATION18Bernardo Dominic
1048Misaki M KuskoJapan2026-08-01Truhlar And Truhlar Attys UNQUALIFIED31Anna Fali
1049Kaitlin J AmigonItaly2026-07-26Feiner Bros UNQUALIFIED47Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Sinclair A StensethArgentinaStephen Shaw NEW
Deepesh T NestleArgentinaAmy Elsner NEW
Claire O ChuiCanadaBernardo Dominic NEW
Johnson H OldroydBrazilAsiya Javayant RENEWAL
Misaki Q AmigonFranceAsiya Javayant RENEWAL
Munro X AlbaresFranceIvan Magalhaes RENEWAL
Johnson V ChuiAustraliaIvan Magalhaes PROPOSAL
Johnson R BologniaJapanAnna Fali NEGOTIATION
Nicolas B CaudyUnited KingdomIoni Bowcher RENEWAL
Adams H WaycottGermanyAsiya Javayant NEW
Silvio A AlbaresItalyStephen Shaw QUALIFIED
Jones M AlbaresArgentinaBernardo Dominic PROPOSAL
Kaitlin P WieserAustraliaXuxue Feng QUALIFIED
Aruna Y GauchoGermanyAnna Fali NEGOTIATION
Francesco P ButtCanadaBernardo Dominic NEGOTIATION
Munro X RutaAustraliaXuxue Feng NEGOTIATION
Jennifer U VocelkaJapanStephen Shaw UNQUALIFIED
Isabel Z MarrierGermanyIoni Bowcher NEGOTIATION
Faith B IturbideGermanyBernardo Dominic RENEWAL
Nicolas G InouyeRussiaElwin Sharvill UNQUALIFIED
Jones R ShinkoFranceAnna Fali RENEWAL
Smith V BriddickIndiaAsiya Javayant UNQUALIFIED
Stacey Q AlbaresJapanStephen Shaw PROPOSAL
Leon Y MarrierAustraliaIvan Magalhaes NEGOTIATION
Jennifer Z TollnerIndiaAmy Elsner NEW
Murillo P DoeCanadaIvan Magalhaes QUALIFIED
Silvio N ButtBrazilIvan Magalhaes RENEWAL
Octavia Y PaprockiJapanStephen Shaw QUALIFIED
Silvio M SergiFranceAmy Elsner QUALIFIED
Jeanfrancois Y RoysterGermanyAnna Fali UNQUALIFIED
Faith Z FollerGermanyStephen Shaw RENEWAL
Alejandro L FlosiBrazilOnyama Limba RENEWAL
Salvatore T MaletRussiaOnyama Limba RENEWAL
Ivar Y PoquetteUnited KingdomAmy Elsner PROPOSAL
Salvatore Q SergiGermanyAsiya Javayant RENEWAL
Mujtaba C PoquetteArgentinaAsiya Javayant QUALIFIED
Sinclair V VenereItalyBernardo Dominic QUALIFIED
Jeanfrancois S CampainFranceBernardo Dominic QUALIFIED
Johnson E FollerItalyXuxue Feng PROPOSAL
James Q OstroskyIndiaAnna Fali UNQUALIFIED
Ricardo T RulapaughIndiaIoni Bowcher NEGOTIATION
Mayumi M BriddickItalyAnna Fali UNQUALIFIED
Juan F SaylorsArgentinaAnna Fali RENEWAL
Arvin O SlusarskiIndiaAmy Elsner RENEWAL
Kaitlin Y IturbideUnited KingdomAnna Fali PROPOSAL
Salvatore N WaycottSpainElwin Sharvill UNQUALIFIED
Faith B MaletBrazilOnyama Limba NEGOTIATION
James F VenereBrazilStephen Shaw PROPOSAL
Johnson T DilliardArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois D SchemmerGermanyXuxue Feng PROPOSAL
Frozen Columns
Name
Jones I Shinko
Jefferson K Inouye
Chavez D Marrier
Misaki D Nicka
Cody N Stockham
Rodrigues V Vocelka
Kadeem R Kusko
Alejandro Q Paprocki
Julie O Malet
Salvatore W Doe
Jennifer U Morasca
Murillo F Ruta
Maria J Gaucho
Jones S Gillian
Jeanfrancois L Butt
James S Venere
Isabel I Briddick
Alejandro Z Caudy
Sinclair Z Paprocki
Emily F Vocelka
Aika Q Albares
Isabel M Ferencz
Cody S Slusarski
Ivar W Vocelka
Jeanfrancois A Kolmetz
Izzy J Kolmetz
Julie C Kolmetz
Arvin L Nestle
Faith M Vocelka
Alejandro V Oldroyd
Tony W Bowley
Costa K Kusko
Wickens C Bowley
Aditya I Glick
Adams X Stockham
David H Chui
Arvin J Rim
Maisha S Gillian
Alejandro I Nestle
David B Malet
Stacey L Figeroa
Deepesh A Sergi
Jones N Morasca
Ivar X Ruta
Murillo M Morasca
Tony B Iturbide
Maisha I Slusarski
Greenwood N Maclead
Munro Z Maclead
Clifford R Malet
IdCountryDate
1000United Kingdom2026-08-09
1001Argentina2026-08-07
1002Germany2026-08-12
1003United Kingdom2026-08-12
1004Canada2026-08-17
1005Italy2026-07-20
1006Japan2026-08-17
1007Germany2026-08-02
1008United Kingdom2026-07-27
1009India2026-08-17
1010Italy2026-08-10
1011Russia2026-08-16
1012Japan2026-08-09
1013Russia2026-07-22
1014Italy2026-08-09
1015Australia2026-08-01
1016Canada2026-07-28
1017Spain2026-07-22
1018France2026-07-19
1019Italy2026-08-02
1020Italy2026-08-07
1021Japan2026-08-09
1022Japan2026-08-15
1023Argentina2026-07-20
1024Spain2026-07-23
1025France2026-07-24
1026Brazil2026-08-06
1027Japan2026-07-28
1028India2026-08-01
1029Argentina2026-08-03
1030France2026-08-11
1031United Kingdom2026-08-10
1032Italy2026-07-20
1033Italy2026-08-11
1034Brazil2026-07-21
1035Italy2026-08-01
1036Brazil2026-07-27
1037France2026-08-04
1038Australia2026-07-24
1039Japan2026-07-26
1040Italy2026-07-26
1041United Kingdom2026-07-28
1042India2026-07-21
1043France2026-07-24
1044Russia2026-08-03
1045Canada2026-08-15
1046Australia2026-08-07
1047Italy2026-08-15
1048Canada2026-07-22
1049Argentina2026-08-12

On-Demand Data

NameIdCountryDate
Rodrigues M Paprocki1000Canada2026-07-20
Ashley J Briddick1001Russia2026-08-17
Misaki T Stenseth1002Brazil2026-08-01
Tony E Gillian1003United Kingdom2026-07-28
Rodrigues P Kolmetz1004Canada2026-07-19
Juan P Rim1005Russia2026-07-28
Smith S Wieser1006Brazil2026-08-02
Tony V Albares1007Argentina2026-08-11
Nicolas I Bowley1008Brazil2026-07-25
Kaitlin C Morasca1009Italy2026-07-27
Chavez E Dilliard1010United Kingdom2026-07-23
Ivar U Schemmer1011Italy2026-08-01
Ivar E Bolognia1012Japan2026-08-09
Nicolas M Paprocki1013United Kingdom2026-08-17
David J Morasca1014Australia2026-07-26
Ivar D Iturbide1015United Kingdom2026-08-06
Kadeem B Tollner1016India2026-07-28
Francesco E Oldroyd1017Russia2026-08-05
Juan P Albares1018Italy2026-08-15
Aruna K Amigon1019Italy2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin K PerinIndiaIoni Bowcher RENEWAL
Silvio T InouyeUnited KingdomAnna Fali RENEWAL
Silvio R WaycottJapanAnna Fali NEGOTIATION
Alejandro Z SergiBrazilElwin Sharvill NEW
Arvin A CaldareraRussiaBernardo Dominic PROPOSAL
Aditya V InouyeSpainXuxue Feng NEGOTIATION
Claire T PoquetteArgentinaStephen Shaw PROPOSAL
Maria O WaycottFranceXuxue Feng UNQUALIFIED
Silvio C IturbideCanadaAnna Fali PROPOSAL
Kaitlin Z RimFranceElwin Sharvill NEW
Adams Z ShinkoJapanAnna Fali PROPOSAL
Greenwood P GlickBrazilAsiya Javayant NEW
Misaki X RutaCanadaAmy Elsner QUALIFIED
Deepesh F MacleadRussiaElwin Sharvill RENEWAL
Ricardo O CaudyItalyBernardo Dominic NEW
Antonio L DoeItalyStephen Shaw NEW
Darci P AlbaresItalyStephen Shaw QUALIFIED
Ricardo I FigeroaUnited KingdomIoni Bowcher PROPOSAL
David S KuskoGermanyXuxue Feng NEGOTIATION
Emily R GarufiArgentinaElwin Sharvill NEW
Francesco P GlickJapanAnna Fali NEGOTIATION
Jones P StockhamItalyIvan Magalhaes PROPOSAL
Cody G CaudyBrazilIvan Magalhaes RENEWAL
Smith I MaletArgentinaIvan Magalhaes QUALIFIED
Deepesh J StensethBrazilIvan Magalhaes PROPOSAL
Claire Y PerinIndiaAsiya Javayant QUALIFIED
Stacey U RulapaughCanadaAmy Elsner NEGOTIATION
Octavia G PaprockiSpainAnna Fali UNQUALIFIED
Mujtaba H ShinkoArgentinaElwin Sharvill NEGOTIATION
Greenwood O CaudyBrazilAmy Elsner NEGOTIATION
Faith M NickaIndiaAmy Elsner NEGOTIATION
Ricardo X MaletItalyIvan Magalhaes NEGOTIATION
Antonio N AlbaresUnited KingdomAmy Elsner QUALIFIED
Faith R GauchoIndiaAnna Fali PROPOSAL
James L MaletRussiaIvan Magalhaes PROPOSAL
Kaitlin N StensethGermanyAsiya Javayant RENEWAL
Aditya P OstroskyFranceIvan Magalhaes UNQUALIFIED
Adams V WaycottUnited KingdomIvan Magalhaes QUALIFIED
Maisha B PoquetteBrazilBernardo Dominic UNQUALIFIED
Costa D StensethBrazilBernardo Dominic NEW

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