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
Rodrigues M DarakjySpainIvan Magalhaes RENEWAL
Claire L FollerCanadaBernardo Dominic NEW
Stacey M RutaArgentinaOnyama Limba QUALIFIED
Salvatore F SlusarskiGermanyXuxue Feng QUALIFIED
Stacey Y InouyeCanadaIoni Bowcher RENEWAL
David F RoysterGermanyAsiya Javayant QUALIFIED
Jones C MaletUnited KingdomStephen Shaw QUALIFIED
Rodrigues V FollerJapanIoni Bowcher NEW
Julie A WieserAustraliaIvan Magalhaes UNQUALIFIED
Wickens K CaldareraFranceIoni Bowcher NEW
Smith P CaudyGermanyBernardo Dominic PROPOSAL
Jefferson Y CaldareraSpainAsiya Javayant PROPOSAL
Tony N KuskoRussiaAmy Elsner QUALIFIED
Munro Y RoysterItalyIoni Bowcher QUALIFIED
Ashley T KolmetzUnited KingdomAsiya Javayant NEGOTIATION
Juan V OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba L SchemmerAustraliaOnyama Limba PROPOSAL
Jones T RutaArgentinaOnyama Limba RENEWAL
Munro U CampainBrazilElwin Sharvill RENEWAL
Ricardo X MacleadGermanyAsiya Javayant NEW
Kadeem B MaletAustraliaAmy Elsner RENEWAL
Smith F GauchoSpainBernardo Dominic RENEWAL
Deepesh D BologniaArgentinaOnyama Limba PROPOSAL
Maisha E TollnerRussiaIoni Bowcher QUALIFIED
Johnson C FollerItalyIvan Magalhaes RENEWAL
Darci L SlusarskiArgentinaAmy Elsner RENEWAL
Ashley K MorascaBrazilIvan Magalhaes NEGOTIATION
Kadeem W ShinkoUnited KingdomBernardo Dominic NEGOTIATION
Morrow R KuskoItalyBernardo Dominic NEGOTIATION
Silvio I BologniaAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois X SaylorsUnited KingdomAmy Elsner RENEWAL
Mayumi F SchemmerCanadaAsiya Javayant PROPOSAL
Leja B KolmetzAustraliaAsiya Javayant QUALIFIED
Jeanfrancois D WaycottJapanIvan Magalhaes UNQUALIFIED
Arvin V RimCanadaXuxue Feng QUALIFIED
Leja C TollnerIndiaOnyama Limba NEGOTIATION
Sinclair L CaudyJapanAnna Fali UNQUALIFIED
Cody J IturbideGermanyIoni Bowcher PROPOSAL
Francesco C WaycottBrazilAmy Elsner NEW
Adams Z NestleArgentinaBernardo Dominic UNQUALIFIED
Emily K MaletGermanyStephen Shaw RENEWAL
Julie A InouyeGermanyAnna Fali UNQUALIFIED
Leon X BologniaIndiaElwin Sharvill PROPOSAL
Clifford N ChuiArgentinaAnna Fali UNQUALIFIED
Juan L BriddickGermanyStephen Shaw PROPOSAL
Deepesh U SergiGermanyXuxue Feng UNQUALIFIED
Morrow F ButtRussiaBernardo Dominic PROPOSAL
Octavia U MacleadSpainAnna Fali PROPOSAL
Mujtaba V AmigonFranceOnyama Limba UNQUALIFIED
James H ButtBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki T RoysterFranceOnyama Limba RENEWAL
Jefferson N DilliardRussiaAmy Elsner PROPOSAL
Morrow N RoysterSpainXuxue Feng PROPOSAL
Arvin E MarrierAustraliaXuxue Feng NEW
Ivar Y OstroskyAustraliaAmy Elsner NEW
Mujtaba H GlickUnited KingdomOnyama Limba QUALIFIED
Kaitlin F InouyeIndiaAnna Fali NEW
Faith E VenereFranceOnyama Limba NEW
Francesco R PoquetteRussiaIoni Bowcher NEGOTIATION
Francesco Y RoysterItalyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas G DarakjyCanada2025-06-15Feiner Bros UNQUALIFIED1Elwin Sharvill
1001Munro G PerinRussia2025-05-25Buckley Miller Wright NEGOTIATION8Amy Elsner
1002Stacey O GlickFrance2025-06-03Feltz Printing Service NEGOTIATION28Anna Fali
1003Jones E KolmetzFrance2025-06-03Chemel, James L Cpa UNQUALIFIED82Ivan Magalhaes
1004Mujtaba H PoquetteJapan2025-05-31Feiner Bros PROPOSAL70Asiya Javayant
1005Kaitlin K MaletAustralia2025-06-08Rangoni Of Florence UNQUALIFIED62Anna Fali
1006Mayumi D FerenczJapan2025-06-03Rangoni Of Florence QUALIFIED26Ioni Bowcher
1007Aditya F FigeroaGermany2025-06-13Chapman, Ross E Esq RENEWAL21Onyama Limba
1008David O BowleyUnited Kingdom2025-06-13Buckley Miller Wright RENEWAL17Xuxue Feng
1009Mayumi S DilliardGermany2025-06-14Truhlar And Truhlar Attys NEGOTIATION12Anna Fali
1010Juan E BowleyFrance2025-05-20Chanay, Jeffrey A Esq PROPOSAL30Bernardo Dominic
1011Ivar P DoeIndia2025-06-07Chemel, James L Cpa QUALIFIED39Anna Fali
1012Rodrigues G ShinkoIndia2025-06-09Rangoni Of Florence UNQUALIFIED0Xuxue Feng
1013Rodrigues O GarufiGermany2025-05-31King, Christopher A Esq RENEWAL13Anna Fali
1014Morrow G RimRussia2025-05-31Rousseaux, Michael Esq NEW64Ioni Bowcher
1015Alejandro S GarufiUnited Kingdom2025-05-24Feltz Printing Service RENEWAL85Ioni Bowcher
1016Aika O CaudySpain2025-05-26Chapman, Ross E Esq PROPOSAL77Asiya Javayant
1017Isabel A AmigonArgentina2025-05-30Chemel, James L Cpa NEGOTIATION95Xuxue Feng
1018Mujtaba B VocelkaJapan2025-05-28Printing Dimensions NEW32Bernardo Dominic
1019Ricardo K PaprockiArgentina2025-06-06King, Christopher A Esq PROPOSAL95Amy Elsner
1020Salvatore U KuskoUnited Kingdom2025-06-02Benton, John B Jr QUALIFIED85Ivan Magalhaes
1021James Q InouyeCanada2025-05-31Chemel, James L Cpa NEGOTIATION35Onyama Limba
1022Wickens X OldroydSpain2025-06-10Chemel, James L Cpa NEGOTIATION19Ioni Bowcher
1023Smith E CaldareraArgentina2025-05-20Chanay, Jeffrey A Esq QUALIFIED29Stephen Shaw
1024Deepesh S BowleyJapan2025-05-29Chapman, Ross E Esq PROPOSAL67Ivan Magalhaes
1025Adams O FlosiItaly2025-05-23Feltz Printing Service UNQUALIFIED20Amy Elsner
1026Misaki G KolmetzIndia2025-06-14Chemel, James L Cpa PROPOSAL90Xuxue Feng
1027Maria N PaprockiUnited Kingdom2025-05-30Feiner Bros QUALIFIED70Elwin Sharvill
1028Francesco Y WhobreyRussia2025-06-18Dorl, James J Esq PROPOSAL37Amy Elsner
1029Chavez Q SchemmerRussia2025-06-16Commercial Press NEW13Xuxue Feng
1030Arvin T NickaUnited Kingdom2025-06-16Chanay, Jeffrey A Esq QUALIFIED82Bernardo Dominic
1031Octavia X StensethJapan2025-05-20Chemel, James L Cpa RENEWAL77Stephen Shaw
1032Mujtaba L GauchoUnited Kingdom2025-05-21Rangoni Of Florence NEW52Anna Fali
1033Smith G DoeGermany2025-06-04Rousseaux, Michael Esq QUALIFIED88Xuxue Feng
1034Julie A GauchoFrance2025-05-22Rangoni Of Florence NEW21Anna Fali
1035Alejandro J BowleyFrance2025-06-17King, Christopher A Esq QUALIFIED59Anna Fali
1036Costa C SchemmerCanada2025-05-27King, Christopher A Esq NEW2Anna Fali
1037Smith U DoeAustralia2025-05-25Buckley Miller Wright NEW25Anna Fali
1038Sinclair G NickaJapan2025-05-28Printing Dimensions NEW46Amy Elsner
1039Leja V NickaItaly2025-06-17Chemel, James L Cpa RENEWAL40Anna Fali
1040Sinclair M StensethCanada2025-05-23Commercial Press NEGOTIATION74Anna Fali
1041Isabel P PaprockiItaly2025-06-01Dorl, James J Esq QUALIFIED19Xuxue Feng
1042Alejandro K WieserSpain2025-05-29Morlong Associates QUALIFIED34Asiya Javayant
1043Aruna N BowleyFrance2025-06-04Dorl, James J Esq PROPOSAL79Bernardo Dominic
1044Arvin G StockhamSpain2025-06-13Morlong Associates QUALIFIED37Asiya Javayant
1045Aika E AmigonFrance2025-05-20King, Christopher A Esq NEW45Ioni Bowcher
1046Sinclair E MacleadSpain2025-05-22Feltz Printing Service NEW99Ivan Magalhaes
1047Mayumi Q FollerBrazil2025-06-07Benton, John B Jr RENEWAL48Xuxue Feng
1048Aditya T FigeroaJapan2025-05-28Rangoni Of Florence RENEWAL34Xuxue Feng
1049Greenwood W RulapaughGermany2025-05-23Commercial Press PROPOSAL38Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Deepesh T VenereUnited KingdomStephen Shaw UNQUALIFIED
Jennifer Z TollnerFranceAsiya Javayant QUALIFIED
David Q DilliardItalyElwin Sharvill RENEWAL
Murillo O InouyeAustraliaAnna Fali UNQUALIFIED
Alejandro U WieserRussiaAsiya Javayant PROPOSAL
Tony D VenereArgentinaBernardo Dominic PROPOSAL
Antonio I KolmetzBrazilAmy Elsner QUALIFIED
Johnson D SergiRussiaIvan Magalhaes QUALIFIED
Kadeem I DarakjyUnited KingdomAnna Fali RENEWAL
James F FlosiSpainElwin Sharvill NEW
Morrow Y ChuiCanadaStephen Shaw NEGOTIATION
David F AmigonItalyAsiya Javayant PROPOSAL
Emily A ShinkoItalyOnyama Limba NEGOTIATION
Arvin Z FlosiRussiaXuxue Feng UNQUALIFIED
Salvatore S BologniaJapanOnyama Limba RENEWAL
Nicolas U DarakjyFranceIoni Bowcher NEGOTIATION
Aika X RimIndiaBernardo Dominic QUALIFIED
Kadeem M StensethCanadaAmy Elsner QUALIFIED
Maisha M DarakjyUnited KingdomAmy Elsner NEGOTIATION
Kaitlin R ButtArgentinaAnna Fali PROPOSAL
David F GarufiItalyAsiya Javayant NEGOTIATION
Adams M CaldareraArgentinaStephen Shaw NEGOTIATION
Faith U DoeAustraliaXuxue Feng RENEWAL
Arvin M WhobreyArgentinaOnyama Limba NEGOTIATION
Sinclair A NickaJapanIvan Magalhaes RENEWAL
Johnson T WieserAustraliaXuxue Feng NEW
Antonio Q ShinkoRussiaAnna Fali UNQUALIFIED
Faith J SchemmerRussiaAnna Fali QUALIFIED
Greenwood F VocelkaUnited KingdomAnna Fali UNQUALIFIED
Kadeem K CaudyRussiaAnna Fali QUALIFIED
Jefferson Q InouyeFranceOnyama Limba NEGOTIATION
Leja N TollnerIndiaXuxue Feng QUALIFIED
Kaitlin S MarrierCanadaAsiya Javayant PROPOSAL
Sinclair V BologniaFranceAmy Elsner UNQUALIFIED
Ivar D CaldareraSpainStephen Shaw RENEWAL
Cody H GauchoFranceAnna Fali UNQUALIFIED
Mayumi V KuskoJapanOnyama Limba RENEWAL
Jones W NestleItalyOnyama Limba QUALIFIED
Rodrigues D CampainBrazilOnyama Limba NEGOTIATION
Rodrigues Z MacleadCanadaIoni Bowcher UNQUALIFIED
Maria P MacleadUnited KingdomBernardo Dominic NEGOTIATION
James L WhobreyItalyStephen Shaw NEGOTIATION
Faith B InouyeUnited KingdomXuxue Feng QUALIFIED
Izzy F MaletBrazilAmy Elsner NEGOTIATION
Kadeem Q RoysterAustraliaBernardo Dominic PROPOSAL
Jennifer T SaylorsAustraliaElwin Sharvill NEGOTIATION
Maria W WhobreyArgentinaOnyama Limba NEW
Emily X FigeroaRussiaStephen Shaw RENEWAL
Adams Y OldroydSpainIvan Magalhaes PROPOSAL
Greenwood M OstroskyJapanAnna Fali NEW
Frozen Columns
Name
Wickens J Stockham
Claire N Marrier
Antonio G Rim
Chavez U Iturbide
Leon W Morasca
Maria I Dilliard
Tony U Doe
Stacey D Waycott
Ricardo Y Caldarera
Mujtaba V Kusko
Arvin F Foller
Aruna V Shinko
Darci U Briddick
Deepesh L Morasca
Cody N Chui
Francesco W Bolognia
Maria I Perin
Kadeem U Whobrey
Arvin W Vocelka
Jeanfrancois T Kusko
Emily M Briddick
Francesco V Ostrosky
Ricardo Y Rim
Munro Z Darakjy
Tony S Amigon
Munro Y Venere
Aika S Royster
Jones M Wieser
Maisha Q Royster
Greenwood A Caldarera
Ricardo C Caldarera
David R Shinko
Kadeem P Chui
Juan J Foller
Cody P Dilliard
Chavez R Doe
Jefferson F Dilliard
Mujtaba A Kolmetz
Rodrigues A Oldroyd
Emily D Stenseth
Rodrigues Y Gillian
David Z Doe
Francesco N Venere
Salvatore S Kolmetz
Clifford F Marrier
Maisha T Nicka
Misaki U Gillian
Kadeem E Rulapaugh
Mujtaba A Albares
Munro L Sergi
IdCountryDate
1000Russia2025-05-26
1001Argentina2025-06-09
1002Germany2025-05-22
1003United Kingdom2025-05-31
1004Argentina2025-05-20
1005Canada2025-05-30
1006Italy2025-05-20
1007Argentina2025-06-05
1008Canada2025-06-05
1009Russia2025-05-28
1010Italy2025-05-20
1011Argentina2025-06-18
1012France2025-06-03
1013Japan2025-05-25
1014Italy2025-06-17
1015Canada2025-06-02
1016United Kingdom2025-06-17
1017Spain2025-05-30
1018France2025-05-24
1019Argentina2025-05-26
1020India2025-06-10
1021France2025-06-17
1022Canada2025-05-24
1023Italy2025-05-21
1024Germany2025-06-14
1025Italy2025-06-05
1026United Kingdom2025-06-01
1027France2025-06-06
1028Canada2025-05-23
1029Germany2025-05-21
1030Italy2025-06-04
1031India2025-06-10
1032Brazil2025-05-24
1033India2025-06-12
1034Canada2025-05-24
1035Spain2025-05-23
1036Canada2025-06-10
1037Germany2025-05-23
1038Australia2025-05-31
1039Japan2025-05-23
1040France2025-06-01
1041Canada2025-06-09
1042Brazil2025-06-12
1043United Kingdom2025-05-24
1044Canada2025-06-08
1045France2025-06-18
1046Argentina2025-05-28
1047France2025-06-08
1048Brazil2025-05-21
1049Japan2025-06-13

