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
Jones S IturbideFranceStephen Shaw RENEWAL
Maria I PoquetteGermanyAmy Elsner NEW
James D MarrierItalyAsiya Javayant PROPOSAL
Faith X CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi C CaldareraIndiaElwin Sharvill UNQUALIFIED
Aika D KolmetzSpainBernardo Dominic NEGOTIATION
Wickens M SaylorsCanadaElwin Sharvill NEGOTIATION
Leon V CaudyItalyAnna Fali QUALIFIED
Leon A RulapaughUnited KingdomXuxue Feng PROPOSAL
Mujtaba G FlosiGermanyAsiya Javayant RENEWAL
Maria I SlusarskiFranceAmy Elsner RENEWAL
Cody O SergiArgentinaXuxue Feng RENEWAL
Nicolas Z TollnerIndiaIvan Magalhaes PROPOSAL
Silvio L RutaRussiaAmy Elsner UNQUALIFIED
Aruna O CampainGermanyOnyama Limba RENEWAL
Silvio G SlusarskiJapanXuxue Feng RENEWAL
Greenwood O SergiBrazilAnna Fali QUALIFIED
Tony J GarufiRussiaAsiya Javayant PROPOSAL
Tony P GlickAustraliaIoni Bowcher RENEWAL
Arvin Y DilliardUnited KingdomBernardo Dominic QUALIFIED
Wickens U MaletItalyAsiya Javayant QUALIFIED
Izzy D CaudyItalyBernardo Dominic UNQUALIFIED
Tony G AmigonCanadaAmy Elsner UNQUALIFIED
Isabel F CampainFranceStephen Shaw RENEWAL
Munro Z RimCanadaAsiya Javayant QUALIFIED
Cody D MaletBrazilElwin Sharvill UNQUALIFIED
Leon Z KolmetzJapanIvan Magalhaes QUALIFIED
Nicolas L CaldareraGermanyIoni Bowcher UNQUALIFIED
Jennifer L GauchoJapanAmy Elsner UNQUALIFIED
Maria L FerenczGermanyBernardo Dominic UNQUALIFIED
Jones C CampainFranceAmy Elsner QUALIFIED
Deepesh N VenereBrazilXuxue Feng PROPOSAL
Ricardo T OstroskyJapanIvan Magalhaes PROPOSAL
Aditya B GillianIndiaOnyama Limba NEW
Silvio R MaletRussiaAnna Fali QUALIFIED
Johnson Z OstroskyRussiaBernardo Dominic QUALIFIED
Kaitlin S FollerUnited KingdomIoni Bowcher NEGOTIATION
Darci J OldroydGermanyXuxue Feng NEW
James P PerinIndiaAsiya Javayant NEGOTIATION
Octavia K DarakjySpainXuxue Feng NEGOTIATION
Maisha R WieserCanadaOnyama Limba RENEWAL
Tony J CampainJapanXuxue Feng NEW
Chavez H RimRussiaAnna Fali UNQUALIFIED
Octavia G KuskoSpainStephen Shaw NEW
Isabel Y OldroydSpainXuxue Feng RENEWAL
Munro V FigeroaJapanStephen Shaw QUALIFIED
Maria I BowleyBrazilIoni Bowcher RENEWAL
Ricardo D MaletSpainBernardo Dominic NEGOTIATION
Kadeem G SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Alejandro Y GauchoArgentinaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio W MacleadFranceAmy Elsner RENEWAL
Costa O SlusarskiRussiaElwin Sharvill PROPOSAL
Julie Q StensethCanadaStephen Shaw RENEWAL
Costa Y NickaBrazilXuxue Feng NEGOTIATION
Murillo V BowleyCanadaBernardo Dominic PROPOSAL
Aditya B NestleRussiaIvan Magalhaes NEW
Maria W BriddickAustraliaBernardo Dominic QUALIFIED
Jefferson S RulapaughFranceIoni Bowcher UNQUALIFIED
Maria T NestleAustraliaAnna Fali PROPOSAL
Stacey T CaudyIndiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y SaylorsCanada2026-07-12Morlong Associates QUALIFIED10Ivan Magalhaes
1001Salvatore T OstroskySpain2026-07-07Chemel, James L Cpa QUALIFIED27Ivan Magalhaes
1002Izzy I WieserJapan2026-07-11Feltz Printing Service NEW95Asiya Javayant
1003Kaitlin N SergiGermany2026-07-03King, Christopher A Esq QUALIFIED5Asiya Javayant
1004Deepesh N KolmetzSpain2026-06-29Truhlar And Truhlar Attys QUALIFIED46Elwin Sharvill
1005David T ShinkoItaly2026-06-17Benton, John B Jr QUALIFIED57Onyama Limba
1006Smith B RimUnited Kingdom2026-07-09Chemel, James L Cpa QUALIFIED39Anna Fali
1007Jefferson D PoquetteJapan2026-07-16Feiner Bros RENEWAL69Elwin Sharvill
1008Smith D GauchoAustralia2026-07-15Feltz Printing Service RENEWAL99Anna Fali
1009Greenwood K MaletItaly2026-07-07Buckley Miller Wright PROPOSAL31Amy Elsner
1010Sinclair T RimArgentina2026-07-06Commercial Press PROPOSAL67Bernardo Dominic
1011Octavia B OldroydJapan2026-07-05Dorl, James J Esq NEW57Ivan Magalhaes
1012Aruna V SaylorsAustralia2026-06-21Morlong Associates QUALIFIED4Bernardo Dominic
1013Jefferson N ChuiGermany2026-07-12Commercial Press UNQUALIFIED27Elwin Sharvill
1014Mayumi T FlosiRussia2026-06-20Dorl, James J Esq QUALIFIED22Amy Elsner
1015Julie U MarrierRussia2026-06-27Chapman, Ross E Esq QUALIFIED67Amy Elsner
1016Jeanfrancois W OldroydGermany2026-06-18Chapman, Ross E Esq QUALIFIED14Amy Elsner
1017David B AlbaresItaly2026-06-29Chemel, James L Cpa UNQUALIFIED43Stephen Shaw
1018Kaitlin U FerenczGermany2026-07-02Rangoni Of Florence NEW36Asiya Javayant
1019James W SaylorsGermany2026-06-29Buckley Miller Wright NEGOTIATION69Anna Fali
1020Cody O PoquetteItaly2026-07-10Chapman, Ross E Esq NEW86Onyama Limba
1021Francesco O SlusarskiGermany2026-06-18Printing Dimensions UNQUALIFIED14Anna Fali
1022James V StockhamIndia2026-07-12Feltz Printing Service NEGOTIATION29Xuxue Feng
1023Nicolas M MaletBrazil2026-06-24Truhlar And Truhlar Attys QUALIFIED73Ivan Magalhaes
1024Ricardo N RimAustralia2026-07-14Morlong Associates QUALIFIED49Amy Elsner
1025Darci J GlickFrance2026-06-21King, Christopher A Esq NEW38Ioni Bowcher
1026Greenwood E MaletBrazil2026-07-15Chapman, Ross E Esq PROPOSAL91Ivan Magalhaes
1027Isabel B MaletBrazil2026-07-11King, Christopher A Esq NEGOTIATION66Bernardo Dominic
1028Antonio D BowleyArgentina2026-07-16Feiner Bros QUALIFIED76Onyama Limba
1029Aika R SchemmerArgentina2026-07-06Dorl, James J Esq NEW0Onyama Limba
1030Mujtaba A WaycottSpain2026-06-29Chanay, Jeffrey A Esq PROPOSAL42Onyama Limba
1031Munro I CaldareraCanada2026-07-10Commercial Press QUALIFIED89Asiya Javayant
1032Jefferson A NestleRussia2026-06-27Dorl, James J Esq RENEWAL64Onyama Limba
1033Julie B GillianArgentina2026-07-01Dorl, James J Esq NEGOTIATION38Ivan Magalhaes
1034Smith V FigeroaAustralia2026-06-20Rangoni Of Florence NEW18Asiya Javayant
1035Isabel M IturbideBrazil2026-06-30Dorl, James J Esq RENEWAL35Ioni Bowcher
1036Stacey L SergiJapan2026-06-17Chanay, Jeffrey A Esq PROPOSAL48Ioni Bowcher
1037Costa T FollerArgentina2026-06-20Benton, John B Jr NEW73Elwin Sharvill
1038Julie M SergiCanada2026-07-13Benton, John B Jr NEGOTIATION90Bernardo Dominic
1039Wickens M KolmetzGermany2026-07-07Morlong Associates NEGOTIATION16Ivan Magalhaes
1040Faith G SaylorsItaly2026-07-06Commercial Press NEGOTIATION90Stephen Shaw
1041Stacey G NestleGermany2026-07-01Morlong Associates QUALIFIED27Stephen Shaw
1042Darci A DilliardArgentina2026-06-17Feltz Printing Service NEGOTIATION92Anna Fali
1043Leja N WhobreyRussia2026-06-25Benton, John B Jr NEW50Elwin Sharvill
1044Faith H ShinkoBrazil2026-06-25Truhlar And Truhlar Attys NEGOTIATION39Elwin Sharvill
1045Misaki L DarakjyUnited Kingdom2026-07-05Benton, John B Jr NEGOTIATION16Ioni Bowcher
1046Rodrigues Q PaprockiCanada2026-06-23Rangoni Of Florence QUALIFIED40Ioni Bowcher
1047Jeanfrancois C MarrierItaly2026-07-08Feiner Bros PROPOSAL94Amy Elsner
1048Cody M WaycottArgentina2026-06-27King, Christopher A Esq NEGOTIATION77Ivan Magalhaes
1049Julie I WhobreyAustralia2026-06-17Feltz Printing Service RENEWAL35Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues G TollnerCanadaXuxue Feng PROPOSAL
Greenwood R RutaGermanyStephen Shaw PROPOSAL
Francesco S GillianJapanOnyama Limba PROPOSAL
Smith U RoysterSpainOnyama Limba PROPOSAL
Salvatore W MaletCanadaXuxue Feng NEGOTIATION
Salvatore P StensethRussiaBernardo Dominic RENEWAL
Salvatore U CaudySpainBernardo Dominic NEW
Aika Z MaletCanadaBernardo Dominic UNQUALIFIED
Jennifer D MaletSpainXuxue Feng PROPOSAL
Jones O CaudyCanadaXuxue Feng NEGOTIATION
Rodrigues O GlickGermanyAnna Fali PROPOSAL
Leon Q KuskoCanadaAnna Fali QUALIFIED
Chavez T FlosiRussiaBernardo Dominic RENEWAL
Ashley F MaletRussiaAsiya Javayant UNQUALIFIED
Arvin O BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Isabel D BologniaUnited KingdomOnyama Limba NEGOTIATION
Munro I DoeIndiaIoni Bowcher QUALIFIED
Arvin I MaletAustraliaAnna Fali NEGOTIATION
Aruna K NickaIndiaElwin Sharvill QUALIFIED
Deepesh I ChuiCanadaOnyama Limba PROPOSAL
Ivar A CaldareraUnited KingdomStephen Shaw RENEWAL
Ashley A WaycottItalyBernardo Dominic QUALIFIED
Greenwood H VenereCanadaAsiya Javayant RENEWAL
Wickens E RoysterCanadaElwin Sharvill UNQUALIFIED
Ivar X CampainAustraliaBernardo Dominic QUALIFIED
Chavez O CaldareraRussiaAnna Fali UNQUALIFIED
Ashley D NickaBrazilAnna Fali NEW
Francesco C NestleGermanyXuxue Feng QUALIFIED
Adams Q ButtArgentinaIvan Magalhaes NEW
Leja A GlickGermanyIvan Magalhaes PROPOSAL
Rodrigues S SaylorsAustraliaIvan Magalhaes NEGOTIATION
Rodrigues Z VocelkaRussiaElwin Sharvill PROPOSAL
Kadeem H FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba R BowleyCanadaElwin Sharvill QUALIFIED
Deepesh J ShinkoRussiaAsiya Javayant NEW
Wickens U WieserArgentinaAmy Elsner UNQUALIFIED
Salvatore P PerinRussiaOnyama Limba UNQUALIFIED
Munro H MorascaCanadaXuxue Feng PROPOSAL
Maisha S CaldareraJapanXuxue Feng NEW
Alejandro Z MaletCanadaAmy Elsner QUALIFIED
Misaki P GlickRussiaXuxue Feng PROPOSAL
Johnson O FlosiSpainAmy Elsner RENEWAL
Sinclair L NickaSpainAmy Elsner NEGOTIATION
Jefferson Z FollerFranceAsiya Javayant UNQUALIFIED
Claire O MorascaGermanyIvan Magalhaes NEW
Aruna P DilliardJapanXuxue Feng UNQUALIFIED
David G StensethJapanAmy Elsner UNQUALIFIED
Chavez G ChuiRussiaElwin Sharvill UNQUALIFIED
Costa W BowleyBrazilOnyama Limba PROPOSAL
Wickens B CaudyIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Ricardo N Inouye
Wickens Q Amigon
Aika V Shinko
Costa N Chui
Sinclair K Doe
Clifford L Maclead
Costa L Dilliard
Misaki V Paprocki
Izzy X Gaucho
Julie Y Stockham
Ricardo C Bowley
Leja O Doe
Leja O Iturbide
Darci T Bolognia
Sinclair W Caudy
Ricardo C Nicka
Johnson X Schemmer
Maisha N Vocelka
Johnson T Briddick
Kaitlin P Kusko
Greenwood P Rulapaugh
Alejandro X Flosi
Ivar U Garufi
Cody K Caldarera
Sinclair G Nicka
Ricardo T Garufi
Faith D Inouye
Faith Y Ruta
Emily M Figeroa
Aditya O Flosi
Alejandro C Inouye
Claire Z Poquette
Francesco L Marrier
Ricardo A Perin
Jennifer V Nicka
Aruna H Inouye
Aika R Iturbide
Leja R Ruta
Stacey D Chui
Mayumi S Figeroa
Greenwood L Whobrey
Francesco X Perin
Ricardo W Royster
Arvin B Ferencz
Johnson P Stenseth
Wickens R Venere
Arvin M Caudy
Greenwood R Shinko
Misaki V Gillian
Costa A Maclead
IdCountryDate
1000Argentina2026-06-19
1001United Kingdom2026-07-04
1002Brazil2026-07-06
1003India2026-06-18
1004Brazil2026-07-10
1005Australia2026-07-07
1006Brazil2026-06-17
1007Brazil2026-06-24
1008France2026-06-19
1009Spain2026-06-23
1010Brazil2026-07-03
1011United Kingdom2026-07-10
1012Japan2026-07-07
1013Australia2026-06-20
1014Brazil2026-07-03
1015India2026-06-26
1016Canada2026-07-15
1017Germany2026-06-19
1018France2026-06-25
1019Australia2026-06-20
1020Japan2026-07-02
1021Japan2026-06-23
1022Spain2026-06-24
1023Russia2026-07-05
1024India2026-07-07
1025Germany2026-06-30
1026Canada2026-06-19
1027India2026-07-13
1028India2026-07-16
1029United Kingdom2026-06-17
1030Japan2026-07-05
1031United Kingdom2026-07-03
1032France2026-06-21
1033Argentina2026-07-04
1034Spain2026-06-30
1035France2026-07-15
1036Germany2026-06-27
1037Russia2026-06-22
1038Canada2026-07-03
1039Spain2026-06-21
1040Japan2026-06-27
1041Australia2026-06-21
1042Argentina2026-07-06
1043Russia2026-07-12
1044Australia2026-07-06
1045Germany2026-06-21
1046United Kingdom2026-07-11
1047Russia2026-07-03
1048Japan2026-07-12
1049Spain2026-06-19

