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
Octavia D SlusarskiFranceIvan Magalhaes UNQUALIFIED
Ashley Z StensethRussiaAnna Fali NEGOTIATION
Rodrigues Q StensethUnited KingdomBernardo Dominic RENEWAL
Chavez X FerenczBrazilIvan Magalhaes QUALIFIED
Adams B FigeroaArgentinaAmy Elsner RENEWAL
Leon B WieserRussiaAsiya Javayant RENEWAL
Wickens S StockhamJapanOnyama Limba NEW
Julie J RoysterBrazilIvan Magalhaes RENEWAL
Julie T InouyeUnited KingdomXuxue Feng NEW
Aika Z SaylorsBrazilAnna Fali NEW
Darci I DoeJapanAsiya Javayant NEGOTIATION
Adams E FerenczCanadaOnyama Limba UNQUALIFIED
David K FollerGermanyElwin Sharvill QUALIFIED
David H CaudyIndiaIvan Magalhaes NEGOTIATION
Kaitlin B OldroydSpainAmy Elsner RENEWAL
Aruna K FerenczArgentinaElwin Sharvill UNQUALIFIED
Munro U GillianSpainBernardo Dominic QUALIFIED
Aruna B BriddickAustraliaIoni Bowcher QUALIFIED
Johnson X IturbideJapanXuxue Feng RENEWAL
Jones F NickaGermanyAsiya Javayant QUALIFIED
Misaki O RimCanadaIvan Magalhaes UNQUALIFIED
Adams F SaylorsSpainXuxue Feng QUALIFIED
Izzy T DoeBrazilAsiya Javayant PROPOSAL
Nicolas Q GlickJapanAsiya Javayant UNQUALIFIED
Mujtaba K ChuiFranceOnyama Limba UNQUALIFIED
Nicolas Y OstroskyItalyOnyama Limba QUALIFIED
Julie K OstroskySpainAnna Fali QUALIFIED
Antonio J WieserRussiaOnyama Limba UNQUALIFIED
Jennifer E GarufiUnited KingdomAsiya Javayant NEW
Rodrigues U MorascaItalyAsiya Javayant PROPOSAL
Faith E MarrierGermanyAnna Fali NEW
Munro P GauchoRussiaXuxue Feng PROPOSAL
Nicolas Z NestleGermanyStephen Shaw QUALIFIED
Deepesh N KolmetzRussiaStephen Shaw NEW
Claire P VocelkaItalyStephen Shaw UNQUALIFIED
Smith J WaycottArgentinaAsiya Javayant PROPOSAL
Leja K MaletAustraliaAnna Fali UNQUALIFIED
Aditya H SaylorsUnited KingdomAsiya Javayant PROPOSAL
Chavez H BowleyBrazilAnna Fali NEW
Greenwood W RutaItalyIvan Magalhaes NEW
Murillo W RulapaughGermanyAsiya Javayant PROPOSAL
Murillo S RimJapanXuxue Feng NEW
Cody H IturbideAustraliaBernardo Dominic QUALIFIED
Aditya K KuskoIndiaAmy Elsner RENEWAL
Wickens U PerinArgentinaOnyama Limba QUALIFIED
Smith C DarakjySpainAmy Elsner PROPOSAL
Jennifer C IturbideUnited KingdomOnyama Limba UNQUALIFIED
Alejandro Y MaletAustraliaStephen Shaw PROPOSAL
Aika D GillianItalyAsiya Javayant NEGOTIATION
Johnson X WaycottItalyIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia B PoquetteJapanElwin Sharvill RENEWAL
Wickens G BowleyItalyOnyama Limba UNQUALIFIED
Kaitlin G PerinJapanStephen Shaw NEW
Salvatore Q SlusarskiRussiaAnna Fali PROPOSAL
Ricardo O AmigonItalyIvan Magalhaes PROPOSAL
Leja Q DilliardRussiaStephen Shaw PROPOSAL
Aditya O RulapaughArgentinaElwin Sharvill RENEWAL
Maisha J GarufiCanadaElwin Sharvill PROPOSAL
Faith N DilliardAustraliaAmy Elsner PROPOSAL
Mujtaba E CaldareraBrazilXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson Z RimIndia2025-04-09King, Christopher A Esq PROPOSAL91Bernardo Dominic
1001Greenwood R RoysterGermany2025-04-25Commercial Press NEW18Xuxue Feng
1002Murillo B SlusarskiItaly2025-04-28Truhlar And Truhlar Attys QUALIFIED85Amy Elsner
1003Jefferson K NickaGermany2025-04-23King, Christopher A Esq QUALIFIED16Bernardo Dominic
1004Octavia D SlusarskiCanada2025-04-02Chemel, James L Cpa UNQUALIFIED35Xuxue Feng
1005Maria W GlickArgentina2025-04-07Commercial Press PROPOSAL65Stephen Shaw
1006Jefferson U MaletBrazil2025-04-24Morlong Associates NEW82Amy Elsner
1007Wickens A WhobreyAustralia2025-04-05Feltz Printing Service NEW93Anna Fali
1008Aditya S GlickIndia2025-04-30Chapman, Ross E Esq NEW62Amy Elsner
1009Clifford B VenereIndia2025-04-02Feiner Bros NEW93Elwin Sharvill
1010Aditya L FigeroaItaly2025-04-02Commercial Press RENEWAL18Asiya Javayant
1011Maria O BriddickSpain2025-04-26Truhlar And Truhlar Attys RENEWAL17Elwin Sharvill
1012Smith E RutaBrazil2025-05-01Rangoni Of Florence NEGOTIATION86Onyama Limba
1013Ricardo M IturbideGermany2025-04-05Printing Dimensions NEGOTIATION49Amy Elsner
1014Jennifer X RulapaughArgentina2025-04-04Benton, John B Jr QUALIFIED64Xuxue Feng
1015Maisha N KuskoRussia2025-04-05Feltz Printing Service RENEWAL17Amy Elsner
1016Deepesh C BriddickSpain2025-04-22Chapman, Ross E Esq PROPOSAL11Xuxue Feng
1017Octavia W RulapaughBrazil2025-04-30Benton, John B Jr NEGOTIATION84Asiya Javayant
1018Darci G IturbideJapan2025-04-25Chapman, Ross E Esq UNQUALIFIED55Xuxue Feng
1019Mayumi V PoquetteItaly2025-04-24King, Christopher A Esq RENEWAL72Xuxue Feng
1020Murillo Q RimCanada2025-04-11Chanay, Jeffrey A Esq PROPOSAL77Ioni Bowcher
1021Murillo S FerenczSpain2025-04-03Rousseaux, Michael Esq NEGOTIATION92Ioni Bowcher
1022Morrow S MaletFrance2025-04-06Chemel, James L Cpa PROPOSAL82Bernardo Dominic
1023Nicolas D DilliardSpain2025-04-29Chanay, Jeffrey A Esq UNQUALIFIED85Amy Elsner
1024Clifford E MaletItaly2025-04-25Benton, John B Jr PROPOSAL10Onyama Limba
1025Isabel A PaprockiUnited Kingdom2025-04-07Chanay, Jeffrey A Esq NEGOTIATION0Amy Elsner
1026Salvatore U SlusarskiGermany2025-04-08Dorl, James J Esq NEGOTIATION39Elwin Sharvill
1027Aruna V NestleJapan2025-04-02Buckley Miller Wright NEGOTIATION24Ivan Magalhaes
1028Aditya S FlosiGermany2025-04-26Commercial Press NEW11Anna Fali
1029Rodrigues K CaudyGermany2025-04-14Rousseaux, Michael Esq UNQUALIFIED51Bernardo Dominic
1030Deepesh B StockhamRussia2025-04-21Chemel, James L Cpa NEGOTIATION48Xuxue Feng
1031Aruna B ChuiItaly2025-04-26Benton, John B Jr NEW28Xuxue Feng
1032Maria D CaudyUnited Kingdom2025-04-26Rousseaux, Michael Esq QUALIFIED63Ioni Bowcher
1033Stacey I GauchoUnited Kingdom2025-04-08Chemel, James L Cpa NEW65Anna Fali
1034Jennifer Q WhobreyArgentina2025-04-29Rangoni Of Florence NEGOTIATION78Elwin Sharvill
1035Misaki O FlosiArgentina2025-04-22Feiner Bros QUALIFIED30Bernardo Dominic
1036Costa A NestleCanada2025-04-16Truhlar And Truhlar Attys UNQUALIFIED22Stephen Shaw
1037Chavez M KolmetzRussia2025-04-14Rousseaux, Michael Esq UNQUALIFIED81Ivan Magalhaes
1038Mujtaba Q VenereArgentina2025-04-15Printing Dimensions UNQUALIFIED51Stephen Shaw
1039Aruna R SlusarskiSpain2025-04-05King, Christopher A Esq NEW61Elwin Sharvill
1040Isabel V PoquetteArgentina2025-04-15Chemel, James L Cpa UNQUALIFIED3Stephen Shaw
1041Juan D DilliardIndia2025-04-15Rangoni Of Florence PROPOSAL89Ioni Bowcher
1042Faith I WaycottAustralia2025-04-05Printing Dimensions UNQUALIFIED85Xuxue Feng
1043Misaki D RimGermany2025-04-11Printing Dimensions RENEWAL66Onyama Limba
1044Isabel J RulapaughAustralia2025-04-24Buckley Miller Wright QUALIFIED83Ioni Bowcher
1045Darci Z RimCanada2025-04-07King, Christopher A Esq UNQUALIFIED67Ivan Magalhaes
1046Isabel T KolmetzJapan2025-04-12Buckley Miller Wright NEW68Anna Fali
1047Ivar Y FlosiGermany2025-04-10Rousseaux, Michael Esq PROPOSAL46Asiya Javayant
1048Maisha S FerenczRussia2025-04-17Rousseaux, Michael Esq RENEWAL77Xuxue Feng
1049Kadeem L WhobreyCanada2025-04-24Feiner Bros PROPOSAL19Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo Y AlbaresRussiaStephen Shaw QUALIFIED
Faith W SchemmerCanadaAnna Fali NEW
Costa K BologniaItalyXuxue Feng UNQUALIFIED
Silvio E FigeroaSpainElwin Sharvill NEGOTIATION
Salvatore E RulapaughItalyXuxue Feng NEW
Silvio K FlosiBrazilAmy Elsner NEGOTIATION
David L VenereSpainIoni Bowcher UNQUALIFIED
Stacey X DarakjyBrazilAmy Elsner NEW
Silvio Q PerinSpainIvan Magalhaes NEGOTIATION
Murillo P SergiItalyStephen Shaw NEW
Kadeem Z ShinkoCanadaIvan Magalhaes QUALIFIED
Julie H OldroydCanadaOnyama Limba QUALIFIED
Rodrigues I VenereItalyAsiya Javayant QUALIFIED
Alejandro C WieserArgentinaElwin Sharvill PROPOSAL
Salvatore V PaprockiJapanAsiya Javayant PROPOSAL
Tony W PoquetteItalyIvan Magalhaes QUALIFIED
Morrow R FollerCanadaElwin Sharvill NEW
Aditya C RimJapanIoni Bowcher RENEWAL
Mayumi L DilliardFranceAmy Elsner UNQUALIFIED
Greenwood A RoysterRussiaStephen Shaw NEGOTIATION
Octavia C NickaBrazilAmy Elsner QUALIFIED
Greenwood F MacleadBrazilOnyama Limba PROPOSAL
Munro H StockhamFranceElwin Sharvill NEW
Morrow K SergiIndiaIoni Bowcher NEW
Chavez S GlickItalyBernardo Dominic PROPOSAL
Aruna K PoquetteIndiaBernardo Dominic RENEWAL
Chavez Z PerinRussiaAmy Elsner PROPOSAL
Tony J RimAustraliaIvan Magalhaes NEW
Jefferson Z FigeroaJapanBernardo Dominic RENEWAL
Chavez N KuskoIndiaXuxue Feng RENEWAL
Darci Q WhobreyCanadaBernardo Dominic NEGOTIATION
James A VocelkaSpainOnyama Limba NEGOTIATION
Nicolas E CampainGermanyAsiya Javayant QUALIFIED
Rodrigues G NickaBrazilXuxue Feng RENEWAL
Jeanfrancois T CampainSpainXuxue Feng PROPOSAL
Antonio W VenereFranceStephen Shaw RENEWAL
Kadeem F FerenczBrazilOnyama Limba PROPOSAL
Emily Z RoysterBrazilXuxue Feng NEGOTIATION
Nicolas U MaletUnited KingdomIoni Bowcher RENEWAL
Maria W WaycottJapanElwin Sharvill PROPOSAL
Maisha K WieserFranceOnyama Limba NEW
Deepesh G SchemmerBrazilElwin Sharvill NEGOTIATION
Aruna V WhobreyFranceXuxue Feng QUALIFIED
Misaki U InouyeItalyElwin Sharvill PROPOSAL
Smith A NickaArgentinaAmy Elsner RENEWAL
Leon K MarrierAustraliaStephen Shaw NEGOTIATION
Kaitlin D BriddickAustraliaElwin Sharvill PROPOSAL
Johnson U DoeAustraliaStephen Shaw RENEWAL
Antonio Z WhobreySpainAmy Elsner UNQUALIFIED
Aruna Z StockhamItalyOnyama Limba UNQUALIFIED
Frozen Columns
Name
Misaki X Maclead
Leja P Doe
Leon N Inouye
Emily X Flosi
Faith J Stockham
James X Darakjy
Ivar E Garufi
Jennifer F Ruta
Wickens S Amigon
Aruna P Garufi
Clifford T Poquette
James S Whobrey
Aika Z Venere
Cody K Poquette
Johnson I Rulapaugh
Darci Q Malet
Nicolas C Wieser
Nicolas W Butt
Jefferson Y Saylors
Misaki V Maclead
Salvatore R Morasca
Rodrigues Q Glick
Jennifer Y Whobrey
Jeanfrancois D Kolmetz
Sinclair H Waycott
Stacey A Nestle
Francesco D Campain
Misaki L Waycott
Claire I Doe
Antonio I Maclead
Cody H Poquette
Jeanfrancois K Bolognia
Izzy U Saylors
Alejandro B Vocelka
Greenwood W Rulapaugh
Claire O Campain
Costa X Poquette
Munro F Saylors
Kadeem S Tollner
Maria Z Gillian
Clifford V Campain
Deepesh S Kolmetz
Faith F Waycott
Izzy F Tollner
Adams P Iturbide
Kaitlin T Kolmetz
David H Paprocki
Wickens Y Kolmetz
Costa C Ruta
Wickens Y Doe
IdCountryDate
1000Brazil2025-04-04
1001France2025-04-22
1002Canada2025-04-24
1003Argentina2025-04-19
1004Canada2025-04-03
1005Germany2025-04-06
1006Australia2025-04-16
1007Brazil2025-04-29
1008Germany2025-04-05
1009India2025-04-24
1010Brazil2025-04-07
1011Germany2025-04-05
1012Brazil2025-04-23
1013Germany2025-04-16
1014Spain2025-04-03
1015Canada2025-04-12
1016Russia2025-04-28
1017France2025-04-10
1018Spain2025-04-24
1019Russia2025-04-23
1020Italy2025-04-09
1021Canada2025-04-04
1022Germany2025-05-01
1023Italy2025-04-24
1024Brazil2025-04-20
1025Argentina2025-04-13
1026Australia2025-04-06
1027Russia2025-04-25
1028Germany2025-04-02
1029Brazil2025-04-09
1030Italy2025-04-21
1031France2025-04-13
1032Canada2025-04-18
1033United Kingdom2025-04-15
1034France2025-04-16
1035Australia2025-04-28
1036France2025-04-08
1037France2025-04-19
1038Japan2025-04-26
1039Italy2025-04-06
1040Spain2025-04-23
1041Russia2025-04-17
1042United Kingdom2025-04-21
1043Russia2025-04-03
1044United Kingdom2025-04-23
1045India2025-04-02
1046Canada2025-04-09
1047Brazil2025-04-21
1048United Kingdom2025-04-20
1049Canada2025-04-14

