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
Tony S OstroskySpainBernardo Dominic UNQUALIFIED
James H TollnerGermanyElwin Sharvill PROPOSAL
Silvio Q IturbideJapanBernardo Dominic NEGOTIATION
Juan Y OldroydRussiaIvan Magalhaes UNQUALIFIED
Arvin B VocelkaAustraliaOnyama Limba NEW
Wickens O StockhamIndiaAmy Elsner NEW
James P AlbaresIndiaIvan Magalhaes UNQUALIFIED
Salvatore D FerenczBrazilIoni Bowcher NEW
David U DilliardArgentinaBernardo Dominic UNQUALIFIED
Antonio F CaldareraArgentinaStephen Shaw NEGOTIATION
Kadeem L CampainIndiaOnyama Limba PROPOSAL
Leja J BowleyFranceOnyama Limba RENEWAL
David R DarakjyBrazilIoni Bowcher UNQUALIFIED
Faith V MaletArgentinaIvan Magalhaes NEGOTIATION
Claire M GillianIndiaXuxue Feng RENEWAL
Cody I InouyeUnited KingdomElwin Sharvill QUALIFIED
Jefferson F CampainAustraliaAsiya Javayant UNQUALIFIED
Ivar N IturbideItalyIoni Bowcher PROPOSAL
Jones I SlusarskiCanadaXuxue Feng NEW
Adams G WieserFranceElwin Sharvill NEGOTIATION
Maria J TollnerCanadaElwin Sharvill UNQUALIFIED
Cody J PoquetteIndiaXuxue Feng RENEWAL
Misaki D ShinkoAustraliaAmy Elsner QUALIFIED
Clifford E WieserRussiaElwin Sharvill NEGOTIATION
Isabel W PerinFranceAmy Elsner NEGOTIATION
Tony L AmigonCanadaOnyama Limba QUALIFIED
Jones O BowleyItalyOnyama Limba UNQUALIFIED
Greenwood I DoeIndiaIoni Bowcher QUALIFIED
Morrow D CampainUnited KingdomElwin Sharvill QUALIFIED
Izzy S MarrierAustraliaXuxue Feng PROPOSAL
Rodrigues G RoysterJapanIoni Bowcher NEGOTIATION
Arvin P BowleyItalyStephen Shaw NEGOTIATION
Arvin R WieserBrazilXuxue Feng UNQUALIFIED
Adams E MaletAustraliaStephen Shaw UNQUALIFIED
Mujtaba R RutaJapanIvan Magalhaes RENEWAL
Greenwood K WaycottCanadaXuxue Feng QUALIFIED
Aruna L MaletBrazilElwin Sharvill NEGOTIATION
Izzy Z RutaItalyXuxue Feng UNQUALIFIED
Faith Q MaletRussiaStephen Shaw QUALIFIED
Aika A InouyeGermanyStephen Shaw RENEWAL
Julie M CaudyRussiaXuxue Feng QUALIFIED
David Q FlosiArgentinaIvan Magalhaes QUALIFIED
Isabel I CampainRussiaIvan Magalhaes QUALIFIED
Chavez F FollerBrazilElwin Sharvill PROPOSAL
Adams G GauchoFranceStephen Shaw QUALIFIED
Munro Q DarakjyCanadaElwin Sharvill QUALIFIED
Costa M OstroskyBrazilIoni Bowcher QUALIFIED
Clifford T PerinBrazilBernardo Dominic QUALIFIED
Mujtaba B PaprockiJapanIoni Bowcher QUALIFIED
Leja T InouyeAustraliaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci M MarrierJapanElwin Sharvill PROPOSAL
Johnson P IturbideArgentinaStephen Shaw UNQUALIFIED
Julie U BowleyCanadaAnna Fali RENEWAL
Wickens U NickaGermanyElwin Sharvill NEGOTIATION
Cody M InouyeJapanElwin Sharvill QUALIFIED
Jones M MacleadCanadaAnna Fali QUALIFIED
Adams U RoysterRussiaOnyama Limba NEGOTIATION
Morrow G OstroskyRussiaAsiya Javayant PROPOSAL
Alejandro O VenereSpainAsiya Javayant PROPOSAL
Murillo A ShinkoCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia N NestleSpain2026-08-05King, Christopher A Esq RENEWAL95Onyama Limba
1001Jefferson R StensethGermany2026-08-20Chemel, James L Cpa UNQUALIFIED16Stephen Shaw
1002Deepesh V PoquetteRussia2026-08-28King, Christopher A Esq RENEWAL52Ivan Magalhaes
1003Rodrigues O ChuiRussia2026-08-20Feltz Printing Service QUALIFIED47Asiya Javayant
1004Stacey Q BologniaCanada2026-08-30Rangoni Of Florence QUALIFIED62Stephen Shaw
1005Ivar J ChuiGermany2026-09-01Commercial Press QUALIFIED87Xuxue Feng
1006James G MaletBrazil2026-08-06Chemel, James L Cpa UNQUALIFIED8Anna Fali
1007Smith Y SergiJapan2026-08-05Feiner Bros NEW59Onyama Limba
1008Costa X GauchoAustralia2026-08-24Chemel, James L Cpa NEGOTIATION3Asiya Javayant
1009Maisha K RulapaughCanada2026-08-06Rousseaux, Michael Esq QUALIFIED18Elwin Sharvill
1010Sinclair A MarrierUnited Kingdom2026-08-27Feiner Bros NEW30Ioni Bowcher
1011Greenwood Z KolmetzBrazil2026-08-26Chemel, James L Cpa NEGOTIATION26Amy Elsner
1012Isabel Z MacleadArgentina2026-08-27Commercial Press NEW67Bernardo Dominic
1013Aika U InouyeIndia2026-08-07Chapman, Ross E Esq QUALIFIED8Ioni Bowcher
1014Kaitlin Q DoeRussia2026-08-10Commercial Press PROPOSAL93Ivan Magalhaes
1015Rodrigues W NestleGermany2026-08-26Dorl, James J Esq PROPOSAL26Ioni Bowcher
1016James T VenereGermany2026-08-19Dorl, James J Esq NEW52Ivan Magalhaes
1017Julie S FigeroaSpain2026-08-15Rousseaux, Michael Esq UNQUALIFIED49Onyama Limba
1018Antonio T RutaJapan2026-08-11Chapman, Ross E Esq PROPOSAL73Bernardo Dominic
1019Juan U FollerFrance2026-08-10Feltz Printing Service RENEWAL21Ioni Bowcher
1020Jeanfrancois C PoquetteIndia2026-08-27Chemel, James L Cpa PROPOSAL48Xuxue Feng
1021Faith F NestleCanada2026-08-17Chemel, James L Cpa QUALIFIED68Bernardo Dominic
1022Jefferson C MarrierCanada2026-09-01Printing Dimensions RENEWAL34Onyama Limba
1023Clifford Q PoquetteFrance2026-08-24Chapman, Ross E Esq QUALIFIED86Bernardo Dominic
1024Mujtaba C IturbideItaly2026-08-25Truhlar And Truhlar Attys UNQUALIFIED53Onyama Limba
1025Mayumi A WieserUnited Kingdom2026-09-01Chemel, James L Cpa RENEWAL70Xuxue Feng
1026Antonio N SchemmerRussia2026-08-13Benton, John B Jr PROPOSAL12Ioni Bowcher
1027Claire L ChuiItaly2026-08-16Commercial Press RENEWAL86Onyama Limba
1028Mujtaba M DilliardArgentina2026-08-12King, Christopher A Esq PROPOSAL71Bernardo Dominic
1029Isabel P KuskoGermany2026-08-07Benton, John B Jr NEW42Xuxue Feng
1030Costa Z BriddickIndia2026-08-27Morlong Associates QUALIFIED26Anna Fali
1031Leon D NestleCanada2026-08-12Feltz Printing Service QUALIFIED87Anna Fali
1032Adams V RutaArgentina2026-08-14Feiner Bros PROPOSAL95Stephen Shaw
1033Deepesh M WieserItaly2026-08-06Rousseaux, Michael Esq UNQUALIFIED78Amy Elsner
1034Julie I WaycottGermany2026-08-23Commercial Press PROPOSAL69Xuxue Feng
1035Jennifer L RulapaughItaly2026-08-29Rangoni Of Florence QUALIFIED94Elwin Sharvill
1036Leja R SlusarskiUnited Kingdom2026-08-08Chanay, Jeffrey A Esq PROPOSAL18Elwin Sharvill
1037Kaitlin Y MarrierFrance2026-08-16Printing Dimensions PROPOSAL21Anna Fali
1038Leon R WaycottIndia2026-08-28Chapman, Ross E Esq RENEWAL56Xuxue Feng
1039Julie G SchemmerUnited Kingdom2026-08-15Printing Dimensions NEW56Ivan Magalhaes
1040David D MorascaArgentina2026-09-02Morlong Associates QUALIFIED19Bernardo Dominic
1041Arvin C FigeroaJapan2026-08-07Rousseaux, Michael Esq NEGOTIATION43Onyama Limba
1042Sinclair S GarufiCanada2026-08-21Buckley Miller Wright PROPOSAL54Ioni Bowcher
1043Munro O PerinAustralia2026-08-28Truhlar And Truhlar Attys NEW37Ivan Magalhaes
1044Arvin V GauchoAustralia2026-08-22Feltz Printing Service UNQUALIFIED51Anna Fali
1045Isabel B RimUnited Kingdom2026-08-19Commercial Press PROPOSAL95Elwin Sharvill
1046Deepesh R DoeUnited Kingdom2026-08-12Commercial Press NEGOTIATION1Amy Elsner
1047Munro I BologniaAustralia2026-08-26Chemel, James L Cpa UNQUALIFIED6Xuxue Feng
1048Isabel T AlbaresRussia2026-08-25Buckley Miller Wright PROPOSAL64Ioni Bowcher
1049Ivar V BowleyUnited Kingdom2026-09-01Printing Dimensions RENEWAL62Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Morrow M WaycottUnited KingdomXuxue Feng UNQUALIFIED
Antonio A GlickFranceAsiya Javayant NEW
Alejandro K MaletFranceIvan Magalhaes RENEWAL
Stacey T MaletGermanyAmy Elsner NEGOTIATION
Leon Y SaylorsSpainAmy Elsner QUALIFIED
Mujtaba R BologniaSpainIvan Magalhaes NEGOTIATION
Ricardo J NickaUnited KingdomBernardo Dominic QUALIFIED
Ricardo I RulapaughCanadaAsiya Javayant QUALIFIED
Kadeem K TollnerGermanyAmy Elsner NEW
Kadeem U NestleCanadaAnna Fali PROPOSAL
Misaki F BriddickGermanyAsiya Javayant UNQUALIFIED
Wickens K SchemmerGermanyStephen Shaw NEW
Smith Q VocelkaRussiaIvan Magalhaes UNQUALIFIED
Nicolas K IturbideGermanyXuxue Feng QUALIFIED
Sinclair L ShinkoBrazilBernardo Dominic RENEWAL
Faith F GarufiAustraliaXuxue Feng RENEWAL
Darci R RoysterAustraliaStephen Shaw RENEWAL
Emily V BologniaGermanyBernardo Dominic QUALIFIED
Kadeem C PaprockiIndiaBernardo Dominic NEGOTIATION
Jeanfrancois Q MaletItalyIvan Magalhaes NEGOTIATION
Isabel K KuskoItalyElwin Sharvill QUALIFIED
Salvatore S MaletCanadaIvan Magalhaes QUALIFIED
Jones R FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Francesco Y DarakjyItalyOnyama Limba NEW
Maisha U BowleySpainXuxue Feng UNQUALIFIED
Izzy W PaprockiFranceOnyama Limba RENEWAL
Ricardo H PaprockiBrazilStephen Shaw NEGOTIATION
Chavez L OldroydJapanXuxue Feng NEGOTIATION
Rodrigues N IturbideFranceOnyama Limba UNQUALIFIED
Adams J MorascaCanadaIvan Magalhaes RENEWAL
Leja E DarakjyCanadaIvan Magalhaes RENEWAL
Cody G SergiAustraliaElwin Sharvill NEW
Sinclair T MaletBrazilIvan Magalhaes PROPOSAL
Faith T MaletGermanyElwin Sharvill NEGOTIATION
Maisha B DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya W GarufiFranceIvan Magalhaes NEW
Ricardo I RutaBrazilAsiya Javayant NEW
Francesco C GarufiRussiaAnna Fali RENEWAL
Silvio H BologniaUnited KingdomAmy Elsner NEW
Faith H ButtBrazilXuxue Feng NEGOTIATION
Juan N AmigonJapanStephen Shaw UNQUALIFIED
Misaki K AlbaresAustraliaAmy Elsner UNQUALIFIED
Cody G CampainUnited KingdomAsiya Javayant QUALIFIED
Jennifer E NestleAustraliaAnna Fali QUALIFIED
Wickens W RoysterSpainAsiya Javayant RENEWAL
Antonio W FollerUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh R PerinIndiaBernardo Dominic PROPOSAL
Ricardo I PerinRussiaIvan Magalhaes PROPOSAL
Aika U RutaArgentinaOnyama Limba RENEWAL
Murillo J KuskoAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Clifford C Ruta
Aditya B Tollner
Munro T Vocelka
Murillo H Caldarera
Juan W Stockham
David J Nestle
Silvio Z Ruta
Maisha P Shinko
Jones A Amigon
Clifford N Caudy
Rodrigues O Caudy
Greenwood K Perin
Ricardo D Gaucho
Ricardo G Oldroyd
Maisha J Ruta
Maria X Whobrey
Murillo R Whobrey
Aruna D Venere
James F Poquette
Isabel D Paprocki
Murillo V Dilliard
Sinclair M Ferencz
Misaki H Iturbide
Jones J Stenseth
Clifford Q Oldroyd
Faith V Saylors
Francesco Q Maclead
Silvio I Glick
Cody P Perin
Jones M Maclead
Julie R Tollner
Tony I Poquette
Leja E Shinko
Izzy Y Marrier
Chavez J Venere
Jennifer V Darakjy
Wickens T Whobrey
Alejandro X Butt
Johnson R Malet
Greenwood L Tollner
Izzy B Chui
Costa V Darakjy
Ivar C Bolognia
Maria S Wieser
Silvio A Foller
Ricardo B Tollner
Tony Y Ruta
Antonio R Schemmer
Izzy Q Ferencz
Leja L Doe
IdCountryDate
1000India2026-08-08
1001Canada2026-08-10
1002United Kingdom2026-08-27
1003United Kingdom2026-08-31
1004Australia2026-08-06
1005Australia2026-08-10
1006Australia2026-08-27
1007Germany2026-08-15
1008Germany2026-08-22
1009Italy2026-08-08
1010Spain2026-08-07
1011India2026-08-24
1012Italy2026-08-18
1013Russia2026-08-16
1014Argentina2026-08-13
1015Australia2026-08-18
1016Germany2026-08-13
1017Spain2026-08-25
1018Italy2026-08-13
1019Italy2026-08-15
1020Italy2026-08-24
1021Canada2026-09-01
1022Australia2026-08-21
1023Italy2026-08-20
1024United Kingdom2026-08-16
1025Canada2026-08-21
1026Spain2026-08-24
1027Argentina2026-09-03
1028Japan2026-08-27
1029Argentina2026-08-12
1030Russia2026-08-15
1031Japan2026-08-08
1032Argentina2026-08-09
1033Japan2026-08-16
1034Canada2026-08-13
1035Spain2026-08-19
1036France2026-08-20
1037Canada2026-08-09
1038Russia2026-08-19
1039India2026-09-03
1040France2026-08-21
1041United Kingdom2026-08-29
1042Spain2026-08-27
1043Canada2026-08-11
1044United Kingdom2026-08-26
1045Germany2026-08-09
1046United Kingdom2026-08-14
1047India2026-08-09
1048France2026-09-01
1049Argentina2026-08-26

