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
Isabel Q BriddickJapanAnna Fali UNQUALIFIED
Jeanfrancois P AlbaresUnited KingdomElwin Sharvill PROPOSAL
Clifford E BologniaArgentinaBernardo Dominic NEGOTIATION
Izzy B SchemmerRussiaAsiya Javayant QUALIFIED
Costa L CaldareraRussiaAnna Fali UNQUALIFIED
Antonio U CampainJapanAsiya Javayant UNQUALIFIED
Jennifer N MaletArgentinaAsiya Javayant QUALIFIED
Silvio B OstroskyCanadaIoni Bowcher PROPOSAL
Tony C GarufiArgentinaOnyama Limba UNQUALIFIED
Isabel T SlusarskiUnited KingdomOnyama Limba PROPOSAL
Costa V CampainArgentinaAsiya Javayant RENEWAL
Aika V RulapaughIndiaAsiya Javayant PROPOSAL
Darci D VocelkaAustraliaIvan Magalhaes NEW
Clifford C VenereIndiaIoni Bowcher QUALIFIED
Jones E FerenczBrazilIoni Bowcher UNQUALIFIED
Costa T RutaUnited KingdomOnyama Limba NEW
Smith K InouyeItalyOnyama Limba QUALIFIED
Tony J RoysterSpainStephen Shaw PROPOSAL
Alejandro C BologniaRussiaBernardo Dominic UNQUALIFIED
Kadeem O MorascaRussiaElwin Sharvill NEGOTIATION
Ricardo T MacleadSpainOnyama Limba RENEWAL
Costa B PerinJapanAsiya Javayant UNQUALIFIED
Aika J GauchoIndiaBernardo Dominic PROPOSAL
Francesco O VocelkaBrazilXuxue Feng NEGOTIATION
Mujtaba H RimBrazilIoni Bowcher PROPOSAL
Octavia B OstroskyUnited KingdomAnna Fali RENEWAL
Chavez W MacleadSpainAnna Fali PROPOSAL
Aditya G OstroskyJapanElwin Sharvill NEGOTIATION
Clifford X AlbaresBrazilElwin Sharvill RENEWAL
Aika T MarrierBrazilAmy Elsner NEW
Izzy G DilliardArgentinaIvan Magalhaes NEGOTIATION
Tony Q AlbaresArgentinaIvan Magalhaes NEGOTIATION
Costa C GlickCanadaAnna Fali PROPOSAL
Jones D WaycottUnited KingdomAnna Fali NEW
Alejandro Z MorascaRussiaIvan Magalhaes UNQUALIFIED
Stacey A CaudyArgentinaAmy Elsner RENEWAL
Murillo G CaldareraItalyElwin Sharvill NEW
Greenwood G WhobreyBrazilIvan Magalhaes PROPOSAL
Isabel T CaldareraItalyAsiya Javayant UNQUALIFIED
Alejandro V WaycottCanadaOnyama Limba UNQUALIFIED
Costa D CampainIndiaElwin Sharvill RENEWAL
Misaki U OstroskyArgentinaAnna Fali NEW
Nicolas U WieserBrazilIvan Magalhaes QUALIFIED
Octavia F VocelkaCanadaStephen Shaw NEW
Ricardo H MaletIndiaIoni Bowcher PROPOSAL
Chavez W FerenczAustraliaIvan Magalhaes RENEWAL
David A VocelkaCanadaAnna Fali PROPOSAL
Ricardo G GauchoCanadaOnyama Limba NEW
Nicolas E RulapaughFranceBernardo Dominic NEW
Aika T PerinGermanyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin P ChuiRussiaAmy Elsner NEW
Antonio S WaycottArgentinaIoni Bowcher NEGOTIATION
Stacey L FigeroaIndiaAnna Fali NEW
Silvio S TollnerAustraliaStephen Shaw NEW
Jones G PoquetteRussiaXuxue Feng NEW
Rodrigues Q AlbaresAustraliaBernardo Dominic NEGOTIATION
Cody T CampainUnited KingdomAsiya Javayant NEGOTIATION
Wickens X FerenczGermanyBernardo Dominic PROPOSAL
Aika S SchemmerUnited KingdomElwin Sharvill QUALIFIED
Misaki O BriddickAustraliaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Q MaletUnited Kingdom2025-05-31Truhlar And Truhlar Attys NEW36Ioni Bowcher
1001Johnson V BologniaFrance2025-05-31Dorl, James J Esq RENEWAL48Anna Fali
1002Morrow J ShinkoJapan2025-05-23Morlong Associates NEW77Amy Elsner
1003Greenwood L PaprockiCanada2025-06-04Chemel, James L Cpa QUALIFIED95Stephen Shaw
1004Wickens Z CampainBrazil2025-06-10Benton, John B Jr PROPOSAL72Amy Elsner
1005Ricardo D CaudyUnited Kingdom2025-05-20Truhlar And Truhlar Attys NEGOTIATION55Onyama Limba
1006Maria E ShinkoGermany2025-06-15Printing Dimensions QUALIFIED71Onyama Limba
1007Jeanfrancois M DoeAustralia2025-06-12Feiner Bros UNQUALIFIED54Stephen Shaw
1008Leon W NickaAustralia2025-06-15Chapman, Ross E Esq NEW94Bernardo Dominic
1009Jefferson E ShinkoCanada2025-06-12Buckley Miller Wright QUALIFIED23Ivan Magalhaes
1010Misaki L GauchoRussia2025-05-24Commercial Press RENEWAL95Onyama Limba
1011Murillo W FlosiCanada2025-05-31Benton, John B Jr RENEWAL27Xuxue Feng
1012Maisha M CaudyArgentina2025-05-23Chapman, Ross E Esq NEGOTIATION87Bernardo Dominic
1013Claire L DarakjyGermany2025-06-07Feiner Bros NEGOTIATION28Bernardo Dominic
1014Maria M RutaSpain2025-05-24Truhlar And Truhlar Attys QUALIFIED88Bernardo Dominic
1015Adams Q WhobreyAustralia2025-06-09Chemel, James L Cpa NEW76Elwin Sharvill
1016Mayumi E KuskoFrance2025-05-19Chemel, James L Cpa UNQUALIFIED60Ioni Bowcher
1017Arvin O GarufiItaly2025-06-10Feltz Printing Service NEGOTIATION36Bernardo Dominic
1018Octavia B SchemmerUnited Kingdom2025-06-02Chanay, Jeffrey A Esq NEGOTIATION15Ioni Bowcher
1019Nicolas B MorascaJapan2025-05-25Feltz Printing Service QUALIFIED66Onyama Limba
1020Julie Y DoeJapan2025-06-11Chapman, Ross E Esq PROPOSAL63Onyama Limba
1021Costa L DoeRussia2025-06-10Feiner Bros NEGOTIATION94Ivan Magalhaes
1022Stacey E DilliardIndia2025-06-06Rangoni Of Florence NEGOTIATION95Onyama Limba
1023Tony W FigeroaCanada2025-05-25Feltz Printing Service UNQUALIFIED23Elwin Sharvill
1024Salvatore W GauchoIndia2025-05-25Rousseaux, Michael Esq UNQUALIFIED14Asiya Javayant
1025Mujtaba H GarufiItaly2025-06-05Commercial Press RENEWAL11Bernardo Dominic
1026Leon T MaletGermany2025-06-10Feiner Bros UNQUALIFIED64Xuxue Feng
1027James O ChuiUnited Kingdom2025-06-12Rangoni Of Florence NEGOTIATION48Anna Fali
1028Darci K GillianGermany2025-06-07Chanay, Jeffrey A Esq NEW17Elwin Sharvill
1029Juan Q PoquetteAustralia2025-05-24Benton, John B Jr NEW35Amy Elsner
1030Aika L DarakjyUnited Kingdom2025-05-24Feiner Bros NEGOTIATION57Ivan Magalhaes
1031Smith K NickaArgentina2025-06-01Feltz Printing Service UNQUALIFIED50Bernardo Dominic
1032Johnson I TollnerIndia2025-06-14Dorl, James J Esq PROPOSAL88Stephen Shaw
1033Silvio H MarrierUnited Kingdom2025-06-15Dorl, James J Esq QUALIFIED55Stephen Shaw
1034Rodrigues G AlbaresCanada2025-05-26King, Christopher A Esq UNQUALIFIED9Ivan Magalhaes
1035Greenwood T FerenczBrazil2025-05-20Printing Dimensions QUALIFIED37Stephen Shaw
1036Mayumi E CampainBrazil2025-06-11Chapman, Ross E Esq NEGOTIATION64Elwin Sharvill
1037Cody H RoysterJapan2025-06-03Rangoni Of Florence UNQUALIFIED33Bernardo Dominic
1038Faith F SlusarskiJapan2025-06-13King, Christopher A Esq NEW79Onyama Limba
1039Rodrigues D PaprockiJapan2025-06-01Chemel, James L Cpa PROPOSAL25Elwin Sharvill
1040Isabel O ShinkoArgentina2025-05-22King, Christopher A Esq NEW46Onyama Limba
1041Silvio Q MaletAustralia2025-06-13Printing Dimensions RENEWAL66Onyama Limba
1042Rodrigues R RulapaughAustralia2025-06-05Chapman, Ross E Esq NEW16Anna Fali
1043Costa Z CaudyIndia2025-05-18Feiner Bros NEW33Elwin Sharvill
1044Maisha P TollnerFrance2025-05-22Feltz Printing Service NEW60Asiya Javayant
1045Aika W MaletRussia2025-06-10Feltz Printing Service NEW53Stephen Shaw
1046Costa F SergiUnited Kingdom2025-05-25Buckley Miller Wright RENEWAL61Elwin Sharvill
1047Smith P NestleGermany2025-05-24Printing Dimensions UNQUALIFIED49Amy Elsner
1048Octavia I MaletFrance2025-05-19Dorl, James J Esq NEGOTIATION12Onyama Limba
1049Deepesh C GlickRussia2025-05-26Benton, John B Jr NEGOTIATION18Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Smith F AmigonGermanyIvan Magalhaes QUALIFIED
Ivar H PoquetteUnited KingdomOnyama Limba PROPOSAL
Adams R PoquetteCanadaOnyama Limba RENEWAL
Jennifer S KuskoCanadaAsiya Javayant RENEWAL
Ricardo Z CaudyArgentinaElwin Sharvill RENEWAL
Emily H CaudyFranceElwin Sharvill NEGOTIATION
Chavez T GlickFranceBernardo Dominic NEW
Greenwood G RimCanadaXuxue Feng RENEWAL
Murillo T GillianGermanyAnna Fali PROPOSAL
Aika B RoysterGermanyIvan Magalhaes RENEWAL
Kadeem H MaletSpainIvan Magalhaes QUALIFIED
Tony Y KuskoCanadaElwin Sharvill PROPOSAL
Tony G PerinItalyAsiya Javayant PROPOSAL
Stacey E CaudyArgentinaXuxue Feng QUALIFIED
Smith W SlusarskiSpainIoni Bowcher RENEWAL
Leja O MorascaItalyOnyama Limba NEW
Juan O RimAustraliaStephen Shaw UNQUALIFIED
Morrow T TollnerUnited KingdomIoni Bowcher UNQUALIFIED
James T GarufiAustraliaXuxue Feng NEW
Nicolas M NickaIndiaStephen Shaw PROPOSAL
David Y KuskoSpainOnyama Limba UNQUALIFIED
Darci R SaylorsRussiaAsiya Javayant NEGOTIATION
Leon D TollnerSpainXuxue Feng NEW
Cody H FlosiAustraliaAnna Fali QUALIFIED
Ashley D DarakjyArgentinaBernardo Dominic NEW
Jefferson G StensethItalyOnyama Limba NEGOTIATION
Munro Q StockhamCanadaStephen Shaw NEGOTIATION
Ricardo N DilliardUnited KingdomAsiya Javayant NEW
Murillo M TollnerFranceOnyama Limba RENEWAL
Misaki E DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Leja G ChuiIndiaIoni Bowcher NEGOTIATION
Isabel F StensethUnited KingdomElwin Sharvill UNQUALIFIED
Antonio T SlusarskiBrazilIvan Magalhaes NEW
Antonio L ButtIndiaOnyama Limba RENEWAL
Morrow T BologniaFranceOnyama Limba NEW
Nicolas M BologniaBrazilAnna Fali UNQUALIFIED
Adams M WhobreyCanadaAsiya Javayant UNQUALIFIED
Mayumi O SergiGermanyXuxue Feng RENEWAL
David I IturbideJapanBernardo Dominic UNQUALIFIED
Jefferson G ButtFranceAsiya Javayant RENEWAL
Silvio J GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer R GlickRussiaIvan Magalhaes QUALIFIED
Sinclair A InouyeUnited KingdomElwin Sharvill NEW
Sinclair K CaudyUnited KingdomXuxue Feng PROPOSAL
Munro O VenereGermanyElwin Sharvill PROPOSAL
Ashley A VocelkaUnited KingdomStephen Shaw NEW
Jennifer H PaprockiItalyOnyama Limba PROPOSAL
Stacey I GarufiItalyIoni Bowcher QUALIFIED
Jennifer V OldroydUnited KingdomIoni Bowcher RENEWAL
Cody O NickaAustraliaElwin Sharvill QUALIFIED
Frozen Columns
Name
Jefferson P Poquette
Rodrigues Y Bolognia
Greenwood T Schemmer
Nicolas B Kolmetz
Arvin G Darakjy
Mujtaba P Sergi
Jefferson F Nicka
Leja S Albares
Claire R Flosi
Maria T Slusarski
Ashley L Caldarera
Kaitlin C Iturbide
Munro A Stenseth
Cody E Gillian
Arvin H Maclead
Wickens M Nicka
Emily J Maclead
Silvio Y Inouye
Kaitlin P Paprocki
Ricardo B Gillian
Salvatore U Shinko
Julie Q Dilliard
Kadeem G Albares
Kaitlin F Caudy
Ivar R Bowley
Cody C Poquette
Jefferson J Royster
Kadeem M Bolognia
Ivar A Briddick
Maisha N Inouye
Deepesh R Malet
Clifford D Foller
Wickens F Malet
Arvin S Doe
Ashley S Saylors
Juan V Wieser
Stacey Y Whobrey
Jones C Butt
Darci O Saylors
Salvatore N Schemmer
Arvin S Doe
Aika F Ferencz
Wickens S Bowley
Claire F Paprocki
Adams V Poquette
Misaki P Garufi
James L Wieser
Leja H Glick
Munro Z Shinko
David V Bolognia
IdCountryDate
1000Germany2025-05-18
1001Canada2025-05-22
1002Canada2025-06-10
1003Canada2025-05-24
1004Russia2025-06-02
1005France2025-05-24
1006Russia2025-05-23
1007Russia2025-06-09
1008India2025-05-24
1009Italy2025-05-27
1010United Kingdom2025-06-02
1011France2025-05-26
1012Argentina2025-06-12
1013Germany2025-06-15
1014Russia2025-06-16
1015Brazil2025-06-11
1016Japan2025-06-11
1017United Kingdom2025-06-16
1018Germany2025-05-25
1019Japan2025-06-15
1020Germany2025-05-27
1021Australia2025-06-03
1022Russia2025-05-20
1023India2025-06-01
1024Russia2025-05-30
1025Spain2025-06-09
1026Spain2025-06-03
1027Argentina2025-06-02
1028France2025-06-01
1029Canada2025-05-19
1030France2025-06-11
1031Argentina2025-06-13
1032India2025-05-20
1033Brazil2025-06-16
1034Italy2025-06-08
1035Russia2025-06-02
1036Russia2025-05-18
1037Russia2025-06-12
1038Australia2025-05-29
1039Germany2025-06-08
1040India2025-05-23
1041Canada2025-05-26
1042Canada2025-06-12
1043United Kingdom2025-05-30
1044United Kingdom2025-05-19
1045Russia2025-06-08
1046Argentina2025-06-06
1047France2025-06-04
1048India2025-06-01
1049Brazil2025-06-09

