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
Chavez P SchemmerJapanIvan Magalhaes UNQUALIFIED
Ricardo K OstroskyItalyElwin Sharvill RENEWAL
Octavia I WaycottRussiaAnna Fali NEW
David D StensethCanadaOnyama Limba UNQUALIFIED
Mayumi P CampainCanadaStephen Shaw PROPOSAL
Kaitlin C AmigonFranceAmy Elsner QUALIFIED
Claire C CampainIndiaStephen Shaw NEGOTIATION
Aditya A InouyeRussiaElwin Sharvill UNQUALIFIED
Darci V MarrierBrazilXuxue Feng RENEWAL
Nicolas Z GarufiAustraliaOnyama Limba NEW
James U RimIndiaAmy Elsner NEGOTIATION
Aruna B DilliardItalyIvan Magalhaes RENEWAL
Aruna M FerenczRussiaStephen Shaw PROPOSAL
Aditya B CaldareraIndiaXuxue Feng RENEWAL
Rodrigues M RoysterArgentinaIvan Magalhaes NEW
Kaitlin T ButtIndiaIvan Magalhaes UNQUALIFIED
Octavia T WaycottJapanAmy Elsner NEW
Jefferson Z WaycottFranceBernardo Dominic RENEWAL
Mujtaba A PoquetteSpainAnna Fali QUALIFIED
Alejandro D FerenczIndiaAnna Fali NEGOTIATION
Francesco V RutaArgentinaAsiya Javayant NEGOTIATION
Chavez H RoysterBrazilAnna Fali RENEWAL
Arvin E GarufiJapanXuxue Feng UNQUALIFIED
James T SchemmerCanadaBernardo Dominic UNQUALIFIED
Leja K StockhamCanadaAmy Elsner NEW
Jeanfrancois T PaprockiJapanElwin Sharvill PROPOSAL
Stacey H GlickArgentinaAnna Fali QUALIFIED
Sinclair Z DarakjyRussiaStephen Shaw UNQUALIFIED
Jeanfrancois W VocelkaCanadaAsiya Javayant UNQUALIFIED
Aruna Y GarufiCanadaOnyama Limba NEGOTIATION
Jones X StensethItalyAsiya Javayant NEGOTIATION
Costa S MarrierGermanyOnyama Limba PROPOSAL
Greenwood I MacleadSpainIoni Bowcher UNQUALIFIED
Izzy V BriddickSpainAsiya Javayant UNQUALIFIED
Octavia E WaycottBrazilIoni Bowcher NEGOTIATION
Morrow E GarufiSpainAsiya Javayant NEW
Leon K FerenczIndiaOnyama Limba NEW
Kaitlin F DarakjyBrazilBernardo Dominic NEW
Aika T SergiItalyIvan Magalhaes NEGOTIATION
Adams S SchemmerGermanyOnyama Limba PROPOSAL
Munro E GillianSpainAmy Elsner QUALIFIED
Jeanfrancois I NickaItalyStephen Shaw NEW
Salvatore H GillianJapanStephen Shaw RENEWAL
Murillo I PaprockiRussiaElwin Sharvill QUALIFIED
Darci T BologniaJapanBernardo Dominic QUALIFIED
Alejandro M PerinRussiaAmy Elsner QUALIFIED
Tony I ShinkoGermanyAmy Elsner QUALIFIED
Nicolas D MacleadArgentinaAnna Fali NEGOTIATION
Arvin G SlusarskiIndiaBernardo Dominic PROPOSAL
Salvatore D MaletAustraliaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh V GauchoJapanAsiya Javayant PROPOSAL
Morrow I ButtArgentinaXuxue Feng NEGOTIATION
Mayumi Y FlosiJapanAsiya Javayant PROPOSAL
Mayumi S KuskoBrazilStephen Shaw UNQUALIFIED
Kaitlin N AlbaresArgentinaAnna Fali RENEWAL
Sinclair G RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Stacey W VenereUnited KingdomStephen Shaw NEGOTIATION
Johnson L BowleyCanadaElwin Sharvill PROPOSAL
Silvio Y FollerItalyIoni Bowcher QUALIFIED
Arvin B CaldareraCanadaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson Y PaprockiBrazil2025-06-04Chanay, Jeffrey A Esq QUALIFIED9Elwin Sharvill
1001Misaki A FerenczJapan2025-05-27Chanay, Jeffrey A Esq NEW95Amy Elsner
1002Silvio P OldroydJapan2025-05-29Chanay, Jeffrey A Esq NEW3Asiya Javayant
1003Salvatore M RoysterCanada2025-06-03Feltz Printing Service PROPOSAL76Ivan Magalhaes
1004Salvatore B StensethFrance2025-06-07Buckley Miller Wright QUALIFIED87Asiya Javayant
1005Julie M MacleadArgentina2025-05-22Chemel, James L Cpa PROPOSAL70Onyama Limba
1006Arvin R RimGermany2025-05-28Printing Dimensions PROPOSAL36Asiya Javayant
1007Salvatore H CaudyRussia2025-06-04Feiner Bros QUALIFIED66Elwin Sharvill
1008Adams P SergiCanada2025-05-29Truhlar And Truhlar Attys QUALIFIED9Anna Fali
1009Leja P CampainSpain2025-06-06Morlong Associates NEGOTIATION17Bernardo Dominic
1010Mujtaba J CaudyRussia2025-06-04Printing Dimensions QUALIFIED91Anna Fali
1011Mujtaba L MaletItaly2025-05-31Truhlar And Truhlar Attys QUALIFIED18Ivan Magalhaes
1012Maria X DoeArgentina2025-05-25Rousseaux, Michael Esq UNQUALIFIED72Amy Elsner
1013Aika H CaudySpain2025-05-21Dorl, James J Esq NEGOTIATION34Stephen Shaw
1014Jeanfrancois A FollerFrance2025-05-23Chanay, Jeffrey A Esq QUALIFIED44Ioni Bowcher
1015Adams P SlusarskiAustralia2025-06-05Feiner Bros UNQUALIFIED98Elwin Sharvill
1016Stacey D AlbaresItaly2025-05-24Printing Dimensions UNQUALIFIED85Ivan Magalhaes
1017Adams S ShinkoItaly2025-05-25Rousseaux, Michael Esq NEGOTIATION72Bernardo Dominic
1018Izzy P FollerItaly2025-05-17Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1019Wickens H MaletArgentina2025-06-05Feltz Printing Service RENEWAL67Stephen Shaw
1020Adams L WaycottSpain2025-05-26Chanay, Jeffrey A Esq NEW60Bernardo Dominic
1021Aditya D MarrierGermany2025-06-13Chanay, Jeffrey A Esq PROPOSAL83Onyama Limba
1022Wickens F CaldareraRussia2025-06-03Printing Dimensions PROPOSAL5Asiya Javayant
1023Munro Z DilliardGermany2025-05-20Benton, John B Jr NEW55Ioni Bowcher
1024Julie Z StensethBrazil2025-06-15Printing Dimensions QUALIFIED25Asiya Javayant
1025Antonio P StockhamRussia2025-06-04Feltz Printing Service PROPOSAL66Asiya Javayant
1026Leja W FerenczSpain2025-06-09Rousseaux, Michael Esq QUALIFIED2Xuxue Feng
1027Cody R SchemmerAustralia2025-05-29Feltz Printing Service QUALIFIED1Bernardo Dominic
1028Tony V GlickBrazil2025-05-28Printing Dimensions NEGOTIATION87Xuxue Feng
1029Costa B CaldareraBrazil2025-06-10Commercial Press PROPOSAL41Bernardo Dominic
1030Antonio R RutaUnited Kingdom2025-06-14Printing Dimensions NEW85Xuxue Feng
1031Alejandro Z StockhamFrance2025-05-29Printing Dimensions RENEWAL33Bernardo Dominic
1032Wickens Y RutaBrazil2025-06-13Truhlar And Truhlar Attys RENEWAL55Ioni Bowcher
1033Silvio V KolmetzSpain2025-05-21Buckley Miller Wright PROPOSAL62Amy Elsner
1034Francesco E StensethUnited Kingdom2025-06-04Benton, John B Jr PROPOSAL15Ivan Magalhaes
1035Tony C OstroskyFrance2025-06-08King, Christopher A Esq NEW94Stephen Shaw
1036Leon I VenereUnited Kingdom2025-06-08Feiner Bros NEW57Asiya Javayant
1037Jones C ChuiArgentina2025-05-31Chemel, James L Cpa PROPOSAL68Ioni Bowcher
1038Julie Q SchemmerJapan2025-06-03Printing Dimensions RENEWAL13Ivan Magalhaes
1039Faith X ShinkoBrazil2025-06-07Rousseaux, Michael Esq NEW49Ioni Bowcher
1040Clifford L NickaCanada2025-05-31Buckley Miller Wright QUALIFIED3Anna Fali
1041Misaki N RoysterUnited Kingdom2025-05-18Feiner Bros NEGOTIATION70Asiya Javayant
1042Stacey N WieserIndia2025-05-23Truhlar And Truhlar Attys NEW43Anna Fali
1043Izzy I MacleadBrazil2025-05-17Printing Dimensions UNQUALIFIED80Amy Elsner
1044Faith L SchemmerGermany2025-06-09Dorl, James J Esq RENEWAL72Stephen Shaw
1045Stacey O VenereSpain2025-06-08Dorl, James J Esq UNQUALIFIED36Anna Fali
1046Jennifer L MacleadUnited Kingdom2025-05-22Feiner Bros RENEWAL42Ivan Magalhaes
1047Jefferson S AmigonUnited Kingdom2025-05-31Printing Dimensions RENEWAL44Elwin Sharvill
1048Rodrigues T OldroydAustralia2025-05-26King, Christopher A Esq QUALIFIED5Onyama Limba
1049Cody B GarufiUnited Kingdom2025-06-05Buckley Miller Wright NEGOTIATION92Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kadeem A CaudyUnited KingdomOnyama Limba UNQUALIFIED
Aika O WieserFranceOnyama Limba QUALIFIED
Arvin L PaprockiBrazilXuxue Feng NEW
Arvin F RulapaughJapanElwin Sharvill NEGOTIATION
Smith V MaletSpainAnna Fali UNQUALIFIED
Jones W PerinUnited KingdomXuxue Feng NEGOTIATION
Adams S KolmetzSpainBernardo Dominic NEW
Aruna Y DoeFranceStephen Shaw RENEWAL
Greenwood J SergiCanadaIoni Bowcher QUALIFIED
Isabel S RoysterBrazilStephen Shaw NEGOTIATION
James P FollerAustraliaIvan Magalhaes QUALIFIED
Ashley Y TollnerCanadaXuxue Feng RENEWAL
Izzy R DoeUnited KingdomOnyama Limba PROPOSAL
Emily J ChuiJapanXuxue Feng QUALIFIED
Juan Y ChuiIndiaAsiya Javayant QUALIFIED
Francesco P RoysterAustraliaAnna Fali PROPOSAL
Arvin U FerenczGermanyElwin Sharvill NEGOTIATION
Mujtaba Y CaldareraArgentinaIvan Magalhaes PROPOSAL
James N NickaItalyIoni Bowcher QUALIFIED
Arvin I VocelkaAustraliaOnyama Limba PROPOSAL
Leja L GarufiItalyAsiya Javayant UNQUALIFIED
Alejandro J TollnerItalyAsiya Javayant PROPOSAL
Leon X ChuiRussiaAnna Fali PROPOSAL
Sinclair Y RulapaughFranceStephen Shaw RENEWAL
David O VenereArgentinaElwin Sharvill QUALIFIED
Deepesh W CampainFranceOnyama Limba QUALIFIED
Octavia E VenereJapanAnna Fali QUALIFIED
Rodrigues J CampainBrazilAmy Elsner PROPOSAL
Emily D PoquetteCanadaAmy Elsner NEGOTIATION
Tony E GauchoCanadaOnyama Limba QUALIFIED
Octavia L NickaIndiaAnna Fali PROPOSAL
Darci D SlusarskiAustraliaXuxue Feng QUALIFIED
Mayumi C RulapaughRussiaXuxue Feng NEGOTIATION
Darci E BologniaGermanyAmy Elsner RENEWAL
David R TollnerRussiaIvan Magalhaes PROPOSAL
Silvio S DoeRussiaIoni Bowcher UNQUALIFIED
Munro L NestleSpainAnna Fali PROPOSAL
Julie Z NickaAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois Z KuskoUnited KingdomElwin Sharvill QUALIFIED
James N AmigonGermanyXuxue Feng NEGOTIATION
Adams N IturbideFranceStephen Shaw NEW
Francesco W RoysterItalyXuxue Feng NEW
Jeanfrancois F PoquetteRussiaAnna Fali QUALIFIED
Cody R PerinUnited KingdomIoni Bowcher RENEWAL
Jefferson M MorascaUnited KingdomXuxue Feng UNQUALIFIED
Isabel I MarrierAustraliaAsiya Javayant UNQUALIFIED
Mujtaba P MorascaArgentinaBernardo Dominic UNQUALIFIED
Octavia Q DoeAustraliaElwin Sharvill RENEWAL
Deepesh M SchemmerFranceXuxue Feng NEW
Clifford D VocelkaSpainAnna Fali NEW
Frozen Columns
Name
Kaitlin F Vocelka
Isabel T Nicka
Jones B Kolmetz
Smith U Ostrosky
Deepesh B Glick
Clifford N Paprocki
Deepesh O Kolmetz
Ashley V Poquette
Octavia C Rim
Alejandro U Oldroyd
David O Caldarera
Ricardo U Gaucho
Maria L Amigon
David X Bolognia
Ricardo N Ruta
Francesco U Kusko
Claire F Bowley
Arvin D Glick
Munro A Bolognia
Greenwood O Kusko
Morrow P Ostrosky
Munro F Inouye
Leja P Stockham
Mayumi U Marrier
Salvatore H Schemmer
Jennifer E Whobrey
Julie Z Saylors
Sinclair C Caudy
Leon J Maclead
Sinclair T Briddick
Faith N Vocelka
Clifford B Stockham
Octavia D Darakjy
Tony N Wieser
Costa U Stenseth
Morrow J Caldarera
Kadeem V Ruta
Chavez D Rim
Silvio T Malet
Costa N Tollner
Maria P Tollner
Kaitlin S Gillian
Wickens W Dilliard
Aika F Perin
Kaitlin V Kusko
Ashley J Malet
Jennifer Q Vocelka
Antonio F Schemmer
Maria A Venere
Maria O Tollner
IdCountryDate
1000Russia2025-05-17
1001Canada2025-06-01
1002India2025-06-08
1003Russia2025-05-27
1004France2025-05-23
1005Russia2025-06-15
1006Italy2025-06-12
1007Australia2025-05-19
1008Japan2025-05-20
1009France2025-05-24
1010Brazil2025-06-03
1011Germany2025-05-22
1012Italy2025-06-06
1013Russia2025-05-25
1014United Kingdom2025-05-26
1015Argentina2025-05-19
1016France2025-06-06
1017Brazil2025-06-05
1018Spain2025-05-28
1019Australia2025-06-04
1020India2025-05-31
1021United Kingdom2025-06-09
1022Japan2025-06-08
1023Spain2025-06-11
1024Spain2025-06-07
1025Canada2025-06-02
1026Australia2025-05-25
1027Spain2025-06-01
1028Russia2025-06-14
1029France2025-06-13
1030France2025-05-27
1031Brazil2025-05-21
1032Germany2025-06-06
1033Germany2025-05-18
1034Germany2025-06-15
1035Australia2025-05-18
1036Spain2025-05-18
1037Italy2025-05-25
1038India2025-06-05
1039France2025-05-19
1040India2025-05-26
1041Japan2025-06-01
1042Japan2025-05-20
1043Canada2025-05-31
1044Germany2025-06-13
1045Australia2025-05-17
1046Japan2025-05-30
1047Argentina2025-05-19
1048Argentina2025-05-17
1049Brazil2025-05-27

