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
Kadeem A RutaItalyXuxue Feng QUALIFIED
Mayumi M StockhamRussiaIoni Bowcher NEW
Maisha V CaldareraAustraliaAmy Elsner UNQUALIFIED
Jennifer R KolmetzRussiaStephen Shaw QUALIFIED
Sinclair S VocelkaArgentinaOnyama Limba NEW
Darci V ShinkoSpainXuxue Feng PROPOSAL
Leon A CampainIndiaElwin Sharvill NEW
Ashley C FigeroaJapanAsiya Javayant RENEWAL
Ricardo I KolmetzJapanBernardo Dominic RENEWAL
Claire W BriddickFranceAnna Fali QUALIFIED
Juan C SaylorsGermanyAsiya Javayant RENEWAL
Smith D SergiSpainXuxue Feng RENEWAL
Alejandro P MaletRussiaXuxue Feng RENEWAL
Leja Q BologniaFranceIvan Magalhaes PROPOSAL
Rodrigues E SaylorsJapanAmy Elsner NEGOTIATION
Claire H VenereArgentinaAmy Elsner NEGOTIATION
Maisha R BriddickItalyElwin Sharvill PROPOSAL
Arvin J KolmetzUnited KingdomBernardo Dominic RENEWAL
Clifford R BologniaIndiaAsiya Javayant NEGOTIATION
Smith O SaylorsIndiaIvan Magalhaes NEW
Nicolas R NickaItalyStephen Shaw UNQUALIFIED
Jeanfrancois C MarrierRussiaAmy Elsner UNQUALIFIED
Kadeem L NestleJapanIoni Bowcher NEGOTIATION
Jeanfrancois R BriddickBrazilXuxue Feng UNQUALIFIED
Jefferson V FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Aruna T ChuiJapanStephen Shaw NEW
Munro D IturbideFranceXuxue Feng NEGOTIATION
Wickens F MaletFranceBernardo Dominic NEW
Wickens F MaletRussiaOnyama Limba QUALIFIED
Jeanfrancois N CaudySpainStephen Shaw PROPOSAL
Izzy U FlosiJapanBernardo Dominic RENEWAL
Deepesh J GauchoArgentinaXuxue Feng RENEWAL
Johnson N IturbideUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois E RulapaughAustraliaAmy Elsner NEW
Aika C InouyeBrazilBernardo Dominic RENEWAL
Murillo R RutaSpainAnna Fali QUALIFIED
Darci Q MorascaRussiaIoni Bowcher NEGOTIATION
Greenwood L MaletSpainStephen Shaw NEW
Sinclair Q AmigonCanadaAmy Elsner RENEWAL
David K SaylorsIndiaElwin Sharvill NEW
Tony Y RulapaughGermanyBernardo Dominic QUALIFIED
Leja C RulapaughSpainAsiya Javayant NEW
Morrow E CaudyJapanXuxue Feng PROPOSAL
Rodrigues M ShinkoAustraliaStephen Shaw RENEWAL
Juan F AmigonItalyBernardo Dominic NEW
Ashley X GarufiFranceAnna Fali PROPOSAL
Claire I FlosiBrazilElwin Sharvill NEW
Maisha M MacleadJapanBernardo Dominic RENEWAL
Octavia Q VenereArgentinaXuxue Feng RENEWAL
Salvatore N CaldareraIndiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel V NickaGermanyIvan Magalhaes NEGOTIATION
Chavez E DoeItalyXuxue Feng UNQUALIFIED
Emily C RimCanadaOnyama Limba RENEWAL
Costa H VocelkaBrazilAmy Elsner NEW
Rodrigues Y OldroydBrazilXuxue Feng PROPOSAL
Adams Y GauchoIndiaElwin Sharvill NEW
James V MarrierJapanIoni Bowcher RENEWAL
Aruna W RutaGermanyAsiya Javayant PROPOSAL
Greenwood I GarufiSpainAmy Elsner NEW
Antonio V VocelkaItalyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams G SergiIndia2026-06-12Dorl, James J Esq NEW25Elwin Sharvill
1001Julie E AlbaresGermany2026-06-13Buckley Miller Wright NEGOTIATION39Ioni Bowcher
1002Costa P TollnerJapan2026-06-07Benton, John B Jr PROPOSAL77Amy Elsner
1003Smith E FlosiBrazil2026-06-17Feltz Printing Service PROPOSAL12Elwin Sharvill
1004Aika R MaletJapan2026-06-13Rousseaux, Michael Esq PROPOSAL66Anna Fali
1005Greenwood K TollnerUnited Kingdom2026-06-24Dorl, James J Esq QUALIFIED12Onyama Limba
1006Salvatore C AlbaresIndia2026-06-14Chapman, Ross E Esq RENEWAL97Elwin Sharvill
1007Claire K RimArgentina2026-06-08Morlong Associates QUALIFIED75Ivan Magalhaes
1008Nicolas O ChuiJapan2026-06-19Benton, John B Jr RENEWAL11Stephen Shaw
1009Aditya C FerenczArgentina2026-06-22King, Christopher A Esq PROPOSAL8Ivan Magalhaes
1010Francesco W CaldareraCanada2026-06-14Feiner Bros QUALIFIED77Ivan Magalhaes
1011Stacey K MorascaAustralia2026-06-27Rousseaux, Michael Esq NEW92Elwin Sharvill
1012James K TollnerFrance2026-06-16Printing Dimensions PROPOSAL81Stephen Shaw
1013Clifford W MacleadItaly2026-06-10Chanay, Jeffrey A Esq QUALIFIED60Ivan Magalhaes
1014Kaitlin M SlusarskiRussia2026-06-16Printing Dimensions UNQUALIFIED32Ivan Magalhaes
1015Greenwood X InouyeGermany2026-06-21Chapman, Ross E Esq PROPOSAL9Ivan Magalhaes
1016Ashley Z AmigonFrance2026-06-26Chapman, Ross E Esq QUALIFIED41Xuxue Feng
1017Johnson J AmigonUnited Kingdom2026-06-18Feiner Bros UNQUALIFIED28Onyama Limba
1018Salvatore J GarufiCanada2026-06-05Buckley Miller Wright RENEWAL54Amy Elsner
1019Jennifer C InouyeBrazil2026-06-13Rousseaux, Michael Esq RENEWAL3Ivan Magalhaes
1020Ricardo K BriddickIndia2026-06-06Truhlar And Truhlar Attys QUALIFIED79Ioni Bowcher
1021Johnson P MorascaGermany2026-06-26Morlong Associates UNQUALIFIED60Ivan Magalhaes
1022Salvatore W BowleyGermany2026-06-13Truhlar And Truhlar Attys NEW54Elwin Sharvill
1023Deepesh N PerinCanada2026-06-18Feltz Printing Service PROPOSAL27Amy Elsner
1024Johnson J CaudyFrance2026-06-13Chapman, Ross E Esq UNQUALIFIED83Xuxue Feng
1025Stacey W CaldareraUnited Kingdom2026-06-18Benton, John B Jr NEW66Anna Fali
1026Maisha P PerinAustralia2026-07-03Dorl, James J Esq UNQUALIFIED24Onyama Limba
1027Jefferson I MaletCanada2026-06-23Chapman, Ross E Esq PROPOSAL41Xuxue Feng
1028Julie M FlosiSpain2026-06-19Chemel, James L Cpa PROPOSAL25Asiya Javayant
1029Costa R FigeroaRussia2026-06-04Printing Dimensions NEGOTIATION10Ioni Bowcher
1030Leon J MorascaItaly2026-06-25Buckley Miller Wright NEW86Ioni Bowcher
1031David L WaycottBrazil2026-06-22Truhlar And Truhlar Attys UNQUALIFIED54Xuxue Feng
1032Rodrigues D MorascaRussia2026-06-19Buckley Miller Wright NEW0Ivan Magalhaes
1033Arvin I MaletJapan2026-06-26Rangoni Of Florence PROPOSAL35Elwin Sharvill
1034Misaki X PaprockiGermany2026-07-01Buckley Miller Wright NEGOTIATION25Anna Fali
1035Jefferson S SchemmerSpain2026-06-08Printing Dimensions NEW21Anna Fali
1036Murillo P ShinkoBrazil2026-06-25Chapman, Ross E Esq UNQUALIFIED52Xuxue Feng
1037Sinclair E BologniaRussia2026-06-05Buckley Miller Wright NEGOTIATION24Ivan Magalhaes
1038Salvatore W FlosiFrance2026-06-05Feltz Printing Service NEW30Amy Elsner
1039Emily G GarufiAustralia2026-06-29Feltz Printing Service RENEWAL68Asiya Javayant
1040Nicolas W BriddickArgentina2026-06-07King, Christopher A Esq QUALIFIED56Elwin Sharvill
1041Stacey G FigeroaJapan2026-07-01Dorl, James J Esq RENEWAL84Stephen Shaw
1042Jeanfrancois Y CaldareraFrance2026-06-29Feltz Printing Service UNQUALIFIED90Anna Fali
1043Tony Q OstroskyJapan2026-06-28Morlong Associates UNQUALIFIED89Onyama Limba
1044Izzy M SaylorsGermany2026-07-01King, Christopher A Esq NEW21Bernardo Dominic
1045David P MaletUnited Kingdom2026-06-28Commercial Press NEGOTIATION52Xuxue Feng
1046Claire L PerinRussia2026-06-08Printing Dimensions NEGOTIATION17Stephen Shaw
1047Morrow F WaycottArgentina2026-06-05Chemel, James L Cpa QUALIFIED71Onyama Limba
1048Mayumi Q PaprockiGermany2026-06-12Chanay, Jeffrey A Esq PROPOSAL18Asiya Javayant
1049Maria S DilliardBrazil2026-06-17King, Christopher A Esq RENEWAL13Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Julie I CaldareraAustraliaAmy Elsner UNQUALIFIED
Aditya O StockhamArgentinaAsiya Javayant NEW
Antonio W OldroydUnited KingdomElwin Sharvill NEW
Aditya L MaletIndiaElwin Sharvill UNQUALIFIED
Johnson H RulapaughItalyStephen Shaw RENEWAL
Aika E BowleyCanadaOnyama Limba RENEWAL
Murillo E GauchoArgentinaAsiya Javayant QUALIFIED
Juan E OstroskyItalyIvan Magalhaes QUALIFIED
Munro B FlosiIndiaAmy Elsner UNQUALIFIED
Ashley G VenereUnited KingdomIoni Bowcher NEW
Kadeem Z PoquetteFranceIoni Bowcher UNQUALIFIED
Nicolas M StockhamSpainIvan Magalhaes UNQUALIFIED
Maisha R NickaJapanAmy Elsner NEGOTIATION
Rodrigues D ButtArgentinaElwin Sharvill QUALIFIED
Ashley L AlbaresFranceXuxue Feng RENEWAL
Arvin U DarakjyCanadaStephen Shaw UNQUALIFIED
Murillo Y DilliardItalyStephen Shaw UNQUALIFIED
Murillo D WaycottCanadaAnna Fali NEGOTIATION
Jefferson J ButtSpainIvan Magalhaes QUALIFIED
Darci A StensethAustraliaBernardo Dominic NEW
Rodrigues L KuskoCanadaAsiya Javayant NEGOTIATION
Mujtaba N GillianArgentinaElwin Sharvill NEW
Greenwood C NestleGermanyIvan Magalhaes UNQUALIFIED
Tony N DilliardGermanyIoni Bowcher PROPOSAL
Isabel Q GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson B MaletItalyBernardo Dominic UNQUALIFIED
Maria P NestleJapanXuxue Feng UNQUALIFIED
Aruna W FlosiUnited KingdomAmy Elsner UNQUALIFIED
Adams E CaudySpainXuxue Feng UNQUALIFIED
Claire F CaudyGermanyIvan Magalhaes RENEWAL
Leja P VenereRussiaIoni Bowcher UNQUALIFIED
Faith T KolmetzUnited KingdomStephen Shaw QUALIFIED
Aruna T AlbaresJapanXuxue Feng RENEWAL
Cody U ShinkoAustraliaAmy Elsner RENEWAL
Julie F WieserAustraliaAmy Elsner QUALIFIED
Ricardo S AlbaresGermanyIvan Magalhaes NEGOTIATION
Jones M StensethUnited KingdomAmy Elsner NEGOTIATION
Leon D StockhamGermanyIvan Magalhaes NEGOTIATION
Johnson T FerenczFranceAmy Elsner NEGOTIATION
Sinclair Q ShinkoFranceBernardo Dominic PROPOSAL
Tony C WhobreyGermanyStephen Shaw QUALIFIED
Antonio F PoquetteBrazilElwin Sharvill NEW
Emily S ButtGermanyStephen Shaw QUALIFIED
Aditya S RoysterItalyIvan Magalhaes QUALIFIED
Greenwood J DoeBrazilElwin Sharvill NEGOTIATION
Chavez Y AlbaresBrazilBernardo Dominic NEW
Kaitlin E SchemmerIndiaAnna Fali NEGOTIATION
James U StensethRussiaIoni Bowcher RENEWAL
Izzy K ButtJapanAmy Elsner NEW
Sinclair J BologniaUnited KingdomIvan Magalhaes PROPOSAL
Frozen Columns
Name
Antonio J Flosi
Alejandro I Caudy
Wickens P Darakjy
Octavia K Nestle
Sinclair B Wieser
Rodrigues G Tollner
Sinclair T Schemmer
Kaitlin T Chui
Juan J Kolmetz
Julie Q Doe
Aruna O Iturbide
Darci X Albares
Deepesh R Nicka
Emily Q Waycott
Isabel K Campain
Arvin T Whobrey
Silvio U Dilliard
Murillo V Slusarski
Misaki S Vocelka
Chavez Z Malet
Smith V Schemmer
James B Stockham
Jones E Iturbide
Julie D Chui
Clifford I Nestle
Wickens N Campain
Tony O Garufi
Munro G Campain
Juan O Royster
David P Stockham
Cody I Poquette
Rodrigues D Butt
Leja F Nestle
Clifford H Butt
Francesco R Waycott
Juan D Malet
Misaki Q Marrier
Alejandro B Garufi
Darci G Flosi
Mayumi Y Figeroa
Kadeem W Oldroyd
Murillo D Saylors
Kadeem V Dilliard
Emily D Paprocki
Costa L Bolognia
David F Butt
Murillo A Amigon
Aditya J Gaucho
Greenwood Q Bolognia
Faith K Garufi
IdCountryDate
1000Australia2026-06-19
1001Argentina2026-06-27
1002Spain2026-06-25
1003Australia2026-06-17
1004France2026-06-09
1005Canada2026-07-01
1006Canada2026-06-05
1007Russia2026-06-23
1008India2026-06-07
1009Argentina2026-07-01
1010Russia2026-06-18
1011Russia2026-07-02
1012Spain2026-06-15
1013Australia2026-06-28
1014Spain2026-06-09
1015Japan2026-07-03
1016Australia2026-07-02
1017Italy2026-06-10
1018Germany2026-06-05
1019Brazil2026-06-08
1020Spain2026-06-05
1021Russia2026-06-14
1022Italy2026-06-11
1023Argentina2026-06-13
1024United Kingdom2026-06-29
1025United Kingdom2026-06-23
1026Spain2026-06-30
1027Australia2026-06-22
1028Brazil2026-07-02
1029Russia2026-06-13
1030Japan2026-06-24
1031Russia2026-06-27
1032Italy2026-07-01
1033Argentina2026-06-19
1034France2026-06-14
1035Brazil2026-06-19
1036France2026-06-09
1037Japan2026-06-09
1038Argentina2026-06-24
1039Canada2026-06-12
1040United Kingdom2026-06-27
1041Brazil2026-07-01
1042France2026-06-22
1043Brazil2026-06-15
1044United Kingdom2026-06-14
1045Canada2026-06-25
1046France2026-06-13
1047Germany2026-06-26
1048Argentina2026-06-11
1049United Kingdom2026-07-03

