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
Kadeem M VocelkaJapanAsiya Javayant NEW
Mujtaba H KolmetzJapanIvan Magalhaes NEGOTIATION
Julie Q BowleyAustraliaAsiya Javayant NEW
Johnson F NickaGermanyAmy Elsner UNQUALIFIED
Cody R KuskoCanadaXuxue Feng QUALIFIED
Maisha I OstroskyBrazilOnyama Limba PROPOSAL
Cody S MarrierBrazilElwin Sharvill PROPOSAL
Maisha M GlickJapanBernardo Dominic QUALIFIED
Arvin V GarufiFranceAnna Fali RENEWAL
Isabel V ButtCanadaAsiya Javayant PROPOSAL
Rodrigues P InouyeUnited KingdomIoni Bowcher PROPOSAL
Adams C SchemmerCanadaAnna Fali PROPOSAL
Kaitlin O MarrierAustraliaIvan Magalhaes NEGOTIATION
Isabel Y PoquetteAustraliaXuxue Feng NEW
Tony R StensethFranceBernardo Dominic QUALIFIED
Julie M KolmetzSpainStephen Shaw RENEWAL
Rodrigues S CaudyBrazilElwin Sharvill NEW
Jeanfrancois J RimAustraliaAsiya Javayant PROPOSAL
Antonio W GlickArgentinaXuxue Feng UNQUALIFIED
Aika F FlosiFranceXuxue Feng RENEWAL
Cody I VenereSpainXuxue Feng UNQUALIFIED
Aditya S AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Isabel O PerinGermanyAsiya Javayant NEGOTIATION
Aika G MaletAustraliaAmy Elsner PROPOSAL
Kadeem D FerenczJapanIoni Bowcher UNQUALIFIED
Deepesh C StensethBrazilAmy Elsner NEGOTIATION
Leon W BriddickFranceIoni Bowcher QUALIFIED
Darci C ButtGermanyOnyama Limba UNQUALIFIED
Munro A AlbaresFranceIoni Bowcher NEGOTIATION
Julie Y ChuiUnited KingdomAnna Fali NEGOTIATION
Maisha W CampainItalyIoni Bowcher QUALIFIED
Wickens F FollerAustraliaIoni Bowcher PROPOSAL
Sinclair R CaldareraFranceAnna Fali NEW
Sinclair R GauchoUnited KingdomOnyama Limba NEW
Emily H IturbideGermanyAmy Elsner NEW
Leja M BriddickFranceAsiya Javayant NEW
Maria R KuskoSpainIoni Bowcher UNQUALIFIED
Chavez Q FerenczRussiaAsiya Javayant NEW
Antonio H ButtAustraliaBernardo Dominic QUALIFIED
Silvio E BowleyFranceBernardo Dominic NEGOTIATION
Izzy X WhobreyRussiaAnna Fali PROPOSAL
Jennifer H AlbaresJapanAmy Elsner RENEWAL
Ashley N GarufiIndiaStephen Shaw UNQUALIFIED
Jefferson S TollnerSpainStephen Shaw NEW
Faith E TollnerCanadaIoni Bowcher RENEWAL
Arvin C NestleRussiaAnna Fali QUALIFIED
Francesco V BologniaItalyIoni Bowcher RENEWAL
Aditya D CaudyAustraliaIoni Bowcher QUALIFIED
Ricardo K PoquetteIndiaAmy Elsner QUALIFIED
Smith H VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair T SaylorsArgentinaBernardo Dominic NEW
Octavia P MaletUnited KingdomAmy Elsner RENEWAL
Nicolas H WaycottRussiaOnyama Limba NEW
Antonio W FollerCanadaXuxue Feng NEW
Sinclair X SergiJapanAsiya Javayant UNQUALIFIED
David G DilliardBrazilIoni Bowcher RENEWAL
Ivar Z BriddickCanadaAsiya Javayant NEGOTIATION
Isabel A AlbaresArgentinaXuxue Feng QUALIFIED
Aika W NickaArgentinaElwin Sharvill NEGOTIATION
Morrow U RutaIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson R ButtCanada2025-04-22Buckley Miller Wright PROPOSAL8Amy Elsner
1001Francesco D WieserSpain2025-04-08Dorl, James J Esq UNQUALIFIED62Bernardo Dominic
1002Antonio E IturbideFrance2025-04-05Truhlar And Truhlar Attys QUALIFIED4Elwin Sharvill
1003Arvin Q RoysterRussia2025-04-06Rangoni Of Florence PROPOSAL25Asiya Javayant
1004Johnson K GauchoSpain2025-04-07Rousseaux, Michael Esq QUALIFIED99Elwin Sharvill
1005Julie E SaylorsFrance2025-04-03King, Christopher A Esq RENEWAL89Asiya Javayant
1006Mayumi Y CaudyFrance2025-04-21Chapman, Ross E Esq NEGOTIATION36Amy Elsner
1007Wickens S GlickGermany2025-05-01Commercial Press QUALIFIED61Onyama Limba
1008Alejandro G CaudyFrance2025-04-06Printing Dimensions UNQUALIFIED8Asiya Javayant
1009David X AlbaresJapan2025-04-12Benton, John B Jr RENEWAL97Ivan Magalhaes
1010Ashley X CampainAustralia2025-04-18Chanay, Jeffrey A Esq QUALIFIED60Stephen Shaw
1011Johnson O GlickGermany2025-04-06Rangoni Of Florence UNQUALIFIED81Anna Fali
1012Aika P DarakjyIndia2025-05-01Benton, John B Jr PROPOSAL70Ioni Bowcher
1013Jeanfrancois G FigeroaIndia2025-04-03Chemel, James L Cpa NEW8Stephen Shaw
1014Isabel O WaycottGermany2025-04-02Feiner Bros NEGOTIATION37Asiya Javayant
1015Izzy W RoysterSpain2025-04-02Benton, John B Jr QUALIFIED61Bernardo Dominic
1016Jones I StensethIndia2025-04-18Rangoni Of Florence QUALIFIED23Xuxue Feng
1017Arvin S BriddickCanada2025-05-01Buckley Miller Wright UNQUALIFIED97Ivan Magalhaes
1018Sinclair G VenereItaly2025-04-11Truhlar And Truhlar Attys QUALIFIED75Anna Fali
1019Aruna T MarrierUnited Kingdom2025-04-30King, Christopher A Esq NEW21Stephen Shaw
1020Juan D SlusarskiRussia2025-04-26Buckley Miller Wright UNQUALIFIED68Xuxue Feng
1021Smith Z PoquetteJapan2025-04-27Chapman, Ross E Esq UNQUALIFIED73Asiya Javayant
1022Tony H RutaJapan2025-04-07Printing Dimensions NEGOTIATION37Ioni Bowcher
1023Claire D ChuiRussia2025-04-16Chapman, Ross E Esq UNQUALIFIED44Amy Elsner
1024Alejandro Y NickaUnited Kingdom2025-04-27Chanay, Jeffrey A Esq QUALIFIED97Asiya Javayant
1025Faith R StockhamIndia2025-04-20Chemel, James L Cpa NEW32Xuxue Feng
1026Juan Z RoysterIndia2025-04-08Chapman, Ross E Esq QUALIFIED50Stephen Shaw
1027Costa N CaldareraSpain2025-04-06Dorl, James J Esq NEW49Asiya Javayant
1028Wickens J MaletSpain2025-04-21Chapman, Ross E Esq NEW92Bernardo Dominic
1029Alejandro T GarufiRussia2025-04-16Dorl, James J Esq NEW84Anna Fali
1030Maria Z SlusarskiIndia2025-04-12King, Christopher A Esq NEW46Ioni Bowcher
1031Deepesh F SchemmerIndia2025-04-03Printing Dimensions PROPOSAL48Ivan Magalhaes
1032Leja X KuskoIndia2025-04-14Feltz Printing Service PROPOSAL65Xuxue Feng
1033Cody E AlbaresCanada2025-04-17Feiner Bros NEW85Ioni Bowcher
1034Mujtaba Y ShinkoUnited Kingdom2025-04-16Printing Dimensions NEGOTIATION60Amy Elsner
1035Aika H BowleyArgentina2025-04-08Printing Dimensions QUALIFIED37Stephen Shaw
1036Antonio I CampainArgentina2025-04-12Printing Dimensions UNQUALIFIED67Onyama Limba
1037Jennifer G GarufiIndia2025-04-06Dorl, James J Esq PROPOSAL1Ivan Magalhaes
1038Antonio S SaylorsCanada2025-04-21King, Christopher A Esq NEW79Amy Elsner
1039Ricardo P PoquetteCanada2025-04-19Printing Dimensions UNQUALIFIED70Bernardo Dominic
1040Mujtaba Y WaycottGermany2025-04-04Rousseaux, Michael Esq NEGOTIATION96Ioni Bowcher
1041Rodrigues Q AmigonItaly2025-04-10Chanay, Jeffrey A Esq PROPOSAL86Stephen Shaw
1042Stacey Q MorascaCanada2025-04-16Feltz Printing Service NEW94Xuxue Feng
1043Octavia X NickaRussia2025-04-10Chanay, Jeffrey A Esq QUALIFIED80Asiya Javayant
1044Emily O SchemmerGermany2025-04-16Feiner Bros RENEWAL43Bernardo Dominic
1045Leon Z IturbideItaly2025-04-06Rangoni Of Florence QUALIFIED1Anna Fali
1046David U StensethAustralia2025-04-19Feltz Printing Service PROPOSAL96Stephen Shaw
1047Leja L OstroskyGermany2025-04-27Printing Dimensions NEGOTIATION77Stephen Shaw
1048Deepesh T MaletIndia2025-04-10Printing Dimensions UNQUALIFIED75Stephen Shaw
1049Julie K MarrierCanada2025-04-03Chemel, James L Cpa PROPOSAL15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Claire E StensethSpainIoni Bowcher NEW
Octavia L FollerJapanStephen Shaw QUALIFIED
Faith Y SergiItalyAmy Elsner QUALIFIED
Faith Y IturbideUnited KingdomStephen Shaw UNQUALIFIED
Adams P OldroydBrazilOnyama Limba PROPOSAL
Emily V StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Ivar R FerenczSpainXuxue Feng RENEWAL
Emily U InouyeRussiaOnyama Limba RENEWAL
Antonio A FerenczFranceIvan Magalhaes PROPOSAL
James E GillianJapanAnna Fali UNQUALIFIED
Silvio S MaletArgentinaAmy Elsner NEGOTIATION
Adams O NickaItalyStephen Shaw NEGOTIATION
Leja O RimSpainOnyama Limba NEGOTIATION
Octavia K CaldareraFranceOnyama Limba NEGOTIATION
Clifford V FerenczJapanXuxue Feng PROPOSAL
Maria I OstroskyArgentinaAnna Fali UNQUALIFIED
Antonio X CaudyGermanyBernardo Dominic NEGOTIATION
Darci Y DilliardArgentinaAsiya Javayant RENEWAL
Sinclair D IturbideCanadaAmy Elsner UNQUALIFIED
Sinclair R KolmetzGermanyElwin Sharvill NEW
Salvatore B AmigonBrazilAsiya Javayant NEGOTIATION
Ashley S WaycottGermanyAsiya Javayant RENEWAL
Darci M WhobreyBrazilAnna Fali QUALIFIED
Johnson V StockhamArgentinaAnna Fali QUALIFIED
Isabel J ButtSpainOnyama Limba NEW
Antonio G KolmetzSpainAnna Fali QUALIFIED
Julie N GarufiBrazilAsiya Javayant UNQUALIFIED
Ashley T DoeSpainStephen Shaw RENEWAL
Octavia G MorascaAustraliaAsiya Javayant PROPOSAL
Mayumi B AmigonItalyElwin Sharvill PROPOSAL
Francesco F NickaRussiaAsiya Javayant UNQUALIFIED
Aruna N VenereJapanIvan Magalhaes UNQUALIFIED
Ashley U GauchoCanadaStephen Shaw QUALIFIED
Arvin H FollerAustraliaXuxue Feng QUALIFIED
Adams L StockhamFranceStephen Shaw NEW
Cody M TollnerSpainOnyama Limba NEW
Kaitlin G KolmetzItalyBernardo Dominic NEW
Chavez A FollerItalyIoni Bowcher NEGOTIATION
Mayumi W FollerGermanyXuxue Feng RENEWAL
Octavia K PoquetteCanadaStephen Shaw QUALIFIED
Silvio G GarufiSpainAmy Elsner RENEWAL
Kadeem A AmigonRussiaAmy Elsner QUALIFIED
Jennifer P OldroydFranceIvan Magalhaes PROPOSAL
Julie I FigeroaGermanyIoni Bowcher PROPOSAL
Cody D MacleadArgentinaBernardo Dominic NEW
Jefferson E FlosiIndiaOnyama Limba RENEWAL
Antonio A StensethGermanyIoni Bowcher RENEWAL
Ivar T RoysterSpainBernardo Dominic QUALIFIED
Aruna E RoysterFranceAsiya Javayant UNQUALIFIED
Sinclair T ShinkoIndiaAnna Fali QUALIFIED
Frozen Columns
Name
Tony K Campain
Alejandro C Paprocki
James N Rim
Rodrigues H Amigon
Darci B Rulapaugh
Emily E Venere
Silvio W Chui
Isabel U Schemmer
Darci A Foller
Leja W Glick
Maisha Q Stenseth
David B Vocelka
Maria Q Whobrey
Misaki C Rulapaugh
Octavia P Stockham
Jeanfrancois F Wieser
Smith B Albares
Salvatore A Rim
Kadeem F Inouye
Mayumi E Foller
Rodrigues L Ruta
Costa S Butt
Rodrigues W Chui
Mayumi N Nicka
Jeanfrancois B Stenseth
Jones B Morasca
David L Royster
Jeanfrancois C Wieser
Maisha K Dilliard
Emily G Poquette
Mayumi V Flosi
Leon K Sergi
Faith W Maclead
Emily U Vocelka
Leja I Iturbide
Ricardo U Venere
Francesco J Butt
Stacey W Malet
Francesco Q Paprocki
Chavez D Sergi
Chavez C Nicka
Ashley Y Stockham
Octavia F Dilliard
Mujtaba D Slusarski
Aika M Malet
Mayumi J Flosi
Wickens R Caudy
Aruna C Poquette
Costa U Kolmetz
Jones T Schemmer
IdCountryDate
1000France2025-04-19
1001Japan2025-04-17
1002Canada2025-04-20
1003Russia2025-04-11
1004France2025-04-22
1005Australia2025-04-28
1006United Kingdom2025-04-02
1007France2025-04-14
1008Russia2025-04-19
1009Argentina2025-04-26
1010United Kingdom2025-04-28
1011Russia2025-04-19
1012Brazil2025-04-28
1013Brazil2025-04-14
1014United Kingdom2025-04-15
1015Argentina2025-04-23
1016Italy2025-04-27
1017Australia2025-04-30
1018Brazil2025-04-03
1019India2025-04-10
1020Russia2025-04-10
1021Argentina2025-04-07
1022Australia2025-04-17
1023Spain2025-04-11
1024Australia2025-04-06
1025Canada2025-04-16
1026India2025-04-05
1027Italy2025-04-09
1028Germany2025-04-15
1029Australia2025-04-27
1030Russia2025-04-24
1031Japan2025-04-12
1032India2025-04-28
1033Spain2025-04-08
1034Australia2025-05-01
1035Italy2025-04-28
1036Italy2025-04-14
1037Russia2025-04-02
1038Australia2025-04-06
1039Argentina2025-04-19
1040Brazil2025-04-03
1041India2025-04-13
1042Argentina2025-04-26
1043Brazil2025-04-24
1044Australia2025-04-26
1045Brazil2025-04-10
1046Argentina2025-04-23
1047Russia2025-04-02
1048India2025-04-13
1049Germany2025-04-19

