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
Juan V NickaRussiaOnyama Limba NEW
Costa H AlbaresAustraliaElwin Sharvill NEGOTIATION
Clifford Z RulapaughIndiaOnyama Limba NEW
Izzy O FlosiCanadaAnna Fali UNQUALIFIED
Deepesh V BologniaItalyIoni Bowcher UNQUALIFIED
Mayumi I DarakjySpainOnyama Limba NEGOTIATION
James X InouyeGermanyOnyama Limba UNQUALIFIED
Jones T MacleadCanadaElwin Sharvill PROPOSAL
Morrow T WhobreyBrazilStephen Shaw QUALIFIED
Alejandro M PaprockiItalyAnna Fali PROPOSAL
Jefferson U RimJapanAmy Elsner QUALIFIED
Ivar S ButtSpainElwin Sharvill UNQUALIFIED
Nicolas X AlbaresIndiaAmy Elsner NEGOTIATION
Aruna U BowleyBrazilElwin Sharvill PROPOSAL
Francesco Y StensethBrazilElwin Sharvill RENEWAL
Murillo F TollnerSpainElwin Sharvill NEGOTIATION
Sinclair U WieserRussiaStephen Shaw UNQUALIFIED
Cody E StockhamGermanyIoni Bowcher NEGOTIATION
Alejandro A FollerFranceOnyama Limba NEW
Aditya C RutaItalyAsiya Javayant RENEWAL
Smith N InouyeBrazilIvan Magalhaes UNQUALIFIED
Stacey F GillianIndiaAsiya Javayant RENEWAL
James X WieserCanadaElwin Sharvill UNQUALIFIED
Misaki B FlosiCanadaIoni Bowcher NEW
Jones Q SlusarskiGermanyAsiya Javayant RENEWAL
Alejandro A GlickSpainElwin Sharvill QUALIFIED
Deepesh I MacleadJapanIoni Bowcher UNQUALIFIED
Jefferson U DilliardCanadaBernardo Dominic RENEWAL
Darci T KolmetzSpainBernardo Dominic UNQUALIFIED
Salvatore Q OstroskyArgentinaIvan Magalhaes NEW
David B BowleyRussiaAsiya Javayant QUALIFIED
Mayumi W NestleGermanyAmy Elsner RENEWAL
Francesco X NestleItalyAnna Fali UNQUALIFIED
Octavia X GauchoCanadaAnna Fali QUALIFIED
Clifford L InouyeSpainXuxue Feng PROPOSAL
Ivar S NickaArgentinaXuxue Feng NEGOTIATION
Aditya C OstroskyUnited KingdomIvan Magalhaes RENEWAL
Darci O RoysterFranceElwin Sharvill NEGOTIATION
Wickens L ChuiCanadaBernardo Dominic NEGOTIATION
Kadeem C ShinkoBrazilElwin Sharvill RENEWAL
Jefferson C StensethBrazilIoni Bowcher NEGOTIATION
Isabel E DoeRussiaStephen Shaw QUALIFIED
Jeanfrancois J RulapaughIndiaStephen Shaw NEGOTIATION
Misaki B DarakjySpainXuxue Feng QUALIFIED
Morrow W ChuiRussiaStephen Shaw RENEWAL
Munro W KolmetzIndiaElwin Sharvill QUALIFIED
Misaki M AlbaresRussiaIvan Magalhaes PROPOSAL
Greenwood D FigeroaRussiaElwin Sharvill NEW
Cody G StensethIndiaAsiya Javayant NEGOTIATION
Francesco Y NestleCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan Y GarufiArgentinaOnyama Limba QUALIFIED
Rodrigues B FlosiCanadaStephen Shaw NEGOTIATION
Julie I GillianSpainIoni Bowcher RENEWAL
Mujtaba U OldroydArgentinaStephen Shaw QUALIFIED
Deepesh E FigeroaGermanyAmy Elsner NEW
Salvatore I SlusarskiIndiaAnna Fali QUALIFIED
Leon Y MorascaFranceAsiya Javayant NEW
Deepesh L PaprockiArgentinaElwin Sharvill QUALIFIED
Deepesh Q RoysterGermanyBernardo Dominic NEGOTIATION
Maisha H MaletIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair V VocelkaItaly2025-06-02Feiner Bros NEW77Stephen Shaw
1001Johnson D BologniaAustralia2025-06-05Morlong Associates QUALIFIED29Asiya Javayant
1002Smith K MacleadSpain2025-05-20Buckley Miller Wright NEGOTIATION14Stephen Shaw
1003Octavia G FigeroaBrazil2025-05-31Benton, John B Jr UNQUALIFIED78Elwin Sharvill
1004Arvin Q KuskoSpain2025-05-24Buckley Miller Wright QUALIFIED57Amy Elsner
1005Morrow W OstroskyCanada2025-06-05Buckley Miller Wright RENEWAL82Bernardo Dominic
1006Ashley T KolmetzJapan2025-05-22Chemel, James L Cpa UNQUALIFIED85Stephen Shaw
1007Aika O FigeroaAustralia2025-05-23Chemel, James L Cpa NEW85Ivan Magalhaes
1008Aika Q VenereFrance2025-06-14Buckley Miller Wright UNQUALIFIED98Bernardo Dominic
1009Aditya P MaletSpain2025-05-28Benton, John B Jr QUALIFIED94Anna Fali
1010Kaitlin A BologniaCanada2025-05-23Chapman, Ross E Esq RENEWAL53Stephen Shaw
1011Kadeem C VenereSpain2025-06-02Rangoni Of Florence QUALIFIED59Anna Fali
1012Aika I FigeroaSpain2025-05-24Rousseaux, Michael Esq NEW33Ivan Magalhaes
1013Costa B SchemmerJapan2025-06-08Morlong Associates NEGOTIATION95Asiya Javayant
1014Antonio E FlosiRussia2025-05-27Chemel, James L Cpa NEGOTIATION43Asiya Javayant
1015Misaki I KuskoJapan2025-06-03Benton, John B Jr RENEWAL42Bernardo Dominic
1016Adams Q FerenczFrance2025-06-05Feiner Bros PROPOSAL27Ivan Magalhaes
1017Greenwood E KolmetzBrazil2025-06-07Truhlar And Truhlar Attys RENEWAL9Bernardo Dominic
1018David Z GlickFrance2025-05-23Feiner Bros NEGOTIATION69Asiya Javayant
1019Arvin F RutaUnited Kingdom2025-05-25Chanay, Jeffrey A Esq QUALIFIED94Amy Elsner
1020Leon I SchemmerArgentina2025-06-04Feltz Printing Service UNQUALIFIED0Bernardo Dominic
1021Aruna L VenereUnited Kingdom2025-06-14Rangoni Of Florence UNQUALIFIED18Bernardo Dominic
1022Mujtaba N SchemmerUnited Kingdom2025-05-17Rousseaux, Michael Esq NEW71Anna Fali
1023Clifford Q PerinBrazil2025-05-20Chapman, Ross E Esq NEW48Elwin Sharvill
1024Alejandro R FerenczAustralia2025-05-29Benton, John B Jr QUALIFIED92Xuxue Feng
1025Antonio Y CaldareraItaly2025-06-09Rangoni Of Florence PROPOSAL51Asiya Javayant
1026Faith W KuskoItaly2025-05-30Benton, John B Jr PROPOSAL10Onyama Limba
1027Silvio P KuskoIndia2025-05-31Truhlar And Truhlar Attys NEW38Elwin Sharvill
1028Wickens R WhobreyJapan2025-05-26Truhlar And Truhlar Attys PROPOSAL58Ioni Bowcher
1029Emily K RulapaughFrance2025-06-02Commercial Press NEW95Elwin Sharvill
1030Maisha C RutaRussia2025-05-17Buckley Miller Wright NEGOTIATION24Elwin Sharvill
1031Jefferson X BowleyRussia2025-05-16Rangoni Of Florence NEW29Amy Elsner
1032Jones E AlbaresArgentina2025-06-10Commercial Press RENEWAL6Stephen Shaw
1033Aika N GauchoUnited Kingdom2025-06-07Chanay, Jeffrey A Esq NEW41Amy Elsner
1034Isabel L CaldareraItaly2025-06-13Commercial Press RENEWAL81Stephen Shaw
1035Darci I BologniaBrazil2025-05-24Morlong Associates UNQUALIFIED92Elwin Sharvill
1036Salvatore M TollnerRussia2025-05-22Rousseaux, Michael Esq PROPOSAL36Amy Elsner
1037Leon L KuskoSpain2025-05-22Chemel, James L Cpa UNQUALIFIED57Onyama Limba
1038Maria V GarufiAustralia2025-06-05Feltz Printing Service UNQUALIFIED71Xuxue Feng
1039Darci Y MacleadRussia2025-05-26Chemel, James L Cpa QUALIFIED15Amy Elsner
1040Leja F GlickFrance2025-06-02Morlong Associates PROPOSAL48Elwin Sharvill
1041Rodrigues I SergiFrance2025-05-16Benton, John B Jr NEW3Anna Fali
1042Misaki G FollerFrance2025-06-04Printing Dimensions NEGOTIATION87Ioni Bowcher
1043Maria S PoquetteCanada2025-05-24Chapman, Ross E Esq QUALIFIED19Bernardo Dominic
1044Leon G NickaItaly2025-06-04Chanay, Jeffrey A Esq RENEWAL59Amy Elsner
1045David T NickaRussia2025-06-07Morlong Associates RENEWAL29Onyama Limba
1046Munro M GillianArgentina2025-05-22Benton, John B Jr RENEWAL25Stephen Shaw
1047Stacey X InouyeItaly2025-06-06Commercial Press NEGOTIATION54Bernardo Dominic
1048Mayumi X DarakjyGermany2025-05-20Chemel, James L Cpa RENEWAL42Stephen Shaw
1049Alejandro K MacleadCanada2025-05-31Rousseaux, Michael Esq NEGOTIATION50Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio G AlbaresGermanyAmy Elsner NEW
Salvatore B GarufiCanadaBernardo Dominic PROPOSAL
Chavez J RulapaughUnited KingdomStephen Shaw NEW
Julie I MaletBrazilBernardo Dominic RENEWAL
Smith N PoquetteSpainElwin Sharvill QUALIFIED
Darci W AlbaresAustraliaIvan Magalhaes NEGOTIATION
Leja L CampainGermanyElwin Sharvill UNQUALIFIED
Mayumi A MaletArgentinaBernardo Dominic NEW
Jeanfrancois N PaprockiArgentinaIvan Magalhaes QUALIFIED
Maria R MarrierJapanXuxue Feng QUALIFIED
Aika Q KolmetzJapanIvan Magalhaes NEGOTIATION
Munro U GarufiRussiaAnna Fali NEGOTIATION
Alejandro P WieserSpainAsiya Javayant QUALIFIED
Emily T SaylorsCanadaAnna Fali UNQUALIFIED
Chavez D IturbideCanadaIoni Bowcher NEW
Emily P GillianRussiaBernardo Dominic QUALIFIED
Maisha V GlickArgentinaStephen Shaw QUALIFIED
Smith T FollerCanadaAnna Fali NEGOTIATION
Deepesh N BriddickJapanOnyama Limba NEW
Ivar E StensethItalyIoni Bowcher RENEWAL
Adams B KuskoUnited KingdomXuxue Feng RENEWAL
Ivar D MorascaItalyOnyama Limba RENEWAL
Isabel S FerenczSpainAmy Elsner RENEWAL
Jones H DilliardUnited KingdomXuxue Feng UNQUALIFIED
Alejandro O BriddickJapanStephen Shaw PROPOSAL
Francesco B RimUnited KingdomAnna Fali PROPOSAL
Kaitlin C FlosiBrazilOnyama Limba QUALIFIED
James G WhobreyUnited KingdomIoni Bowcher QUALIFIED
Rodrigues S FigeroaIndiaXuxue Feng QUALIFIED
Rodrigues Y RulapaughIndiaIvan Magalhaes UNQUALIFIED
Isabel M BowleyItalyAnna Fali UNQUALIFIED
David R FollerBrazilElwin Sharvill NEW
Salvatore M BologniaBrazilBernardo Dominic UNQUALIFIED
Ricardo F DilliardIndiaAsiya Javayant PROPOSAL
Leja P SaylorsGermanyOnyama Limba NEW
Cody D FollerGermanyIvan Magalhaes NEW
Cody V FerenczSpainIoni Bowcher RENEWAL
Sinclair X DoeUnited KingdomIoni Bowcher NEW
Misaki K SchemmerUnited KingdomIoni Bowcher NEGOTIATION
Claire X MarrierUnited KingdomAsiya Javayant RENEWAL
Ricardo A NestleFranceAmy Elsner UNQUALIFIED
Johnson G DarakjyRussiaAsiya Javayant QUALIFIED
Deepesh G MacleadAustraliaIvan Magalhaes UNQUALIFIED
Smith Z WieserCanadaAsiya Javayant PROPOSAL
Antonio J TollnerIndiaXuxue Feng NEGOTIATION
Mujtaba M MacleadAustraliaBernardo Dominic UNQUALIFIED
Leon X IturbideGermanyElwin Sharvill RENEWAL
Darci V RulapaughSpainAnna Fali NEGOTIATION
Francesco E FerenczRussiaElwin Sharvill NEGOTIATION
Smith M NickaFranceXuxue Feng UNQUALIFIED
Frozen Columns
Name
Stacey M Maclead
Aditya G Poquette
Misaki V Schemmer
Jennifer Z Briddick
Nicolas F Royster
Antonio M Maclead
David T Caldarera
Aika X Garufi
Ricardo D Saylors
Francesco F Saylors
Kaitlin W Stenseth
Juan E Marrier
Johnson P Schemmer
Antonio M Glick
Clifford U Caldarera
Jennifer W Flosi
Misaki M Nestle
Chavez A Ferencz
Arvin B Schemmer
Emily E Albares
Ricardo B Ruta
Jones S Bowley
Rodrigues P Malet
Cody J Maclead
Kadeem P Shinko
Misaki R Foller
Murillo U Iturbide
Izzy W Morasca
Silvio X Butt
Maria S Tollner
Kaitlin S Gaucho
Tony F Kolmetz
Clifford D Chui
Emily F Schemmer
Ricardo L Kolmetz
Costa A Gaucho
Jefferson G Ferencz
Isabel I Caudy
Claire K Dilliard
Wickens D Rulapaugh
Maria X Nicka
Kaitlin F Inouye
Jennifer T Chui
Ashley G Butt
Clifford L Royster
James G Chui
Adams F Perin
Arvin O Butt
James I Glick
Maisha U Butt
IdCountryDate
1000United Kingdom2025-06-10
1001Argentina2025-05-30
1002Russia2025-05-20
1003Japan2025-05-24
1004Australia2025-06-11
1005Australia2025-06-09
1006Japan2025-06-10
1007India2025-06-01
1008Russia2025-06-06
1009Russia2025-06-08
1010Japan2025-05-31
1011United Kingdom2025-06-08
1012Spain2025-06-08
1013Spain2025-06-06
1014Germany2025-06-01
1015France2025-06-04
1016United Kingdom2025-05-28
1017Argentina2025-05-25
1018Japan2025-05-26
1019United Kingdom2025-05-16
1020Australia2025-06-12
1021France2025-06-07
1022Japan2025-06-12
1023Canada2025-05-26
1024Russia2025-05-23
1025Germany2025-05-20
1026Japan2025-05-22
1027Argentina2025-05-30
1028Italy2025-05-20
1029United Kingdom2025-05-28
1030United Kingdom2025-06-04
1031Germany2025-05-30
1032India2025-06-14
1033Canada2025-06-03
1034Russia2025-06-04
1035France2025-05-17
1036Russia2025-06-06
1037Germany2025-06-01
1038Russia2025-05-30
1039Argentina2025-06-04
1040Spain2025-06-07
1041Brazil2025-06-02
1042France2025-06-02
1043Italy2025-06-07
1044Japan2025-05-20
1045Brazil2025-06-14
1046Australia2025-05-27
1047Brazil2025-06-13
1048Japan2025-06-12
1049India2025-06-13

