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
Ashley E OstroskyCanadaAmy Elsner QUALIFIED
Nicolas E SergiFranceStephen Shaw QUALIFIED
Jefferson Q SergiUnited KingdomAsiya Javayant PROPOSAL
Costa G MaletCanadaElwin Sharvill QUALIFIED
Salvatore H BriddickFranceAmy Elsner NEW
Julie G RimIndiaStephen Shaw RENEWAL
Jeanfrancois V StensethAustraliaAmy Elsner RENEWAL
Jones E GillianBrazilAsiya Javayant NEW
Aditya M GarufiIndiaAmy Elsner RENEWAL
Maisha I NestleFranceStephen Shaw NEGOTIATION
Leja U ShinkoCanadaIoni Bowcher NEW
David R ChuiBrazilBernardo Dominic NEW
Juan O PaprockiSpainOnyama Limba QUALIFIED
Alejandro O VenereCanadaOnyama Limba QUALIFIED
Francesco N OldroydAustraliaIoni Bowcher NEW
Smith J KuskoJapanBernardo Dominic NEW
Ashley T SlusarskiCanadaElwin Sharvill NEW
Mujtaba T VenereSpainElwin Sharvill NEW
Arvin F DarakjyRussiaOnyama Limba RENEWAL
David R MarrierUnited KingdomIvan Magalhaes QUALIFIED
Jefferson J NestleAustraliaOnyama Limba NEW
Faith R FigeroaIndiaAmy Elsner QUALIFIED
Arvin H ChuiFranceStephen Shaw NEGOTIATION
Jones R RulapaughSpainIvan Magalhaes UNQUALIFIED
Jefferson N SaylorsJapanIvan Magalhaes NEW
Salvatore T SergiUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair U VocelkaBrazilIvan Magalhaes UNQUALIFIED
Rodrigues Z FerenczGermanyBernardo Dominic NEW
Darci H TollnerFranceAnna Fali PROPOSAL
Claire T MarrierAustraliaElwin Sharvill QUALIFIED
Kadeem N VenereItalyAnna Fali NEW
Deepesh D VocelkaRussiaAmy Elsner NEW
Aditya X WaycottBrazilIvan Magalhaes QUALIFIED
Aruna Z NickaArgentinaAmy Elsner NEW
James B SlusarskiGermanyAmy Elsner QUALIFIED
Isabel N CampainCanadaOnyama Limba NEGOTIATION
Cody E GarufiRussiaStephen Shaw NEW
Juan O BowleyFranceXuxue Feng NEW
Darci Z WieserRussiaStephen Shaw RENEWAL
Tony F ButtFranceBernardo Dominic NEGOTIATION
Claire E BriddickUnited KingdomElwin Sharvill RENEWAL
Tony Y ButtUnited KingdomAsiya Javayant UNQUALIFIED
James J CaldareraItalyIoni Bowcher QUALIFIED
Jones F FlosiSpainAmy Elsner QUALIFIED
Nicolas W FollerCanadaXuxue Feng PROPOSAL
Ricardo M CaudyIndiaOnyama Limba NEW
Julie Y PaprockiItalyAmy Elsner RENEWAL
Jefferson L VenereRussiaBernardo Dominic NEGOTIATION
Emily Q ShinkoAustraliaAnna Fali NEW
Izzy O BriddickSpainIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood M KuskoIndiaAsiya Javayant UNQUALIFIED
Alejandro V CaudyAustraliaIoni Bowcher QUALIFIED
Murillo N MorascaArgentinaIvan Magalhaes UNQUALIFIED
James N PoquetteUnited KingdomAsiya Javayant QUALIFIED
Jefferson Z RutaUnited KingdomAsiya Javayant RENEWAL
Wickens E SlusarskiArgentinaIoni Bowcher RENEWAL
Jones M KolmetzUnited KingdomAsiya Javayant PROPOSAL
Mujtaba R RutaIndiaBernardo Dominic PROPOSAL
Smith Y CaudyFranceAnna Fali PROPOSAL
Clifford P SchemmerArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire D GillianRussia2025-04-04Truhlar And Truhlar Attys NEGOTIATION70Ioni Bowcher
1001Jefferson X FollerIndia2025-04-04Buckley Miller Wright UNQUALIFIED41Xuxue Feng
1002Aruna O FigeroaCanada2025-04-09Truhlar And Truhlar Attys NEW79Bernardo Dominic
1003Adams C TollnerAustralia2025-04-28Benton, John B Jr PROPOSAL10Onyama Limba
1004Wickens J FollerFrance2025-04-13Buckley Miller Wright RENEWAL20Stephen Shaw
1005Antonio N NestleRussia2025-04-07Chapman, Ross E Esq PROPOSAL78Amy Elsner
1006Claire G RutaBrazil2025-04-03Rousseaux, Michael Esq NEW35Stephen Shaw
1007Leja O StockhamBrazil2025-04-22Rousseaux, Michael Esq QUALIFIED67Amy Elsner
1008Wickens S KuskoRussia2025-04-11Truhlar And Truhlar Attys NEW42Anna Fali
1009Munro C DilliardFrance2025-04-02Chanay, Jeffrey A Esq RENEWAL20Anna Fali
1010Darci Q FigeroaGermany2025-04-18Chemel, James L Cpa NEW41Bernardo Dominic
1011Jennifer K WaycottJapan2025-04-11Chanay, Jeffrey A Esq NEGOTIATION79Onyama Limba
1012Costa K DilliardGermany2025-04-06Commercial Press NEGOTIATION65Ivan Magalhaes
1013Murillo S RutaUnited Kingdom2025-04-18Truhlar And Truhlar Attys UNQUALIFIED43Xuxue Feng
1014Aditya R OstroskyUnited Kingdom2025-04-08Feltz Printing Service NEW19Xuxue Feng
1015Jones K BriddickArgentina2025-04-06Chanay, Jeffrey A Esq UNQUALIFIED67Onyama Limba
1016Arvin S CaldareraAustralia2025-04-14Feiner Bros NEGOTIATION19Ioni Bowcher
1017Silvio N MarrierCanada2025-04-28Rangoni Of Florence UNQUALIFIED44Onyama Limba
1018David F ChuiItaly2025-04-28Benton, John B Jr NEGOTIATION91Xuxue Feng
1019Faith I VocelkaCanada2025-04-25King, Christopher A Esq NEW57Amy Elsner
1020Isabel C SergiItaly2025-04-08Chanay, Jeffrey A Esq QUALIFIED3Anna Fali
1021Munro D SergiRussia2025-04-16Truhlar And Truhlar Attys NEW37Bernardo Dominic
1022Ivar A MaletArgentina2025-04-12Chemel, James L Cpa UNQUALIFIED81Bernardo Dominic
1023Juan O GlickArgentina2025-04-03Truhlar And Truhlar Attys PROPOSAL77Stephen Shaw
1024Ashley X ButtIndia2025-04-02Rangoni Of Florence UNQUALIFIED70Elwin Sharvill
1025Murillo K SlusarskiAustralia2025-04-29Rousseaux, Michael Esq QUALIFIED94Ioni Bowcher
1026Claire J GillianCanada2025-04-23Feltz Printing Service NEGOTIATION22Anna Fali
1027Wickens D DoeIndia2025-04-04Printing Dimensions NEW34Onyama Limba
1028Jones N AmigonIndia2025-04-29Feltz Printing Service PROPOSAL73Elwin Sharvill
1029Tony X NickaJapan2025-04-08Rangoni Of Florence RENEWAL95Elwin Sharvill
1030Isabel R SlusarskiItaly2025-04-20Printing Dimensions NEGOTIATION90Stephen Shaw
1031Wickens E FlosiJapan2025-04-21Printing Dimensions NEW88Bernardo Dominic
1032Rodrigues A GillianUnited Kingdom2025-04-19King, Christopher A Esq RENEWAL19Stephen Shaw
1033Silvio H WieserAustralia2025-04-25Chapman, Ross E Esq RENEWAL94Xuxue Feng
1034Maria O NickaIndia2025-04-16King, Christopher A Esq NEGOTIATION50Stephen Shaw
1035Leon H TollnerSpain2025-04-15Rousseaux, Michael Esq UNQUALIFIED55Xuxue Feng
1036Greenwood X FerenczSpain2025-04-13Morlong Associates UNQUALIFIED94Xuxue Feng
1037Costa N RimRussia2025-04-14Buckley Miller Wright RENEWAL70Asiya Javayant
1038Greenwood K VenereFrance2025-04-12Chapman, Ross E Esq NEW70Anna Fali
1039Octavia M ChuiUnited Kingdom2025-04-14Chemel, James L Cpa RENEWAL92Amy Elsner
1040Alejandro X InouyeFrance2025-05-01Rousseaux, Michael Esq NEGOTIATION88Stephen Shaw
1041Izzy X AlbaresFrance2025-04-30Commercial Press UNQUALIFIED17Anna Fali
1042Francesco B RimSpain2025-04-05Buckley Miller Wright UNQUALIFIED85Stephen Shaw
1043Nicolas D RoysterSpain2025-04-20Feltz Printing Service NEW22Xuxue Feng
1044Tony K OldroydBrazil2025-04-02Chapman, Ross E Esq NEW70Bernardo Dominic
1045Murillo S AmigonIndia2025-04-12Truhlar And Truhlar Attys NEW22Ioni Bowcher
1046Johnson K RutaItaly2025-04-11Feiner Bros UNQUALIFIED40Asiya Javayant
1047Misaki I SaylorsBrazil2025-04-13Feiner Bros NEGOTIATION8Anna Fali
1048Darci Y MaletGermany2025-04-12Commercial Press NEW31Xuxue Feng
1049Isabel B BologniaUnited Kingdom2025-04-10Chanay, Jeffrey A Esq QUALIFIED39Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Octavia M GarufiIndiaElwin Sharvill PROPOSAL
Alejandro W PaprockiFranceIvan Magalhaes NEGOTIATION
Silvio B GauchoAustraliaAsiya Javayant NEW
Jennifer K RutaAustraliaBernardo Dominic QUALIFIED
Smith L MarrierSpainStephen Shaw UNQUALIFIED
Misaki Z OstroskyIndiaOnyama Limba NEGOTIATION
Sinclair V WieserGermanyBernardo Dominic RENEWAL
Stacey P CaldareraSpainAsiya Javayant PROPOSAL
Misaki Q OstroskyRussiaElwin Sharvill NEW
Ricardo F OstroskyCanadaBernardo Dominic PROPOSAL
Munro C GillianGermanyOnyama Limba UNQUALIFIED
Mayumi A NickaUnited KingdomStephen Shaw NEGOTIATION
Smith K ButtArgentinaAmy Elsner UNQUALIFIED
Jones T VocelkaFranceIoni Bowcher PROPOSAL
Octavia L MaletGermanyIvan Magalhaes NEGOTIATION
Jennifer Z RimFranceIvan Magalhaes QUALIFIED
Misaki W VenereBrazilStephen Shaw NEW
Greenwood U GarufiUnited KingdomOnyama Limba UNQUALIFIED
David E PaprockiGermanyElwin Sharvill QUALIFIED
Juan I WaycottCanadaXuxue Feng QUALIFIED
Kadeem K MaletFranceAmy Elsner NEW
Murillo T MacleadBrazilAnna Fali PROPOSAL
Antonio B DoeIndiaAsiya Javayant UNQUALIFIED
Kadeem F FlosiAustraliaStephen Shaw QUALIFIED
Clifford U DarakjySpainAsiya Javayant PROPOSAL
Sinclair T PoquetteBrazilAmy Elsner RENEWAL
Emily E KolmetzIndiaBernardo Dominic UNQUALIFIED
Ashley V MaletBrazilOnyama Limba QUALIFIED
Johnson T TollnerRussiaIoni Bowcher PROPOSAL
Munro R BriddickBrazilAmy Elsner QUALIFIED
Nicolas U StensethFranceOnyama Limba NEW
Jennifer H PaprockiCanadaBernardo Dominic NEGOTIATION
Alejandro H FerenczUnited KingdomElwin Sharvill NEGOTIATION
Deepesh N WhobreyFranceIoni Bowcher UNQUALIFIED
Mujtaba S DarakjyJapanIoni Bowcher NEGOTIATION
Adams P MarrierFranceAnna Fali NEW
Isabel P BriddickSpainIvan Magalhaes NEW
Maria E OldroydSpainOnyama Limba NEGOTIATION
David N BowleyFranceBernardo Dominic PROPOSAL
Izzy P DoeAustraliaAsiya Javayant QUALIFIED
Kadeem X RulapaughSpainIvan Magalhaes NEW
Maisha F CaudyArgentinaAsiya Javayant RENEWAL
Ashley B MacleadGermanyElwin Sharvill PROPOSAL
Mujtaba I AmigonRussiaAnna Fali RENEWAL
Izzy I KolmetzItalyAsiya Javayant UNQUALIFIED
Mujtaba C CaldareraJapanXuxue Feng PROPOSAL
Deepesh C MorascaArgentinaAsiya Javayant RENEWAL
Isabel N FollerJapanBernardo Dominic NEW
Isabel U VocelkaBrazilAmy Elsner UNQUALIFIED
Claire T CaudyFranceAsiya Javayant QUALIFIED
Frozen Columns
Name
Antonio Z Garufi
Silvio I Bowley
Leon W Tollner
Arvin Q Glick
Arvin L Dilliard
Octavia N Garufi
Jeanfrancois E Vocelka
Julie B Flosi
Cody W Paprocki
Salvatore H Poquette
Clifford T Royster
Darci F Shinko
Maisha G Albares
Francesco O Rulapaugh
Mayumi L Rulapaugh
Antonio M Doe
Jefferson K Royster
Aika J Butt
Silvio E Amigon
Wickens W Nestle
Faith X Slusarski
Stacey O Schemmer
Salvatore D Nestle
Emily P Sergi
Leon Q Kusko
Antonio Q Poquette
Cody Z Paprocki
Ivar B Paprocki
Stacey B Bowley
Alejandro J Darakjy
Munro M Stenseth
Smith F Ferencz
Alejandro A Saylors
Leja F Bowley
Octavia K Amigon
Clifford I Glick
Rodrigues S Ruta
Stacey D Saylors
Isabel Y Schemmer
Sinclair O Ruta
Jennifer P Amigon
Kaitlin Z Slusarski
Sinclair Z Marrier
Aruna A Venere
Misaki F Malet
Wickens S Vocelka
Chavez H Kolmetz
Rodrigues D Garufi
Maria U Chui
Rodrigues I Figeroa
IdCountryDate
1000Japan2025-04-11
1001India2025-04-21
1002Australia2025-04-16
1003Spain2025-04-21
1004Argentina2025-04-18
1005United Kingdom2025-04-26
1006Japan2025-04-23
1007Russia2025-04-02
1008United Kingdom2025-04-08
1009France2025-05-01
1010Japan2025-04-16
1011United Kingdom2025-04-17
1012Canada2025-04-23
1013Germany2025-04-18
1014India2025-04-29
1015France2025-04-02
1016Argentina2025-04-20
1017Australia2025-04-02
1018Argentina2025-04-11
1019Spain2025-04-12
1020France2025-04-24
1021Italy2025-04-18
1022Japan2025-04-21
1023Germany2025-04-25
1024Canada2025-04-18
1025Canada2025-04-18
1026Canada2025-04-21
1027Germany2025-05-01
1028France2025-04-08
1029United Kingdom2025-04-12
1030India2025-04-26
1031Argentina2025-04-25
1032United Kingdom2025-04-26
1033India2025-04-05
1034Germany2025-04-17
1035Russia2025-04-04
1036France2025-04-26
1037Brazil2025-04-18
1038Russia2025-04-18
1039India2025-04-08
1040Spain2025-04-12
1041Germany2025-04-12
1042United Kingdom2025-04-25
1043Spain2025-04-02
1044Canada2025-04-14
1045Brazil2025-04-29
1046United Kingdom2025-04-17
1047United Kingdom2025-04-04
1048Germany2025-04-25
1049Italy2025-04-18

