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
Cody O MacleadItalyAsiya Javayant RENEWAL
Antonio F WhobreyFranceElwin Sharvill NEW
Salvatore R AlbaresAustraliaBernardo Dominic PROPOSAL
Aika R NickaBrazilAsiya Javayant NEGOTIATION
Mujtaba C AmigonRussiaStephen Shaw PROPOSAL
Jeanfrancois E CaldareraCanadaStephen Shaw QUALIFIED
Tony G MarrierArgentinaAsiya Javayant RENEWAL
Jefferson S OstroskySpainIvan Magalhaes RENEWAL
Izzy M WaycottUnited KingdomAmy Elsner NEGOTIATION
Ivar W BowleyAustraliaStephen Shaw RENEWAL
Arvin J RoysterCanadaXuxue Feng UNQUALIFIED
Silvio G BriddickFranceStephen Shaw RENEWAL
Leja W MaletUnited KingdomAsiya Javayant PROPOSAL
Isabel R NickaGermanyXuxue Feng UNQUALIFIED
Jones G RulapaughFranceAmy Elsner RENEWAL
Kaitlin C RulapaughBrazilStephen Shaw PROPOSAL
Mujtaba J PaprockiCanadaAsiya Javayant NEGOTIATION
Arvin S MaletGermanyAmy Elsner RENEWAL
Jennifer W PerinRussiaAmy Elsner UNQUALIFIED
Octavia K MorascaRussiaAsiya Javayant RENEWAL
Ivar A MarrierBrazilElwin Sharvill NEW
Aruna G NestleIndiaIoni Bowcher PROPOSAL
Costa X SlusarskiCanadaIvan Magalhaes NEGOTIATION
Adams F NickaIndiaXuxue Feng QUALIFIED
Maria T CaudyFranceAmy Elsner NEW
David X SchemmerGermanyIvan Magalhaes RENEWAL
Kaitlin G WieserArgentinaIvan Magalhaes NEW
Aditya S GarufiFranceElwin Sharvill UNQUALIFIED
Ricardo E StensethRussiaIvan Magalhaes QUALIFIED
Leja H GarufiSpainIvan Magalhaes NEGOTIATION
Stacey S OstroskyCanadaOnyama Limba RENEWAL
Emily O NickaArgentinaXuxue Feng NEW
Murillo C InouyeJapanAsiya Javayant RENEWAL
Emily G StensethJapanXuxue Feng NEW
Rodrigues B StockhamJapanAsiya Javayant NEW
Leja H InouyeArgentinaAnna Fali NEW
Jefferson Q AlbaresUnited KingdomBernardo Dominic NEW
James W BologniaSpainBernardo Dominic NEW
Clifford R TollnerCanadaElwin Sharvill UNQUALIFIED
Kadeem N AlbaresRussiaIvan Magalhaes QUALIFIED
Adams Z DarakjyCanadaStephen Shaw QUALIFIED
Sinclair H MaletSpainIvan Magalhaes RENEWAL
Alejandro B GillianBrazilBernardo Dominic UNQUALIFIED
Maisha M GauchoSpainIvan Magalhaes PROPOSAL
Ivar T PoquetteItalyStephen Shaw NEW
Jones Q MacleadJapanIoni Bowcher NEW
Faith X MarrierFranceIoni Bowcher PROPOSAL
Adams O ShinkoItalyAnna Fali RENEWAL
Aditya V WaycottUnited KingdomAmy Elsner NEGOTIATION
Tony D FlosiFranceElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody T StockhamUnited KingdomAnna Fali UNQUALIFIED
Claire S SaylorsSpainXuxue Feng QUALIFIED
Stacey R SchemmerGermanyAsiya Javayant NEW
Smith P MacleadGermanyAsiya Javayant PROPOSAL
Julie G WhobreyArgentinaIvan Magalhaes NEW
Salvatore Y StensethGermanyAsiya Javayant NEW
Jones G CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Aditya L AmigonCanadaOnyama Limba UNQUALIFIED
Izzy E DilliardItalyOnyama Limba UNQUALIFIED
Tony L GarufiRussiaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro L ShinkoGermany2026-06-19Chapman, Ross E Esq UNQUALIFIED21Asiya Javayant
1001Kaitlin G KolmetzSpain2026-06-16Printing Dimensions QUALIFIED56Onyama Limba
1002Cody K StensethUnited Kingdom2026-06-19King, Christopher A Esq NEGOTIATION62Onyama Limba
1003Isabel G RulapaughItaly2026-07-04King, Christopher A Esq NEGOTIATION55Amy Elsner
1004Aika U VocelkaIndia2026-06-14Dorl, James J Esq NEGOTIATION67Ivan Magalhaes
1005Ashley Q SchemmerUnited Kingdom2026-07-08Dorl, James J Esq QUALIFIED89Bernardo Dominic
1006Isabel E BologniaUnited Kingdom2026-06-21Feiner Bros NEW97Onyama Limba
1007Morrow N IturbideRussia2026-06-28Feltz Printing Service UNQUALIFIED32Ivan Magalhaes
1008Aditya H GarufiCanada2026-07-06Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1009Leja W GarufiGermany2026-07-11Dorl, James J Esq QUALIFIED75Ivan Magalhaes
1010Jennifer S DilliardAustralia2026-07-11Rangoni Of Florence QUALIFIED2Asiya Javayant
1011Maisha J GarufiAustralia2026-06-28Benton, John B Jr UNQUALIFIED41Asiya Javayant
1012Darci Q WieserIndia2026-07-12Feltz Printing Service NEW15Anna Fali
1013Misaki S RimRussia2026-06-19Dorl, James J Esq QUALIFIED4Bernardo Dominic
1014Misaki X InouyeFrance2026-06-26Feltz Printing Service PROPOSAL15Elwin Sharvill
1015Costa K FollerJapan2026-06-16Dorl, James J Esq RENEWAL79Anna Fali
1016Smith Q SaylorsSpain2026-07-01Benton, John B Jr NEW83Elwin Sharvill
1017Mayumi D StockhamCanada2026-06-25Feltz Printing Service UNQUALIFIED73Ivan Magalhaes
1018Maria K BriddickAustralia2026-07-01King, Christopher A Esq PROPOSAL86Anna Fali
1019Aika K FlosiFrance2026-07-10Printing Dimensions NEW21Onyama Limba
1020Deepesh S KolmetzBrazil2026-06-24Commercial Press PROPOSAL87Asiya Javayant
1021David Q SergiItaly2026-06-30Feiner Bros NEGOTIATION3Asiya Javayant
1022Julie U PaprockiAustralia2026-06-13Buckley Miller Wright NEW12Ivan Magalhaes
1023Juan J StockhamAustralia2026-06-13Feiner Bros QUALIFIED95Ivan Magalhaes
1024Maisha I NestleSpain2026-07-02Rousseaux, Michael Esq QUALIFIED77Amy Elsner
1025Deepesh Q StensethSpain2026-07-04Buckley Miller Wright NEW33Elwin Sharvill
1026Cody U BriddickJapan2026-06-22Commercial Press NEGOTIATION21Ivan Magalhaes
1027Francesco J CaudyAustralia2026-06-29Dorl, James J Esq QUALIFIED60Ioni Bowcher
1028Ashley M ChuiItaly2026-07-04Feiner Bros NEGOTIATION71Asiya Javayant
1029Jeanfrancois N FigeroaArgentina2026-07-12Printing Dimensions NEW91Elwin Sharvill
1030Ivar C BologniaAustralia2026-06-30Benton, John B Jr QUALIFIED41Ioni Bowcher
1031Smith N GauchoArgentina2026-07-10Chanay, Jeffrey A Esq QUALIFIED12Amy Elsner
1032Ricardo P OldroydSpain2026-06-30Rousseaux, Michael Esq RENEWAL39Onyama Limba
1033Leja B MaletIndia2026-06-13Morlong Associates RENEWAL88Stephen Shaw
1034Kadeem U PoquetteFrance2026-07-01Chapman, Ross E Esq UNQUALIFIED29Stephen Shaw
1035Silvio U OldroydBrazil2026-07-08Rousseaux, Michael Esq PROPOSAL40Ioni Bowcher
1036Isabel H FerenczUnited Kingdom2026-06-13Dorl, James J Esq UNQUALIFIED69Bernardo Dominic
1037Morrow J AlbaresAustralia2026-06-19Feiner Bros NEW22Asiya Javayant
1038Cody G GlickUnited Kingdom2026-06-23Printing Dimensions NEGOTIATION84Asiya Javayant
1039Misaki O NestleItaly2026-07-08Morlong Associates NEGOTIATION93Ioni Bowcher
1040Leon W FerenczAustralia2026-06-13Buckley Miller Wright QUALIFIED12Bernardo Dominic
1041Leja L PoquetteAustralia2026-06-15Truhlar And Truhlar Attys PROPOSAL12Elwin Sharvill
1042Ivar N FollerJapan2026-07-03King, Christopher A Esq UNQUALIFIED51Ivan Magalhaes
1043Jeanfrancois B DarakjyUnited Kingdom2026-07-03Commercial Press QUALIFIED26Asiya Javayant
1044Juan C VocelkaArgentina2026-06-26Rangoni Of Florence UNQUALIFIED10Stephen Shaw
1045Claire H GarufiSpain2026-06-19Chemel, James L Cpa NEGOTIATION18Ioni Bowcher
1046Aika I SchemmerRussia2026-07-06Feiner Bros NEGOTIATION98Ioni Bowcher
1047Munro W RulapaughFrance2026-07-07King, Christopher A Esq PROPOSAL70Asiya Javayant
1048Deepesh S SergiFrance2026-06-18Chanay, Jeffrey A Esq NEGOTIATION24Ivan Magalhaes
1049Arvin N DoeSpain2026-06-14Rangoni Of Florence NEW21Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily N ChuiJapanIvan Magalhaes QUALIFIED
Ashley L OldroydIndiaIvan Magalhaes UNQUALIFIED
Stacey L VocelkaGermanyIoni Bowcher NEGOTIATION
Kaitlin Q GlickBrazilElwin Sharvill NEW
Murillo N ShinkoItalyBernardo Dominic NEGOTIATION
Costa D WieserAustraliaBernardo Dominic NEGOTIATION
Aditya D BologniaJapanIoni Bowcher QUALIFIED
Stacey X VenereAustraliaElwin Sharvill QUALIFIED
Ricardo I SaylorsRussiaStephen Shaw NEW
Alejandro N NickaItalyIvan Magalhaes QUALIFIED
Mujtaba X AlbaresGermanyStephen Shaw UNQUALIFIED
Claire Z DoeAustraliaXuxue Feng RENEWAL
Johnson J OstroskyFranceIoni Bowcher NEW
Munro T IturbideJapanBernardo Dominic RENEWAL
Rodrigues C BriddickBrazilOnyama Limba PROPOSAL
Munro S FlosiFranceXuxue Feng RENEWAL
Maria W RutaSpainAnna Fali PROPOSAL
Faith B RoysterFranceStephen Shaw NEGOTIATION
Ricardo I RutaCanadaAmy Elsner PROPOSAL
Tony P WieserAustraliaAmy Elsner QUALIFIED
Jefferson G InouyeCanadaAnna Fali UNQUALIFIED
Octavia W AlbaresItalyIvan Magalhaes RENEWAL
Johnson Q RulapaughUnited KingdomStephen Shaw NEGOTIATION
Chavez K NickaRussiaAmy Elsner NEGOTIATION
Julie F AlbaresItalyIoni Bowcher UNQUALIFIED
Faith K BologniaArgentinaIoni Bowcher UNQUALIFIED
Antonio T KuskoRussiaElwin Sharvill QUALIFIED
Wickens Z KuskoGermanyIvan Magalhaes PROPOSAL
Clifford T WhobreyArgentinaAsiya Javayant NEW
Jennifer P CampainJapanIoni Bowcher UNQUALIFIED
Smith T FigeroaUnited KingdomAnna Fali RENEWAL
Kaitlin H NickaItalyOnyama Limba NEW
Aditya S ButtAustraliaAnna Fali NEGOTIATION
Izzy V WieserSpainBernardo Dominic PROPOSAL
Adams N SaylorsArgentinaAnna Fali NEGOTIATION
Izzy P ButtIndiaAsiya Javayant QUALIFIED
Rodrigues Z FollerSpainAnna Fali QUALIFIED
Costa U PerinBrazilAsiya Javayant PROPOSAL
Silvio R PaprockiIndiaIoni Bowcher UNQUALIFIED
Murillo O NestleIndiaXuxue Feng NEGOTIATION
Aruna G VocelkaCanadaBernardo Dominic RENEWAL
Sinclair C IturbideAustraliaElwin Sharvill QUALIFIED
Ivar G FlosiBrazilAmy Elsner NEGOTIATION
Jennifer X BologniaRussiaIoni Bowcher RENEWAL
Rodrigues H NickaItalyXuxue Feng PROPOSAL
Octavia V OldroydRussiaIoni Bowcher NEGOTIATION
Clifford G SaylorsArgentinaAsiya Javayant PROPOSAL
Ashley W WhobreyGermanyElwin Sharvill NEW
Ricardo B WhobreyArgentinaIvan Magalhaes NEW
Kaitlin M SergiRussiaIvan Magalhaes NEW
Frozen Columns
Name
Kadeem E Vocelka
Maisha C Wieser
Alejandro F Ostrosky
Izzy X Caudy
Silvio I Flosi
Chavez H Perin
Claire H Sergi
Chavez O Gaucho
Jefferson L Chui
Deepesh V Marrier
Maria R Chui
Kaitlin J Royster
Leon B Figeroa
Aruna B Darakjy
Aruna F Morasca
Morrow C Malet
Antonio M Rulapaugh
Aditya F Stockham
Julie R Perin
Morrow F Campain
Emily R Rulapaugh
Jennifer D Wieser
Clifford Q Butt
Cody T Kusko
Smith X Vocelka
Smith C Glick
Johnson T Glick
Izzy K Bowley
James G Wieser
Mayumi J Malet
Octavia Q Perin
Aika V Sergi
Isabel O Nestle
Morrow I Oldroyd
Wickens Y Waycott
Salvatore O Foller
Octavia K Dilliard
Silvio V Campain
Tony H Campain
Tony W Whobrey
Isabel E Iturbide
Aditya C Maclead
Mujtaba P Inouye
Aika Z Iturbide
Sinclair E Malet
Salvatore M Rim
Misaki G Schemmer
Mujtaba Q Bolognia
Ivar R Vocelka
Julie Q Vocelka
IdCountryDate
1000India2026-06-16
1001France2026-06-30
1002India2026-06-14
1003Brazil2026-06-29
1004Japan2026-06-17
1005United Kingdom2026-07-06
1006Japan2026-06-26
1007Canada2026-06-27
1008Japan2026-06-21
1009Italy2026-06-14
1010India2026-07-08
1011India2026-06-27
1012Japan2026-06-28
1013Spain2026-07-11
1014Canada2026-07-10
1015Spain2026-07-08
1016Australia2026-07-01
1017Italy2026-07-08
1018Russia2026-07-08
1019Canada2026-06-26
1020France2026-07-04
1021France2026-06-28
1022France2026-06-28
1023Russia2026-06-23
1024Brazil2026-07-04
1025Japan2026-06-27
1026India2026-07-12
1027Italy2026-07-11
1028Argentina2026-07-01
1029Brazil2026-07-08
1030India2026-06-20
1031Brazil2026-06-29
1032France2026-07-11
1033Australia2026-06-15
1034Australia2026-06-24
1035Japan2026-06-18
1036Canada2026-06-19
1037Italy2026-06-24
1038United Kingdom2026-06-18
1039India2026-06-21
1040United Kingdom2026-07-12
1041Germany2026-06-23
1042Italy2026-06-18
1043Argentina2026-06-13
1044Germany2026-07-12
1045Brazil2026-06-27
1046France2026-07-07
1047France2026-06-30
1048India2026-06-18
1049Italy2026-06-28

