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
Deepesh U MorascaArgentinaAmy Elsner PROPOSAL
Aruna M NestleArgentinaIoni Bowcher NEW
Alejandro M GillianGermanyAnna Fali NEW
Julie J PaprockiArgentinaXuxue Feng UNQUALIFIED
Munro H ChuiBrazilAnna Fali QUALIFIED
Ivar T FigeroaUnited KingdomAsiya Javayant QUALIFIED
Sinclair W MorascaBrazilStephen Shaw NEW
Darci T MaletBrazilAmy Elsner NEGOTIATION
Wickens V PerinSpainAsiya Javayant RENEWAL
Isabel E ButtItalyStephen Shaw NEW
Stacey J ShinkoArgentinaElwin Sharvill UNQUALIFIED
Leon G CaudyGermanyElwin Sharvill RENEWAL
Salvatore N WhobreySpainOnyama Limba UNQUALIFIED
Leon M BologniaJapanAnna Fali RENEWAL
David A KolmetzGermanyIvan Magalhaes NEGOTIATION
Izzy G KolmetzBrazilXuxue Feng UNQUALIFIED
Ricardo D VenereIndiaStephen Shaw UNQUALIFIED
Julie Q CampainJapanBernardo Dominic NEGOTIATION
Rodrigues O ShinkoRussiaXuxue Feng PROPOSAL
Johnson O RulapaughBrazilIoni Bowcher QUALIFIED
Darci V SchemmerJapanAnna Fali NEW
Ashley R FigeroaJapanBernardo Dominic NEGOTIATION
Mujtaba D GarufiJapanAnna Fali NEW
Ricardo B FigeroaAustraliaAsiya Javayant NEGOTIATION
Jefferson I RoysterRussiaElwin Sharvill UNQUALIFIED
Julie Z WhobreyCanadaXuxue Feng UNQUALIFIED
Greenwood C RoysterGermanyOnyama Limba NEGOTIATION
Juan B CampainUnited KingdomXuxue Feng QUALIFIED
Aruna L KuskoJapanBernardo Dominic NEW
Emily X RulapaughAustraliaXuxue Feng PROPOSAL
Mujtaba D ChuiGermanyAmy Elsner RENEWAL
Adams O DoeRussiaIvan Magalhaes NEW
Darci Y PoquetteCanadaStephen Shaw RENEWAL
Stacey O RimIndiaIoni Bowcher QUALIFIED
Ivar F WieserSpainIoni Bowcher QUALIFIED
Cody U GarufiItalyIvan Magalhaes NEW
Ashley N InouyeGermanyBernardo Dominic UNQUALIFIED
Jones F DilliardArgentinaAnna Fali QUALIFIED
Jeanfrancois S CaldareraBrazilXuxue Feng PROPOSAL
Leon S WaycottGermanyXuxue Feng NEW
Greenwood R WaycottIndiaBernardo Dominic RENEWAL
Munro K FerenczItalyAmy Elsner UNQUALIFIED
Tony C ChuiCanadaElwin Sharvill PROPOSAL
Silvio O RulapaughBrazilAsiya Javayant NEW
Ivar V WhobreyBrazilAnna Fali NEGOTIATION
Jefferson T StensethJapanAmy Elsner QUALIFIED
Cody N WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Leja G SaylorsIndiaAmy Elsner NEW
Jefferson V KuskoArgentinaStephen Shaw NEGOTIATION
Aruna W GarufiSpainStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith Y FerenczIndiaOnyama Limba NEW
Murillo N BriddickJapanElwin Sharvill NEGOTIATION
Jeanfrancois C FerenczGermanyBernardo Dominic QUALIFIED
Leja K AlbaresIndiaElwin Sharvill NEGOTIATION
Deepesh D CaudyItalyXuxue Feng UNQUALIFIED
Aika E KuskoAustraliaIvan Magalhaes UNQUALIFIED
Leon C ChuiAustraliaXuxue Feng PROPOSAL
Alejandro R RoysterBrazilAnna Fali UNQUALIFIED
Aika W SchemmerAustraliaXuxue Feng PROPOSAL
Greenwood G PerinArgentinaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio L NickaRussia2026-08-08Commercial Press QUALIFIED96Stephen Shaw
1001Aika X VocelkaFrance2026-07-19Printing Dimensions QUALIFIED37Ioni Bowcher
1002Maisha E ButtBrazil2026-07-15Chapman, Ross E Esq UNQUALIFIED44Ivan Magalhaes
1003Leja W WhobreyRussia2026-07-15Feiner Bros RENEWAL54Amy Elsner
1004Deepesh T RulapaughCanada2026-07-19Feiner Bros RENEWAL47Onyama Limba
1005Jefferson K GlickGermany2026-07-23Chemel, James L Cpa NEGOTIATION42Asiya Javayant
1006Rodrigues Y GlickIndia2026-08-03Rousseaux, Michael Esq QUALIFIED33Xuxue Feng
1007Greenwood D RimCanada2026-07-15King, Christopher A Esq NEGOTIATION27Ioni Bowcher
1008Antonio L MacleadFrance2026-07-27Buckley Miller Wright NEGOTIATION89Bernardo Dominic
1009Arvin Q TollnerRussia2026-08-04Printing Dimensions PROPOSAL48Bernardo Dominic
1010Nicolas X KolmetzGermany2026-07-16Commercial Press PROPOSAL48Xuxue Feng
1011Kadeem N GarufiSpain2026-08-01Feiner Bros UNQUALIFIED35Asiya Javayant
1012Misaki P SchemmerUnited Kingdom2026-07-17Chanay, Jeffrey A Esq NEGOTIATION55Bernardo Dominic
1013Jennifer Z StockhamArgentina2026-07-14King, Christopher A Esq UNQUALIFIED95Ivan Magalhaes
1014Maria O OstroskyItaly2026-07-14Rousseaux, Michael Esq QUALIFIED63Asiya Javayant
1015Costa V SchemmerCanada2026-08-05Buckley Miller Wright NEGOTIATION66Ivan Magalhaes
1016Mujtaba H BriddickArgentina2026-08-01Dorl, James J Esq NEGOTIATION15Amy Elsner
1017Mujtaba K DoeBrazil2026-07-22Rousseaux, Michael Esq UNQUALIFIED68Onyama Limba
1018Deepesh E GauchoGermany2026-07-26Morlong Associates PROPOSAL59Bernardo Dominic
1019Chavez H OstroskyGermany2026-07-12Morlong Associates NEW39Amy Elsner
1020Johnson V WaycottSpain2026-07-12Feiner Bros QUALIFIED10Onyama Limba
1021Maria Q MorascaArgentina2026-07-28Commercial Press UNQUALIFIED10Bernardo Dominic
1022Izzy C RimItaly2026-07-18Feiner Bros NEW90Stephen Shaw
1023Maria Q NickaGermany2026-07-27King, Christopher A Esq RENEWAL81Onyama Limba
1024David V AlbaresCanada2026-07-19Rangoni Of Florence UNQUALIFIED14Elwin Sharvill
1025Faith I SergiItaly2026-07-12Rangoni Of Florence PROPOSAL0Onyama Limba
1026Sinclair C InouyeRussia2026-07-12Morlong Associates QUALIFIED81Elwin Sharvill
1027Johnson W DarakjyIndia2026-07-31Buckley Miller Wright NEGOTIATION51Xuxue Feng
1028Salvatore Y KuskoIndia2026-08-04King, Christopher A Esq RENEWAL58Bernardo Dominic
1029Wickens L BriddickRussia2026-07-24Dorl, James J Esq RENEWAL6Ivan Magalhaes
1030Kadeem F ChuiGermany2026-07-28Chanay, Jeffrey A Esq PROPOSAL99Anna Fali
1031Alejandro Y CaldareraGermany2026-07-15Chapman, Ross E Esq NEGOTIATION2Ioni Bowcher
1032Silvio B SchemmerArgentina2026-07-23Benton, John B Jr PROPOSAL38Amy Elsner
1033Aruna G VenereSpain2026-08-06Benton, John B Jr NEW99Stephen Shaw
1034Wickens W MorascaUnited Kingdom2026-07-10Morlong Associates RENEWAL71Ioni Bowcher
1035Leon F BriddickBrazil2026-08-05Commercial Press PROPOSAL38Bernardo Dominic
1036Chavez A PoquetteCanada2026-07-17Chemel, James L Cpa PROPOSAL63Amy Elsner
1037Antonio D MacleadAustralia2026-07-13Commercial Press UNQUALIFIED71Anna Fali
1038Claire Y GarufiRussia2026-08-03Rousseaux, Michael Esq UNQUALIFIED88Bernardo Dominic
1039Faith U PerinRussia2026-07-29Chapman, Ross E Esq QUALIFIED93Ivan Magalhaes
1040Cody G KuskoIndia2026-07-23Printing Dimensions QUALIFIED24Onyama Limba
1041Johnson E MorascaCanada2026-08-02Rangoni Of Florence PROPOSAL65Ivan Magalhaes
1042Cody M AlbaresJapan2026-07-15Commercial Press QUALIFIED88Asiya Javayant
1043Stacey S PoquetteIndia2026-07-25King, Christopher A Esq RENEWAL38Xuxue Feng
1044Maisha U BowleyRussia2026-07-13Truhlar And Truhlar Attys UNQUALIFIED27Xuxue Feng
1045Munro T AmigonCanada2026-07-20King, Christopher A Esq RENEWAL77Bernardo Dominic
1046Smith B NickaBrazil2026-07-31Feiner Bros PROPOSAL91Ioni Bowcher
1047Ashley G RutaBrazil2026-08-05Morlong Associates RENEWAL85Onyama Limba
1048Octavia P FollerSpain2026-08-07Chanay, Jeffrey A Esq NEGOTIATION37Elwin Sharvill
1049Aditya L DarakjyGermany2026-07-28Morlong Associates NEW19Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily K MaletGermanyAmy Elsner NEGOTIATION
Costa E GauchoIndiaOnyama Limba PROPOSAL
Francesco Q BriddickBrazilStephen Shaw QUALIFIED
Kadeem C ChuiGermanyStephen Shaw PROPOSAL
Deepesh L GauchoAustraliaOnyama Limba QUALIFIED
Tony R MarrierRussiaXuxue Feng UNQUALIFIED
Morrow L NestleGermanyStephen Shaw UNQUALIFIED
Murillo C InouyeBrazilAmy Elsner PROPOSAL
Sinclair Q FlosiFranceIvan Magalhaes PROPOSAL
Cody S ShinkoIndiaXuxue Feng NEGOTIATION
Silvio M GlickJapanAnna Fali UNQUALIFIED
Isabel W MaletUnited KingdomIvan Magalhaes PROPOSAL
Stacey V PerinJapanStephen Shaw UNQUALIFIED
Greenwood V RoysterFranceIvan Magalhaes QUALIFIED
Salvatore U WaycottItalyIoni Bowcher RENEWAL
Ricardo Q StensethUnited KingdomIvan Magalhaes QUALIFIED
Stacey W ChuiBrazilAsiya Javayant QUALIFIED
Izzy Z AlbaresIndiaAsiya Javayant PROPOSAL
Stacey T BowleyArgentinaAnna Fali NEGOTIATION
Johnson Y IturbideSpainAmy Elsner PROPOSAL
Faith L SergiJapanStephen Shaw QUALIFIED
Kaitlin C RoysterUnited KingdomOnyama Limba NEW
Isabel C NickaJapanAmy Elsner UNQUALIFIED
Chavez X KolmetzArgentinaBernardo Dominic RENEWAL
Jones A RulapaughJapanAnna Fali NEW
Chavez C ButtBrazilBernardo Dominic NEGOTIATION
Clifford I RoysterIndiaElwin Sharvill PROPOSAL
Darci P DilliardGermanyAnna Fali QUALIFIED
Costa Z BowleyJapanAsiya Javayant NEW
Silvio N CaudyGermanyIoni Bowcher QUALIFIED
Jones P KolmetzCanadaAnna Fali PROPOSAL
Jennifer Y SergiArgentinaStephen Shaw RENEWAL
James X MaletGermanyElwin Sharvill UNQUALIFIED
Silvio Q MorascaAustraliaXuxue Feng RENEWAL
Ashley X RimSpainOnyama Limba NEW
Morrow Q RimJapanIvan Magalhaes RENEWAL
Silvio K VocelkaGermanyXuxue Feng NEW
Leja E KuskoJapanElwin Sharvill QUALIFIED
Aika M WieserFranceIvan Magalhaes NEGOTIATION
Aditya O MaletBrazilAnna Fali NEGOTIATION
Sinclair N MaletFranceAsiya Javayant QUALIFIED
Juan B WaycottFranceAsiya Javayant PROPOSAL
Cody Y SaylorsAustraliaAsiya Javayant QUALIFIED
Johnson D DarakjyArgentinaStephen Shaw PROPOSAL
Sinclair V GlickIndiaOnyama Limba NEGOTIATION
Jefferson E KolmetzFranceIoni Bowcher RENEWAL
Ashley K MacleadJapanBernardo Dominic NEW
Silvio X ShinkoRussiaElwin Sharvill UNQUALIFIED
Mayumi T MaletFranceAmy Elsner RENEWAL
Rodrigues C OstroskyItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
James M Garufi
Silvio G Ostrosky
Jones D Caudy
Salvatore U Chui
Deepesh F Sergi
Kaitlin C Waycott
Juan J Figeroa
Kaitlin N Caudy
Wickens D Vocelka
Nicolas W Saylors
James G Slusarski
Tony X Inouye
Izzy W Royster
Kadeem V Darakjy
Sinclair F Kolmetz
Aika Q Marrier
Jeanfrancois I Rim
Kadeem H Ruta
Jeanfrancois K Slusarski
Murillo J Whobrey
Julie G Ruta
Jeanfrancois I Ferencz
Rodrigues V Vocelka
Rodrigues H Ostrosky
Julie B Amigon
Stacey S Dilliard
Jefferson J Poquette
Juan N Nestle
Murillo U Morasca
Silvio X Gaucho
Sinclair W Royster
Clifford K Figeroa
Jefferson R Poquette
Kadeem I Nicka
Ivar P Schemmer
Leja B Gaucho
Cody P Chui
Julie A Rulapaugh
Darci S Kusko
Emily U Gaucho
Stacey N Foller
James I Malet
Maisha J Malet
Juan R Inouye
Greenwood O Nestle
David E Marrier
Aditya R Tollner
Jones U Ruta
Aika V Ruta
Claire R Stockham
IdCountryDate
1000Russia2026-07-17
1001Spain2026-08-07
1002Italy2026-07-14
1003France2026-08-02
1004United Kingdom2026-07-22
1005Canada2026-08-08
1006Germany2026-07-19
1007Brazil2026-07-25
1008Russia2026-08-01
1009Canada2026-07-26
1010Russia2026-08-05
1011India2026-07-17
1012Spain2026-07-30
1013Germany2026-07-12
1014Germany2026-07-20
1015France2026-07-10
1016Spain2026-07-24
1017Canada2026-07-17
1018Germany2026-07-12
1019Italy2026-08-07
1020India2026-07-18
1021United Kingdom2026-07-22
1022India2026-07-15
1023Spain2026-08-02
1024Australia2026-07-24
1025Argentina2026-08-05
1026Germany2026-07-29
1027France2026-08-03
1028Italy2026-08-02
1029Japan2026-07-22
1030Brazil2026-07-21
1031Australia2026-08-06
1032Brazil2026-07-30
1033Italy2026-07-22
1034Russia2026-08-05
1035United Kingdom2026-08-04
1036Australia2026-07-30
1037Germany2026-08-01
1038Argentina2026-07-16
1039Spain2026-08-05
1040Germany2026-07-28
1041Canada2026-08-01
1042Canada2026-07-27
1043Japan2026-08-01
1044Italy2026-07-15
1045Australia2026-08-05
1046Spain2026-07-28
1047Australia2026-08-06
1048Spain2026-08-03
1049India2026-07-31

