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
Smith U BologniaArgentinaStephen Shaw UNQUALIFIED
Murillo W MaletRussiaAnna Fali QUALIFIED
Chavez A GlickAustraliaAnna Fali PROPOSAL
Kadeem Y PoquetteCanadaBernardo Dominic UNQUALIFIED
Maisha N StockhamItalyAmy Elsner QUALIFIED
Kadeem X OstroskyItalyBernardo Dominic PROPOSAL
Emily J BriddickBrazilStephen Shaw PROPOSAL
Murillo S MaletArgentinaBernardo Dominic RENEWAL
Rodrigues P RulapaughIndiaAnna Fali NEW
Salvatore V MaletJapanAnna Fali NEW
Kadeem J BriddickBrazilOnyama Limba QUALIFIED
Arvin X WaycottRussiaElwin Sharvill UNQUALIFIED
Kaitlin I GlickIndiaIvan Magalhaes UNQUALIFIED
Murillo G NestleAustraliaIoni Bowcher RENEWAL
Izzy W BowleyRussiaIvan Magalhaes UNQUALIFIED
Alejandro Y BologniaGermanyStephen Shaw NEW
Misaki U FollerJapanStephen Shaw NEGOTIATION
Wickens D ShinkoRussiaXuxue Feng RENEWAL
Kaitlin G NickaCanadaAsiya Javayant UNQUALIFIED
Smith V TollnerArgentinaElwin Sharvill NEW
Ivar M DarakjyCanadaStephen Shaw NEGOTIATION
David M SaylorsBrazilStephen Shaw RENEWAL
Isabel J SchemmerArgentinaStephen Shaw UNQUALIFIED
Wickens W VenereRussiaBernardo Dominic NEGOTIATION
Ashley C MorascaJapanStephen Shaw PROPOSAL
Octavia N OstroskyIndiaStephen Shaw RENEWAL
Costa O DarakjyBrazilAmy Elsner QUALIFIED
David J BriddickArgentinaIoni Bowcher RENEWAL
Cody T CaldareraGermanyAnna Fali PROPOSAL
James D WieserAustraliaElwin Sharvill NEW
Ashley W WaycottUnited KingdomOnyama Limba PROPOSAL
Jefferson C InouyeCanadaAnna Fali RENEWAL
Kaitlin F RulapaughIndiaAsiya Javayant UNQUALIFIED
Aruna E OstroskyGermanyStephen Shaw UNQUALIFIED
Francesco T TollnerRussiaIvan Magalhaes NEGOTIATION
Octavia P SaylorsJapanBernardo Dominic UNQUALIFIED
Ricardo O VocelkaCanadaAnna Fali PROPOSAL
Aika G ChuiFranceBernardo Dominic NEGOTIATION
Antonio O WieserGermanyAsiya Javayant PROPOSAL
Aditya X MacleadSpainStephen Shaw UNQUALIFIED
Darci E BologniaSpainElwin Sharvill RENEWAL
Clifford J MaletRussiaIoni Bowcher PROPOSAL
Nicolas Y IturbideFranceAnna Fali NEW
Deepesh G StensethUnited KingdomElwin Sharvill PROPOSAL
Sinclair S RimCanadaIvan Magalhaes NEW
Aika Q AlbaresArgentinaAsiya Javayant RENEWAL
Greenwood I GillianIndiaAmy Elsner QUALIFIED
Rodrigues Q VocelkaItalyAmy Elsner PROPOSAL
Juan W GarufiJapanAnna Fali RENEWAL
Ricardo Y StensethFranceAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco M GlickArgentinaElwin Sharvill NEGOTIATION
Misaki I RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Johnson M DilliardRussiaElwin Sharvill UNQUALIFIED
Johnson L NickaGermanyAnna Fali NEW
Johnson Q BologniaIndiaBernardo Dominic RENEWAL
Aruna S WhobreyJapanBernardo Dominic RENEWAL
Jefferson S VocelkaIndiaXuxue Feng RENEWAL
Leon C MaletFranceIvan Magalhaes PROPOSAL
Izzy T SaylorsArgentinaStephen Shaw NEW
Aika T InouyeSpainAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo T ShinkoGermany2026-06-24Truhlar And Truhlar Attys UNQUALIFIED49Amy Elsner
1001Jefferson N WieserJapan2026-07-15Benton, John B Jr PROPOSAL90Amy Elsner
1002Izzy A GillianItaly2026-07-16Feltz Printing Service RENEWAL48Ivan Magalhaes
1003Silvio P StockhamAustralia2026-07-10Buckley Miller Wright PROPOSAL97Ioni Bowcher
1004Claire J GauchoGermany2026-07-09Rousseaux, Michael Esq RENEWAL74Elwin Sharvill
1005Greenwood F NickaBrazil2026-07-06Chanay, Jeffrey A Esq RENEWAL68Onyama Limba
1006Silvio H AmigonGermany2026-07-17Rangoni Of Florence PROPOSAL75Onyama Limba
1007Kaitlin N StensethArgentina2026-07-11Feltz Printing Service UNQUALIFIED31Elwin Sharvill
1008Greenwood R KolmetzCanada2026-06-25Rangoni Of Florence NEW83Bernardo Dominic
1009Morrow T DilliardGermany2026-06-30Chapman, Ross E Esq NEW55Bernardo Dominic
1010Faith G FollerArgentina2026-06-29King, Christopher A Esq RENEWAL27Onyama Limba
1011Ricardo N BowleyJapan2026-07-02Dorl, James J Esq NEW20Amy Elsner
1012Sinclair P RutaArgentina2026-06-29Dorl, James J Esq QUALIFIED60Onyama Limba
1013Emily D ButtUnited Kingdom2026-07-01Chemel, James L Cpa UNQUALIFIED95Ivan Magalhaes
1014Ivar X KuskoGermany2026-07-15Benton, John B Jr RENEWAL52Stephen Shaw
1015Leja S TollnerSpain2026-07-17Chemel, James L Cpa PROPOSAL47Ivan Magalhaes
1016Faith N ShinkoJapan2026-06-27Chanay, Jeffrey A Esq PROPOSAL71Onyama Limba
1017Maisha C KolmetzFrance2026-06-26Feiner Bros PROPOSAL37Ioni Bowcher
1018Faith F PaprockiBrazil2026-07-18Dorl, James J Esq UNQUALIFIED16Xuxue Feng
1019Silvio V MacleadCanada2026-07-08Feltz Printing Service NEW80Anna Fali
1020Ashley S GauchoJapan2026-07-05Feltz Printing Service PROPOSAL62Asiya Javayant
1021Julie U CaldareraFrance2026-06-24Rousseaux, Michael Esq NEGOTIATION61Asiya Javayant
1022James E BologniaAustralia2026-07-09Rousseaux, Michael Esq RENEWAL92Bernardo Dominic
1023Adams M SergiItaly2026-07-03Feltz Printing Service NEGOTIATION8Ivan Magalhaes
1024Octavia F OstroskyBrazil2026-06-25Benton, John B Jr RENEWAL24Ivan Magalhaes
1025Maria F MacleadCanada2026-07-11Feiner Bros PROPOSAL65Bernardo Dominic
1026Jefferson J NestleCanada2026-06-23Benton, John B Jr RENEWAL38Stephen Shaw
1027Alejandro N ButtUnited Kingdom2026-07-11Commercial Press NEW4Onyama Limba
1028Aika Y KuskoIndia2026-07-08Chemel, James L Cpa NEW34Elwin Sharvill
1029Octavia A AlbaresUnited Kingdom2026-07-03Commercial Press PROPOSAL67Anna Fali
1030Stacey A CaudyGermany2026-06-28Feiner Bros PROPOSAL99Elwin Sharvill
1031Maisha R TollnerRussia2026-06-23Chanay, Jeffrey A Esq NEGOTIATION38Asiya Javayant
1032Clifford B KolmetzItaly2026-07-02King, Christopher A Esq NEGOTIATION78Ioni Bowcher
1033Smith W WhobreyIndia2026-06-27Chanay, Jeffrey A Esq NEW85Asiya Javayant
1034Rodrigues E DilliardGermany2026-07-16King, Christopher A Esq RENEWAL82Asiya Javayant
1035Clifford P TollnerIndia2026-06-24Benton, John B Jr NEGOTIATION42Bernardo Dominic
1036Darci O NickaArgentina2026-07-13Chemel, James L Cpa RENEWAL35Bernardo Dominic
1037Costa T RulapaughArgentina2026-07-09Truhlar And Truhlar Attys UNQUALIFIED36Anna Fali
1038Antonio E WieserRussia2026-07-10Feltz Printing Service NEGOTIATION82Elwin Sharvill
1039Mujtaba N RulapaughArgentina2026-07-05Benton, John B Jr RENEWAL0Asiya Javayant
1040Jefferson S MaletIndia2026-07-15Truhlar And Truhlar Attys RENEWAL10Amy Elsner
1041Ivar K PaprockiAustralia2026-06-25Dorl, James J Esq RENEWAL49Anna Fali
1042Jeanfrancois V SergiAustralia2026-06-27Buckley Miller Wright NEW13Onyama Limba
1043Salvatore X BowleyAustralia2026-07-06Rousseaux, Michael Esq NEW39Amy Elsner
1044Maisha U CaudyGermany2026-06-22Commercial Press RENEWAL19Bernardo Dominic
1045Salvatore V ChuiJapan2026-07-16Feltz Printing Service RENEWAL82Asiya Javayant
1046Adams U SchemmerRussia2026-07-14Dorl, James J Esq RENEWAL80Amy Elsner
1047Tony Q NestleSpain2026-07-13Feiner Bros RENEWAL87Ioni Bowcher
1048Darci A InouyeIndia2026-07-05Chapman, Ross E Esq UNQUALIFIED18Onyama Limba
1049James Q DoeCanada2026-07-04Benton, John B Jr PROPOSAL5Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Juan U FlosiGermanyAnna Fali NEGOTIATION
Francesco I NickaItalyAsiya Javayant UNQUALIFIED
Octavia Z DarakjyBrazilElwin Sharvill PROPOSAL
Cody K BowleyFranceIoni Bowcher NEW
Octavia T RoysterGermanyAmy Elsner RENEWAL
Ricardo R FigeroaSpainBernardo Dominic RENEWAL
Tony N WhobreyJapanIvan Magalhaes RENEWAL
Jefferson W MaletFranceXuxue Feng QUALIFIED
Tony K MaletSpainAsiya Javayant RENEWAL
Francesco V WieserGermanyIoni Bowcher RENEWAL
Mujtaba I SchemmerFranceAsiya Javayant NEGOTIATION
David K VocelkaItalyAnna Fali NEGOTIATION
Misaki U ChuiJapanStephen Shaw RENEWAL
Arvin A CaldareraRussiaAsiya Javayant RENEWAL
Clifford B CaudyJapanAsiya Javayant UNQUALIFIED
Clifford S CaldareraFranceXuxue Feng NEGOTIATION
Jeanfrancois R BologniaItalyAsiya Javayant QUALIFIED
Ricardo C GillianSpainAnna Fali NEGOTIATION
Isabel A SchemmerFranceIoni Bowcher NEW
Munro D PaprockiItalyXuxue Feng RENEWAL
Darci M GarufiCanadaAmy Elsner PROPOSAL
Deepesh K KuskoGermanyOnyama Limba NEGOTIATION
Maria R MaletArgentinaBernardo Dominic RENEWAL
Mujtaba B BowleyIndiaIvan Magalhaes NEW
James W RutaBrazilIoni Bowcher NEGOTIATION
Deepesh O FerenczFranceAnna Fali PROPOSAL
Aditya X FerenczJapanXuxue Feng QUALIFIED
Munro J BologniaRussiaIvan Magalhaes NEGOTIATION
Alejandro K PerinSpainAnna Fali RENEWAL
Johnson M FigeroaArgentinaIoni Bowcher UNQUALIFIED
Morrow S GlickAustraliaStephen Shaw NEW
Salvatore X InouyeCanadaElwin Sharvill UNQUALIFIED
Silvio X WhobreyArgentinaStephen Shaw UNQUALIFIED
Isabel I OstroskySpainOnyama Limba UNQUALIFIED
Isabel N RimIndiaIoni Bowcher NEW
Isabel W ButtJapanAmy Elsner NEGOTIATION
Aditya K MacleadCanadaXuxue Feng UNQUALIFIED
Aruna Z SergiFranceAsiya Javayant PROPOSAL
Aika F RutaIndiaAnna Fali RENEWAL
Clifford W PaprockiJapanIvan Magalhaes QUALIFIED
Salvatore X MacleadGermanyStephen Shaw NEW
Arvin F IturbideArgentinaElwin Sharvill QUALIFIED
Nicolas X SergiFranceElwin Sharvill NEGOTIATION
Greenwood Z InouyeArgentinaIvan Magalhaes NEGOTIATION
Wickens L RoysterCanadaAnna Fali PROPOSAL
Greenwood O PerinFranceXuxue Feng NEW
Aika C BologniaSpainAmy Elsner RENEWAL
Alejandro Y GillianGermanyBernardo Dominic PROPOSAL
Jeanfrancois R TollnerIndiaAmy Elsner UNQUALIFIED
Ashley U SlusarskiAustraliaIoni Bowcher QUALIFIED
Frozen Columns
Name
Jeanfrancois F Stockham
Chavez I Morasca
David T Campain
Kadeem L Caldarera
Deepesh B Garufi
David X Doe
Izzy T Maclead
Faith V Saylors
Jefferson I Flosi
David M Stenseth
Leja Y Paprocki
Sinclair R Foller
Adams U Stenseth
Smith W Poquette
Maisha P Gillian
Tony M Briddick
Ricardo O Glick
Juan N Perin
David F Ruta
Jennifer Y Royster
Deepesh U Poquette
Kaitlin B Doe
Misaki M Bowley
Francesco R Caudy
Stacey E Rulapaugh
Tony S Saylors
Maria T Figeroa
Octavia I Caudy
Faith I Doe
Darci D Poquette
Mujtaba Z Paprocki
Izzy S Figeroa
Emily P Poquette
Claire P Wieser
Ricardo Y Wieser
Leja L Bowley
Leja H Gillian
Clifford V Malet
Emily E Stockham
Murillo L Royster
Silvio Z Saylors
Leon H Stockham
Nicolas W Gillian
Aika F Doe
Jones P Iturbide
Salvatore K Perin
Costa A Bolognia
Arvin D Glick
Alejandro L Wieser
Ashley W Malet
IdCountryDate
1000Brazil2026-06-29
1001Canada2026-07-07
1002United Kingdom2026-06-28
1003United Kingdom2026-07-05
1004Spain2026-07-10
1005India2026-06-27
1006Russia2026-07-18
1007Canada2026-06-30
1008United Kingdom2026-07-10
1009Canada2026-06-27
1010Japan2026-06-26
1011Australia2026-06-30
1012Russia2026-07-05
1013Spain2026-07-01
1014Argentina2026-07-12
1015Italy2026-06-29
1016Australia2026-07-03
1017France2026-07-17
1018Argentina2026-07-03
1019Russia2026-07-05
1020India2026-06-24
1021Australia2026-07-20
1022Argentina2026-07-21
1023Italy2026-07-20
1024Japan2026-07-20
1025Russia2026-07-09
1026Japan2026-07-20
1027Italy2026-06-27
1028India2026-07-02
1029India2026-07-05
1030France2026-07-15
1031United Kingdom2026-06-30
1032Australia2026-06-26
1033Spain2026-07-09
1034Japan2026-07-06
1035India2026-06-28
1036Spain2026-06-29
1037Canada2026-06-22
1038France2026-07-07
1039Japan2026-07-16
1040Canada2026-07-06
1041Canada2026-06-22
1042Australia2026-06-25
1043Italy2026-07-19
1044France2026-07-15
1045Australia2026-06-27
1046United Kingdom2026-07-17
1047Argentina2026-07-01
1048Canada2026-07-09
1049Canada2026-06-27