On-Demand Data

NameIdCountryDate
Wickens A Figeroa1000Spain2025-05-21
Adams W Saylors1001France2025-05-17
Leon I Briddick1002Australia2025-05-30
Alejandro R Amigon1003Japan2025-06-04
Sinclair N Bolognia1004Japan2025-06-01
Chavez S Kusko1005Canada2025-06-01
Greenwood S Vocelka1006Japan2025-06-06
Aditya D Perin1007Argentina2025-05-28
Mayumi G Vocelka1008Australia2025-05-28
Costa U Malet1009Australia2025-05-26
Murillo Z Schemmer1010Japan2025-05-19
Aika M Marrier1011France2025-05-21
Ivar Y Amigon1012India2025-05-19
Kaitlin Q Nestle1013France2025-06-04
Leja B Briddick1014Japan2025-05-19
Antonio D Campain1015Brazil2025-05-27
Maria L Slusarski1016Germany2025-06-08
Kadeem N Flosi1017Russia2025-05-20
Clifford U Albares1018Japan2025-05-21
Chavez I Malet1019India2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith B FerenczAustraliaIoni Bowcher RENEWAL
Aruna T StockhamJapanIoni Bowcher PROPOSAL
Ivar C CampainItalyXuxue Feng NEGOTIATION
Mujtaba U FlosiIndiaStephen Shaw NEW
Sinclair L MaletGermanyOnyama Limba RENEWAL
Jefferson E SaylorsSpainAsiya Javayant QUALIFIED
Smith V MorascaIndiaAnna Fali PROPOSAL
Leja Z GlickSpainAnna Fali NEGOTIATION
Ivar J CaldareraIndiaAsiya Javayant QUALIFIED
Ricardo Y MorascaBrazilStephen Shaw NEGOTIATION
Jones R NestleGermanyElwin Sharvill NEGOTIATION
David Z WieserAustraliaAnna Fali RENEWAL
Adams F GarufiCanadaElwin Sharvill UNQUALIFIED
Antonio S MarrierArgentinaAnna Fali QUALIFIED
Rodrigues H FigeroaItalyStephen Shaw NEGOTIATION
Greenwood J SergiJapanIvan Magalhaes NEGOTIATION
Greenwood B SaylorsGermanyIvan Magalhaes PROPOSAL
Alejandro T WieserFranceStephen Shaw QUALIFIED
Misaki H RulapaughBrazilAmy Elsner PROPOSAL
Leja E OstroskyCanadaBernardo Dominic PROPOSAL
Morrow A NestleCanadaBernardo Dominic QUALIFIED
Jones A RoysterRussiaStephen Shaw RENEWAL
Juan Y MacleadFranceIoni Bowcher QUALIFIED
Julie S GarufiBrazilBernardo Dominic NEW
Clifford B GarufiBrazilXuxue Feng UNQUALIFIED
Deepesh U AlbaresIndiaAsiya Javayant UNQUALIFIED
Chavez A NestleCanadaElwin Sharvill UNQUALIFIED
Costa Z ShinkoRussiaIoni Bowcher NEGOTIATION
Smith X WaycottFranceIvan Magalhaes PROPOSAL
Aditya H BologniaJapanAsiya Javayant UNQUALIFIED
Maria M FerenczUnited KingdomBernardo Dominic PROPOSAL
Murillo D StensethRussiaAsiya Javayant NEW
Izzy I VocelkaArgentinaBernardo Dominic RENEWAL
Rodrigues H BowleyItalyIoni Bowcher NEGOTIATION
Ashley V InouyeGermanyAnna Fali NEW
Jeanfrancois M SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Deepesh Y AmigonItalyBernardo Dominic RENEWAL
Aditya M OstroskyIndiaIoni Bowcher QUALIFIED
Misaki V NestleUnited KingdomAnna Fali QUALIFIED
David J GillianFranceXuxue Feng RENEWAL

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