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
Mayumi O WaycottUnited KingdomAmy Elsner NEGOTIATION
Faith Q PaprockiSpainAnna Fali QUALIFIED
Costa C VocelkaGermanyStephen Shaw RENEWAL
Salvatore Y KuskoJapanXuxue Feng PROPOSAL
James W PerinUnited KingdomXuxue Feng NEGOTIATION
David L WhobreyRussiaAmy Elsner QUALIFIED
Kadeem X FlosiAustraliaStephen Shaw NEW
Antonio D CaldareraSpainIvan Magalhaes UNQUALIFIED
Juan T AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Aika V GillianUnited KingdomAmy Elsner NEW
Leon S RulapaughBrazilBernardo Dominic PROPOSAL
Costa Y DoeUnited KingdomIvan Magalhaes QUALIFIED
Julie P ChuiItalyAnna Fali PROPOSAL
James F FollerAustraliaAmy Elsner PROPOSAL
Johnson N SlusarskiSpainElwin Sharvill NEGOTIATION
Rodrigues J KolmetzFranceBernardo Dominic NEGOTIATION
Emily R RutaGermanyBernardo Dominic NEGOTIATION
Aditya M IturbideBrazilElwin Sharvill PROPOSAL
Salvatore I MaletIndiaAnna Fali PROPOSAL
Salvatore W WaycottCanadaElwin Sharvill PROPOSAL
Izzy F SlusarskiArgentinaBernardo Dominic PROPOSAL
Mujtaba V ShinkoFranceIvan Magalhaes NEGOTIATION
Jeanfrancois M MorascaItalyAmy Elsner UNQUALIFIED
Jones A RutaJapanAsiya Javayant PROPOSAL
Maisha U PerinFranceStephen Shaw NEGOTIATION
Octavia M VenereIndiaAnna Fali NEW
Cody X DoeSpainOnyama Limba NEW
Izzy W RulapaughFranceBernardo Dominic PROPOSAL
Maria R SlusarskiRussiaAmy Elsner NEGOTIATION
Octavia O DarakjyIndiaXuxue Feng PROPOSAL
Nicolas G NestleSpainOnyama Limba NEW
David S VenereUnited KingdomIoni Bowcher RENEWAL
Ivar S DoeSpainIvan Magalhaes PROPOSAL
Tony D WhobreyIndiaElwin Sharvill PROPOSAL
Isabel I AlbaresAustraliaBernardo Dominic QUALIFIED
Mayumi X KolmetzJapanAmy Elsner PROPOSAL
Juan W GarufiJapanElwin Sharvill NEW
Aruna K AlbaresFranceBernardo Dominic QUALIFIED
Clifford X MorascaArgentinaBernardo Dominic QUALIFIED
Nicolas A VocelkaRussiaIvan Magalhaes NEGOTIATION
Nicolas F KuskoItalyAsiya Javayant QUALIFIED
Sinclair G InouyeCanadaIoni Bowcher NEW
Isabel X PerinUnited KingdomXuxue Feng RENEWAL
Wickens H DoeBrazilAmy Elsner RENEWAL
Greenwood J MorascaAustraliaXuxue Feng PROPOSAL
Maisha U ButtItalyAsiya Javayant NEGOTIATION
Claire O CaudyFranceStephen Shaw NEGOTIATION
Mujtaba E FigeroaBrazilIvan Magalhaes QUALIFIED
Aruna I OstroskyRussiaAsiya Javayant QUALIFIED
Smith X TollnerSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson L FigeroaSpainElwin Sharvill UNQUALIFIED
Arvin G AlbaresBrazilBernardo Dominic RENEWAL
Kadeem N KuskoUnited KingdomStephen Shaw NEW
Deepesh R MorascaSpainAsiya Javayant NEGOTIATION
Izzy X InouyeJapanBernardo Dominic PROPOSAL
Munro S AlbaresItalyAsiya Javayant NEW
Nicolas H WaycottSpainOnyama Limba QUALIFIED
Misaki S KolmetzArgentinaXuxue Feng PROPOSAL
Ricardo Y VocelkaUnited KingdomStephen Shaw NEW
Salvatore I NestleFranceIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh T SchemmerSpain2026-07-28King, Christopher A Esq RENEWAL9Asiya Javayant
1001David M MaletRussia2026-07-30Buckley Miller Wright PROPOSAL67Onyama Limba
1002Isabel W KuskoJapan2026-07-15Commercial Press UNQUALIFIED9Anna Fali
1003Salvatore L PoquetteItaly2026-07-19Feiner Bros RENEWAL75Asiya Javayant
1004Faith I SchemmerSpain2026-07-15King, Christopher A Esq UNQUALIFIED79Asiya Javayant
1005Jefferson B VenereCanada2026-07-29Benton, John B Jr NEGOTIATION70Ivan Magalhaes
1006Jeanfrancois S CaldareraBrazil2026-07-14Benton, John B Jr NEW50Ivan Magalhaes
1007Antonio A ChuiRussia2026-07-15Feltz Printing Service RENEWAL38Asiya Javayant
1008Smith E GarufiBrazil2026-07-16Benton, John B Jr NEGOTIATION70Asiya Javayant
1009Jennifer A FigeroaArgentina2026-08-08King, Christopher A Esq UNQUALIFIED23Xuxue Feng
1010Silvio I AmigonJapan2026-08-05Rangoni Of Florence NEW72Amy Elsner
1011Aika V VocelkaFrance2026-07-14Commercial Press QUALIFIED98Xuxue Feng
1012Ashley V BriddickSpain2026-07-13Chemel, James L Cpa QUALIFIED55Stephen Shaw
1013Sinclair X AlbaresSpain2026-08-11Dorl, James J Esq NEGOTIATION88Stephen Shaw
1014Antonio G FollerRussia2026-08-02Buckley Miller Wright UNQUALIFIED39Xuxue Feng
1015Jones J WieserJapan2026-07-27Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1016Nicolas D RulapaughSpain2026-07-23Benton, John B Jr PROPOSAL19Xuxue Feng
1017Greenwood P OldroydIndia2026-08-04Chapman, Ross E Esq NEW64Onyama Limba
1018Jones X WieserFrance2026-08-02Rousseaux, Michael Esq QUALIFIED46Asiya Javayant
1019Aruna H CampainArgentina2026-07-29Chapman, Ross E Esq NEW16Amy Elsner
1020Juan Z MacleadBrazil2026-07-31Morlong Associates QUALIFIED38Ivan Magalhaes
1021Clifford C OldroydAustralia2026-08-02Rangoni Of Florence UNQUALIFIED72Amy Elsner
1022Clifford D InouyeSpain2026-07-31Chanay, Jeffrey A Esq RENEWAL27Xuxue Feng
1023Jeanfrancois E WaycottBrazil2026-07-18Printing Dimensions UNQUALIFIED69Amy Elsner
1024Tony Q BowleyCanada2026-07-24Morlong Associates NEW68Ioni Bowcher
1025Deepesh L BowleyArgentina2026-08-10Printing Dimensions RENEWAL72Asiya Javayant
1026Aika Y NickaRussia2026-08-07Printing Dimensions NEW85Elwin Sharvill
1027Emily U FerenczUnited Kingdom2026-07-18Dorl, James J Esq NEW21Anna Fali
1028Maisha X WieserRussia2026-08-08Buckley Miller Wright RENEWAL13Ivan Magalhaes
1029Cody W GlickSpain2026-07-23Morlong Associates RENEWAL69Bernardo Dominic
1030Silvio H FigeroaFrance2026-07-25Chanay, Jeffrey A Esq NEW50Stephen Shaw
1031Ashley K DoeUnited Kingdom2026-07-20Truhlar And Truhlar Attys QUALIFIED3Ioni Bowcher
1032Salvatore J ShinkoJapan2026-07-29Buckley Miller Wright PROPOSAL57Bernardo Dominic
1033Aditya Z KolmetzJapan2026-07-20Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1034Greenwood V StensethBrazil2026-08-01Buckley Miller Wright RENEWAL81Ivan Magalhaes
1035Claire E FollerUnited Kingdom2026-07-16Feltz Printing Service NEGOTIATION83Amy Elsner
1036Jefferson D DilliardBrazil2026-08-03Commercial Press NEW47Bernardo Dominic
1037Jones M SergiIndia2026-07-23Commercial Press NEGOTIATION73Bernardo Dominic
1038Clifford E FollerGermany2026-08-08Benton, John B Jr RENEWAL32Amy Elsner
1039Ricardo F FerenczSpain2026-08-05Rangoni Of Florence RENEWAL31Onyama Limba
1040Claire N RutaRussia2026-08-10Morlong Associates RENEWAL46Asiya Javayant
1041Costa W VenereFrance2026-07-31Rangoni Of Florence RENEWAL60Amy Elsner
1042James S SchemmerFrance2026-07-24Rangoni Of Florence UNQUALIFIED56Stephen Shaw
1043Mayumi B FlosiCanada2026-08-01Chemel, James L Cpa QUALIFIED61Elwin Sharvill
1044Ricardo L IturbideRussia2026-08-11Chemel, James L Cpa NEGOTIATION46Anna Fali
1045Clifford O BologniaBrazil2026-07-18Morlong Associates RENEWAL41Bernardo Dominic
1046Rodrigues A RulapaughCanada2026-07-20Commercial Press NEW43Bernardo Dominic
1047Clifford I GillianFrance2026-08-11Chemel, James L Cpa NEW73Asiya Javayant
1048Nicolas F MaletBrazil2026-07-19Printing Dimensions QUALIFIED71Elwin Sharvill
1049Adams F WieserSpain2026-07-25Dorl, James J Esq NEGOTIATION94Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez I InouyeGermanyAmy Elsner NEGOTIATION
Silvio F KolmetzIndiaElwin Sharvill QUALIFIED
Ivar H RulapaughUnited KingdomStephen Shaw NEGOTIATION
Faith S StockhamSpainOnyama Limba UNQUALIFIED
Ivar O PerinUnited KingdomBernardo Dominic PROPOSAL
Emily R SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Morrow Q FerenczGermanyOnyama Limba PROPOSAL
Aditya J OstroskySpainElwin Sharvill PROPOSAL
Munro J AlbaresItalyAsiya Javayant NEW
Mayumi X ButtFranceIvan Magalhaes NEGOTIATION
Arvin T BologniaAustraliaIvan Magalhaes NEW
Faith T WhobreySpainIoni Bowcher QUALIFIED
Isabel J OldroydIndiaElwin Sharvill NEW
Munro S AlbaresGermanyOnyama Limba NEW
James B DilliardArgentinaStephen Shaw QUALIFIED
Adams A MaletGermanyAmy Elsner PROPOSAL
Aika G OstroskyIndiaAsiya Javayant RENEWAL
Jefferson V KuskoRussiaAnna Fali PROPOSAL
Darci X CampainAustraliaAnna Fali QUALIFIED
Aika Y FollerGermanyAnna Fali PROPOSAL
Jefferson T GarufiAustraliaIoni Bowcher QUALIFIED
Aika F KuskoUnited KingdomIvan Magalhaes QUALIFIED
Silvio A MorascaCanadaAmy Elsner PROPOSAL
Costa J PerinGermanyAmy Elsner NEGOTIATION
Tony M BowleyCanadaStephen Shaw NEW
Smith C KuskoJapanIoni Bowcher UNQUALIFIED
Jones H RimSpainOnyama Limba UNQUALIFIED
Isabel A TollnerIndiaAmy Elsner UNQUALIFIED
Adams E WieserItalyXuxue Feng NEGOTIATION
Darci B GarufiJapanBernardo Dominic PROPOSAL
Leja P OldroydUnited KingdomXuxue Feng UNQUALIFIED
Smith S NickaFranceIvan Magalhaes RENEWAL
Kaitlin B KolmetzAustraliaIoni Bowcher UNQUALIFIED
Nicolas Q CaudyCanadaElwin Sharvill QUALIFIED
Mayumi B MarrierBrazilIvan Magalhaes RENEWAL
Chavez M ChuiSpainIvan Magalhaes UNQUALIFIED
Faith F CaldareraFranceBernardo Dominic RENEWAL
Ivar E RimJapanBernardo Dominic QUALIFIED
Nicolas V OstroskyAustraliaElwin Sharvill QUALIFIED
Deepesh R FigeroaItalyAnna Fali RENEWAL
Salvatore E PoquetteSpainElwin Sharvill QUALIFIED
Costa A CaldareraBrazilIvan Magalhaes PROPOSAL
Adams R MarrierJapanXuxue Feng QUALIFIED
Sinclair S NickaUnited KingdomOnyama Limba RENEWAL
Stacey T BologniaBrazilAmy Elsner NEW
Jeanfrancois U FerenczArgentinaXuxue Feng RENEWAL
Jones O SlusarskiFranceStephen Shaw NEW
Smith V KuskoItalyXuxue Feng NEW
Maria B FlosiIndiaOnyama Limba QUALIFIED
Murillo Z GarufiArgentinaBernardo Dominic PROPOSAL
Frozen Columns
Name
Misaki G Paprocki
Clifford A Waycott
Leon A Chui
Cody R Darakjy
Maisha C Campain
David D Dilliard
Darci K Saylors
Cody X Inouye
Antonio G Bolognia
Wickens R Caudy
Ashley P Garufi
Jones S Sergi
Aditya E Flosi
Ricardo Q Kolmetz
Francesco G Malet
Clifford G Malet
Aika V Oldroyd
Chavez K Garufi
Aika W Campain
Tony L Flosi
Emily H Slusarski
Arvin J Marrier
James C Ruta
Darci I Iturbide
Greenwood H Sergi
Costa M Inouye
Jefferson R Rulapaugh
Emily O Glick
Sinclair J Whobrey
Misaki S Gaucho
Mujtaba R Bowley
Ricardo D Ruta
Salvatore T Venere
Greenwood F Caudy
Costa Z Caldarera
Greenwood K Marrier
Octavia E Gaucho
Jones K Kusko
Juan P Rulapaugh
Izzy X Rim
Aruna N Stenseth
Claire U Caudy
Alejandro Y Gillian
Julie V Wieser
Juan U Vocelka
Tony L Schemmer
Nicolas Q Poquette
Ashley J Paprocki
Wickens Y Vocelka
Tony D Wieser
IdCountryDate
1000United Kingdom2026-07-14
1001Russia2026-07-24
1002Canada2026-07-17
1003Italy2026-07-21
1004France2026-08-01
1005Russia2026-07-17
1006Japan2026-07-28
1007Australia2026-07-21
1008United Kingdom2026-07-24
1009Germany2026-07-25
1010Argentina2026-08-03
1011Argentina2026-08-01
1012United Kingdom2026-07-14
1013Russia2026-08-11
1014Spain2026-07-21
1015Spain2026-08-10
1016Russia2026-07-16
1017Argentina2026-07-26
1018Japan2026-08-05
1019India2026-08-09
1020Germany2026-07-28
1021India2026-07-15
1022Canada2026-07-28
1023Spain2026-08-06
1024Brazil2026-07-20
1025Russia2026-07-17
1026Australia2026-07-17
1027Germany2026-08-06
1028Argentina2026-07-31
1029Italy2026-07-22
1030Canada2026-07-25
1031Brazil2026-08-01
1032Japan2026-07-29
1033Spain2026-07-20
1034Russia2026-07-21
1035Canada2026-08-01
1036Australia2026-07-23
1037India2026-08-11
1038Argentina2026-07-31
1039Italy2026-07-31
1040Italy2026-07-29
1041Germany2026-07-13
1042France2026-07-30
1043Germany2026-07-13
1044India2026-07-16
1045Russia2026-07-17
1046Germany2026-07-31
1047Spain2026-07-27
1048Canada2026-07-22
1049Spain2026-07-28

