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
Maria O StensethJapanIvan Magalhaes NEW
David L WhobreyAustraliaIoni Bowcher RENEWAL
Mayumi D SlusarskiCanadaAsiya Javayant RENEWAL
Wickens Q CaldareraItalyBernardo Dominic NEGOTIATION
Murillo M BologniaRussiaXuxue Feng UNQUALIFIED
Aika D MorascaUnited KingdomIoni Bowcher NEGOTIATION
Nicolas B VenereArgentinaStephen Shaw NEGOTIATION
Clifford P CaldareraGermanyElwin Sharvill RENEWAL
Chavez C MaletIndiaXuxue Feng NEW
Wickens G MarrierFranceAsiya Javayant UNQUALIFIED
Murillo M WaycottSpainAmy Elsner RENEWAL
Isabel K FigeroaBrazilIvan Magalhaes RENEWAL
Jennifer R StockhamSpainIvan Magalhaes NEW
Arvin I TollnerJapanOnyama Limba RENEWAL
Mujtaba D VocelkaAustraliaAmy Elsner RENEWAL
Izzy V OldroydAustraliaAnna Fali QUALIFIED
Antonio A BologniaRussiaIvan Magalhaes QUALIFIED
Wickens W BriddickSpainAmy Elsner QUALIFIED
Cody M OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Isabel A MorascaSpainStephen Shaw UNQUALIFIED
Kadeem X OldroydArgentinaOnyama Limba UNQUALIFIED
Tony T KolmetzAustraliaElwin Sharvill UNQUALIFIED
Ivar P RutaSpainXuxue Feng RENEWAL
Mujtaba W DoeIndiaAnna Fali NEGOTIATION
Nicolas A VenereSpainOnyama Limba NEW
James R MacleadCanadaAnna Fali PROPOSAL
Tony R MaletGermanyBernardo Dominic UNQUALIFIED
Deepesh D DilliardIndiaElwin Sharvill RENEWAL
Chavez N VocelkaSpainStephen Shaw NEGOTIATION
Ivar A AlbaresFranceStephen Shaw PROPOSAL
Sinclair P WaycottRussiaElwin Sharvill RENEWAL
Jeanfrancois N StockhamGermanyOnyama Limba QUALIFIED
Leja C AlbaresCanadaBernardo Dominic QUALIFIED
Misaki T InouyeAustraliaIvan Magalhaes NEGOTIATION
Maisha M ChuiArgentinaAnna Fali RENEWAL
David V WaycottAustraliaIoni Bowcher QUALIFIED
Jennifer I SchemmerArgentinaStephen Shaw NEW
Aika A VenereFranceBernardo Dominic QUALIFIED
Mujtaba F DoeIndiaAmy Elsner UNQUALIFIED
Salvatore J WhobreyIndiaElwin Sharvill UNQUALIFIED
Octavia W MaletItalyStephen Shaw UNQUALIFIED
Murillo J OldroydCanadaXuxue Feng QUALIFIED
Claire Z StockhamSpainAmy Elsner PROPOSAL
Darci G CaldareraCanadaIoni Bowcher PROPOSAL
Clifford G KuskoSpainElwin Sharvill QUALIFIED
Johnson F SaylorsJapanStephen Shaw NEGOTIATION
Salvatore W SaylorsBrazilIvan Magalhaes PROPOSAL
Jones X DoeBrazilStephen Shaw NEGOTIATION
Francesco T MaletBrazilStephen Shaw PROPOSAL
Claire V FollerRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria F MorascaRussiaElwin Sharvill RENEWAL
Emily T PerinIndiaElwin Sharvill RENEWAL
Julie D GarufiGermanyElwin Sharvill NEW
Julie R CampainItalyIvan Magalhaes PROPOSAL
Jeanfrancois L ButtUnited KingdomBernardo Dominic UNQUALIFIED
Leja E WieserIndiaAmy Elsner RENEWAL
James R ChuiArgentinaElwin Sharvill RENEWAL
Mayumi W MaletCanadaAsiya Javayant UNQUALIFIED
Clifford D ButtSpainAmy Elsner RENEWAL
Rodrigues P StockhamJapanAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Q DoeBrazil2025-05-31Truhlar And Truhlar Attys RENEWAL98Stephen Shaw
1001Aika E SergiFrance2025-06-05Printing Dimensions NEGOTIATION80Bernardo Dominic
1002Murillo K DoeArgentina2025-06-10Chemel, James L Cpa NEGOTIATION64Bernardo Dominic
1003Jennifer X SergiSpain2025-05-27Printing Dimensions QUALIFIED58Onyama Limba
1004Jennifer W DarakjyBrazil2025-05-26Chanay, Jeffrey A Esq NEGOTIATION22Ivan Magalhaes
1005Maisha B MacleadSpain2025-06-01King, Christopher A Esq RENEWAL40Stephen Shaw
1006Jones O NestleFrance2025-06-05Dorl, James J Esq QUALIFIED56Ioni Bowcher
1007Smith Q IturbideGermany2025-06-05Buckley Miller Wright UNQUALIFIED60Bernardo Dominic
1008Isabel G RimItaly2025-06-13Printing Dimensions NEGOTIATION39Bernardo Dominic
1009Smith L MorascaGermany2025-06-06Chemel, James L Cpa UNQUALIFIED14Onyama Limba
1010Mujtaba R MaletUnited Kingdom2025-05-21Rangoni Of Florence NEW13Ivan Magalhaes
1011Nicolas E StensethGermany2025-06-05Dorl, James J Esq UNQUALIFIED63Stephen Shaw
1012Isabel V SergiBrazil2025-05-27Truhlar And Truhlar Attys UNQUALIFIED43Anna Fali
1013Izzy H MorascaJapan2025-05-23Dorl, James J Esq NEW82Onyama Limba
1014Ricardo F SaylorsIndia2025-06-11Dorl, James J Esq UNQUALIFIED79Amy Elsner
1015Aika M RulapaughGermany2025-05-29Rangoni Of Florence PROPOSAL25Elwin Sharvill
1016Silvio G VocelkaArgentina2025-06-12Chapman, Ross E Esq RENEWAL4Bernardo Dominic
1017Wickens J RutaFrance2025-06-03King, Christopher A Esq RENEWAL13Amy Elsner
1018Claire I SchemmerAustralia2025-05-24Feiner Bros QUALIFIED40Onyama Limba
1019Costa A BowleyRussia2025-05-31Feiner Bros NEW27Asiya Javayant
1020Mayumi O AmigonUnited Kingdom2025-05-30Morlong Associates NEGOTIATION5Amy Elsner
1021Wickens Y MacleadAustralia2025-06-11Buckley Miller Wright NEW5Ivan Magalhaes
1022Aruna Y IturbideIndia2025-05-21Printing Dimensions UNQUALIFIED69Asiya Javayant
1023Jeanfrancois V ChuiFrance2025-06-16Rangoni Of Florence PROPOSAL62Ivan Magalhaes
1024Tony C WieserFrance2025-06-16Feiner Bros NEGOTIATION69Amy Elsner
1025Nicolas M IturbideArgentina2025-06-02Morlong Associates RENEWAL44Elwin Sharvill
1026Claire L ShinkoUnited Kingdom2025-06-07Printing Dimensions NEW25Ioni Bowcher
1027David L GauchoArgentina2025-05-18Benton, John B Jr UNQUALIFIED59Xuxue Feng
1028Juan U BriddickUnited Kingdom2025-06-13Feiner Bros NEW51Amy Elsner
1029Misaki Q TollnerIndia2025-05-30Rousseaux, Michael Esq RENEWAL3Asiya Javayant
1030Claire L VenereArgentina2025-05-26Benton, John B Jr QUALIFIED90Elwin Sharvill
1031Emily O BologniaAustralia2025-05-23Chemel, James L Cpa UNQUALIFIED72Bernardo Dominic
1032Clifford R StensethRussia2025-05-22Rangoni Of Florence NEW87Xuxue Feng
1033Jefferson L CampainAustralia2025-06-11Rangoni Of Florence NEGOTIATION37Ioni Bowcher
1034Costa K OstroskyArgentina2025-05-25Chapman, Ross E Esq QUALIFIED66Onyama Limba
1035Faith R WaycottArgentina2025-06-07Dorl, James J Esq RENEWAL91Elwin Sharvill
1036Julie I KolmetzJapan2025-06-12Morlong Associates NEGOTIATION87Xuxue Feng
1037Juan N SaylorsRussia2025-06-07Feltz Printing Service RENEWAL72Amy Elsner
1038Antonio V FollerSpain2025-05-19King, Christopher A Esq NEGOTIATION29Stephen Shaw
1039Francesco D MorascaBrazil2025-05-28Chanay, Jeffrey A Esq RENEWAL15Xuxue Feng
1040Aditya J NestleJapan2025-06-07Chemel, James L Cpa UNQUALIFIED31Ioni Bowcher
1041Aika I MorascaSpain2025-06-14Benton, John B Jr PROPOSAL70Ivan Magalhaes
1042Leon Z FerenczItaly2025-05-19Chemel, James L Cpa PROPOSAL94Bernardo Dominic
1043Salvatore S FigeroaBrazil2025-05-18Chanay, Jeffrey A Esq RENEWAL75Anna Fali
1044Aditya K FerenczRussia2025-05-23Feltz Printing Service NEW41Xuxue Feng
1045Munro Q KolmetzAustralia2025-06-13Chemel, James L Cpa NEGOTIATION23Elwin Sharvill
1046James L WhobreySpain2025-05-24Morlong Associates RENEWAL84Asiya Javayant
1047Leja E StensethIndia2025-05-20Feltz Printing Service UNQUALIFIED26Asiya Javayant
1048Mujtaba L KolmetzArgentina2025-05-30Morlong Associates NEW24Ioni Bowcher
1049Salvatore V WhobreyBrazil2025-05-22Commercial Press NEGOTIATION56Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aditya W ButtAustraliaStephen Shaw NEGOTIATION
Izzy W VocelkaItalyXuxue Feng NEW
Leja W GauchoAustraliaIoni Bowcher NEGOTIATION
Aruna H SlusarskiUnited KingdomStephen Shaw QUALIFIED
Isabel M StensethFranceAnna Fali NEW
Claire G SchemmerJapanAnna Fali RENEWAL
Maisha O SchemmerFranceElwin Sharvill PROPOSAL
Jefferson Z BologniaAustraliaStephen Shaw PROPOSAL
James L MaletSpainAmy Elsner UNQUALIFIED
Jeanfrancois S CampainAustraliaXuxue Feng PROPOSAL
Greenwood V FlosiArgentinaBernardo Dominic NEW
Rodrigues Q GarufiAustraliaIvan Magalhaes RENEWAL
Ivar J PerinBrazilXuxue Feng NEGOTIATION
Ashley J SlusarskiGermanyAmy Elsner QUALIFIED
Deepesh V FollerUnited KingdomAsiya Javayant UNQUALIFIED
Munro Y ShinkoCanadaXuxue Feng UNQUALIFIED
Ashley B MorascaAustraliaElwin Sharvill PROPOSAL
Izzy T FerenczItalyBernardo Dominic UNQUALIFIED
Jones N KolmetzItalyAnna Fali NEW
Alejandro E MaletArgentinaOnyama Limba UNQUALIFIED
Morrow O CampainArgentinaIvan Magalhaes RENEWAL
Adams H InouyeCanadaAmy Elsner UNQUALIFIED
Rodrigues D InouyeCanadaAnna Fali NEW
Wickens O BowleySpainAsiya Javayant RENEWAL
Morrow I MaletArgentinaStephen Shaw NEGOTIATION
Aditya Y CaldareraCanadaElwin Sharvill NEW
Isabel F FerenczJapanElwin Sharvill NEW
Adams C SlusarskiIndiaBernardo Dominic QUALIFIED
Antonio T InouyeArgentinaAnna Fali PROPOSAL
Sinclair Z FigeroaArgentinaStephen Shaw RENEWAL
Kadeem H InouyeGermanyAmy Elsner NEGOTIATION
Ricardo U GlickUnited KingdomStephen Shaw QUALIFIED
Rodrigues V TollnerCanadaIvan Magalhaes UNQUALIFIED
Ashley P ChuiJapanAsiya Javayant UNQUALIFIED
Cody G SchemmerRussiaStephen Shaw RENEWAL
Chavez G VenereCanadaAnna Fali UNQUALIFIED
Clifford P FollerSpainIoni Bowcher NEGOTIATION
Salvatore Y WaycottAustraliaXuxue Feng QUALIFIED
Ashley H VocelkaCanadaBernardo Dominic PROPOSAL
Mujtaba M PerinIndiaOnyama Limba QUALIFIED
Tony S InouyeSpainAmy Elsner NEW
Leja P WhobreyRussiaIvan Magalhaes QUALIFIED
Jennifer C KuskoJapanStephen Shaw PROPOSAL
Kaitlin X MaletFranceIvan Magalhaes NEW
Kaitlin X FollerFranceBernardo Dominic UNQUALIFIED
Juan V GlickUnited KingdomAnna Fali NEW
Ivar H PerinSpainOnyama Limba NEW
Claire Y FerenczArgentinaIoni Bowcher NEGOTIATION
Aditya P RulapaughBrazilElwin Sharvill NEGOTIATION
Salvatore J OldroydUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Ivar Q Albares
Kaitlin K Ferencz
Arvin X Vocelka
Mayumi C Poquette
James Q Gaucho
Greenwood X Garufi
Alejandro H Flosi
Misaki A Venere
Leon X Figeroa
Jeanfrancois D Flosi
Ivar P Royster
Deepesh W Perin
Greenwood D Ostrosky
Misaki X Figeroa
Ricardo Y Malet
Greenwood Z Oldroyd
Maria M Ferencz
Tony A Ferencz
Jeanfrancois R Waycott
Mayumi M Oldroyd
Ashley L Whobrey
Wickens U Slusarski
Johnson Y Nestle
Mujtaba V Albares
Deepesh Z Doe
Ashley F Slusarski
Octavia K Dilliard
Costa P Wieser
Arvin Z Garufi
Jennifer V Rim
David P Vocelka
Smith K Rulapaugh
Misaki J Perin
Greenwood M Chui
Kadeem W Gillian
Kadeem P Rulapaugh
Nicolas J Malet
Nicolas U Nestle
Julie F Doe
Leon X Rulapaugh
Aruna E Albares
Julie C Glick
Antonio G Schemmer
Ivar H Gillian
Murillo O Morasca
Greenwood S Vocelka
Arvin S Amigon
Aika M Wieser
Chavez Y Iturbide
Aika Y Inouye
IdCountryDate
1000Russia2025-06-02
1001Italy2025-05-31
1002India2025-06-13
1003Spain2025-05-23
1004Brazil2025-06-08
1005Italy2025-06-11
1006Germany2025-06-13
1007Germany2025-05-23
1008Australia2025-06-09
1009Italy2025-05-22
1010Argentina2025-06-12
1011Argentina2025-05-23
1012Italy2025-05-29
1013Canada2025-05-19
1014Italy2025-06-06
1015Italy2025-06-12
1016Australia2025-05-22
1017Japan2025-06-05
1018India2025-05-20
1019Australia2025-05-25
1020Germany2025-06-09
1021France2025-05-21
1022India2025-05-27
1023Brazil2025-05-21
1024Spain2025-06-07
1025Russia2025-06-14
1026Germany2025-05-27
1027India2025-06-08
1028Germany2025-06-12
1029Japan2025-06-05
1030France2025-06-06
1031India2025-05-18
1032United Kingdom2025-06-01
1033Brazil2025-06-08
1034Argentina2025-06-07
1035Australia2025-06-11
1036Argentina2025-05-27
1037Brazil2025-05-31
1038Brazil2025-06-11
1039France2025-06-08
1040Canada2025-05-27
1041France2025-05-20
1042Italy2025-05-30
1043United Kingdom2025-06-10
1044France2025-05-18
1045Spain2025-06-08
1046Italy2025-06-14
1047United Kingdom2025-06-04
1048Brazil2025-05-21
1049Brazil2025-06-14