On-Demand Data

NameIdCountryDate
Mayumi B Stockham1000Canada2025-06-06
Aditya B Schemmer1001France2025-06-06
Jeanfrancois C Rulapaugh1002United Kingdom2025-05-29
Jefferson H Garufi1003Canada2025-06-07
Maria K Darakjy1004Germany2025-06-05
Octavia M Oldroyd1005India2025-05-24
Jones X Maclead1006Germany2025-06-10
Maria D Whobrey1007Germany2025-06-09
Jeanfrancois D Whobrey1008India2025-05-25
Chavez F Darakjy1009Germany2025-05-26
Munro X Ferencz1010Spain2025-05-31
Darci T Royster1011United Kingdom2025-05-31
Claire W Caldarera1012Italy2025-05-28
Adams I Flosi1013Italy2025-06-06
Leja E Perin1014Italy2025-05-20
Smith N Poquette1015Brazil2025-05-24
Ashley X Marrier1016Japan2025-05-30
Ivar O Poquette1017Australia2025-05-22
Morrow D Iturbide1018Italy2025-05-28
Antonio Q Malet1019Brazil2025-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika Z RoysterSpainAsiya Javayant NEGOTIATION
Francesco Z SaylorsItalyIoni Bowcher UNQUALIFIED
Leja S PoquetteAustraliaXuxue Feng UNQUALIFIED
Sinclair N FerenczUnited KingdomOnyama Limba UNQUALIFIED
Deepesh N RulapaughUnited KingdomAnna Fali NEGOTIATION
Deepesh B GarufiGermanyBernardo Dominic PROPOSAL
Leon M WieserJapanOnyama Limba NEW
Costa K PoquetteUnited KingdomIvan Magalhaes NEW
Darci V MorascaUnited KingdomBernardo Dominic NEW
Morrow H GauchoFranceAsiya Javayant NEGOTIATION
Greenwood C VenereBrazilXuxue Feng RENEWAL
Jeanfrancois C RulapaughBrazilOnyama Limba QUALIFIED
Stacey G DilliardItalyElwin Sharvill NEW
Deepesh U SaylorsGermanyIvan Magalhaes NEGOTIATION
Stacey T PerinJapanOnyama Limba RENEWAL
Cody H BriddickBrazilOnyama Limba NEW
Aditya W KolmetzGermanyAmy Elsner RENEWAL
Mujtaba J MacleadJapanAmy Elsner QUALIFIED
Wickens O TollnerAustraliaAnna Fali NEGOTIATION
Jefferson H MorascaUnited KingdomStephen Shaw RENEWAL
Stacey O SergiFranceIvan Magalhaes UNQUALIFIED
Arvin U DarakjySpainOnyama Limba NEGOTIATION
Murillo K GarufiUnited KingdomIoni Bowcher NEW
Aruna S VocelkaFranceXuxue Feng QUALIFIED
Juan U TollnerSpainBernardo Dominic UNQUALIFIED
Cody Q CampainBrazilBernardo Dominic PROPOSAL
Wickens R ShinkoAustraliaIvan Magalhaes NEW
Julie L BriddickRussiaAmy Elsner NEW
Mayumi Y MorascaBrazilOnyama Limba NEW
Maria W FerenczIndiaOnyama Limba QUALIFIED
Sinclair Q BowleyItalyAsiya Javayant UNQUALIFIED
Arvin T FollerItalyIvan Magalhaes NEGOTIATION
Arvin V AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood C MorascaIndiaIvan Magalhaes RENEWAL
Aika O BowleySpainAsiya Javayant NEW
Isabel R BologniaItalyBernardo Dominic PROPOSAL
Antonio X VocelkaCanadaXuxue Feng UNQUALIFIED
Leja T BowleyRussiaIvan Magalhaes UNQUALIFIED
Octavia Q RoysterBrazilElwin Sharvill NEW
Isabel U RutaFranceIvan Magalhaes 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>