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
Chavez X ChuiFranceAmy Elsner PROPOSAL
Octavia C MacleadItalyAsiya Javayant PROPOSAL
Leon Y GarufiSpainStephen Shaw PROPOSAL
Mayumi W AmigonJapanIvan Magalhaes NEGOTIATION
Deepesh X InouyeSpainIvan Magalhaes NEGOTIATION
Kaitlin S StockhamJapanAsiya Javayant RENEWAL
Emily Q StockhamUnited KingdomStephen Shaw RENEWAL
Francesco Y CaudyArgentinaBernardo Dominic NEW
Munro F MorascaGermanyAnna Fali NEGOTIATION
David V GlickGermanyAmy Elsner NEGOTIATION
Wickens L FollerRussiaBernardo Dominic RENEWAL
Julie U GillianIndiaElwin Sharvill UNQUALIFIED
Octavia M NickaFranceStephen Shaw NEW
Ivar P CaudyAustraliaAsiya Javayant UNQUALIFIED
Sinclair Z RimItalyIoni Bowcher NEGOTIATION
Johnson S MacleadCanadaAmy Elsner RENEWAL
Faith L SergiFranceOnyama Limba RENEWAL
Kaitlin V AmigonAustraliaOnyama Limba NEGOTIATION
Chavez W MaletSpainXuxue Feng UNQUALIFIED
Mujtaba R WhobreyGermanyXuxue Feng PROPOSAL
Morrow T StensethJapanAsiya Javayant QUALIFIED
Maria B GarufiArgentinaStephen Shaw NEGOTIATION
Aika B FerenczSpainAmy Elsner UNQUALIFIED
Stacey U RulapaughAustraliaStephen Shaw PROPOSAL
Chavez P BowleyAustraliaAsiya Javayant UNQUALIFIED
Cody B MarrierGermanyElwin Sharvill RENEWAL
Johnson I MacleadBrazilXuxue Feng NEW
Antonio K BologniaBrazilElwin Sharvill NEGOTIATION
Faith Y FigeroaJapanStephen Shaw NEW
Mujtaba F SaylorsBrazilXuxue Feng RENEWAL
Jefferson Y ButtArgentinaXuxue Feng NEGOTIATION
Emily Q AlbaresItalyAsiya Javayant PROPOSAL
Isabel R SaylorsFranceOnyama Limba QUALIFIED
James O CaldareraItalyAsiya Javayant PROPOSAL
Aika J RimGermanyIoni Bowcher QUALIFIED
Cody A GillianFranceOnyama Limba NEW
Deepesh G PerinItalyIvan Magalhaes NEW
Salvatore B MaletAustraliaBernardo Dominic PROPOSAL
Silvio U KuskoJapanAmy Elsner PROPOSAL
Octavia V PerinSpainAmy Elsner QUALIFIED
Maisha U PerinUnited KingdomIvan Magalhaes NEGOTIATION
Maisha O CaudySpainAmy Elsner RENEWAL
Rodrigues I FigeroaGermanyBernardo Dominic NEW
Isabel A DilliardItalyIvan Magalhaes NEGOTIATION
Emily M FollerRussiaIoni Bowcher PROPOSAL
Mujtaba T RutaArgentinaIoni Bowcher QUALIFIED
Jones C DoeFranceStephen Shaw NEGOTIATION
Mayumi V KuskoItalyAsiya Javayant NEW
Julie D MaletAustraliaIvan Magalhaes NEW
Leon B RimSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maria U GauchoCanadaIoni Bowcher PROPOSAL
Adams X DoeIndiaOnyama Limba QUALIFIED
Darci O FlosiBrazilXuxue Feng NEGOTIATION
Alejandro O FollerArgentinaStephen Shaw QUALIFIED
Mujtaba A GillianUnited KingdomXuxue Feng QUALIFIED
Greenwood F DoeRussiaElwin Sharvill PROPOSAL
Emily Z PerinItalyXuxue Feng RENEWAL
David V PaprockiBrazilBernardo Dominic UNQUALIFIED
Aditya N PerinItalyIvan Magalhaes UNQUALIFIED
Maria H PerinItalyElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson W ShinkoBrazil2026-08-08Chapman, Ross E Esq NEGOTIATION26Asiya Javayant
1001Stacey G BologniaRussia2026-08-01Printing Dimensions NEW69Ioni Bowcher
1002Misaki M KuskoIndia2026-07-25Rangoni Of Florence RENEWAL87Elwin Sharvill
1003Nicolas M GauchoBrazil2026-08-15Chemel, James L Cpa NEW78Bernardo Dominic
1004Cody U BowleyBrazil2026-08-23Morlong Associates PROPOSAL13Stephen Shaw
1005Nicolas T VenereAustralia2026-08-01Chapman, Ross E Esq RENEWAL28Onyama Limba
1006Alejandro C KolmetzSpain2026-08-12Rangoni Of Florence UNQUALIFIED57Ivan Magalhaes
1007Emily O VenereRussia2026-08-17Feltz Printing Service NEW51Elwin Sharvill
1008Clifford W AmigonBrazil2026-08-18Rangoni Of Florence PROPOSAL70Ioni Bowcher
1009Clifford I MaletIndia2026-08-19Commercial Press NEW97Bernardo Dominic
1010Rodrigues L PerinSpain2026-08-04King, Christopher A Esq RENEWAL8Amy Elsner
1011Jennifer P KuskoIndia2026-08-16Commercial Press UNQUALIFIED33Stephen Shaw
1012Ricardo U MarrierAustralia2026-07-25Truhlar And Truhlar Attys NEW94Onyama Limba
1013Francesco G KolmetzCanada2026-07-31Morlong Associates NEGOTIATION86Asiya Javayant
1014Darci V GillianFrance2026-08-18Feiner Bros RENEWAL7Stephen Shaw
1015Silvio S TollnerCanada2026-07-27Dorl, James J Esq RENEWAL1Amy Elsner
1016Ivar F WhobreyArgentina2026-07-29Chemel, James L Cpa NEW94Elwin Sharvill
1017Faith H ChuiJapan2026-08-08Rousseaux, Michael Esq NEGOTIATION83Bernardo Dominic
1018Jeanfrancois I BologniaGermany2026-08-19Dorl, James J Esq RENEWAL2Xuxue Feng
1019Octavia B NickaJapan2026-08-12Commercial Press RENEWAL70Amy Elsner
1020Wickens N WaycottJapan2026-08-17Morlong Associates NEGOTIATION97Stephen Shaw
1021Francesco G ButtItaly2026-08-23Chemel, James L Cpa UNQUALIFIED19Amy Elsner
1022Clifford O SergiCanada2026-08-21Benton, John B Jr QUALIFIED38Amy Elsner
1023Leon S NickaItaly2026-08-23Feltz Printing Service PROPOSAL76Onyama Limba
1024Chavez T ButtFrance2026-08-04Benton, John B Jr NEGOTIATION61Amy Elsner
1025Jefferson W PoquetteIndia2026-07-27Benton, John B Jr NEGOTIATION17Onyama Limba
1026Misaki E PoquetteFrance2026-08-06Feltz Printing Service PROPOSAL65Anna Fali
1027Johnson Y SlusarskiBrazil2026-07-28Truhlar And Truhlar Attys RENEWAL7Asiya Javayant
1028Francesco V KolmetzArgentina2026-08-17Buckley Miller Wright PROPOSAL62Amy Elsner
1029Costa E OstroskyArgentina2026-07-26Chapman, Ross E Esq QUALIFIED90Ioni Bowcher
1030Cody V FigeroaArgentina2026-07-31Feltz Printing Service NEGOTIATION27Stephen Shaw
1031Silvio R RoysterArgentina2026-08-13King, Christopher A Esq NEGOTIATION26Ioni Bowcher
1032Tony O SlusarskiRussia2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED69Bernardo Dominic
1033Jones K StensethUnited Kingdom2026-08-20Buckley Miller Wright QUALIFIED0Ioni Bowcher
1034Kadeem Q AlbaresArgentina2026-08-09Dorl, James J Esq PROPOSAL26Elwin Sharvill
1035Tony Z SlusarskiItaly2026-08-19Dorl, James J Esq RENEWAL69Stephen Shaw
1036David A BriddickAustralia2026-08-17Rousseaux, Michael Esq PROPOSAL59Ioni Bowcher
1037Antonio L AmigonJapan2026-08-17Morlong Associates PROPOSAL51Xuxue Feng
1038Francesco Q BriddickIndia2026-08-15Commercial Press RENEWAL46Asiya Javayant
1039Maria U PaprockiAustralia2026-08-02Chemel, James L Cpa UNQUALIFIED0Ivan Magalhaes
1040Leja P BowleyGermany2026-08-15Morlong Associates RENEWAL55Onyama Limba
1041Murillo C CaudyAustralia2026-07-31Chapman, Ross E Esq NEGOTIATION73Bernardo Dominic
1042Morrow S PoquetteIndia2026-07-27Benton, John B Jr PROPOSAL16Amy Elsner
1043Misaki E SchemmerItaly2026-08-13Printing Dimensions UNQUALIFIED4Onyama Limba
1044Nicolas O FerenczSpain2026-08-12Dorl, James J Esq NEGOTIATION21Amy Elsner
1045James D StensethUnited Kingdom2026-08-09Morlong Associates NEW94Onyama Limba
1046Clifford X AlbaresJapan2026-08-10Benton, John B Jr NEGOTIATION57Amy Elsner
1047Rodrigues A RulapaughCanada2026-08-06Rangoni Of Florence PROPOSAL20Ioni Bowcher
1048Chavez J ChuiBrazil2026-08-04Rangoni Of Florence QUALIFIED61Asiya Javayant
1049Izzy G SergiBrazil2026-08-16Morlong Associates NEW17Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David H ShinkoItalyXuxue Feng NEW
Jeanfrancois K AmigonUnited KingdomIoni Bowcher NEGOTIATION
Leja N MacleadIndiaIoni Bowcher QUALIFIED
Sinclair D MaletGermanyIvan Magalhaes PROPOSAL
Munro T MacleadBrazilIoni Bowcher RENEWAL
Kaitlin L MorascaIndiaElwin Sharvill RENEWAL
Faith G CampainBrazilOnyama Limba UNQUALIFIED
Mayumi F NickaArgentinaXuxue Feng NEGOTIATION
Emily N KolmetzFranceAmy Elsner QUALIFIED
Emily D DilliardAustraliaIoni Bowcher UNQUALIFIED
Leon E KuskoAustraliaIvan Magalhaes NEW
Ashley P InouyeAustraliaStephen Shaw UNQUALIFIED
Izzy L NickaAustraliaAsiya Javayant RENEWAL
Mujtaba L BowleyGermanyIvan Magalhaes NEGOTIATION
Cody I StockhamJapanIvan Magalhaes PROPOSAL
Silvio M FlosiBrazilBernardo Dominic NEGOTIATION
Aditya G WhobreyCanadaOnyama Limba NEGOTIATION
Cody U RimRussiaStephen Shaw NEGOTIATION
Jefferson L GauchoFranceElwin Sharvill QUALIFIED
Juan V RutaSpainIvan Magalhaes QUALIFIED
Juan F KuskoAustraliaOnyama Limba NEW
Alejandro B MarrierSpainAnna Fali RENEWAL
Jones Q WieserJapanAsiya Javayant QUALIFIED
Deepesh I RutaFranceOnyama Limba PROPOSAL
Antonio W BowleyCanadaIoni Bowcher NEGOTIATION
Mayumi C VenereFranceStephen Shaw RENEWAL
Izzy D PerinIndiaBernardo Dominic UNQUALIFIED
Adams J CampainFranceIoni Bowcher NEW
Munro U SergiAustraliaBernardo Dominic UNQUALIFIED
Aditya F OldroydFranceIvan Magalhaes NEGOTIATION
Nicolas R AlbaresJapanAmy Elsner PROPOSAL
Darci Y DoeGermanyOnyama Limba QUALIFIED
Murillo R CaudyFranceAsiya Javayant PROPOSAL
Jennifer L MacleadJapanIoni Bowcher QUALIFIED
Nicolas E ChuiFranceAmy Elsner RENEWAL
Wickens G WieserSpainOnyama Limba NEGOTIATION
Deepesh U FerenczArgentinaStephen Shaw NEW
James W SergiGermanyXuxue Feng UNQUALIFIED
Cody N OstroskyFranceStephen Shaw NEW
Mayumi J MorascaRussiaOnyama Limba QUALIFIED
Cody R MorascaFranceXuxue Feng NEGOTIATION
Rodrigues J SaylorsUnited KingdomXuxue Feng RENEWAL
Kaitlin E DoeGermanyAsiya Javayant QUALIFIED
Darci W GillianJapanXuxue Feng NEGOTIATION
Chavez A CaudyIndiaIvan Magalhaes PROPOSAL
Ivar R NestleBrazilOnyama Limba NEW
Rodrigues A BriddickJapanIoni Bowcher NEW
James S MarrierItalyXuxue Feng QUALIFIED
David Q FlosiBrazilOnyama Limba NEW
Cody I DoeAustraliaAnna Fali QUALIFIED
Frozen Columns
Name
Costa F Vocelka
James M Bolognia
Costa L Marrier
Leon D Caudy
Ivar F Nicka
Ricardo L Butt
Salvatore C Garufi
Salvatore J Poquette
Chavez K Wieser
Maria Z Royster
Jefferson K Figeroa
Juan A Amigon
Leja N Perin
Chavez K Venere
Juan C Stenseth
Clifford S Nicka
Jones H Nestle
Maria S Wieser
Murillo P Iturbide
Cody K Ruta
Jones U Ferencz
Jeanfrancois K Sergi
Silvio W Dilliard
Claire X Kolmetz
Rodrigues I Paprocki
Greenwood U Saylors
Isabel I Shinko
Wickens W Foller
Faith R Butt
Aika L Maclead
Salvatore O Paprocki
Juan T Kolmetz
Aika A Ostrosky
Costa J Whobrey
Francesco F Gillian
David T Kolmetz
Antonio O Rulapaugh
Misaki Q Nicka
James T Amigon
Emily I Garufi
Kaitlin A Ostrosky
Alejandro K Shinko
Murillo B Ruta
Smith O Campain
Deepesh Y Inouye
Johnson D Glick
Arvin O Albares
Darci D Foller
Wickens G Sergi
Rodrigues K Stenseth
IdCountryDate
1000Canada2026-07-31
1001United Kingdom2026-08-12
1002Canada2026-07-28
1003Australia2026-07-25
1004France2026-07-25
1005Argentina2026-08-16
1006Argentina2026-08-18
1007Japan2026-07-28
1008Germany2026-07-25
1009Argentina2026-08-14
1010India2026-08-06
1011Argentina2026-08-11
1012Canada2026-08-08
1013Russia2026-07-28
1014Argentina2026-07-26
1015Russia2026-08-20
1016Japan2026-07-28
1017Japan2026-08-08
1018Brazil2026-08-21
1019Spain2026-08-08
1020Russia2026-08-12
1021Argentina2026-08-08
1022Russia2026-07-27
1023Argentina2026-08-11
1024United Kingdom2026-08-23
1025Argentina2026-08-08
1026United Kingdom2026-08-15
1027Russia2026-08-02
1028Russia2026-08-05
1029France2026-08-19
1030Japan2026-07-31
1031United Kingdom2026-08-16
1032France2026-08-19
1033Russia2026-08-09
1034Canada2026-08-03
1035Japan2026-07-28
1036Germany2026-07-27
1037Japan2026-08-13
1038United Kingdom2026-08-15
1039Australia2026-08-15
1040Canada2026-07-28
1041Brazil2026-08-17
1042United Kingdom2026-08-09
1043Japan2026-08-13
1044Germany2026-08-20
1045Australia2026-08-13
1046India2026-07-30
1047India2026-07-31
1048Japan2026-08-14
1049United Kingdom2026-08-03

