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
Maisha B BriddickSpainIvan Magalhaes NEGOTIATION
Morrow H SaylorsBrazilIoni Bowcher NEGOTIATION
Leon I PaprockiRussiaOnyama Limba UNQUALIFIED
Aika J VocelkaJapanElwin Sharvill QUALIFIED
Maria D DarakjyIndiaStephen Shaw QUALIFIED
Aika C ButtFranceXuxue Feng PROPOSAL
Kadeem L ChuiRussiaBernardo Dominic PROPOSAL
Leon Y DilliardItalyAmy Elsner UNQUALIFIED
Antonio W DoeBrazilAmy Elsner UNQUALIFIED
Claire K BowleyBrazilAsiya Javayant PROPOSAL
James S FlosiRussiaXuxue Feng NEGOTIATION
Stacey H PoquetteBrazilOnyama Limba NEGOTIATION
Ricardo Y SlusarskiRussiaAnna Fali RENEWAL
Darci L ChuiRussiaIoni Bowcher NEW
Arvin C OstroskyUnited KingdomAnna Fali QUALIFIED
Aruna W FollerSpainAnna Fali PROPOSAL
Silvio E GauchoGermanyAsiya Javayant QUALIFIED
Jefferson D BowleyJapanAmy Elsner PROPOSAL
Greenwood J CampainIndiaStephen Shaw PROPOSAL
Alejandro G AmigonRussiaAsiya Javayant NEW
Greenwood I SlusarskiAustraliaAnna Fali RENEWAL
Nicolas K GarufiSpainXuxue Feng NEGOTIATION
Octavia H WhobreyIndiaBernardo Dominic PROPOSAL
Mayumi I CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Aika J FlosiBrazilAsiya Javayant QUALIFIED
Ashley T RulapaughCanadaOnyama Limba NEW
Chavez G ChuiAustraliaXuxue Feng QUALIFIED
Julie Q CampainRussiaAsiya Javayant NEGOTIATION
Arvin F SchemmerGermanyOnyama Limba QUALIFIED
Maisha R RimUnited KingdomBernardo Dominic NEGOTIATION
Isabel Q StockhamJapanIvan Magalhaes NEW
Ricardo O DilliardFranceAsiya Javayant UNQUALIFIED
Ricardo Y GillianIndiaAmy Elsner QUALIFIED
Johnson S IturbideSpainAnna Fali NEW
Alejandro Z GarufiGermanyIvan Magalhaes PROPOSAL
Kaitlin B ButtItalyIvan Magalhaes NEW
Mayumi Y OstroskyRussiaIvan Magalhaes NEW
Costa W VenereAustraliaXuxue Feng NEGOTIATION
Stacey D SaylorsUnited KingdomOnyama Limba RENEWAL
Jones H ButtUnited KingdomAsiya Javayant QUALIFIED
Octavia H FollerRussiaOnyama Limba RENEWAL
Juan C KolmetzIndiaElwin Sharvill NEGOTIATION
Murillo M StensethAustraliaXuxue Feng PROPOSAL
Kaitlin Q GlickFranceBernardo Dominic QUALIFIED
Ricardo M RimAustraliaOnyama Limba PROPOSAL
Rodrigues S CaudyGermanyElwin Sharvill NEGOTIATION
Francesco S MaletRussiaBernardo Dominic RENEWAL
Cody K KolmetzSpainOnyama Limba PROPOSAL
Alejandro V DilliardUnited KingdomStephen Shaw UNQUALIFIED
Faith C MaletSpainOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci F KolmetzBrazilIvan Magalhaes UNQUALIFIED
Maisha A ShinkoItalyIoni Bowcher PROPOSAL
Claire Z GillianGermanyStephen Shaw RENEWAL
Greenwood Y SergiArgentinaIoni Bowcher QUALIFIED
Deepesh I SchemmerCanadaStephen Shaw PROPOSAL
Antonio R MacleadAustraliaElwin Sharvill PROPOSAL
Silvio E SlusarskiIndiaStephen Shaw NEGOTIATION
Darci N KuskoAustraliaStephen Shaw QUALIFIED
Clifford V ButtAustraliaIvan Magalhaes QUALIFIED
Morrow N VocelkaIndiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas D DilliardFrance2024-06-14Buckley Miller Wright UNQUALIFIED55Ivan Magalhaes
1001Ashley N StensethGermany2024-05-29Feltz Printing Service PROPOSAL26Ivan Magalhaes
1002Jennifer A SergiIndia2024-06-11Rangoni Of Florence UNQUALIFIED3Xuxue Feng
1003Stacey D CampainRussia2024-06-08Chapman, Ross E Esq PROPOSAL12Stephen Shaw
1004Jefferson I PoquetteSpain2024-06-10Buckley Miller Wright PROPOSAL84Amy Elsner
1005Jennifer B AlbaresArgentina2024-05-17Feiner Bros UNQUALIFIED79Onyama Limba
1006Stacey T PoquetteCanada2024-05-22King, Christopher A Esq RENEWAL31Ioni Bowcher
1007Ashley H BowleyBrazil2024-05-23Feltz Printing Service RENEWAL82Anna Fali
1008Cody O RutaArgentina2024-05-25Rousseaux, Michael Esq UNQUALIFIED53Elwin Sharvill
1009Francesco T BologniaBrazil2024-06-07Dorl, James J Esq UNQUALIFIED8Anna Fali
1010Emily D ButtIndia2024-06-07King, Christopher A Esq QUALIFIED48Elwin Sharvill
1011Isabel J RoysterBrazil2024-05-19Feiner Bros QUALIFIED86Asiya Javayant
1012Jones Z DilliardUnited Kingdom2024-06-03Commercial Press NEW59Elwin Sharvill
1013Misaki B ChuiSpain2024-06-15Rousseaux, Michael Esq UNQUALIFIED5Stephen Shaw
1014Kaitlin Y BriddickArgentina2024-05-31Buckley Miller Wright NEW1Asiya Javayant
1015Wickens O StensethUnited Kingdom2024-06-06Rangoni Of Florence PROPOSAL93Elwin Sharvill
1016Cody K NickaIndia2024-05-25Chemel, James L Cpa QUALIFIED74Bernardo Dominic
1017Clifford A ShinkoIndia2024-06-14Rangoni Of Florence NEW2Amy Elsner
1018Isabel U AmigonUnited Kingdom2024-06-01Rangoni Of Florence PROPOSAL88Elwin Sharvill
1019Costa O DilliardUnited Kingdom2024-06-14King, Christopher A Esq PROPOSAL85Anna Fali
1020Costa S BowleyCanada2024-05-24Rangoni Of Florence QUALIFIED40Onyama Limba
1021Deepesh W SergiRussia2024-05-30Chapman, Ross E Esq RENEWAL81Bernardo Dominic
1022Silvio P CaudyCanada2024-05-29Buckley Miller Wright NEW4Ivan Magalhaes
1023Darci Z SlusarskiGermany2024-06-06Truhlar And Truhlar Attys NEGOTIATION60Xuxue Feng
1024Jefferson T VocelkaRussia2024-06-15Truhlar And Truhlar Attys RENEWAL5Bernardo Dominic
1025Izzy C RulapaughJapan2024-06-09Morlong Associates NEW22Elwin Sharvill
1026Misaki D OldroydAustralia2024-06-08Buckley Miller Wright NEGOTIATION88Ivan Magalhaes
1027Alejandro S GlickItaly2024-05-28King, Christopher A Esq QUALIFIED47Elwin Sharvill
1028Costa X OldroydIndia2024-05-27Feltz Printing Service NEGOTIATION69Asiya Javayant
1029Murillo W BologniaArgentina2024-05-30Rangoni Of Florence UNQUALIFIED42Asiya Javayant
1030Cody I FlosiArgentina2024-06-04Printing Dimensions QUALIFIED74Ioni Bowcher
1031Sinclair J MaletJapan2024-06-06Buckley Miller Wright NEGOTIATION35Onyama Limba
1032Octavia T InouyeJapan2024-06-01Rangoni Of Florence NEGOTIATION40Amy Elsner
1033David F AmigonSpain2024-05-29Commercial Press PROPOSAL26Xuxue Feng
1034Rodrigues M ShinkoArgentina2024-06-10Buckley Miller Wright PROPOSAL18Ivan Magalhaes
1035Smith D CaldareraGermany2024-06-08Chemel, James L Cpa RENEWAL84Ioni Bowcher
1036Smith X StensethGermany2024-06-11Dorl, James J Esq NEGOTIATION28Anna Fali
1037Tony V GillianIndia2024-06-02King, Christopher A Esq NEW11Amy Elsner
1038Ricardo D OldroydRussia2024-05-27Dorl, James J Esq NEGOTIATION50Xuxue Feng
1039Francesco Q MaletArgentina2024-05-25Rangoni Of Florence QUALIFIED76Anna Fali
1040Tony H WieserSpain2024-06-09Rangoni Of Florence PROPOSAL14Stephen Shaw
1041Ricardo D RoysterRussia2024-05-22Feltz Printing Service NEGOTIATION49Anna Fali
1042Leja K CaudyGermany2024-06-08Morlong Associates PROPOSAL39Bernardo Dominic
1043Salvatore T KolmetzFrance2024-06-12Benton, John B Jr UNQUALIFIED54Stephen Shaw
1044Greenwood Z DarakjyUnited Kingdom2024-06-06Benton, John B Jr UNQUALIFIED0Elwin Sharvill
1045Emily S FigeroaBrazil2024-06-07King, Christopher A Esq PROPOSAL67Bernardo Dominic
1046Stacey B MaletUnited Kingdom2024-05-24Commercial Press QUALIFIED70Onyama Limba
1047Cody F SlusarskiJapan2024-06-02King, Christopher A Esq NEGOTIATION99Onyama Limba
1048Jefferson N WhobreyGermany2024-06-02Buckley Miller Wright UNQUALIFIED29Ivan Magalhaes
1049Morrow G DarakjyCanada2024-05-21King, Christopher A Esq QUALIFIED81Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leja B GillianCanadaStephen Shaw UNQUALIFIED
Faith R FigeroaItalyAmy Elsner NEW
Murillo T BriddickSpainAsiya Javayant PROPOSAL
Jefferson K RulapaughJapanAmy Elsner PROPOSAL
Stacey W OstroskyAustraliaAsiya Javayant NEW
Emily C NestleIndiaAmy Elsner UNQUALIFIED
Deepesh Z NickaGermanyAmy Elsner PROPOSAL
Maria K FerenczUnited KingdomOnyama Limba RENEWAL
Aika R NickaBrazilOnyama Limba NEW
Ricardo Y CaldareraJapanElwin Sharvill RENEWAL
Sinclair P ShinkoBrazilIoni Bowcher RENEWAL
Alejandro U BologniaRussiaStephen Shaw PROPOSAL
Greenwood M OstroskyRussiaIvan Magalhaes UNQUALIFIED
Mujtaba L AmigonJapanElwin Sharvill NEW
Isabel V WieserBrazilElwin Sharvill QUALIFIED
Arvin P AlbaresUnited KingdomAnna Fali NEW
Rodrigues M GarufiItalyIvan Magalhaes RENEWAL
Murillo I IturbideAustraliaXuxue Feng PROPOSAL
Maisha K SchemmerFranceAsiya Javayant PROPOSAL
Julie K IturbideJapanXuxue Feng QUALIFIED
Leon G FollerIndiaAsiya Javayant QUALIFIED
Arvin M CaldareraSpainStephen Shaw UNQUALIFIED
Jeanfrancois O MacleadFranceAmy Elsner QUALIFIED
Ivar I PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Aditya M MaletBrazilIvan Magalhaes NEW
Cody R AmigonJapanStephen Shaw NEW
Kadeem K FigeroaUnited KingdomAnna Fali UNQUALIFIED
Misaki L GauchoRussiaOnyama Limba NEW
Jones J KolmetzSpainStephen Shaw NEW
Rodrigues Y SaylorsItalyXuxue Feng PROPOSAL
Francesco B BologniaIndiaBernardo Dominic QUALIFIED
Misaki H WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez O MarrierUnited KingdomAmy Elsner NEGOTIATION
Jones J BologniaCanadaAsiya Javayant NEGOTIATION
Munro N CaldareraItalyAmy Elsner RENEWAL
Kadeem A MaletGermanyIvan Magalhaes NEW
Ricardo H DoeUnited KingdomAsiya Javayant UNQUALIFIED
Emily H FigeroaFranceIoni Bowcher QUALIFIED
Deepesh V MorascaGermanyBernardo Dominic RENEWAL
Wickens H RutaArgentinaAsiya Javayant QUALIFIED
James P IturbideArgentinaIvan Magalhaes QUALIFIED
Izzy X RulapaughItalyOnyama Limba NEGOTIATION
Kadeem D GlickCanadaAsiya Javayant UNQUALIFIED
Isabel L CaudyCanadaAnna Fali NEW
Greenwood G CampainFranceXuxue Feng PROPOSAL
Johnson E RulapaughArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois A RimUnited KingdomStephen Shaw PROPOSAL
Ricardo X ChuiItalyIoni Bowcher NEGOTIATION
Salvatore F InouyeCanadaIoni Bowcher UNQUALIFIED
Morrow J IturbideItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Wickens S Garufi
Deepesh V Oldroyd
Ricardo V Nicka
Octavia R Caudy
Darci M Inouye
Ashley Y Malet
Cody D Poquette
Aruna D Ostrosky
Ivar T Maclead
Aruna B Nestle
Jennifer N Malet
James N Albares
Kadeem R Kolmetz
Salvatore Q Doe
Alejandro G Butt
Murillo E Poquette
Arvin O Rim
Jennifer L Inouye
Murillo L Albares
Aika A Doe
Rodrigues K Perin
Antonio U Marrier
Clifford D Poquette
Francesco I Nestle
Jefferson U Ferencz
Arvin J Royster
Morrow Q Shinko
Johnson L Oldroyd
Alejandro I Briddick
Costa D Gillian
Claire K Schemmer
Silvio B Wieser
Clifford K Morasca
Arvin W Maclead
Jefferson Y Wieser
Mayumi Y Marrier
Clifford O Flosi
Ashley R Rim
Tony N Nestle
Chavez W Stockham
Mujtaba A Albares
Silvio N Caldarera
Deepesh Q Glick
Munro W Rulapaugh
Antonio M Ostrosky
Julie N Marrier
Cody B Gaucho
Arvin U Kusko
Antonio I Sergi
Aruna E Tollner
IdCountryDate
1000France2024-05-17
1001Germany2024-06-10
1002Canada2024-06-07
1003United Kingdom2024-06-05
1004Japan2024-06-14
1005Japan2024-06-14
1006Russia2024-05-27
1007United Kingdom2024-06-03
1008India2024-06-05
1009Australia2024-06-01
1010Canada2024-06-09
1011Argentina2024-06-02
1012Spain2024-05-18
1013United Kingdom2024-06-06
1014Russia2024-05-20
1015Brazil2024-05-22
1016Japan2024-05-21
1017India2024-06-14
1018Brazil2024-05-27
1019United Kingdom2024-06-05
1020Russia2024-05-27
1021United Kingdom2024-05-31
1022Brazil2024-06-04
1023India2024-05-29
1024Australia2024-05-24
1025Argentina2024-05-26
1026Spain2024-06-12
1027Japan2024-06-11
1028Italy2024-06-14
1029Spain2024-06-09
1030India2024-05-22
1031Italy2024-06-10
1032Italy2024-05-19
1033Canada2024-05-23
1034Italy2024-05-24
1035France2024-06-09
1036France2024-06-08
1037United Kingdom2024-05-22
1038Japan2024-06-13
1039United Kingdom2024-06-15
1040Brazil2024-05-31
1041Japan2024-06-06
1042Japan2024-06-13
1043Canada2024-06-07
1044France2024-06-10
1045Brazil2024-05-17
1046Japan2024-06-12
1047Russia2024-05-23
1048Germany2024-06-14
1049Spain2024-06-13