On-Demand Data

NameIdCountryDate
Maisha S Ostrosky1000Russia2025-04-29
Jeanfrancois Z Doe1001Russia2025-04-10
Octavia K Foller1002Argentina2025-04-23
Jones D Amigon1003Canada2025-04-26
Izzy M Gillian1004India2025-04-15
Stacey W Caldarera1005India2025-04-25
Maisha I Iturbide1006India2025-04-12
Clifford T Ostrosky1007Australia2025-04-21
Alejandro B Marrier1008France2025-04-10
Jennifer W Vocelka1009Spain2025-04-19
Cody H Caudy1010Germany2025-04-16
Ricardo D Paprocki1011Japan2025-04-17
Isabel T Caldarera1012Argentina2025-05-01
Tony P Kolmetz1013Japan2025-04-05
Kaitlin R Campain1014Spain2025-04-22
Ashley H Campain1015Italy2025-04-11
Arvin M Amigon1016France2025-04-27
Clifford R Butt1017France2025-05-01
Misaki D Ruta1018Spain2025-04-13
Juan Z Albares1019Spain2025-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith Y RulapaughSpainIoni Bowcher UNQUALIFIED
Isabel J BologniaAustraliaElwin Sharvill NEGOTIATION
Maisha L MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Jones P PerinRussiaAmy Elsner NEGOTIATION
Chavez V RimFranceIoni Bowcher RENEWAL
Alejandro I MacleadAustraliaAmy Elsner NEGOTIATION
Maria M BriddickAustraliaElwin Sharvill RENEWAL
Rodrigues N SergiUnited KingdomIvan Magalhaes RENEWAL
Clifford Q DoeArgentinaIvan Magalhaes QUALIFIED
Mujtaba F GarufiUnited KingdomXuxue Feng QUALIFIED
Arvin X MaletGermanyIvan Magalhaes PROPOSAL
Arvin H ButtFranceAnna Fali UNQUALIFIED
Smith X PaprockiUnited KingdomAnna Fali PROPOSAL
Johnson C DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Mayumi Z ButtGermanyAsiya Javayant RENEWAL
Rodrigues B WieserAustraliaXuxue Feng PROPOSAL
Maisha S StensethItalyIvan Magalhaes QUALIFIED
Mayumi S KuskoIndiaIvan Magalhaes NEGOTIATION
Costa B AlbaresRussiaIvan Magalhaes NEGOTIATION
Jefferson M SchemmerBrazilIvan Magalhaes UNQUALIFIED
Julie M ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Greenwood K FlosiSpainBernardo Dominic RENEWAL
Francesco I OldroydRussiaAnna Fali NEGOTIATION
David E GauchoUnited KingdomIoni Bowcher NEW
Nicolas N GarufiItalyIoni Bowcher PROPOSAL
David J CaudyCanadaAnna Fali UNQUALIFIED
Emily C GillianCanadaAnna Fali UNQUALIFIED
Juan X SaylorsGermanyBernardo Dominic QUALIFIED
Kaitlin V FlosiBrazilAmy Elsner PROPOSAL
James U StockhamSpainElwin Sharvill RENEWAL
Wickens T DarakjyAustraliaXuxue Feng QUALIFIED
Jones R OstroskyItalyAmy Elsner UNQUALIFIED
Misaki D SlusarskiRussiaAmy Elsner QUALIFIED
Deepesh D StockhamIndiaElwin Sharvill QUALIFIED
Smith S FlosiGermanyOnyama Limba NEW
Alejandro I GlickItalyBernardo Dominic NEW
Aruna V KolmetzBrazilAnna Fali QUALIFIED
Isabel Q GarufiAustraliaAnna Fali QUALIFIED
Sinclair Z AmigonRussiaElwin Sharvill RENEWAL
Smith N AmigonBrazilIoni Bowcher NEGOTIATION

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