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
Rodrigues F RulapaughCanadaAsiya Javayant NEGOTIATION
Wickens L TollnerUnited KingdomXuxue Feng PROPOSAL
Cody C MaletArgentinaOnyama Limba QUALIFIED
Rodrigues K FigeroaUnited KingdomAsiya Javayant RENEWAL
Chavez O MaletItalyOnyama Limba PROPOSAL
Cody R MorascaJapanAmy Elsner PROPOSAL
Morrow K WieserItalyIoni Bowcher NEW
Sinclair W SchemmerJapanBernardo Dominic NEGOTIATION
Salvatore Y RoysterAustraliaAsiya Javayant NEW
Leja R NestleGermanyStephen Shaw NEW
Jeanfrancois O CaudyItalyXuxue Feng QUALIFIED
Claire B WaycottArgentinaAnna Fali PROPOSAL
Deepesh T FollerItalyOnyama Limba UNQUALIFIED
Darci Z OldroydCanadaBernardo Dominic UNQUALIFIED
Munro O MarrierRussiaAmy Elsner NEW
Kaitlin T NestleUnited KingdomAmy Elsner NEW
Murillo Z ChuiUnited KingdomStephen Shaw NEGOTIATION
Aditya O CaudyGermanyXuxue Feng UNQUALIFIED
Aditya J GlickIndiaElwin Sharvill RENEWAL
Morrow A KuskoFranceAsiya Javayant QUALIFIED
Isabel Z BriddickRussiaAsiya Javayant RENEWAL
Darci O PoquetteArgentinaAmy Elsner UNQUALIFIED
Misaki Q MacleadArgentinaBernardo Dominic QUALIFIED
Leja V CampainGermanyBernardo Dominic RENEWAL
Darci E GlickRussiaBernardo Dominic NEGOTIATION
David U InouyeAustraliaElwin Sharvill RENEWAL
Emily V MacleadAustraliaIvan Magalhaes NEGOTIATION
Jones E TollnerBrazilAnna Fali NEW
Costa J SlusarskiAustraliaAmy Elsner RENEWAL
Costa Y ShinkoRussiaBernardo Dominic UNQUALIFIED
Chavez V MaletIndiaIoni Bowcher UNQUALIFIED
Aditya B WhobreySpainIvan Magalhaes RENEWAL
Johnson C FollerGermanyIoni Bowcher PROPOSAL
Arvin V VocelkaSpainStephen Shaw NEW
Darci E DarakjyArgentinaElwin Sharvill QUALIFIED
Cody Y StensethGermanyStephen Shaw NEW
Izzy W MorascaCanadaElwin Sharvill QUALIFIED
Kadeem B CaldareraCanadaElwin Sharvill RENEWAL
Antonio J MaletGermanyXuxue Feng QUALIFIED
Faith R ShinkoArgentinaXuxue Feng NEGOTIATION
Costa G MorascaUnited KingdomXuxue Feng UNQUALIFIED
Arvin E WieserAustraliaAsiya Javayant PROPOSAL
Claire R BriddickRussiaAnna Fali RENEWAL
Izzy K RutaRussiaOnyama Limba QUALIFIED
Salvatore K KuskoBrazilAnna Fali UNQUALIFIED
Emily N RutaFranceXuxue Feng PROPOSAL
Francesco T GillianRussiaIvan Magalhaes PROPOSAL
Leon I VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo Q FollerJapanAnna Fali QUALIFIED
Smith F RimItalyIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez K IturbideArgentinaAmy Elsner QUALIFIED
Kadeem E InouyeArgentinaBernardo Dominic NEW
Deepesh X GillianCanadaAmy Elsner RENEWAL
Jeanfrancois M OldroydBrazilIvan Magalhaes PROPOSAL
Mujtaba O GarufiItalyElwin Sharvill RENEWAL
Stacey R SlusarskiIndiaIoni Bowcher UNQUALIFIED
Johnson F FerenczFranceXuxue Feng NEGOTIATION
Costa T GillianBrazilElwin Sharvill QUALIFIED
Silvio C SaylorsAustraliaStephen Shaw NEW
Leja J ShinkoArgentinaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones V TollnerJapan2026-06-11Feltz Printing Service PROPOSAL48Stephen Shaw
1001Smith H PoquetteCanada2026-06-27King, Christopher A Esq PROPOSAL12Onyama Limba
1002Deepesh B PoquetteJapan2026-06-11Rangoni Of Florence UNQUALIFIED68Ivan Magalhaes
1003Silvio J MacleadBrazil2026-06-25King, Christopher A Esq UNQUALIFIED21Anna Fali
1004Silvio N WhobreyArgentina2026-06-23Printing Dimensions QUALIFIED69Amy Elsner
1005Silvio O VenereBrazil2026-07-05Commercial Press RENEWAL96Xuxue Feng
1006Octavia L VenereCanada2026-06-13Truhlar And Truhlar Attys QUALIFIED91Anna Fali
1007Cody Q ButtSpain2026-06-23Chanay, Jeffrey A Esq NEW46Bernardo Dominic
1008Aruna Q WieserIndia2026-06-16Feiner Bros UNQUALIFIED9Ioni Bowcher
1009Kaitlin J OstroskyJapan2026-06-17King, Christopher A Esq PROPOSAL27Anna Fali
1010Izzy C StockhamGermany2026-06-30King, Christopher A Esq PROPOSAL61Ioni Bowcher
1011Jennifer B RimRussia2026-06-30Benton, John B Jr RENEWAL63Anna Fali
1012Murillo P SaylorsGermany2026-06-12Feltz Printing Service NEGOTIATION2Asiya Javayant
1013Murillo F DarakjySpain2026-06-22Rangoni Of Florence UNQUALIFIED11Bernardo Dominic
1014Mayumi I GlickJapan2026-06-20Chanay, Jeffrey A Esq QUALIFIED91Ioni Bowcher
1015Misaki R ChuiAustralia2026-06-16Rousseaux, Michael Esq RENEWAL87Anna Fali
1016Faith E WaycottAustralia2026-07-06Printing Dimensions UNQUALIFIED65Stephen Shaw
1017Emily T GauchoUnited Kingdom2026-06-17Benton, John B Jr UNQUALIFIED93Elwin Sharvill
1018Izzy M FlosiJapan2026-06-26Chapman, Ross E Esq RENEWAL54Anna Fali
1019Alejandro X PerinArgentina2026-06-14Morlong Associates NEW73Ioni Bowcher
1020Mujtaba V MaletSpain2026-06-27Commercial Press NEGOTIATION81Bernardo Dominic
1021Nicolas P FerenczRussia2026-06-11Dorl, James J Esq PROPOSAL17Stephen Shaw
1022Francesco L CampainFrance2026-07-06Feiner Bros NEW75Asiya Javayant
1023Rodrigues U SergiSpain2026-06-19Chemel, James L Cpa NEW47Amy Elsner
1024Ricardo L ShinkoJapan2026-06-25King, Christopher A Esq PROPOSAL76Onyama Limba
1025Nicolas S GillianItaly2026-06-24Rousseaux, Michael Esq PROPOSAL94Anna Fali
1026Morrow C WaycottAustralia2026-06-21Printing Dimensions QUALIFIED19Asiya Javayant
1027Jeanfrancois U GarufiUnited Kingdom2026-07-03Printing Dimensions PROPOSAL77Elwin Sharvill
1028Kadeem W SergiIndia2026-06-12Chemel, James L Cpa RENEWAL58Asiya Javayant
1029Clifford M OldroydIndia2026-06-14Benton, John B Jr PROPOSAL63Onyama Limba
1030Jeanfrancois C WaycottItaly2026-07-07Buckley Miller Wright RENEWAL48Asiya Javayant
1031Antonio X NickaItaly2026-07-02Morlong Associates PROPOSAL30Ivan Magalhaes
1032Francesco K SlusarskiJapan2026-07-01Feiner Bros NEGOTIATION6Asiya Javayant
1033Murillo X MarrierJapan2026-06-15Benton, John B Jr QUALIFIED44Bernardo Dominic
1034Misaki L WaycottFrance2026-06-20Printing Dimensions QUALIFIED71Stephen Shaw
1035Misaki U FlosiArgentina2026-07-08Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1036Jefferson Q CampainRussia2026-06-14Dorl, James J Esq NEGOTIATION85Anna Fali
1037Costa S FigeroaAustralia2026-07-04Feltz Printing Service PROPOSAL12Stephen Shaw
1038Ricardo Z OldroydFrance2026-06-12Dorl, James J Esq NEGOTIATION49Onyama Limba
1039Octavia Y AlbaresSpain2026-06-10Truhlar And Truhlar Attys NEW0Stephen Shaw
1040Julie Z AmigonAustralia2026-06-25Feltz Printing Service NEGOTIATION42Onyama Limba
1041Ivar K GillianJapan2026-07-06King, Christopher A Esq NEGOTIATION62Ioni Bowcher
1042Aditya O RoysterAustralia2026-07-07Commercial Press RENEWAL82Elwin Sharvill
1043Aika S MarrierUnited Kingdom2026-06-12Chapman, Ross E Esq UNQUALIFIED82Anna Fali
1044Maria M WieserAustralia2026-06-16Rangoni Of Florence RENEWAL27Stephen Shaw
1045Kaitlin L PaprockiJapan2026-06-26Chapman, Ross E Esq QUALIFIED86Ioni Bowcher
1046Maisha E KolmetzSpain2026-06-21Morlong Associates NEGOTIATION16Elwin Sharvill
1047Aruna D GillianCanada2026-06-26Chapman, Ross E Esq QUALIFIED96Ivan Magalhaes
1048Stacey R BriddickItaly2026-07-05Feiner Bros NEGOTIATION22Onyama Limba
1049Deepesh X GauchoArgentina2026-07-05Chemel, James L Cpa NEW6Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Stacey G KuskoJapanIoni Bowcher RENEWAL
Alejandro K StensethSpainAsiya Javayant NEW
Sinclair X TollnerBrazilAmy Elsner PROPOSAL
Adams Q CampainJapanBernardo Dominic PROPOSAL
Faith F AmigonGermanyXuxue Feng RENEWAL
Julie L StockhamJapanIvan Magalhaes NEW
Misaki G VenereIndiaElwin Sharvill NEGOTIATION
Aruna O DilliardRussiaElwin Sharvill RENEWAL
Aruna R AmigonRussiaIoni Bowcher QUALIFIED
Misaki J NickaItalyIoni Bowcher PROPOSAL
Aditya Q StensethFranceAsiya Javayant QUALIFIED
Smith A VocelkaCanadaBernardo Dominic NEGOTIATION
Ivar I BriddickCanadaElwin Sharvill PROPOSAL
Faith Z WieserUnited KingdomElwin Sharvill QUALIFIED
Darci I RoysterRussiaAsiya Javayant RENEWAL
Leon J AmigonRussiaBernardo Dominic QUALIFIED
Misaki D InouyeRussiaIoni Bowcher RENEWAL
Alejandro I WieserItalyIvan Magalhaes NEW
Izzy W WieserUnited KingdomOnyama Limba QUALIFIED
Tony K NestleJapanIoni Bowcher UNQUALIFIED
Greenwood I BriddickUnited KingdomAsiya Javayant PROPOSAL
Kaitlin K PerinSpainAmy Elsner NEW
Tony T FollerRussiaElwin Sharvill RENEWAL
Izzy V FerenczBrazilIvan Magalhaes PROPOSAL
Stacey J WieserGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois Z SchemmerRussiaIoni Bowcher QUALIFIED
Johnson K SlusarskiItalyOnyama Limba UNQUALIFIED
Morrow S SergiUnited KingdomStephen Shaw UNQUALIFIED
Nicolas Y ChuiRussiaIvan Magalhaes UNQUALIFIED
Morrow N WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Johnson J IturbideSpainOnyama Limba UNQUALIFIED
Darci N SlusarskiCanadaOnyama Limba PROPOSAL
James E ButtIndiaBernardo Dominic UNQUALIFIED
Mayumi N SlusarskiCanadaIoni Bowcher NEW
Misaki S OldroydFranceBernardo Dominic UNQUALIFIED
Misaki N WhobreyItalyOnyama Limba PROPOSAL
Aika R GillianArgentinaIoni Bowcher RENEWAL
Ricardo W MaletJapanIoni Bowcher NEGOTIATION
Johnson L RoysterFranceAmy Elsner UNQUALIFIED
Julie Q StockhamUnited KingdomStephen Shaw NEGOTIATION
Julie B VocelkaFranceIvan Magalhaes QUALIFIED
James P StockhamJapanIvan Magalhaes NEW
Antonio Q SergiIndiaAsiya Javayant QUALIFIED
Julie B IturbideCanadaAmy Elsner PROPOSAL
Jeanfrancois N BowleyIndiaAmy Elsner NEGOTIATION
Alejandro B StockhamArgentinaElwin Sharvill PROPOSAL
Jeanfrancois J GarufiJapanAnna Fali PROPOSAL
Tony X FerenczIndiaOnyama Limba UNQUALIFIED
Misaki Y DarakjyAustraliaStephen Shaw NEW
Greenwood P ChuiSpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Chavez L Flosi
Smith G Oldroyd
Kaitlin Z Nestle
Alejandro N Foller
Smith Z Caldarera
James J Darakjy
Adams O Whobrey
Clifford K Vocelka
Alejandro W Gaucho
Juan I Amigon
Aika V Oldroyd
Antonio R Marrier
Jones T Caudy
Aika W Malet
Tony X Dilliard
Izzy V Kolmetz
Rodrigues O Morasca
Faith J Garufi
Salvatore Y Foller
Juan S Amigon
Octavia F Glick
Leja B Figeroa
Johnson D Bolognia
Deepesh W Marrier
Adams N Dilliard
Jefferson L Albares
Faith M Ostrosky
Sinclair C Albares
Silvio M Whobrey
Munro M Kusko
Clifford T Oldroyd
Greenwood Y Amigon
Juan B Chui
Kadeem O Schemmer
Juan T Figeroa
Misaki D Ferencz
Morrow N Venere
James P Waycott
Adams K Gaucho
Cody A Caldarera
James L Stenseth
Emily I Royster
Aruna R Inouye
Greenwood S Glick
Silvio S Tollner
Jones B Rulapaugh
Mayumi E Marrier
Costa P Caudy
Rodrigues X Ferencz
Chavez U Marrier
IdCountryDate
1000Italy2026-06-21
1001France2026-06-30
1002United Kingdom2026-06-18
1003Australia2026-06-30
1004Germany2026-06-28
1005France2026-07-03
1006Spain2026-06-24
1007Japan2026-07-05
1008Italy2026-06-18
1009Australia2026-07-04
1010India2026-07-03
1011Brazil2026-07-05
1012Russia2026-07-05
1013Canada2026-06-18
1014Spain2026-06-14
1015Japan2026-06-20
1016Canada2026-06-20
1017France2026-07-02
1018Russia2026-06-20
1019United Kingdom2026-07-07
1020India2026-06-18
1021Australia2026-06-21
1022Germany2026-06-15
1023Germany2026-07-01
1024France2026-06-11
1025India2026-06-10
1026France2026-06-28
1027Germany2026-06-09
1028Japan2026-06-30
1029Spain2026-07-05
1030Australia2026-07-03
1031Russia2026-06-11
1032Germany2026-06-19
1033India2026-07-06
1034Australia2026-06-12
1035India2026-06-13
1036Spain2026-06-17
1037Germany2026-07-07
1038United Kingdom2026-07-04
1039Germany2026-07-06
1040France2026-06-28
1041Canada2026-06-22
1042Spain2026-06-17
1043Australia2026-06-12
1044Canada2026-06-24
1045Spain2026-07-06
1046France2026-07-08
1047Brazil2026-06-11
1048India2026-06-11
1049Australia2026-06-30

