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
Izzy I RoysterSpainStephen Shaw QUALIFIED
Tony L BologniaJapanAmy Elsner RENEWAL
Nicolas Q ButtRussiaOnyama Limba UNQUALIFIED
Julie C DilliardIndiaIoni Bowcher UNQUALIFIED
Leja U SergiItalyAmy Elsner RENEWAL
Julie H KuskoAustraliaBernardo Dominic NEW
Isabel Y RoysterGermanyIvan Magalhaes NEGOTIATION
Ivar A CaldareraUnited KingdomIvan Magalhaes NEW
Sinclair M OstroskyJapanIvan Magalhaes QUALIFIED
Aika O FollerItalyIoni Bowcher UNQUALIFIED
Isabel F SlusarskiSpainIoni Bowcher NEW
Emily S StensethJapanElwin Sharvill UNQUALIFIED
Faith M TollnerCanadaAmy Elsner NEW
Salvatore B NestleRussiaXuxue Feng NEW
David I MaletJapanElwin Sharvill NEW
Juan A CampainSpainAnna Fali UNQUALIFIED
Cody R OldroydArgentinaIoni Bowcher NEGOTIATION
Francesco O RutaUnited KingdomAsiya Javayant NEGOTIATION
Alejandro I DilliardUnited KingdomAnna Fali PROPOSAL
Misaki T RimRussiaXuxue Feng PROPOSAL
Aika B CaudyFranceIvan Magalhaes PROPOSAL
Smith O RoysterIndiaIoni Bowcher NEW
Mayumi V WaycottAustraliaAmy Elsner PROPOSAL
Johnson V CaudyCanadaXuxue Feng QUALIFIED
Darci L CaldareraGermanyAmy Elsner NEGOTIATION
Adams D DarakjySpainOnyama Limba RENEWAL
Francesco N GlickArgentinaIvan Magalhaes NEW
Aika K SlusarskiAustraliaIvan Magalhaes RENEWAL
Nicolas I FollerGermanyIvan Magalhaes UNQUALIFIED
Kaitlin R SaylorsAustraliaElwin Sharvill PROPOSAL
Wickens Q GauchoRussiaElwin Sharvill NEW
Munro X DarakjyAustraliaIvan Magalhaes NEGOTIATION
Adams E NestleRussiaXuxue Feng UNQUALIFIED
Silvio L RutaItalyIoni Bowcher NEGOTIATION
Murillo T GlickRussiaIoni Bowcher NEW
Sinclair R MaletItalyAnna Fali UNQUALIFIED
Juan Y FollerGermanyElwin Sharvill PROPOSAL
Nicolas F MacleadSpainAmy Elsner UNQUALIFIED
Kaitlin B StockhamSpainOnyama Limba UNQUALIFIED
David N BologniaUnited KingdomOnyama Limba RENEWAL
Arvin C StockhamBrazilXuxue Feng PROPOSAL
Stacey T KolmetzItalyAmy Elsner UNQUALIFIED
Antonio Z CaudyArgentinaElwin Sharvill QUALIFIED
Ivar J GillianBrazilIvan Magalhaes UNQUALIFIED
Morrow N StockhamCanadaAmy Elsner PROPOSAL
Emily B MaletRussiaElwin Sharvill RENEWAL
Ivar A StensethItalyIoni Bowcher NEW
Emily S CampainAustraliaOnyama Limba NEGOTIATION
Jefferson Q FigeroaArgentinaAmy Elsner NEGOTIATION
Jefferson K FerenczItalyIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams J BriddickIndiaAsiya Javayant QUALIFIED
Clifford J MacleadCanadaStephen Shaw UNQUALIFIED
Silvio S FollerFranceAsiya Javayant QUALIFIED
Alejandro W WaycottAustraliaIvan Magalhaes NEW
Aruna Q MorascaGermanyBernardo Dominic RENEWAL
Rodrigues K MaletIndiaIvan Magalhaes QUALIFIED
Octavia F SergiBrazilOnyama Limba UNQUALIFIED
Cody W DilliardFranceBernardo Dominic QUALIFIED
Misaki F RimIndiaAsiya Javayant NEGOTIATION
Ricardo T NickaArgentinaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily O InouyeCanada2025-06-07Feiner Bros QUALIFIED65Bernardo Dominic
1001Darci J VocelkaItaly2025-05-24Chapman, Ross E Esq UNQUALIFIED86Ioni Bowcher
1002Deepesh J GillianBrazil2025-05-23Chapman, Ross E Esq PROPOSAL40Xuxue Feng
1003Aditya R RutaIndia2025-05-28Rangoni Of Florence RENEWAL95Stephen Shaw
1004Maria K CaudyIndia2025-05-25Morlong Associates UNQUALIFIED83Elwin Sharvill
1005Izzy B BriddickJapan2025-05-18Printing Dimensions PROPOSAL68Asiya Javayant
1006Aruna Y RoysterRussia2025-05-25Buckley Miller Wright NEGOTIATION85Anna Fali
1007Sinclair U DoeFrance2025-05-22Truhlar And Truhlar Attys QUALIFIED5Stephen Shaw
1008Ivar S SlusarskiAustralia2025-05-24Dorl, James J Esq QUALIFIED62Anna Fali
1009Wickens I FerenczCanada2025-06-02Chapman, Ross E Esq UNQUALIFIED19Onyama Limba
1010Silvio X RulapaughJapan2025-06-01Dorl, James J Esq QUALIFIED15Anna Fali
1011Sinclair X KuskoCanada2025-05-26Dorl, James J Esq UNQUALIFIED14Ioni Bowcher
1012Maria P RulapaughArgentina2025-06-04Rousseaux, Michael Esq PROPOSAL26Asiya Javayant
1013Munro O ButtIndia2025-06-13Commercial Press NEGOTIATION67Onyama Limba
1014Morrow Z BriddickJapan2025-05-24Chapman, Ross E Esq RENEWAL31Asiya Javayant
1015Claire G MorascaAustralia2025-06-03Printing Dimensions NEW77Asiya Javayant
1016David R OstroskyUnited Kingdom2025-06-11King, Christopher A Esq NEW24Onyama Limba
1017Salvatore Y FigeroaItaly2025-06-07Morlong Associates QUALIFIED22Elwin Sharvill
1018Costa H GarufiGermany2025-06-11Rangoni Of Florence RENEWAL72Anna Fali
1019Mujtaba M GlickJapan2025-05-27Chanay, Jeffrey A Esq PROPOSAL63Ivan Magalhaes
1020Morrow H SchemmerBrazil2025-05-25Feiner Bros PROPOSAL69Stephen Shaw
1021Jeanfrancois W DoeIndia2025-05-31Chemel, James L Cpa PROPOSAL36Onyama Limba
1022Greenwood O PerinRussia2025-06-05Chanay, Jeffrey A Esq RENEWAL4Elwin Sharvill
1023Clifford H BowleyBrazil2025-06-02Rousseaux, Michael Esq PROPOSAL79Ivan Magalhaes
1024Smith I SlusarskiItaly2025-05-29Rousseaux, Michael Esq PROPOSAL43Amy Elsner
1025James R TollnerRussia2025-05-29Commercial Press RENEWAL12Xuxue Feng
1026Tony S OstroskyItaly2025-06-08King, Christopher A Esq QUALIFIED12Amy Elsner
1027Aruna G KolmetzJapan2025-06-09Commercial Press RENEWAL2Onyama Limba
1028Faith R FigeroaSpain2025-05-22Benton, John B Jr QUALIFIED18Asiya Javayant
1029Murillo J MacleadBrazil2025-05-30Dorl, James J Esq UNQUALIFIED18Xuxue Feng
1030Emily B WieserSpain2025-06-09Chapman, Ross E Esq PROPOSAL48Ioni Bowcher
1031Kaitlin M NestleAustralia2025-06-12Feltz Printing Service UNQUALIFIED48Amy Elsner
1032Arvin O NickaAustralia2025-06-15Benton, John B Jr QUALIFIED69Ivan Magalhaes
1033Morrow C MarrierCanada2025-06-13Commercial Press QUALIFIED91Asiya Javayant
1034Greenwood I NickaFrance2025-06-04King, Christopher A Esq NEW59Ivan Magalhaes
1035Smith W MacleadBrazil2025-06-05Rangoni Of Florence QUALIFIED70Anna Fali
1036David F NickaUnited Kingdom2025-05-25Feltz Printing Service UNQUALIFIED34Ioni Bowcher
1037Izzy L FlosiArgentina2025-06-02Chemel, James L Cpa QUALIFIED20Stephen Shaw
1038Clifford S StensethItaly2025-05-21King, Christopher A Esq QUALIFIED28Asiya Javayant
1039Mujtaba Y AlbaresFrance2025-05-22King, Christopher A Esq QUALIFIED94Elwin Sharvill
1040Nicolas D FigeroaJapan2025-06-10Buckley Miller Wright PROPOSAL45Onyama Limba
1041Francesco I MaletIndia2025-05-21Truhlar And Truhlar Attys RENEWAL70Anna Fali
1042James L ShinkoJapan2025-06-09Rangoni Of Florence QUALIFIED26Amy Elsner
1043Isabel S BologniaRussia2025-06-06Dorl, James J Esq NEGOTIATION21Onyama Limba
1044Murillo C DoeJapan2025-05-20Chanay, Jeffrey A Esq PROPOSAL48Onyama Limba
1045Stacey S PoquetteJapan2025-06-15King, Christopher A Esq NEW73Amy Elsner
1046Ashley V IturbideSpain2025-05-22Buckley Miller Wright QUALIFIED75Onyama Limba
1047Wickens T SlusarskiCanada2025-06-09Feltz Printing Service QUALIFIED68Stephen Shaw
1048Antonio G StockhamBrazil2025-06-13Truhlar And Truhlar Attys RENEWAL6Xuxue Feng
1049Aditya E RutaUnited Kingdom2025-05-24King, Christopher A Esq NEGOTIATION17Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Misaki S RulapaughAustraliaAsiya Javayant NEGOTIATION
Faith O GillianSpainXuxue Feng UNQUALIFIED
Maisha W MaletGermanyAnna Fali QUALIFIED
Aika O NickaGermanyIoni Bowcher NEW
Smith F FigeroaArgentinaOnyama Limba UNQUALIFIED
Ivar S NickaJapanAmy Elsner NEGOTIATION
Alejandro B PoquetteArgentinaElwin Sharvill QUALIFIED
Costa K MorascaSpainOnyama Limba PROPOSAL
Wickens X TollnerArgentinaBernardo Dominic QUALIFIED
Clifford M StensethArgentinaElwin Sharvill QUALIFIED
Darci X SlusarskiSpainStephen Shaw RENEWAL
Claire G WaycottIndiaElwin Sharvill NEGOTIATION
Mayumi I OstroskyItalyXuxue Feng UNQUALIFIED
Smith X DilliardUnited KingdomElwin Sharvill NEGOTIATION
Adams E FlosiCanadaBernardo Dominic NEGOTIATION
Antonio H MaletArgentinaBernardo Dominic NEGOTIATION
Morrow D PerinBrazilIvan Magalhaes NEW
Stacey K RimUnited KingdomElwin Sharvill NEGOTIATION
Nicolas A DoeGermanyStephen Shaw UNQUALIFIED
Morrow F ChuiCanadaAsiya Javayant UNQUALIFIED
Isabel K SaylorsRussiaIoni Bowcher QUALIFIED
Emily J FigeroaUnited KingdomBernardo Dominic NEGOTIATION
James K RulapaughAustraliaOnyama Limba RENEWAL
Kaitlin R SaylorsIndiaElwin Sharvill QUALIFIED
Stacey J GillianUnited KingdomBernardo Dominic RENEWAL
Chavez Q GillianIndiaAsiya Javayant QUALIFIED
Francesco O StensethIndiaAnna Fali UNQUALIFIED
Misaki M VenereIndiaAnna Fali NEGOTIATION
Johnson Q NickaCanadaOnyama Limba NEGOTIATION
Kadeem I TollnerSpainAnna Fali PROPOSAL
Faith C TollnerCanadaAnna Fali NEGOTIATION
Ashley G IturbideAustraliaIvan Magalhaes QUALIFIED
Jones Y OldroydSpainStephen Shaw NEW
Jeanfrancois K IturbideCanadaIvan Magalhaes NEGOTIATION
James D RoysterBrazilIoni Bowcher QUALIFIED
Mujtaba P FlosiCanadaOnyama Limba NEW
Jennifer Q KolmetzGermanyOnyama Limba NEGOTIATION
Adams E SchemmerFranceIvan Magalhaes UNQUALIFIED
Izzy Y NickaAustraliaXuxue Feng NEGOTIATION
Aika X MacleadCanadaXuxue Feng PROPOSAL
Octavia H AlbaresIndiaBernardo Dominic RENEWAL
Jones W FerenczJapanAnna Fali QUALIFIED
Leja M SaylorsFranceAmy Elsner NEGOTIATION
Jeanfrancois V BowleyBrazilStephen Shaw RENEWAL
Wickens P RulapaughGermanyOnyama Limba RENEWAL
Greenwood R KolmetzCanadaAnna Fali NEGOTIATION
Jeanfrancois G SchemmerItalyElwin Sharvill RENEWAL
Arvin Q WaycottIndiaIvan Magalhaes NEW
Misaki N PerinCanadaElwin Sharvill PROPOSAL
Kadeem J TollnerGermanyBernardo Dominic RENEWAL
Frozen Columns
Name
Wickens B Nicka
Chavez F Doe
Mayumi B Ruta
Ivar X Nicka
Johnson U Amigon
Tony N Saylors
Adams P Venere
Aruna N Chui
Johnson B Nestle
Jones K Gaucho
David P Campain
Francesco U Saylors
Juan B Rim
Leon L Wieser
Johnson G Saylors
Izzy A Kusko
Clifford Y Poquette
Claire S Rulapaugh
David I Venere
Arvin F Saylors
Leon F Darakjy
Jefferson Y Kusko
Mujtaba A Malet
Nicolas T Bowley
James I Inouye
Mujtaba U Iturbide
Jeanfrancois G Vocelka
Maisha W Nestle
Chavez W Gillian
Adams K Schemmer
Maria S Royster
Aika R Gillian
Jones S Doe
Darci T Perin
Rodrigues T Morasca
David E Kolmetz
Ashley D Rim
Alejandro K Whobrey
Francesco I Amigon
Aika C Perin
Ivar X Saylors
Stacey O Malet
Aika N Rim
Julie V Slusarski
Costa G Poquette
Mujtaba H Iturbide
Antonio M Oldroyd
Kadeem T Rulapaugh
Kaitlin G Amigon
Jennifer B Venere
IdCountryDate
1000Germany2025-06-08
1001Brazil2025-06-06
1002Canada2025-06-07
1003Italy2025-06-12
1004Germany2025-06-03
1005Brazil2025-06-11
1006Japan2025-05-26
1007Japan2025-05-20
1008Spain2025-06-08
1009Italy2025-05-20
1010Russia2025-06-14
1011France2025-05-29
1012India2025-05-21
1013India2025-05-23
1014Canada2025-06-13
1015Argentina2025-05-22
1016India2025-06-01
1017United Kingdom2025-06-08
1018India2025-06-10
1019Brazil2025-06-14
1020United Kingdom2025-06-07
1021Italy2025-06-02
1022United Kingdom2025-06-02
1023Italy2025-06-06
1024Australia2025-05-22
1025Spain2025-06-03
1026United Kingdom2025-06-13
1027France2025-05-25
1028India2025-06-06
1029Canada2025-05-26
1030Brazil2025-06-12
1031Japan2025-05-26
1032United Kingdom2025-06-13
1033Spain2025-05-19
1034Argentina2025-05-19
1035Russia2025-05-23
1036Brazil2025-06-13
1037Spain2025-05-19
1038Spain2025-06-16
1039Japan2025-06-01
1040Germany2025-05-22
1041Argentina2025-05-25
1042France2025-05-19
1043Australia2025-05-21
1044United Kingdom2025-06-01
1045United Kingdom2025-06-15
1046Germany2025-05-31
1047Japan2025-06-14
1048Brazil2025-05-19
1049Argentina2025-06-01

