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
Morrow G VocelkaSpainIvan Magalhaes PROPOSAL
Francesco P StockhamAustraliaAsiya Javayant NEGOTIATION
Salvatore L PoquetteArgentinaOnyama Limba PROPOSAL
Jones L SlusarskiArgentinaBernardo Dominic NEGOTIATION
Alejandro L GillianAustraliaIvan Magalhaes PROPOSAL
Silvio A WhobreySpainAsiya Javayant NEW
Stacey J OldroydJapanStephen Shaw QUALIFIED
Misaki A CaudyCanadaAsiya Javayant RENEWAL
Kadeem F BowleyItalyAmy Elsner NEW
Jones D SergiItalyOnyama Limba RENEWAL
Maisha D GarufiSpainAmy Elsner NEW
Juan W BowleyUnited KingdomIvan Magalhaes RENEWAL
Kadeem X RutaSpainIoni Bowcher RENEWAL
Francesco X InouyeSpainElwin Sharvill UNQUALIFIED
James O WhobreyItalyAmy Elsner NEGOTIATION
Smith Y InouyeFranceOnyama Limba NEGOTIATION
Mujtaba F PoquetteUnited KingdomBernardo Dominic NEW
Jeanfrancois K KolmetzItalyAsiya Javayant RENEWAL
Aditya Z MacleadJapanIoni Bowcher RENEWAL
Jennifer C RutaFranceIoni Bowcher RENEWAL
Darci U NestleItalyAmy Elsner UNQUALIFIED
Faith Q WaycottBrazilStephen Shaw NEGOTIATION
Tony A MaletItalyOnyama Limba RENEWAL
Maria I FollerSpainIvan Magalhaes UNQUALIFIED
Aika R BologniaSpainXuxue Feng NEGOTIATION
Leja M MorascaSpainBernardo Dominic NEGOTIATION
Maisha I RutaCanadaAmy Elsner NEW
Octavia M MorascaSpainAmy Elsner NEW
Wickens S SlusarskiIndiaStephen Shaw UNQUALIFIED
Costa U SaylorsFranceAmy Elsner QUALIFIED
Smith F PoquetteFranceBernardo Dominic QUALIFIED
Mayumi Z KolmetzFranceAmy Elsner NEGOTIATION
Jennifer H StensethUnited KingdomXuxue Feng NEGOTIATION
Arvin Q DilliardFranceIoni Bowcher PROPOSAL
Ashley I AlbaresCanadaAsiya Javayant RENEWAL
Emily R CampainJapanAsiya Javayant NEGOTIATION
Cody X PaprockiBrazilBernardo Dominic QUALIFIED
Maisha Z AmigonUnited KingdomStephen Shaw RENEWAL
Maria Z AlbaresArgentinaIoni Bowcher NEGOTIATION
Tony T OldroydUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba S MacleadGermanyXuxue Feng RENEWAL
Jeanfrancois U BologniaItalyAmy Elsner RENEWAL
Jefferson Q OstroskyFranceStephen Shaw UNQUALIFIED
Ricardo O OldroydBrazilBernardo Dominic NEGOTIATION
Mayumi B RutaFranceBernardo Dominic QUALIFIED
Tony F ChuiJapanAsiya Javayant PROPOSAL
Ivar I FlosiItalyXuxue Feng PROPOSAL
Kadeem C VocelkaFranceIvan Magalhaes NEGOTIATION
Greenwood D NickaFranceBernardo Dominic QUALIFIED
Morrow R GauchoSpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson W ShinkoUnited KingdomBernardo Dominic PROPOSAL
Misaki A FerenczFranceOnyama Limba UNQUALIFIED
Clifford L OldroydAustraliaIoni Bowcher QUALIFIED
Smith P SergiSpainAnna Fali UNQUALIFIED
Octavia P BowleyFranceAsiya Javayant RENEWAL
Mayumi M VenereFranceAmy Elsner PROPOSAL
Julie V WieserSpainAnna Fali RENEWAL
Jennifer O KolmetzFranceXuxue Feng UNQUALIFIED
Leja D DilliardIndiaIoni Bowcher UNQUALIFIED
Rodrigues I IturbideIndiaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith J VenereJapan2026-07-19Morlong Associates NEGOTIATION84Stephen Shaw
1001Octavia S MarrierSpain2026-07-12Benton, John B Jr NEW90Amy Elsner
1002Jennifer T NickaSpain2026-07-30King, Christopher A Esq PROPOSAL11Onyama Limba
1003James E CaldareraAustralia2026-07-25Rousseaux, Michael Esq PROPOSAL37Ioni Bowcher
1004Alejandro K RutaSpain2026-07-19Buckley Miller Wright NEW21Amy Elsner
1005Ashley Y ShinkoArgentina2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED25Anna Fali
1006Maisha Y DoeItaly2026-08-05Chemel, James L Cpa QUALIFIED63Bernardo Dominic
1007Darci J AlbaresGermany2026-07-17Printing Dimensions NEW85Ivan Magalhaes
1008Kaitlin P OldroydSpain2026-07-14Chemel, James L Cpa QUALIFIED81Stephen Shaw
1009Misaki H DoeRussia2026-07-21Commercial Press NEW96Ivan Magalhaes
1010Stacey W MarrierUnited Kingdom2026-08-01Morlong Associates NEW55Anna Fali
1011Silvio Q RoysterBrazil2026-07-17King, Christopher A Esq NEW44Xuxue Feng
1012Clifford B OstroskyAustralia2026-08-02Rousseaux, Michael Esq QUALIFIED12Ioni Bowcher
1013Stacey E GarufiGermany2026-07-12Rousseaux, Michael Esq RENEWAL47Elwin Sharvill
1014Jennifer Y GillianJapan2026-07-31Chanay, Jeffrey A Esq NEGOTIATION10Xuxue Feng
1015Tony S RoysterGermany2026-07-25Buckley Miller Wright PROPOSAL19Stephen Shaw
1016Chavez K GlickBrazil2026-07-25Commercial Press QUALIFIED14Asiya Javayant
1017Rodrigues A PaprockiItaly2026-07-30Commercial Press NEW2Xuxue Feng
1018James A AmigonGermany2026-07-29Truhlar And Truhlar Attys RENEWAL26Anna Fali
1019Salvatore F WaycottRussia2026-08-04Printing Dimensions UNQUALIFIED48Onyama Limba
1020Faith X RimUnited Kingdom2026-07-31Truhlar And Truhlar Attys QUALIFIED56Anna Fali
1021Morrow U VocelkaBrazil2026-08-02Morlong Associates QUALIFIED59Asiya Javayant
1022Arvin P BowleyItaly2026-07-24Dorl, James J Esq PROPOSAL42Stephen Shaw
1023Juan J MaletGermany2026-08-08Benton, John B Jr RENEWAL41Elwin Sharvill
1024Nicolas K DarakjyFrance2026-07-20Rousseaux, Michael Esq NEW87Anna Fali
1025Julie K FigeroaItaly2026-07-22King, Christopher A Esq PROPOSAL37Xuxue Feng
1026Jones K FlosiUnited Kingdom2026-07-24Buckley Miller Wright RENEWAL84Ioni Bowcher
1027Stacey Z VenereJapan2026-08-07Feiner Bros UNQUALIFIED21Onyama Limba
1028Ricardo N IturbideSpain2026-07-31King, Christopher A Esq PROPOSAL4Bernardo Dominic
1029Mayumi J FollerArgentina2026-08-02Benton, John B Jr RENEWAL22Bernardo Dominic
1030David K SlusarskiAustralia2026-07-12Morlong Associates NEW33Stephen Shaw
1031Morrow B RulapaughGermany2026-07-14Chanay, Jeffrey A Esq NEGOTIATION37Elwin Sharvill
1032Tony X BriddickJapan2026-07-21Buckley Miller Wright QUALIFIED33Stephen Shaw
1033Aruna C SchemmerArgentina2026-08-09Dorl, James J Esq RENEWAL36Amy Elsner
1034Faith S SchemmerJapan2026-07-17Commercial Press UNQUALIFIED23Ivan Magalhaes
1035Cody H NestleBrazil2026-07-20Morlong Associates PROPOSAL93Stephen Shaw
1036Kaitlin O RulapaughBrazil2026-08-09Chemel, James L Cpa NEW96Amy Elsner
1037Stacey K WaycottIndia2026-07-25Rousseaux, Michael Esq UNQUALIFIED5Bernardo Dominic
1038Aruna P ButtSpain2026-07-30Commercial Press NEW37Bernardo Dominic
1039Faith O KuskoGermany2026-07-23Truhlar And Truhlar Attys NEGOTIATION20Asiya Javayant
1040Munro M SchemmerSpain2026-07-17Benton, John B Jr NEGOTIATION81Bernardo Dominic
1041Sinclair J BologniaIndia2026-07-12Rousseaux, Michael Esq QUALIFIED21Onyama Limba
1042Kaitlin K PerinBrazil2026-08-02Benton, John B Jr NEGOTIATION19Ioni Bowcher
1043Faith S SaylorsItaly2026-07-28Feiner Bros NEGOTIATION17Ioni Bowcher
1044Jennifer S GauchoFrance2026-07-13King, Christopher A Esq PROPOSAL50Onyama Limba
1045Ricardo V WaycottAustralia2026-08-05King, Christopher A Esq PROPOSAL74Amy Elsner
1046Nicolas Y PerinIndia2026-07-15Printing Dimensions NEW89Elwin Sharvill
1047Rodrigues F OldroydFrance2026-07-11Feltz Printing Service NEGOTIATION3Onyama Limba
1048Izzy W BologniaRussia2026-08-03Feltz Printing Service PROPOSAL28Xuxue Feng
1049Cody Z TollnerRussia2026-07-21Rousseaux, Michael Esq UNQUALIFIED3Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Antonio G NestleAustraliaStephen Shaw RENEWAL
Maria H DarakjyJapanAsiya Javayant NEW
Smith I CaldareraArgentinaXuxue Feng UNQUALIFIED
Alejandro Y BowleyCanadaOnyama Limba NEW
Ashley D StockhamUnited KingdomAmy Elsner RENEWAL
Octavia R CaudyGermanyOnyama Limba PROPOSAL
Deepesh N GillianJapanOnyama Limba NEW
Chavez A StensethCanadaBernardo Dominic RENEWAL
Aruna E GarufiRussiaAnna Fali UNQUALIFIED
Costa P PaprockiBrazilIoni Bowcher RENEWAL
Murillo F CaudyIndiaAsiya Javayant NEW
Aika V PerinArgentinaXuxue Feng NEW
Leja M DilliardBrazilOnyama Limba NEGOTIATION
Jones R KolmetzUnited KingdomAnna Fali QUALIFIED
Nicolas F GlickGermanyOnyama Limba QUALIFIED
Rodrigues D BologniaRussiaAmy Elsner PROPOSAL
Tony V FerenczGermanyIoni Bowcher PROPOSAL
Mujtaba Z MaletCanadaStephen Shaw PROPOSAL
Francesco O GarufiFranceIoni Bowcher UNQUALIFIED
Adams G ShinkoArgentinaIvan Magalhaes NEW
Faith L PaprockiJapanStephen Shaw PROPOSAL
Arvin G DilliardItalyXuxue Feng QUALIFIED
Emily V InouyeAustraliaIvan Magalhaes QUALIFIED
Cody M RimArgentinaIvan Magalhaes NEW
Kadeem D PaprockiIndiaIoni Bowcher NEGOTIATION
Arvin J AmigonItalyAsiya Javayant NEGOTIATION
Murillo B GauchoSpainBernardo Dominic NEGOTIATION
Costa I RutaBrazilElwin Sharvill NEGOTIATION
Jennifer I RoysterAustraliaXuxue Feng QUALIFIED
Stacey C NestleIndiaIvan Magalhaes UNQUALIFIED
Deepesh E CampainRussiaElwin Sharvill QUALIFIED
Salvatore Q RimIndiaAsiya Javayant NEW
Francesco Q WhobreyItalyStephen Shaw RENEWAL
Aruna G DilliardItalyAsiya Javayant QUALIFIED
Ricardo I DilliardUnited KingdomXuxue Feng PROPOSAL
Morrow T MorascaRussiaAmy Elsner UNQUALIFIED
Jefferson Q RoysterUnited KingdomStephen Shaw NEW
Deepesh A KolmetzUnited KingdomIoni Bowcher RENEWAL
Costa J VocelkaIndiaElwin Sharvill UNQUALIFIED
Izzy M FerenczFranceAmy Elsner UNQUALIFIED
Jones S RulapaughBrazilStephen Shaw UNQUALIFIED
Murillo K GarufiSpainAnna Fali RENEWAL
Munro A MacleadBrazilIvan Magalhaes RENEWAL
Emily M OstroskyArgentinaBernardo Dominic NEGOTIATION
Antonio E KuskoJapanIoni Bowcher UNQUALIFIED
Costa Y OldroydFranceBernardo Dominic QUALIFIED
Salvatore X SlusarskiUnited KingdomXuxue Feng RENEWAL
Mayumi M MorascaSpainIoni Bowcher RENEWAL
James F WaycottSpainStephen Shaw NEGOTIATION
Sinclair P AmigonJapanOnyama Limba NEW
Frozen Columns
Name
Munro D Royster
Emily F Flosi
David I Maclead
Mujtaba O Nicka
Jefferson D Vocelka
Salvatore H Inouye
Maria E Gillian
Costa Z Nestle
Stacey M Bowley
Octavia E Iturbide
Sinclair E Nestle
Morrow J Nicka
Alejandro H Stockham
David J Shinko
Jennifer F Paprocki
Darci H Paprocki
Greenwood X Gillian
Salvatore E Butt
Aditya X Venere
Arvin A Bolognia
Ricardo Q Saylors
Munro E Malet
Ashley Y Rim
Morrow T Paprocki
Octavia I Campain
Morrow S Schemmer
Ashley E Sergi
Chavez Q Paprocki
Sinclair O Wieser
Adams Z Malet
Kadeem D Kusko
Johnson O Caudy
Smith M Flosi
Jeanfrancois H Foller
Faith A Saylors
Octavia U Doe
Claire M Gaucho
Aditya U Campain
Silvio M Doe
Jones E Waycott
Darci Y Whobrey
Aruna G Caldarera
Jefferson J Paprocki
Kaitlin Z Rim
Faith U Rim
Jones Y Chui
Antonio Y Stockham
Octavia S Briddick
Jennifer D Morasca
Claire T Maclead
IdCountryDate
1000Germany2026-07-18
1001Brazil2026-08-05
1002France2026-08-09
1003Russia2026-08-05
1004United Kingdom2026-07-25
1005Italy2026-07-12
1006Japan2026-07-16
1007Brazil2026-08-01
1008Spain2026-07-21
1009Argentina2026-07-18
1010India2026-07-13
1011United Kingdom2026-07-18
1012India2026-07-15
1013Spain2026-08-05
1014Brazil2026-07-23
1015Brazil2026-07-19
1016Japan2026-07-18
1017United Kingdom2026-08-05
1018Russia2026-07-22
1019Germany2026-08-01
1020Canada2026-07-30
1021Argentina2026-07-15
1022Japan2026-07-14
1023Canada2026-08-01
1024India2026-07-13
1025Germany2026-08-07
1026France2026-07-22
1027Australia2026-07-17
1028Canada2026-07-18
1029Italy2026-07-27
1030Germany2026-07-18
1031Australia2026-07-17
1032Brazil2026-08-02
1033Japan2026-07-19
1034Italy2026-07-12
1035Australia2026-07-13
1036France2026-07-24
1037Italy2026-08-09
1038India2026-07-29
1039France2026-08-01
1040Japan2026-07-23
1041Canada2026-07-14
1042United Kingdom2026-07-24
1043Australia2026-07-13
1044United Kingdom2026-07-22
1045India2026-08-07
1046Argentina2026-07-23
1047Argentina2026-07-11
1048Russia2026-07-25
1049Argentina2026-07-15

