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
Aditya S KolmetzJapanStephen Shaw QUALIFIED
Mujtaba E AlbaresSpainXuxue Feng PROPOSAL
Juan X KolmetzRussiaIvan Magalhaes PROPOSAL
Mayumi U BologniaSpainBernardo Dominic UNQUALIFIED
Jefferson X DilliardRussiaElwin Sharvill RENEWAL
Octavia D PaprockiFranceAsiya Javayant PROPOSAL
Aditya T IturbideAustraliaAsiya Javayant UNQUALIFIED
Antonio P InouyeCanadaAnna Fali UNQUALIFIED
Aruna G GauchoAustraliaAsiya Javayant RENEWAL
Clifford M SchemmerGermanyAsiya Javayant RENEWAL
David I GillianIndiaOnyama Limba NEGOTIATION
Stacey N AmigonUnited KingdomAsiya Javayant NEW
Aditya W FerenczArgentinaXuxue Feng NEW
David V OstroskyAustraliaIvan Magalhaes RENEWAL
Clifford B AmigonBrazilOnyama Limba UNQUALIFIED
Salvatore Y VocelkaArgentinaOnyama Limba QUALIFIED
Aika V StensethBrazilAmy Elsner NEGOTIATION
Wickens X BologniaArgentinaStephen Shaw PROPOSAL
Aditya X VocelkaArgentinaIvan Magalhaes RENEWAL
Deepesh Y WaycottArgentinaAsiya Javayant NEW
James E MarrierItalyBernardo Dominic NEGOTIATION
Silvio A CaudyItalyAnna Fali PROPOSAL
Ashley C BriddickBrazilAnna Fali UNQUALIFIED
Octavia T GarufiUnited KingdomAnna Fali UNQUALIFIED
Deepesh Y ButtBrazilOnyama Limba RENEWAL
Aruna C RoysterRussiaAnna Fali NEW
Julie W RutaAustraliaXuxue Feng PROPOSAL
Smith Z PoquetteJapanXuxue Feng PROPOSAL
Rodrigues V RimIndiaXuxue Feng NEGOTIATION
Izzy G FigeroaArgentinaOnyama Limba UNQUALIFIED
Aruna J SchemmerItalyStephen Shaw NEW
Claire Y GlickFranceOnyama Limba NEW
Deepesh E CaldareraCanadaAnna Fali NEW
Morrow B PaprockiUnited KingdomElwin Sharvill QUALIFIED
Mayumi V FollerIndiaStephen Shaw UNQUALIFIED
Kadeem W WieserSpainAsiya Javayant QUALIFIED
Juan Y FollerAustraliaIoni Bowcher NEW
Mujtaba W RulapaughIndiaIoni Bowcher UNQUALIFIED
Ivar U SchemmerBrazilXuxue Feng PROPOSAL
Ivar R WhobreyJapanIoni Bowcher RENEWAL
Stacey R FollerRussiaIvan Magalhaes QUALIFIED
Rodrigues X CaudyArgentinaIoni Bowcher PROPOSAL
Emily H BriddickItalyOnyama Limba NEGOTIATION
Juan Q ButtIndiaOnyama Limba NEW
Faith X FigeroaGermanyStephen Shaw UNQUALIFIED
Murillo N ButtCanadaBernardo Dominic UNQUALIFIED
James P BowleyIndiaOnyama Limba RENEWAL
Maria I InouyeRussiaBernardo Dominic PROPOSAL
Jeanfrancois H DilliardIndiaBernardo Dominic NEGOTIATION
Costa G DoeAustraliaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio H SergiItalyXuxue Feng NEGOTIATION
Murillo M VenereRussiaAsiya Javayant NEGOTIATION
Deepesh Y CampainIndiaXuxue Feng RENEWAL
Smith R InouyeRussiaBernardo Dominic NEGOTIATION
Greenwood A GlickSpainAsiya Javayant NEGOTIATION
Aditya D WieserItalyAnna Fali RENEWAL
Juan Y RimArgentinaXuxue Feng UNQUALIFIED
Clifford M MacleadUnited KingdomAnna Fali PROPOSAL
Wickens P KolmetzGermanyIoni Bowcher NEGOTIATION
Costa O VenereCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria Z IturbideJapan2026-07-17Feltz Printing Service UNQUALIFIED37Ioni Bowcher
1001Johnson P DoeGermany2026-08-15Feiner Bros NEW49Asiya Javayant
1002Deepesh D CampainItaly2026-08-10Truhlar And Truhlar Attys RENEWAL2Onyama Limba
1003Costa N SaylorsUnited Kingdom2026-08-02Dorl, James J Esq QUALIFIED1Ioni Bowcher
1004Greenwood L FlosiItaly2026-08-11Truhlar And Truhlar Attys PROPOSAL3Anna Fali
1005Maria O SergiCanada2026-07-18Chapman, Ross E Esq NEW4Stephen Shaw
1006Francesco F CaldareraFrance2026-08-05Truhlar And Truhlar Attys QUALIFIED29Amy Elsner
1007Misaki Z DilliardBrazil2026-08-03Morlong Associates UNQUALIFIED51Ivan Magalhaes
1008Kadeem S SlusarskiSpain2026-07-25Morlong Associates RENEWAL6Ioni Bowcher
1009Costa B VocelkaItaly2026-08-04Truhlar And Truhlar Attys QUALIFIED45Ioni Bowcher
1010Salvatore V NestleBrazil2026-08-10Buckley Miller Wright QUALIFIED65Xuxue Feng
1011Francesco A GillianArgentina2026-08-10King, Christopher A Esq UNQUALIFIED79Ioni Bowcher
1012Misaki S VenereFrance2026-07-20King, Christopher A Esq QUALIFIED99Ioni Bowcher
1013Aika O RulapaughIndia2026-07-29Morlong Associates NEGOTIATION92Onyama Limba
1014Antonio K OldroydSpain2026-07-18Feltz Printing Service PROPOSAL18Ioni Bowcher
1015Julie Y MorascaBrazil2026-07-26Commercial Press NEGOTIATION72Onyama Limba
1016Isabel C DoeAustralia2026-08-01Buckley Miller Wright PROPOSAL90Elwin Sharvill
1017Darci I SergiGermany2026-08-13Benton, John B Jr UNQUALIFIED51Anna Fali
1018Nicolas O SaylorsGermany2026-08-13Feltz Printing Service NEW9Bernardo Dominic
1019Rodrigues K SlusarskiCanada2026-08-06Buckley Miller Wright UNQUALIFIED83Stephen Shaw
1020Emily D FerenczCanada2026-07-30Feiner Bros UNQUALIFIED55Asiya Javayant
1021Smith T MacleadUnited Kingdom2026-07-30Dorl, James J Esq NEGOTIATION66Stephen Shaw
1022Salvatore U MarrierRussia2026-08-15King, Christopher A Esq PROPOSAL60Anna Fali
1023Antonio C ShinkoAustralia2026-08-12Chapman, Ross E Esq NEGOTIATION77Xuxue Feng
1024David R MorascaCanada2026-07-23Chemel, James L Cpa UNQUALIFIED89Amy Elsner
1025Jennifer C InouyeCanada2026-08-12Feltz Printing Service RENEWAL21Elwin Sharvill
1026Morrow L BologniaGermany2026-08-10Rangoni Of Florence NEW36Xuxue Feng
1027Arvin U FerenczRussia2026-07-20Rangoni Of Florence RENEWAL74Ioni Bowcher
1028Clifford F BowleyArgentina2026-07-23King, Christopher A Esq QUALIFIED63Onyama Limba
1029Misaki L MaletUnited Kingdom2026-08-13Feiner Bros UNQUALIFIED86Onyama Limba
1030Aruna Y KolmetzItaly2026-07-27Feltz Printing Service RENEWAL47Bernardo Dominic
1031Aruna T KolmetzBrazil2026-07-20Commercial Press NEW56Anna Fali
1032Clifford O BologniaUnited Kingdom2026-08-12Benton, John B Jr NEW43Ioni Bowcher
1033Alejandro J TollnerGermany2026-08-01Chanay, Jeffrey A Esq NEW47Ioni Bowcher
1034Ricardo W StockhamItaly2026-07-23Feltz Printing Service NEW62Anna Fali
1035Jennifer V BowleySpain2026-07-28Feiner Bros UNQUALIFIED28Anna Fali
1036Nicolas V GillianFrance2026-07-26Chanay, Jeffrey A Esq QUALIFIED24Bernardo Dominic
1037Aditya C FollerRussia2026-07-20Truhlar And Truhlar Attys PROPOSAL88Stephen Shaw
1038Nicolas J SlusarskiIndia2026-08-02Commercial Press UNQUALIFIED5Xuxue Feng
1039Ricardo W RimRussia2026-07-18Morlong Associates UNQUALIFIED55Asiya Javayant
1040Silvio F ButtAustralia2026-07-27Morlong Associates RENEWAL50Ioni Bowcher
1041Mayumi W FerenczIndia2026-07-21Feiner Bros RENEWAL9Asiya Javayant
1042Chavez A GlickRussia2026-07-28Dorl, James J Esq NEGOTIATION3Asiya Javayant
1043Murillo D RulapaughBrazil2026-08-03Chapman, Ross E Esq QUALIFIED51Ioni Bowcher
1044Deepesh J MaletFrance2026-08-13Feltz Printing Service PROPOSAL25Anna Fali
1045Mayumi T PoquetteUnited Kingdom2026-07-27Truhlar And Truhlar Attys QUALIFIED1Ivan Magalhaes
1046Mayumi K OldroydGermany2026-08-13Dorl, James J Esq RENEWAL71Onyama Limba
1047Kadeem Y FlosiCanada2026-07-28Rangoni Of Florence NEW13Stephen Shaw
1048Misaki U OstroskySpain2026-08-11Morlong Associates NEGOTIATION15Asiya Javayant
1049Munro L MarrierArgentina2026-07-21Truhlar And Truhlar Attys PROPOSAL4Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Salvatore S PaprockiRussiaAsiya Javayant NEW
David I SaylorsSpainXuxue Feng QUALIFIED
Munro C WaycottItalyIoni Bowcher UNQUALIFIED
Claire U PaprockiAustraliaOnyama Limba NEGOTIATION
Nicolas S CaudySpainStephen Shaw UNQUALIFIED
Ivar R ShinkoRussiaIoni Bowcher QUALIFIED
Mujtaba F WieserFranceAnna Fali RENEWAL
Munro S MacleadAustraliaAsiya Javayant RENEWAL
Morrow V MaletSpainOnyama Limba NEGOTIATION
Alejandro Y SlusarskiJapanOnyama Limba QUALIFIED
Cody I BowleyRussiaAsiya Javayant PROPOSAL
Rodrigues C KuskoFranceAsiya Javayant UNQUALIFIED
Clifford K FollerRussiaAmy Elsner NEW
Aditya V RimUnited KingdomIoni Bowcher NEGOTIATION
Adams L ChuiSpainStephen Shaw RENEWAL
Silvio E GlickIndiaStephen Shaw NEW
Aika G WhobreyGermanyIvan Magalhaes UNQUALIFIED
Kadeem K RulapaughJapanElwin Sharvill PROPOSAL
Jennifer C ChuiArgentinaAmy Elsner NEGOTIATION
Aika G SergiIndiaIvan Magalhaes QUALIFIED
Aditya O VocelkaBrazilIoni Bowcher PROPOSAL
Kaitlin U GillianIndiaAsiya Javayant NEW
Munro B FigeroaSpainElwin Sharvill NEW
Arvin D WhobreyUnited KingdomAmy Elsner PROPOSAL
Munro Y GauchoIndiaAsiya Javayant UNQUALIFIED
Stacey A ButtArgentinaStephen Shaw UNQUALIFIED
Adams C SlusarskiArgentinaAsiya Javayant NEW
Jeanfrancois V MaletArgentinaBernardo Dominic PROPOSAL
Misaki T IturbideRussiaIvan Magalhaes RENEWAL
Wickens E RoysterBrazilOnyama Limba NEGOTIATION
Chavez P FlosiGermanyAnna Fali UNQUALIFIED
Wickens I DoeArgentinaIvan Magalhaes QUALIFIED
Maisha Q WhobreyAustraliaAmy Elsner NEGOTIATION
Ashley E WaycottUnited KingdomIoni Bowcher RENEWAL
Wickens D NickaCanadaBernardo Dominic NEW
Morrow K DilliardIndiaStephen Shaw NEGOTIATION
Leon W DilliardArgentinaIvan Magalhaes UNQUALIFIED
Nicolas G RimCanadaStephen Shaw UNQUALIFIED
Arvin J RutaBrazilElwin Sharvill RENEWAL
James G DoeJapanIvan Magalhaes RENEWAL
Juan S NestleItalyBernardo Dominic NEW
Kaitlin K ButtAustraliaIvan Magalhaes QUALIFIED
Misaki Y GarufiGermanyOnyama Limba UNQUALIFIED
Smith D TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro P MaletFranceElwin Sharvill NEW
Aika D MacleadGermanyElwin Sharvill PROPOSAL
Salvatore N KolmetzSpainStephen Shaw QUALIFIED
Johnson D RimCanadaAnna Fali NEW
Nicolas G DarakjySpainOnyama Limba PROPOSAL
Jones N StockhamAustraliaAmy Elsner RENEWAL
Frozen Columns
Name
Misaki X Marrier
Misaki M Darakjy
Izzy I Stockham
Munro I Royster
Antonio Y Chui
Salvatore F Glick
Jeanfrancois T Caudy
Deepesh E Oldroyd
Jeanfrancois B Tollner
Antonio F Gillian
Claire L Malet
Octavia W Wieser
Faith N Amigon
Ivar N Vocelka
Mayumi A Marrier
Antonio R Slusarski
James J Flosi
Greenwood O Shinko
Costa W Morasca
Morrow L Perin
Clifford O Oldroyd
Salvatore I Malet
Aika T Ruta
Francesco X Figeroa
Greenwood U Schemmer
Clifford A Poquette
Rodrigues K Briddick
Smith H Briddick
Costa E Bolognia
Mujtaba Q Wieser
Maisha F Iturbide
Misaki D Sergi
Maisha W Rim
Clifford D Stockham
Clifford F Nestle
Isabel N Bowley
Mayumi X Figeroa
David P Wieser
Octavia N Saylors
Cody L Poquette
Kaitlin M Marrier
Mujtaba Z Flosi
Jefferson G Campain
David S Shinko
Jones L Stenseth
Adams F Kolmetz
Clifford R Schemmer
Claire X Inouye
Wickens Y Ferencz
Rodrigues C Flosi
IdCountryDate
1000Argentina2026-07-28
1001Italy2026-07-26
1002Russia2026-08-13
1003Australia2026-07-18
1004Russia2026-07-22
1005Australia2026-07-19
1006Australia2026-07-17
1007Russia2026-07-17
1008Brazil2026-07-17
1009Spain2026-08-10
1010Canada2026-07-24
1011Spain2026-08-02
1012Argentina2026-07-26
1013Australia2026-08-04
1014Germany2026-08-07
1015Russia2026-08-02
1016Brazil2026-08-03
1017India2026-08-07
1018Brazil2026-07-26
1019India2026-08-13
1020Australia2026-08-02
1021Brazil2026-07-20
1022Argentina2026-07-28
1023Brazil2026-07-20
1024Italy2026-07-17
1025United Kingdom2026-07-27
1026Argentina2026-08-08
1027Argentina2026-08-05
1028Russia2026-08-07
1029United Kingdom2026-07-17
1030France2026-07-20
1031United Kingdom2026-08-05
1032Germany2026-07-22
1033Italy2026-08-01
1034Russia2026-07-17
1035Australia2026-07-24
1036Russia2026-07-17
1037Canada2026-07-22
1038Russia2026-08-07
1039Russia2026-08-15
1040India2026-08-15
1041Germany2026-07-21
1042France2026-07-28
1043Spain2026-07-17
1044Russia2026-07-24
1045Brazil2026-07-27
1046Japan2026-08-04
1047United Kingdom2026-07-27
1048United Kingdom2026-07-27
1049Australia2026-07-29

