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
Morrow R AmigonRussiaIoni Bowcher NEGOTIATION
Alejandro N PaprockiSpainOnyama Limba PROPOSAL
Murillo E StockhamGermanyOnyama Limba UNQUALIFIED
Johnson L FollerFranceAnna Fali QUALIFIED
Smith D PerinFranceOnyama Limba RENEWAL
Aditya W BologniaJapanAsiya Javayant NEGOTIATION
Adams I MorascaSpainBernardo Dominic UNQUALIFIED
Jeanfrancois A WieserIndiaBernardo Dominic NEW
Kaitlin J MorascaFranceOnyama Limba NEGOTIATION
Claire C RimCanadaOnyama Limba RENEWAL
Julie J NickaJapanAmy Elsner RENEWAL
Octavia N MacleadUnited KingdomAmy Elsner UNQUALIFIED
Claire Q MaletCanadaAnna Fali UNQUALIFIED
Stacey C NestleUnited KingdomStephen Shaw NEGOTIATION
Claire E OstroskyIndiaIvan Magalhaes UNQUALIFIED
Adams K OstroskyGermanyElwin Sharvill RENEWAL
Ivar F ShinkoItalyStephen Shaw RENEWAL
Murillo G AmigonUnited KingdomXuxue Feng NEW
Francesco X SergiJapanXuxue Feng PROPOSAL
Isabel N GarufiGermanyAsiya Javayant RENEWAL
Jefferson P WaycottJapanAmy Elsner NEW
Jennifer Y GlickRussiaIvan Magalhaes QUALIFIED
Kaitlin G FerenczIndiaOnyama Limba RENEWAL
Ivar T VenereCanadaIvan Magalhaes NEGOTIATION
Stacey I CampainGermanyIoni Bowcher UNQUALIFIED
Deepesh U VocelkaRussiaIoni Bowcher PROPOSAL
Jeanfrancois F NestleSpainOnyama Limba UNQUALIFIED
Izzy R OstroskyCanadaIvan Magalhaes NEGOTIATION
Kaitlin F SaylorsJapanOnyama Limba NEW
Izzy N VocelkaBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois K CaudyItalyBernardo Dominic QUALIFIED
Octavia G IturbideArgentinaAmy Elsner NEGOTIATION
Chavez V NickaCanadaXuxue Feng NEW
Alejandro O DoeGermanyIvan Magalhaes NEW
Ricardo T MaletJapanAnna Fali UNQUALIFIED
Stacey Q CampainJapanIoni Bowcher NEW
Mayumi O KuskoCanadaXuxue Feng RENEWAL
Sinclair Q TollnerGermanyAmy Elsner QUALIFIED
David L FollerCanadaBernardo Dominic QUALIFIED
Deepesh F FerenczArgentinaAnna Fali UNQUALIFIED
Munro N SergiRussiaIvan Magalhaes QUALIFIED
Ricardo U DilliardJapanOnyama Limba NEW
Octavia B MaletFranceIoni Bowcher QUALIFIED
Rodrigues R FerenczBrazilIvan Magalhaes QUALIFIED
Leon Y PerinJapanIvan Magalhaes PROPOSAL
Ricardo N PaprockiItalyIvan Magalhaes PROPOSAL
David M OstroskyArgentinaIoni Bowcher NEGOTIATION
Maisha K FigeroaItalyBernardo Dominic NEW
Adams Y ShinkoGermanyStephen Shaw NEGOTIATION
Stacey O RoysterCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
James O WieserJapanBernardo Dominic UNQUALIFIED
Stacey N MaletJapanAmy Elsner NEW
Cody G IturbideItalyStephen Shaw QUALIFIED
Murillo Y SchemmerArgentinaStephen Shaw QUALIFIED
Leon S GarufiFranceAmy Elsner NEGOTIATION
Kaitlin A IturbideCanadaIoni Bowcher NEGOTIATION
Leja V CampainBrazilOnyama Limba PROPOSAL
Cody H OstroskyIndiaXuxue Feng QUALIFIED
Munro V SlusarskiFranceXuxue Feng NEW
Arvin B MaletIndiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire P FlosiSpain2024-06-15Chemel, James L Cpa QUALIFIED64Ioni Bowcher
1001Antonio K CaudyGermany2024-06-13Rangoni Of Florence NEW70Bernardo Dominic
1002Johnson H MorascaUnited Kingdom2024-05-31Printing Dimensions QUALIFIED64Elwin Sharvill
1003Kaitlin T IturbideSpain2024-06-19Feltz Printing Service QUALIFIED79Bernardo Dominic
1004Maisha Q WieserRussia2024-06-07Chemel, James L Cpa NEW76Amy Elsner
1005Emily P RoysterGermany2024-06-19Chemel, James L Cpa NEW68Onyama Limba
1006Jennifer X MaletItaly2024-06-18Chapman, Ross E Esq NEW76Onyama Limba
1007Deepesh T BriddickRussia2024-06-04Chanay, Jeffrey A Esq PROPOSAL14Bernardo Dominic
1008Mujtaba N FigeroaCanada2024-06-10Commercial Press NEGOTIATION1Asiya Javayant
1009Tony E VocelkaIndia2024-06-07Chanay, Jeffrey A Esq QUALIFIED71Stephen Shaw
1010Kaitlin W BriddickGermany2024-06-01Chanay, Jeffrey A Esq NEW16Onyama Limba
1011Chavez V DilliardAustralia2024-06-13Morlong Associates PROPOSAL24Stephen Shaw
1012Adams Y OldroydGermany2024-06-11Printing Dimensions QUALIFIED53Ioni Bowcher
1013Antonio Z BriddickIndia2024-06-05Chanay, Jeffrey A Esq QUALIFIED66Elwin Sharvill
1014Ricardo Z InouyeJapan2024-06-20Rangoni Of Florence QUALIFIED47Bernardo Dominic
1015Murillo K DilliardIndia2024-06-23Rangoni Of Florence RENEWAL52Ioni Bowcher
1016Adams J DoeIndia2024-06-23Buckley Miller Wright RENEWAL13Stephen Shaw
1017Jefferson X PerinGermany2024-06-17Buckley Miller Wright RENEWAL21Stephen Shaw
1018Darci V OstroskyArgentina2024-06-04Morlong Associates UNQUALIFIED60Anna Fali
1019Munro N SchemmerJapan2024-06-02Chemel, James L Cpa NEGOTIATION63Onyama Limba
1020Juan K VenereBrazil2024-06-02Printing Dimensions NEW41Anna Fali
1021Maisha X TollnerAustralia2024-05-27Printing Dimensions UNQUALIFIED82Ivan Magalhaes
1022Greenwood U PerinSpain2024-06-06Printing Dimensions QUALIFIED37Ivan Magalhaes
1023Ashley E FigeroaBrazil2024-06-01Truhlar And Truhlar Attys UNQUALIFIED82Stephen Shaw
1024Jeanfrancois C MaletSpain2024-06-14Buckley Miller Wright NEW35Xuxue Feng
1025Maisha Z DarakjyItaly2024-05-28Printing Dimensions QUALIFIED24Elwin Sharvill
1026Octavia S PaprockiFrance2024-06-23Feiner Bros QUALIFIED51Ioni Bowcher
1027Salvatore K BologniaIndia2024-05-30Chemel, James L Cpa UNQUALIFIED87Xuxue Feng
1028Smith Z CaldareraCanada2024-06-20Rousseaux, Michael Esq RENEWAL40Anna Fali
1029Claire C DoeGermany2024-06-22Truhlar And Truhlar Attys UNQUALIFIED96Ioni Bowcher
1030Kadeem S MacleadCanada2024-05-29King, Christopher A Esq NEGOTIATION62Anna Fali
1031Arvin W MarrierRussia2024-06-10Chemel, James L Cpa RENEWAL2Onyama Limba
1032Emily S SlusarskiSpain2024-06-18Chemel, James L Cpa QUALIFIED37Bernardo Dominic
1033Salvatore B MaletArgentina2024-05-25Commercial Press PROPOSAL40Stephen Shaw
1034Smith A VocelkaArgentina2024-06-15Morlong Associates RENEWAL81Stephen Shaw
1035Faith R IturbideArgentina2024-06-06Chapman, Ross E Esq RENEWAL11Xuxue Feng
1036Wickens P FerenczArgentina2024-05-28Morlong Associates NEW4Anna Fali
1037Silvio M KolmetzBrazil2024-06-09Rousseaux, Michael Esq RENEWAL79Ivan Magalhaes
1038Claire L ShinkoGermany2024-06-20Rousseaux, Michael Esq RENEWAL79Xuxue Feng
1039Claire C WhobreyJapan2024-06-20Feltz Printing Service NEW85Ivan Magalhaes
1040Greenwood E VenereSpain2024-06-18Truhlar And Truhlar Attys UNQUALIFIED16Ivan Magalhaes
1041Maisha R CampainItaly2024-06-12Dorl, James J Esq RENEWAL26Elwin Sharvill
1042Smith F GarufiJapan2024-06-04Chanay, Jeffrey A Esq QUALIFIED2Anna Fali
1043Leja M SaylorsUnited Kingdom2024-06-22Truhlar And Truhlar Attys QUALIFIED87Onyama Limba
1044Aika X VenereArgentina2024-05-29Chapman, Ross E Esq PROPOSAL0Stephen Shaw
1045Mayumi T SaylorsAustralia2024-06-04Printing Dimensions UNQUALIFIED73Amy Elsner
1046Salvatore V SergiAustralia2024-05-31Buckley Miller Wright RENEWAL75Elwin Sharvill
1047Aika Y VocelkaUnited Kingdom2024-06-20King, Christopher A Esq NEW3Ivan Magalhaes
1048Aruna D NestleRussia2024-06-21Benton, John B Jr QUALIFIED54Ioni Bowcher
1049Leon H CaldareraGermany2024-05-26Chanay, Jeffrey A Esq QUALIFIED19Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Juan A MorascaJapanXuxue Feng NEGOTIATION
Izzy F PaprockiAustraliaElwin Sharvill NEW
Aika H FlosiFranceBernardo Dominic PROPOSAL
Cody X AlbaresFranceElwin Sharvill RENEWAL
Maisha K StockhamArgentinaAsiya Javayant NEW
Smith O RutaIndiaElwin Sharvill PROPOSAL
Ricardo U SchemmerJapanXuxue Feng UNQUALIFIED
Tony P ChuiItalyAsiya Javayant NEW
Tony D FigeroaJapanIvan Magalhaes NEW
Francesco X NestleSpainXuxue Feng NEGOTIATION
Leon C GillianFranceIoni Bowcher PROPOSAL
Alejandro H PerinSpainOnyama Limba NEGOTIATION
Misaki U RimBrazilAmy Elsner QUALIFIED
David X DarakjyCanadaOnyama Limba NEGOTIATION
Maisha F KuskoBrazilAnna Fali NEW
Aika G VenereRussiaAnna Fali QUALIFIED
Claire F StockhamUnited KingdomIvan Magalhaes QUALIFIED
Juan P GauchoArgentinaIoni Bowcher UNQUALIFIED
Aruna G GillianSpainAmy Elsner QUALIFIED
Greenwood D MarrierBrazilIvan Magalhaes UNQUALIFIED
Tony A ChuiCanadaBernardo Dominic PROPOSAL
Arvin U PoquetteArgentinaBernardo Dominic PROPOSAL
Silvio Q BriddickSpainElwin Sharvill NEW
Claire X CaudyFranceElwin Sharvill QUALIFIED
Darci S StensethUnited KingdomElwin Sharvill QUALIFIED
Isabel L SaylorsBrazilIoni Bowcher RENEWAL
Juan Z FigeroaArgentinaBernardo Dominic RENEWAL
Emily Y BologniaUnited KingdomIoni Bowcher NEW
James R CaldareraIndiaElwin Sharvill UNQUALIFIED
James W SergiFranceIoni Bowcher RENEWAL
Mujtaba M WhobreyBrazilOnyama Limba NEGOTIATION
Arvin D SergiCanadaOnyama Limba QUALIFIED
Kadeem Q MaletGermanyAsiya Javayant RENEWAL
Jefferson M DilliardIndiaIoni Bowcher NEW
Izzy T SaylorsItalyAmy Elsner QUALIFIED
Salvatore M MaletRussiaIvan Magalhaes RENEWAL
Kadeem E FollerJapanBernardo Dominic NEGOTIATION
Isabel Y InouyeFranceStephen Shaw PROPOSAL
Claire T TollnerRussiaAnna Fali RENEWAL
Alejandro S NickaBrazilElwin Sharvill PROPOSAL
Maisha I RulapaughBrazilAnna Fali UNQUALIFIED
Sinclair F PerinItalyBernardo Dominic NEGOTIATION
Leon N ShinkoRussiaIvan Magalhaes NEGOTIATION
Mayumi Y DilliardArgentinaIvan Magalhaes QUALIFIED
Octavia C BologniaCanadaBernardo Dominic NEW
Isabel E GarufiUnited KingdomElwin Sharvill QUALIFIED
Clifford I FollerCanadaElwin Sharvill UNQUALIFIED
Cody C NestleGermanyAmy Elsner UNQUALIFIED
Deepesh P GarufiArgentinaBernardo Dominic UNQUALIFIED
Deepesh H WhobreyGermanyAnna Fali UNQUALIFIED
Frozen Columns
Name
Wickens E Vocelka
Silvio D Doe
Alejandro U Caudy
Julie P Sergi
Octavia F Glick
Rodrigues O Marrier
Arvin D Butt
Maria D Briddick
Maria A Caudy
Juan F Stockham
Jefferson L Caldarera
Leja I Saylors
Munro K Rulapaugh
James W Garufi
Julie G Vocelka
Greenwood Q Bowley
Ivar M Kusko
Jefferson B Butt
Emily C Marrier
Emily P Chui
Arvin C Doe
Clifford P Ruta
Stacey U Perin
Tony N Morasca
Chavez G Shinko
Isabel L Saylors
Greenwood M Caldarera
Chavez M Vocelka
Sinclair X Bowley
Tony D Doe
Aditya H Malet
Octavia A Caudy
Kaitlin W Schemmer
Johnson S Shinko
James Q Nestle
Morrow C Glick
Chavez Z Royster
Isabel P Kolmetz
Kadeem M Waycott
Munro E Ferencz
Emily D Malet
Mujtaba W Dilliard
Claire C Perin
Stacey Y Nicka
Izzy Z Waycott
Johnson B Garufi
Nicolas E Rim
Nicolas F Glick
Morrow I Garufi
Isabel P Bowley
IdCountryDate
1000Argentina2024-06-19
1001Canada2024-06-04
1002Italy2024-06-02
1003Germany2024-06-23
1004Italy2024-05-30
1005Spain2024-06-04
1006Spain2024-06-03
1007India2024-06-01
1008Italy2024-05-31
1009Canada2024-06-02
1010Japan2024-06-14
1011Italy2024-06-18
1012Canada2024-06-05
1013Brazil2024-06-02
1014Brazil2024-06-14
1015Canada2024-05-31
1016Canada2024-06-01
1017Argentina2024-05-27
1018Germany2024-06-23
1019Brazil2024-06-16
1020India2024-06-20
1021Brazil2024-05-27
1022Germany2024-06-21
1023India2024-06-11
1024Argentina2024-06-23
1025Japan2024-06-10
1026Spain2024-06-06
1027United Kingdom2024-06-23
1028India2024-05-28
1029France2024-05-31
1030United Kingdom2024-06-06
1031Argentina2024-06-03
1032Japan2024-06-18
1033Italy2024-06-05
1034Australia2024-06-16
1035India2024-06-13
1036Germany2024-05-25
1037France2024-06-08
1038Spain2024-06-19
1039Russia2024-06-20
1040France2024-05-31
1041Canada2024-05-29
1042France2024-06-22
1043Spain2024-05-25
1044France2024-06-06
1045Spain2024-05-29
1046India2024-06-17
1047Australia2024-06-07
1048Brazil2024-06-23
1049Brazil2024-06-14

