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
Ashley X MaletBrazilIoni Bowcher NEGOTIATION
Aditya X MorascaGermanyXuxue Feng NEGOTIATION
Johnson U WaycottJapanAsiya Javayant QUALIFIED
Cody D GlickAustraliaBernardo Dominic NEW
Johnson R MaletArgentinaStephen Shaw RENEWAL
Wickens F BowleySpainIvan Magalhaes NEGOTIATION
Maisha N FigeroaAustraliaIvan Magalhaes UNQUALIFIED
Aditya O NestleBrazilAsiya Javayant NEGOTIATION
Aruna V StensethSpainIvan Magalhaes PROPOSAL
Julie O MorascaIndiaAsiya Javayant NEW
Nicolas U SchemmerArgentinaAnna Fali UNQUALIFIED
Morrow R RutaGermanyElwin Sharvill RENEWAL
Izzy X VocelkaIndiaAsiya Javayant NEW
Faith E KuskoJapanXuxue Feng RENEWAL
Maria L MacleadAustraliaElwin Sharvill NEGOTIATION
Johnson E PoquetteCanadaAmy Elsner RENEWAL
Jefferson V RimArgentinaXuxue Feng NEGOTIATION
Jennifer A DilliardItalyIvan Magalhaes NEGOTIATION
Octavia H PaprockiArgentinaAmy Elsner UNQUALIFIED
Greenwood W FollerCanadaAnna Fali NEGOTIATION
Jennifer P RoysterSpainXuxue Feng UNQUALIFIED
Jones J RutaIndiaXuxue Feng PROPOSAL
Cody Q BriddickGermanyIvan Magalhaes QUALIFIED
Tony V GauchoFranceAsiya Javayant QUALIFIED
Alejandro C SergiFranceXuxue Feng PROPOSAL
Adams E BowleyFranceIoni Bowcher PROPOSAL
Francesco O PoquetteAustraliaAnna Fali NEGOTIATION
Arvin X NestleJapanIvan Magalhaes UNQUALIFIED
Arvin J NickaArgentinaBernardo Dominic NEGOTIATION
David R RoysterFranceAnna Fali NEGOTIATION
Salvatore S SlusarskiSpainIvan Magalhaes NEW
Stacey C KuskoArgentinaIvan Magalhaes NEW
Maisha I AlbaresSpainBernardo Dominic RENEWAL
Francesco K MaletUnited KingdomStephen Shaw PROPOSAL
Adams M GillianFranceAsiya Javayant UNQUALIFIED
Francesco N GarufiArgentinaOnyama Limba RENEWAL
Leon E CaudyBrazilIoni Bowcher RENEWAL
Darci T KolmetzFranceAnna Fali PROPOSAL
Ashley Q SchemmerArgentinaBernardo Dominic NEW
Juan S GauchoSpainIvan Magalhaes QUALIFIED
Rodrigues G PoquetteFranceBernardo Dominic RENEWAL
Maria D SlusarskiIndiaAmy Elsner PROPOSAL
Ashley V RutaItalyStephen Shaw NEW
Faith M BologniaGermanyIoni Bowcher NEW
Costa N CaldareraSpainAmy Elsner PROPOSAL
Smith F TollnerBrazilXuxue Feng NEW
Claire C SchemmerItalyAnna Fali RENEWAL
Octavia B GlickIndiaIoni Bowcher NEGOTIATION
Clifford G MarrierFranceAnna Fali NEW
Tony V BowleyJapanAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood U MorascaArgentinaBernardo Dominic NEW
Aika K WaycottRussiaIvan Magalhaes NEGOTIATION
Antonio M AmigonUnited KingdomElwin Sharvill NEW
Jefferson Q IturbideCanadaIvan Magalhaes NEW
Silvio U GlickGermanyStephen Shaw PROPOSAL
Greenwood L InouyeIndiaXuxue Feng QUALIFIED
Wickens J FollerSpainOnyama Limba QUALIFIED
Deepesh T MorascaIndiaOnyama Limba NEW
Tony F MorascaBrazilXuxue Feng UNQUALIFIED
Isabel H WieserFranceBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith J CampainRussia2025-04-18Chanay, Jeffrey A Esq NEGOTIATION86Onyama Limba
1001Silvio E SchemmerArgentina2025-05-09Feltz Printing Service QUALIFIED43Bernardo Dominic
1002Johnson T BologniaGermany2025-04-17Rangoni Of Florence UNQUALIFIED87Anna Fali
1003Ricardo H PerinCanada2025-05-14Chanay, Jeffrey A Esq QUALIFIED18Ivan Magalhaes
1004Ivar G VenereJapan2025-04-24Rousseaux, Michael Esq QUALIFIED59Bernardo Dominic
1005Julie R VocelkaUnited Kingdom2025-05-06Rousseaux, Michael Esq PROPOSAL53Bernardo Dominic
1006Maria I GauchoCanada2025-05-11Benton, John B Jr RENEWAL25Asiya Javayant
1007Ricardo L AmigonFrance2025-05-13Benton, John B Jr NEW37Ioni Bowcher
1008Stacey K GauchoAustralia2025-05-09Chapman, Ross E Esq NEGOTIATION6Xuxue Feng
1009Leon Z GarufiArgentina2025-05-04King, Christopher A Esq NEW61Stephen Shaw
1010Arvin G MaletJapan2025-04-17King, Christopher A Esq RENEWAL21Bernardo Dominic
1011Darci X SlusarskiUnited Kingdom2025-04-28Rousseaux, Michael Esq RENEWAL95Ivan Magalhaes
1012Ricardo F NestleSpain2025-04-30Chanay, Jeffrey A Esq NEW9Stephen Shaw
1013Emily S AmigonRussia2025-05-07King, Christopher A Esq NEGOTIATION14Ioni Bowcher
1014Aika U StockhamArgentina2025-04-21Rousseaux, Michael Esq UNQUALIFIED20Xuxue Feng
1015Arvin M BowleyFrance2025-04-30Chapman, Ross E Esq UNQUALIFIED67Ivan Magalhaes
1016Izzy Z AlbaresFrance2025-04-30Dorl, James J Esq PROPOSAL54Stephen Shaw
1017Tony D KuskoIndia2025-05-16Truhlar And Truhlar Attys PROPOSAL74Bernardo Dominic
1018Darci L WieserIndia2025-04-24Commercial Press RENEWAL74Amy Elsner
1019Julie A MacleadArgentina2025-04-18Rangoni Of Florence UNQUALIFIED85Onyama Limba
1020Morrow K TollnerUnited Kingdom2025-05-10Rousseaux, Michael Esq NEGOTIATION78Elwin Sharvill
1021Wickens X WaycottRussia2025-05-15Feiner Bros PROPOSAL41Ioni Bowcher
1022David R GillianRussia2025-05-10Chapman, Ross E Esq NEGOTIATION51Anna Fali
1023Isabel J CaudyFrance2025-04-28Morlong Associates QUALIFIED17Ioni Bowcher
1024Greenwood M SlusarskiBrazil2025-05-16Printing Dimensions PROPOSAL28Anna Fali
1025Rodrigues R GarufiBrazil2025-05-12Buckley Miller Wright UNQUALIFIED5Xuxue Feng
1026Morrow P CampainRussia2025-05-14Chanay, Jeffrey A Esq UNQUALIFIED95Stephen Shaw
1027Maisha Q ButtUnited Kingdom2025-05-05Printing Dimensions UNQUALIFIED7Amy Elsner
1028Ashley Z DilliardGermany2025-04-27Chapman, Ross E Esq RENEWAL69Elwin Sharvill
1029Murillo C CampainRussia2025-04-27Rangoni Of Florence RENEWAL80Anna Fali
1030Rodrigues E NickaSpain2025-05-13Benton, John B Jr UNQUALIFIED89Asiya Javayant
1031Salvatore E MaletBrazil2025-05-02Chapman, Ross E Esq PROPOSAL84Bernardo Dominic
1032Maisha K CaudyFrance2025-04-20Chanay, Jeffrey A Esq RENEWAL32Ioni Bowcher
1033Nicolas V SergiArgentina2025-04-26Printing Dimensions PROPOSAL49Elwin Sharvill
1034Greenwood C InouyeRussia2025-05-12Morlong Associates PROPOSAL37Anna Fali
1035Nicolas M GillianGermany2025-04-17Chapman, Ross E Esq UNQUALIFIED58Onyama Limba
1036Nicolas Z WieserCanada2025-04-27Chanay, Jeffrey A Esq UNQUALIFIED83Amy Elsner
1037Deepesh G GarufiUnited Kingdom2025-05-06Feiner Bros PROPOSAL99Elwin Sharvill
1038James F StensethCanada2025-05-07Morlong Associates QUALIFIED9Bernardo Dominic
1039Silvio B DarakjyGermany2025-04-17Rangoni Of Florence NEW44Anna Fali
1040Antonio V SergiFrance2025-04-28Rousseaux, Michael Esq NEGOTIATION89Ioni Bowcher
1041Claire P FollerArgentina2025-04-26Truhlar And Truhlar Attys UNQUALIFIED23Bernardo Dominic
1042Leja M RimGermany2025-04-21Rousseaux, Michael Esq QUALIFIED42Asiya Javayant
1043Ricardo W FlosiCanada2025-04-30Buckley Miller Wright UNQUALIFIED21Bernardo Dominic
1044Jeanfrancois H PerinSpain2025-04-19Feltz Printing Service NEW19Anna Fali
1045Aruna Q KuskoItaly2025-05-06Printing Dimensions NEGOTIATION91Elwin Sharvill
1046Maria G GlickCanada2025-05-06Rousseaux, Michael Esq QUALIFIED85Ivan Magalhaes
1047Jefferson L VenereAustralia2025-04-30Rousseaux, Michael Esq NEW65Stephen Shaw
1048Antonio Y ChuiArgentina2025-05-02Chapman, Ross E Esq QUALIFIED83Asiya Javayant
1049Nicolas I RulapaughJapan2025-04-18Chemel, James L Cpa NEW98Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Greenwood F BologniaArgentinaStephen Shaw NEW
Leja A GillianGermanyIoni Bowcher RENEWAL
Antonio I TollnerJapanElwin Sharvill QUALIFIED
Nicolas M RutaArgentinaBernardo Dominic UNQUALIFIED
David R SchemmerFranceIoni Bowcher PROPOSAL
Rodrigues G RoysterSpainElwin Sharvill UNQUALIFIED
Greenwood C IturbideCanadaXuxue Feng NEGOTIATION
Kadeem J SaylorsIndiaAnna Fali QUALIFIED
Isabel L SergiCanadaBernardo Dominic QUALIFIED
Ricardo U CaldareraJapanBernardo Dominic RENEWAL
Isabel I VocelkaJapanIoni Bowcher UNQUALIFIED
Adams O WieserCanadaIvan Magalhaes QUALIFIED
Ashley V RulapaughCanadaBernardo Dominic NEW
Alejandro Z PerinUnited KingdomOnyama Limba PROPOSAL
David T PerinItalyElwin Sharvill PROPOSAL
Deepesh B KuskoSpainAnna Fali RENEWAL
Jefferson G PerinSpainAmy Elsner RENEWAL
Jones L DoeFranceOnyama Limba NEW
Nicolas E BologniaItalyBernardo Dominic NEGOTIATION
Leja G DarakjyAustraliaElwin Sharvill NEW
Leon Q GauchoArgentinaAmy Elsner NEW
Francesco O MorascaJapanIvan Magalhaes RENEWAL
Jeanfrancois W DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Ivar H DarakjyGermanyAsiya Javayant UNQUALIFIED
Chavez L FigeroaBrazilIoni Bowcher PROPOSAL
Stacey Q MarrierRussiaAnna Fali NEGOTIATION
Kaitlin K VocelkaFranceIvan Magalhaes NEW
Julie U SchemmerArgentinaElwin Sharvill PROPOSAL
Jennifer F TollnerBrazilBernardo Dominic NEW
Stacey L GlickCanadaAmy Elsner NEGOTIATION
Chavez D IturbideAustraliaBernardo Dominic PROPOSAL
Wickens P CaudyCanadaAsiya Javayant PROPOSAL
Maria V SergiSpainXuxue Feng PROPOSAL
Ashley O NickaBrazilIoni Bowcher UNQUALIFIED
Murillo C FerenczCanadaAnna Fali PROPOSAL
Emily B DarakjyItalyOnyama Limba RENEWAL
Wickens Q KuskoIndiaXuxue Feng NEW
Nicolas M BologniaJapanAmy Elsner PROPOSAL
Aruna Z MarrierCanadaElwin Sharvill PROPOSAL
Mujtaba Q DilliardSpainIoni Bowcher NEGOTIATION
Aditya C CaudyGermanyAsiya Javayant UNQUALIFIED
Octavia K ButtBrazilOnyama Limba PROPOSAL
Jeanfrancois L SlusarskiFranceAmy Elsner RENEWAL
Jennifer K ShinkoSpainElwin Sharvill PROPOSAL
Clifford D TollnerSpainAmy Elsner NEGOTIATION
Darci I MaletJapanAnna Fali NEGOTIATION
Mujtaba L KolmetzBrazilIvan Magalhaes PROPOSAL
Jennifer E RulapaughAustraliaIvan Magalhaes NEW
Jennifer H MorascaJapanIoni Bowcher UNQUALIFIED
Tony P TollnerFranceXuxue Feng QUALIFIED
Frozen Columns
Name
Nicolas W Caudy
Ivar H Kusko
Mujtaba Q Marrier
Munro X Briddick
Leja H Marrier
Juan X Wieser
Jefferson Q Marrier
Mujtaba U Waycott
Cody X Rulapaugh
Alejandro T Ruta
Wickens P Bolognia
Stacey H Rim
Stacey A Schemmer
Salvatore I Schemmer
Jennifer C Morasca
Munro U Butt
Faith V Stockham
Mujtaba X Waycott
Wickens K Ruta
Stacey G Figeroa
Wickens Z Malet
Leon G Bowley
Morrow K Saylors
Ivar N Ferencz
Aika V Whobrey
Sinclair G Nicka
Faith K Iturbide
Faith U Whobrey
Aruna A Rim
Isabel T Maclead
Nicolas V Foller
Cody I Inouye
Cody O Stockham
Kaitlin S Iturbide
Kaitlin K Doe
Deepesh L Venere
James I Slusarski
Munro L Ruta
Kadeem T Perin
Mayumi H Bolognia
James R Whobrey
Francesco K Slusarski
Clifford L Bolognia
Cody X Oldroyd
Emily Y Chui
Mayumi K Malet
Ivar M Morasca
Ricardo A Ostrosky
Aruna I Stenseth
Izzy J Albares
IdCountryDate
1000Argentina2025-05-03
1001Argentina2025-04-24
1002France2025-05-14
1003Spain2025-05-08
1004Argentina2025-05-16
1005Italy2025-05-16
1006Canada2025-04-22
1007Spain2025-04-19
1008Japan2025-04-30
1009Germany2025-05-09
1010Brazil2025-04-26
1011Germany2025-04-24
1012India2025-05-09
1013Brazil2025-05-10
1014France2025-05-10
1015India2025-05-04
1016Argentina2025-05-06
1017Canada2025-04-30
1018Brazil2025-04-19
1019Russia2025-04-17
1020Italy2025-05-07
1021Brazil2025-05-09
1022Russia2025-04-17
1023Argentina2025-04-20
1024India2025-05-13
1025Spain2025-05-06
1026Russia2025-05-01
1027United Kingdom2025-04-30
1028Italy2025-04-17
1029Brazil2025-05-12
1030Argentina2025-05-16
1031Brazil2025-04-23
1032Japan2025-04-22
1033Canada2025-05-03
1034Canada2025-04-24
1035Australia2025-05-15
1036France2025-05-06
1037France2025-04-21
1038Italy2025-05-02
1039Australia2025-05-04
1040Spain2025-05-09
1041Argentina2025-05-07
1042United Kingdom2025-04-18
1043Spain2025-05-08
1044Russia2025-05-10
1045France2025-04-27
1046Germany2025-04-30
1047Italy2025-04-17
1048France2025-05-09
1049Canada2025-05-03