On-Demand Data

NameIdCountryDate
Silvio Q Bolognia1000Argentina2025-04-02
Antonio S Doe1001Argentina2025-04-05
James N Inouye1002France2025-04-28
Juan A Schemmer1003France2025-04-04
Arvin T Ferencz1004Russia2025-04-08
Smith V Darakjy1005Canada2025-04-03
Rodrigues B Marrier1006Russia2025-04-15
Julie M Garufi1007Russia2025-04-21
Ricardo V Flosi1008Brazil2025-04-10
Darci X Garufi1009Japan2025-04-03
Arvin Q Rim1010Japan2025-04-11
Arvin A Bolognia1011Italy2025-04-03
Francesco B Oldroyd1012Spain2025-04-13
Leon M Rim1013Australia2025-04-30
Munro S Foller1014Australia2025-04-12
Misaki Z Nestle1015France2025-04-13
James I Foller1016Argentina2025-04-18
Faith L Bolognia1017France2025-04-23
Isabel H Caudy1018Germany2025-04-29
Sinclair F Poquette1019Germany2025-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez M GillianJapanAmy Elsner PROPOSAL
Aika N GlickGermanyAmy Elsner PROPOSAL
Wickens I RulapaughUnited KingdomXuxue Feng NEW
Leon G MaletUnited KingdomStephen Shaw UNQUALIFIED
Leja L PoquetteBrazilIoni Bowcher RENEWAL
Costa G OstroskyArgentinaXuxue Feng QUALIFIED
Murillo X GauchoUnited KingdomElwin Sharvill QUALIFIED
Faith D TollnerRussiaOnyama Limba NEW
Darci N BowleyBrazilElwin Sharvill QUALIFIED
Kadeem T RulapaughIndiaStephen Shaw RENEWAL
Morrow R FerenczFranceOnyama Limba UNQUALIFIED
Darci R KuskoItalyXuxue Feng QUALIFIED
Deepesh W SchemmerJapanIoni Bowcher RENEWAL
Salvatore O SlusarskiCanadaAnna Fali NEW
Jefferson D MarrierFranceAnna Fali UNQUALIFIED
Salvatore T SergiUnited KingdomElwin Sharvill PROPOSAL
Sinclair U RulapaughArgentinaAnna Fali QUALIFIED
Silvio W DarakjyGermanyAsiya Javayant RENEWAL
Rodrigues U SergiJapanOnyama Limba UNQUALIFIED
Johnson Z KolmetzJapanStephen Shaw PROPOSAL
Francesco L WieserGermanyIoni Bowcher NEGOTIATION
Clifford Q MorascaCanadaStephen Shaw UNQUALIFIED
Mayumi N MaletFranceElwin Sharvill NEGOTIATION
Morrow J GauchoBrazilAmy Elsner NEW
Faith C GlickArgentinaIvan Magalhaes NEGOTIATION
Ashley H WieserArgentinaAnna Fali NEW
Jones C VenereBrazilOnyama Limba QUALIFIED
Munro P IturbideBrazilAmy Elsner QUALIFIED
Claire F FerenczIndiaElwin Sharvill NEGOTIATION
Clifford M WaycottIndiaStephen Shaw NEGOTIATION
Mayumi D AlbaresRussiaBernardo Dominic NEGOTIATION
Kadeem Y ButtIndiaStephen Shaw NEGOTIATION
Maria Y RulapaughArgentinaElwin Sharvill PROPOSAL
Aruna V DarakjySpainOnyama Limba QUALIFIED
Claire E RulapaughUnited KingdomStephen Shaw NEW
Costa R FigeroaItalyBernardo Dominic RENEWAL
Isabel T NickaFranceAsiya Javayant UNQUALIFIED
Leja B VenereSpainAmy Elsner QUALIFIED
Jones C FerenczArgentinaStephen Shaw RENEWAL
Mayumi L AmigonSpainBernardo Dominic QUALIFIED

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