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
Wickens X AmigonArgentinaIoni Bowcher NEW
Leja D MacleadUnited KingdomElwin Sharvill NEW
Cody M FerenczAustraliaXuxue Feng UNQUALIFIED
Izzy E VocelkaFranceAnna Fali PROPOSAL
Faith D PoquetteAustraliaOnyama Limba PROPOSAL
Darci L SaylorsAustraliaIvan Magalhaes RENEWAL
Darci O BologniaJapanOnyama Limba UNQUALIFIED
Antonio Q ShinkoCanadaOnyama Limba RENEWAL
Jennifer B BowleyRussiaBernardo Dominic NEW
Greenwood N BowleyUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin W RulapaughGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois B RoysterArgentinaStephen Shaw QUALIFIED
James Y DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Tony A SchemmerCanadaOnyama Limba PROPOSAL
Julie C KuskoFranceIvan Magalhaes PROPOSAL
Mujtaba C PaprockiIndiaBernardo Dominic PROPOSAL
Isabel V PoquetteItalyIoni Bowcher UNQUALIFIED
Emily L ButtUnited KingdomAnna Fali PROPOSAL
Salvatore V IturbideGermanyIvan Magalhaes RENEWAL
Salvatore J WaycottJapanIoni Bowcher UNQUALIFIED
Aruna A WhobreyArgentinaOnyama Limba QUALIFIED
James K AmigonFranceElwin Sharvill QUALIFIED
Izzy W AlbaresRussiaBernardo Dominic NEGOTIATION
Tony Q GillianFranceAmy Elsner PROPOSAL
Smith R DarakjySpainXuxue Feng UNQUALIFIED
James T WieserItalyElwin Sharvill NEGOTIATION
Aditya O KuskoSpainBernardo Dominic QUALIFIED
Aditya V ButtItalyAmy Elsner UNQUALIFIED
Silvio G MorascaCanadaAsiya Javayant UNQUALIFIED
Julie U MorascaRussiaIoni Bowcher NEW
Johnson U SlusarskiCanadaAsiya Javayant NEGOTIATION
Greenwood U CampainBrazilStephen Shaw QUALIFIED
Clifford G BowleySpainAsiya Javayant RENEWAL
Darci P FerenczAustraliaOnyama Limba QUALIFIED
Juan Y WhobreyGermanyStephen Shaw UNQUALIFIED
Izzy U IturbideFranceIoni Bowcher NEGOTIATION
Maria U GillianCanadaIoni Bowcher RENEWAL
Kadeem T MaletArgentinaBernardo Dominic QUALIFIED
Octavia N PaprockiItalyAnna Fali NEW
Chavez M FlosiRussiaIoni Bowcher NEW
Chavez D KuskoAustraliaElwin Sharvill UNQUALIFIED
Isabel A BowleyGermanyOnyama Limba NEGOTIATION
Ricardo T SchemmerBrazilStephen Shaw UNQUALIFIED
Arvin Z VenereUnited KingdomIoni Bowcher UNQUALIFIED
Chavez C FigeroaArgentinaOnyama Limba NEW
Ivar T BriddickJapanElwin Sharvill QUALIFIED
Emily R DoeJapanElwin Sharvill QUALIFIED
Ricardo X ButtFranceXuxue Feng UNQUALIFIED
Izzy Y WieserIndiaAsiya Javayant NEGOTIATION
Deepesh Y GauchoItalyIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson D DarakjyRussiaAmy Elsner RENEWAL
Octavia M VocelkaSpainStephen Shaw NEW
Leon G AmigonJapanIoni Bowcher NEGOTIATION
Costa G FlosiIndiaAmy Elsner NEGOTIATION
Tony M WieserCanadaAnna Fali QUALIFIED
Johnson R DoeItalyAsiya Javayant RENEWAL
David J GarufiUnited KingdomElwin Sharvill NEW
Rodrigues N RulapaughRussiaAnna Fali NEW
Murillo Z RoysterUnited KingdomElwin Sharvill NEGOTIATION
Tony N OstroskyItalyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi E ChuiArgentina2026-07-30Benton, John B Jr QUALIFIED12Bernardo Dominic
1001Ricardo X IturbideGermany2026-07-09Dorl, James J Esq NEGOTIATION84Ivan Magalhaes
1002Isabel U AmigonCanada2026-07-21Benton, John B Jr UNQUALIFIED18Xuxue Feng
1003Faith B BowleyIndia2026-07-03Feltz Printing Service QUALIFIED90Bernardo Dominic
1004Aruna Q PerinArgentina2026-07-10Buckley Miller Wright RENEWAL40Elwin Sharvill
1005Isabel E CaudyItaly2026-07-19Printing Dimensions NEW22Amy Elsner
1006Antonio N VenereRussia2026-07-24Chemel, James L Cpa QUALIFIED67Elwin Sharvill
1007Munro G GauchoGermany2026-07-30Morlong Associates RENEWAL62Asiya Javayant
1008Jones Z RoysterCanada2026-07-08Chanay, Jeffrey A Esq NEGOTIATION49Amy Elsner
1009Tony D MorascaCanada2026-07-15Benton, John B Jr PROPOSAL38Amy Elsner
1010Jefferson A NestleCanada2026-07-09Feiner Bros PROPOSAL41Elwin Sharvill
1011Ivar G FerenczArgentina2026-07-08Feltz Printing Service RENEWAL90Asiya Javayant
1012Leon M GlickItaly2026-07-25King, Christopher A Esq QUALIFIED19Amy Elsner
1013Claire C SergiBrazil2026-07-09Chemel, James L Cpa PROPOSAL44Anna Fali
1014Kadeem O VocelkaAustralia2026-07-19Truhlar And Truhlar Attys RENEWAL26Elwin Sharvill
1015Jeanfrancois C BriddickBrazil2026-07-16Chapman, Ross E Esq RENEWAL36Stephen Shaw
1016Mujtaba W InouyeGermany2026-07-06Commercial Press PROPOSAL11Asiya Javayant
1017Deepesh M ChuiJapan2026-07-01Printing Dimensions RENEWAL69Ioni Bowcher
1018Clifford L DilliardSpain2026-07-19Dorl, James J Esq UNQUALIFIED20Onyama Limba
1019Leja J RoysterFrance2026-07-27Dorl, James J Esq UNQUALIFIED89Asiya Javayant
1020Rodrigues S CampainFrance2026-07-02Chemel, James L Cpa RENEWAL21Ioni Bowcher
1021Aika Y GauchoIndia2026-07-07Morlong Associates RENEWAL83Stephen Shaw
1022Izzy S BologniaBrazil2026-07-16Feltz Printing Service PROPOSAL57Anna Fali
1023James J MarrierIndia2026-07-17Rangoni Of Florence NEW7Amy Elsner
1024Francesco R CampainJapan2026-07-01Chemel, James L Cpa UNQUALIFIED69Bernardo Dominic
1025Mujtaba J FollerAustralia2026-07-06King, Christopher A Esq QUALIFIED65Amy Elsner
1026Mujtaba A CaudyUnited Kingdom2026-07-06Feiner Bros UNQUALIFIED23Anna Fali
1027Darci U MaletJapan2026-07-25Chanay, Jeffrey A Esq NEW95Stephen Shaw
1028Maria E RutaSpain2026-07-04Rousseaux, Michael Esq UNQUALIFIED5Asiya Javayant
1029Greenwood R NestleBrazil2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED68Amy Elsner
1030Costa C WhobreyJapan2026-07-02Rangoni Of Florence NEGOTIATION46Amy Elsner
1031Jeanfrancois C GlickUnited Kingdom2026-07-25Chapman, Ross E Esq PROPOSAL26Xuxue Feng
1032Isabel M DilliardJapan2026-07-01Benton, John B Jr QUALIFIED97Elwin Sharvill
1033Morrow J FollerUnited Kingdom2026-07-05Feltz Printing Service PROPOSAL64Anna Fali
1034Smith T InouyeItaly2026-07-01Chanay, Jeffrey A Esq RENEWAL87Elwin Sharvill
1035Morrow Z GillianRussia2026-07-10Chemel, James L Cpa NEW46Stephen Shaw
1036Izzy M PerinIndia2026-07-30Truhlar And Truhlar Attys RENEWAL17Elwin Sharvill
1037Octavia I NickaBrazil2026-07-23Rousseaux, Michael Esq NEGOTIATION97Bernardo Dominic
1038Aditya O SlusarskiItaly2026-07-01Feltz Printing Service RENEWAL17Stephen Shaw
1039Greenwood H FlosiIndia2026-07-26Printing Dimensions NEW85Amy Elsner
1040Ricardo I CampainSpain2026-07-04Chapman, Ross E Esq UNQUALIFIED87Asiya Javayant
1041Ivar O InouyeBrazil2026-07-28Feiner Bros PROPOSAL98Xuxue Feng
1042Izzy D CaldareraItaly2026-07-16Printing Dimensions NEGOTIATION51Xuxue Feng
1043Octavia T SergiFrance2026-07-08Chemel, James L Cpa PROPOSAL52Amy Elsner
1044Mujtaba Y FollerBrazil2026-07-22Chanay, Jeffrey A Esq QUALIFIED17Anna Fali
1045Julie N SaylorsUnited Kingdom2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED11Ioni Bowcher
1046Maria E MorascaGermany2026-07-07Feltz Printing Service NEGOTIATION92Ivan Magalhaes
1047Costa Z SergiAustralia2026-07-27Chapman, Ross E Esq NEW3Xuxue Feng
1048Leja L SaylorsIndia2026-07-13Dorl, James J Esq NEW45Elwin Sharvill
1049Wickens G BriddickGermany2026-07-19Benton, John B Jr PROPOSAL25Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy S SergiJapanStephen Shaw NEGOTIATION
Isabel P OldroydCanadaIvan Magalhaes PROPOSAL
Wickens H RulapaughAustraliaBernardo Dominic NEGOTIATION
Tony Z DoeJapanElwin Sharvill QUALIFIED
Arvin D RutaFranceIoni Bowcher QUALIFIED
Julie D MacleadBrazilXuxue Feng NEW
Alejandro K CaldareraJapanAmy Elsner NEGOTIATION
Chavez M OldroydJapanOnyama Limba NEW
James B MaletArgentinaIvan Magalhaes NEGOTIATION
Rodrigues M RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Misaki O CaudyFranceIoni Bowcher NEGOTIATION
Rodrigues A FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Arvin Q BriddickSpainAmy Elsner RENEWAL
Aditya V GarufiSpainIvan Magalhaes QUALIFIED
James H VocelkaSpainIvan Magalhaes UNQUALIFIED
James C RimItalyAnna Fali QUALIFIED
Maria V RimGermanyAmy Elsner QUALIFIED
Aruna H RulapaughBrazilAmy Elsner QUALIFIED
Faith L RoysterBrazilAnna Fali PROPOSAL
Sinclair K SergiJapanIoni Bowcher RENEWAL
Tony Y FlosiAustraliaAsiya Javayant QUALIFIED
Rodrigues V VenereJapanAsiya Javayant QUALIFIED
Leja Z GauchoCanadaElwin Sharvill NEW
David G GillianArgentinaAnna Fali RENEWAL
Smith U OldroydAustraliaElwin Sharvill RENEWAL
Johnson S RutaUnited KingdomIoni Bowcher RENEWAL
Salvatore Y MarrierJapanXuxue Feng RENEWAL
Wickens N BologniaArgentinaElwin Sharvill NEW
Izzy D FigeroaAustraliaStephen Shaw PROPOSAL
Aditya A OldroydUnited KingdomElwin Sharvill NEGOTIATION
Izzy U SergiGermanyStephen Shaw PROPOSAL
Tony B AmigonCanadaAnna Fali QUALIFIED
Adams Z MaletIndiaIoni Bowcher PROPOSAL
Maria N AlbaresUnited KingdomAsiya Javayant RENEWAL
Arvin O PaprockiUnited KingdomAmy Elsner PROPOSAL
Rodrigues E CampainJapanIoni Bowcher UNQUALIFIED
Deepesh K CaldareraJapanXuxue Feng RENEWAL
Ivar W SaylorsCanadaStephen Shaw UNQUALIFIED
Julie P KuskoUnited KingdomAmy Elsner RENEWAL
Ivar J RutaGermanyOnyama Limba PROPOSAL
Sinclair T FollerJapanStephen Shaw UNQUALIFIED
Maisha N MaletArgentinaBernardo Dominic NEGOTIATION
Claire N BologniaFranceBernardo Dominic NEW
Munro I GauchoJapanBernardo Dominic NEGOTIATION
Maria C TollnerIndiaAsiya Javayant QUALIFIED
Sinclair D BriddickFranceAmy Elsner PROPOSAL
Ashley R GlickBrazilAnna Fali NEGOTIATION
Leja Q OstroskyJapanAsiya Javayant RENEWAL
Aika R GillianGermanyStephen Shaw UNQUALIFIED
Izzy T WhobreyFranceAmy Elsner NEW
Frozen Columns
Name
Tony S Darakjy
Leja G Tollner
Jeanfrancois G Marrier
Salvatore L Schemmer
Ashley O Venere
Aruna Z Ruta
Antonio D Dilliard
Munro Y Schemmer
Silvio H Sergi
Ashley B Stockham
Mayumi G Kusko
Emily U Whobrey
Johnson Y Tollner
Emily A Glick
Juan E Waycott
Mujtaba E Amigon
Juan H Campain
Leja P Stenseth
Ivar H Iturbide
Juan I Poquette
Juan L Marrier
Aika U Schemmer
Adams T Marrier
Jeanfrancois B Poquette
Nicolas L Flosi
Jefferson X Tollner
Clifford M Poquette
James I Glick
Antonio W Wieser
Ricardo O Poquette
Emily Y Campain
Darci M Rim
Aika N Ferencz
Mayumi E Stenseth
Clifford I Glick
Faith A Foller
Stacey H Royster
Jefferson F Ferencz
Maisha I Nestle
Sinclair H Schemmer
Cody P Ferencz
Jones C Figeroa
Tony R Venere
Octavia P Bowley
Nicolas P Gillian
Morrow K Saylors
Ashley P Royster
Salvatore T Bolognia
Murillo S Gillian
Greenwood J Poquette
IdCountryDate
1000India2026-07-22
1001Russia2026-07-05
1002Canada2026-07-10
1003Spain2026-07-30
1004India2026-07-24
1005France2026-07-01
1006Brazil2026-07-03
1007Germany2026-07-17
1008Argentina2026-07-19
1009Canada2026-07-12
1010Russia2026-07-14
1011Spain2026-07-15
1012Russia2026-07-23
1013Italy2026-07-15
1014India2026-07-28
1015France2026-07-08
1016Canada2026-07-02
1017Spain2026-07-08
1018India2026-07-01
1019Spain2026-07-10
1020Japan2026-07-23
1021Australia2026-07-24
1022Brazil2026-07-23
1023Japan2026-07-16
1024United Kingdom2026-07-05
1025Japan2026-07-16
1026Japan2026-07-24
1027India2026-07-25
1028Spain2026-07-23
1029Germany2026-07-27
1030United Kingdom2026-07-01
1031Canada2026-07-23
1032Canada2026-07-20
1033United Kingdom2026-07-27
1034Brazil2026-07-14
1035Spain2026-07-09
1036France2026-07-28
1037India2026-07-05
1038Australia2026-07-27
1039Russia2026-07-14
1040United Kingdom2026-07-29
1041Russia2026-07-14
1042Argentina2026-07-28
1043Japan2026-07-02
1044Germany2026-07-29
1045Spain2026-07-18
1046Australia2026-07-21
1047Spain2026-07-08
1048Spain2026-07-10
1049United Kingdom2026-07-19

