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
Maisha Y AlbaresRussiaAsiya Javayant RENEWAL
James A NestleFranceAsiya Javayant QUALIFIED
Aditya N BriddickGermanyIvan Magalhaes NEW
Aruna Y BowleySpainStephen Shaw NEGOTIATION
Claire R DarakjyArgentinaAsiya Javayant RENEWAL
Morrow I InouyeArgentinaIoni Bowcher QUALIFIED
Faith U SergiIndiaAmy Elsner NEGOTIATION
Costa H RutaArgentinaXuxue Feng NEGOTIATION
Rodrigues Q RutaSpainAnna Fali NEGOTIATION
Munro C FlosiGermanyElwin Sharvill QUALIFIED
Mayumi Q MorascaFranceElwin Sharvill NEGOTIATION
Ricardo F CaudyFranceIoni Bowcher RENEWAL
Octavia V DilliardFranceAsiya Javayant PROPOSAL
Wickens N BriddickAustraliaElwin Sharvill RENEWAL
Greenwood T MaletJapanAnna Fali PROPOSAL
Arvin H ButtRussiaAnna Fali PROPOSAL
Arvin X RutaArgentinaAmy Elsner NEGOTIATION
Aika R GarufiIndiaXuxue Feng NEW
Salvatore I PerinUnited KingdomXuxue Feng QUALIFIED
Smith Q BowleyCanadaBernardo Dominic QUALIFIED
Maisha B DilliardUnited KingdomXuxue Feng NEGOTIATION
Aika P BowleyArgentinaStephen Shaw QUALIFIED
Ricardo J MaletAustraliaIoni Bowcher NEW
Claire F SlusarskiCanadaAmy Elsner PROPOSAL
Tony N FigeroaItalyIvan Magalhaes PROPOSAL
Jeanfrancois H SaylorsUnited KingdomXuxue Feng QUALIFIED
Arvin S InouyeItalyXuxue Feng NEW
Antonio K PoquetteAustraliaIoni Bowcher NEW
Deepesh C PaprockiGermanyIoni Bowcher NEW
Jones Q NestleSpainBernardo Dominic NEW
Kaitlin G GauchoCanadaAsiya Javayant NEW
Faith D AmigonItalyAnna Fali UNQUALIFIED
Murillo P MorascaJapanElwin Sharvill QUALIFIED
Wickens I GarufiArgentinaIvan Magalhaes PROPOSAL
Murillo N GarufiIndiaAmy Elsner NEGOTIATION
Aditya T OstroskyGermanyStephen Shaw NEGOTIATION
Misaki U GlickItalyAsiya Javayant NEGOTIATION
Mujtaba O PaprockiIndiaXuxue Feng NEGOTIATION
Clifford G StensethArgentinaElwin Sharvill QUALIFIED
Claire A GlickIndiaStephen Shaw UNQUALIFIED
Deepesh Q AmigonAustraliaStephen Shaw RENEWAL
Maisha D ChuiGermanyAsiya Javayant QUALIFIED
Juan T PoquetteGermanyIoni Bowcher NEW
Greenwood Q DarakjyUnited KingdomAnna Fali QUALIFIED
Ashley I BologniaSpainIvan Magalhaes QUALIFIED
Leon L GauchoBrazilAsiya Javayant PROPOSAL
Greenwood X PaprockiJapanOnyama Limba NEW
Johnson J ChuiRussiaOnyama Limba NEGOTIATION
Ivar X PoquetteItalyAmy Elsner RENEWAL
Greenwood B GlickSpainIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey F WieserCanadaXuxue Feng NEW
Darci A GauchoFranceAnna Fali RENEWAL
Aditya W DarakjySpainAsiya Javayant RENEWAL
Mayumi Q PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Johnson W SlusarskiRussiaAmy Elsner UNQUALIFIED
Silvio A RoysterArgentinaIvan Magalhaes QUALIFIED
Rodrigues X WhobreyRussiaElwin Sharvill UNQUALIFIED
Chavez Q GlickItalyIoni Bowcher NEGOTIATION
Tony I MorascaItalyXuxue Feng QUALIFIED
Aditya Y FollerCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro K PoquetteSpain2024-09-16Morlong Associates NEGOTIATION38Bernardo Dominic
1001Costa I FerenczSpain2024-09-17Chemel, James L Cpa NEGOTIATION67Ivan Magalhaes
1002Aruna L RutaGermany2024-08-28Feiner Bros PROPOSAL38Ioni Bowcher
1003Cody N NestleCanada2024-09-17Chapman, Ross E Esq PROPOSAL37Ivan Magalhaes
1004Octavia C BowleyBrazil2024-09-17Rangoni Of Florence NEW77Xuxue Feng
1005James C ChuiArgentina2024-09-18Feiner Bros UNQUALIFIED61Ivan Magalhaes
1006Nicolas S TollnerFrance2024-08-31Rousseaux, Michael Esq QUALIFIED31Xuxue Feng
1007Kaitlin Z KuskoBrazil2024-09-21Chanay, Jeffrey A Esq NEGOTIATION30Elwin Sharvill
1008Adams L WhobreyGermany2024-08-27Truhlar And Truhlar Attys NEGOTIATION56Ivan Magalhaes
1009Silvio J GlickUnited Kingdom2024-08-28Buckley Miller Wright QUALIFIED8Xuxue Feng
1010Aruna F DarakjyBrazil2024-09-08Truhlar And Truhlar Attys QUALIFIED23Bernardo Dominic
1011Kadeem Z RutaRussia2024-09-13Chanay, Jeffrey A Esq RENEWAL85Ioni Bowcher
1012Misaki N AmigonGermany2024-09-07Buckley Miller Wright UNQUALIFIED55Amy Elsner
1013Kadeem X DarakjyCanada2024-08-29Feltz Printing Service RENEWAL83Onyama Limba
1014Aruna V RutaGermany2024-09-14Feltz Printing Service PROPOSAL51Anna Fali
1015Aika F StockhamUnited Kingdom2024-09-15Benton, John B Jr NEW43Ivan Magalhaes
1016Kaitlin A ButtArgentina2024-09-07Truhlar And Truhlar Attys NEGOTIATION16Amy Elsner
1017Johnson I FigeroaRussia2024-09-08Chapman, Ross E Esq NEW56Amy Elsner
1018Ivar I MorascaArgentina2024-08-31Chemel, James L Cpa NEW91Stephen Shaw
1019Nicolas W AlbaresBrazil2024-09-21Rousseaux, Michael Esq NEGOTIATION3Ivan Magalhaes
1020Cody S WaycottAustralia2024-09-01Morlong Associates UNQUALIFIED2Onyama Limba
1021Munro Q ButtArgentina2024-08-26Chapman, Ross E Esq UNQUALIFIED51Elwin Sharvill
1022Wickens X RoysterSpain2024-09-14Printing Dimensions PROPOSAL66Xuxue Feng
1023Silvio T PerinSpain2024-09-17Chemel, James L Cpa UNQUALIFIED7Elwin Sharvill
1024Jones O TollnerUnited Kingdom2024-08-27Rangoni Of Florence NEW21Asiya Javayant
1025Izzy C StockhamItaly2024-09-15Commercial Press PROPOSAL3Onyama Limba
1026Leja I BriddickArgentina2024-09-13Chanay, Jeffrey A Esq QUALIFIED57Elwin Sharvill
1027Aruna J VenereUnited Kingdom2024-09-03Truhlar And Truhlar Attys PROPOSAL25Bernardo Dominic
1028Johnson K StockhamRussia2024-08-28King, Christopher A Esq PROPOSAL0Asiya Javayant
1029Jeanfrancois M InouyeAustralia2024-09-10Chemel, James L Cpa QUALIFIED78Anna Fali
1030Rodrigues Q FlosiCanada2024-09-01Chanay, Jeffrey A Esq RENEWAL45Amy Elsner
1031Ashley M StensethArgentina2024-09-17Feiner Bros QUALIFIED95Stephen Shaw
1032Deepesh L KuskoArgentina2024-09-19Buckley Miller Wright QUALIFIED65Bernardo Dominic
1033Chavez G RutaIndia2024-09-13Benton, John B Jr RENEWAL73Asiya Javayant
1034Smith M NestleGermany2024-09-16King, Christopher A Esq NEGOTIATION92Onyama Limba
1035Jones L SaylorsArgentina2024-09-05Rangoni Of Florence NEGOTIATION30Asiya Javayant
1036Smith Q MarrierCanada2024-09-07Rangoni Of Florence NEW86Ioni Bowcher
1037David Y GauchoCanada2024-09-03Chemel, James L Cpa QUALIFIED17Onyama Limba
1038Ricardo C TollnerSpain2024-09-12King, Christopher A Esq NEGOTIATION12Asiya Javayant
1039Jefferson A SchemmerJapan2024-09-17Rousseaux, Michael Esq PROPOSAL81Ivan Magalhaes
1040Isabel V OstroskyBrazil2024-08-30Buckley Miller Wright UNQUALIFIED20Ioni Bowcher
1041Rodrigues K VocelkaAustralia2024-09-06Commercial Press UNQUALIFIED6Anna Fali
1042Maria F SchemmerItaly2024-09-02Feiner Bros PROPOSAL62Amy Elsner
1043Salvatore L PoquetteArgentina2024-09-10King, Christopher A Esq NEGOTIATION87Asiya Javayant
1044Misaki S SaylorsJapan2024-09-16Feltz Printing Service NEGOTIATION18Xuxue Feng
1045Alejandro T InouyeJapan2024-08-31Dorl, James J Esq QUALIFIED40Ivan Magalhaes
1046Ricardo Q MaletBrazil2024-09-07Chapman, Ross E Esq NEGOTIATION29Anna Fali
1047Adams O ButtItaly2024-09-14Rousseaux, Michael Esq QUALIFIED37Stephen Shaw
1048Jeanfrancois Y OstroskyGermany2024-08-30Truhlar And Truhlar Attys NEW22Elwin Sharvill
1049Johnson G InouyeCanada2024-08-28Truhlar And Truhlar Attys NEW54Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Cody F DarakjyArgentinaAsiya Javayant RENEWAL
Rodrigues H WhobreyBrazilIoni Bowcher UNQUALIFIED
Murillo S RimGermanyXuxue Feng QUALIFIED
Wickens O PaprockiIndiaElwin Sharvill NEW
Faith N BowleyGermanyAsiya Javayant UNQUALIFIED
Ivar J VocelkaCanadaBernardo Dominic RENEWAL
Salvatore Y CaldareraBrazilAnna Fali NEW
David M WaycottCanadaElwin Sharvill UNQUALIFIED
Aditya U StensethRussiaStephen Shaw QUALIFIED
Cody I PoquetteSpainXuxue Feng RENEWAL
Juan L BowleyArgentinaElwin Sharvill NEW
Greenwood F DilliardRussiaAmy Elsner PROPOSAL
Emily F WieserCanadaXuxue Feng RENEWAL
Isabel O OstroskyArgentinaIoni Bowcher RENEWAL
Stacey J OldroydArgentinaAnna Fali UNQUALIFIED
Jones U DilliardGermanyElwin Sharvill NEGOTIATION
Maisha R WhobreyBrazilAnna Fali QUALIFIED
Johnson H KolmetzArgentinaIoni Bowcher RENEWAL
Mayumi T GillianCanadaOnyama Limba NEGOTIATION
Ricardo W RimGermanyAsiya Javayant QUALIFIED
Morrow I ButtIndiaIoni Bowcher PROPOSAL
Kadeem O ShinkoJapanBernardo Dominic NEGOTIATION
David Z FollerBrazilIvan Magalhaes RENEWAL
Leon X RoysterRussiaAnna Fali RENEWAL
Munro A FlosiIndiaBernardo Dominic RENEWAL
Sinclair Q VenereJapanIvan Magalhaes UNQUALIFIED
Nicolas F OldroydAustraliaElwin Sharvill PROPOSAL
Juan Y CaudyArgentinaIoni Bowcher RENEWAL
Ashley C MaletBrazilStephen Shaw PROPOSAL
Nicolas F NickaSpainStephen Shaw NEGOTIATION
Nicolas Y ChuiItalyStephen Shaw PROPOSAL
Antonio B ButtArgentinaOnyama Limba UNQUALIFIED
Ricardo M KolmetzArgentinaElwin Sharvill RENEWAL
Chavez L CaldareraGermanyXuxue Feng UNQUALIFIED
Jefferson N DoeGermanyIvan Magalhaes NEGOTIATION
Ricardo E ChuiRussiaIvan Magalhaes RENEWAL
Arvin J MarrierRussiaAmy Elsner RENEWAL
Costa L KolmetzAustraliaElwin Sharvill UNQUALIFIED
Misaki F FigeroaItalyXuxue Feng UNQUALIFIED
Smith Z NestleJapanIvan Magalhaes RENEWAL
Jennifer D RutaGermanyBernardo Dominic NEW
Francesco A RulapaughBrazilIoni Bowcher RENEWAL
Francesco C PerinGermanyBernardo Dominic NEGOTIATION
Murillo B RutaItalyElwin Sharvill UNQUALIFIED
Adams O GarufiCanadaAmy Elsner UNQUALIFIED
Julie G NickaAustraliaIoni Bowcher QUALIFIED
Leon B GarufiArgentinaXuxue Feng QUALIFIED
Aika E WaycottArgentinaBernardo Dominic RENEWAL
Stacey E OstroskyIndiaOnyama Limba QUALIFIED
Alejandro H IturbideArgentinaAmy Elsner NEW
Frozen Columns
Name
Juan V Maclead
Cody W Caldarera
Jeanfrancois N Gillian
Greenwood S Ruta
Aruna F Chui
Alejandro W Bolognia
Smith U Stockham
Claire O Foller
Leon K Figeroa
David L Kolmetz
Misaki Y Iturbide
Jefferson F Nicka
Mayumi H Caldarera
David R Maclead
Leja Z Saylors
Julie J Figeroa
Julie E Vocelka
Ricardo T Maclead
Antonio U Doe
Morrow I Royster
Ivar A Morasca
Silvio J Inouye
Silvio H Caudy
Johnson P Morasca
Salvatore Q Morasca
Sinclair W Bowley
Adams H Waycott
Claire N Gaucho
Juan U Saylors
Sinclair F Briddick
Adams W Marrier
Deepesh B Bowley
Ashley W Garufi
Aditya F Caldarera
Isabel Q Figeroa
Jeanfrancois F Albares
Francesco O Marrier
Tony F Morasca
Maria X Gillian
Mujtaba M Garufi
Darci K Malet
Aditya G Inouye
Antonio N Gaucho
Julie V Gaucho
Jeanfrancois I Inouye
Greenwood R Ferencz
Leon S Darakjy
Emily K Paprocki
Ashley C Dilliard
Izzy S Stockham
IdCountryDate
1000Germany2024-08-31
1001United Kingdom2024-08-28
1002Spain2024-09-23
1003Germany2024-09-22
1004Brazil2024-08-25
1005Argentina2024-09-23
1006India2024-09-20
1007Australia2024-09-03
1008Spain2024-09-22
1009Brazil2024-09-17
1010France2024-09-06
1011France2024-09-13
1012Canada2024-09-23
1013Japan2024-09-15
1014Australia2024-09-23
1015Spain2024-09-13
1016Germany2024-09-07
1017Germany2024-09-23
1018Russia2024-09-23
1019India2024-09-04
1020Italy2024-09-05
1021Brazil2024-08-26
1022Germany2024-09-22
1023Germany2024-09-23
1024Argentina2024-09-11
1025United Kingdom2024-09-15
1026Australia2024-08-29
1027United Kingdom2024-09-17
1028Germany2024-09-17
1029Brazil2024-09-14
1030Spain2024-08-28
1031Argentina2024-08-29
1032Australia2024-09-01
1033Australia2024-09-14
1034Germany2024-08-27
1035Australia2024-09-19
1036Italy2024-09-02
1037Italy2024-09-12
1038France2024-09-20
1039Argentina2024-09-21
1040Brazil2024-08-29
1041Japan2024-09-23
1042India2024-09-23
1043Italy2024-09-02
1044Argentina2024-09-23
1045Spain2024-09-06
1046United Kingdom2024-09-01
1047Spain2024-09-17
1048Australia2024-09-16
1049Australia2024-09-03

