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 J OstroskyRussiaAnna Fali PROPOSAL
Mujtaba D DoeUnited KingdomXuxue Feng UNQUALIFIED
Murillo C OldroydCanadaIvan Magalhaes RENEWAL
Ashley C FigeroaCanadaElwin Sharvill RENEWAL
Aika H FerenczRussiaAsiya Javayant RENEWAL
James T SaylorsArgentinaStephen Shaw NEW
Jeanfrancois I NickaUnited KingdomElwin Sharvill UNQUALIFIED
Arvin I BologniaAustraliaXuxue Feng QUALIFIED
Faith A VocelkaCanadaAsiya Javayant RENEWAL
Jeanfrancois U OstroskyItalyElwin Sharvill QUALIFIED
Jeanfrancois U WieserSpainIvan Magalhaes RENEWAL
Claire N OldroydAustraliaStephen Shaw RENEWAL
Ricardo P CaldareraRussiaIvan Magalhaes NEW
Adams I GillianCanadaIoni Bowcher RENEWAL
Rodrigues W KolmetzJapanElwin Sharvill RENEWAL
Nicolas R VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Cody T GlickArgentinaElwin Sharvill QUALIFIED
Juan M InouyeItalyStephen Shaw UNQUALIFIED
Tony N AmigonCanadaAsiya Javayant NEW
Kadeem S PerinGermanyElwin Sharvill NEW
Emily O MorascaArgentinaAsiya Javayant UNQUALIFIED
Chavez K PaprockiAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois D AlbaresItalyStephen Shaw NEGOTIATION
Jeanfrancois B PoquetteJapanOnyama Limba NEW
Smith A SaylorsItalyBernardo Dominic PROPOSAL
Maisha L BriddickRussiaIvan Magalhaes PROPOSAL
Ashley Y SergiArgentinaXuxue Feng NEW
Darci S KolmetzCanadaIoni Bowcher UNQUALIFIED
Wickens N PoquetteFranceOnyama Limba PROPOSAL
Greenwood I InouyeArgentinaOnyama Limba QUALIFIED
Juan A NestleGermanyAnna Fali RENEWAL
Stacey S SergiUnited KingdomBernardo Dominic NEGOTIATION
Arvin K MarrierGermanyXuxue Feng NEGOTIATION
Jeanfrancois J FollerGermanyXuxue Feng PROPOSAL
David X CaudyRussiaIoni Bowcher UNQUALIFIED
Maria R DarakjyRussiaAsiya Javayant PROPOSAL
Julie N StockhamSpainBernardo Dominic UNQUALIFIED
Nicolas E RimBrazilAsiya Javayant QUALIFIED
Mayumi G DoeCanadaIoni Bowcher RENEWAL
Aika N MarrierRussiaElwin Sharvill NEGOTIATION
Mayumi R RutaFranceElwin Sharvill QUALIFIED
Ricardo V RoysterFranceIvan Magalhaes RENEWAL
Ashley M DilliardSpainIoni Bowcher NEGOTIATION
Maisha M DarakjyIndiaXuxue Feng RENEWAL
Kadeem U MaletCanadaIvan Magalhaes NEGOTIATION
Faith T MorascaArgentinaAnna Fali RENEWAL
Stacey Z DoeRussiaXuxue Feng NEW
Jeanfrancois G VocelkaBrazilXuxue Feng NEW
Octavia L MaletFranceXuxue Feng NEW
Jones L SaylorsUnited KingdomAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi L RutaAustraliaElwin Sharvill RENEWAL
Maria E WieserIndiaXuxue Feng NEW
Mujtaba L GillianCanadaElwin Sharvill NEGOTIATION
Jefferson L VenereIndiaAmy Elsner NEGOTIATION
Maisha V PerinBrazilElwin Sharvill NEW
Mujtaba R SergiFranceIoni Bowcher NEW
Clifford J MacleadAustraliaOnyama Limba RENEWAL
Clifford G RimCanadaAnna Fali NEW
Jennifer E PaprockiAustraliaBernardo Dominic UNQUALIFIED
Rodrigues P MacleadIndiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas C SaylorsIndia2025-05-31Chemel, James L Cpa NEW43Stephen Shaw
1001Aditya O DoeRussia2025-06-03Printing Dimensions RENEWAL5Asiya Javayant
1002Adams I GarufiAustralia2025-05-21Morlong Associates QUALIFIED53Amy Elsner
1003Izzy V RoysterFrance2025-05-27Printing Dimensions RENEWAL65Asiya Javayant
1004Tony M NestleJapan2025-06-01Rangoni Of Florence RENEWAL46Ivan Magalhaes
1005Maria P OldroydSpain2025-06-04Chanay, Jeffrey A Esq NEGOTIATION65Amy Elsner
1006Stacey W CaldareraAustralia2025-06-06Feltz Printing Service NEW18Elwin Sharvill
1007Isabel O MorascaItaly2025-05-17Benton, John B Jr PROPOSAL17Xuxue Feng
1008Ashley X GauchoItaly2025-05-25King, Christopher A Esq NEW73Bernardo Dominic
1009Chavez S BologniaIndia2025-05-25Truhlar And Truhlar Attys QUALIFIED24Ivan Magalhaes
1010Ashley D MorascaBrazil2025-05-16Feiner Bros RENEWAL83Asiya Javayant
1011Nicolas N OstroskyArgentina2025-06-09Buckley Miller Wright RENEWAL50Bernardo Dominic
1012Emily T WhobreyBrazil2025-06-13Commercial Press PROPOSAL44Elwin Sharvill
1013Misaki V WaycottCanada2025-06-08Chapman, Ross E Esq QUALIFIED64Anna Fali
1014James D BowleyAustralia2025-06-12Feiner Bros PROPOSAL48Xuxue Feng
1015Claire M GarufiJapan2025-05-17Commercial Press NEW5Xuxue Feng
1016Sinclair G FerenczJapan2025-06-07Rousseaux, Michael Esq NEW99Elwin Sharvill
1017Morrow A MacleadCanada2025-06-11Morlong Associates RENEWAL54Bernardo Dominic
1018Wickens O VenereArgentina2025-06-06Truhlar And Truhlar Attys QUALIFIED90Asiya Javayant
1019Claire E ChuiRussia2025-05-30Buckley Miller Wright NEGOTIATION71Elwin Sharvill
1020Salvatore N FollerUnited Kingdom2025-06-04Commercial Press UNQUALIFIED39Onyama Limba
1021Costa G ButtFrance2025-06-09Printing Dimensions QUALIFIED81Bernardo Dominic
1022Arvin B MarrierJapan2025-05-17King, Christopher A Esq QUALIFIED23Stephen Shaw
1023Rodrigues A PerinArgentina2025-05-19Commercial Press QUALIFIED51Amy Elsner
1024Silvio R SchemmerAustralia2025-05-19Feltz Printing Service UNQUALIFIED1Stephen Shaw
1025Salvatore H SlusarskiArgentina2025-05-16Benton, John B Jr PROPOSAL87Elwin Sharvill
1026Costa I AmigonGermany2025-05-24Chanay, Jeffrey A Esq RENEWAL93Asiya Javayant
1027Mayumi B GillianUnited Kingdom2025-05-24Rangoni Of Florence NEGOTIATION25Asiya Javayant
1028Ashley E SergiUnited Kingdom2025-06-09Rousseaux, Michael Esq RENEWAL83Elwin Sharvill
1029Alejandro C MorascaAustralia2025-05-19Commercial Press UNQUALIFIED7Elwin Sharvill
1030Aditya K FerenczFrance2025-06-03Truhlar And Truhlar Attys NEW93Onyama Limba
1031Murillo A RutaIndia2025-05-26Rangoni Of Florence UNQUALIFIED0Asiya Javayant
1032Rodrigues Z WhobreyRussia2025-05-26Morlong Associates NEW46Amy Elsner
1033Izzy D MorascaRussia2025-06-09Printing Dimensions NEGOTIATION20Elwin Sharvill
1034James D StensethAustralia2025-06-10Benton, John B Jr NEGOTIATION20Amy Elsner
1035Leon V ChuiRussia2025-06-02Dorl, James J Esq RENEWAL68Elwin Sharvill
1036Aruna W CaudyRussia2025-05-21Truhlar And Truhlar Attys NEW26Onyama Limba
1037Maria C MaletFrance2025-06-03Rousseaux, Michael Esq PROPOSAL56Ioni Bowcher
1038Darci M MaletBrazil2025-06-12Dorl, James J Esq PROPOSAL58Ioni Bowcher
1039Mujtaba T IturbideJapan2025-05-16Chanay, Jeffrey A Esq NEW4Bernardo Dominic
1040Darci H KuskoAustralia2025-05-24Rangoni Of Florence NEGOTIATION72Onyama Limba
1041Wickens Z AlbaresAustralia2025-05-16Morlong Associates NEGOTIATION53Ioni Bowcher
1042Misaki E GarufiJapan2025-05-18Chapman, Ross E Esq QUALIFIED83Amy Elsner
1043Isabel W CaldareraBrazil2025-05-17Rousseaux, Michael Esq RENEWAL91Onyama Limba
1044David R SlusarskiJapan2025-05-17Chapman, Ross E Esq RENEWAL0Asiya Javayant
1045Aditya F BowleyFrance2025-05-31Chapman, Ross E Esq QUALIFIED52Anna Fali
1046Johnson M PaprockiAustralia2025-06-07Feiner Bros RENEWAL97Asiya Javayant
1047Munro R RulapaughArgentina2025-05-24King, Christopher A Esq RENEWAL60Onyama Limba
1048Ashley X CampainBrazil2025-06-01Chemel, James L Cpa UNQUALIFIED69Xuxue Feng
1049Wickens J OstroskySpain2025-06-05King, Christopher A Esq NEGOTIATION11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Wickens Z FollerBrazilOnyama Limba UNQUALIFIED
Chavez K RoysterArgentinaIoni Bowcher RENEWAL
Octavia G FigeroaSpainAnna Fali UNQUALIFIED
Maisha T PerinItalyXuxue Feng QUALIFIED
Jefferson N SergiCanadaAmy Elsner RENEWAL
Greenwood M WaycottAustraliaAsiya Javayant NEGOTIATION
Maria K WieserCanadaOnyama Limba NEW
Alejandro Z CaldareraIndiaAmy Elsner PROPOSAL
Smith R OstroskyArgentinaBernardo Dominic UNQUALIFIED
Rodrigues G BowleyRussiaStephen Shaw RENEWAL
Misaki T KuskoBrazilOnyama Limba PROPOSAL
Maisha P DoeSpainIoni Bowcher RENEWAL
Aika A DoeFranceIvan Magalhaes QUALIFIED
Johnson A VenereCanadaAsiya Javayant UNQUALIFIED
Izzy M VocelkaJapanAnna Fali UNQUALIFIED
James P SergiArgentinaBernardo Dominic PROPOSAL
Leon P StockhamFranceAsiya Javayant NEW
Silvio E ChuiCanadaBernardo Dominic UNQUALIFIED
Ashley J BologniaGermanyXuxue Feng RENEWAL
Smith F DilliardGermanyIoni Bowcher NEGOTIATION
Jennifer O NestleFranceAsiya Javayant UNQUALIFIED
Emily M MorascaArgentinaXuxue Feng PROPOSAL
Maria N GillianGermanyAsiya Javayant QUALIFIED
Salvatore J CampainRussiaAnna Fali QUALIFIED
Leon M ShinkoItalyOnyama Limba PROPOSAL
Salvatore Y PoquetteCanadaIvan Magalhaes RENEWAL
Morrow L RimCanadaElwin Sharvill QUALIFIED
Francesco O RutaUnited KingdomAnna Fali UNQUALIFIED
Leja F NickaUnited KingdomAsiya Javayant NEW
Isabel L NestleFranceStephen Shaw NEW
Jeanfrancois G KuskoIndiaElwin Sharvill RENEWAL
Mayumi I BriddickAustraliaBernardo Dominic RENEWAL
David B TollnerCanadaIvan Magalhaes NEGOTIATION
Clifford A WhobreyBrazilBernardo Dominic RENEWAL
Salvatore E WaycottCanadaStephen Shaw QUALIFIED
Wickens Y BologniaIndiaIvan Magalhaes NEW
Murillo J StockhamAustraliaElwin Sharvill RENEWAL
Chavez N AmigonItalyIvan Magalhaes NEGOTIATION
Emily N MaletSpainStephen Shaw NEGOTIATION
Antonio Q RoysterSpainAmy Elsner UNQUALIFIED
Adams J SlusarskiJapanOnyama Limba NEW
Emily P PerinUnited KingdomAnna Fali NEW
Aika A StockhamGermanyElwin Sharvill NEGOTIATION
Francesco U RimCanadaIvan Magalhaes NEW
Francesco L GarufiAustraliaElwin Sharvill PROPOSAL
Alejandro L KolmetzIndiaStephen Shaw UNQUALIFIED
Mayumi X BowleySpainStephen Shaw NEGOTIATION
Mujtaba Y SergiItalyAsiya Javayant UNQUALIFIED
Sinclair F DarakjyRussiaXuxue Feng PROPOSAL
Kadeem I KuskoRussiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Cody J Sergi
Rodrigues C Marrier
Kaitlin T Bolognia
Adams W Amigon
James J Bolognia
Claire W Flosi
Murillo A Briddick
Stacey G Albares
Francesco O Kusko
Aika C Flosi
Wickens P Rim
Izzy H Darakjy
Clifford E Flosi
Mayumi F Ostrosky
Jones O Poquette
Silvio Z Wieser
Ashley H Campain
Wickens F Stockham
Kadeem R Gillian
Chavez S Maclead
Johnson J Royster
Ivar R Glick
Adams J Stenseth
Salvatore W Briddick
Rodrigues X Marrier
Misaki X Inouye
Emily S Ostrosky
Leja S Royster
Emily M Glick
Cody Q Morasca
Smith R Paprocki
Morrow Z Figeroa
Adams T Whobrey
Jones L Vocelka
Arvin T Royster
Izzy U Poquette
Darci K Figeroa
Arvin M Bowley
Murillo O Stockham
Octavia B Paprocki
James P Morasca
Greenwood Z Stenseth
Morrow Z Perin
Costa O Doe
Aditya Y Gillian
Faith R Dilliard
Greenwood S Rulapaugh
Jeanfrancois I Marrier
Wickens V Schemmer
Darci B Albares
IdCountryDate
1000Spain2025-05-26
1001France2025-06-13
1002Russia2025-05-20
1003Canada2025-05-30
1004India2025-05-18
1005Argentina2025-06-02
1006Italy2025-05-27
1007France2025-06-11
1008Russia2025-05-17
1009United Kingdom2025-05-30
1010Japan2025-05-16
1011Argentina2025-05-24
1012Canada2025-06-12
1013Argentina2025-06-10
1014Italy2025-06-11
1015Russia2025-05-28
1016Canada2025-06-11
1017France2025-06-13
1018Canada2025-05-19
1019France2025-06-11
1020Italy2025-05-17
1021Germany2025-06-04
1022Canada2025-06-10
1023Italy2025-05-29
1024United Kingdom2025-06-07
1025United Kingdom2025-06-01
1026Germany2025-05-27
1027United Kingdom2025-05-23
1028Germany2025-06-09
1029Australia2025-05-16
1030Russia2025-06-08
1031Russia2025-05-26
1032Germany2025-05-25
1033Japan2025-05-19
1034Italy2025-05-24
1035United Kingdom2025-05-17
1036Russia2025-05-18
1037Argentina2025-05-27
1038Germany2025-05-31
1039Russia2025-05-22
1040India2025-06-02
1041Germany2025-05-17
1042Canada2025-05-24
1043Brazil2025-05-17
1044Spain2025-05-25
1045France2025-05-26
1046Japan2025-05-16
1047Canada2025-05-23
1048Australia2025-05-28
1049United Kingdom2025-05-26

