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
Kaitlin A CaldareraSpainElwin Sharvill PROPOSAL
Deepesh B RoysterFranceAmy Elsner QUALIFIED
Ivar P MarrierRussiaStephen Shaw RENEWAL
Kadeem J SlusarskiCanadaOnyama Limba PROPOSAL
Ashley M GlickAustraliaStephen Shaw PROPOSAL
Ashley T PoquetteFranceBernardo Dominic NEW
Deepesh M VenereGermanyIoni Bowcher NEW
Costa I WaycottItalyIvan Magalhaes NEW
Deepesh V DarakjyIndiaOnyama Limba QUALIFIED
Silvio X PaprockiBrazilAsiya Javayant RENEWAL
Jones X RimItalyIoni Bowcher NEGOTIATION
Kadeem R MorascaBrazilElwin Sharvill QUALIFIED
Emily E FollerUnited KingdomIvan Magalhaes PROPOSAL
Clifford C CaudyIndiaElwin Sharvill QUALIFIED
Rodrigues N CaudyJapanXuxue Feng RENEWAL
Kaitlin Z RimAustraliaAmy Elsner NEW
Jeanfrancois U NickaIndiaStephen Shaw NEW
Jennifer E PerinSpainElwin Sharvill UNQUALIFIED
Sinclair Z TollnerUnited KingdomAmy Elsner RENEWAL
Alejandro G NickaRussiaXuxue Feng QUALIFIED
Aruna E DoeBrazilAnna Fali UNQUALIFIED
Kaitlin N FollerRussiaElwin Sharvill QUALIFIED
Ricardo N WaycottFranceXuxue Feng RENEWAL
Ashley G OstroskyFranceOnyama Limba NEGOTIATION
Arvin J CaldareraIndiaAnna Fali QUALIFIED
Ashley K OldroydSpainIoni Bowcher QUALIFIED
Nicolas R RoysterSpainElwin Sharvill RENEWAL
David G MorascaUnited KingdomIoni Bowcher RENEWAL
Jones F RulapaughAustraliaAsiya Javayant UNQUALIFIED
Ivar K AmigonBrazilElwin Sharvill NEGOTIATION
Cody C IturbideJapanOnyama Limba NEGOTIATION
Murillo X NickaRussiaStephen Shaw UNQUALIFIED
Ashley U InouyeArgentinaAnna Fali PROPOSAL
James Q VenereArgentinaAsiya Javayant UNQUALIFIED
Misaki P BologniaJapanAnna Fali QUALIFIED
Ivar L ChuiSpainAsiya Javayant UNQUALIFIED
Juan D NickaFranceIvan Magalhaes RENEWAL
Antonio R StockhamGermanyElwin Sharvill NEW
Arvin I AlbaresJapanStephen Shaw UNQUALIFIED
Kaitlin U AmigonCanadaOnyama Limba QUALIFIED
Cody G GarufiAustraliaStephen Shaw NEGOTIATION
Maisha T MaletArgentinaStephen Shaw PROPOSAL
Jones F WieserArgentinaBernardo Dominic QUALIFIED
Silvio A IturbideItalyIvan Magalhaes UNQUALIFIED
Clifford L VenereCanadaAmy Elsner PROPOSAL
Mayumi U DarakjyCanadaXuxue Feng PROPOSAL
Wickens Z NickaCanadaAsiya Javayant PROPOSAL
Aruna A ShinkoBrazilElwin Sharvill QUALIFIED
David S DilliardCanadaStephen Shaw RENEWAL
Alejandro G GarufiCanadaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel G PerinSpainIvan Magalhaes PROPOSAL
Jefferson H DarakjySpainIvan Magalhaes QUALIFIED
Clifford R FollerUnited KingdomBernardo Dominic UNQUALIFIED
Stacey L WhobreyAustraliaIoni Bowcher RENEWAL
Tony U CaldareraUnited KingdomAnna Fali PROPOSAL
Tony Z MarrierBrazilStephen Shaw PROPOSAL
Wickens H WaycottJapanBernardo Dominic NEW
Ashley F MaletBrazilAsiya Javayant RENEWAL
Aika G NickaSpainIoni Bowcher UNQUALIFIED
Deepesh J SaylorsUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford G WhobreyArgentina2026-06-08Chanay, Jeffrey A Esq NEW78Stephen Shaw
1001James A ShinkoGermany2026-06-09Printing Dimensions NEW23Onyama Limba
1002Greenwood U MaletJapan2026-06-21Morlong Associates PROPOSAL25Asiya Javayant
1003Emily D PerinCanada2026-06-07Dorl, James J Esq RENEWAL42Ivan Magalhaes
1004Kaitlin X OldroydRussia2026-07-02Morlong Associates NEGOTIATION73Anna Fali
1005Ricardo X CaldareraJapan2026-06-29Chanay, Jeffrey A Esq QUALIFIED49Anna Fali
1006Jones P VenereAustralia2026-06-12Benton, John B Jr NEGOTIATION25Amy Elsner
1007Isabel H KuskoBrazil2026-06-11Commercial Press UNQUALIFIED15Xuxue Feng
1008Jeanfrancois J StockhamRussia2026-06-24Rangoni Of Florence UNQUALIFIED19Xuxue Feng
1009Clifford V StensethGermany2026-06-20Dorl, James J Esq QUALIFIED86Amy Elsner
1010Nicolas K OstroskySpain2026-06-12Truhlar And Truhlar Attys NEGOTIATION34Asiya Javayant
1011Faith M GlickFrance2026-06-26Feiner Bros RENEWAL47Amy Elsner
1012Chavez X KuskoItaly2026-06-12King, Christopher A Esq NEW3Ivan Magalhaes
1013Ashley F OstroskyRussia2026-06-10Rangoni Of Florence NEGOTIATION4Amy Elsner
1014Jones V StensethJapan2026-06-14Chemel, James L Cpa UNQUALIFIED40Ivan Magalhaes
1015Chavez D GillianCanada2026-06-22Feiner Bros RENEWAL64Bernardo Dominic
1016Leja X MorascaSpain2026-06-05Rousseaux, Michael Esq PROPOSAL14Ioni Bowcher
1017Ricardo V FollerRussia2026-06-07Dorl, James J Esq PROPOSAL53Amy Elsner
1018Faith Q DilliardFrance2026-06-06Chapman, Ross E Esq NEGOTIATION35Elwin Sharvill
1019Clifford Y BowleyJapan2026-06-21Rousseaux, Michael Esq UNQUALIFIED47Asiya Javayant
1020Wickens F BriddickArgentina2026-06-03Commercial Press PROPOSAL92Stephen Shaw
1021Maisha P DarakjyJapan2026-06-08Commercial Press NEW13Elwin Sharvill
1022Aika L BriddickAustralia2026-06-09Benton, John B Jr UNQUALIFIED90Ivan Magalhaes
1023Leon I FigeroaGermany2026-07-01Chapman, Ross E Esq NEGOTIATION59Asiya Javayant
1024Julie B DarakjySpain2026-06-16Rousseaux, Michael Esq NEGOTIATION35Xuxue Feng
1025Deepesh I NestleItaly2026-06-19Feltz Printing Service NEGOTIATION9Ivan Magalhaes
1026Ashley R ShinkoItaly2026-06-24Feiner Bros UNQUALIFIED64Onyama Limba
1027Emily I GauchoGermany2026-06-30Commercial Press QUALIFIED9Xuxue Feng
1028Kadeem M StockhamCanada2026-06-26Benton, John B Jr NEW89Ioni Bowcher
1029Munro S AlbaresRussia2026-06-07Rangoni Of Florence RENEWAL24Xuxue Feng
1030Jones X ShinkoUnited Kingdom2026-06-26Feltz Printing Service NEGOTIATION16Anna Fali
1031Ivar E GillianRussia2026-06-21Benton, John B Jr PROPOSAL12Ioni Bowcher
1032Mujtaba N BowleyCanada2026-06-26Chapman, Ross E Esq RENEWAL53Onyama Limba
1033Deepesh Y SaylorsAustralia2026-06-29Buckley Miller Wright NEGOTIATION59Bernardo Dominic
1034Jones M RulapaughAustralia2026-06-12Feltz Printing Service NEGOTIATION14Onyama Limba
1035Ricardo G PoquetteBrazil2026-06-07Benton, John B Jr NEW98Bernardo Dominic
1036Aditya A StensethJapan2026-06-10Chanay, Jeffrey A Esq NEW91Amy Elsner
1037Maisha N DarakjySpain2026-06-12Morlong Associates NEGOTIATION12Xuxue Feng
1038Stacey P StensethCanada2026-07-02Printing Dimensions UNQUALIFIED86Stephen Shaw
1039Mujtaba S WieserIndia2026-06-18Rousseaux, Michael Esq UNQUALIFIED60Onyama Limba
1040Johnson I StensethItaly2026-06-05Chanay, Jeffrey A Esq PROPOSAL65Onyama Limba
1041Ashley B MacleadGermany2026-06-27Rangoni Of Florence RENEWAL48Asiya Javayant
1042Chavez N NestleCanada2026-06-20Feltz Printing Service PROPOSAL27Amy Elsner
1043Jones G StensethRussia2026-06-30Chemel, James L Cpa RENEWAL28Asiya Javayant
1044Mujtaba L DilliardIndia2026-07-01Dorl, James J Esq NEGOTIATION12Bernardo Dominic
1045Tony L ChuiFrance2026-06-24Morlong Associates UNQUALIFIED93Ivan Magalhaes
1046Mayumi O WieserGermany2026-06-25Commercial Press PROPOSAL73Ivan Magalhaes
1047Aditya R WhobreyItaly2026-06-27Morlong Associates PROPOSAL19Xuxue Feng
1048Ivar T FerenczGermany2026-06-14Rangoni Of Florence NEGOTIATION42Anna Fali
1049Kaitlin D IturbideJapan2026-06-10Rousseaux, Michael Esq QUALIFIED35Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leja X DarakjyFranceElwin Sharvill UNQUALIFIED
Greenwood D FlosiBrazilStephen Shaw RENEWAL
Isabel Z MarrierArgentinaElwin Sharvill RENEWAL
Maria U DilliardRussiaXuxue Feng NEGOTIATION
Arvin C SlusarskiJapanAnna Fali QUALIFIED
Faith W FollerAustraliaAsiya Javayant NEGOTIATION
Munro F PaprockiIndiaBernardo Dominic NEW
Kadeem Y OstroskyUnited KingdomAmy Elsner NEW
Murillo D VocelkaIndiaBernardo Dominic RENEWAL
Isabel S GauchoSpainIoni Bowcher UNQUALIFIED
David B RutaGermanyAmy Elsner RENEWAL
Antonio Q BriddickBrazilAnna Fali NEGOTIATION
Alejandro A MarrierIndiaElwin Sharvill NEW
Jennifer F DarakjyBrazilOnyama Limba RENEWAL
Ashley P PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Emily S InouyeCanadaIoni Bowcher PROPOSAL
Juan P ButtAustraliaStephen Shaw RENEWAL
Ricardo L AmigonAustraliaAnna Fali QUALIFIED
Cody P FollerItalyAsiya Javayant PROPOSAL
Rodrigues A MaletAustraliaStephen Shaw NEGOTIATION
Nicolas T MacleadArgentinaOnyama Limba UNQUALIFIED
Rodrigues A WhobreyFranceElwin Sharvill NEW
David U WhobreyAustraliaXuxue Feng QUALIFIED
Faith X DilliardCanadaAnna Fali NEW
Rodrigues Z IturbideUnited KingdomAnna Fali PROPOSAL
Tony A VenereAustraliaIvan Magalhaes RENEWAL
James S DarakjyArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois S DilliardUnited KingdomAsiya Javayant PROPOSAL
Aditya R KolmetzRussiaStephen Shaw NEW
Costa R PerinFranceOnyama Limba NEGOTIATION
Adams M KolmetzBrazilElwin Sharvill RENEWAL
Silvio P GillianAustraliaXuxue Feng NEW
Misaki E BowleyFranceElwin Sharvill UNQUALIFIED
Ashley L BowleyItalyAsiya Javayant RENEWAL
Arvin J DarakjyIndiaElwin Sharvill NEGOTIATION
Darci G GauchoItalyBernardo Dominic NEGOTIATION
James P PoquetteAustraliaAmy Elsner UNQUALIFIED
Misaki B WieserArgentinaStephen Shaw QUALIFIED
Jennifer H CaudyBrazilStephen Shaw UNQUALIFIED
Murillo O PaprockiAustraliaBernardo Dominic RENEWAL
Antonio B MaletArgentinaAnna Fali QUALIFIED
Arvin W PoquetteJapanAnna Fali QUALIFIED
Octavia S MorascaBrazilXuxue Feng QUALIFIED
Johnson N VenereRussiaIoni Bowcher NEW
Julie K FerenczRussiaAmy Elsner NEGOTIATION
Costa T CaldareraGermanyAmy Elsner NEGOTIATION
Murillo G RoysterAustraliaAsiya Javayant RENEWAL
Nicolas G AlbaresJapanIoni Bowcher QUALIFIED
Octavia G IturbideRussiaOnyama Limba PROPOSAL
Deepesh B GlickJapanAnna Fali RENEWAL
Frozen Columns
Name
Johnson A Tollner
Faith D Kolmetz
Ricardo I Stenseth
Chavez Q Amigon
Greenwood V Morasca
Jones D Flosi
Juan K Bowley
James S Bolognia
Clifford K Bolognia
Jeanfrancois D Amigon
Sinclair X Perin
Mayumi G Waycott
Leja L Malet
Jefferson N Albares
Aruna V Venere
Jones B Darakjy
Stacey P Briddick
Octavia B Vocelka
Kadeem I Nicka
Murillo R Gaucho
Morrow X Waycott
Francesco M Glick
Kadeem H Vocelka
Mayumi G Foller
Silvio U Kolmetz
Octavia P Doe
Izzy P Bolognia
Munro S Briddick
Darci X Darakjy
Francesco O Marrier
Arvin I Campain
Costa A Rulapaugh
Costa T Garufi
Greenwood I Stenseth
Chavez T Briddick
Faith N Butt
Aika Q Figeroa
Emily P Gillian
Leon N Kolmetz
Ricardo T Perin
Munro L Vocelka
Smith C Stockham
Sinclair J Venere
Wickens V Oldroyd
Antonio T Gaucho
David U Rim
Antonio I Whobrey
Mujtaba P Ruta
Costa E Wieser
Murillo R Whobrey
IdCountryDate
1000Australia2026-06-09
1001India2026-06-14
1002France2026-06-27
1003Argentina2026-06-16
1004Italy2026-06-15
1005Spain2026-07-02
1006Russia2026-06-05
1007Australia2026-06-10
1008Brazil2026-06-28
1009Australia2026-06-26
1010Russia2026-06-07
1011France2026-06-21
1012United Kingdom2026-06-22
1013Canada2026-06-15
1014India2026-06-13
1015Russia2026-06-29
1016Argentina2026-06-18
1017France2026-06-14
1018Russia2026-06-08
1019United Kingdom2026-06-25
1020Italy2026-06-28
1021Brazil2026-06-08
1022Russia2026-06-17
1023Australia2026-06-27
1024Australia2026-06-17
1025Germany2026-06-14
1026Spain2026-06-13
1027Russia2026-06-15
1028Japan2026-06-30
1029Japan2026-06-27
1030Spain2026-06-18
1031Argentina2026-06-05
1032Canada2026-06-16
1033France2026-06-28
1034France2026-06-30
1035Germany2026-06-15
1036Germany2026-06-07
1037Russia2026-06-27
1038Australia2026-06-12
1039Russia2026-06-17
1040Australia2026-06-18
1041Brazil2026-06-06
1042Canada2026-06-22
1043Spain2026-06-26
1044Japan2026-06-03
1045Spain2026-06-12
1046Argentina2026-06-17
1047Canada2026-06-30
1048Japan2026-06-11
1049Italy2026-06-18

