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
Ashley A GillianSpainBernardo Dominic UNQUALIFIED
Silvio M KuskoGermanyOnyama Limba RENEWAL
Rodrigues P BriddickUnited KingdomStephen Shaw RENEWAL
Stacey B VocelkaAustraliaAnna Fali PROPOSAL
Isabel J MarrierGermanyIvan Magalhaes PROPOSAL
Kaitlin F PerinJapanIvan Magalhaes NEW
Johnson S InouyeItalyAmy Elsner RENEWAL
Jones X ButtGermanyAsiya Javayant RENEWAL
Aditya X BriddickBrazilXuxue Feng UNQUALIFIED
Aruna L FigeroaGermanyAsiya Javayant UNQUALIFIED
Antonio P SchemmerGermanyAmy Elsner NEGOTIATION
Salvatore H MacleadCanadaBernardo Dominic QUALIFIED
Cody H AmigonCanadaOnyama Limba UNQUALIFIED
Aditya O AmigonGermanyElwin Sharvill RENEWAL
Stacey X SchemmerUnited KingdomAmy Elsner RENEWAL
Julie L BologniaIndiaAsiya Javayant UNQUALIFIED
Jones P SaylorsItalyStephen Shaw UNQUALIFIED
Isabel S CaudyItalyAnna Fali QUALIFIED
Mujtaba D AlbaresAustraliaStephen Shaw QUALIFIED
Aditya L SaylorsFranceAmy Elsner QUALIFIED
Darci N RoysterSpainIvan Magalhaes RENEWAL
Mayumi W FerenczFranceElwin Sharvill RENEWAL
Salvatore M ShinkoJapanOnyama Limba PROPOSAL
Aditya Y MaletRussiaAsiya Javayant NEW
Darci Y CaldareraArgentinaElwin Sharvill NEW
Rodrigues L FigeroaAustraliaElwin Sharvill RENEWAL
Salvatore N KuskoGermanyIvan Magalhaes RENEWAL
James S CaldareraAustraliaStephen Shaw NEW
Chavez W TollnerItalyXuxue Feng RENEWAL
Faith Z DarakjyRussiaStephen Shaw QUALIFIED
Kadeem C KuskoGermanyAmy Elsner UNQUALIFIED
Ashley U GlickIndiaBernardo Dominic NEW
Jones F CampainUnited KingdomBernardo Dominic UNQUALIFIED
Faith V GillianGermanyXuxue Feng PROPOSAL
Clifford H SergiCanadaAmy Elsner NEGOTIATION
Clifford O InouyeFranceIoni Bowcher PROPOSAL
Aruna E CampainGermanyAmy Elsner PROPOSAL
Antonio V KolmetzItalyIvan Magalhaes PROPOSAL
Leon Q GarufiSpainIoni Bowcher RENEWAL
Murillo B RimUnited KingdomBernardo Dominic NEW
Isabel S StockhamAustraliaStephen Shaw NEW
Aditya N MarrierFranceBernardo Dominic RENEWAL
Leja E AmigonCanadaAsiya Javayant PROPOSAL
Ricardo O DoeJapanStephen Shaw PROPOSAL
Aditya Y AlbaresRussiaXuxue Feng QUALIFIED
Arvin I GlickUnited KingdomAmy Elsner QUALIFIED
Aditya J SergiAustraliaBernardo Dominic NEW
Maisha W SaylorsGermanyStephen Shaw UNQUALIFIED
Johnson T CaldareraUnited KingdomElwin Sharvill PROPOSAL
Aruna W InouyeRussiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
David N VenereCanadaIoni Bowcher NEW
James C GillianBrazilAnna Fali RENEWAL
Munro L WhobreyUnited KingdomStephen Shaw RENEWAL
Darci L DilliardAustraliaIoni Bowcher UNQUALIFIED
Maria X ChuiArgentinaIoni Bowcher PROPOSAL
Salvatore M GlickCanadaElwin Sharvill NEW
Johnson I SergiGermanyElwin Sharvill QUALIFIED
Jones S BowleySpainElwin Sharvill NEW
Murillo U VenereSpainBernardo Dominic NEGOTIATION
Antonio D WhobreyArgentinaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair T GillianItaly2026-07-05Chapman, Ross E Esq QUALIFIED11Elwin Sharvill
1001James H FlosiItaly2026-07-03Morlong Associates NEW82Onyama Limba
1002Leja B CampainUnited Kingdom2026-06-29Rangoni Of Florence NEGOTIATION57Ioni Bowcher
1003Johnson W RimIndia2026-07-06Rousseaux, Michael Esq RENEWAL72Onyama Limba
1004Leon K NickaBrazil2026-07-14Truhlar And Truhlar Attys QUALIFIED64Stephen Shaw
1005Kadeem J FigeroaItaly2026-07-07Morlong Associates NEW73Amy Elsner
1006Murillo B FigeroaGermany2026-07-06Buckley Miller Wright NEGOTIATION0Asiya Javayant
1007Ivar T DarakjyIndia2026-06-26Rangoni Of Florence QUALIFIED34Xuxue Feng
1008Claire I MorascaGermany2026-07-21King, Christopher A Esq PROPOSAL89Onyama Limba
1009Maisha H CampainRussia2026-07-17Dorl, James J Esq QUALIFIED10Anna Fali
1010Octavia T DilliardArgentina2026-07-07Rangoni Of Florence NEGOTIATION47Stephen Shaw
1011Francesco O GarufiIndia2026-07-19Dorl, James J Esq PROPOSAL11Anna Fali
1012Maisha Q SergiItaly2026-07-20Commercial Press PROPOSAL63Xuxue Feng
1013Murillo N ShinkoFrance2026-07-10Buckley Miller Wright QUALIFIED70Xuxue Feng
1014Clifford Q MaletRussia2026-06-22Commercial Press RENEWAL9Bernardo Dominic
1015Cody E FlosiFrance2026-07-18Buckley Miller Wright UNQUALIFIED72Amy Elsner
1016Misaki J GillianAustralia2026-07-14Chemel, James L Cpa UNQUALIFIED85Asiya Javayant
1017Misaki M DarakjyArgentina2026-06-26King, Christopher A Esq RENEWAL96Stephen Shaw
1018Deepesh B CampainFrance2026-07-09Truhlar And Truhlar Attys UNQUALIFIED20Onyama Limba
1019Kaitlin U MacleadArgentina2026-06-24Buckley Miller Wright PROPOSAL36Ioni Bowcher
1020Silvio Q VocelkaGermany2026-06-23Rousseaux, Michael Esq PROPOSAL79Bernardo Dominic
1021Aika J ButtBrazil2026-06-25Truhlar And Truhlar Attys RENEWAL4Anna Fali
1022Misaki Q DarakjyCanada2026-06-26Printing Dimensions NEGOTIATION23Stephen Shaw
1023Jeanfrancois R PaprockiRussia2026-06-30Feiner Bros QUALIFIED97Asiya Javayant
1024James J KuskoRussia2026-07-19Feiner Bros QUALIFIED61Amy Elsner
1025Cody D BologniaRussia2026-07-19Rousseaux, Michael Esq QUALIFIED30Asiya Javayant
1026Jefferson I MorascaUnited Kingdom2026-07-18Morlong Associates NEW99Anna Fali
1027Francesco Q SlusarskiCanada2026-07-15Dorl, James J Esq UNQUALIFIED48Anna Fali
1028Mujtaba S NickaSpain2026-07-13Dorl, James J Esq PROPOSAL26Bernardo Dominic
1029Octavia V NickaSpain2026-06-24Buckley Miller Wright UNQUALIFIED13Bernardo Dominic
1030Adams K RoysterIndia2026-07-13King, Christopher A Esq PROPOSAL16Elwin Sharvill
1031Darci G CaudyIndia2026-07-17Rousseaux, Michael Esq UNQUALIFIED50Onyama Limba
1032Ivar I VocelkaArgentina2026-06-25Truhlar And Truhlar Attys RENEWAL51Anna Fali
1033Costa S ChuiSpain2026-07-08Chanay, Jeffrey A Esq PROPOSAL40Amy Elsner
1034Faith G PaprockiUnited Kingdom2026-06-28Morlong Associates UNQUALIFIED66Ioni Bowcher
1035Sinclair J VocelkaJapan2026-07-07Rousseaux, Michael Esq UNQUALIFIED55Ivan Magalhaes
1036Johnson M BriddickRussia2026-07-08Chapman, Ross E Esq PROPOSAL98Onyama Limba
1037Ivar S MarrierAustralia2026-06-26Benton, John B Jr QUALIFIED20Amy Elsner
1038Francesco Y OldroydJapan2026-07-03Benton, John B Jr PROPOSAL10Stephen Shaw
1039Silvio R InouyeFrance2026-07-16Feiner Bros PROPOSAL50Asiya Javayant
1040Francesco N PerinBrazil2026-07-14Dorl, James J Esq PROPOSAL15Anna Fali
1041Jones L CaudyBrazil2026-07-08Rangoni Of Florence RENEWAL29Bernardo Dominic
1042Jennifer C FigeroaBrazil2026-07-08Dorl, James J Esq UNQUALIFIED4Onyama Limba
1043Claire I KuskoArgentina2026-07-10Printing Dimensions PROPOSAL43Asiya Javayant
1044James M NickaUnited Kingdom2026-07-21King, Christopher A Esq RENEWAL94Ioni Bowcher
1045Izzy Z StensethAustralia2026-07-18Commercial Press PROPOSAL61Ioni Bowcher
1046Arvin V DilliardSpain2026-06-22Commercial Press NEW1Stephen Shaw
1047Sinclair Y RoysterBrazil2026-07-07Benton, John B Jr UNQUALIFIED90Ioni Bowcher
1048Silvio A VenereAustralia2026-07-17King, Christopher A Esq NEGOTIATION48Ioni Bowcher
1049Munro X WhobreyCanada2026-07-17Morlong Associates PROPOSAL0Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Juan Z RulapaughSpainIvan Magalhaes NEW
Sinclair R MaletAustraliaAmy Elsner RENEWAL
Kaitlin B MacleadIndiaBernardo Dominic NEGOTIATION
Ashley A StensethUnited KingdomAnna Fali QUALIFIED
Mujtaba K ShinkoAustraliaBernardo Dominic RENEWAL
Sinclair O FigeroaCanadaAnna Fali UNQUALIFIED
Kadeem N SaylorsArgentinaIvan Magalhaes PROPOSAL
Izzy M FigeroaIndiaStephen Shaw PROPOSAL
Ivar N FlosiBrazilAsiya Javayant RENEWAL
Salvatore H AlbaresJapanStephen Shaw UNQUALIFIED
Smith B BowleyRussiaXuxue Feng NEGOTIATION
Tony N MaletFranceOnyama Limba RENEWAL
Leja I StensethCanadaBernardo Dominic NEW
Nicolas L FollerSpainStephen Shaw NEGOTIATION
Jefferson O BologniaUnited KingdomIoni Bowcher NEW
Tony B PoquetteRussiaAmy Elsner UNQUALIFIED
Misaki Z RimArgentinaStephen Shaw NEW
Emily Q PaprockiArgentinaElwin Sharvill UNQUALIFIED
Isabel F OstroskyRussiaIoni Bowcher QUALIFIED
Mayumi L NickaAustraliaXuxue Feng RENEWAL
Leja V ShinkoGermanyAmy Elsner RENEWAL
Emily D OldroydSpainStephen Shaw PROPOSAL
Greenwood J WhobreyJapanAsiya Javayant QUALIFIED
Leon X MarrierCanadaIoni Bowcher NEW
David S FlosiArgentinaOnyama Limba UNQUALIFIED
Silvio H FollerGermanyAsiya Javayant NEW
Octavia Z WhobreyItalyElwin Sharvill PROPOSAL
Octavia O MorascaCanadaAnna Fali PROPOSAL
Adams S MaletSpainBernardo Dominic RENEWAL
Leja Y FollerRussiaXuxue Feng QUALIFIED
Aruna K IturbideBrazilAmy Elsner RENEWAL
Julie Z SaylorsUnited KingdomAnna Fali PROPOSAL
Ivar S FerenczBrazilStephen Shaw QUALIFIED
Faith S SergiIndiaIvan Magalhaes PROPOSAL
Silvio R VenereUnited KingdomOnyama Limba QUALIFIED
Aditya F RoysterCanadaIoni Bowcher UNQUALIFIED
Isabel M NestleCanadaBernardo Dominic PROPOSAL
Mujtaba X FigeroaSpainIoni Bowcher PROPOSAL
Aditya E CaldareraIndiaOnyama Limba QUALIFIED
Smith N DarakjySpainElwin Sharvill NEGOTIATION
Maria U GauchoUnited KingdomAmy Elsner RENEWAL
Aditya V BowleyArgentinaBernardo Dominic PROPOSAL
Jeanfrancois M ButtArgentinaBernardo Dominic UNQUALIFIED
Costa W PoquetteAustraliaXuxue Feng UNQUALIFIED
Alejandro K SlusarskiFranceElwin Sharvill NEGOTIATION
Clifford X KuskoArgentinaStephen Shaw UNQUALIFIED
Juan W FlosiRussiaXuxue Feng RENEWAL
Mujtaba K DoeArgentinaElwin Sharvill QUALIFIED
Munro P NestleBrazilXuxue Feng RENEWAL
Munro E RutaFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Nicolas V Darakjy
Octavia M Vocelka
Emily T Figeroa
Rodrigues L Morasca
Claire Q Whobrey
Greenwood Y Nicka
Kaitlin B Garufi
Cody T Kolmetz
Jeanfrancois S Paprocki
Jeanfrancois K Caudy
Nicolas P Slusarski
Juan W Whobrey
Antonio J Waycott
Morrow K Stenseth
Maria D Waycott
Adams C Caldarera
Misaki S Malet
Leja V Nestle
Misaki K Ostrosky
Tony T Glick
Misaki Q Caldarera
Octavia K Ostrosky
Aruna F Glick
Munro E Amigon
Cody T Doe
Misaki B Foller
Juan D Garufi
Antonio B Garufi
Nicolas Z Chui
Julie P Poquette
Leja F Dilliard
Darci F Malet
Adams T Saylors
Aika U Nestle
James A Rulapaugh
Julie K Malet
Ashley B Inouye
Nicolas A Poquette
Chavez T Ruta
Aruna Q Kusko
Jefferson Q Gaucho
Jones N Rulapaugh
Ashley C Venere
James Q Campain
Francesco Q Whobrey
Tony W Caudy
Aruna Q Flosi
Aditya O Caldarera
Sinclair F Butt
Mujtaba R Amigon
IdCountryDate
1000Brazil2026-06-30
1001Spain2026-06-23
1002France2026-07-03
1003Argentina2026-06-23
1004United Kingdom2026-07-01
1005Spain2026-07-05
1006Italy2026-07-16
1007Australia2026-07-13
1008Australia2026-06-29
1009Brazil2026-06-27
1010India2026-07-11
1011United Kingdom2026-06-22
1012France2026-07-01
1013Argentina2026-07-19
1014United Kingdom2026-06-22
1015Argentina2026-07-02
1016India2026-07-03
1017Brazil2026-06-26
1018Russia2026-06-22
1019Brazil2026-07-03
1020Germany2026-07-20
1021Argentina2026-07-12
1022France2026-07-13
1023Argentina2026-07-06
1024United Kingdom2026-07-03
1025France2026-07-04
1026Spain2026-07-07
1027India2026-07-05
1028Australia2026-07-02
1029Italy2026-07-01
1030Japan2026-07-13
1031Australia2026-07-05
1032United Kingdom2026-07-14
1033Canada2026-07-18
1034Canada2026-07-04
1035Australia2026-07-19
1036Russia2026-07-03
1037Japan2026-07-11
1038Argentina2026-07-07
1039Japan2026-07-10
1040Russia2026-07-14
1041Argentina2026-07-17
1042Brazil2026-07-04
1043United Kingdom2026-06-22
1044France2026-06-22
1045Japan2026-07-05
1046India2026-07-15
1047United Kingdom2026-07-18
1048Japan2026-07-15
1049United Kingdom2026-06-24