On-Demand Data

NameIdCountryDate
Mujtaba N Schemmer1000United Kingdom2026-07-20
Misaki U Chui1001Australia2026-07-29
Jeanfrancois P Amigon1002Japan2026-08-05
Aditya B Marrier1003Brazil2026-07-29
Alejandro R Wieser1004Australia2026-08-03
Octavia X Maclead1005India2026-07-27
Darci I Butt1006Australia2026-08-05
Francesco G Briddick1007Italy2026-08-06
Murillo U Poquette1008Italy2026-08-02
Chavez S Bowley1009Australia2026-08-05
Leja B Gaucho1010Canada2026-07-27
Mujtaba Y Iturbide1011Germany2026-08-11
Kadeem Y Bolognia1012Australia2026-07-18
Faith N Gillian1013France2026-07-23
Ashley Z Caudy1014Germany2026-07-26
Murillo E Gillian1015France2026-07-29
Salvatore V Sergi1016Canada2026-08-04
Greenwood Q Kolmetz1017Australia2026-07-22
Costa B Shinko1018Canada2026-08-11
Johnson B Iturbide1019France2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy I StensethGermanyBernardo Dominic NEW
Wickens M FlosiIndiaOnyama Limba UNQUALIFIED
Deepesh A DarakjyGermanyXuxue Feng NEW
Julie R ButtJapanElwin Sharvill PROPOSAL
Leon P MarrierFranceIoni Bowcher NEGOTIATION
Nicolas T BowleyUnited KingdomAmy Elsner QUALIFIED
Cody G StockhamItalyBernardo Dominic NEW
Misaki P GillianAustraliaAmy Elsner NEW
Jefferson N FigeroaUnited KingdomStephen Shaw NEW
Leja C NickaRussiaIoni Bowcher RENEWAL
Alejandro U MacleadCanadaAsiya Javayant PROPOSAL
Emily D ChuiGermanyIoni Bowcher NEGOTIATION
Silvio N MacleadBrazilAnna Fali RENEWAL
Kaitlin S StockhamUnited KingdomBernardo Dominic QUALIFIED
James L CaldareraItalyXuxue Feng QUALIFIED
Salvatore Q ChuiCanadaElwin Sharvill RENEWAL
Ivar P SlusarskiGermanyBernardo Dominic NEGOTIATION
Sinclair U ButtAustraliaBernardo Dominic NEGOTIATION
Ricardo S PaprockiBrazilOnyama Limba RENEWAL
Emily T MacleadSpainAnna Fali RENEWAL
Munro B DarakjyAustraliaIoni Bowcher RENEWAL
Aika N WieserItalyXuxue Feng QUALIFIED
Emily R FollerCanadaAsiya Javayant RENEWAL
Johnson M TollnerRussiaStephen Shaw RENEWAL
Silvio D BriddickIndiaAsiya Javayant QUALIFIED
Leon E MaletAustraliaAsiya Javayant UNQUALIFIED
Octavia N NestleSpainStephen Shaw NEGOTIATION
Morrow O SlusarskiCanadaStephen Shaw PROPOSAL
Stacey N StensethIndiaXuxue Feng RENEWAL
Clifford V OstroskyUnited KingdomStephen Shaw NEGOTIATION
Juan K RutaGermanyOnyama Limba QUALIFIED
Mujtaba D StensethSpainXuxue Feng UNQUALIFIED
Morrow G MaletItalyStephen Shaw QUALIFIED
Leon V WhobreyArgentinaIoni Bowcher NEW
Mayumi B WhobreyCanadaXuxue Feng RENEWAL
Munro G WhobreyItalyAsiya Javayant RENEWAL
Darci C RutaBrazilXuxue Feng RENEWAL
Morrow F RimSpainAmy Elsner RENEWAL
Arvin O MorascaRussiaAnna Fali NEGOTIATION
Cody Z DilliardJapanStephen Shaw 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>