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
Ivar N MaletFranceAsiya Javayant UNQUALIFIED
Stacey V TollnerRussiaXuxue Feng PROPOSAL
Francesco E RutaIndiaIoni Bowcher NEGOTIATION
Costa D StensethRussiaIvan Magalhaes RENEWAL
Maisha N RoysterSpainAnna Fali UNQUALIFIED
Isabel V GillianAustraliaIoni Bowcher UNQUALIFIED
Jennifer K CaldareraArgentinaAnna Fali UNQUALIFIED
Jones S RimCanadaElwin Sharvill QUALIFIED
Jennifer I VocelkaItalyIoni Bowcher UNQUALIFIED
Wickens K CaldareraFranceXuxue Feng PROPOSAL
Adams H BriddickAustraliaAsiya Javayant QUALIFIED
Ivar A DoeBrazilElwin Sharvill UNQUALIFIED
Rodrigues U AlbaresFranceElwin Sharvill NEW
Nicolas W OstroskyGermanyElwin Sharvill UNQUALIFIED
Munro G MaletUnited KingdomAsiya Javayant PROPOSAL
Darci N KolmetzGermanyAmy Elsner PROPOSAL
Stacey M MaletAustraliaXuxue Feng NEW
Johnson C TollnerCanadaAnna Fali RENEWAL
Smith K GillianArgentinaAmy Elsner NEGOTIATION
Silvio U SergiSpainIvan Magalhaes RENEWAL
Cody G SaylorsBrazilXuxue Feng RENEWAL
Juan E NestleAustraliaElwin Sharvill PROPOSAL
Emily X PaprockiAustraliaBernardo Dominic NEGOTIATION
Faith B CampainFranceAmy Elsner NEGOTIATION
Johnson U DilliardUnited KingdomOnyama Limba PROPOSAL
Kaitlin K NestleFranceAsiya Javayant NEW
Rodrigues C WaycottAustraliaXuxue Feng UNQUALIFIED
Octavia D DarakjyBrazilIoni Bowcher UNQUALIFIED
Emily S CaudyIndiaAnna Fali PROPOSAL
James O ButtIndiaElwin Sharvill UNQUALIFIED
Murillo Q OstroskySpainAnna Fali UNQUALIFIED
Leja W ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Johnson Z CaldareraBrazilElwin Sharvill NEGOTIATION
Juan A SaylorsJapanBernardo Dominic QUALIFIED
Antonio C SergiFranceStephen Shaw NEW
Leja W NestleCanadaAnna Fali UNQUALIFIED
Wickens Z StockhamBrazilStephen Shaw NEW
Izzy G PoquetteJapanIvan Magalhaes RENEWAL
Mayumi J GauchoSpainAnna Fali PROPOSAL
Julie J DilliardJapanXuxue Feng UNQUALIFIED
Kaitlin V ShinkoIndiaStephen Shaw NEW
Jeanfrancois F VenereIndiaBernardo Dominic NEGOTIATION
Morrow O FollerRussiaAnna Fali NEW
Alejandro F MaletArgentinaIvan Magalhaes NEGOTIATION
Julie D MorascaFranceXuxue Feng NEGOTIATION
Darci Z BowleyRussiaStephen Shaw RENEWAL
Aruna K SlusarskiBrazilAmy Elsner PROPOSAL
Sinclair W SaylorsRussiaAmy Elsner UNQUALIFIED
Mayumi D AmigonArgentinaXuxue Feng NEW
Wickens C VenereSpainStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan W ChuiArgentinaAnna Fali NEW
Aditya H FlosiGermanyAmy Elsner RENEWAL
Aika W GarufiRussiaAmy Elsner PROPOSAL
James E RimJapanAmy Elsner NEW
Alejandro W SlusarskiAustraliaOnyama Limba UNQUALIFIED
Stacey V GillianBrazilXuxue Feng UNQUALIFIED
Kaitlin T WaycottArgentinaXuxue Feng UNQUALIFIED
Mujtaba Q SergiCanadaAmy Elsner NEGOTIATION
Ricardo Y InouyeFranceAsiya Javayant UNQUALIFIED
Murillo M DilliardUnited KingdomOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones I AlbaresSpain2026-08-08Printing Dimensions PROPOSAL74Elwin Sharvill
1001Aditya V ButtAustralia2026-07-29Rangoni Of Florence QUALIFIED31Onyama Limba
1002Adams L RoysterSpain2026-08-02Rousseaux, Michael Esq NEGOTIATION38Onyama Limba
1003Claire W RulapaughIndia2026-07-31Chapman, Ross E Esq UNQUALIFIED69Xuxue Feng
1004Arvin K CaudyFrance2026-08-05Commercial Press UNQUALIFIED98Ioni Bowcher
1005Arvin Q KuskoRussia2026-07-30Buckley Miller Wright UNQUALIFIED53Ioni Bowcher
1006Jennifer U WieserSpain2026-08-10Chapman, Ross E Esq PROPOSAL94Ivan Magalhaes
1007Izzy R ButtCanada2026-08-06Dorl, James J Esq PROPOSAL6Ioni Bowcher
1008Antonio P PaprockiCanada2026-08-14Rousseaux, Michael Esq UNQUALIFIED7Xuxue Feng
1009Nicolas U SlusarskiItaly2026-08-04Benton, John B Jr UNQUALIFIED98Elwin Sharvill
1010Aika L BologniaRussia2026-07-21Commercial Press UNQUALIFIED1Bernardo Dominic
1011Arvin L KolmetzRussia2026-08-10Morlong Associates NEGOTIATION33Amy Elsner
1012Ricardo S SergiBrazil2026-08-02Dorl, James J Esq QUALIFIED97Amy Elsner
1013Antonio D PaprockiCanada2026-08-15Buckley Miller Wright QUALIFIED56Stephen Shaw
1014Jones H RutaUnited Kingdom2026-08-01Chemel, James L Cpa NEGOTIATION1Ioni Bowcher
1015Juan H VenereSpain2026-08-15Benton, John B Jr QUALIFIED18Bernardo Dominic
1016Tony B DoeIndia2026-07-29Truhlar And Truhlar Attys QUALIFIED33Xuxue Feng
1017Cody N CaldareraCanada2026-08-09Feiner Bros NEGOTIATION77Elwin Sharvill
1018Sinclair R OldroydArgentina2026-08-04King, Christopher A Esq QUALIFIED6Ioni Bowcher
1019Misaki N PerinCanada2026-08-13Morlong Associates UNQUALIFIED59Ioni Bowcher
1020Isabel R SlusarskiAustralia2026-08-14Morlong Associates NEW7Bernardo Dominic
1021Leon B DilliardUnited Kingdom2026-07-22Morlong Associates RENEWAL45Elwin Sharvill
1022Sinclair U SchemmerRussia2026-08-04Truhlar And Truhlar Attys QUALIFIED7Stephen Shaw
1023James M PerinCanada2026-08-07King, Christopher A Esq NEGOTIATION56Asiya Javayant
1024Jennifer U IturbideItaly2026-08-13Commercial Press PROPOSAL74Stephen Shaw
1025Juan V GauchoBrazil2026-08-04Feltz Printing Service QUALIFIED98Asiya Javayant
1026Isabel M AmigonFrance2026-08-07Chapman, Ross E Esq RENEWAL98Bernardo Dominic
1027Jeanfrancois Q RoysterIndia2026-07-28Rangoni Of Florence PROPOSAL37Stephen Shaw
1028Aika I BologniaAustralia2026-08-14Chanay, Jeffrey A Esq NEW21Ioni Bowcher
1029Jeanfrancois M AlbaresAustralia2026-08-17Feiner Bros QUALIFIED12Xuxue Feng
1030Tony W ChuiBrazil2026-07-29Buckley Miller Wright NEW13Asiya Javayant
1031Morrow P OldroydSpain2026-08-04King, Christopher A Esq NEW39Anna Fali
1032Ricardo G SlusarskiGermany2026-07-27Truhlar And Truhlar Attys UNQUALIFIED8Stephen Shaw
1033Silvio C DilliardCanada2026-07-27Morlong Associates NEGOTIATION69Onyama Limba
1034Smith F RutaAustralia2026-08-08Chapman, Ross E Esq PROPOSAL22Ivan Magalhaes
1035Nicolas U DoeBrazil2026-08-12Buckley Miller Wright UNQUALIFIED58Onyama Limba
1036Arvin B RoysterAustralia2026-08-06Buckley Miller Wright RENEWAL78Xuxue Feng
1037Tony T SlusarskiCanada2026-08-01Rousseaux, Michael Esq NEGOTIATION59Xuxue Feng
1038Smith T BologniaAustralia2026-08-02Buckley Miller Wright QUALIFIED75Ivan Magalhaes
1039Nicolas N StensethIndia2026-07-31Chapman, Ross E Esq NEW30Stephen Shaw
1040Maria T StockhamBrazil2026-08-08Morlong Associates NEGOTIATION18Elwin Sharvill
1041Cody Z VocelkaArgentina2026-07-31Rangoni Of Florence UNQUALIFIED31Ivan Magalhaes
1042Julie E DilliardJapan2026-08-14Dorl, James J Esq NEW40Onyama Limba
1043Costa D PaprockiCanada2026-07-25Rangoni Of Florence RENEWAL65Ioni Bowcher
1044Isabel F ChuiUnited Kingdom2026-08-01Morlong Associates QUALIFIED97Xuxue Feng
1045Maisha L WaycottIndia2026-07-24Morlong Associates PROPOSAL13Amy Elsner
1046Mayumi A SergiAustralia2026-07-21Buckley Miller Wright NEW14Ioni Bowcher
1047Darci A PoquetteGermany2026-08-10Rousseaux, Michael Esq UNQUALIFIED2Onyama Limba
1048Costa C GauchoSpain2026-08-17Feltz Printing Service PROPOSAL0Elwin Sharvill
1049Jennifer D NestleCanada2026-08-08Chapman, Ross E Esq QUALIFIED6Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro W RulapaughRussiaOnyama Limba RENEWAL
Faith M ShinkoRussiaXuxue Feng QUALIFIED
Izzy C RoysterCanadaIvan Magalhaes UNQUALIFIED
Johnson H DarakjyIndiaIvan Magalhaes PROPOSAL
Johnson G SergiUnited KingdomIvan Magalhaes RENEWAL
Misaki S GarufiItalyIoni Bowcher NEGOTIATION
Adams N FlosiRussiaElwin Sharvill NEW
Emily B RoysterFranceAmy Elsner UNQUALIFIED
Nicolas A AlbaresAustraliaAsiya Javayant NEW
Ricardo I VocelkaAustraliaAmy Elsner RENEWAL
Alejandro R MaletArgentinaAmy Elsner NEGOTIATION
Juan K CampainBrazilAmy Elsner NEW
Ivar R FollerArgentinaIvan Magalhaes NEW
Aruna J MarrierUnited KingdomAsiya Javayant RENEWAL
Smith Y DarakjyUnited KingdomStephen Shaw QUALIFIED
Darci S OstroskyCanadaIoni Bowcher PROPOSAL
Aruna U IturbideIndiaIvan Magalhaes QUALIFIED
Chavez O NestleJapanElwin Sharvill PROPOSAL
Octavia H BriddickSpainOnyama Limba RENEWAL
Ricardo G StockhamBrazilElwin Sharvill UNQUALIFIED
Francesco T IturbideBrazilIvan Magalhaes NEGOTIATION
Juan Y WieserItalyStephen Shaw QUALIFIED
Arvin E MarrierGermanyAsiya Javayant UNQUALIFIED
Ricardo U OstroskyGermanyOnyama Limba NEW
Deepesh E PoquetteCanadaOnyama Limba QUALIFIED
Arvin F AlbaresJapanElwin Sharvill QUALIFIED
Ivar Q BologniaGermanyXuxue Feng RENEWAL
Jefferson T FlosiRussiaStephen Shaw RENEWAL
Isabel G DarakjyBrazilXuxue Feng NEW
Clifford J MaletRussiaAsiya Javayant NEGOTIATION
Kadeem R BriddickBrazilAmy Elsner NEW
Deepesh Q MorascaUnited KingdomAsiya Javayant NEW
Jeanfrancois X MorascaSpainXuxue Feng UNQUALIFIED
Cody P AmigonAustraliaStephen Shaw NEGOTIATION
Ivar U KuskoItalyElwin Sharvill QUALIFIED
Munro Z WaycottRussiaElwin Sharvill PROPOSAL
Clifford O SaylorsAustraliaAsiya Javayant PROPOSAL
Aruna Z GarufiArgentinaBernardo Dominic NEW
Kadeem R CaudyCanadaElwin Sharvill QUALIFIED
Munro U NickaCanadaAnna Fali NEGOTIATION
Chavez A DarakjyIndiaIvan Magalhaes QUALIFIED
Deepesh E SchemmerJapanIoni Bowcher NEW
Darci G MaletBrazilXuxue Feng UNQUALIFIED
Murillo W MaletSpainOnyama Limba PROPOSAL
Deepesh V SchemmerUnited KingdomStephen Shaw NEW
Leon Y AlbaresRussiaIoni Bowcher UNQUALIFIED
Clifford H FerenczJapanElwin Sharvill UNQUALIFIED
Sinclair K DarakjyArgentinaElwin Sharvill NEGOTIATION
Maria L GlickArgentinaStephen Shaw NEGOTIATION
James P ButtArgentinaXuxue Feng QUALIFIED
Frozen Columns
Name
Deepesh F Wieser
Silvio D Bowley
Tony U Flosi
Jeanfrancois V Rim
Rodrigues E Kolmetz
Aika K Sergi
Kadeem Z Ferencz
Jefferson R Flosi
Munro A Garufi
Aditya U Chui
Rodrigues H Nestle
Darci R Shinko
Juan U Paprocki
Rodrigues Z Chui
Claire A Ostrosky
James K Nicka
Emily C Iturbide
Ricardo U Flosi
Greenwood U Briddick
Smith O Rulapaugh
Maria V Rulapaugh
Misaki V Figeroa
Mujtaba X Tollner
Kadeem P Paprocki
Arvin D Darakjy
Cody K Schemmer
Aika P Butt
Greenwood T Chui
Aika M Oldroyd
Izzy N Marrier
Aika Q Kolmetz
James G Chui
Jennifer R Rim
Aika X Ruta
Clifford L Saylors
Arvin N Bolognia
Kaitlin Y Waycott
Antonio H Kolmetz
Deepesh Z Albares
Isabel K Vocelka
Costa P Flosi
Aika C Malet
Izzy Q Sergi
Julie J Rulapaugh
Emily W Dilliard
Greenwood R Nestle
Tony D Darakjy
Adams J Schemmer
Jennifer W Darakjy
Chavez L Gaucho
IdCountryDate
1000India2026-08-07
1001Australia2026-08-01
1002Germany2026-07-26
1003Argentina2026-08-06
1004France2026-08-11
1005Canada2026-08-03
1006Brazil2026-08-13
1007Australia2026-08-03
1008Brazil2026-08-17
1009India2026-07-26
1010Germany2026-08-15
1011United Kingdom2026-07-27
1012India2026-08-05
1013United Kingdom2026-07-26
1014Germany2026-08-15
1015Australia2026-08-18
1016India2026-08-04
1017Italy2026-07-22
1018Germany2026-08-12
1019Germany2026-08-10
1020Australia2026-08-04
1021India2026-08-08
1022India2026-08-02
1023Spain2026-07-31
1024Argentina2026-07-23
1025Germany2026-08-05
1026Russia2026-07-30
1027Japan2026-07-22
1028Spain2026-08-14
1029United Kingdom2026-07-27
1030Australia2026-08-02
1031Spain2026-07-31
1032Russia2026-07-29
1033Spain2026-08-16
1034Canada2026-07-31
1035Japan2026-07-31
1036Russia2026-07-23
1037Canada2026-08-15
1038Canada2026-08-08
1039Canada2026-08-02
1040Germany2026-08-06
1041Italy2026-08-15
1042Australia2026-07-30
1043Canada2026-08-07
1044India2026-07-21
1045Italy2026-07-25
1046Germany2026-07-25
1047Spain2026-07-25
1048France2026-07-24
1049Argentina2026-07-28