On-Demand Data

NameIdCountryDate
Leon Y Bolognia1000Canada2026-07-06
Juan G Stockham1001Germany2026-07-17
Alejandro B Glick1002Japan2026-06-26
Munro X Marrier1003Canada2026-07-07
Clifford M Butt1004France2026-07-13
Alejandro W Royster1005Argentina2026-07-13
Wickens J Oldroyd1006United Kingdom2026-07-09
Arvin I Gillian1007Canada2026-06-22
Ricardo H Stockham1008United Kingdom2026-06-25
Morrow K Kusko1009Italy2026-06-30
Isabel X Caldarera1010Brazil2026-07-05
Salvatore C Caldarera1011Japan2026-07-10
Arvin Z Butt1012Germany2026-07-14
Clifford V Stockham1013Italy2026-07-03
Smith R Dilliard1014Argentina2026-07-15
Jefferson G Nestle1015Russia2026-07-21
Leon X Nicka1016India2026-07-07
Misaki Z Malet1017India2026-07-08
Wickens M Gaucho1018Spain2026-07-20
Aruna B Whobrey1019United Kingdom2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio W OldroydItalyIoni Bowcher NEGOTIATION
Julie K OstroskyItalyXuxue Feng UNQUALIFIED
Chavez Z FlosiAustraliaBernardo Dominic NEGOTIATION
Jennifer S StensethUnited KingdomBernardo Dominic NEW
Deepesh D NestleFranceAsiya Javayant QUALIFIED
Alejandro S VenereSpainStephen Shaw PROPOSAL
Aditya T BriddickIndiaIoni Bowcher UNQUALIFIED
Alejandro J RutaCanadaIvan Magalhaes QUALIFIED
Silvio J NickaGermanyIoni Bowcher NEW
Francesco F FollerRussiaAmy Elsner RENEWAL
Maria F PerinUnited KingdomAmy Elsner PROPOSAL
Smith Y DilliardItalyElwin Sharvill NEGOTIATION
Jennifer Q CaudyArgentinaAsiya Javayant NEGOTIATION
Ricardo B GauchoBrazilIoni Bowcher NEW
Emily L WieserAustraliaAmy Elsner UNQUALIFIED
Mujtaba B AmigonArgentinaElwin Sharvill PROPOSAL
Jeanfrancois M AlbaresAustraliaStephen Shaw RENEWAL
Maria D ShinkoItalyAsiya Javayant NEGOTIATION
Nicolas G DarakjyUnited KingdomElwin Sharvill RENEWAL
Emily J AmigonFranceXuxue Feng NEW
Jeanfrancois R PoquetteIndiaElwin Sharvill PROPOSAL
Clifford K ButtAustraliaOnyama Limba NEGOTIATION
Leon E MaletAustraliaOnyama Limba NEGOTIATION
Octavia K FlosiBrazilBernardo Dominic QUALIFIED
Jones R PaprockiJapanAsiya Javayant NEW
Julie T RulapaughFranceOnyama Limba RENEWAL
Ivar D RoysterArgentinaAsiya Javayant NEW
Salvatore J ShinkoSpainBernardo Dominic RENEWAL
Arvin D VenereIndiaXuxue Feng RENEWAL
Julie S GauchoSpainXuxue Feng RENEWAL
Sinclair F FollerJapanIoni Bowcher QUALIFIED
Stacey P ShinkoFranceBernardo Dominic NEW
Clifford H GillianBrazilBernardo Dominic QUALIFIED
Silvio T MaletFranceOnyama Limba PROPOSAL
Kaitlin G CaldareraArgentinaAmy Elsner PROPOSAL
Sinclair A RoysterArgentinaIoni Bowcher RENEWAL
Darci D PerinSpainAsiya Javayant NEGOTIATION
Tony L KolmetzUnited KingdomIvan Magalhaes NEW
Cody B MacleadCanadaOnyama Limba NEW
Kaitlin L OstroskyFranceStephen Shaw NEGOTIATION

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