On-Demand Data

NameIdCountryDate
Kaitlin R Vocelka1000Argentina2025-05-07
Ricardo Z Ruta1001Japan2025-04-19
Wickens F Iturbide1002United Kingdom2025-04-22
Aika H Campain1003Italy2025-04-17
Leon T Sergi1004Italy2025-05-10
Clifford F Inouye1005Argentina2025-05-04
Salvatore V Chui1006Spain2025-04-21
Aruna S Malet1007Russia2025-05-12
Nicolas Q Nicka1008Spain2025-04-29
Alejandro B Tollner1009Spain2025-05-12
Leja G Kolmetz1010Spain2025-05-14
Leja O Bowley1011Brazil2025-04-17
Isabel Q Ostrosky1012Japan2025-05-04
Isabel H Poquette1013Argentina2025-05-10
Claire T Slusarski1014Canada2025-04-20
Stacey Y Rim1015United Kingdom2025-04-25
Aika F Maclead1016India2025-05-14
Chavez R Chui1017Canada2025-05-12
Jones S Waycott1018Argentina2025-04-24
Adams Q Schemmer1019Canada2025-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Q WhobreyAustraliaElwin Sharvill NEW
Emily V AlbaresGermanyIvan Magalhaes RENEWAL
Claire Z GillianRussiaIvan Magalhaes QUALIFIED
Leon A VenereBrazilElwin Sharvill UNQUALIFIED
Jennifer Y FigeroaCanadaBernardo Dominic QUALIFIED
Francesco G DarakjyAustraliaStephen Shaw NEGOTIATION
James X AmigonJapanAmy Elsner NEW
Adams E ShinkoArgentinaStephen Shaw QUALIFIED
Jones M GlickItalyXuxue Feng QUALIFIED
Morrow V RutaJapanOnyama Limba UNQUALIFIED
Silvio V IturbideItalyXuxue Feng UNQUALIFIED
Octavia R CampainAustraliaElwin Sharvill NEW
Claire N InouyeCanadaAsiya Javayant RENEWAL
Rodrigues J PaprockiUnited KingdomAmy Elsner NEGOTIATION
Tony I VocelkaCanadaIoni Bowcher NEGOTIATION
Silvio H VenereJapanBernardo Dominic NEW
Claire E IturbideUnited KingdomAsiya Javayant QUALIFIED
Leja X NickaIndiaOnyama Limba UNQUALIFIED
Rodrigues X FigeroaIndiaIvan Magalhaes NEGOTIATION
Octavia G KolmetzBrazilAsiya Javayant RENEWAL
Morrow H TollnerIndiaOnyama Limba UNQUALIFIED
Kaitlin X MorascaGermanyOnyama Limba NEW
Ivar U MacleadSpainElwin Sharvill RENEWAL
Darci M PaprockiAustraliaStephen Shaw NEW
Maria T BowleyFranceElwin Sharvill UNQUALIFIED
Jeanfrancois R RulapaughAustraliaIoni Bowcher NEGOTIATION
Mayumi M FerenczIndiaIoni Bowcher NEGOTIATION
Juan E RulapaughJapanXuxue Feng PROPOSAL
Chavez J GlickAustraliaIoni Bowcher QUALIFIED
Kadeem B ShinkoUnited KingdomStephen Shaw PROPOSAL
Jones D WieserFranceBernardo Dominic PROPOSAL
Morrow V VocelkaCanadaStephen Shaw NEGOTIATION
Silvio P VocelkaGermanyAmy Elsner PROPOSAL
David Z CaudyIndiaAsiya Javayant QUALIFIED
Claire W OldroydRussiaBernardo Dominic UNQUALIFIED
Chavez U WaycottArgentinaIvan Magalhaes RENEWAL
Ivar Z GarufiSpainAsiya Javayant QUALIFIED
Salvatore M BowleyRussiaAnna Fali RENEWAL
Darci V PoquetteCanadaElwin Sharvill PROPOSAL
Emily M PerinRussiaAmy Elsner 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>