On-Demand Data

NameIdCountryDate
Jeanfrancois E Morasca1000Brazil2026-07-21
Aditya K Caudy1001Germany2026-07-27
Alejandro J Kolmetz1002Russia2026-08-04
Nicolas M Shinko1003Australia2026-07-23
Aika S Garufi1004Japan2026-08-05
Maisha N Royster1005Canada2026-08-05
Deepesh C Gillian1006France2026-07-24
Leon P Waycott1007France2026-08-10
Ricardo C Saylors1008Spain2026-07-27
Leja L Albares1009France2026-08-01
Morrow C Rim1010United Kingdom2026-07-31
Leja X Morasca1011Germany2026-08-06
Stacey V Schemmer1012Brazil2026-08-17
Adams F Inouye1013Spain2026-08-10
Jones R Butt1014United Kingdom2026-07-26
Salvatore O Bowley1015Russia2026-07-23
Adams B Ruta1016India2026-07-30
Adams V Garufi1017Australia2026-07-26
Rodrigues H Nicka1018France2026-08-11
Francesco B Inouye1019Canada2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody W VocelkaArgentinaAmy Elsner PROPOSAL
Maria U VenereRussiaXuxue Feng QUALIFIED
Tony Y GauchoSpainIoni Bowcher PROPOSAL
Juan F FollerSpainAnna Fali NEW
Claire Q MarrierGermanyStephen Shaw NEGOTIATION
Deepesh Z OstroskyAustraliaAnna Fali NEGOTIATION
Silvio H FlosiUnited KingdomAnna Fali NEW
Morrow S SchemmerJapanBernardo Dominic NEW
Kadeem M TollnerAustraliaElwin Sharvill RENEWAL
Misaki W StensethIndiaElwin Sharvill RENEWAL
Johnson K WieserItalyAnna Fali UNQUALIFIED
Misaki I DarakjyBrazilOnyama Limba NEGOTIATION
Leja F BowleyFranceAsiya Javayant QUALIFIED
Clifford V KolmetzAustraliaOnyama Limba RENEWAL
Leja E NickaAustraliaStephen Shaw UNQUALIFIED
Deepesh G BriddickBrazilElwin Sharvill PROPOSAL
Ashley O CampainCanadaIvan Magalhaes RENEWAL
Octavia L MorascaBrazilAmy Elsner NEGOTIATION
Cody V RulapaughRussiaStephen Shaw UNQUALIFIED
Deepesh O FollerRussiaAnna Fali QUALIFIED
Jones F FerenczFranceOnyama Limba RENEWAL
Morrow E WieserGermanyOnyama Limba NEW
James N DarakjyIndiaElwin Sharvill QUALIFIED
Leon X PerinArgentinaOnyama Limba RENEWAL
Adams C ButtRussiaIvan Magalhaes NEW
Silvio W DilliardSpainStephen Shaw QUALIFIED
Aruna A KolmetzSpainElwin Sharvill RENEWAL
Ashley F BriddickFranceOnyama Limba QUALIFIED
Emily P VenereIndiaStephen Shaw NEW
Mujtaba X KuskoRussiaIvan Magalhaes PROPOSAL
Mayumi O CaldareraSpainIoni Bowcher NEGOTIATION
Arvin K FollerGermanyXuxue Feng RENEWAL
Jeanfrancois A CaudyArgentinaAnna Fali NEW
Mayumi R PoquetteUnited KingdomIoni Bowcher PROPOSAL
Mujtaba I RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin V InouyeItalyStephen Shaw NEGOTIATION
Maria N PaprockiSpainIoni Bowcher RENEWAL
Leon P FollerArgentinaBernardo Dominic UNQUALIFIED
David U GarufiBrazilBernardo Dominic UNQUALIFIED
Leon X StensethAustraliaAsiya Javayant 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>