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
Faith G IturbideBrazilElwin Sharvill NEW
Munro J OstroskyIndiaOnyama Limba PROPOSAL
Aika Z ShinkoItalyElwin Sharvill PROPOSAL
Sinclair W ChuiBrazilXuxue Feng RENEWAL
Octavia B ButtUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba S WaycottFranceOnyama Limba PROPOSAL
Kaitlin B MarrierIndiaBernardo Dominic NEGOTIATION
Emily Q CampainItalyOnyama Limba PROPOSAL
Ricardo C PaprockiIndiaBernardo Dominic RENEWAL
Silvio M SlusarskiFranceElwin Sharvill RENEWAL
Munro V NestleJapanAsiya Javayant PROPOSAL
Maisha U TollnerCanadaIvan Magalhaes RENEWAL
Tony H GauchoAustraliaAmy Elsner RENEWAL
Antonio L DarakjyItalyAsiya Javayant PROPOSAL
Ashley S PaprockiJapanAnna Fali PROPOSAL
Cody G CampainCanadaAmy Elsner RENEWAL
Kaitlin N IturbideCanadaIvan Magalhaes PROPOSAL
Aika U FerenczUnited KingdomXuxue Feng QUALIFIED
Tony J SergiIndiaIoni Bowcher NEW
Mujtaba G RulapaughFranceElwin Sharvill UNQUALIFIED
Costa D FigeroaIndiaStephen Shaw UNQUALIFIED
Ivar A AlbaresRussiaAmy Elsner RENEWAL
Salvatore S StensethUnited KingdomXuxue Feng NEW
Aruna S IturbideArgentinaIvan Magalhaes UNQUALIFIED
Misaki A SlusarskiUnited KingdomXuxue Feng PROPOSAL
Kaitlin I AmigonUnited KingdomOnyama Limba NEW
Johnson X ButtFranceAsiya Javayant RENEWAL
Mujtaba P MacleadUnited KingdomBernardo Dominic RENEWAL
Ricardo E StensethAustraliaIvan Magalhaes NEW
Francesco K MarrierCanadaAsiya Javayant PROPOSAL
Munro J WieserRussiaIvan Magalhaes UNQUALIFIED
Sinclair V NickaUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair S GillianArgentinaAmy Elsner NEGOTIATION
Ivar B CampainBrazilAmy Elsner RENEWAL
Jeanfrancois G IturbideUnited KingdomAmy Elsner NEW
Costa X VocelkaRussiaOnyama Limba RENEWAL
Aruna I FlosiGermanyBernardo Dominic NEGOTIATION
Tony Z GauchoFranceXuxue Feng NEW
Darci G GauchoBrazilXuxue Feng UNQUALIFIED
Mujtaba L MarrierAustraliaAsiya Javayant PROPOSAL
Cody Q PerinUnited KingdomAsiya Javayant PROPOSAL
Jennifer C ButtSpainElwin Sharvill RENEWAL
Wickens F DoeCanadaIvan Magalhaes RENEWAL
Murillo Q PoquetteGermanyElwin Sharvill QUALIFIED
Costa I SchemmerBrazilAsiya Javayant RENEWAL
Jeanfrancois V BriddickIndiaElwin Sharvill RENEWAL
Rodrigues W PoquetteSpainOnyama Limba NEGOTIATION
Tony A AlbaresGermanyXuxue Feng QUALIFIED
Claire A FigeroaItalyElwin Sharvill NEW
Rodrigues C DilliardFranceAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Octavia O InouyeSpainAmy Elsner UNQUALIFIED
Salvatore V InouyeGermanyXuxue Feng QUALIFIED
Sinclair X MaletRussiaAsiya Javayant NEGOTIATION
Octavia X GarufiSpainXuxue Feng QUALIFIED
Munro J PaprockiArgentinaAsiya Javayant RENEWAL
Jones W WaycottBrazilAnna Fali PROPOSAL
Morrow T DarakjyCanadaOnyama Limba UNQUALIFIED
Salvatore A CampainArgentinaStephen Shaw UNQUALIFIED
Alejandro Q OstroskyAustraliaBernardo Dominic NEW
Leon Z SergiJapanIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams G SlusarskiJapan2026-06-26Morlong Associates UNQUALIFIED14Ioni Bowcher
1001Silvio B RutaJapan2026-06-27Chemel, James L Cpa NEW68Elwin Sharvill
1002Jennifer Q RoysterRussia2026-06-25Printing Dimensions PROPOSAL99Bernardo Dominic
1003Stacey G GarufiSpain2026-06-29Buckley Miller Wright UNQUALIFIED58Elwin Sharvill
1004Jeanfrancois P SchemmerUnited Kingdom2026-07-09Truhlar And Truhlar Attys QUALIFIED25Onyama Limba
1005Chavez N ShinkoItaly2026-06-28Chemel, James L Cpa RENEWAL38Xuxue Feng
1006Sinclair A GillianUnited Kingdom2026-07-11Truhlar And Truhlar Attys NEGOTIATION94Bernardo Dominic
1007Wickens F MorascaFrance2026-07-02Rangoni Of Florence NEGOTIATION10Bernardo Dominic
1008Jennifer S StockhamIndia2026-07-09Rousseaux, Michael Esq NEGOTIATION31Xuxue Feng
1009James N IturbideUnited Kingdom2026-06-28Benton, John B Jr QUALIFIED3Xuxue Feng
1010Johnson D CaudyUnited Kingdom2026-07-02Chapman, Ross E Esq NEW23Xuxue Feng
1011Ashley N SchemmerAustralia2026-06-14Dorl, James J Esq PROPOSAL48Xuxue Feng
1012Salvatore L SchemmerAustralia2026-06-21Chemel, James L Cpa QUALIFIED47Anna Fali
1013Juan P WieserAustralia2026-07-02Benton, John B Jr NEGOTIATION5Asiya Javayant
1014Tony Q MaletItaly2026-07-01Chemel, James L Cpa NEW74Stephen Shaw
1015Arvin M BowleyAustralia2026-06-23Morlong Associates NEGOTIATION19Elwin Sharvill
1016James V VenereRussia2026-06-19Benton, John B Jr PROPOSAL6Asiya Javayant
1017Jefferson W SlusarskiJapan2026-06-22King, Christopher A Esq NEW46Xuxue Feng
1018Emily I GauchoRussia2026-06-22Rousseaux, Michael Esq PROPOSAL12Stephen Shaw
1019Adams E FerenczCanada2026-06-15Chemel, James L Cpa RENEWAL26Amy Elsner
1020Leon V OldroydArgentina2026-06-13Dorl, James J Esq RENEWAL79Bernardo Dominic
1021Rodrigues Z BologniaBrazil2026-07-05Chemel, James L Cpa NEGOTIATION88Xuxue Feng
1022Munro D RulapaughRussia2026-06-17Commercial Press QUALIFIED69Anna Fali
1023Alejandro X SaylorsItaly2026-06-18Feiner Bros PROPOSAL17Xuxue Feng
1024Jeanfrancois N AmigonRussia2026-06-29Truhlar And Truhlar Attys RENEWAL87Onyama Limba
1025Jefferson K WieserItaly2026-06-16Dorl, James J Esq RENEWAL11Xuxue Feng
1026Julie P NestleRussia2026-07-01Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1027Rodrigues F OstroskyBrazil2026-06-16Feltz Printing Service NEW39Onyama Limba
1028Mayumi D InouyeFrance2026-06-25Feltz Printing Service PROPOSAL38Ioni Bowcher
1029Alejandro S SchemmerItaly2026-07-08Feltz Printing Service RENEWAL22Xuxue Feng
1030Emily M SchemmerBrazil2026-07-11Printing Dimensions NEGOTIATION84Elwin Sharvill
1031Alejandro J OldroydSpain2026-06-19Commercial Press UNQUALIFIED38Stephen Shaw
1032Ivar W AmigonAustralia2026-06-14Benton, John B Jr PROPOSAL93Anna Fali
1033Leon K VocelkaSpain2026-06-17Feltz Printing Service NEGOTIATION37Onyama Limba
1034Alejandro X PaprockiFrance2026-07-02Rousseaux, Michael Esq QUALIFIED56Ioni Bowcher
1035Kaitlin V CampainBrazil2026-07-03Morlong Associates NEW0Onyama Limba
1036Nicolas A WieserItaly2026-07-05Rangoni Of Florence UNQUALIFIED79Amy Elsner
1037Clifford Q RimArgentina2026-06-17Rousseaux, Michael Esq UNQUALIFIED59Bernardo Dominic
1038Maisha I AmigonFrance2026-06-13Buckley Miller Wright PROPOSAL87Bernardo Dominic
1039Claire Q CaudyArgentina2026-06-25King, Christopher A Esq NEGOTIATION82Onyama Limba
1040Ivar Q MacleadItaly2026-07-10Rangoni Of Florence NEW54Ivan Magalhaes
1041Leon Z DilliardArgentina2026-07-05Morlong Associates NEGOTIATION7Bernardo Dominic
1042Cody U VenereBrazil2026-07-06Commercial Press UNQUALIFIED21Stephen Shaw
1043Greenwood R CaldareraArgentina2026-06-14King, Christopher A Esq RENEWAL27Anna Fali
1044Stacey Y WaycottRussia2026-06-20Rangoni Of Florence QUALIFIED93Ivan Magalhaes
1045Juan O IturbideFrance2026-06-19Morlong Associates UNQUALIFIED2Xuxue Feng
1046Leja U SergiGermany2026-06-28Chemel, James L Cpa PROPOSAL20Xuxue Feng
1047Cody H GillianRussia2026-06-14Morlong Associates NEGOTIATION34Bernardo Dominic
1048Misaki K KuskoRussia2026-06-26Truhlar And Truhlar Attys RENEWAL70Xuxue Feng
1049Salvatore N ChuiGermany2026-07-12Chanay, Jeffrey A Esq NEW23Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Julie T DilliardIndiaOnyama Limba QUALIFIED
Antonio J RoysterBrazilAmy Elsner UNQUALIFIED
Deepesh D MacleadAustraliaIvan Magalhaes QUALIFIED
Salvatore R GauchoSpainStephen Shaw RENEWAL
Mayumi W PaprockiArgentinaElwin Sharvill RENEWAL
Emily Q KolmetzUnited KingdomIvan Magalhaes NEW
Kadeem R CampainAustraliaIoni Bowcher NEGOTIATION
Jones C KolmetzSpainBernardo Dominic QUALIFIED
Isabel R KolmetzAustraliaOnyama Limba QUALIFIED
Juan W RimIndiaBernardo Dominic UNQUALIFIED
Kaitlin F BriddickGermanyBernardo Dominic PROPOSAL
Deepesh A GarufiSpainIoni Bowcher NEW
Faith X MarrierIndiaOnyama Limba RENEWAL
Mayumi P NestleAustraliaAnna Fali RENEWAL
Ivar R GarufiJapanXuxue Feng QUALIFIED
Greenwood N GlickJapanIoni Bowcher NEGOTIATION
Clifford T AlbaresGermanyOnyama Limba UNQUALIFIED
Leon W SaylorsGermanyBernardo Dominic QUALIFIED
Isabel Z WaycottIndiaAnna Fali PROPOSAL
Maisha C BowleyIndiaBernardo Dominic QUALIFIED
Costa K ChuiAustraliaBernardo Dominic RENEWAL
Salvatore V PerinBrazilOnyama Limba NEW
Wickens W MaletBrazilElwin Sharvill NEW
Leja C GlickUnited KingdomIoni Bowcher RENEWAL
Adams T CampainArgentinaStephen Shaw PROPOSAL
Julie O DilliardArgentinaElwin Sharvill NEW
Alejandro L AlbaresIndiaOnyama Limba NEGOTIATION
Claire Z GlickIndiaElwin Sharvill PROPOSAL
Maisha Q SaylorsSpainAmy Elsner QUALIFIED
Izzy B RimCanadaElwin Sharvill NEW
Salvatore N ButtFranceIoni Bowcher RENEWAL
Rodrigues Z MaletCanadaStephen Shaw NEW
Leon Q WieserIndiaElwin Sharvill NEGOTIATION
Nicolas N CampainSpainOnyama Limba NEGOTIATION
Ricardo W FerenczFranceAsiya Javayant QUALIFIED
Salvatore M RutaUnited KingdomStephen Shaw NEGOTIATION
Jennifer A OstroskyGermanyElwin Sharvill PROPOSAL
Smith R FollerUnited KingdomAnna Fali RENEWAL
Leja S WhobreyJapanAnna Fali PROPOSAL
Stacey D StensethUnited KingdomStephen Shaw NEW
Aruna Z DilliardJapanBernardo Dominic QUALIFIED
Murillo A FerenczAustraliaElwin Sharvill QUALIFIED
David D MorascaFranceIoni Bowcher RENEWAL
Izzy B CaldareraArgentinaStephen Shaw UNQUALIFIED
Maria F KolmetzItalyAnna Fali NEGOTIATION
Francesco O SlusarskiAustraliaXuxue Feng PROPOSAL
Kadeem B PaprockiJapanXuxue Feng QUALIFIED
Johnson W FerenczFranceAmy Elsner NEW
Deepesh C MaletSpainOnyama Limba NEW
Sinclair E MorascaIndiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Jeanfrancois L Gaucho
Maisha G Kolmetz
Leja N Albares
Izzy Y Bowley
Maisha C Nicka
Wickens L Perin
Nicolas T Flosi
Munro B Malet
Adams E Saylors
Maria P Amigon
Ivar R Schemmer
Maria L Amigon
Francesco H Ostrosky
Kadeem A Albares
Maisha U Maclead
Kadeem J Bolognia
Francesco E Stockham
Mujtaba N Bowley
Ricardo L Sergi
Greenwood Q Waycott
Silvio A Garufi
Alejandro G Shinko
Mujtaba K Kolmetz
Adams V Paprocki
Juan W Kolmetz
Maisha Y Inouye
Arvin V Bolognia
Cody E Chui
Jeanfrancois H Caldarera
Salvatore D Saylors
Nicolas D Oldroyd
Ivar P Caldarera
Tony Q Garufi
Jones I Vocelka
Izzy Y Waycott
Silvio U Poquette
Francesco G Figeroa
Munro F Nestle
David I Glick
Ivar D Morasca
Mujtaba U Garufi
Rodrigues N Gillian
Darci Q Doe
Jefferson N Figeroa
Emily Y Shinko
Aditya W Rim
Greenwood U Flosi
Munro X Gaucho
Maria Q Stockham
Octavia W Royster
IdCountryDate
1000United Kingdom2026-06-24
1001Spain2026-06-30
1002Spain2026-06-23
1003Japan2026-07-03
1004India2026-06-23
1005Australia2026-06-22
1006Japan2026-06-16
1007India2026-06-13
1008Argentina2026-07-07
1009Japan2026-06-20
1010India2026-07-10
1011Brazil2026-06-28
1012Canada2026-06-26
1013Spain2026-07-10
1014Italy2026-06-17
1015Spain2026-06-26
1016Italy2026-06-13
1017Brazil2026-07-03
1018Canada2026-06-25
1019Germany2026-07-08
1020United Kingdom2026-07-02
1021Brazil2026-06-13
1022Italy2026-06-28
1023India2026-07-12
1024India2026-06-15
1025Brazil2026-06-27
1026Argentina2026-07-03
1027Brazil2026-06-18
1028Italy2026-07-12
1029Spain2026-06-19
1030Italy2026-06-22
1031France2026-07-05
1032United Kingdom2026-06-17
1033Spain2026-06-28
1034Brazil2026-06-13
1035Italy2026-06-30
1036Russia2026-06-20
1037United Kingdom2026-07-08
1038Brazil2026-07-07
1039Italy2026-06-29
1040Australia2026-07-01
1041Russia2026-06-15
1042Russia2026-06-24
1043Australia2026-06-14
1044Spain2026-06-26
1045Australia2026-06-27
1046Germany2026-07-08
1047India2026-06-14
1048Australia2026-06-28
1049France2026-06-27