On-Demand Data

NameIdCountryDate
Julie Q Schemmer1000Australia2026-08-13
Maria N Kusko1001Russia2026-07-17
Jennifer G Poquette1002Russia2026-08-08
Smith X Kusko1003India2026-08-14
Izzy P Perin1004India2026-08-04
Silvio D Slusarski1005India2026-07-20
Aruna B Wieser1006India2026-08-01
Munro W Shinko1007India2026-07-20
Mujtaba E Waycott1008United Kingdom2026-07-22
Tony U Royster1009Italy2026-08-01
Antonio I Figeroa1010Canada2026-08-14
Wickens Y Albares1011France2026-07-29
Rodrigues Z Perin1012United Kingdom2026-08-09
Mujtaba N Sergi1013Spain2026-07-21
Smith O Schemmer1014Australia2026-08-03
Adams N Albares1015India2026-08-08
Morrow V Darakjy1016Australia2026-08-05
Maria T Sergi1017United Kingdom2026-07-30
Claire J Briddick1018France2026-08-09
Greenwood F Maclead1019Italy2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria Q VenereJapanElwin Sharvill QUALIFIED
David Y PoquetteAustraliaIvan Magalhaes QUALIFIED
Leon B NestleCanadaAnna Fali NEGOTIATION
Silvio D WhobreySpainStephen Shaw NEGOTIATION
Aditya I NickaCanadaIvan Magalhaes UNQUALIFIED
Kaitlin S WaycottIndiaIvan Magalhaes UNQUALIFIED
Mujtaba N FollerItalyBernardo Dominic NEGOTIATION
Sinclair S SchemmerIndiaIoni Bowcher NEW
Aditya D StensethIndiaAmy Elsner PROPOSAL
Ivar E BowleyUnited KingdomIoni Bowcher PROPOSAL
Ivar O BologniaSpainIoni Bowcher UNQUALIFIED
Arvin Z SaylorsIndiaIvan Magalhaes QUALIFIED
Smith K FlosiRussiaAnna Fali NEW
Faith G TollnerSpainIvan Magalhaes NEGOTIATION
Silvio H SaylorsIndiaAmy Elsner QUALIFIED
Mayumi Z MaletBrazilStephen Shaw RENEWAL
Isabel N PoquetteAustraliaElwin Sharvill QUALIFIED
Alejandro U BowleyRussiaStephen Shaw UNQUALIFIED
Jennifer D OldroydArgentinaStephen Shaw NEW
Tony S DilliardFranceIoni Bowcher RENEWAL
Ivar X AmigonBrazilIoni Bowcher NEGOTIATION
Murillo N PoquetteGermanyAnna Fali NEGOTIATION
Jeanfrancois H PoquetteCanadaIvan Magalhaes QUALIFIED
Jeanfrancois D MaletUnited KingdomStephen Shaw NEW
Costa P FerenczCanadaIoni Bowcher NEW
Rodrigues U MaletRussiaBernardo Dominic PROPOSAL
Darci N FollerRussiaAsiya Javayant RENEWAL
Nicolas U MarrierGermanyXuxue Feng PROPOSAL
Leja S MorascaCanadaElwin Sharvill QUALIFIED
Jennifer B FigeroaCanadaIvan Magalhaes NEW
Leja D SchemmerAustraliaXuxue Feng NEW
Ivar P BriddickAustraliaBernardo Dominic NEGOTIATION
Clifford C SlusarskiCanadaXuxue Feng NEGOTIATION
Maria M GillianArgentinaOnyama Limba NEGOTIATION
Ricardo A RoysterCanadaIvan Magalhaes UNQUALIFIED
Aruna H PoquetteUnited KingdomAsiya Javayant QUALIFIED
Claire T OldroydArgentinaBernardo Dominic UNQUALIFIED
Leon H NestleFranceBernardo Dominic NEW
Arvin B FollerFranceIoni Bowcher NEW
David N DarakjySpainStephen Shaw PROPOSAL

<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>