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
Antonio C ChuiFranceBernardo Dominic UNQUALIFIED
Ricardo Q GarufiAustraliaAmy Elsner UNQUALIFIED
Nicolas B AlbaresSpainIoni Bowcher PROPOSAL
Deepesh A OldroydGermanyIoni Bowcher NEGOTIATION
Leja A DarakjyIndiaBernardo Dominic UNQUALIFIED
Arvin C GauchoCanadaIvan Magalhaes NEW
Faith K FigeroaArgentinaXuxue Feng PROPOSAL
Aditya B FlosiItalyXuxue Feng UNQUALIFIED
Costa Y DilliardAustraliaElwin Sharvill RENEWAL
Alejandro R RutaAustraliaIvan Magalhaes QUALIFIED
Deepesh X ButtIndiaXuxue Feng PROPOSAL
Salvatore R BologniaArgentinaIoni Bowcher QUALIFIED
Jones L WaycottSpainAmy Elsner NEGOTIATION
Aruna F IturbideFranceOnyama Limba NEGOTIATION
Juan I ChuiGermanyElwin Sharvill QUALIFIED
Isabel T PaprockiItalyIoni Bowcher NEW
Jefferson F CampainArgentinaElwin Sharvill NEGOTIATION
Chavez Q BologniaRussiaIvan Magalhaes RENEWAL
Jennifer G CaldareraFranceXuxue Feng QUALIFIED
Juan K NestleJapanOnyama Limba NEGOTIATION
Maria E TollnerJapanIoni Bowcher NEGOTIATION
Francesco C MorascaRussiaOnyama Limba QUALIFIED
Clifford U WieserFranceBernardo Dominic UNQUALIFIED
Silvio W ButtSpainIvan Magalhaes UNQUALIFIED
Nicolas T DoeItalyBernardo Dominic UNQUALIFIED
James T OstroskySpainAsiya Javayant NEW
David P SchemmerBrazilAmy Elsner PROPOSAL
Ivar D BriddickSpainAmy Elsner UNQUALIFIED
Munro C GillianArgentinaElwin Sharvill NEW
Rodrigues V WaycottUnited KingdomXuxue Feng RENEWAL
Arvin J ButtCanadaXuxue Feng NEGOTIATION
Smith T OldroydGermanyAnna Fali UNQUALIFIED
Aika S BowleyJapanStephen Shaw QUALIFIED
James U WieserJapanXuxue Feng UNQUALIFIED
Costa C GillianAustraliaIvan Magalhaes NEGOTIATION
Kadeem M KolmetzFranceOnyama Limba UNQUALIFIED
Faith A SchemmerIndiaAsiya Javayant PROPOSAL
Claire L GlickFranceIoni Bowcher PROPOSAL
Ivar B RulapaughFranceAsiya Javayant UNQUALIFIED
Munro A SlusarskiRussiaBernardo Dominic RENEWAL
Antonio K ChuiIndiaOnyama Limba RENEWAL
Leon O BriddickIndiaAmy Elsner RENEWAL
Deepesh Z PoquetteFranceIoni Bowcher UNQUALIFIED
Clifford X DilliardGermanyStephen Shaw NEGOTIATION
Stacey O KuskoUnited KingdomXuxue Feng NEGOTIATION
Faith U SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
David G FollerItalyStephen Shaw PROPOSAL
Munro G GlickAustraliaIoni Bowcher NEGOTIATION
Alejandro M PoquetteAustraliaBernardo Dominic PROPOSAL
David G BowleyItalyOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley O OldroydJapanXuxue Feng QUALIFIED
Leon P MarrierItalyAmy Elsner NEW
Jones X ButtUnited KingdomAmy Elsner QUALIFIED
Isabel B CampainGermanyAsiya Javayant RENEWAL
Mujtaba Y DoeFranceBernardo Dominic UNQUALIFIED
Octavia I GillianAustraliaXuxue Feng NEGOTIATION
Leja H RulapaughFranceIoni Bowcher UNQUALIFIED
Leon Y RimJapanIvan Magalhaes PROPOSAL
Claire H InouyeItalyIvan Magalhaes PROPOSAL
Mujtaba Z RulapaughCanadaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa L BriddickIndia2026-07-13Feltz Printing Service UNQUALIFIED88Stephen Shaw
1001Ashley R MacleadCanada2026-06-28Dorl, James J Esq PROPOSAL8Anna Fali
1002Jeanfrancois X BowleyJapan2026-06-25Printing Dimensions QUALIFIED51Ivan Magalhaes
1003Misaki T SchemmerBrazil2026-07-17Chanay, Jeffrey A Esq PROPOSAL29Anna Fali
1004Silvio R IturbideSpain2026-06-28Chanay, Jeffrey A Esq PROPOSAL16Ioni Bowcher
1005Claire A OldroydUnited Kingdom2026-06-25Buckley Miller Wright NEW63Elwin Sharvill
1006Stacey S NestleSpain2026-07-14Benton, John B Jr NEW48Ioni Bowcher
1007Adams H MaletSpain2026-07-12Morlong Associates UNQUALIFIED2Xuxue Feng
1008Tony K ChuiRussia2026-07-23Chapman, Ross E Esq QUALIFIED95Elwin Sharvill
1009Izzy D BowleyCanada2026-07-23Feiner Bros NEGOTIATION51Ivan Magalhaes
1010Francesco V PoquetteItaly2026-06-26Morlong Associates RENEWAL9Amy Elsner
1011Ivar H KuskoJapan2026-06-28Chemel, James L Cpa QUALIFIED50Ioni Bowcher
1012Ivar N ShinkoGermany2026-07-12Rousseaux, Michael Esq NEW63Ioni Bowcher
1013Adams U MacleadFrance2026-07-18Benton, John B Jr NEW25Elwin Sharvill
1014Emily K InouyeArgentina2026-07-07King, Christopher A Esq UNQUALIFIED3Amy Elsner
1015Jones L CaudyAustralia2026-06-25Rousseaux, Michael Esq NEGOTIATION15Onyama Limba
1016Ricardo Q BowleyBrazil2026-07-16King, Christopher A Esq RENEWAL11Xuxue Feng
1017Aditya Q FlosiGermany2026-06-28Commercial Press UNQUALIFIED74Elwin Sharvill
1018Darci R FigeroaAustralia2026-07-10Feiner Bros RENEWAL9Ivan Magalhaes
1019Maria Z StensethBrazil2026-07-20Feiner Bros NEGOTIATION55Anna Fali
1020Leja J VenereUnited Kingdom2026-07-19Chapman, Ross E Esq PROPOSAL45Anna Fali
1021Ashley I GarufiAustralia2026-07-13Chemel, James L Cpa UNQUALIFIED12Anna Fali
1022Mayumi D SlusarskiCanada2026-07-10Feiner Bros PROPOSAL17Ivan Magalhaes
1023Francesco P MacleadSpain2026-07-04Benton, John B Jr NEW77Ivan Magalhaes
1024Isabel U CaudyFrance2026-06-28Chemel, James L Cpa UNQUALIFIED99Elwin Sharvill
1025Claire L SchemmerIndia2026-06-27Morlong Associates QUALIFIED67Ioni Bowcher
1026James R WhobreySpain2026-07-11Buckley Miller Wright QUALIFIED52Onyama Limba
1027Morrow S PoquetteArgentina2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED24Amy Elsner
1028Kaitlin D RutaSpain2026-07-08Commercial Press UNQUALIFIED69Amy Elsner
1029Jennifer C FollerRussia2026-07-15Benton, John B Jr PROPOSAL94Elwin Sharvill
1030Francesco F FerenczCanada2026-07-12Chanay, Jeffrey A Esq NEGOTIATION75Xuxue Feng
1031Aditya G GillianFrance2026-07-13Dorl, James J Esq NEW83Xuxue Feng
1032Cody H TollnerItaly2026-07-05Printing Dimensions QUALIFIED99Onyama Limba
1033Mayumi P ShinkoAustralia2026-07-03Morlong Associates QUALIFIED79Xuxue Feng
1034James U MaletIndia2026-07-06Printing Dimensions PROPOSAL89Amy Elsner
1035Jeanfrancois D GauchoSpain2026-06-30Truhlar And Truhlar Attys NEW72Anna Fali
1036Mayumi Q DoeItaly2026-06-28Buckley Miller Wright UNQUALIFIED30Amy Elsner
1037Mujtaba U AlbaresCanada2026-07-16Feiner Bros NEGOTIATION81Ioni Bowcher
1038Nicolas Y OstroskyArgentina2026-06-30Rousseaux, Michael Esq RENEWAL71Ivan Magalhaes
1039Jennifer L PerinAustralia2026-07-04Chanay, Jeffrey A Esq RENEWAL29Ioni Bowcher
1040Antonio M OstroskyIndia2026-06-30Printing Dimensions NEGOTIATION82Bernardo Dominic
1041David Q GlickItaly2026-06-29Benton, John B Jr QUALIFIED8Ioni Bowcher
1042David G PaprockiJapan2026-07-15Buckley Miller Wright QUALIFIED71Onyama Limba
1043Morrow X RulapaughJapan2026-06-26Feiner Bros PROPOSAL8Xuxue Feng
1044Juan L OstroskyIndia2026-06-27Chanay, Jeffrey A Esq QUALIFIED27Amy Elsner
1045Emily O ButtIndia2026-06-27Chanay, Jeffrey A Esq QUALIFIED21Onyama Limba
1046Cody J BowleyArgentina2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED11Elwin Sharvill
1047Mayumi W StensethGermany2026-07-23Rangoni Of Florence QUALIFIED59Anna Fali
1048Emily Q MaletRussia2026-07-05Morlong Associates NEGOTIATION73Bernardo Dominic
1049Isabel F WaycottUnited Kingdom2026-07-23Commercial Press PROPOSAL14Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas E MaletAustraliaBernardo Dominic QUALIFIED
Deepesh B OldroydSpainAsiya Javayant NEGOTIATION
Mayumi I VenereUnited KingdomOnyama Limba QUALIFIED
Murillo P GauchoArgentinaOnyama Limba UNQUALIFIED
Misaki K StensethAustraliaIoni Bowcher NEW
Morrow I BriddickSpainStephen Shaw RENEWAL
Silvio F NestleUnited KingdomIoni Bowcher PROPOSAL
David I TollnerCanadaBernardo Dominic NEGOTIATION
Morrow T RoysterBrazilAmy Elsner UNQUALIFIED
David P ButtSpainOnyama Limba UNQUALIFIED
Johnson K DoeUnited KingdomAmy Elsner QUALIFIED
Leon G WaycottBrazilElwin Sharvill RENEWAL
Ashley W GarufiJapanIvan Magalhaes UNQUALIFIED
Rodrigues Z PaprockiJapanBernardo Dominic NEGOTIATION
Claire V VocelkaCanadaXuxue Feng QUALIFIED
Ashley D NestleRussiaStephen Shaw RENEWAL
Ashley E WieserCanadaStephen Shaw PROPOSAL
Stacey L RutaCanadaXuxue Feng RENEWAL
Jeanfrancois U PaprockiJapanAsiya Javayant UNQUALIFIED
Claire H SlusarskiAustraliaAnna Fali UNQUALIFIED
Aika S RulapaughIndiaOnyama Limba NEGOTIATION
Deepesh U SergiArgentinaElwin Sharvill NEGOTIATION
Aruna M NestleIndiaAmy Elsner UNQUALIFIED
Leja X PerinIndiaXuxue Feng PROPOSAL
Rodrigues C WhobreyFranceXuxue Feng RENEWAL
Murillo E WhobreyUnited KingdomAnna Fali NEW
Alejandro H BowleyIndiaIoni Bowcher UNQUALIFIED
Octavia T RoysterItalyXuxue Feng RENEWAL
Mayumi I ButtBrazilAmy Elsner RENEWAL
Rodrigues W BowleyArgentinaXuxue Feng NEW
Octavia I VenereRussiaIvan Magalhaes UNQUALIFIED
Jefferson Y WhobreyJapanStephen Shaw PROPOSAL
Kadeem O CaldareraCanadaIvan Magalhaes NEGOTIATION
Murillo L PerinJapanBernardo Dominic UNQUALIFIED
Emily B SlusarskiCanadaOnyama Limba RENEWAL
Mujtaba J FlosiIndiaAmy Elsner NEW
Munro S AlbaresIndiaIoni Bowcher NEW
Costa A NickaItalyElwin Sharvill RENEWAL
Alejandro D ShinkoFranceAmy Elsner NEW
Kadeem U OstroskyIndiaAsiya Javayant NEGOTIATION
Ricardo K OldroydRussiaXuxue Feng NEW
Rodrigues M BowleyJapanAnna Fali NEGOTIATION
Morrow T WhobreyRussiaXuxue Feng NEGOTIATION
Jeanfrancois X SaylorsJapanBernardo Dominic PROPOSAL
Nicolas U PoquetteRussiaBernardo Dominic NEGOTIATION
Nicolas O WieserAustraliaOnyama Limba QUALIFIED
Maria A BologniaIndiaOnyama Limba NEGOTIATION
Jeanfrancois Q SergiAustraliaIoni Bowcher PROPOSAL
Izzy Z CaudyIndiaOnyama Limba QUALIFIED
Francesco S VocelkaJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Smith G Saylors
Faith E Rim
Ivar O Caldarera
Rodrigues N Maclead
Ricardo Q Maclead
Silvio G Venere
Salvatore P Darakjy
Claire Y Perin
Leja M Gillian
Antonio O Flosi
Jones W Malet
Jeanfrancois I Perin
Jeanfrancois O Gaucho
Kaitlin O Figeroa
Ricardo K Garufi
Jeanfrancois D Flosi
Nicolas K Gillian
Ashley V Vocelka
Morrow C Dilliard
Faith M Albares
Jeanfrancois P Vocelka
Leon E Oldroyd
Cody O Nicka
Jefferson Y Tollner
Faith X Nestle
Emily O Slusarski
Rodrigues U Vocelka
Clifford M Caudy
Sinclair Z Kusko
David F Shinko
Wickens Y Waycott
David K Nestle
Stacey A Tollner
Juan B Whobrey
Ricardo J Bowley
Jones N Venere
Greenwood H Ferencz
Ashley B Tollner
Cody H Caudy
Antonio N Sergi
Claire S Bowley
Antonio M Garufi
Morrow N Gillian
Smith Y Rulapaugh
Munro E Perin
Johnson S Slusarski
Isabel K Dilliard
Faith O Bowley
Morrow V Flosi
Morrow Y Stockham
IdCountryDate
1000Italy2026-07-11
1001Australia2026-07-18
1002Italy2026-07-13
1003Germany2026-07-03
1004United Kingdom2026-07-16
1005United Kingdom2026-06-24
1006Argentina2026-07-02
1007Argentina2026-07-09
1008Italy2026-06-27
1009Canada2026-07-02
1010Japan2026-06-29
1011United Kingdom2026-06-27
1012India2026-07-13
1013Italy2026-06-25
1014Germany2026-06-26
1015France2026-07-13
1016United Kingdom2026-07-15
1017United Kingdom2026-07-03
1018France2026-07-04
1019Germany2026-07-10
1020France2026-07-20
1021Germany2026-07-19
1022United Kingdom2026-07-11
1023India2026-06-28
1024Spain2026-06-26
1025Argentina2026-07-02
1026Brazil2026-07-17
1027Spain2026-07-09
1028Japan2026-07-16
1029Brazil2026-07-07
1030France2026-06-24
1031Brazil2026-07-01
1032Canada2026-07-15
1033Brazil2026-07-02
1034Argentina2026-07-02
1035Australia2026-07-21
1036India2026-07-18
1037India2026-07-13
1038France2026-07-09
1039United Kingdom2026-06-24
1040Italy2026-07-02
1041Australia2026-07-08
1042Japan2026-06-25
1043United Kingdom2026-07-13
1044Brazil2026-07-19
1045Russia2026-07-17
1046India2026-07-21
1047France2026-07-02
1048Germany2026-07-23
1049Australia2026-07-22