On-Demand Data

NameIdCountryDate
Salvatore X Ostrosky1000Italy2026-06-25
Juan N Nicka1001Germany2026-06-27
Francesco F Glick1002Australia2026-07-07
Smith K Rim1003Spain2026-06-25
Faith X Caldarera1004Italy2026-06-22
Misaki K Chui1005Canada2026-06-30
Salvatore Y Rim1006Spain2026-07-02
Chavez H Caudy1007Canada2026-07-03
Nicolas F Caudy1008India2026-06-30
Claire Q Flosi1009France2026-06-14
Maria Y Oldroyd1010Brazil2026-06-16
James W Slusarski1011Russia2026-07-07
Adams C Poquette1012Argentina2026-07-10
Murillo N Kolmetz1013Japan2026-06-18
Greenwood U Inouye1014France2026-07-01
Juan X Morasca1015Russia2026-06-29
Greenwood W Bowley1016Australia2026-06-17
Adams X Stenseth1017France2026-07-11
Jones J Iturbide1018Italy2026-06-28
Ivar N Bowley1019France2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya J KolmetzIndiaIoni Bowcher PROPOSAL
Costa K FollerAustraliaAsiya Javayant RENEWAL
Juan F WhobreyJapanAsiya Javayant NEGOTIATION
Clifford I InouyeItalyAnna Fali QUALIFIED
Rodrigues U MaletCanadaOnyama Limba NEW
Wickens U FigeroaGermanyAmy Elsner NEW
Ashley P VocelkaAustraliaAmy Elsner QUALIFIED
Antonio A WhobreyIndiaOnyama Limba QUALIFIED
Morrow K DarakjyRussiaAmy Elsner PROPOSAL
Francesco I KolmetzItalyIvan Magalhaes RENEWAL
Morrow P TollnerCanadaAmy Elsner PROPOSAL
Murillo O VocelkaSpainXuxue Feng QUALIFIED
Costa O NickaAustraliaAnna Fali UNQUALIFIED
Arvin F GlickFranceAsiya Javayant UNQUALIFIED
Wickens Y PerinCanadaStephen Shaw QUALIFIED
Ricardo Z GauchoRussiaAmy Elsner QUALIFIED
Faith T GauchoGermanyAnna Fali UNQUALIFIED
Leon W SergiGermanyAnna Fali RENEWAL
Costa M GillianFranceIoni Bowcher UNQUALIFIED
Darci D SaylorsArgentinaIvan Magalhaes PROPOSAL
Darci I MaletBrazilBernardo Dominic QUALIFIED
Munro Q OstroskyRussiaAnna Fali RENEWAL
Jefferson Y FigeroaAustraliaAnna Fali PROPOSAL
Ricardo Q OstroskyRussiaAmy Elsner UNQUALIFIED
David S FlosiSpainAsiya Javayant RENEWAL
Maisha A ChuiSpainBernardo Dominic PROPOSAL
Antonio I CaudyItalyStephen Shaw UNQUALIFIED
Maisha S DoeRussiaBernardo Dominic NEW
Darci U MacleadArgentinaAsiya Javayant QUALIFIED
Morrow T CampainAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois M DarakjySpainAsiya Javayant RENEWAL
Emily O AmigonBrazilIoni Bowcher QUALIFIED
Wickens X RulapaughIndiaXuxue Feng NEW
Misaki G InouyeSpainElwin Sharvill UNQUALIFIED
Morrow B PerinUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois B AlbaresAustraliaIoni Bowcher UNQUALIFIED
James E DilliardArgentinaAsiya Javayant RENEWAL
Ivar F AlbaresCanadaIoni Bowcher UNQUALIFIED
David J RoysterBrazilAnna Fali UNQUALIFIED
Julie N PoquetteGermanyBernardo Dominic RENEWAL

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