On-Demand Data

NameIdCountryDate
Silvio E Albares1000Germany2024-09-11
Chavez P Butt1001Canada2024-08-25
Leon E Campain1002Russia2024-09-05
Aditya Y Garufi1003Brazil2024-08-29
Jones I Gillian1004Argentina2024-09-02
David I Ferencz1005Australia2024-09-08
Isabel X Venere1006Japan2024-09-09
Aruna P Ruta1007Italy2024-09-05
Murillo T Slusarski1008Japan2024-08-30
Mujtaba B Gillian1009Australia2024-09-14
Kadeem F Wieser1010Spain2024-09-23
Arvin P Albares1011Brazil2024-09-14
Cody D Inouye1012Spain2024-09-20
Kadeem I Bowley1013Japan2024-09-02
Maria P Chui1014Brazil2024-08-29
Nicolas K Figeroa1015France2024-09-17
Aditya U Campain1016Spain2024-09-08
Cody E Oldroyd1017Canada2024-08-28
Clifford X Poquette1018Russia2024-08-28
Antonio E Perin1019Australia2024-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith L NestleItalyAsiya Javayant QUALIFIED
Maisha D BriddickArgentinaOnyama Limba NEW
Aika R DarakjySpainBernardo Dominic NEW
Nicolas V WieserUnited KingdomOnyama Limba UNQUALIFIED
Jones E CaldareraFranceStephen Shaw NEW
Jones N CaldareraUnited KingdomAsiya Javayant RENEWAL
Munro I KuskoArgentinaAmy Elsner RENEWAL
Adams L RimUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro L DoeUnited KingdomXuxue Feng PROPOSAL
Wickens W BologniaJapanAnna Fali UNQUALIFIED
Octavia G MarrierRussiaBernardo Dominic UNQUALIFIED
Ashley M CampainIndiaBernardo Dominic RENEWAL
Munro O SergiSpainOnyama Limba RENEWAL
Mayumi Y ShinkoGermanyIvan Magalhaes NEW
Wickens R GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson E InouyeGermanyAsiya Javayant NEGOTIATION
Aditya U FlosiUnited KingdomXuxue Feng RENEWAL
Stacey V GarufiUnited KingdomStephen Shaw UNQUALIFIED
Izzy L GlickCanadaElwin Sharvill PROPOSAL
James J NestleSpainStephen Shaw NEW
Mujtaba C BowleyCanadaAnna Fali PROPOSAL
Stacey K ButtFranceIvan Magalhaes QUALIFIED
Salvatore R VenereCanadaBernardo Dominic RENEWAL
Cody J MaletArgentinaAmy Elsner RENEWAL
Mujtaba W GlickIndiaIvan Magalhaes RENEWAL
Deepesh O DilliardBrazilStephen Shaw UNQUALIFIED
Leon I BriddickBrazilAnna Fali QUALIFIED
Wickens G DilliardRussiaElwin Sharvill NEW
Adams U OstroskyRussiaBernardo Dominic RENEWAL
Morrow N RoysterIndiaStephen Shaw RENEWAL
Jennifer P GarufiAustraliaXuxue Feng UNQUALIFIED
Murillo W SaylorsRussiaIvan Magalhaes NEGOTIATION
Ashley A WhobreyJapanXuxue Feng RENEWAL
Claire E GarufiFranceXuxue Feng RENEWAL
Clifford V RulapaughArgentinaAsiya Javayant RENEWAL
Leja T NickaAustraliaStephen Shaw QUALIFIED
Morrow I TollnerAustraliaAnna Fali QUALIFIED
Clifford Q MarrierGermanyStephen Shaw NEGOTIATION
Ivar E MorascaArgentinaOnyama Limba NEGOTIATION
Antonio H PoquetteArgentinaAnna Fali 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>