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
Adams N BowleySpainAnna Fali QUALIFIED
Murillo L MacleadJapanOnyama Limba QUALIFIED
Jeanfrancois O DilliardFranceStephen Shaw PROPOSAL
Leja X NickaArgentinaElwin Sharvill NEGOTIATION
Misaki M AlbaresItalyAnna Fali PROPOSAL
Izzy W WaycottCanadaOnyama Limba NEGOTIATION
Nicolas Z BowleySpainElwin Sharvill QUALIFIED
Aika F StensethSpainAsiya Javayant NEW
Aruna W RulapaughIndiaAnna Fali NEW
Leon F BriddickGermanyXuxue Feng PROPOSAL
Jones S VenereRussiaIoni Bowcher RENEWAL
Tony S WieserItalyOnyama Limba NEW
Leon O OstroskyBrazilAsiya Javayant RENEWAL
Julie O AmigonUnited KingdomAmy Elsner NEGOTIATION
Ricardo I FigeroaCanadaAmy Elsner NEW
James B BologniaJapanStephen Shaw UNQUALIFIED
Leja H SlusarskiSpainElwin Sharvill RENEWAL
Alejandro T FerenczIndiaAnna Fali QUALIFIED
Kaitlin Y VocelkaSpainIoni Bowcher PROPOSAL
Claire V AlbaresBrazilBernardo Dominic RENEWAL
Costa B ShinkoCanadaAnna Fali NEGOTIATION
David V RimUnited KingdomAsiya Javayant RENEWAL
Wickens G SaylorsUnited KingdomAnna Fali UNQUALIFIED
Darci R MarrierAustraliaXuxue Feng QUALIFIED
Darci G MarrierArgentinaIoni Bowcher RENEWAL
Murillo P DarakjyBrazilBernardo Dominic NEW
Jeanfrancois V AmigonJapanXuxue Feng RENEWAL
Arvin N NestleAustraliaBernardo Dominic NEW
Isabel H FollerAustraliaIvan Magalhaes PROPOSAL
Maria R CaudyGermanyAsiya Javayant QUALIFIED
Rodrigues M MaletUnited KingdomElwin Sharvill PROPOSAL
Nicolas I PoquetteJapanElwin Sharvill PROPOSAL
Izzy I FollerFranceBernardo Dominic PROPOSAL
Morrow N FlosiFranceXuxue Feng PROPOSAL
Kaitlin B DilliardArgentinaOnyama Limba NEW
Rodrigues Y RoysterRussiaBernardo Dominic RENEWAL
Francesco U KolmetzFranceIvan Magalhaes RENEWAL
Leon Q GarufiCanadaAnna Fali UNQUALIFIED
Jones P FlosiArgentinaAmy Elsner PROPOSAL
Tony S DarakjySpainBernardo Dominic QUALIFIED
Deepesh X DarakjyAustraliaXuxue Feng NEW
Faith W ButtBrazilAmy Elsner NEGOTIATION
Faith Y RoysterItalyAnna Fali QUALIFIED
Maria J GarufiGermanyXuxue Feng QUALIFIED
Faith M AlbaresCanadaElwin Sharvill RENEWAL
Costa L SlusarskiRussiaIvan Magalhaes RENEWAL
Tony G StensethBrazilElwin Sharvill NEW
Jefferson C InouyeArgentinaAmy Elsner PROPOSAL
Costa K DilliardGermanyOnyama Limba NEGOTIATION
Aruna Z GlickBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar C PoquetteItalyAsiya Javayant QUALIFIED
Chavez I ChuiItalyElwin Sharvill QUALIFIED
Julie O PerinAustraliaStephen Shaw UNQUALIFIED
Costa N NestleIndiaIoni Bowcher QUALIFIED
Kadeem X FlosiIndiaIoni Bowcher QUALIFIED
Munro P MarrierCanadaIoni Bowcher QUALIFIED
Jennifer R AlbaresIndiaXuxue Feng PROPOSAL
Ivar U MacleadIndiaAnna Fali PROPOSAL
Ivar O NestleUnited KingdomBernardo Dominic QUALIFIED
Darci U FollerFranceStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith N GillianCanada2025-05-24Feiner Bros PROPOSAL48Elwin Sharvill
1001Jefferson D GarufiRussia2025-05-21Printing Dimensions PROPOSAL21Asiya Javayant
1002Ashley Z StensethAustralia2025-06-13Truhlar And Truhlar Attys UNQUALIFIED84Elwin Sharvill
1003Mayumi Y CaldareraSpain2025-06-09Benton, John B Jr UNQUALIFIED84Asiya Javayant
1004Wickens Z OldroydArgentina2025-05-29Printing Dimensions NEGOTIATION18Ioni Bowcher
1005Maria E ButtCanada2025-05-31Feltz Printing Service NEGOTIATION89Bernardo Dominic
1006Greenwood C RimAustralia2025-06-12Rangoni Of Florence UNQUALIFIED15Asiya Javayant
1007Kadeem G ShinkoArgentina2025-06-09Rangoni Of Florence RENEWAL83Onyama Limba
1008Isabel X KuskoAustralia2025-05-22Benton, John B Jr UNQUALIFIED44Amy Elsner
1009Morrow K StockhamSpain2025-06-07Buckley Miller Wright NEGOTIATION81Xuxue Feng
1010Mujtaba C CaldareraRussia2025-06-02Morlong Associates QUALIFIED53Bernardo Dominic
1011Aika E CampainJapan2025-05-26Morlong Associates NEGOTIATION58Anna Fali
1012Darci O WhobreyBrazil2025-05-31Truhlar And Truhlar Attys UNQUALIFIED86Anna Fali
1013Leja G BologniaGermany2025-05-24Truhlar And Truhlar Attys QUALIFIED21Anna Fali
1014Arvin Y BologniaAustralia2025-05-20Benton, John B Jr RENEWAL44Asiya Javayant
1015Jones A FigeroaUnited Kingdom2025-06-02Truhlar And Truhlar Attys NEW43Stephen Shaw
1016Mujtaba T KolmetzJapan2025-06-06Chemel, James L Cpa PROPOSAL27Anna Fali
1017Octavia K ChuiRussia2025-05-18Morlong Associates UNQUALIFIED48Asiya Javayant
1018Juan Y FerenczFrance2025-05-30Commercial Press PROPOSAL47Bernardo Dominic
1019Chavez D GillianBrazil2025-06-07Feltz Printing Service UNQUALIFIED55Asiya Javayant
1020Smith R RutaJapan2025-05-31Rangoni Of Florence RENEWAL98Asiya Javayant
1021Kadeem C GillianCanada2025-06-10Morlong Associates RENEWAL45Elwin Sharvill
1022Murillo O RutaGermany2025-06-14Commercial Press NEW8Amy Elsner
1023Jennifer O RoysterBrazil2025-05-24Buckley Miller Wright UNQUALIFIED98Amy Elsner
1024Chavez H StockhamCanada2025-06-14Printing Dimensions PROPOSAL62Bernardo Dominic
1025Maria F GauchoItaly2025-06-12Commercial Press QUALIFIED29Xuxue Feng
1026Greenwood Q ButtArgentina2025-06-11Morlong Associates NEW30Anna Fali
1027Wickens Y SergiRussia2025-06-15Rangoni Of Florence PROPOSAL11Bernardo Dominic
1028Izzy U VocelkaFrance2025-06-09Rousseaux, Michael Esq NEGOTIATION1Ioni Bowcher
1029Aditya M CaudyJapan2025-06-12Feiner Bros NEW69Bernardo Dominic
1030James G WaycottGermany2025-06-07Truhlar And Truhlar Attys PROPOSAL91Amy Elsner
1031Nicolas H IturbideArgentina2025-05-28Commercial Press UNQUALIFIED76Bernardo Dominic
1032Silvio M WhobreyBrazil2025-06-05King, Christopher A Esq RENEWAL9Onyama Limba
1033Deepesh W ButtCanada2025-06-03Chapman, Ross E Esq NEGOTIATION55Stephen Shaw
1034Antonio K TollnerSpain2025-06-16Chemel, James L Cpa UNQUALIFIED66Ivan Magalhaes
1035Mayumi Q FerenczSpain2025-05-21Commercial Press PROPOSAL25Xuxue Feng
1036Juan Q CampainAustralia2025-05-28Chanay, Jeffrey A Esq QUALIFIED97Asiya Javayant
1037Jeanfrancois B KuskoIndia2025-05-23Chapman, Ross E Esq PROPOSAL34Amy Elsner
1038Deepesh B DilliardRussia2025-05-25Printing Dimensions NEW47Amy Elsner
1039Leon Y GarufiUnited Kingdom2025-06-15Truhlar And Truhlar Attys NEW13Elwin Sharvill
1040Costa T OstroskyUnited Kingdom2025-06-15Feiner Bros RENEWAL17Anna Fali
1041Aika H FigeroaCanada2025-06-14Benton, John B Jr UNQUALIFIED19Asiya Javayant
1042Maisha A BriddickFrance2025-06-10Dorl, James J Esq PROPOSAL87Anna Fali
1043Emily U FigeroaCanada2025-06-02Chapman, Ross E Esq UNQUALIFIED93Onyama Limba
1044James V FollerSpain2025-06-06Rangoni Of Florence UNQUALIFIED48Amy Elsner
1045Arvin W FollerAustralia2025-05-18Rousseaux, Michael Esq QUALIFIED67Onyama Limba
1046Sinclair L GauchoJapan2025-06-04Feltz Printing Service RENEWAL18Asiya Javayant
1047Maisha S FollerSpain2025-05-18Commercial Press UNQUALIFIED3Asiya Javayant
1048Murillo N FerenczFrance2025-06-15Morlong Associates NEGOTIATION87Xuxue Feng
1049Adams D DilliardRussia2025-05-20Chapman, Ross E Esq NEGOTIATION6Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Salvatore B DilliardBrazilOnyama Limba UNQUALIFIED
Jennifer S BowleyFranceOnyama Limba RENEWAL
Claire N RoysterSpainAnna Fali UNQUALIFIED
Murillo B KuskoIndiaStephen Shaw QUALIFIED
Aditya Y OldroydFranceOnyama Limba NEW
Smith M RutaArgentinaAnna Fali NEGOTIATION
Francesco T PoquetteBrazilBernardo Dominic NEW
Arvin R VocelkaFranceIvan Magalhaes NEW
Claire B VenereUnited KingdomIvan Magalhaes NEGOTIATION
Leon M AlbaresUnited KingdomOnyama Limba NEW
Smith J PerinFranceAnna Fali QUALIFIED
Murillo Q DoeCanadaStephen Shaw UNQUALIFIED
Mayumi A DarakjyGermanyOnyama Limba UNQUALIFIED
Deepesh J ChuiSpainAmy Elsner NEW
Alejandro F StockhamFranceElwin Sharvill NEW
Kadeem X SergiSpainAsiya Javayant PROPOSAL
Adams O SaylorsArgentinaOnyama Limba NEGOTIATION
Mujtaba S RutaUnited KingdomElwin Sharvill NEW
Arvin M WhobreyItalyIoni Bowcher PROPOSAL
Rodrigues K OldroydCanadaAsiya Javayant NEGOTIATION
Alejandro J TollnerJapanAmy Elsner NEW
Kaitlin S OstroskyFranceElwin Sharvill UNQUALIFIED
Kaitlin Q ShinkoSpainAnna Fali PROPOSAL
Wickens K DilliardArgentinaAmy Elsner NEW
Arvin H GillianJapanIvan Magalhaes RENEWAL
Silvio T TollnerIndiaIoni Bowcher QUALIFIED
Julie X ShinkoArgentinaXuxue Feng QUALIFIED
Wickens W OldroydJapanXuxue Feng NEW
Clifford U OldroydGermanyAmy Elsner NEGOTIATION
Salvatore P ButtIndiaIoni Bowcher NEW
Arvin H KuskoItalyIvan Magalhaes PROPOSAL
Claire P OldroydJapanXuxue Feng NEGOTIATION
Faith G FlosiFranceBernardo Dominic UNQUALIFIED
Mujtaba O AmigonGermanyIoni Bowcher PROPOSAL
Juan G SergiGermanyAnna Fali UNQUALIFIED
Munro G KolmetzItalyAsiya Javayant NEW
Aruna G GauchoGermanyIvan Magalhaes QUALIFIED
Faith R VocelkaGermanyAmy Elsner QUALIFIED
Smith F RulapaughAustraliaIoni Bowcher NEGOTIATION
Isabel L FlosiBrazilAmy Elsner UNQUALIFIED
Smith W PerinItalyElwin Sharvill UNQUALIFIED
Mujtaba U GarufiBrazilBernardo Dominic PROPOSAL
Isabel I TollnerGermanyElwin Sharvill RENEWAL
Alejandro L StensethGermanyIoni Bowcher PROPOSAL
Morrow A OstroskyJapanIvan Magalhaes NEW
Wickens U TollnerSpainAnna Fali NEW
Francesco Y GauchoAustraliaOnyama Limba QUALIFIED
Clifford G GauchoSpainAsiya Javayant RENEWAL
Leon R WieserIndiaXuxue Feng PROPOSAL
Ashley I IturbideBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Smith S Ferencz
Greenwood D Venere
Silvio N Albares
Darci Q Butt
Faith F Gillian
Silvio W Nestle
Jeanfrancois D Waycott
Aditya F Schemmer
Aika B Stenseth
Ricardo F Vocelka
Salvatore Q Perin
Octavia X Dilliard
Clifford U Schemmer
Stacey G Paprocki
Morrow C Caudy
Jefferson T Marrier
Stacey L Dilliard
Sinclair D Sergi
Munro T Slusarski
Alejandro D Gaucho
Kadeem P Tollner
Darci R Iturbide
Rodrigues H Waycott
Francesco C Bowley
David A Poquette
Morrow D Waycott
Cody I Vocelka
Ricardo C Waycott
Leon L Wieser
Claire W Marrier
Johnson R Waycott
Sinclair E Saylors
Tony F Caldarera
Izzy P Briddick
Greenwood I Inouye
Aika E Kolmetz
Cody S Briddick
Salvatore K Malet
Rodrigues X Stockham
Stacey V Glick
Julie L Iturbide
Munro A Gillian
Kadeem B Butt
Morrow A Doe
Leja U Bolognia
Jeanfrancois P Dilliard
Claire H Nestle
Maisha M Rim
Aika Q Saylors
Ashley S Inouye
IdCountryDate
1000Brazil2025-06-07
1001Brazil2025-06-06
1002Spain2025-05-29
1003Germany2025-05-20
1004Russia2025-06-13
1005United Kingdom2025-06-12
1006Australia2025-05-23
1007India2025-06-01
1008Japan2025-05-25
1009India2025-05-31
1010Argentina2025-05-22
1011Spain2025-06-15
1012Spain2025-06-01
1013Japan2025-05-27
1014Japan2025-06-03
1015Argentina2025-06-16
1016Argentina2025-06-16
1017United Kingdom2025-06-16
1018Brazil2025-06-15
1019United Kingdom2025-06-16
1020Argentina2025-06-02
1021Brazil2025-06-16
1022Brazil2025-05-23
1023Spain2025-05-26
1024France2025-05-23
1025Canada2025-06-02
1026Argentina2025-06-16
1027Italy2025-06-12
1028Australia2025-05-23
1029Spain2025-06-09
1030Brazil2025-05-20
1031Russia2025-05-25
1032Russia2025-05-18
1033Spain2025-05-26
1034Germany2025-06-01
1035India2025-06-16
1036Australia2025-06-02
1037Brazil2025-05-23
1038France2025-06-06
1039Canada2025-06-04
1040India2025-06-05
1041Japan2025-06-13
1042Spain2025-05-25
1043Argentina2025-06-07
1044Canada2025-05-26
1045Russia2025-06-09
1046Germany2025-05-27
1047Spain2025-06-10
1048Russia2025-06-16
1049Argentina2025-06-11