On-Demand Data

NameIdCountryDate
Faith J Figeroa1000Japan2026-07-05
Wickens D Perin1001France2026-07-08
Adams R Glick1002Australia2026-06-25
Greenwood S Campain1003Argentina2026-07-07
Mujtaba J Caudy1004France2026-06-20
Juan J Oldroyd1005Japan2026-06-28
Julie Q Slusarski1006Argentina2026-06-13
Antonio G Briddick1007Japan2026-06-13
Jeanfrancois U Vocelka1008France2026-06-27
Jones C Ferencz1009France2026-06-21
Nicolas M Vocelka1010India2026-06-11
Wickens P Gillian1011Russia2026-06-14
Emily V Sergi1012France2026-06-25
Munro P Schemmer1013India2026-06-28
Ricardo J Gaucho1014United Kingdom2026-06-19
Francesco A Albares1015Australia2026-06-15
Antonio G Caldarera1016Australia2026-06-26
Darci L Maclead1017United Kingdom2026-06-22
James Q Dilliard1018Australia2026-06-12
Murillo X Ruta1019Russia2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro Z RutaIndiaBernardo Dominic NEW
Isabel U CampainFranceAsiya Javayant QUALIFIED
Rodrigues G FlosiUnited KingdomOnyama Limba QUALIFIED
Sinclair U BriddickItalyIvan Magalhaes PROPOSAL
Salvatore W RimBrazilAnna Fali NEGOTIATION
Octavia N BowleyItalyXuxue Feng NEW
Claire M CaldareraSpainOnyama Limba QUALIFIED
Adams R WaycottBrazilIvan Magalhaes NEGOTIATION
Maria P WieserUnited KingdomIoni Bowcher NEGOTIATION
Costa L FigeroaIndiaElwin Sharvill PROPOSAL
Stacey T SchemmerCanadaIoni Bowcher PROPOSAL
Leja T DilliardBrazilAmy Elsner RENEWAL
Francesco R RimArgentinaOnyama Limba QUALIFIED
Munro Q SlusarskiGermanyBernardo Dominic UNQUALIFIED
Antonio D WhobreyFranceBernardo Dominic RENEWAL
Aika T ButtFranceAnna Fali NEW
David E SaylorsCanadaXuxue Feng PROPOSAL
Salvatore X GarufiGermanyIvan Magalhaes UNQUALIFIED
Francesco Y BowleySpainElwin Sharvill RENEWAL
Cody Z CaudyUnited KingdomAnna Fali RENEWAL
Arvin S GlickRussiaAnna Fali UNQUALIFIED
Aditya L MorascaArgentinaAsiya Javayant UNQUALIFIED
Chavez H CaldareraFranceBernardo Dominic UNQUALIFIED
James L MarrierCanadaIoni Bowcher UNQUALIFIED
Darci B InouyeCanadaAmy Elsner RENEWAL
Octavia D BriddickAustraliaIoni Bowcher PROPOSAL
Octavia Q DoeBrazilOnyama Limba QUALIFIED
Tony Y CaldareraRussiaOnyama Limba NEW
Arvin S ButtAustraliaAmy Elsner RENEWAL
Misaki U NestleFranceAmy Elsner QUALIFIED
Wickens A AlbaresSpainIvan Magalhaes NEW
Jennifer A DoeFranceStephen Shaw QUALIFIED
Kaitlin D BriddickItalyIoni Bowcher RENEWAL
Aditya M BriddickSpainAsiya Javayant PROPOSAL
Johnson O SergiJapanXuxue Feng UNQUALIFIED
Aditya D ChuiUnited KingdomBernardo Dominic NEW
Isabel N CaudyGermanyStephen Shaw NEW
Leja O WieserGermanyAnna Fali QUALIFIED
Murillo Q StockhamBrazilStephen Shaw RENEWAL
Ashley Z ButtJapanStephen Shaw PROPOSAL

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