On-Demand Data

NameIdCountryDate
Darci Y Rim1000France2024-06-07
Aika T Nicka1001France2024-06-15
Maria O Dilliard1002Brazil2024-06-14
Octavia S Poquette1003Italy2024-06-01
Tony Q Saylors1004Japan2024-05-26
Jones Q Schemmer1005Canada2024-06-07
Maria P Slusarski1006United Kingdom2024-06-03
Jennifer W Iturbide1007Argentina2024-06-05
Silvio V Flosi1008Germany2024-05-21
Arvin D Stenseth1009United Kingdom2024-06-03
Juan U Flosi1010Japan2024-05-22
Claire F Kolmetz1011Argentina2024-06-05
Aika K Campain1012France2024-05-19
Mayumi E Stenseth1013Argentina2024-06-09
Julie T Venere1014United Kingdom2024-05-18
David A Amigon1015Germany2024-05-23
Ivar P Dilliard1016United Kingdom2024-05-22
Jeanfrancois I Paprocki1017Italy2024-06-04
Cody H Doe1018Italy2024-05-24
Francesco G Tollner1019Italy2024-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo Y NickaJapanAnna Fali RENEWAL
Juan C CampainArgentinaIvan Magalhaes PROPOSAL
Mayumi N FerenczIndiaOnyama Limba UNQUALIFIED
Sinclair F RulapaughArgentinaStephen Shaw UNQUALIFIED
Leon X MaletSpainBernardo Dominic QUALIFIED
Julie H FerenczRussiaOnyama Limba PROPOSAL
Octavia J RutaArgentinaIvan Magalhaes PROPOSAL
Alejandro I BowleyFranceBernardo Dominic PROPOSAL
Rodrigues X PaprockiCanadaXuxue Feng NEW
Chavez S OstroskyGermanyOnyama Limba PROPOSAL
Leon Q NickaAustraliaAsiya Javayant PROPOSAL
Claire C RulapaughItalyIoni Bowcher NEGOTIATION
Morrow C PaprockiUnited KingdomAmy Elsner RENEWAL
David U RoysterSpainElwin Sharvill NEW
Murillo K InouyeIndiaOnyama Limba NEW
Claire Q BowleyArgentinaAmy Elsner UNQUALIFIED
Aruna F OstroskySpainXuxue Feng UNQUALIFIED
Ashley V PaprockiRussiaAsiya Javayant QUALIFIED
Jeanfrancois Z GlickJapanElwin Sharvill QUALIFIED
Aditya K DilliardJapanAnna Fali RENEWAL
Arvin E PerinCanadaIoni Bowcher QUALIFIED
Cody C MaletBrazilOnyama Limba NEW
Smith H CaudyJapanElwin Sharvill RENEWAL
Julie E CaldareraSpainAnna Fali NEGOTIATION
Deepesh T StensethIndiaIoni Bowcher NEGOTIATION
Darci A CampainSpainElwin Sharvill UNQUALIFIED
Smith P AmigonBrazilAmy Elsner PROPOSAL
Salvatore O BriddickUnited KingdomXuxue Feng NEW
Jennifer E RoysterCanadaAmy Elsner UNQUALIFIED
Mujtaba A BriddickSpainBernardo Dominic QUALIFIED
Maisha Y FollerJapanAnna Fali QUALIFIED
Faith U AlbaresUnited KingdomOnyama Limba RENEWAL
Mayumi Y FigeroaRussiaOnyama Limba UNQUALIFIED
Sinclair U PoquetteItalyStephen Shaw UNQUALIFIED
Silvio R FerenczJapanElwin Sharvill UNQUALIFIED
Jennifer Q DoeFranceAmy Elsner QUALIFIED
Juan A MaletIndiaIvan Magalhaes UNQUALIFIED
Clifford Z CampainItalyIoni Bowcher NEGOTIATION
Jones Q NestleIndiaIoni Bowcher NEGOTIATION
Johnson D BologniaIndiaXuxue Feng 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>