On-Demand Data

NameIdCountryDate
Darci N Poquette1000Brazil2025-05-24
Stacey S Stockham1001Australia2025-06-08
Francesco X Bowley1002Brazil2025-06-05
Ivar J Marrier1003Japan2025-06-08
Nicolas J Flosi1004Brazil2025-05-26
Alejandro D Foller1005Italy2025-05-20
Costa V Kolmetz1006India2025-05-24
Nicolas V Tollner1007Italy2025-06-04
Salvatore I Glick1008Canada2025-05-20
Maria W Foller1009Canada2025-05-23
Juan Y Wieser1010India2025-05-26
Francesco J Morasca1011Spain2025-06-10
Darci D Caldarera1012Germany2025-05-23
Nicolas F Rulapaugh1013Canada2025-06-01
Jones P Garufi1014Brazil2025-05-20
Deepesh O Inouye1015Australia2025-05-21
Claire R Dilliard1016Russia2025-06-16
James L Bolognia1017Australia2025-06-15
Leon K Flosi1018Japan2025-06-05
Silvio B Figeroa1019Germany2025-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia S CaudyGermanyAmy Elsner PROPOSAL
Leja I WieserGermanyStephen Shaw UNQUALIFIED
Stacey G GarufiIndiaAmy Elsner UNQUALIFIED
Rodrigues P BowleySpainIvan Magalhaes RENEWAL
Arvin V RoysterIndiaIoni Bowcher RENEWAL
Smith B VocelkaBrazilOnyama Limba QUALIFIED
Chavez W NickaSpainIvan Magalhaes UNQUALIFIED
Costa N TollnerIndiaAmy Elsner NEW
Sinclair D BriddickJapanXuxue Feng NEGOTIATION
Deepesh Q FigeroaGermanyAnna Fali UNQUALIFIED
Octavia U TollnerRussiaIoni Bowcher RENEWAL
Claire E GlickIndiaOnyama Limba UNQUALIFIED
Claire U RulapaughBrazilStephen Shaw RENEWAL
Leja B GlickUnited KingdomOnyama Limba NEW
Jennifer E CaldareraArgentinaAmy Elsner UNQUALIFIED
Johnson V ChuiGermanyAsiya Javayant NEGOTIATION
Smith T RutaSpainBernardo Dominic QUALIFIED
Salvatore B PerinItalyXuxue Feng RENEWAL
Octavia G RimRussiaXuxue Feng NEGOTIATION
Clifford M AlbaresAustraliaBernardo Dominic UNQUALIFIED
Kadeem T OldroydGermanyOnyama Limba NEGOTIATION
Jeanfrancois D BriddickSpainIoni Bowcher NEW
Morrow C ChuiIndiaElwin Sharvill NEGOTIATION
Aditya L WieserAustraliaIvan Magalhaes NEGOTIATION
Mayumi Q RoysterAustraliaOnyama Limba PROPOSAL
Adams O MorascaGermanyAmy Elsner QUALIFIED
Smith Y CampainUnited KingdomOnyama Limba PROPOSAL
Darci A CaudySpainIoni Bowcher PROPOSAL
Jefferson L VocelkaFranceAmy Elsner RENEWAL
Cody B FerenczCanadaStephen Shaw UNQUALIFIED
Claire A GlickItalyIvan Magalhaes QUALIFIED
James L CampainItalyIoni Bowcher QUALIFIED
Francesco V AlbaresArgentinaIvan Magalhaes PROPOSAL
Ivar I StensethUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois G IturbideUnited KingdomIoni Bowcher RENEWAL
Munro O StockhamArgentinaOnyama Limba UNQUALIFIED
Misaki Q RoysterRussiaStephen Shaw QUALIFIED
Maria Z KuskoCanadaBernardo Dominic PROPOSAL
Kaitlin K BologniaIndiaAmy Elsner RENEWAL
Aruna Y VenereArgentinaIoni Bowcher UNQUALIFIED

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