On-Demand Data

NameIdCountryDate
Mayumi W Bolognia1000Germany2026-07-16
Adams I Glick1001Brazil2026-07-11
Silvio D Vocelka1002Argentina2026-07-21
Mayumi C Dilliard1003Spain2026-06-27
Ivar K Nestle1004India2026-07-21
Kadeem W Ferencz1005Argentina2026-07-16
Aika J Malet1006Canada2026-07-13
Jeanfrancois W Whobrey1007Germany2026-07-19
Nicolas J Rulapaugh1008Canada2026-06-28
Sinclair L Malet1009Russia2026-07-21
Julie E Kusko1010Russia2026-07-21
Juan V Butt1011Spain2026-07-14
Clifford F Iturbide1012Italy2026-06-27
Stacey M Kolmetz1013Japan2026-07-21
Cody O Rim1014Germany2026-07-19
Cody E Figeroa1015Italy2026-07-02
Claire S Poquette1016France2026-07-10
Claire K Stockham1017France2026-06-25
Ivar S Campain1018India2026-07-21
Adams U Ostrosky1019Australia2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja J RoysterGermanyIoni Bowcher RENEWAL
Arvin U GarufiSpainAnna Fali NEW
Tony T FerenczGermanyIvan Magalhaes NEGOTIATION
Leon O GarufiCanadaIoni Bowcher RENEWAL
Jeanfrancois T TollnerJapanElwin Sharvill NEW
Francesco X AlbaresCanadaAsiya Javayant QUALIFIED
Salvatore T NestleGermanyIvan Magalhaes QUALIFIED
Claire W AmigonJapanStephen Shaw RENEWAL
Stacey H GauchoUnited KingdomAsiya Javayant PROPOSAL
James X KuskoBrazilIvan Magalhaes QUALIFIED
Salvatore N WaycottGermanyAmy Elsner NEW
Francesco F ButtArgentinaOnyama Limba NEW
Smith Z RimArgentinaBernardo Dominic UNQUALIFIED
Rodrigues Z WieserItalyAsiya Javayant NEGOTIATION
Ashley P GlickItalyStephen Shaw UNQUALIFIED
Kaitlin R ShinkoFranceBernardo Dominic RENEWAL
Misaki N WieserAustraliaAnna Fali NEGOTIATION
James H WhobreyGermanyIoni Bowcher NEGOTIATION
James A SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Francesco K VocelkaSpainAsiya Javayant NEGOTIATION
Stacey V WaycottItalyOnyama Limba NEGOTIATION
Darci U SergiAustraliaStephen Shaw RENEWAL
Maria A GillianUnited KingdomAsiya Javayant QUALIFIED
Juan J DoeRussiaXuxue Feng QUALIFIED
Arvin K DoeItalyOnyama Limba UNQUALIFIED
Maisha Y SchemmerCanadaIoni Bowcher NEGOTIATION
Julie F MaletCanadaIvan Magalhaes UNQUALIFIED
Antonio H FigeroaBrazilBernardo Dominic RENEWAL
Chavez H RutaGermanyElwin Sharvill QUALIFIED
Ashley A MacleadArgentinaIvan Magalhaes QUALIFIED
Maria M StockhamArgentinaXuxue Feng UNQUALIFIED
Smith X WieserItalyElwin Sharvill NEGOTIATION
Ashley L FigeroaBrazilXuxue Feng UNQUALIFIED
Ashley H SergiUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues F CampainSpainAmy Elsner PROPOSAL
Greenwood D CampainItalyElwin Sharvill RENEWAL
Adams Y OldroydBrazilAnna Fali PROPOSAL
Greenwood I MorascaJapanXuxue Feng NEGOTIATION
Aruna C VocelkaAustraliaAmy Elsner UNQUALIFIED
Cody C StockhamJapanIoni Bowcher 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>