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
Aruna A SchemmerFranceAmy Elsner RENEWAL
Adams E PaprockiUnited KingdomAnna Fali NEGOTIATION
Cody P GauchoGermanyAsiya Javayant PROPOSAL
Maria H WieserItalyStephen Shaw NEW
Alejandro D PoquetteJapanAmy Elsner NEW
Mayumi S MorascaSpainIoni Bowcher QUALIFIED
Leja S GlickArgentinaXuxue Feng UNQUALIFIED
Darci D AmigonUnited KingdomOnyama Limba NEW
Ivar M GlickUnited KingdomIvan Magalhaes PROPOSAL
David B MaletItalyXuxue Feng NEW
Alejandro J NestleRussiaIoni Bowcher UNQUALIFIED
Juan C TollnerAustraliaAnna Fali UNQUALIFIED
Salvatore G SlusarskiAustraliaXuxue Feng RENEWAL
Chavez I GauchoRussiaOnyama Limba QUALIFIED
Leon O RulapaughBrazilIvan Magalhaes QUALIFIED
Julie T MacleadArgentinaAnna Fali NEGOTIATION
Izzy B WhobreyJapanStephen Shaw UNQUALIFIED
Maisha L InouyeRussiaOnyama Limba PROPOSAL
Maria R BriddickRussiaOnyama Limba RENEWAL
Francesco U InouyeItalyAnna Fali RENEWAL
David O VocelkaRussiaAsiya Javayant RENEWAL
Morrow V SlusarskiArgentinaAsiya Javayant NEGOTIATION
Misaki M MaletFranceIoni Bowcher NEGOTIATION
Nicolas P NickaItalyAnna Fali UNQUALIFIED
Jones H RulapaughItalyXuxue Feng PROPOSAL
David K CampainArgentinaIvan Magalhaes PROPOSAL
Aika Z DarakjyUnited KingdomStephen Shaw NEGOTIATION
Claire I PoquetteAustraliaStephen Shaw NEW
Claire F CaldareraArgentinaIoni Bowcher PROPOSAL
Stacey S AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Octavia X SlusarskiUnited KingdomXuxue Feng PROPOSAL
Greenwood I PerinGermanyIoni Bowcher QUALIFIED
Ashley T WhobreySpainAsiya Javayant NEGOTIATION
Cody L SergiIndiaStephen Shaw QUALIFIED
Costa C MaletFranceBernardo Dominic RENEWAL
Aditya T SlusarskiFranceElwin Sharvill NEGOTIATION
Nicolas L RutaItalyAmy Elsner NEW
Leon P AmigonBrazilXuxue Feng PROPOSAL
Kadeem Q RimJapanElwin Sharvill UNQUALIFIED
Costa Y PoquetteUnited KingdomXuxue Feng PROPOSAL
Wickens L NickaArgentinaIvan Magalhaes NEGOTIATION
Munro S MarrierRussiaAnna Fali NEGOTIATION
Juan G SergiFranceAmy Elsner PROPOSAL
Rodrigues F BologniaArgentinaElwin Sharvill PROPOSAL
Izzy U KolmetzUnited KingdomOnyama Limba RENEWAL
Clifford C FollerCanadaAsiya Javayant NEW
Maisha K WieserSpainIvan Magalhaes RENEWAL
Sinclair K AmigonFranceBernardo Dominic UNQUALIFIED
Darci E RimCanadaElwin Sharvill NEGOTIATION
Jones K DoeBrazilAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy A OstroskyFranceAnna Fali UNQUALIFIED
Mujtaba Z DoeUnited KingdomAmy Elsner RENEWAL
Jones C CaudyItalyIoni Bowcher PROPOSAL
Octavia R CaudyIndiaXuxue Feng RENEWAL
Smith I PoquetteFranceXuxue Feng QUALIFIED
Deepesh M PoquetteAustraliaAnna Fali NEW
Stacey M RutaGermanyAnna Fali PROPOSAL
Jennifer Q SaylorsCanadaXuxue Feng NEGOTIATION
Adams G WieserGermanyAnna Fali NEGOTIATION
James Z DarakjyJapanOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford M SaylorsGermany2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED30Ioni Bowcher
1001Smith E ShinkoArgentina2026-07-15Feiner Bros RENEWAL42Ivan Magalhaes
1002Darci X KuskoUnited Kingdom2026-06-27Feltz Printing Service RENEWAL56Ioni Bowcher
1003Jeanfrancois S SergiArgentina2026-07-02Morlong Associates QUALIFIED32Ioni Bowcher
1004Kadeem F ChuiItaly2026-07-20Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1005Claire U FlosiSpain2026-06-26Chemel, James L Cpa NEGOTIATION15Elwin Sharvill
1006Stacey J ShinkoArgentina2026-07-20Feltz Printing Service UNQUALIFIED24Asiya Javayant
1007Deepesh Y DoeRussia2026-06-29King, Christopher A Esq PROPOSAL3Ivan Magalhaes
1008Jones D InouyeGermany2026-07-03Printing Dimensions RENEWAL71Ivan Magalhaes
1009Deepesh D DilliardItaly2026-07-14King, Christopher A Esq UNQUALIFIED60Asiya Javayant
1010Juan R PaprockiBrazil2026-07-08Chapman, Ross E Esq NEW46Stephen Shaw
1011Chavez Z RoysterUnited Kingdom2026-07-17Chanay, Jeffrey A Esq QUALIFIED25Asiya Javayant
1012Juan H VocelkaFrance2026-07-21Rangoni Of Florence UNQUALIFIED13Bernardo Dominic
1013Leja C TollnerJapan2026-07-22Rangoni Of Florence RENEWAL65Onyama Limba
1014Ivar U CampainUnited Kingdom2026-07-21Chapman, Ross E Esq QUALIFIED19Bernardo Dominic
1015Arvin B KuskoBrazil2026-07-21Printing Dimensions RENEWAL84Ioni Bowcher
1016Nicolas L SaylorsArgentina2026-07-15Benton, John B Jr NEW19Ivan Magalhaes
1017Silvio K ChuiCanada2026-07-22Morlong Associates QUALIFIED54Anna Fali
1018Deepesh H PaprockiFrance2026-07-13Feltz Printing Service NEW39Ioni Bowcher
1019Maria J GlickSpain2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED99Anna Fali
1020Aika O CaudySpain2026-07-16Rousseaux, Michael Esq QUALIFIED33Stephen Shaw
1021Kaitlin A FlosiRussia2026-07-15King, Christopher A Esq NEGOTIATION95Stephen Shaw
1022Wickens Q FollerJapan2026-07-04Chanay, Jeffrey A Esq RENEWAL27Bernardo Dominic
1023James F RutaJapan2026-07-18Chapman, Ross E Esq RENEWAL4Elwin Sharvill
1024Maria V BowleyGermany2026-07-14King, Christopher A Esq PROPOSAL32Amy Elsner
1025Maisha M VocelkaGermany2026-07-19Buckley Miller Wright QUALIFIED56Onyama Limba
1026Octavia X MorascaRussia2026-07-01Dorl, James J Esq NEGOTIATION99Amy Elsner
1027Maria C IturbideIndia2026-07-07King, Christopher A Esq NEGOTIATION35Amy Elsner
1028Antonio Q FigeroaSpain2026-07-22Feltz Printing Service RENEWAL31Elwin Sharvill
1029Ashley U OstroskyFrance2026-07-05Feiner Bros NEGOTIATION26Ivan Magalhaes
1030James X AmigonUnited Kingdom2026-06-25Chapman, Ross E Esq PROPOSAL17Amy Elsner
1031Clifford P WhobreyFrance2026-07-15Feltz Printing Service NEW15Onyama Limba
1032Clifford M SaylorsItaly2026-07-11Chanay, Jeffrey A Esq RENEWAL40Onyama Limba
1033Aditya S DarakjySpain2026-06-25Commercial Press QUALIFIED81Ioni Bowcher
1034Tony G OstroskyGermany2026-07-10Chanay, Jeffrey A Esq PROPOSAL1Stephen Shaw
1035Jennifer G PaprockiRussia2026-06-27Feiner Bros PROPOSAL2Ioni Bowcher
1036Claire P CaldareraJapan2026-06-29Dorl, James J Esq RENEWAL37Asiya Javayant
1037Faith G MaletAustralia2026-07-13Feltz Printing Service QUALIFIED61Stephen Shaw
1038Alejandro C PoquetteSpain2026-07-18Benton, John B Jr NEGOTIATION21Asiya Javayant
1039Costa A DoeUnited Kingdom2026-07-08Feltz Printing Service UNQUALIFIED97Bernardo Dominic
1040Deepesh H DarakjyCanada2026-07-21Commercial Press NEW41Xuxue Feng
1041Adams C FigeroaItaly2026-07-21Printing Dimensions UNQUALIFIED95Xuxue Feng
1042Claire Z WaycottArgentina2026-06-29Rangoni Of Florence UNQUALIFIED75Anna Fali
1043Greenwood B PerinRussia2026-06-24Chapman, Ross E Esq RENEWAL30Onyama Limba
1044Morrow X MaletCanada2026-07-03King, Christopher A Esq QUALIFIED28Amy Elsner
1045Aika I PerinAustralia2026-07-19Dorl, James J Esq QUALIFIED77Ivan Magalhaes
1046Maria W WieserJapan2026-07-18Feltz Printing Service PROPOSAL82Stephen Shaw
1047Chavez L BriddickItaly2026-06-25Rousseaux, Michael Esq QUALIFIED18Asiya Javayant
1048Salvatore W ChuiGermany2026-06-27Commercial Press PROPOSAL28Ivan Magalhaes
1049David O VocelkaJapan2026-07-13Chemel, James L Cpa NEW45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody K RimFranceAmy Elsner NEGOTIATION
Juan I KuskoJapanElwin Sharvill PROPOSAL
Francesco C NestleBrazilAmy Elsner RENEWAL
Aika Q MaletBrazilAsiya Javayant UNQUALIFIED
Munro K RulapaughSpainStephen Shaw RENEWAL
Mujtaba U StensethFranceAnna Fali UNQUALIFIED
Greenwood K NickaJapanAmy Elsner PROPOSAL
Cody E ButtBrazilElwin Sharvill UNQUALIFIED
Stacey Y TollnerGermanyXuxue Feng QUALIFIED
Maisha B ChuiRussiaAsiya Javayant QUALIFIED
Kaitlin M VenereItalyStephen Shaw NEW
Johnson A ShinkoAustraliaBernardo Dominic NEGOTIATION
Murillo G WieserBrazilOnyama Limba NEGOTIATION
Deepesh X CaldareraArgentinaAsiya Javayant QUALIFIED
Misaki O BowleyItalyIoni Bowcher PROPOSAL
Rodrigues K PerinGermanyElwin Sharvill NEGOTIATION
Octavia G WaycottUnited KingdomIoni Bowcher RENEWAL
Adams O CampainFranceXuxue Feng QUALIFIED
Rodrigues L DilliardRussiaStephen Shaw UNQUALIFIED
Claire U RulapaughJapanBernardo Dominic PROPOSAL
Tony U KuskoUnited KingdomAsiya Javayant RENEWAL
Emily R WieserAustraliaOnyama Limba NEGOTIATION
Leon Q BriddickSpainAmy Elsner QUALIFIED
Deepesh R ButtIndiaAsiya Javayant NEW
Jeanfrancois X PaprockiJapanAnna Fali UNQUALIFIED
Kaitlin F KolmetzItalyStephen Shaw PROPOSAL
Misaki X GauchoUnited KingdomIvan Magalhaes QUALIFIED
Aika P MaletJapanAmy Elsner NEW
Misaki P PoquetteArgentinaIoni Bowcher PROPOSAL
Jeanfrancois C NestleBrazilStephen Shaw PROPOSAL
Misaki P OldroydJapanAmy Elsner RENEWAL
Octavia D SaylorsIndiaBernardo Dominic NEW
Deepesh R RulapaughIndiaBernardo Dominic RENEWAL
Deepesh O ButtUnited KingdomIvan Magalhaes PROPOSAL
Cody T OldroydIndiaXuxue Feng UNQUALIFIED
Alejandro N AmigonCanadaAmy Elsner NEGOTIATION
Nicolas M MaletJapanAsiya Javayant PROPOSAL
Chavez K BologniaRussiaElwin Sharvill NEW
David R RimSpainAsiya Javayant PROPOSAL
Kadeem R MacleadArgentinaAnna Fali PROPOSAL
Ivar T DilliardItalyBernardo Dominic NEGOTIATION
Ashley I ButtCanadaAsiya Javayant PROPOSAL
Emily X SlusarskiUnited KingdomAnna Fali NEGOTIATION
Rodrigues L SergiItalyOnyama Limba NEW
Maria D FerenczSpainElwin Sharvill QUALIFIED
Jones S ShinkoGermanyStephen Shaw NEW
Alejandro P MarrierFranceIvan Magalhaes PROPOSAL
Munro T BologniaJapanIoni Bowcher RENEWAL
Costa M PoquetteArgentinaElwin Sharvill UNQUALIFIED
Tony Q RutaBrazilAmy Elsner UNQUALIFIED
Frozen Columns
Name
Leja U Stockham
Kaitlin N Figeroa
Aditya G Ostrosky
Alejandro X Maclead
Aditya F Shinko
Adams V Glick
Stacey Y Ostrosky
Ashley O Campain
Mujtaba Q Perin
Stacey C Venere
Jeanfrancois H Tollner
Arvin K Ferencz
Adams A Schemmer
Silvio O Caudy
Leja X Malet
Costa P Butt
Aditya O Ferencz
Jones E Kolmetz
Stacey N Waycott
Aika R Stockham
Juan X Slusarski
Wickens R Amigon
Jeanfrancois L Flosi
Emily L Kusko
Ivar V Vocelka
Rodrigues O Garufi
Rodrigues A Kolmetz
Aruna C Nestle
Nicolas U Dilliard
Arvin M Nestle
Kadeem Q Oldroyd
Jennifer Y Morasca
Murillo F Iturbide
Faith D Rulapaugh
Smith L Poquette
Maisha W Darakjy
Faith H Kusko
Rodrigues A Bowley
Murillo F Doe
Ricardo E Oldroyd
Aika U Doe
Tony I Caudy
Francesco Z Royster
Mayumi Q Ferencz
Kadeem F Briddick
Wickens F Vocelka
Alejandro Z Garufi
Murillo I Garufi
David Y Paprocki
Costa K Paprocki
IdCountryDate
1000France2026-06-25
1001France2026-07-20
1002Russia2026-07-08
1003Japan2026-07-02
1004Japan2026-07-18
1005France2026-07-20
1006United Kingdom2026-07-16
1007Japan2026-07-11
1008Spain2026-06-25
1009United Kingdom2026-07-17
1010Italy2026-07-04
1011Italy2026-06-28
1012Germany2026-07-12
1013Germany2026-06-29
1014Canada2026-06-26
1015Australia2026-07-04
1016India2026-07-13
1017Australia2026-07-06
1018France2026-06-29
1019Russia2026-06-27
1020Brazil2026-06-25
1021United Kingdom2026-07-07
1022Germany2026-07-14
1023United Kingdom2026-06-24
1024Germany2026-07-05
1025Spain2026-07-04
1026Argentina2026-07-09
1027India2026-06-27
1028Australia2026-06-26
1029Argentina2026-07-20
1030Italy2026-06-23
1031Brazil2026-06-25
1032India2026-07-08
1033India2026-07-07
1034Argentina2026-07-19
1035Spain2026-07-01
1036Argentina2026-07-19
1037Italy2026-06-23
1038Germany2026-07-02
1039Canada2026-07-02
1040Argentina2026-07-18
1041Brazil2026-06-28
1042Argentina2026-07-18
1043Italy2026-07-19
1044Canada2026-07-04
1045Brazil2026-07-11
1046Italy2026-07-06
1047Spain2026-06-30
1048Russia2026-07-04
1049India2026-06-24