On-Demand Data

NameIdCountryDate
Smith N Malet1000Italy2026-07-25
Arvin E Glick1001Japan2026-07-21
Emily Y Iturbide1002Germany2026-08-02
Kadeem N Doe1003Germany2026-07-25
Ricardo G Butt1004Germany2026-07-14
Mayumi Q Ruta1005Canada2026-07-26
Maisha E Doe1006Japan2026-08-03
Aruna X Venere1007France2026-07-28
Darci M Shinko1008Spain2026-07-24
Smith Q Ruta1009Spain2026-07-23
Kadeem X Darakjy1010Italy2026-07-21
Mayumi R Kolmetz1011Japan2026-08-08
Misaki V Caldarera1012Australia2026-07-13
Murillo M Morasca1013Spain2026-07-29
Rodrigues L Briddick1014Russia2026-08-08
Ashley W Vocelka1015Russia2026-07-17
James E Slusarski1016Germany2026-07-11
Alejandro H Glick1017United Kingdom2026-07-21
Munro P Kusko1018Brazil2026-07-21
Faith V Kusko1019United Kingdom2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba T KolmetzBrazilIoni Bowcher QUALIFIED
Misaki I NestleGermanyElwin Sharvill UNQUALIFIED
Mayumi T CaudyRussiaAsiya Javayant PROPOSAL
Julie G DarakjyGermanyAsiya Javayant RENEWAL
Leon O CaudyIndiaIvan Magalhaes NEGOTIATION
James G MarrierFranceAsiya Javayant PROPOSAL
Jefferson P MorascaItalyAnna Fali QUALIFIED
Chavez G ButtBrazilBernardo Dominic RENEWAL
Octavia F InouyeRussiaXuxue Feng NEW
Chavez W KolmetzRussiaIoni Bowcher PROPOSAL
Octavia O ChuiIndiaIoni Bowcher NEW
Jones W MarrierRussiaElwin Sharvill PROPOSAL
Ashley O NickaIndiaAsiya Javayant NEGOTIATION
Clifford W MaletSpainIoni Bowcher NEGOTIATION
Claire T DarakjyBrazilXuxue Feng NEGOTIATION
Kadeem J FigeroaCanadaXuxue Feng NEW
Johnson F IturbideRussiaOnyama Limba NEW
Maisha G WieserUnited KingdomBernardo Dominic QUALIFIED
Izzy A WhobreyArgentinaElwin Sharvill PROPOSAL
Alejandro Z PerinArgentinaStephen Shaw RENEWAL
Smith R RimCanadaIvan Magalhaes UNQUALIFIED
Murillo B RoysterGermanyIoni Bowcher PROPOSAL
Arvin M RulapaughRussiaBernardo Dominic NEGOTIATION
Octavia V DarakjyItalyElwin Sharvill NEGOTIATION
Rodrigues E WhobreySpainAmy Elsner UNQUALIFIED
James R TollnerCanadaAmy Elsner RENEWAL
Rodrigues J WaycottCanadaStephen Shaw PROPOSAL
Ivar V KolmetzRussiaIoni Bowcher NEW
Julie V MacleadJapanOnyama Limba QUALIFIED
Aika B PerinArgentinaStephen Shaw QUALIFIED
Aditya J MaletArgentinaBernardo Dominic RENEWAL
Alejandro M WieserIndiaElwin Sharvill NEGOTIATION
Juan E PoquetteFranceAnna Fali NEW
Emily G DilliardBrazilIoni Bowcher NEW
Darci O MaletItalyAsiya Javayant NEW
Aika Q CaldareraItalyBernardo Dominic RENEWAL
Julie G PerinGermanyStephen Shaw NEW
Leon S PoquetteJapanAnna Fali QUALIFIED
Nicolas M KolmetzJapanIoni Bowcher QUALIFIED
Darci E SaylorsArgentinaAmy Elsner 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>