On-Demand Data

NameIdCountryDate
Leon O Darakjy1000Japan2026-07-13
Mujtaba W Vocelka1001Canada2026-07-23
Francesco Z Albares1002Spain2026-08-09
Kaitlin C Venere1003Spain2026-08-03
Juan W Tollner1004Russia2026-07-13
Wickens Q Kusko1005Japan2026-07-19
Clifford M Gillian1006Canada2026-07-20
Ivar A Shinko1007France2026-08-01
Kaitlin Z Gillian1008France2026-08-09
Alejandro Y Campain1009Canada2026-07-14
David O Darakjy1010United Kingdom2026-08-06
Mujtaba R Maclead1011Brazil2026-08-09
Cody D Stockham1012Canada2026-07-31
Jones V Rulapaugh1013United Kingdom2026-07-30
Francesco F Shinko1014Japan2026-07-14
Misaki G Paprocki1015Russia2026-07-29
Mayumi E Rim1016France2026-07-11
Ivar W Royster1017Canada2026-08-02
Maria R Maclead1018Italy2026-07-29
Stacey M Rulapaugh1019Germany2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony J GillianRussiaIoni Bowcher NEW
Silvio Y StensethArgentinaBernardo Dominic NEW
Izzy W GillianCanadaAnna Fali QUALIFIED
Silvio N StensethGermanyIvan Magalhaes PROPOSAL
Mayumi T FigeroaArgentinaStephen Shaw NEGOTIATION
Chavez Q IturbideJapanAmy Elsner PROPOSAL
Chavez E KuskoCanadaIoni Bowcher NEW
Morrow E FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Mayumi L VocelkaCanadaIvan Magalhaes PROPOSAL
Ricardo N KolmetzIndiaAmy Elsner UNQUALIFIED
Faith I OstroskySpainStephen Shaw QUALIFIED
Arvin K FerenczGermanyAmy Elsner PROPOSAL
Mujtaba D FigeroaFranceIoni Bowcher NEGOTIATION
Francesco T MarrierRussiaIvan Magalhaes PROPOSAL
Silvio Q TollnerIndiaIvan Magalhaes NEGOTIATION
Clifford G BowleyGermanyElwin Sharvill NEW
Emily G IturbideArgentinaIvan Magalhaes NEGOTIATION
Darci E AmigonUnited KingdomOnyama Limba UNQUALIFIED
Stacey B ShinkoBrazilStephen Shaw PROPOSAL
Salvatore B FlosiCanadaBernardo Dominic QUALIFIED
Greenwood W PaprockiIndiaStephen Shaw NEW
Aditya S GlickAustraliaXuxue Feng PROPOSAL
Octavia Y RutaSpainXuxue Feng QUALIFIED
Juan B RutaItalyAnna Fali PROPOSAL
Francesco T PoquetteGermanyAnna Fali NEGOTIATION
David I GlickRussiaIoni Bowcher UNQUALIFIED
Costa H BologniaCanadaElwin Sharvill UNQUALIFIED
Murillo O GillianJapanAnna Fali RENEWAL
Salvatore K MaletArgentinaIoni Bowcher NEW
Chavez L DilliardCanadaAmy Elsner NEGOTIATION
Kadeem W CaldareraUnited KingdomIoni Bowcher PROPOSAL
Chavez D RoysterArgentinaStephen Shaw UNQUALIFIED
Clifford M MaletArgentinaIvan Magalhaes QUALIFIED
Clifford T FollerFranceOnyama Limba PROPOSAL
Jeanfrancois B AlbaresJapanIoni Bowcher PROPOSAL
David I MorascaJapanXuxue Feng QUALIFIED
Wickens P CaldareraIndiaXuxue Feng NEGOTIATION
Aika P VenereRussiaAsiya Javayant RENEWAL
Octavia N OstroskyGermanyAnna Fali QUALIFIED
Mujtaba T ShinkoBrazilAnna Fali 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>