On-Demand Data

NameIdCountryDate
Faith R Waycott1000Australia2026-06-30
Morrow D Schemmer1001Italy2026-07-22
Wickens W Garufi1002Argentina2026-07-06
Francesco Z Bolognia1003France2026-06-27
Murillo S Perin1004Italy2026-07-18
Mujtaba D Nestle1005India2026-06-28
Johnson T Figeroa1006India2026-07-02
Maria V Glick1007Canada2026-07-01
Mayumi X Gillian1008Australia2026-07-12
Greenwood I Ruta1009Argentina2026-07-15
Jeanfrancois T Poquette1010Germany2026-07-17
Francesco G Malet1011Spain2026-07-19
Faith U Venere1012France2026-06-27
Aruna D Kusko1013Japan2026-06-28
David S Foller1014Japan2026-07-13
Claire L Campain1015Germany2026-07-07
Adams C Amigon1016France2026-07-07
Aditya G Bowley1017Japan2026-06-27
Claire W Briddick1018Germany2026-07-02
David W Malet1019Germany2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika L MaletAustraliaIoni Bowcher QUALIFIED
Stacey C InouyeSpainAnna Fali RENEWAL
Morrow A MacleadFranceOnyama Limba NEGOTIATION
Jennifer E WieserUnited KingdomElwin Sharvill PROPOSAL
Jones Z NestleRussiaIoni Bowcher QUALIFIED
Kadeem F GlickRussiaStephen Shaw PROPOSAL
Antonio Y SlusarskiSpainAnna Fali NEGOTIATION
Tony U BriddickAustraliaAnna Fali NEGOTIATION
Clifford G VocelkaFranceXuxue Feng PROPOSAL
Jones H SlusarskiUnited KingdomStephen Shaw RENEWAL
Alejandro J PerinIndiaStephen Shaw PROPOSAL
Cody G GlickCanadaStephen Shaw NEW
Arvin W CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Leon O SlusarskiArgentinaXuxue Feng QUALIFIED
Darci O PerinRussiaIoni Bowcher NEW
Clifford W SchemmerCanadaStephen Shaw PROPOSAL
David V OstroskyFranceElwin Sharvill NEGOTIATION
Chavez G SlusarskiArgentinaBernardo Dominic PROPOSAL
Aruna S OldroydUnited KingdomOnyama Limba UNQUALIFIED
Faith W FollerGermanyXuxue Feng NEW
Greenwood J MorascaSpainOnyama Limba NEGOTIATION
Octavia E WhobreyRussiaOnyama Limba UNQUALIFIED
David V BriddickGermanyIvan Magalhaes QUALIFIED
Ashley V BriddickItalyAnna Fali NEGOTIATION
Antonio G SlusarskiBrazilStephen Shaw RENEWAL
Octavia F BowleyBrazilAnna Fali NEW
Cody D AmigonGermanyBernardo Dominic PROPOSAL
Maisha Y VocelkaIndiaStephen Shaw QUALIFIED
Aika V SaylorsFranceBernardo Dominic QUALIFIED
Aditya W BowleyIndiaAsiya Javayant UNQUALIFIED
Darci B KuskoItalyStephen Shaw QUALIFIED
Aditya H SlusarskiGermanyXuxue Feng PROPOSAL
Leja K OldroydJapanBernardo Dominic PROPOSAL
Jeanfrancois N BologniaItalyOnyama Limba RENEWAL
Wickens R KolmetzCanadaAnna Fali PROPOSAL
Smith O BologniaArgentinaAmy Elsner RENEWAL
Ivar A MorascaIndiaElwin Sharvill UNQUALIFIED
Maria Q SergiArgentinaBernardo Dominic NEGOTIATION
Morrow H BologniaRussiaBernardo Dominic PROPOSAL
Jones T AlbaresItalyOnyama Limba NEGOTIATION

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