On-Demand Data

NameIdCountryDate
Rodrigues X Morasca1000Germany2025-06-06
Mujtaba X Foller1001Argentina2025-05-22
Claire O Saylors1002United Kingdom2025-06-15
Maisha X Slusarski1003India2025-05-31
Deepesh T Gaucho1004Australia2025-05-27
Maria W Inouye1005Russia2025-05-28
Darci O Inouye1006Japan2025-06-14
Chavez X Tollner1007Spain2025-05-22
David R Albares1008France2025-05-31
Alejandro Q Garufi1009Canada2025-06-08
Deepesh U Tollner1010Japan2025-05-22
Jones E Albares1011Brazil2025-05-29
Greenwood G Slusarski1012Australia2025-05-29
Octavia U Kolmetz1013Argentina2025-05-20
Maria M Oldroyd1014Australia2025-05-19
Jeanfrancois I Nicka1015Germany2025-05-27
Nicolas B Amigon1016Russia2025-05-27
Silvio X Rim1017India2025-05-27
Greenwood N Nestle1018United Kingdom2025-06-13
James G Nicka1019Italy2025-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa M BowleyGermanyAsiya Javayant QUALIFIED
Sinclair S InouyeFranceElwin Sharvill PROPOSAL
Jeanfrancois Y GarufiGermanyStephen Shaw UNQUALIFIED
Smith T WaycottGermanyAsiya Javayant NEGOTIATION
Mujtaba X FollerItalyAnna Fali QUALIFIED
Alejandro K DilliardJapanElwin Sharvill RENEWAL
Mujtaba P FollerFranceStephen Shaw PROPOSAL
Claire X MaletRussiaAmy Elsner RENEWAL
Silvio D GillianIndiaStephen Shaw PROPOSAL
Francesco S RoysterItalyBernardo Dominic NEW
Leon O DoeItalyAmy Elsner RENEWAL
Faith F KuskoUnited KingdomElwin Sharvill QUALIFIED
Cody G SlusarskiFranceAmy Elsner RENEWAL
Kadeem U IturbideRussiaIvan Magalhaes PROPOSAL
Tony K VocelkaGermanyBernardo Dominic NEW
Octavia Y FigeroaFranceStephen Shaw UNQUALIFIED
Costa W OldroydBrazilAmy Elsner RENEWAL
Leon B MaletGermanyAsiya Javayant RENEWAL
Morrow H ShinkoGermanyStephen Shaw RENEWAL
Jeanfrancois W RimUnited KingdomXuxue Feng PROPOSAL
Morrow N CampainJapanStephen Shaw RENEWAL
Morrow L FerenczCanadaOnyama Limba NEW
Darci T InouyeFranceAnna Fali PROPOSAL
Emily G BriddickAustraliaXuxue Feng PROPOSAL
Julie B FerenczBrazilXuxue Feng NEW
Rodrigues Y MaletRussiaStephen Shaw QUALIFIED
Kaitlin P MaletAustraliaStephen Shaw QUALIFIED
James T MaletGermanyIoni Bowcher QUALIFIED
Maisha F BowleyRussiaAnna Fali NEGOTIATION
Adams T DoeAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois H RulapaughIndiaAmy Elsner QUALIFIED
Leon J NickaArgentinaIoni Bowcher NEW
Stacey Y GlickCanadaIoni Bowcher NEW
Kadeem P GauchoUnited KingdomBernardo Dominic NEGOTIATION
Francesco Y FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Cody J BriddickRussiaStephen Shaw UNQUALIFIED
Misaki F MaletJapanOnyama Limba NEGOTIATION
Francesco I PaprockiFranceAmy Elsner QUALIFIED
James Y AmigonBrazilXuxue Feng UNQUALIFIED
Wickens F AmigonGermanyOnyama Limba 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>