On-Demand Data

NameIdCountryDate
Nicolas I Rulapaugh1000Spain2025-04-25
Stacey F Venere1001United Kingdom2025-04-25
Clifford V Kolmetz1002Russia2025-04-20
Costa O Royster1003Japan2025-04-30
Kaitlin I Flosi1004Spain2025-04-15
Mayumi V Saylors1005Brazil2025-04-28
Faith A Briddick1006Argentina2025-04-04
Silvio E Tollner1007Italy2025-04-24
Greenwood F Ruta1008Germany2025-04-23
Maisha S Vocelka1009Spain2025-04-05
Jennifer D Schemmer1010India2025-04-04
Chavez G Inouye1011Brazil2025-04-07
Emily K Stenseth1012Japan2025-04-08
Aditya Y Glick1013France2025-04-12
Leja O Garufi1014Germany2025-04-12
Greenwood X Shinko1015India2025-04-08
Wickens E Rulapaugh1016Spain2025-04-03
Ricardo X Stenseth1017Japan2025-04-06
Aika G Royster1018Spain2025-04-25
Antonio M Saylors1019Canada2025-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer K OstroskyIndiaElwin Sharvill NEGOTIATION
Octavia H FerenczBrazilAnna Fali NEW
Francesco Q NickaFranceAsiya Javayant NEW
Rodrigues G FigeroaBrazilIoni Bowcher QUALIFIED
Mayumi Z OldroydAustraliaBernardo Dominic PROPOSAL
Murillo H SergiBrazilXuxue Feng NEW
Deepesh S StockhamIndiaOnyama Limba NEGOTIATION
Kaitlin W RoysterGermanyBernardo Dominic RENEWAL
Faith K OldroydArgentinaAnna Fali RENEWAL
Faith Q SaylorsCanadaAnna Fali QUALIFIED
Cody E BowleyFranceXuxue Feng RENEWAL
Juan N KolmetzGermanyAsiya Javayant NEW
Stacey A WieserJapanIoni Bowcher PROPOSAL
Jennifer E GarufiUnited KingdomStephen Shaw UNQUALIFIED
Aika B GauchoItalyAsiya Javayant QUALIFIED
Ricardo P TollnerCanadaStephen Shaw UNQUALIFIED
Jennifer Y CaudyFranceXuxue Feng NEW
Emily H FigeroaItalyIvan Magalhaes PROPOSAL
Nicolas M SlusarskiArgentinaOnyama Limba PROPOSAL
Clifford O BologniaItalyAmy Elsner QUALIFIED
Julie V FlosiCanadaAnna Fali PROPOSAL
Antonio U SaylorsAustraliaElwin Sharvill NEGOTIATION
Francesco L GauchoRussiaIvan Magalhaes NEGOTIATION
Maria A GlickSpainBernardo Dominic PROPOSAL
Munro L StockhamGermanyAnna Fali QUALIFIED
James I IturbideCanadaIoni Bowcher NEW
Wickens Q ButtFranceIoni Bowcher QUALIFIED
Aruna I WhobreyFranceXuxue Feng UNQUALIFIED
Costa F CaldareraGermanyIoni Bowcher RENEWAL
Tony M MarrierCanadaOnyama Limba UNQUALIFIED
Claire U ShinkoJapanOnyama Limba UNQUALIFIED
Aika S InouyeJapanElwin Sharvill QUALIFIED
Antonio F FigeroaCanadaXuxue Feng RENEWAL
Mayumi H TollnerJapanAsiya Javayant NEW
Aruna U BologniaJapanStephen Shaw NEGOTIATION
Clifford C InouyeAustraliaAmy Elsner RENEWAL
Faith A DoeJapanOnyama Limba NEGOTIATION
Antonio S RulapaughItalyOnyama Limba NEGOTIATION
Misaki X GarufiFranceAmy Elsner PROPOSAL
Octavia Y GillianSpainAmy Elsner 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>