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
Sinclair O IturbideItalyElwin Sharvill QUALIFIED
Stacey D RimGermanyIoni Bowcher UNQUALIFIED
Ashley N WaycottSpainAmy Elsner QUALIFIED
Misaki V PaprockiCanadaStephen Shaw QUALIFIED
Jeanfrancois U GauchoJapanIoni Bowcher RENEWAL
Mayumi B VenereAustraliaBernardo Dominic PROPOSAL
Jones D SaylorsSpainIoni Bowcher NEW
James V PaprockiFranceElwin Sharvill NEGOTIATION
Emily O CaldareraRussiaIvan Magalhaes RENEWAL
Aditya N VocelkaBrazilAmy Elsner QUALIFIED
Munro U FlosiSpainAsiya Javayant RENEWAL
Mujtaba S WieserAustraliaBernardo Dominic RENEWAL
Claire E TollnerJapanAsiya Javayant UNQUALIFIED
Jeanfrancois I AlbaresJapanStephen Shaw PROPOSAL
Izzy W StensethIndiaAmy Elsner RENEWAL
Alejandro P MaletCanadaBernardo Dominic QUALIFIED
Sinclair Z DoeSpainOnyama Limba PROPOSAL
Jennifer N ShinkoFranceOnyama Limba PROPOSAL
Ricardo C KuskoAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois Q VenereFranceBernardo Dominic QUALIFIED
Wickens I KolmetzBrazilStephen Shaw UNQUALIFIED
Mayumi R CaudyItalyIoni Bowcher QUALIFIED
Leja E NickaFranceAmy Elsner NEW
Emily A FigeroaCanadaElwin Sharvill PROPOSAL
Faith Q WaycottRussiaOnyama Limba NEW
Silvio J MarrierArgentinaOnyama Limba RENEWAL
Murillo S WhobreyRussiaElwin Sharvill UNQUALIFIED
Stacey D SaylorsGermanyElwin Sharvill NEW
Wickens B FlosiFranceXuxue Feng NEGOTIATION
Jennifer F InouyeArgentinaBernardo Dominic NEW
Murillo A ChuiIndiaAmy Elsner UNQUALIFIED
Clifford A AlbaresUnited KingdomIoni Bowcher RENEWAL
Aika E GauchoCanadaAsiya Javayant NEGOTIATION
Deepesh Q FlosiArgentinaBernardo Dominic RENEWAL
Faith T RulapaughFranceAmy Elsner UNQUALIFIED
Mujtaba R FigeroaItalyAmy Elsner QUALIFIED
Octavia F NickaRussiaIoni Bowcher NEW
Silvio N VocelkaSpainIvan Magalhaes RENEWAL
Silvio I CaudyIndiaAmy Elsner NEGOTIATION
Cody Q GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Izzy F DilliardRussiaAnna Fali RENEWAL
Adams R IturbideJapanBernardo Dominic QUALIFIED
Isabel Z VenereIndiaStephen Shaw RENEWAL
Rodrigues B OldroydFranceOnyama Limba UNQUALIFIED
Leja T PaprockiJapanAsiya Javayant QUALIFIED
Murillo K SaylorsBrazilElwin Sharvill NEW
Ricardo I DilliardAustraliaStephen Shaw PROPOSAL
Nicolas S GauchoAustraliaStephen Shaw QUALIFIED
Rodrigues W MarrierRussiaOnyama Limba QUALIFIED
Faith G NestleJapanIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Misaki X BowleyArgentinaIvan Magalhaes NEGOTIATION
Maria J NickaGermanyElwin Sharvill UNQUALIFIED
Smith U GauchoIndiaAnna Fali NEW
Morrow D FlosiSpainAnna Fali NEW
Tony U CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Sinclair N SergiJapanOnyama Limba NEGOTIATION
Clifford Y MaletCanadaIvan Magalhaes NEGOTIATION
Faith A OldroydCanadaElwin Sharvill QUALIFIED
Maria L PerinSpainStephen Shaw QUALIFIED
Aditya R CaudyAustraliaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia M ShinkoCanada2026-07-01Truhlar And Truhlar Attys PROPOSAL72Stephen Shaw
1001Cody J RulapaughAustralia2026-07-10Chanay, Jeffrey A Esq NEGOTIATION79Stephen Shaw
1002Nicolas O MacleadRussia2026-07-14Rousseaux, Michael Esq UNQUALIFIED63Ioni Bowcher
1003Francesco I ChuiJapan2026-07-12Buckley Miller Wright PROPOSAL89Ivan Magalhaes
1004Alejandro G SaylorsUnited Kingdom2026-07-04Dorl, James J Esq PROPOSAL28Onyama Limba
1005Rodrigues R AlbaresRussia2026-07-06Chapman, Ross E Esq QUALIFIED66Anna Fali
1006Tony P OstroskyItaly2026-07-11Feltz Printing Service RENEWAL57Elwin Sharvill
1007Izzy O FollerIndia2026-07-15Rangoni Of Florence QUALIFIED0Elwin Sharvill
1008Mujtaba K DarakjyGermany2026-07-01Feiner Bros NEW59Bernardo Dominic
1009Jefferson R PaprockiBrazil2026-07-19Dorl, James J Esq NEW30Bernardo Dominic
1010Deepesh R MacleadSpain2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED71Bernardo Dominic
1011Costa C RimIndia2026-07-15Rousseaux, Michael Esq PROPOSAL66Ivan Magalhaes
1012Kaitlin W AmigonItaly2026-07-13Printing Dimensions NEGOTIATION38Xuxue Feng
1013Murillo A FigeroaAustralia2026-06-30Printing Dimensions PROPOSAL67Amy Elsner
1014Misaki F InouyeIndia2026-07-19Chapman, Ross E Esq RENEWAL18Asiya Javayant
1015Emily I WieserFrance2026-07-09King, Christopher A Esq NEGOTIATION87Asiya Javayant
1016Greenwood Q DarakjySpain2026-07-08Rangoni Of Florence QUALIFIED44Onyama Limba
1017Julie N GillianJapan2026-07-17Buckley Miller Wright UNQUALIFIED92Anna Fali
1018Greenwood B KolmetzJapan2026-06-30Buckley Miller Wright QUALIFIED84Xuxue Feng
1019Tony J ChuiArgentina2026-07-16Truhlar And Truhlar Attys UNQUALIFIED39Stephen Shaw
1020Jones D DilliardGermany2026-07-02Buckley Miller Wright NEW18Xuxue Feng
1021Aruna B MarrierJapan2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED34Elwin Sharvill
1022Wickens I MaletBrazil2026-07-19King, Christopher A Esq PROPOSAL34Elwin Sharvill
1023Sinclair S BriddickJapan2026-07-28Buckley Miller Wright NEW99Asiya Javayant
1024Mujtaba Q InouyeGermany2026-07-05Feiner Bros QUALIFIED75Xuxue Feng
1025Claire S CampainIndia2026-07-06Printing Dimensions NEW23Asiya Javayant
1026Arvin P SaylorsJapan2026-07-24Feltz Printing Service NEGOTIATION65Bernardo Dominic
1027Ashley W GlickJapan2026-07-07Morlong Associates PROPOSAL22Asiya Javayant
1028Stacey M MacleadAustralia2026-07-21Chanay, Jeffrey A Esq RENEWAL29Amy Elsner
1029Johnson L RimIndia2026-07-25Chapman, Ross E Esq PROPOSAL75Ioni Bowcher
1030David O NickaCanada2026-07-07Rousseaux, Michael Esq QUALIFIED3Amy Elsner
1031Antonio H PaprockiAustralia2026-07-29Truhlar And Truhlar Attys NEW53Ivan Magalhaes
1032Kadeem J GarufiSpain2026-07-01Buckley Miller Wright NEGOTIATION47Anna Fali
1033Silvio A MarrierGermany2026-07-18Chanay, Jeffrey A Esq RENEWAL84Xuxue Feng
1034Alejandro Z WieserUnited Kingdom2026-07-06Truhlar And Truhlar Attys RENEWAL10Elwin Sharvill
1035Cody V MaletIndia2026-07-29Printing Dimensions RENEWAL46Ivan Magalhaes
1036Costa K OstroskyUnited Kingdom2026-07-24King, Christopher A Esq NEGOTIATION33Elwin Sharvill
1037Tony U GlickAustralia2026-07-03Chemel, James L Cpa PROPOSAL84Onyama Limba
1038David A GarufiAustralia2026-07-19Morlong Associates RENEWAL78Xuxue Feng
1039Aruna H PaprockiFrance2026-07-29Dorl, James J Esq RENEWAL40Ioni Bowcher
1040Costa I DarakjyGermany2026-07-08Rousseaux, Michael Esq QUALIFIED62Stephen Shaw
1041Rodrigues O SaylorsAustralia2026-07-29Morlong Associates NEW66Onyama Limba
1042Julie T VocelkaRussia2026-07-27Chemel, James L Cpa RENEWAL71Xuxue Feng
1043Tony E CampainArgentina2026-07-02Printing Dimensions PROPOSAL43Bernardo Dominic
1044Salvatore D CaudyIndia2026-07-07Dorl, James J Esq UNQUALIFIED94Onyama Limba
1045Tony N NickaAustralia2026-07-21Commercial Press NEGOTIATION77Amy Elsner
1046Greenwood W StockhamGermany2026-07-23Chapman, Ross E Esq PROPOSAL58Ivan Magalhaes
1047Misaki G StensethAustralia2026-07-23Truhlar And Truhlar Attys RENEWAL44Stephen Shaw
1048Adams G StockhamIndia2026-07-08Buckley Miller Wright PROPOSAL81Asiya Javayant
1049Chavez X PaprockiGermany2026-07-08Truhlar And Truhlar Attys RENEWAL64Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria W ChuiItalyElwin Sharvill NEW
Clifford Z BriddickSpainStephen Shaw PROPOSAL
Mayumi I SchemmerItalyXuxue Feng UNQUALIFIED
Emily U BologniaItalyXuxue Feng RENEWAL
Arvin Q CampainIndiaAsiya Javayant PROPOSAL
Leja C BriddickAustraliaIoni Bowcher UNQUALIFIED
Murillo I SchemmerItalyAsiya Javayant NEW
Antonio J ChuiSpainElwin Sharvill QUALIFIED
Francesco T RoysterAustraliaIvan Magalhaes NEW
Jefferson D KuskoAustraliaAmy Elsner UNQUALIFIED
Mayumi E GauchoItalyAmy Elsner QUALIFIED
Deepesh O SaylorsGermanyStephen Shaw NEGOTIATION
James B SergiRussiaIvan Magalhaes QUALIFIED
Adams Z CampainRussiaAsiya Javayant PROPOSAL
David L RimItalyAmy Elsner NEW
Mayumi Q VenereSpainAsiya Javayant PROPOSAL
Kadeem N GauchoArgentinaBernardo Dominic RENEWAL
Isabel Y BowleyGermanyAmy Elsner RENEWAL
Mayumi B FlosiAustraliaBernardo Dominic UNQUALIFIED
Nicolas Z IturbideArgentinaElwin Sharvill UNQUALIFIED
Misaki J AmigonSpainXuxue Feng PROPOSAL
Kadeem D RoysterAustraliaElwin Sharvill PROPOSAL
Aika R TollnerAustraliaAsiya Javayant UNQUALIFIED
Morrow Q FlosiUnited KingdomAmy Elsner UNQUALIFIED
Chavez H SaylorsAustraliaAmy Elsner RENEWAL
Adams A CaldareraRussiaIvan Magalhaes PROPOSAL
Munro L NickaBrazilBernardo Dominic NEW
Rodrigues L FollerJapanElwin Sharvill NEGOTIATION
Faith K WieserAustraliaIoni Bowcher RENEWAL
Munro J CampainBrazilElwin Sharvill PROPOSAL
Aika U OldroydAustraliaElwin Sharvill RENEWAL
Costa E IturbideFranceAsiya Javayant PROPOSAL
Cody N SlusarskiItalyOnyama Limba NEW
Juan Z FerenczRussiaAnna Fali UNQUALIFIED
Aruna Z CaldareraGermanyIoni Bowcher UNQUALIFIED
Silvio J PaprockiCanadaOnyama Limba QUALIFIED
Arvin I FerenczJapanOnyama Limba NEGOTIATION
Munro H RulapaughJapanAmy Elsner QUALIFIED
Antonio M FigeroaRussiaStephen Shaw PROPOSAL
Juan Q BowleyJapanAmy Elsner NEW
Isabel J KuskoIndiaStephen Shaw PROPOSAL
Sinclair F GarufiAustraliaBernardo Dominic PROPOSAL
Izzy F PoquetteItalyBernardo Dominic RENEWAL
Jennifer Q DoeUnited KingdomIoni Bowcher PROPOSAL
Stacey N BriddickSpainIoni Bowcher NEGOTIATION
Leon P KolmetzAustraliaIoni Bowcher PROPOSAL
Morrow Z RimSpainIoni Bowcher RENEWAL
Mujtaba X IturbideArgentinaIoni Bowcher UNQUALIFIED
Julie C CaldareraGermanyAsiya Javayant UNQUALIFIED
Ricardo U KuskoItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Darci D Nicka
Jeanfrancois H Albares
Leja Y Whobrey
Ricardo P Albares
Emily P Saylors
Deepesh Y Venere
Sinclair D Bolognia
Maisha P Figeroa
Faith M Garufi
Clifford G Shinko
Sinclair Z Slusarski
Aika U Paprocki
Mayumi S Ruta
Jones T Dilliard
David E Chui
Jennifer A Vocelka
Costa P Dilliard
David Q Morasca
Munro R Royster
Mujtaba E Doe
Deepesh I Albares
Isabel K Foller
Kaitlin M Campain
Kaitlin Q Marrier
Faith N Vocelka
Murillo C Nicka
Silvio Q Tollner
Tony B Royster
Adams O Kolmetz
Nicolas I Foller
Murillo Z Albares
Misaki F Gaucho
Nicolas L Foller
David Y Gaucho
James Q Perin
Emily D Morasca
David Q Darakjy
Murillo W Garufi
Izzy M Garufi
Alejandro I Kolmetz
Misaki Z Darakjy
Stacey L Venere
Arvin H Paprocki
Darci M Oldroyd
Ricardo T Rim
Leon L Malet
Leon B Inouye
Munro W Rim
Jefferson T Oldroyd
Antonio O Caldarera
IdCountryDate
1000Italy2026-07-08
1001India2026-07-09
1002Germany2026-07-03
1003Canada2026-07-02
1004Argentina2026-07-16
1005Spain2026-07-08
1006United Kingdom2026-07-07
1007United Kingdom2026-07-27
1008Germany2026-07-19
1009Argentina2026-07-04
1010Japan2026-07-09
1011France2026-07-24
1012Argentina2026-07-20
1013United Kingdom2026-07-12
1014Russia2026-07-10
1015Japan2026-07-29
1016Brazil2026-07-01
1017Australia2026-07-12
1018Germany2026-07-09
1019France2026-07-20
1020Germany2026-07-24
1021Canada2026-07-06
1022Japan2026-07-21
1023Canada2026-07-03
1024Italy2026-07-14
1025Italy2026-07-22
1026Australia2026-07-19
1027France2026-07-21
1028Italy2026-07-17
1029Japan2026-07-02
1030Brazil2026-07-01
1031Argentina2026-07-22
1032France2026-07-07
1033Russia2026-07-24
1034France2026-07-05
1035Spain2026-07-01
1036India2026-07-01
1037Canada2026-07-21
1038Japan2026-07-28
1039Japan2026-07-04
1040Australia2026-07-27
1041Argentina2026-07-26
1042Germany2026-07-02
1043Brazil2026-07-16
1044Canada2026-07-02
1045Argentina2026-07-10
1046Brazil2026-07-29
1047India2026-07-25
1048Spain2026-07-12
1049Brazil2026-06-30