On-Demand Data

NameIdCountryDate
Jefferson M Nestle1000Italy2026-07-19
Kaitlin H Royster1001Spain2026-07-13
Emily S Royster1002Canada2026-06-28
Tony M Iturbide1003United Kingdom2026-07-05
Morrow A Malet1004Italy2026-07-13
Faith X Whobrey1005Japan2026-07-04
Nicolas D Inouye1006Russia2026-07-04
Isabel R Butt1007Japan2026-06-25
Jennifer Z Oldroyd1008Canada2026-07-14
Kaitlin V Perin1009India2026-07-06
Arvin R Morasca1010Argentina2026-07-18
Rodrigues M Inouye1011Brazil2026-06-24
Adams R Kusko1012United Kingdom2026-07-06
Maria W Morasca1013Spain2026-07-14
Deepesh A Stenseth1014India2026-06-28
Alejandro O Malet1015Argentina2026-07-19
Deepesh J Doe1016Canada2026-07-08
Nicolas D Gaucho1017United Kingdom2026-07-11
Wickens P Albares1018Russia2026-07-10
Johnson L Gillian1019Brazil2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci M SergiFranceOnyama Limba PROPOSAL
Faith N DilliardAustraliaAsiya Javayant NEGOTIATION
Faith J BowleyItalyBernardo Dominic NEGOTIATION
Aika O StockhamIndiaAnna Fali PROPOSAL
Kaitlin F SergiItalyElwin Sharvill RENEWAL
Morrow D SchemmerBrazilAsiya Javayant PROPOSAL
Juan A NestleJapanIvan Magalhaes QUALIFIED
Nicolas K PerinCanadaXuxue Feng PROPOSAL
Leon A WieserRussiaBernardo Dominic UNQUALIFIED
Darci P ShinkoItalyOnyama Limba PROPOSAL
Chavez A MacleadAustraliaStephen Shaw RENEWAL
Francesco N PerinFranceAnna Fali QUALIFIED
Rodrigues Q WaycottCanadaStephen Shaw NEGOTIATION
Emily X NickaUnited KingdomIvan Magalhaes PROPOSAL
Mayumi I BowleyBrazilIvan Magalhaes PROPOSAL
Julie X SergiRussiaElwin Sharvill NEGOTIATION
Clifford S ChuiIndiaIvan Magalhaes PROPOSAL
Kadeem S RimFranceAsiya Javayant RENEWAL
Sinclair B MaletJapanOnyama Limba NEGOTIATION
Jeanfrancois U KuskoItalyElwin Sharvill NEW
Arvin F MorascaBrazilXuxue Feng PROPOSAL
Kadeem I TollnerUnited KingdomAnna Fali PROPOSAL
Leon D GarufiSpainStephen Shaw PROPOSAL
Aditya U SlusarskiUnited KingdomAnna Fali PROPOSAL
Faith L WieserFranceAmy Elsner QUALIFIED
Francesco S MorascaAustraliaAsiya Javayant UNQUALIFIED
Johnson H GarufiSpainStephen Shaw RENEWAL
David P NestleGermanyOnyama Limba RENEWAL
Mujtaba E FerenczAustraliaIvan Magalhaes PROPOSAL
James F PerinGermanyStephen Shaw QUALIFIED
Antonio C VocelkaGermanyBernardo Dominic NEW
Ashley T OstroskyCanadaStephen Shaw QUALIFIED
Johnson W FlosiAustraliaIvan Magalhaes QUALIFIED
Octavia M SchemmerAustraliaBernardo Dominic UNQUALIFIED
Salvatore P MacleadBrazilBernardo Dominic PROPOSAL
Rodrigues I GillianBrazilAnna Fali NEGOTIATION
Deepesh J RulapaughGermanyStephen Shaw NEW
Rodrigues H TollnerRussiaIvan Magalhaes QUALIFIED
Jeanfrancois B BologniaAustraliaIoni Bowcher NEW
Misaki S MacleadIndiaXuxue Feng 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>