On-Demand Data

NameIdCountryDate
Isabel I Royster1000India2025-05-29
James C Shinko1001Brazil2025-06-05
Maisha W Dilliard1002Australia2025-06-06
Juan I Chui1003Russia2025-06-14
Aika H Bowley1004Japan2025-05-28
Faith Y Caldarera1005France2025-06-13
Ivar J Rulapaugh1006India2025-06-05
Adams P Sergi1007Argentina2025-06-16
Murillo J Poquette1008India2025-06-02
Jones M Inouye1009Australia2025-05-22
Octavia W Schemmer1010Germany2025-05-30
Claire M Morasca1011United Kingdom2025-05-27
Nicolas A Kolmetz1012Spain2025-06-12
Aika H Bolognia1013Italy2025-06-16
Clifford N Bolognia1014Canada2025-06-02
Stacey M Darakjy1015Italy2025-06-16
Antonio X Darakjy1016Australia2025-05-28
David E Morasca1017India2025-06-16
Rodrigues U Royster1018Japan2025-05-19
Octavia I Bolognia1019India2025-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo C CampainJapanOnyama Limba RENEWAL
Greenwood R DilliardJapanElwin Sharvill NEGOTIATION
Mayumi M BowleyFranceBernardo Dominic NEW
Johnson V DarakjyAustraliaAmy Elsner QUALIFIED
Aditya J OstroskyIndiaIvan Magalhaes NEW
Stacey A RutaRussiaXuxue Feng NEW
Arvin A InouyeCanadaIvan Magalhaes PROPOSAL
Antonio I FollerGermanyAsiya Javayant NEGOTIATION
Morrow B DilliardFranceOnyama Limba RENEWAL
Greenwood G MacleadAustraliaIoni Bowcher NEGOTIATION
Morrow F StensethBrazilOnyama Limba PROPOSAL
Rodrigues W GlickIndiaElwin Sharvill PROPOSAL
Costa L BowleyArgentinaAmy Elsner NEGOTIATION
Maisha O ShinkoJapanAnna Fali RENEWAL
Cody P MarrierJapanStephen Shaw RENEWAL
Octavia M SaylorsItalyIvan Magalhaes RENEWAL
Murillo D NickaBrazilAsiya Javayant QUALIFIED
Chavez R DoeGermanyBernardo Dominic NEGOTIATION
David V SergiJapanAmy Elsner PROPOSAL
Adams L MacleadSpainBernardo Dominic RENEWAL
Jones K KuskoJapanStephen Shaw PROPOSAL
Adams T KolmetzItalyBernardo Dominic QUALIFIED
Juan Y DilliardArgentinaStephen Shaw RENEWAL
Izzy C MorascaAustraliaStephen Shaw NEW
Costa M RimCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois L PerinJapanXuxue Feng UNQUALIFIED
Chavez M MacleadItalyIvan Magalhaes NEGOTIATION
Costa K NickaFranceIoni Bowcher NEW
Greenwood V ButtArgentinaXuxue Feng NEW
Silvio J OldroydItalyStephen Shaw QUALIFIED
Isabel D RimSpainBernardo Dominic QUALIFIED
Costa F MacleadFranceOnyama Limba NEW
Jefferson M MaletArgentinaIoni Bowcher NEW
Octavia L GauchoUnited KingdomIoni Bowcher NEW
Silvio P SergiRussiaOnyama Limba NEW
Salvatore W StockhamIndiaStephen Shaw NEGOTIATION
Smith O MaletUnited KingdomAsiya Javayant NEGOTIATION
Maisha D MorascaArgentinaStephen Shaw PROPOSAL
Leja V StockhamJapanIvan Magalhaes QUALIFIED
Mayumi W OldroydUnited KingdomOnyama Limba 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>