On-Demand Data

NameIdCountryDate
Alejandro W Perin1000Argentina2026-07-03
Arvin Q Ferencz1001India2026-06-04
Ashley Z Ostrosky1002Australia2026-06-12
Ivar F Chui1003France2026-06-14
Isabel C Figeroa1004Brazil2026-06-27
Mujtaba P Doe1005India2026-06-13
Rodrigues Z Chui1006Russia2026-06-16
Izzy A Ostrosky1007United Kingdom2026-06-26
Mujtaba K Malet1008Spain2026-06-22
Murillo K Bolognia1009Brazil2026-07-03
Leon L Royster1010Russia2026-06-09
Jefferson J Bolognia1011Canada2026-06-10
Izzy V Wieser1012Argentina2026-06-11
Jefferson S Slusarski1013Argentina2026-07-03
Leon V Iturbide1014Argentina2026-07-01
Antonio L Glick1015Japan2026-06-30
Murillo T Kusko1016France2026-06-12
Darci X Darakjy1017Italy2026-06-12
Kaitlin R Paprocki1018France2026-06-10
Julie N Stenseth1019United Kingdom2026-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith L WaycottBrazilXuxue Feng QUALIFIED
Ashley H GauchoArgentinaBernardo Dominic RENEWAL
Nicolas C FigeroaSpainStephen Shaw QUALIFIED
Jeanfrancois F StensethIndiaAsiya Javayant NEGOTIATION
Faith S MaletGermanyXuxue Feng QUALIFIED
Mujtaba C GarufiUnited KingdomIvan Magalhaes RENEWAL
Claire D MaletAustraliaAmy Elsner UNQUALIFIED
Juan S SergiFranceElwin Sharvill QUALIFIED
Claire L KuskoUnited KingdomElwin Sharvill NEGOTIATION
Juan Y GillianBrazilStephen Shaw RENEWAL
Kaitlin Y BologniaAustraliaAmy Elsner NEW
Jones P StensethGermanyStephen Shaw NEGOTIATION
Costa F BowleyItalyAnna Fali RENEWAL
Aika S RutaSpainAmy Elsner NEW
Salvatore J OldroydArgentinaStephen Shaw PROPOSAL
Stacey E GillianAustraliaAnna Fali NEGOTIATION
Aruna H OldroydBrazilAsiya Javayant UNQUALIFIED
Ashley N DarakjyRussiaXuxue Feng NEGOTIATION
Julie S SchemmerIndiaAmy Elsner NEW
Faith N CaudyGermanyOnyama Limba NEW
Jeanfrancois B BowleyJapanIvan Magalhaes UNQUALIFIED
Mayumi G VenereFranceAmy Elsner QUALIFIED
Kadeem D ShinkoGermanyAmy Elsner RENEWAL
Kaitlin X PaprockiItalyAmy Elsner UNQUALIFIED
Sinclair Q BowleySpainElwin Sharvill NEW
Maisha J MarrierItalyAsiya Javayant UNQUALIFIED
Juan S PoquetteCanadaOnyama Limba QUALIFIED
Johnson L DilliardGermanyXuxue Feng NEW
Maisha S WaycottItalyAmy Elsner UNQUALIFIED
Kadeem K RulapaughRussiaIvan Magalhaes NEGOTIATION
Alejandro K MaletCanadaElwin Sharvill NEGOTIATION
Clifford K ChuiArgentinaIvan Magalhaes RENEWAL
Maria E GauchoUnited KingdomIoni Bowcher RENEWAL
Claire G AmigonJapanIvan Magalhaes UNQUALIFIED
Deepesh O DilliardGermanyIoni Bowcher RENEWAL
James K MaletIndiaAsiya Javayant NEGOTIATION
Aika I SchemmerBrazilXuxue Feng RENEWAL
Ivar E FigeroaSpainAsiya Javayant RENEWAL
Aika Z FerenczItalyAnna Fali UNQUALIFIED
Silvio P SchemmerAustraliaAsiya Javayant 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>