On-Demand Data

NameIdCountryDate
Mujtaba B Venere1000Brazil2026-06-15
Greenwood C Tollner1001India2026-06-13
Greenwood G Butt1002Japan2026-07-09
Alejandro D Saylors1003Brazil2026-07-12
Rodrigues O Darakjy1004Japan2026-07-05
Kaitlin O Dilliard1005India2026-07-11
Juan V Caldarera1006Germany2026-07-07
Mayumi I Kusko1007Germany2026-07-03
Adams V Morasca1008Brazil2026-07-03
Silvio O Kolmetz1009Brazil2026-07-04
Izzy C Malet1010Germany2026-07-07
Murillo B Iturbide1011Australia2026-06-21
Claire F Campain1012Argentina2026-06-29
Smith G Rulapaugh1013India2026-06-18
Aika H Paprocki1014Japan2026-07-11
Aruna K Tollner1015Russia2026-07-06
Julie I Garufi1016Australia2026-07-07
Ivar Q Amigon1017Canada2026-06-14
Deepesh W Maclead1018Canada2026-07-08
Rodrigues F Figeroa1019Brazil2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro W RoysterAustraliaAsiya Javayant PROPOSAL
Octavia X PerinSpainAsiya Javayant QUALIFIED
Salvatore T SlusarskiBrazilIvan Magalhaes PROPOSAL
Aika Z GillianCanadaIvan Magalhaes QUALIFIED
Arvin X SchemmerArgentinaAnna Fali NEW
Cody U KuskoRussiaAsiya Javayant NEGOTIATION
Sinclair B StockhamIndiaXuxue Feng NEW
Rodrigues X KolmetzItalyOnyama Limba UNQUALIFIED
Isabel V FigeroaUnited KingdomStephen Shaw PROPOSAL
Francesco V SlusarskiJapanXuxue Feng UNQUALIFIED
Ricardo V AlbaresItalyOnyama Limba UNQUALIFIED
Morrow T PoquetteGermanyAmy Elsner PROPOSAL
Kadeem L PaprockiUnited KingdomAmy Elsner NEGOTIATION
Leja M SlusarskiSpainElwin Sharvill NEGOTIATION
Wickens F BriddickCanadaXuxue Feng NEW
Jennifer Y WieserJapanOnyama Limba NEGOTIATION
Octavia O DilliardFranceStephen Shaw NEGOTIATION
Mujtaba E AlbaresItalyXuxue Feng UNQUALIFIED
Salvatore U NestleSpainAmy Elsner NEGOTIATION
Izzy S MacleadIndiaIvan Magalhaes QUALIFIED
Silvio Y AlbaresArgentinaIoni Bowcher UNQUALIFIED
Juan E PaprockiSpainXuxue Feng QUALIFIED
Isabel J KuskoBrazilAmy Elsner PROPOSAL
Alejandro A SaylorsJapanStephen Shaw NEGOTIATION
Cody E MacleadItalyAsiya Javayant NEW
Francesco R StensethAustraliaStephen Shaw UNQUALIFIED
Misaki G PerinItalyOnyama Limba NEW
Ashley O PaprockiRussiaElwin Sharvill NEW
Sinclair N GillianAustraliaAnna Fali NEW
Aditya P MorascaGermanyAsiya Javayant PROPOSAL
Wickens T SergiGermanyBernardo Dominic QUALIFIED
Maisha P NestleItalyStephen Shaw QUALIFIED
Adams N NickaArgentinaIoni Bowcher QUALIFIED
Jones N CampainGermanyXuxue Feng RENEWAL
Ricardo K SchemmerAustraliaElwin Sharvill NEW
Silvio S CaudyCanadaOnyama Limba NEW
Deepesh Z MaletArgentinaAsiya Javayant NEGOTIATION
Octavia R WhobreyUnited KingdomOnyama Limba NEW
Jeanfrancois P VenereCanadaAnna Fali RENEWAL
Ricardo T DilliardUnited KingdomElwin Sharvill 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>