On-Demand Data

NameIdCountryDate
Murillo I Nicka1000Argentina2026-08-13
Alejandro W Bowley1001India2026-07-29
Jeanfrancois M Vocelka1002Canada2026-08-15
Morrow Q Garufi1003Italy2026-08-11
Isabel A Iturbide1004Australia2026-08-23
David S Bowley1005Italy2026-08-03
Aika A Paprocki1006France2026-07-29
Izzy M Morasca1007Argentina2026-08-17
Izzy T Saylors1008Russia2026-08-01
Tony S Rulapaugh1009France2026-08-11
Johnson H Wieser1010Spain2026-08-12
Wickens T Kusko1011India2026-07-30
David U Morasca1012India2026-08-21
Aruna R Campain1013Australia2026-08-12
Leja V Rim1014Brazil2026-07-31
Francesco Q Wieser1015Japan2026-08-16
Ashley I Vocelka1016France2026-08-05
Julie Q Inouye1017Spain2026-08-19
Jennifer Y Ostrosky1018Canada2026-08-15
Aruna W Bowley1019United Kingdom2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa Q WieserCanadaOnyama Limba UNQUALIFIED
David Q BriddickGermanyAsiya Javayant PROPOSAL
David S PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Salvatore M KolmetzFranceOnyama Limba QUALIFIED
Ivar Q KuskoSpainAsiya Javayant QUALIFIED
Deepesh V GauchoFranceBernardo Dominic QUALIFIED
Alejandro V GlickJapanAmy Elsner UNQUALIFIED
Stacey W ShinkoIndiaStephen Shaw NEGOTIATION
Faith X BriddickIndiaIoni Bowcher NEW
Wickens D SaylorsIndiaAnna Fali PROPOSAL
Ashley N GlickItalyAmy Elsner QUALIFIED
James R RimItalyOnyama Limba RENEWAL
Francesco G SlusarskiUnited KingdomAsiya Javayant NEW
Leja A KolmetzBrazilOnyama Limba UNQUALIFIED
Isabel B PoquetteBrazilOnyama Limba QUALIFIED
Mujtaba H CaudyFranceXuxue Feng RENEWAL
Tony W DilliardGermanyAmy Elsner NEW
Jeanfrancois F VocelkaSpainOnyama Limba UNQUALIFIED
Isabel M RimUnited KingdomIvan Magalhaes UNQUALIFIED
Adams N StockhamCanadaAmy Elsner NEGOTIATION
Maisha P FollerUnited KingdomElwin Sharvill QUALIFIED
Arvin V BriddickItalyElwin Sharvill RENEWAL
Clifford Q IturbideJapanBernardo Dominic RENEWAL
Octavia B DoeGermanyIvan Magalhaes NEGOTIATION
Mayumi E TollnerSpainElwin Sharvill NEGOTIATION
Maria L StockhamFranceAmy Elsner QUALIFIED
Stacey A OstroskyAustraliaAnna Fali QUALIFIED
Darci Z MacleadArgentinaBernardo Dominic UNQUALIFIED
Ricardo M RulapaughSpainStephen Shaw NEGOTIATION
Mujtaba B SergiIndiaAnna Fali QUALIFIED
Jeanfrancois D VenereUnited KingdomAsiya Javayant NEW
Kaitlin J StensethRussiaOnyama Limba QUALIFIED
Aditya I PoquetteJapanBernardo Dominic PROPOSAL
James L GauchoAustraliaXuxue Feng RENEWAL
Kaitlin V PaprockiItalyIoni Bowcher QUALIFIED
Munro X AmigonGermanyOnyama Limba NEGOTIATION
Adams P SaylorsArgentinaAmy Elsner RENEWAL
Francesco H BologniaSpainStephen Shaw QUALIFIED
David G SergiItalyOnyama Limba RENEWAL
Aditya J CaudyArgentinaAmy Elsner 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>