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
Stacey R RulapaughJapanOnyama Limba QUALIFIED
Alejandro F BriddickCanadaAnna Fali NEGOTIATION
David G CaudyIndiaAmy Elsner QUALIFIED
Emily R RutaSpainBernardo Dominic NEW
Aruna P NickaSpainBernardo Dominic UNQUALIFIED
Mujtaba Y RulapaughUnited KingdomAnna Fali NEGOTIATION
Antonio F RimAustraliaStephen Shaw NEGOTIATION
Aditya V RimBrazilAmy Elsner UNQUALIFIED
Juan I BologniaGermanyIvan Magalhaes QUALIFIED
Arvin Y MaletFranceOnyama Limba NEGOTIATION
Leon H GlickAustraliaBernardo Dominic UNQUALIFIED
Faith S MaletCanadaOnyama Limba PROPOSAL
Salvatore R VocelkaRussiaAnna Fali NEGOTIATION
Ashley H KuskoSpainElwin Sharvill PROPOSAL
Clifford N MaletCanadaAnna Fali NEGOTIATION
Claire W GauchoAustraliaAnna Fali NEGOTIATION
David Y BowleyFranceAsiya Javayant UNQUALIFIED
Misaki J VenereIndiaAsiya Javayant RENEWAL
Kaitlin W ButtRussiaOnyama Limba NEW
Julie C VocelkaSpainAnna Fali QUALIFIED
Sinclair Z PaprockiUnited KingdomOnyama Limba NEW
Jeanfrancois V MarrierBrazilAmy Elsner PROPOSAL
Tony P ShinkoUnited KingdomXuxue Feng NEW
Sinclair Y PaprockiRussiaAsiya Javayant NEW
Silvio N GauchoGermanyIvan Magalhaes NEGOTIATION
Ashley G TollnerArgentinaAnna Fali NEGOTIATION
Julie W DarakjyJapanAmy Elsner QUALIFIED
Claire P WhobreyJapanAmy Elsner UNQUALIFIED
David Z PoquetteAustraliaElwin Sharvill NEW
Costa I StockhamSpainAsiya Javayant UNQUALIFIED
Arvin Y AmigonGermanyOnyama Limba QUALIFIED
Maria P WieserAustraliaAnna Fali NEGOTIATION
Julie F TollnerJapanAmy Elsner NEW
Jeanfrancois W FigeroaJapanElwin Sharvill QUALIFIED
Ricardo C MaletFranceAnna Fali PROPOSAL
Kadeem W GauchoGermanyIoni Bowcher QUALIFIED
Arvin A IturbideRussiaAsiya Javayant UNQUALIFIED
James N PoquetteRussiaAmy Elsner NEGOTIATION
Kaitlin R OldroydArgentinaOnyama Limba RENEWAL
Francesco O CampainGermanyAnna Fali PROPOSAL
Faith H VenereSpainAmy Elsner UNQUALIFIED
Costa D TollnerBrazilAnna Fali QUALIFIED
David W MaletGermanyXuxue Feng UNQUALIFIED
Wickens U PaprockiRussiaAsiya Javayant PROPOSAL
Maria R SaylorsCanadaXuxue Feng UNQUALIFIED
James P RimJapanElwin Sharvill UNQUALIFIED
Octavia R ShinkoAustraliaStephen Shaw NEW
Maisha W RimGermanyAnna Fali UNQUALIFIED
Clifford O StockhamJapanAsiya Javayant UNQUALIFIED
Arvin G VenereBrazilStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois O AlbaresAustraliaElwin Sharvill RENEWAL
Juan I FollerIndiaOnyama Limba NEW
Aika K MorascaJapanElwin Sharvill RENEWAL
Mujtaba H BriddickJapanElwin Sharvill PROPOSAL
Smith J RulapaughCanadaElwin Sharvill UNQUALIFIED
Jefferson C ButtUnited KingdomIoni Bowcher NEW
Smith R FerenczSpainIoni Bowcher UNQUALIFIED
Aditya Q WhobreyItalyElwin Sharvill PROPOSAL
Tony Q SlusarskiRussiaElwin Sharvill NEW
Murillo I OstroskyGermanyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey U WhobreyJapan2026-07-20Chemel, James L Cpa NEGOTIATION37Onyama Limba
1001Ivar K OldroydAustralia2026-07-22Rousseaux, Michael Esq RENEWAL80Ivan Magalhaes
1002Jones R ButtBrazil2026-08-07Rousseaux, Michael Esq NEW26Bernardo Dominic
1003Maisha W GillianSpain2026-07-22Rangoni Of Florence QUALIFIED39Ioni Bowcher
1004Leon Q InouyeJapan2026-07-25King, Christopher A Esq RENEWAL28Ivan Magalhaes
1005Mujtaba U RoysterUnited Kingdom2026-07-20Benton, John B Jr NEGOTIATION49Amy Elsner
1006Ashley H ShinkoCanada2026-07-24Printing Dimensions PROPOSAL94Amy Elsner
1007Kaitlin S DilliardIndia2026-07-31Truhlar And Truhlar Attys UNQUALIFIED14Onyama Limba
1008Mujtaba S PoquetteGermany2026-07-26Printing Dimensions UNQUALIFIED83Elwin Sharvill
1009Ricardo N KuskoBrazil2026-08-10Feiner Bros QUALIFIED79Xuxue Feng
1010Jennifer Y NickaBrazil2026-08-01Printing Dimensions RENEWAL66Ivan Magalhaes
1011Ricardo F InouyeFrance2026-07-24Chemel, James L Cpa NEGOTIATION95Asiya Javayant
1012Francesco U PaprockiRussia2026-07-17Chanay, Jeffrey A Esq NEW5Stephen Shaw
1013Ashley P GarufiAustralia2026-08-02Rousseaux, Michael Esq PROPOSAL39Anna Fali
1014Greenwood N WieserSpain2026-08-10Chapman, Ross E Esq QUALIFIED84Bernardo Dominic
1015Leja J SergiCanada2026-07-18Rousseaux, Michael Esq PROPOSAL14Bernardo Dominic
1016Claire M CampainIndia2026-08-03Printing Dimensions NEW48Elwin Sharvill
1017Francesco R StensethUnited Kingdom2026-07-17Benton, John B Jr RENEWAL45Anna Fali
1018Wickens Z OstroskyItaly2026-08-04Buckley Miller Wright UNQUALIFIED58Onyama Limba
1019Jeanfrancois R FerenczGermany2026-07-15Benton, John B Jr PROPOSAL93Xuxue Feng
1020Jefferson T GarufiCanada2026-07-21Morlong Associates RENEWAL31Xuxue Feng
1021Costa M AlbaresArgentina2026-07-27Benton, John B Jr UNQUALIFIED9Ioni Bowcher
1022Wickens T KuskoCanada2026-07-17Buckley Miller Wright QUALIFIED75Elwin Sharvill
1023James L MorascaUnited Kingdom2026-07-26Feltz Printing Service QUALIFIED0Ioni Bowcher
1024Cody Q RoysterBrazil2026-07-18Truhlar And Truhlar Attys QUALIFIED23Ivan Magalhaes
1025Izzy F MacleadSpain2026-07-16Chapman, Ross E Esq RENEWAL75Asiya Javayant
1026James W RulapaughJapan2026-07-18Dorl, James J Esq QUALIFIED42Ivan Magalhaes
1027Darci F MorascaSpain2026-07-29Chemel, James L Cpa NEGOTIATION7Anna Fali
1028Ricardo A AlbaresAustralia2026-07-31Truhlar And Truhlar Attys RENEWAL51Ioni Bowcher
1029Aika V FigeroaRussia2026-07-25Printing Dimensions NEGOTIATION41Amy Elsner
1030Rodrigues R VocelkaJapan2026-08-05Chemel, James L Cpa QUALIFIED84Ioni Bowcher
1031Johnson T FigeroaGermany2026-07-28King, Christopher A Esq NEW56Xuxue Feng
1032Jeanfrancois Y CaldareraBrazil2026-07-27Rangoni Of Florence QUALIFIED25Stephen Shaw
1033Rodrigues K NestleSpain2026-08-08Feltz Printing Service NEGOTIATION45Ioni Bowcher
1034Kadeem L DarakjyJapan2026-07-13King, Christopher A Esq QUALIFIED13Ivan Magalhaes
1035Rodrigues M SlusarskiItaly2026-08-01Feiner Bros NEW43Onyama Limba
1036Johnson Z FlosiArgentina2026-07-21King, Christopher A Esq PROPOSAL33Stephen Shaw
1037Mujtaba U MarrierGermany2026-07-16Feltz Printing Service PROPOSAL63Amy Elsner
1038Ivar E WaycottBrazil2026-08-09Rangoni Of Florence QUALIFIED67Stephen Shaw
1039Jennifer W SaylorsIndia2026-07-27Chapman, Ross E Esq QUALIFIED5Stephen Shaw
1040James X BriddickAustralia2026-07-18Rangoni Of Florence UNQUALIFIED81Ioni Bowcher
1041Kaitlin N FerenczGermany2026-07-17Chemel, James L Cpa QUALIFIED31Ivan Magalhaes
1042Deepesh U ShinkoItaly2026-07-27Feiner Bros QUALIFIED4Amy Elsner
1043Salvatore C VocelkaAustralia2026-07-15Feltz Printing Service NEW72Xuxue Feng
1044Jeanfrancois G AmigonCanada2026-08-06Commercial Press NEW79Stephen Shaw
1045Francesco B FigeroaSpain2026-08-03Commercial Press PROPOSAL53Amy Elsner
1046Salvatore N RimFrance2026-07-27Dorl, James J Esq NEW89Ivan Magalhaes
1047Rodrigues Y WieserItaly2026-08-05Rangoni Of Florence PROPOSAL51Amy Elsner
1048Chavez D DoeUnited Kingdom2026-07-18King, Christopher A Esq QUALIFIED64Anna Fali
1049Antonio L RoysterJapan2026-07-16Printing Dimensions NEW27Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
James V OstroskyFranceBernardo Dominic RENEWAL
Kadeem C FerenczGermanyElwin Sharvill RENEWAL
Isabel P FigeroaJapanXuxue Feng RENEWAL
Clifford K WhobreyRussiaAsiya Javayant NEW
Jones H NickaJapanAmy Elsner UNQUALIFIED
Rodrigues E BologniaJapanBernardo Dominic UNQUALIFIED
Julie U RoysterFranceAmy Elsner NEGOTIATION
Ivar L BowleyJapanIoni Bowcher NEGOTIATION
Munro M StensethArgentinaAmy Elsner QUALIFIED
Izzy J GillianGermanyAmy Elsner PROPOSAL
Maisha Z PaprockiArgentinaAmy Elsner NEW
Jefferson K MaletItalyOnyama Limba PROPOSAL
Nicolas A PaprockiCanadaIvan Magalhaes PROPOSAL
Aditya M WieserCanadaXuxue Feng NEW
Arvin X DarakjySpainOnyama Limba UNQUALIFIED
David E PoquetteIndiaXuxue Feng PROPOSAL
Murillo J WieserIndiaOnyama Limba QUALIFIED
Claire J WaycottUnited KingdomXuxue Feng QUALIFIED
Claire W SaylorsIndiaAmy Elsner QUALIFIED
Aruna X GauchoFranceXuxue Feng UNQUALIFIED
Faith S DilliardCanadaAmy Elsner RENEWAL
Jones U CaudyGermanyElwin Sharvill UNQUALIFIED
Munro N WaycottSpainOnyama Limba PROPOSAL
Rodrigues R InouyeArgentinaIoni Bowcher QUALIFIED
Aika H WaycottGermanyElwin Sharvill PROPOSAL
Ivar G DarakjyCanadaIoni Bowcher RENEWAL
Alejandro Q PerinArgentinaOnyama Limba RENEWAL
Jones I CaldareraAustraliaAmy Elsner QUALIFIED
Sinclair U ButtRussiaBernardo Dominic QUALIFIED
Mayumi E MarrierUnited KingdomIvan Magalhaes RENEWAL
Antonio Y SchemmerAustraliaIvan Magalhaes PROPOSAL
Alejandro O AmigonAustraliaElwin Sharvill QUALIFIED
Juan Q BriddickAustraliaAsiya Javayant NEGOTIATION
Kaitlin M CampainGermanyElwin Sharvill QUALIFIED
Clifford F ShinkoCanadaAsiya Javayant NEGOTIATION
Kadeem A CaldareraJapanOnyama Limba QUALIFIED
Johnson V NestleBrazilOnyama Limba UNQUALIFIED
Maria I SchemmerSpainAmy Elsner UNQUALIFIED
Ashley A KuskoIndiaAmy Elsner UNQUALIFIED
Murillo T VocelkaItalyBernardo Dominic QUALIFIED
Aditya I VocelkaGermanyStephen Shaw UNQUALIFIED
Ricardo G GillianIndiaElwin Sharvill RENEWAL
Murillo F FollerGermanyAmy Elsner RENEWAL
Silvio G SlusarskiFranceAmy Elsner UNQUALIFIED
Jeanfrancois J RulapaughRussiaAmy Elsner UNQUALIFIED
Leon M NickaFranceXuxue Feng RENEWAL
Claire I GillianGermanyAnna Fali UNQUALIFIED
Alejandro X PaprockiJapanAsiya Javayant PROPOSAL
Emily S BowleyAustraliaOnyama Limba UNQUALIFIED
David G WaycottSpainStephen Shaw RENEWAL
Frozen Columns
Name
Chavez U Iturbide
Jeanfrancois X Bowley
Francesco O Inouye
Adams W Caldarera
Murillo V Gaucho
Johnson M Tollner
Antonio C Figeroa
Mujtaba T Amigon
Claire R Slusarski
Silvio W Glick
Alejandro L Royster
James G Butt
David J Waycott
Clifford V Marrier
Leja G Nestle
Morrow X Iturbide
Juan J Oldroyd
Antonio H Bolognia
Maisha D Iturbide
Claire I Maclead
Darci C Ferencz
Jeanfrancois E Iturbide
Izzy H Glick
Silvio S Amigon
Claire H Nicka
Jefferson M Ostrosky
Ricardo O Rim
Smith D Caldarera
Munro O Maclead
Maisha D Morasca
Greenwood E Malet
Silvio H Darakjy
Stacey Y Butt
Silvio V Caldarera
Greenwood I Stenseth
Greenwood X Figeroa
Octavia R Whobrey
Emily W Garufi
Deepesh U Rulapaugh
Chavez S Perin
Antonio H Venere
Wickens Y Poquette
Misaki K Poquette
Arvin C Rim
Sinclair I Flosi
Maisha X Rim
Cody O Gillian
Stacey J Foller
Morrow X Kolmetz
Kaitlin C Schemmer
IdCountryDate
1000Germany2026-08-03
1001Japan2026-07-14
1002Argentina2026-07-31
1003Spain2026-08-04
1004Japan2026-08-04
1005United Kingdom2026-07-31
1006Russia2026-07-29
1007United Kingdom2026-07-21
1008Canada2026-07-17
1009Argentina2026-07-17
1010India2026-07-31
1011India2026-08-06
1012India2026-07-12
1013Canada2026-07-13
1014France2026-07-27
1015Australia2026-07-19
1016India2026-07-15
1017Japan2026-07-25
1018United Kingdom2026-08-09
1019Japan2026-07-26
1020Spain2026-08-02
1021Spain2026-08-05
1022United Kingdom2026-08-09
1023Brazil2026-07-18
1024India2026-08-06
1025Russia2026-08-04
1026India2026-07-18
1027India2026-07-29
1028France2026-07-18
1029Canada2026-07-14
1030Argentina2026-07-18
1031United Kingdom2026-07-22
1032Australia2026-07-30
1033Japan2026-08-09
1034Australia2026-07-21
1035Spain2026-08-10
1036Canada2026-08-02
1037Spain2026-07-20
1038Germany2026-07-27
1039United Kingdom2026-08-10
1040Argentina2026-08-06
1041Russia2026-08-05
1042India2026-07-15
1043Canada2026-07-29
1044Italy2026-08-03
1045Germany2026-07-24
1046France2026-07-24
1047United Kingdom2026-08-03
1048Australia2026-08-04
1049Italy2026-07-17