On-Demand Data

NameIdCountryDate
Faith T Stenseth1000Russia2025-06-12
Faith E Whobrey1001Germany2025-05-29
Rodrigues J Stenseth1002India2025-05-27
Mayumi G Wieser1003Spain2025-05-26
Mujtaba G Venere1004Italy2025-06-12
Darci P Flosi1005Australia2025-05-23
Smith W Malet1006Japan2025-05-30
Costa E Paprocki1007Argentina2025-05-25
Julie D Bowley1008Russia2025-06-01
Cody U Waycott1009Germany2025-06-16
Jeanfrancois R Stenseth1010Japan2025-05-28
Octavia K Slusarski1011Australia2025-06-02
Deepesh B Waycott1012United Kingdom2025-06-11
Francesco V Inouye1013Russia2025-06-04
Maisha F Inouye1014Brazil2025-05-29
Rodrigues Y Venere1015Russia2025-05-22
Darci O Figeroa1016France2025-06-11
Leja N Paprocki1017Brazil2025-05-21
Alejandro T Paprocki1018United Kingdom2025-06-05
Aika E Caudy1019Italy2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel F TollnerGermanyElwin Sharvill NEW
Sinclair U RoysterSpainStephen Shaw UNQUALIFIED
Antonio L FigeroaGermanyAmy Elsner RENEWAL
Salvatore J RimCanadaIvan Magalhaes RENEWAL
Ricardo L KolmetzFranceXuxue Feng NEGOTIATION
Aditya L MorascaBrazilIvan Magalhaes NEW
Mujtaba Q RutaGermanyAsiya Javayant NEW
Darci C VenereFranceBernardo Dominic QUALIFIED
Ivar T CaldareraSpainOnyama Limba RENEWAL
Juan J DarakjyIndiaBernardo Dominic PROPOSAL
Jefferson D MorascaFranceBernardo Dominic PROPOSAL
Costa Y MorascaAustraliaElwin Sharvill UNQUALIFIED
Cody F StockhamCanadaXuxue Feng QUALIFIED
Morrow M OstroskyCanadaIoni Bowcher NEW
Darci J SchemmerCanadaAsiya Javayant PROPOSAL
Jones T RimUnited KingdomAmy Elsner NEW
Aditya G StensethBrazilOnyama Limba QUALIFIED
Silvio U WaycottJapanIoni Bowcher RENEWAL
Morrow T RutaAustraliaAmy Elsner PROPOSAL
Leja P TollnerSpainXuxue Feng PROPOSAL
Juan V PoquetteFranceIoni Bowcher RENEWAL
Leon X TollnerBrazilOnyama Limba QUALIFIED
Munro F StockhamFranceBernardo Dominic QUALIFIED
Cody M SergiBrazilOnyama Limba PROPOSAL
Nicolas C VocelkaFranceOnyama Limba UNQUALIFIED
Ricardo G PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Aditya I BologniaItalyXuxue Feng PROPOSAL
Johnson M VocelkaRussiaBernardo Dominic UNQUALIFIED
Claire F MarrierBrazilXuxue Feng QUALIFIED
Jeanfrancois E BologniaJapanAnna Fali UNQUALIFIED
Aruna U FollerAustraliaElwin Sharvill NEW
Arvin K PoquetteJapanOnyama Limba QUALIFIED
Jeanfrancois J ChuiSpainElwin Sharvill UNQUALIFIED
Mujtaba F ShinkoSpainIoni Bowcher NEW
Juan D FollerRussiaAsiya Javayant RENEWAL
Mujtaba O SchemmerSpainAsiya Javayant NEW
Kaitlin V MaletItalyBernardo Dominic PROPOSAL
Leja F RutaGermanyStephen Shaw QUALIFIED
Ivar M WieserFranceElwin Sharvill NEGOTIATION
Faith P MorascaBrazilAnna Fali QUALIFIED

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