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
Johnson P VocelkaRussiaBernardo Dominic NEGOTIATION
Aditya Z KolmetzBrazilStephen Shaw QUALIFIED
Maria U MarrierAustraliaXuxue Feng RENEWAL
Greenwood S KolmetzSpainIoni Bowcher UNQUALIFIED
Deepesh P VocelkaItalyStephen Shaw RENEWAL
Stacey I SlusarskiRussiaXuxue Feng QUALIFIED
Tony X MorascaJapanBernardo Dominic PROPOSAL
Mujtaba J DarakjyGermanyStephen Shaw NEW
Silvio C DilliardArgentinaElwin Sharvill RENEWAL
Stacey I AlbaresArgentinaAmy Elsner RENEWAL
Costa B GlickSpainIoni Bowcher QUALIFIED
Julie H GillianUnited KingdomAmy Elsner UNQUALIFIED
Maisha B MaletIndiaAnna Fali RENEWAL
Jones W ButtUnited KingdomBernardo Dominic NEW
Ricardo A DoeIndiaElwin Sharvill PROPOSAL
Stacey L RimGermanyXuxue Feng UNQUALIFIED
David M AlbaresIndiaStephen Shaw PROPOSAL
Aditya Y MacleadUnited KingdomIoni Bowcher NEGOTIATION
Salvatore W ShinkoJapanAnna Fali QUALIFIED
Ricardo Z RulapaughUnited KingdomOnyama Limba QUALIFIED
Leon W SlusarskiCanadaXuxue Feng NEGOTIATION
Francesco G CampainBrazilIoni Bowcher RENEWAL
David T StockhamRussiaStephen Shaw PROPOSAL
Smith K GlickCanadaBernardo Dominic PROPOSAL
Johnson L WaycottFranceAnna Fali PROPOSAL
Jeanfrancois Q FigeroaFranceAmy Elsner NEW
Isabel C MarrierCanadaBernardo Dominic PROPOSAL
Aika X IturbideCanadaAsiya Javayant PROPOSAL
Faith X AmigonItalyAmy Elsner RENEWAL
Mayumi F SaylorsRussiaElwin Sharvill RENEWAL
Mujtaba Y SergiItalyOnyama Limba PROPOSAL
Morrow Z DarakjyBrazilOnyama Limba PROPOSAL
Kadeem U AlbaresRussiaAnna Fali NEW
Aditya D RutaGermanyOnyama Limba UNQUALIFIED
Aditya W GarufiFranceElwin Sharvill NEGOTIATION
Ricardo L RulapaughJapanElwin Sharvill PROPOSAL
Smith S AlbaresSpainElwin Sharvill QUALIFIED
Jeanfrancois K BriddickAustraliaIvan Magalhaes RENEWAL
James D KolmetzFranceXuxue Feng UNQUALIFIED
Claire E OldroydSpainIvan Magalhaes RENEWAL
Stacey E MacleadIndiaAmy Elsner QUALIFIED
Deepesh A WieserAustraliaElwin Sharvill QUALIFIED
Kaitlin A VenereSpainAnna Fali UNQUALIFIED
Ricardo O PaprockiItalyAnna Fali NEGOTIATION
Jennifer D IturbideAustraliaIvan Magalhaes NEW
Maria L MaletGermanyOnyama Limba NEW
Maria K PerinIndiaBernardo Dominic RENEWAL
Rodrigues O ChuiIndiaAnna Fali RENEWAL
Johnson G CaudyRussiaXuxue Feng NEW
Wickens L GarufiItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas E OldroydAustraliaIvan Magalhaes QUALIFIED
Ivar M MaletAustraliaAsiya Javayant NEW
Leja U FlosiFranceIoni Bowcher NEW
Jefferson I GarufiFranceBernardo Dominic NEW
Chavez J DoeJapanAsiya Javayant NEW
Johnson F BriddickIndiaIoni Bowcher NEW
Aruna X SlusarskiBrazilStephen Shaw QUALIFIED
Francesco V VocelkaArgentinaStephen Shaw RENEWAL
Murillo O RutaFranceBernardo Dominic QUALIFIED
Mujtaba S FollerFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony N CaldareraAustralia2026-06-30King, Christopher A Esq PROPOSAL2Stephen Shaw
1001Ivar K OldroydJapan2026-07-10King, Christopher A Esq QUALIFIED18Onyama Limba
1002Tony E WhobreyBrazil2026-07-24Feiner Bros RENEWAL0Bernardo Dominic
1003Alejandro I OstroskyRussia2026-07-21Printing Dimensions QUALIFIED5Amy Elsner
1004Misaki S WaycottUnited Kingdom2026-07-12Printing Dimensions PROPOSAL40Ioni Bowcher
1005Stacey S KuskoRussia2026-07-08Chanay, Jeffrey A Esq QUALIFIED30Elwin Sharvill
1006Faith Y WaycottArgentina2026-07-25Dorl, James J Esq NEW94Anna Fali
1007Ricardo N FigeroaIndia2026-07-20Feltz Printing Service PROPOSAL13Stephen Shaw
1008Emily N CaudyJapan2026-07-15Chanay, Jeffrey A Esq QUALIFIED88Xuxue Feng
1009Costa W BriddickRussia2026-07-17Rousseaux, Michael Esq PROPOSAL7Ioni Bowcher
1010Nicolas E TollnerJapan2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED51Elwin Sharvill
1011Arvin A NestleCanada2026-07-26Rousseaux, Michael Esq QUALIFIED28Xuxue Feng
1012Alejandro R FigeroaItaly2026-07-06Rousseaux, Michael Esq RENEWAL70Amy Elsner
1013Stacey I VenereCanada2026-06-30Morlong Associates PROPOSAL45Anna Fali
1014David Q OldroydRussia2026-07-03Rangoni Of Florence NEW39Anna Fali
1015Adams S VocelkaRussia2026-07-24Rangoni Of Florence PROPOSAL61Amy Elsner
1016Jeanfrancois Z BriddickAustralia2026-07-24Truhlar And Truhlar Attys UNQUALIFIED55Ivan Magalhaes
1017Izzy F GarufiArgentina2026-07-15Truhlar And Truhlar Attys UNQUALIFIED86Asiya Javayant
1018Jennifer R VocelkaJapan2026-07-27Dorl, James J Esq QUALIFIED50Asiya Javayant
1019Cody X TollnerFrance2026-07-27King, Christopher A Esq NEGOTIATION91Xuxue Feng
1020Octavia B MaletRussia2026-07-03Truhlar And Truhlar Attys UNQUALIFIED5Amy Elsner
1021Aditya C RoysterFrance2026-07-18Buckley Miller Wright QUALIFIED56Stephen Shaw
1022Aditya N GlickUnited Kingdom2026-07-28Truhlar And Truhlar Attys UNQUALIFIED92Bernardo Dominic
1023Emily Y FlosiJapan2026-07-16Benton, John B Jr RENEWAL27Stephen Shaw
1024Octavia S OldroydIndia2026-07-29Benton, John B Jr NEGOTIATION75Anna Fali
1025Cody I NickaUnited Kingdom2026-07-02Dorl, James J Esq NEW42Ivan Magalhaes
1026Emily E IturbideItaly2026-07-08Morlong Associates NEW15Amy Elsner
1027Claire Q MorascaUnited Kingdom2026-07-26Commercial Press PROPOSAL48Amy Elsner
1028Sinclair T KolmetzCanada2026-07-14Chapman, Ross E Esq NEGOTIATION77Anna Fali
1029Claire W StensethGermany2026-07-14Rangoni Of Florence QUALIFIED17Ioni Bowcher
1030David W VenereItaly2026-07-07Rangoni Of Florence UNQUALIFIED22Stephen Shaw
1031Claire S ChuiFrance2026-07-25Chapman, Ross E Esq PROPOSAL20Onyama Limba
1032Johnson B SergiJapan2026-07-15Feiner Bros NEGOTIATION53Onyama Limba
1033Smith F StensethGermany2026-07-18Morlong Associates PROPOSAL99Anna Fali
1034James F GlickGermany2026-07-11Benton, John B Jr NEW22Onyama Limba
1035Antonio N StensethJapan2026-07-11King, Christopher A Esq RENEWAL57Elwin Sharvill
1036Cody N ButtSpain2026-07-27Benton, John B Jr PROPOSAL48Anna Fali
1037Sinclair S InouyeArgentina2026-07-10Truhlar And Truhlar Attys NEGOTIATION96Ivan Magalhaes
1038Tony L FlosiJapan2026-07-29Feltz Printing Service UNQUALIFIED86Ivan Magalhaes
1039Clifford O AlbaresUnited Kingdom2026-07-20Chapman, Ross E Esq NEGOTIATION21Ivan Magalhaes
1040Aika H OstroskyUnited Kingdom2026-07-08Commercial Press NEGOTIATION56Asiya Javayant
1041Nicolas E GillianAustralia2026-07-09Chemel, James L Cpa QUALIFIED83Anna Fali
1042Emily F TollnerFrance2026-07-27Printing Dimensions RENEWAL28Ivan Magalhaes
1043Izzy G NickaJapan2026-07-19Chapman, Ross E Esq NEGOTIATION28Onyama Limba
1044Izzy B KuskoBrazil2026-07-08Commercial Press PROPOSAL36Asiya Javayant
1045Munro J GauchoUnited Kingdom2026-07-05Morlong Associates NEGOTIATION69Elwin Sharvill
1046Silvio A RulapaughJapan2026-07-25Chemel, James L Cpa PROPOSAL83Ivan Magalhaes
1047Mayumi J GlickFrance2026-07-05Commercial Press RENEWAL41Onyama Limba
1048Kaitlin K TollnerBrazil2026-07-27King, Christopher A Esq PROPOSAL4Anna Fali
1049Ricardo P StockhamSpain2026-07-08Chanay, Jeffrey A Esq UNQUALIFIED77Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Munro V BriddickAustraliaIoni Bowcher NEGOTIATION
Julie R BowleyUnited KingdomOnyama Limba UNQUALIFIED
Clifford S MorascaJapanStephen Shaw NEW
Leja I MaletIndiaStephen Shaw NEW
Julie F RoysterRussiaIoni Bowcher NEGOTIATION
Deepesh N DilliardArgentinaElwin Sharvill RENEWAL
Nicolas K DilliardIndiaOnyama Limba NEGOTIATION
Maria T CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Aruna U FlosiRussiaAsiya Javayant PROPOSAL
Ashley F NickaUnited KingdomIoni Bowcher NEW
Kadeem H AlbaresCanadaXuxue Feng UNQUALIFIED
Cody N GlickItalyElwin Sharvill NEW
Octavia B BriddickCanadaAsiya Javayant QUALIFIED
Deepesh Z VenereItalyAsiya Javayant PROPOSAL
Jones M ChuiJapanOnyama Limba PROPOSAL
David U OldroydSpainStephen Shaw PROPOSAL
Maria Y SchemmerJapanXuxue Feng NEW
Juan D IturbideGermanyAsiya Javayant UNQUALIFIED
Claire F CaudyArgentinaElwin Sharvill UNQUALIFIED
Clifford D FlosiRussiaElwin Sharvill PROPOSAL
Costa C RimArgentinaBernardo Dominic UNQUALIFIED
Nicolas A ButtAustraliaIvan Magalhaes RENEWAL
Wickens U BowleyBrazilOnyama Limba RENEWAL
Smith R KuskoBrazilXuxue Feng RENEWAL
Francesco J SergiJapanIvan Magalhaes NEGOTIATION
Morrow B KuskoIndiaBernardo Dominic UNQUALIFIED
Kadeem T RoysterGermanyXuxue Feng RENEWAL
Leon Z MaletItalyElwin Sharvill PROPOSAL
Jennifer E BriddickRussiaStephen Shaw PROPOSAL
Morrow C SaylorsRussiaAmy Elsner NEGOTIATION
James Z MorascaJapanBernardo Dominic RENEWAL
Chavez R AmigonRussiaOnyama Limba NEW
Greenwood X RimJapanIoni Bowcher NEGOTIATION
Juan C GillianBrazilIvan Magalhaes RENEWAL
David N SchemmerCanadaElwin Sharvill NEGOTIATION
Maria A PaprockiCanadaStephen Shaw NEW
Maisha S OstroskyBrazilIoni Bowcher NEW
Aruna T ShinkoAustraliaIoni Bowcher UNQUALIFIED
Silvio S WhobreyCanadaAsiya Javayant NEGOTIATION
Salvatore T GauchoFranceAsiya Javayant RENEWAL
Juan X KolmetzJapanAmy Elsner PROPOSAL
Darci H MacleadItalyIvan Magalhaes NEW
Kaitlin H CaldareraArgentinaBernardo Dominic NEW
Costa A OstroskyItalyBernardo Dominic UNQUALIFIED
Costa E FigeroaArgentinaXuxue Feng NEW
Cody V RulapaughIndiaXuxue Feng NEGOTIATION
Ashley Y CaldareraFranceAsiya Javayant QUALIFIED
Munro S RimIndiaStephen Shaw QUALIFIED
Sinclair Q KolmetzItalyStephen Shaw UNQUALIFIED
Murillo B CaldareraSpainIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Jeanfrancois V Caldarera
Darci N Vocelka
Aditya E Caldarera
Misaki G Shinko
Kaitlin M Venere
Maria Y Oldroyd
Aruna Q Gaucho
Aditya B Saylors
Leja B Gaucho
Leon Y Figeroa
Clifford W Whobrey
Jones J Saylors
Stacey B Morasca
Smith E Slusarski
Ivar E Bowley
Maisha W Foller
Cody J Malet
Deepesh Z Albares
Adams P Vocelka
Salvatore C Dilliard
Munro I Figeroa
Deepesh N Amigon
Alejandro Z Kolmetz
Munro I Flosi
Adams D Glick
Cody A Nestle
Kadeem P Caldarera
Chavez T Ostrosky
Juan X Darakjy
Deepesh E Gaucho
James S Morasca
Munro O Doe
Sinclair H Maclead
Antonio V Darakjy
Jefferson F Caudy
Jennifer R Flosi
David B Albares
Julie F Oldroyd
Izzy X Caudy
Aika P Inouye
Octavia H Ostrosky
Isabel E Royster
Ivar P Kolmetz
Maria D Wieser
Kadeem C Chui
Misaki P Poquette
Costa W Gillian
Faith C Gillian
Cody G Chui
Isabel M Maclead
IdCountryDate
1000Japan2026-07-17
1001Russia2026-06-30
1002Argentina2026-07-15
1003Japan2026-07-11
1004Canada2026-07-09
1005Argentina2026-07-20
1006United Kingdom2026-07-15
1007Japan2026-07-08
1008Australia2026-07-28
1009Brazil2026-07-12
1010Spain2026-07-06
1011France2026-07-26
1012Italy2026-07-08
1013Canada2026-07-16
1014India2026-07-21
1015Brazil2026-07-18
1016France2026-07-28
1017United Kingdom2026-07-07
1018United Kingdom2026-07-26
1019France2026-07-20
1020Spain2026-07-07
1021India2026-07-05
1022Italy2026-07-19
1023Canada2026-07-01
1024Japan2026-07-20
1025Argentina2026-07-06
1026Brazil2026-07-11
1027United Kingdom2026-07-06
1028Spain2026-07-26
1029India2026-07-08
1030United Kingdom2026-07-15
1031Brazil2026-07-10
1032Italy2026-07-11
1033Brazil2026-07-23
1034India2026-07-11
1035Argentina2026-07-14
1036Argentina2026-07-18
1037Italy2026-06-30
1038Australia2026-07-28
1039France2026-07-15
1040Russia2026-07-20
1041Spain2026-07-05
1042Brazil2026-07-15
1043France2026-07-17
1044Japan2026-07-03
1045Australia2026-07-20
1046Japan2026-07-18
1047Canada2026-07-15
1048Brazil2026-07-24
1049Russia2026-07-12

