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
Silvio I NickaCanadaXuxue Feng NEGOTIATION
Aruna G PoquetteIndiaOnyama Limba PROPOSAL
Mayumi A GlickSpainIoni Bowcher NEGOTIATION
Ivar K FlosiUnited KingdomXuxue Feng RENEWAL
Aruna V MorascaAustraliaIvan Magalhaes PROPOSAL
Mayumi G ButtBrazilAnna Fali RENEWAL
Misaki J FlosiBrazilIvan Magalhaes QUALIFIED
Aruna P AlbaresAustraliaAmy Elsner NEGOTIATION
Nicolas O SaylorsBrazilElwin Sharvill PROPOSAL
Johnson C KolmetzCanadaAmy Elsner QUALIFIED
Misaki J PoquetteBrazilIvan Magalhaes NEGOTIATION
Munro M DoeAustraliaStephen Shaw UNQUALIFIED
Mujtaba K SergiGermanyIoni Bowcher PROPOSAL
Juan T RulapaughAustraliaAmy Elsner UNQUALIFIED
Julie X KuskoArgentinaOnyama Limba NEW
Ashley B WaycottAustraliaIvan Magalhaes RENEWAL
Murillo I ShinkoUnited KingdomIoni Bowcher NEW
Wickens Q FerenczJapanAnna Fali NEW
Isabel D PerinGermanyAnna Fali RENEWAL
Smith P PaprockiGermanyAmy Elsner UNQUALIFIED
Leja M KolmetzIndiaAnna Fali RENEWAL
Darci P DoeSpainAnna Fali NEW
Sinclair T SlusarskiSpainElwin Sharvill UNQUALIFIED
Jones E OldroydAustraliaBernardo Dominic NEW
Leon L NestleUnited KingdomBernardo Dominic RENEWAL
Ricardo E NestleIndiaAsiya Javayant PROPOSAL
Jefferson U SaylorsAustraliaAmy Elsner PROPOSAL
Adams B IturbideItalyIvan Magalhaes PROPOSAL
Clifford H StensethAustraliaElwin Sharvill RENEWAL
Ricardo A OldroydFranceBernardo Dominic UNQUALIFIED
Salvatore P PoquetteRussiaAnna Fali PROPOSAL
Kaitlin X PaprockiItalyStephen Shaw UNQUALIFIED
Maisha G FollerRussiaIoni Bowcher NEGOTIATION
Deepesh S RimBrazilStephen Shaw QUALIFIED
Nicolas Q NestleAustraliaElwin Sharvill NEGOTIATION
Ivar G MaletAustraliaStephen Shaw QUALIFIED
Claire H ButtJapanIoni Bowcher PROPOSAL
Misaki J VocelkaAustraliaOnyama Limba PROPOSAL
Mujtaba S ChuiCanadaBernardo Dominic RENEWAL
Julie H TollnerFranceXuxue Feng RENEWAL
Claire E FollerBrazilIoni Bowcher RENEWAL
Maria H VocelkaIndiaIoni Bowcher UNQUALIFIED
Octavia K RulapaughFranceBernardo Dominic QUALIFIED
Johnson G FlosiItalyAsiya Javayant NEW
Silvio K DilliardItalyAmy Elsner QUALIFIED
Tony F BologniaRussiaAnna Fali QUALIFIED
Deepesh Q PoquetteRussiaAmy Elsner QUALIFIED
Izzy N WhobreyAustraliaIvan Magalhaes QUALIFIED
Maria K DilliardSpainAnna Fali RENEWAL
Octavia K RimRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya G RoysterGermanyStephen Shaw NEGOTIATION
Chavez M NickaArgentinaAmy Elsner NEW
Leon Y VenereSpainIvan Magalhaes NEW
Chavez J MacleadSpainIoni Bowcher NEGOTIATION
James H RoysterUnited KingdomIoni Bowcher QUALIFIED
Tony J KolmetzJapanIvan Magalhaes PROPOSAL
Adams V MaletItalyAsiya Javayant RENEWAL
Smith C ButtRussiaOnyama Limba NEGOTIATION
Jones X RoysterFranceAmy Elsner NEW
Francesco X RutaGermanyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie S RimUnited Kingdom2026-06-14Chanay, Jeffrey A Esq UNQUALIFIED64Stephen Shaw
1001Morrow F StensethCanada2026-06-23Morlong Associates NEW48Ivan Magalhaes
1002Wickens X VocelkaAustralia2026-06-18King, Christopher A Esq UNQUALIFIED63Ioni Bowcher
1003Arvin J WhobreyItaly2026-06-21Truhlar And Truhlar Attys QUALIFIED33Amy Elsner
1004Stacey C ButtAustralia2026-06-11Chanay, Jeffrey A Esq RENEWAL94Stephen Shaw
1005Alejandro P GillianUnited Kingdom2026-06-24Truhlar And Truhlar Attys NEW27Anna Fali
1006Alejandro P TollnerBrazil2026-06-23Feltz Printing Service NEW88Ioni Bowcher
1007Nicolas I ShinkoSpain2026-06-11Rangoni Of Florence UNQUALIFIED32Anna Fali
1008Mayumi F MaletJapan2026-06-11Chanay, Jeffrey A Esq NEGOTIATION98Asiya Javayant
1009Salvatore J PoquetteUnited Kingdom2026-06-26Truhlar And Truhlar Attys NEW83Ivan Magalhaes
1010Leon N PerinItaly2026-07-01Feiner Bros QUALIFIED20Asiya Javayant
1011Aika R FigeroaBrazil2026-07-06Printing Dimensions RENEWAL89Ivan Magalhaes
1012Leon G FigeroaItaly2026-06-30Rousseaux, Michael Esq UNQUALIFIED66Ivan Magalhaes
1013Faith A CampainGermany2026-07-05Chanay, Jeffrey A Esq RENEWAL41Ivan Magalhaes
1014Aruna J BriddickRussia2026-07-05Feiner Bros UNQUALIFIED69Bernardo Dominic
1015Sinclair N CaldareraCanada2026-06-14Benton, John B Jr QUALIFIED65Elwin Sharvill
1016Jennifer L StockhamAustralia2026-06-15Printing Dimensions NEW90Stephen Shaw
1017Leja B FigeroaRussia2026-07-03Chapman, Ross E Esq QUALIFIED86Elwin Sharvill
1018Octavia K MacleadBrazil2026-06-16Printing Dimensions NEW77Xuxue Feng
1019Izzy H GarufiItaly2026-06-12Truhlar And Truhlar Attys PROPOSAL55Xuxue Feng
1020Morrow B MaletIndia2026-06-25Feltz Printing Service NEGOTIATION51Amy Elsner
1021Aditya M WieserAustralia2026-06-18Chemel, James L Cpa RENEWAL72Ivan Magalhaes
1022Costa C InouyeBrazil2026-06-16Printing Dimensions RENEWAL95Anna Fali
1023Izzy A ButtAustralia2026-06-10Benton, John B Jr PROPOSAL12Stephen Shaw
1024Claire N GlickUnited Kingdom2026-06-19King, Christopher A Esq QUALIFIED78Elwin Sharvill
1025Isabel V MorascaJapan2026-06-16Printing Dimensions UNQUALIFIED45Elwin Sharvill
1026Ivar S IturbideUnited Kingdom2026-06-24Benton, John B Jr NEW86Anna Fali
1027Ivar J StensethCanada2026-06-12Dorl, James J Esq NEGOTIATION0Asiya Javayant
1028Jefferson M ShinkoSpain2026-06-15King, Christopher A Esq RENEWAL6Asiya Javayant
1029Aika J RulapaughGermany2026-06-13Benton, John B Jr RENEWAL35Onyama Limba
1030Chavez Y WieserIndia2026-06-09Feiner Bros QUALIFIED21Bernardo Dominic
1031Mayumi C CampainCanada2026-06-20Dorl, James J Esq NEW13Anna Fali
1032Ivar W BowleyCanada2026-06-30Morlong Associates QUALIFIED96Bernardo Dominic
1033Munro N VocelkaGermany2026-06-28King, Christopher A Esq NEGOTIATION95Xuxue Feng
1034Leja O RoysterGermany2026-06-13Feiner Bros NEGOTIATION36Asiya Javayant
1035Ivar M GillianIndia2026-07-03Feiner Bros NEGOTIATION92Ioni Bowcher
1036Clifford C SergiBrazil2026-06-30King, Christopher A Esq QUALIFIED88Stephen Shaw
1037Nicolas I RimRussia2026-06-26Printing Dimensions UNQUALIFIED67Ioni Bowcher
1038Alejandro B OldroydAustralia2026-07-04Rangoni Of Florence UNQUALIFIED38Ioni Bowcher
1039Emily E NickaCanada2026-06-25Rangoni Of Florence QUALIFIED97Elwin Sharvill
1040Costa T GarufiBrazil2026-06-29Buckley Miller Wright RENEWAL65Asiya Javayant
1041Munro R ButtSpain2026-07-04Rangoni Of Florence NEGOTIATION36Stephen Shaw
1042Wickens D AlbaresFrance2026-06-30Chemel, James L Cpa NEGOTIATION9Ivan Magalhaes
1043Leja C ShinkoAustralia2026-07-02Feltz Printing Service PROPOSAL10Bernardo Dominic
1044Nicolas C KuskoJapan2026-06-10Feltz Printing Service NEW23Stephen Shaw
1045Murillo F VenereItaly2026-06-26Feiner Bros RENEWAL64Amy Elsner
1046Isabel E CaldareraArgentina2026-07-06Chapman, Ross E Esq RENEWAL45Onyama Limba
1047Jones G TollnerSpain2026-06-07Buckley Miller Wright QUALIFIED75Elwin Sharvill
1048Jones Q MorascaIndia2026-06-08King, Christopher A Esq PROPOSAL64Elwin Sharvill
1049Costa S BowleyAustralia2026-06-18Rangoni Of Florence NEW68Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leon L WieserRussiaStephen Shaw NEGOTIATION
Smith Q WaycottAustraliaIvan Magalhaes NEW
Rodrigues N CaldareraRussiaOnyama Limba PROPOSAL
Julie G WieserArgentinaXuxue Feng NEW
Salvatore L GarufiFranceAsiya Javayant PROPOSAL
Julie I CampainSpainStephen Shaw QUALIFIED
Claire G DilliardUnited KingdomIoni Bowcher NEW
Emily B SaylorsRussiaIoni Bowcher UNQUALIFIED
Maisha W TollnerRussiaStephen Shaw PROPOSAL
Mayumi C StensethUnited KingdomAmy Elsner NEGOTIATION
Silvio U InouyeCanadaAmy Elsner RENEWAL
Stacey U BowleyRussiaStephen Shaw NEGOTIATION
Clifford Z MaletAustraliaXuxue Feng PROPOSAL
Tony V FigeroaGermanyIoni Bowcher NEGOTIATION
Nicolas U WaycottUnited KingdomXuxue Feng RENEWAL
Silvio N VocelkaGermanyOnyama Limba PROPOSAL
Leon S KolmetzIndiaAnna Fali NEW
Stacey Z WaycottFranceAmy Elsner PROPOSAL
Aditya P IturbideCanadaElwin Sharvill NEGOTIATION
Kaitlin Y GauchoBrazilXuxue Feng UNQUALIFIED
Jones F StensethArgentinaBernardo Dominic QUALIFIED
Misaki G CaudyRussiaAnna Fali PROPOSAL
Kadeem V TollnerSpainIvan Magalhaes RENEWAL
Misaki O DilliardItalyStephen Shaw NEW
Leon Z VenereFranceAsiya Javayant UNQUALIFIED
Jeanfrancois N ButtFranceStephen Shaw PROPOSAL
Jefferson Y VocelkaIndiaOnyama Limba PROPOSAL
Kaitlin T OstroskyFranceAmy Elsner QUALIFIED
Mujtaba D NickaCanadaAmy Elsner PROPOSAL
Jones V FerenczItalyAsiya Javayant UNQUALIFIED
Maisha V RutaAustraliaElwin Sharvill PROPOSAL
Jones P MarrierIndiaStephen Shaw NEGOTIATION
Mayumi Z CampainItalyIvan Magalhaes PROPOSAL
Kadeem Q GarufiGermanyBernardo Dominic NEW
Darci H PaprockiGermanyOnyama Limba PROPOSAL
Smith R SchemmerCanadaBernardo Dominic UNQUALIFIED
Emily H MacleadArgentinaStephen Shaw QUALIFIED
Stacey W StensethAustraliaXuxue Feng NEW
Octavia C WhobreyJapanBernardo Dominic QUALIFIED
Mayumi L MaletItalyElwin Sharvill QUALIFIED
Wickens L PaprockiRussiaElwin Sharvill RENEWAL
Juan A MorascaAustraliaOnyama Limba NEGOTIATION
Claire O SchemmerCanadaXuxue Feng NEW
Nicolas Y RulapaughCanadaElwin Sharvill RENEWAL
Ivar D VenereBrazilElwin Sharvill UNQUALIFIED
Nicolas L InouyeItalyAmy Elsner NEW
Octavia N MaletItalyBernardo Dominic RENEWAL
Kadeem H RutaUnited KingdomAnna Fali NEW
Emily Z PerinArgentinaIoni Bowcher PROPOSAL
Misaki Q FlosiSpainIvan Magalhaes NEW
Frozen Columns
Name
Salvatore X Whobrey
James V Inouye
Rodrigues K Oldroyd
Greenwood G Inouye
Munro S Gillian
Izzy A Royster
Maisha X Garufi
Claire C Figeroa
Kaitlin S Shinko
Sinclair Y Perin
Stacey L Kolmetz
Chavez K Amigon
Leja P Ferencz
Leja U Gillian
Cody G Paprocki
Adams W Chui
Tony B Schemmer
Adams C Ostrosky
Cody V Poquette
Salvatore Y Wieser
Octavia D Glick
Maisha W Caudy
Julie J Oldroyd
Silvio Y Poquette
Octavia I Glick
Murillo G Paprocki
Leja U Bolognia
Cody E Waycott
Ashley G Waycott
Munro P Glick
Leja T Nestle
Silvio A Bolognia
Jeanfrancois P Oldroyd
Maisha R Oldroyd
Emily D Whobrey
Antonio N Sergi
Smith J Shinko
Jefferson C Bolognia
Rodrigues A Maclead
Kaitlin F Garufi
Ashley G Gillian
Aika W Butt
David H Briddick
Ivar J Darakjy
Aruna I Caudy
Deepesh I Iturbide
Aditya X Malet
Octavia X Royster
Faith Z Stockham
Munro M Malet
IdCountryDate
1000Spain2026-06-08
1001Argentina2026-07-05
1002Canada2026-07-04
1003United Kingdom2026-07-01
1004India2026-06-29
1005United Kingdom2026-06-25
1006Spain2026-06-26
1007Spain2026-06-23
1008France2026-07-02
1009Russia2026-06-14
1010Brazil2026-07-02
1011India2026-06-21
1012Spain2026-06-20
1013Germany2026-06-23
1014Germany2026-06-15
1015Italy2026-06-08
1016Russia2026-06-07
1017India2026-06-25
1018Spain2026-06-14
1019Brazil2026-06-13
1020Russia2026-06-29
1021Argentina2026-06-21
1022Canada2026-07-03
1023France2026-06-08
1024Canada2026-06-30
1025Canada2026-06-28
1026Japan2026-06-19
1027Japan2026-06-08
1028India2026-07-03
1029Japan2026-06-14
1030Russia2026-07-04
1031Brazil2026-06-30
1032India2026-06-10
1033France2026-06-24
1034Australia2026-06-20
1035Argentina2026-07-05
1036Japan2026-06-07
1037Australia2026-06-28
1038Italy2026-06-27
1039Canada2026-06-17
1040Argentina2026-06-09
1041Germany2026-06-11
1042Italy2026-06-09
1043Spain2026-06-23
1044Russia2026-06-12
1045India2026-06-14
1046France2026-07-04
1047Japan2026-07-05
1048India2026-07-01
1049Canada2026-07-03