On-Demand Data

NameIdCountryDate
Izzy F Paprocki1000Brazil2026-08-11
Murillo M Amigon1001France2026-08-19
Francesco E Stockham1002Russia2026-08-08
Greenwood Y Dilliard1003France2026-08-22
Aditya H Waycott1004Russia2026-08-19
Claire J Bolognia1005France2026-08-07
Misaki I Inouye1006India2026-08-12
Morrow R Marrier1007France2026-08-25
Ivar C Ostrosky1008Italy2026-08-31
Juan Y Rim1009Canada2026-08-13
Mayumi L Malet1010Canada2026-08-18
Tony Z Doe1011India2026-08-26
Ashley V Inouye1012Japan2026-08-14
Juan H Kusko1013Canada2026-08-18
Costa U Ferencz1014France2026-08-08
Ashley X Kolmetz1015France2026-08-29
Jeanfrancois P Doe1016Australia2026-08-27
Jones U Schemmer1017Spain2026-08-28
Stacey Q Dilliard1018France2026-08-14
Aditya U Garufi1019India2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson X NestleArgentinaAnna Fali UNQUALIFIED
Tony H StockhamGermanyIoni Bowcher QUALIFIED
Nicolas E RoysterRussiaAsiya Javayant RENEWAL
Misaki V DilliardFranceAmy Elsner NEW
Chavez L SlusarskiRussiaStephen Shaw NEW
Stacey D SchemmerArgentinaStephen Shaw NEW
Tony P FollerAustraliaElwin Sharvill NEGOTIATION
Isabel E SchemmerIndiaOnyama Limba RENEWAL
Octavia D SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Cody A GillianRussiaBernardo Dominic NEGOTIATION
Emily Z MaletFranceBernardo Dominic NEW
Tony O RimArgentinaOnyama Limba NEGOTIATION
Ricardo T RimItalyElwin Sharvill PROPOSAL
Faith M KolmetzBrazilAmy Elsner NEW
Aditya F FlosiGermanyBernardo Dominic RENEWAL
Deepesh L SaylorsCanadaAsiya Javayant NEW
Costa H FigeroaCanadaElwin Sharvill NEGOTIATION
Claire O NickaCanadaStephen Shaw UNQUALIFIED
Wickens S ShinkoCanadaAsiya Javayant QUALIFIED
Munro K FigeroaCanadaAsiya Javayant NEGOTIATION
Aika X PerinGermanyBernardo Dominic PROPOSAL
Rodrigues T OldroydArgentinaIvan Magalhaes UNQUALIFIED
Emily J DarakjyJapanStephen Shaw QUALIFIED
Ricardo L SchemmerRussiaElwin Sharvill NEGOTIATION
Emily K KolmetzItalyStephen Shaw NEGOTIATION
Cody M BowleyUnited KingdomIoni Bowcher PROPOSAL
Alejandro I SlusarskiBrazilIoni Bowcher NEGOTIATION
Kaitlin A BriddickIndiaIvan Magalhaes NEGOTIATION
Greenwood N ShinkoIndiaAsiya Javayant RENEWAL
Mujtaba E VenereCanadaIoni Bowcher NEGOTIATION
Isabel U WaycottGermanyXuxue Feng NEW
Salvatore R VenereGermanyAmy Elsner RENEWAL
Leja K SergiAustraliaIoni Bowcher NEW
Aika U WhobreyRussiaXuxue Feng RENEWAL
Ashley X OstroskyItalyAsiya Javayant NEGOTIATION
Antonio X DoeIndiaIvan Magalhaes UNQUALIFIED
Arvin M RimArgentinaOnyama Limba NEGOTIATION
Deepesh T RulapaughSpainBernardo Dominic PROPOSAL
Clifford J SaylorsFranceBernardo Dominic RENEWAL
Deepesh C ShinkoAustraliaElwin Sharvill 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>