On-Demand Data

NameIdCountryDate
Munro J Chui1000United Kingdom2025-06-04
Jones B Sergi1001United Kingdom2025-06-12
Leon S Bolognia1002Australia2025-05-20
Adams D Stenseth1003Brazil2025-05-20
Leon R Whobrey1004Brazil2025-05-22
James T Schemmer1005Germany2025-06-14
Francesco J Caudy1006India2025-06-12
Maria Y Caudy1007United Kingdom2025-05-18
Misaki F Ruta1008Italy2025-05-28
Greenwood H Inouye1009India2025-06-08
Silvio N Venere1010Argentina2025-06-06
Jennifer E Briddick1011Russia2025-06-16
Jeanfrancois U Whobrey1012India2025-06-01
Claire Z Bolognia1013Spain2025-06-01
Mayumi P Paprocki1014Argentina2025-05-18
Leon U Nestle1015France2025-05-19
Jennifer M Oldroyd1016Brazil2025-06-15
Chavez M Ostrosky1017Canada2025-05-19
Chavez C Paprocki1018Argentina2025-05-22
Aditya B Albares1019Canada2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois A DoeArgentinaIvan Magalhaes UNQUALIFIED
Kadeem X ChuiFranceElwin Sharvill QUALIFIED
Nicolas W SergiBrazilBernardo Dominic NEW
Deepesh R KuskoCanadaAsiya Javayant UNQUALIFIED
David I NickaFranceElwin Sharvill NEW
Julie J ButtJapanXuxue Feng QUALIFIED
Johnson S AlbaresUnited KingdomOnyama Limba PROPOSAL
Johnson Y BriddickBrazilOnyama Limba NEW
Ashley W SchemmerBrazilIoni Bowcher NEGOTIATION
Aika G NickaCanadaXuxue Feng NEW
Misaki R FlosiFranceElwin Sharvill PROPOSAL
Munro M SaylorsItalyBernardo Dominic NEGOTIATION
Deepesh M WhobreyRussiaAmy Elsner RENEWAL
Mujtaba X SergiRussiaOnyama Limba NEW
Smith Y AlbaresArgentinaElwin Sharvill NEW
Mayumi M SaylorsUnited KingdomOnyama Limba RENEWAL
Claire A DilliardItalyOnyama Limba NEGOTIATION
Costa S RimSpainAmy Elsner QUALIFIED
Smith M PerinRussiaAmy Elsner PROPOSAL
Ricardo A CaldareraAustraliaAnna Fali NEGOTIATION
Izzy Q RoysterJapanIvan Magalhaes UNQUALIFIED
Morrow V AlbaresAustraliaIoni Bowcher RENEWAL
Jones H AlbaresUnited KingdomAmy Elsner RENEWAL
Maria R StockhamJapanOnyama Limba QUALIFIED
Ricardo A GarufiAustraliaStephen Shaw RENEWAL
Emily D FollerIndiaXuxue Feng NEW
Leon A StockhamGermanyIoni Bowcher PROPOSAL
Johnson A AmigonBrazilStephen Shaw NEW
Isabel U PoquetteAustraliaStephen Shaw UNQUALIFIED
Wickens C StockhamIndiaAmy Elsner PROPOSAL
Silvio F VocelkaRussiaBernardo Dominic RENEWAL
Adams R IturbideArgentinaStephen Shaw RENEWAL
Chavez M BriddickIndiaIvan Magalhaes QUALIFIED
Isabel A FlosiAustraliaAnna Fali QUALIFIED
Juan H FlosiAustraliaIvan Magalhaes NEGOTIATION
Murillo N StockhamSpainAsiya Javayant RENEWAL
Jefferson L ButtCanadaAsiya Javayant QUALIFIED
Maisha Y AlbaresItalyElwin Sharvill PROPOSAL
Arvin U SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Adams L ShinkoBrazilAsiya 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>