On-Demand Data

NameIdCountryDate
Alejandro C Marrier1000Spain2026-07-03
Aditya N Whobrey1001Argentina2026-07-14
Rodrigues I Morasca1002Germany2026-07-04
Alejandro O Oldroyd1003Australia2026-07-17
Claire B Ostrosky1004France2026-07-11
Mujtaba W Inouye1005Russia2026-07-30
Isabel H Saylors1006Brazil2026-07-24
Darci E Malet1007Japan2026-07-06
Leon C Oldroyd1008Russia2026-07-16
Antonio T Briddick1009Germany2026-07-25
Morrow W Nicka1010Germany2026-07-11
Arvin C Ostrosky1011Canada2026-07-18
Rodrigues Q Malet1012Japan2026-07-21
Jones Q Gillian1013India2026-07-22
Chavez T Amigon1014United Kingdom2026-07-02
Claire R Figeroa1015Canada2026-07-22
Kadeem G Ostrosky1016Japan2026-07-15
Kaitlin Q Inouye1017Russia2026-07-04
Smith P Butt1018Italy2026-07-09
Stacey W Marrier1019France2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey D FigeroaGermanyAsiya Javayant NEW
Aruna H RulapaughIndiaStephen Shaw QUALIFIED
Smith G WhobreyIndiaAmy Elsner UNQUALIFIED
Faith Z PaprockiAustraliaElwin Sharvill QUALIFIED
Nicolas O KolmetzIndiaIvan Magalhaes UNQUALIFIED
Julie G DoeBrazilIoni Bowcher UNQUALIFIED
Maria H KolmetzCanadaAsiya Javayant RENEWAL
Nicolas X AlbaresFranceIoni Bowcher PROPOSAL
Aditya W AmigonUnited KingdomStephen Shaw UNQUALIFIED
Wickens L ShinkoGermanyAmy Elsner NEW
Darci O AmigonAustraliaAsiya Javayant RENEWAL
Isabel F DoeRussiaIvan Magalhaes PROPOSAL
Kaitlin E MorascaAustraliaBernardo Dominic NEW
Chavez U ShinkoFranceStephen Shaw NEW
Julie Q GauchoArgentinaAsiya Javayant QUALIFIED
Chavez P AmigonItalyAmy Elsner QUALIFIED
Cody F FerenczGermanyStephen Shaw NEGOTIATION
Izzy L FollerSpainBernardo Dominic UNQUALIFIED
David T SaylorsGermanyXuxue Feng UNQUALIFIED
Costa Y InouyeIndiaIvan Magalhaes UNQUALIFIED
Ricardo T BowleyItalyIvan Magalhaes RENEWAL
Nicolas N BriddickArgentinaAnna Fali NEGOTIATION
Ricardo N RutaRussiaBernardo Dominic UNQUALIFIED
Jennifer N RimItalyAmy Elsner NEW
Darci Z AmigonBrazilBernardo Dominic QUALIFIED
Chavez K GlickIndiaIoni Bowcher PROPOSAL
Kadeem Z VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Ivar S SlusarskiIndiaOnyama Limba NEW
Emily X GillianSpainIvan Magalhaes UNQUALIFIED
Jones T SergiCanadaStephen Shaw UNQUALIFIED
Kaitlin F FigeroaGermanyAsiya Javayant RENEWAL
Francesco G BowleyCanadaIoni Bowcher PROPOSAL
Munro Z SergiItalyAmy Elsner NEW
Nicolas U NickaArgentinaAmy Elsner NEW
Costa F BologniaFranceAmy Elsner UNQUALIFIED
Murillo N RoysterRussiaElwin Sharvill NEGOTIATION
Adams L RimGermanyOnyama Limba UNQUALIFIED
Morrow G NestleUnited KingdomBernardo Dominic NEGOTIATION
Izzy P GarufiIndiaBernardo Dominic QUALIFIED
Leon T FlosiSpainXuxue Feng QUALIFIED

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