On-Demand Data

NameIdCountryDate
Mayumi K Stenseth1000Canada2026-06-28
Leja A Doe1001Russia2026-06-14
Misaki L Inouye1002India2026-06-12
Salvatore L Doe1003Argentina2026-06-23
Morrow Y Rulapaugh1004Argentina2026-06-21
Kadeem J Malet1005India2026-07-03
Murillo S Campain1006Germany2026-06-14
Julie T Waycott1007Germany2026-06-23
Jeanfrancois K Kusko1008Argentina2026-06-12
Alejandro A Stockham1009Spain2026-06-21
Emily R Sergi1010Germany2026-06-17
Murillo X Chui1011Brazil2026-07-01
Maria Z Garufi1012Germany2026-06-22
Aika G Briddick1013Japan2026-06-28
Jeanfrancois N Vocelka1014Japan2026-06-21
Greenwood P Inouye1015Brazil2026-06-26
Jones W Wieser1016United Kingdom2026-06-24
Ricardo P Chui1017Brazil2026-06-20
Jefferson E Shinko1018India2026-06-22
Salvatore Z Garufi1019Brazil2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith E KolmetzArgentinaElwin Sharvill RENEWAL
Sinclair L WieserCanadaAsiya Javayant QUALIFIED
Sinclair N RutaSpainAsiya Javayant UNQUALIFIED
Isabel A SlusarskiFranceXuxue Feng QUALIFIED
Smith H BriddickAustraliaAnna Fali PROPOSAL
Wickens Y MaletAustraliaIvan Magalhaes NEGOTIATION
Nicolas V StockhamRussiaBernardo Dominic RENEWAL
Antonio M GillianAustraliaIvan Magalhaes NEW
Mujtaba P CaudyItalyAmy Elsner NEW
Alejandro N InouyeItalyIvan Magalhaes NEW
Adams L VocelkaRussiaElwin Sharvill PROPOSAL
Rodrigues M FlosiCanadaIvan Magalhaes QUALIFIED
Julie T StensethFranceOnyama Limba PROPOSAL
Jones X AlbaresFranceIoni Bowcher NEGOTIATION
Nicolas O RulapaughJapanOnyama Limba QUALIFIED
Morrow O VenereItalyAmy Elsner NEW
Aika S MaletGermanyIoni Bowcher PROPOSAL
Faith B CaudyUnited KingdomAsiya Javayant PROPOSAL
Julie J StensethUnited KingdomAnna Fali NEGOTIATION
Munro B CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Greenwood R DoeJapanAmy Elsner RENEWAL
Kadeem F SchemmerItalyAnna Fali RENEWAL
Arvin Z AlbaresGermanyAsiya Javayant UNQUALIFIED
Faith Q ButtGermanyElwin Sharvill RENEWAL
Ivar W MacleadGermanyAmy Elsner NEGOTIATION
Tony Q KuskoUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois G BowleyUnited KingdomElwin Sharvill PROPOSAL
Maria W RulapaughAustraliaIvan Magalhaes RENEWAL
Stacey S AlbaresArgentinaXuxue Feng RENEWAL
Darci V KuskoSpainStephen Shaw NEGOTIATION
Misaki Y CaudySpainIvan Magalhaes UNQUALIFIED
James V VocelkaBrazilAnna Fali UNQUALIFIED
James G PaprockiFranceIoni Bowcher RENEWAL
Rodrigues H MacleadCanadaIoni Bowcher PROPOSAL
Francesco C AlbaresAustraliaAnna Fali PROPOSAL
Adams S NickaRussiaXuxue Feng PROPOSAL
Maria A DarakjyJapanAsiya Javayant PROPOSAL
Leja M AmigonRussiaAnna Fali PROPOSAL
Juan E MaletAustraliaIoni Bowcher RENEWAL
Maisha D RimSpainOnyama Limba QUALIFIED

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