On-Demand Data

NameIdCountryDate
Aruna R Foller1000Russia2026-07-10
Aika W Darakjy1001Australia2026-07-25
Arvin T Foller1002Germany2026-07-11
Ivar F Ruta1003France2026-07-19
Rodrigues J Doe1004Canada2026-07-19
Clifford K Kusko1005Canada2026-07-20
Nicolas X Sergi1006France2026-07-14
Ricardo M Royster1007Brazil2026-07-29
Smith W Perin1008France2026-07-14
Julie B Sergi1009Brazil2026-07-18
Izzy I Gillian1010France2026-07-11
Maisha P Darakjy1011United Kingdom2026-07-12
Smith H Bolognia1012United Kingdom2026-07-03
David I Albares1013Japan2026-07-08
Jones S Gillian1014Brazil2026-07-03
Maisha W Ferencz1015Argentina2026-07-07
Misaki X Rulapaugh1016Italy2026-07-23
Deepesh E Glick1017France2026-07-09
Ashley K Saylors1018Brazil2026-07-11
Leja W Royster1019Germany2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire C BowleySpainIvan Magalhaes QUALIFIED
Rodrigues H NickaIndiaXuxue Feng RENEWAL
Munro X ShinkoIndiaElwin Sharvill QUALIFIED
Costa A VenereItalyAnna Fali UNQUALIFIED
Izzy K WieserAustraliaIoni Bowcher UNQUALIFIED
Murillo T MorascaSpainOnyama Limba NEGOTIATION
Johnson C VocelkaItalyIoni Bowcher RENEWAL
Smith V NickaAustraliaIoni Bowcher NEW
Rodrigues P NickaGermanyOnyama Limba RENEWAL
Smith U KolmetzBrazilElwin Sharvill RENEWAL
Maisha E GillianCanadaXuxue Feng NEGOTIATION
Stacey N DoeFranceAsiya Javayant NEGOTIATION
Darci N KolmetzItalyIoni Bowcher NEGOTIATION
Stacey W IturbideBrazilStephen Shaw NEGOTIATION
Tony I KolmetzItalyStephen Shaw RENEWAL
Smith D WieserGermanyIoni Bowcher NEW
Silvio D WieserUnited KingdomStephen Shaw NEGOTIATION
Alejandro Y ButtJapanIvan Magalhaes QUALIFIED
Ivar Y MorascaIndiaOnyama Limba NEGOTIATION
Isabel N RoysterAustraliaIoni Bowcher NEW
Leon Q BriddickBrazilBernardo Dominic RENEWAL
Wickens M DarakjyIndiaAsiya Javayant RENEWAL
Kadeem B StensethBrazilStephen Shaw NEW
Mujtaba H MaletSpainIvan Magalhaes PROPOSAL
Nicolas T RoysterBrazilStephen Shaw NEGOTIATION
Octavia M FigeroaCanadaStephen Shaw NEW
Antonio G FerenczArgentinaStephen Shaw QUALIFIED
Smith V VenereAustraliaStephen Shaw RENEWAL
Ashley G InouyeItalyXuxue Feng UNQUALIFIED
Arvin Y CampainCanadaIvan Magalhaes QUALIFIED
Ivar R RulapaughItalyIvan Magalhaes UNQUALIFIED
Mujtaba T MorascaAustraliaIvan Magalhaes NEGOTIATION
Mayumi J PerinFranceOnyama Limba RENEWAL
Mayumi Q GlickGermanyAnna Fali PROPOSAL
Ashley A DilliardIndiaOnyama Limba UNQUALIFIED
James E MorascaRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois R GlickIndiaElwin Sharvill RENEWAL
Mujtaba J RimGermanyIvan Magalhaes PROPOSAL
Aditya N BriddickUnited KingdomElwin Sharvill QUALIFIED
Juan C SergiIndiaElwin Sharvill 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>