On-Demand Data

NameIdCountryDate
Stacey F Rim1000Spain2026-06-12
Jennifer M Waycott1001France2026-06-07
Juan E Maclead1002Australia2026-07-02
Ashley I Venere1003Spain2026-06-29
Misaki G Oldroyd1004Australia2026-07-01
Cody B Malet1005Canada2026-06-07
Chavez Q Foller1006Australia2026-07-01
Faith V Shinko1007Russia2026-06-13
Ricardo I Kusko1008Italy2026-06-03
Ivar Z Saylors1009India2026-06-10
Misaki J Flosi1010Germany2026-06-26
Leja J Perin1011Japan2026-06-03
Izzy E Tollner1012United Kingdom2026-06-06
Clifford P Ostrosky1013Italy2026-06-10
Leon Y Bolognia1014Argentina2026-07-02
Kaitlin N Royster1015Australia2026-06-17
Kaitlin B Gillian1016India2026-06-19
Salvatore E Inouye1017Australia2026-06-14
Cody P Campain1018Australia2026-06-26
Munro C Glick1019Brazil2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia V MaletCanadaBernardo Dominic UNQUALIFIED
Jennifer G InouyeRussiaIvan Magalhaes RENEWAL
Wickens C WaycottBrazilAmy Elsner NEW
Adams D InouyeGermanyIoni Bowcher NEGOTIATION
James D WaycottCanadaStephen Shaw RENEWAL
Jennifer J SchemmerSpainAsiya Javayant NEGOTIATION
Mayumi K DoeGermanyOnyama Limba QUALIFIED
Jennifer Q MarrierSpainIoni Bowcher RENEWAL
Alejandro Z FerenczJapanOnyama Limba NEGOTIATION
Arvin Y RoysterGermanyOnyama Limba RENEWAL
Jeanfrancois P StensethArgentinaAmy Elsner UNQUALIFIED
Aditya K RoysterBrazilBernardo Dominic PROPOSAL
Sinclair I GlickRussiaElwin Sharvill NEW
Aruna L DoeIndiaAmy Elsner NEW
James I RimBrazilIoni Bowcher NEGOTIATION
Jefferson E ChuiBrazilXuxue Feng NEW
Smith P TollnerFranceAsiya Javayant NEW
Kaitlin P FerenczArgentinaXuxue Feng QUALIFIED
Leon C NestleArgentinaElwin Sharvill UNQUALIFIED
Smith E CaudyItalyOnyama Limba QUALIFIED
Isabel X CampainAustraliaBernardo Dominic PROPOSAL
Jeanfrancois A OstroskyArgentinaElwin Sharvill PROPOSAL
James B FerenczAustraliaIoni Bowcher NEW
James P CaldareraItalyOnyama Limba UNQUALIFIED
Johnson U BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Morrow N RutaAustraliaOnyama Limba UNQUALIFIED
Isabel M DarakjyBrazilIvan Magalhaes RENEWAL
Julie J StockhamArgentinaAnna Fali NEGOTIATION
Jeanfrancois Q InouyeFranceStephen Shaw QUALIFIED
Leon P CampainRussiaAsiya Javayant PROPOSAL
Morrow F SchemmerRussiaAsiya Javayant PROPOSAL
Ricardo J NestleRussiaElwin Sharvill PROPOSAL
Munro N TollnerFranceAnna Fali NEW
Claire E PoquetteJapanIoni Bowcher UNQUALIFIED
Francesco T KolmetzArgentinaIvan Magalhaes NEW
Murillo Z MaletBrazilBernardo Dominic QUALIFIED
Greenwood P MacleadAustraliaAnna Fali QUALIFIED
Isabel G VenereCanadaBernardo Dominic UNQUALIFIED
Aditya M DarakjyItalyXuxue Feng NEW
Jones C FigeroaUnited KingdomXuxue 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>