On-Demand Data

NameIdCountryDate
Silvio E Briddick1000United Kingdom2025-06-09
Johnson A Bolognia1001India2025-06-08
Misaki N Doe1002Japan2025-05-20
Isabel I Sergi1003Brazil2025-06-10
Claire S Wieser1004India2025-05-16
Jones I Malet1005Australia2025-05-26
David A Venere1006Russia2025-06-13
Jeanfrancois W Amigon1007India2025-06-04
Maria W Kolmetz1008Canada2025-06-03
Mujtaba E Ferencz1009Japan2025-06-14
Costa Z Amigon1010Germany2025-05-17
Arvin C Butt1011Australia2025-05-19
Leja G Ostrosky1012France2025-06-07
Misaki Q Sergi1013Brazil2025-05-27
Smith F Chui1014Spain2025-05-18
Smith Y Royster1015Canada2025-06-02
Leja T Garufi1016United Kingdom2025-05-29
Antonio W Stockham1017Germany2025-05-19
Silvio H Nestle1018Italy2025-06-02
Isabel Y Rulapaugh1019India2025-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria L ButtArgentinaIoni Bowcher NEW
Morrow G RoysterSpainOnyama Limba RENEWAL
Octavia H GillianSpainIoni Bowcher NEW
Adams I ChuiIndiaAmy Elsner NEW
Alejandro L SlusarskiJapanBernardo Dominic NEGOTIATION
Isabel E OldroydAustraliaAmy Elsner NEGOTIATION
Ashley L MacleadSpainStephen Shaw RENEWAL
Cody W SlusarskiIndiaAsiya Javayant NEW
Salvatore T StockhamRussiaOnyama Limba NEW
Mayumi M GillianSpainStephen Shaw PROPOSAL
Jeanfrancois X DilliardRussiaIoni Bowcher NEW
Kaitlin J CampainArgentinaIoni Bowcher UNQUALIFIED
Ashley X RimAustraliaXuxue Feng PROPOSAL
Darci A RutaSpainBernardo Dominic UNQUALIFIED
Wickens X PaprockiFranceAmy Elsner UNQUALIFIED
Alejandro W KuskoUnited KingdomAsiya Javayant RENEWAL
Johnson B SchemmerItalyOnyama Limba RENEWAL
Claire D DarakjyItalyStephen Shaw QUALIFIED
Aditya C GauchoAustraliaAmy Elsner NEGOTIATION
Ivar S DilliardRussiaOnyama Limba QUALIFIED
Misaki E GarufiIndiaElwin Sharvill PROPOSAL
Misaki G MorascaSpainBernardo Dominic NEW
Ivar Q IturbideJapanXuxue Feng NEGOTIATION
Jennifer C FerenczRussiaIoni Bowcher NEGOTIATION
Jennifer J InouyeRussiaXuxue Feng RENEWAL
Wickens A DoeArgentinaStephen Shaw NEGOTIATION
Octavia C MorascaCanadaAmy Elsner NEW
Mayumi B GauchoAustraliaOnyama Limba NEGOTIATION
Izzy T GauchoItalyBernardo Dominic QUALIFIED
Francesco D RoysterItalyXuxue Feng NEGOTIATION
Isabel Z FlosiItalyAsiya Javayant PROPOSAL
Clifford I SlusarskiCanadaAnna Fali QUALIFIED
Misaki M VocelkaItalyIvan Magalhaes NEW
Ivar L BriddickFranceXuxue Feng NEGOTIATION
Mujtaba Z NickaFranceAnna Fali QUALIFIED
Antonio N OstroskyAustraliaIvan Magalhaes NEGOTIATION
Chavez L RulapaughGermanyBernardo Dominic QUALIFIED
Stacey R KuskoUnited KingdomBernardo Dominic NEW
Darci H WaycottJapanElwin Sharvill QUALIFIED
Aditya C VocelkaSpainAsiya Javayant 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>