On-Demand Data

NameIdCountryDate
Julie T Morasca1000Argentina2024-06-20
Aditya U Nicka1001Japan2024-06-06
Misaki E Nicka1002India2024-05-31
Antonio R Chui1003Germany2024-06-12
Stacey U Paprocki1004Brazil2024-06-23
Costa P Bowley1005United Kingdom2024-06-15
Munro U Caldarera1006Japan2024-06-11
Jeanfrancois C Bowley1007India2024-06-05
Salvatore W Rulapaugh1008Japan2024-06-02
Ivar N Doe1009United Kingdom2024-05-26
Salvatore D Amigon1010Brazil2024-06-19
Nicolas J Briddick1011France2024-06-15
Claire G Oldroyd1012Italy2024-06-16
Stacey T Paprocki1013Japan2024-06-10
Silvio U Shinko1014Spain2024-06-01
Isabel P Campain1015Spain2024-06-11
Cody A Chui1016Italy2024-05-25
Ashley U Schemmer1017Japan2024-06-18
Isabel J Ruta1018Spain2024-05-27
Cody N Tollner1019France2024-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba P ButtBrazilIvan Magalhaes PROPOSAL
Izzy V FerenczCanadaAmy Elsner NEW
Murillo Q InouyeJapanAsiya Javayant UNQUALIFIED
David B DoeBrazilOnyama Limba RENEWAL
Antonio J GarufiBrazilAnna Fali UNQUALIFIED
Octavia E MarrierJapanAsiya Javayant NEGOTIATION
Alejandro U ShinkoCanadaStephen Shaw NEW
Nicolas K PerinFranceElwin Sharvill PROPOSAL
Aika F RoysterIndiaAnna Fali UNQUALIFIED
Stacey K KolmetzAustraliaStephen Shaw NEW
Rodrigues S WhobreyGermanyIoni Bowcher PROPOSAL
Ivar G RulapaughCanadaAnna Fali PROPOSAL
Kadeem G ChuiArgentinaStephen Shaw RENEWAL
Greenwood P AlbaresArgentinaAnna Fali NEGOTIATION
Tony M FerenczSpainElwin Sharvill NEGOTIATION
Greenwood V RutaUnited KingdomIvan Magalhaes RENEWAL
Jefferson X CaudyCanadaAsiya Javayant UNQUALIFIED
Silvio Z SchemmerRussiaXuxue Feng UNQUALIFIED
Cody I FigeroaSpainIoni Bowcher RENEWAL
Izzy V PoquetteItalyXuxue Feng NEGOTIATION
Juan V InouyeUnited KingdomElwin Sharvill NEW
David K NickaAustraliaStephen Shaw RENEWAL
Antonio E BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Murillo J MaletIndiaBernardo Dominic PROPOSAL
Sinclair Q CaldareraCanadaOnyama Limba NEGOTIATION
Arvin N WaycottIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois S CampainJapanBernardo Dominic RENEWAL
Juan X CampainJapanIoni Bowcher NEW
Isabel Z CampainFranceBernardo Dominic NEW
Leon X PoquetteCanadaXuxue Feng UNQUALIFIED
Costa G StockhamItalyStephen Shaw UNQUALIFIED
Rodrigues B OldroydUnited KingdomBernardo Dominic PROPOSAL
Francesco G FollerItalyAsiya Javayant PROPOSAL
Aditya X MaletItalyElwin Sharvill RENEWAL
Misaki L RulapaughItalyAnna Fali PROPOSAL
Octavia W SergiAustraliaElwin Sharvill PROPOSAL
Ashley H PerinRussiaIoni Bowcher QUALIFIED
Juan C ShinkoJapanBernardo Dominic QUALIFIED
Murillo L KolmetzBrazilAsiya Javayant RENEWAL
Claire L PaprockiCanadaIvan Magalhaes 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>