On-Demand Data

NameIdCountryDate
Arvin K Dilliard1000Germany2026-07-25
Juan E Kolmetz1001India2026-07-31
Deepesh Y Paprocki1002France2026-07-21
Izzy X Saylors1003France2026-07-21
Jennifer S Caldarera1004India2026-07-20
Ashley E Campain1005Germany2026-07-19
Aditya A Garufi1006Russia2026-08-08
Rodrigues D Glick1007United Kingdom2026-07-30
Kaitlin A Amigon1008Italy2026-07-16
Darci G Campain1009Italy2026-07-26
Jones P Nestle1010United Kingdom2026-07-25
Isabel F Kusko1011India2026-07-21
James L Garufi1012Argentina2026-08-09
Morrow V Rim1013India2026-08-10
Adams M Doe1014Canada2026-07-25
Jennifer N Poquette1015Russia2026-08-02
Murillo R Oldroyd1016Argentina2026-07-27
Rodrigues K Oldroyd1017France2026-07-24
Emily R Flosi1018Russia2026-07-23
Ricardo L Marrier1019India2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin C MaletIndiaBernardo Dominic PROPOSAL
Murillo U MarrierUnited KingdomAnna Fali QUALIFIED
Misaki H AmigonArgentinaIoni Bowcher QUALIFIED
Octavia O GillianGermanyAmy Elsner PROPOSAL
Jennifer R FerenczFranceElwin Sharvill RENEWAL
Murillo G AmigonBrazilElwin Sharvill QUALIFIED
Alejandro E GlickArgentinaIvan Magalhaes NEGOTIATION
Kadeem J ButtCanadaElwin Sharvill UNQUALIFIED
Claire K MaletBrazilAmy Elsner PROPOSAL
Maisha Z FigeroaRussiaAmy Elsner NEGOTIATION
Kadeem U BriddickArgentinaXuxue Feng NEW
Greenwood R RimArgentinaXuxue Feng QUALIFIED
Chavez B MaletRussiaElwin Sharvill NEW
Alejandro I VocelkaGermanyStephen Shaw QUALIFIED
Jeanfrancois U PerinGermanyAnna Fali RENEWAL
Izzy W RutaCanadaOnyama Limba RENEWAL
Maisha C PoquetteRussiaIvan Magalhaes UNQUALIFIED
Sinclair Y StensethSpainStephen Shaw QUALIFIED
Octavia S AmigonAustraliaAsiya Javayant UNQUALIFIED
Jones J InouyeUnited KingdomStephen Shaw RENEWAL
Jones H NickaRussiaStephen Shaw NEGOTIATION
Kadeem F WieserUnited KingdomIoni Bowcher QUALIFIED
Aruna W WaycottBrazilAmy Elsner PROPOSAL
Maisha W VocelkaSpainAsiya Javayant RENEWAL
Kaitlin D FigeroaArgentinaElwin Sharvill NEW
Claire Y GlickSpainOnyama Limba QUALIFIED
Morrow P NickaArgentinaIoni Bowcher NEGOTIATION
Murillo A FigeroaUnited KingdomStephen Shaw RENEWAL
Silvio Y DarakjyAustraliaBernardo Dominic NEW
Greenwood V WaycottIndiaOnyama Limba NEW
Adams W WaycottItalyStephen Shaw RENEWAL
Francesco K GillianUnited KingdomAnna Fali PROPOSAL
Munro T IturbideUnited KingdomOnyama Limba NEGOTIATION
Morrow P FigeroaJapanElwin Sharvill RENEWAL
Stacey L NestleCanadaElwin Sharvill NEW
Arvin A SlusarskiBrazilStephen Shaw NEGOTIATION
Cody F StensethItalyStephen Shaw PROPOSAL
Aruna L WieserAustraliaIvan Magalhaes NEW
Mayumi P GlickAustraliaStephen Shaw RENEWAL
Francesco Q RimRussiaIoni Bowcher NEW

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