On-Demand Data

NameIdCountryDate
Clifford U Inouye1000Japan2026-07-24
Antonio W Morasca1001India2026-07-27
Ivar B Oldroyd1002Russia2026-07-23
Chavez E Foller1003Japan2026-07-06
Stacey U Chui1004Italy2026-07-13
Maria I Bowley1005Spain2026-07-07
Kaitlin O Shinko1006Brazil2026-07-20
Leja F Ostrosky1007Germany2026-07-03
Silvio J Morasca1008Spain2026-07-04
Mayumi R Iturbide1009Russia2026-07-27
Maria M Amigon1010Canada2026-07-03
Mujtaba O Albares1011Japan2026-06-30
Nicolas T Dilliard1012Brazil2026-07-14
Jennifer V Briddick1013Brazil2026-07-26
Ricardo X Gaucho1014Japan2026-07-02
Tony J Royster1015India2026-07-01
Jefferson B Caldarera1016Japan2026-07-24
Tony X Sergi1017India2026-07-26
Leon X Slusarski1018Germany2026-07-22
Kadeem T Whobrey1019Japan2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow K ShinkoSpainOnyama Limba RENEWAL
Jeanfrancois H PoquetteCanadaIoni Bowcher NEGOTIATION
Stacey S MaletJapanXuxue Feng UNQUALIFIED
Greenwood K BriddickArgentinaAsiya Javayant NEGOTIATION
Kaitlin F RimAustraliaBernardo Dominic UNQUALIFIED
Aruna D TollnerArgentinaXuxue Feng UNQUALIFIED
Ivar V ChuiRussiaAsiya Javayant PROPOSAL
Clifford I RimUnited KingdomStephen Shaw PROPOSAL
Antonio L AlbaresFranceElwin Sharvill NEGOTIATION
Aika K DoeItalyIoni Bowcher NEGOTIATION
Tony M RutaArgentinaBernardo Dominic UNQUALIFIED
Mayumi E MarrierSpainIvan Magalhaes PROPOSAL
Stacey E MarrierAustraliaAmy Elsner QUALIFIED
Mayumi G TollnerArgentinaAsiya Javayant RENEWAL
Jones R RoysterRussiaAnna Fali UNQUALIFIED
Alejandro N DoeGermanyBernardo Dominic PROPOSAL
Misaki Q StensethCanadaIvan Magalhaes NEW
Munro T BologniaGermanyElwin Sharvill NEGOTIATION
Jones M KuskoItalyStephen Shaw NEW
Tony U RimAustraliaXuxue Feng NEGOTIATION
Nicolas U MorascaFranceXuxue Feng QUALIFIED
Jeanfrancois M PoquetteAustraliaBernardo Dominic RENEWAL
Costa L PoquetteItalyIvan Magalhaes NEGOTIATION
Silvio K VenereJapanElwin Sharvill RENEWAL
Antonio O ShinkoIndiaStephen Shaw QUALIFIED
Julie D CaudyJapanElwin Sharvill QUALIFIED
Rodrigues O PaprockiUnited KingdomIvan Magalhaes NEW
Aditya C RoysterCanadaOnyama Limba PROPOSAL
Julie R FollerIndiaStephen Shaw NEW
Antonio G OstroskyIndiaStephen Shaw RENEWAL
Faith T SlusarskiGermanyAnna Fali PROPOSAL
Misaki P KuskoArgentinaAsiya Javayant QUALIFIED
Salvatore J RimUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois P WhobreyFranceXuxue Feng NEGOTIATION
Jennifer W StockhamItalyIoni Bowcher NEW
Leon L GillianItalyAsiya Javayant PROPOSAL
Murillo H MaletIndiaStephen Shaw UNQUALIFIED
Aika M MaletAustraliaXuxue Feng PROPOSAL
Clifford V FollerSpainElwin Sharvill NEW
Johnson N KuskoGermanyAnna 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>