On-Demand Data

NameIdCountryDate
Antonio G Kusko1000Japan2026-06-18
Sinclair W Ruta1001Australia2026-06-22
Ivar B Albares1002France2026-06-19
Alejandro H Butt1003Australia2026-07-07
Salvatore G Amigon1004Australia2026-07-01
Octavia I Paprocki1005Spain2026-07-01
Johnson Y Maclead1006Russia2026-07-09
Greenwood I Perin1007Japan2026-06-23
Deepesh Y Malet1008Argentina2026-06-29
Jeanfrancois G Caldarera1009India2026-07-15
Arvin V Rulapaugh1010United Kingdom2026-07-13
Deepesh D Campain1011Russia2026-07-09
Rodrigues F Morasca1012United Kingdom2026-07-10
Kadeem V Bolognia1013Japan2026-07-02
Munro U Amigon1014France2026-07-06
Morrow E Albares1015India2026-06-22
Darci U Garufi1016Australia2026-06-21
Emily H Caudy1017Canada2026-07-03
Leon M Ruta1018India2026-07-01
Emily D Caudy1019Germany2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones U AmigonCanadaAnna Fali NEGOTIATION
Deepesh R RoysterBrazilAsiya Javayant NEGOTIATION
James J DarakjyJapanAsiya Javayant QUALIFIED
Johnson P AmigonAustraliaOnyama Limba PROPOSAL
Wickens Z FlosiIndiaIvan Magalhaes QUALIFIED
Alejandro X StockhamFranceIvan Magalhaes PROPOSAL
Munro C RutaCanadaAsiya Javayant NEGOTIATION
Jennifer O InouyeFranceElwin Sharvill NEGOTIATION
Clifford C StensethCanadaOnyama Limba QUALIFIED
Stacey S PaprockiSpainStephen Shaw PROPOSAL
Claire N RimAustraliaAmy Elsner QUALIFIED
Costa Q GarufiArgentinaIoni Bowcher NEW
Emily S ShinkoFranceIvan Magalhaes NEGOTIATION
Jeanfrancois E BriddickItalyStephen Shaw RENEWAL
Aditya N RutaArgentinaIoni Bowcher RENEWAL
Misaki I SchemmerUnited KingdomIoni Bowcher RENEWAL
Costa X FerenczBrazilAmy Elsner NEW
Leja L MarrierUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois M MorascaGermanyElwin Sharvill NEGOTIATION
Smith B VenereAustraliaAnna Fali UNQUALIFIED
Silvio V ShinkoArgentinaAnna Fali NEGOTIATION
Smith M DilliardSpainOnyama Limba QUALIFIED
Alejandro E MorascaFranceOnyama Limba NEGOTIATION
Maria D ShinkoCanadaXuxue Feng UNQUALIFIED
Johnson I StensethAustraliaBernardo Dominic RENEWAL
Ashley E WhobreyGermanyStephen Shaw RENEWAL
Clifford X RutaRussiaOnyama Limba QUALIFIED
Munro U SergiSpainIvan Magalhaes RENEWAL
Emily L TollnerItalyIoni Bowcher NEW
Antonio C GillianCanadaIoni Bowcher NEGOTIATION
Chavez M SaylorsAustraliaAnna Fali NEW
Julie V ChuiArgentinaElwin Sharvill PROPOSAL
Julie Z ButtGermanyIvan Magalhaes RENEWAL
Mayumi S DoeJapanAnna Fali NEW
Costa Z BriddickArgentinaElwin Sharvill QUALIFIED
Misaki P RoysterArgentinaAnna Fali RENEWAL
Francesco W KuskoRussiaIvan Magalhaes PROPOSAL
Chavez R PaprockiFranceXuxue Feng RENEWAL
Chavez T FerenczCanadaAsiya Javayant UNQUALIFIED
Arvin O RutaFranceAsiya Javayant 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>