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
Morrow J StensethIndiaOnyama Limba UNQUALIFIED
Alejandro L NickaRussiaAmy Elsner NEGOTIATION
Silvio P RulapaughJapanBernardo Dominic RENEWAL
Wickens L WhobreyAustraliaIoni Bowcher QUALIFIED
Mayumi O VocelkaArgentinaBernardo Dominic RENEWAL
Murillo Z SlusarskiFranceIoni Bowcher NEW
Kaitlin R WieserBrazilIvan Magalhaes NEW
Chavez I AlbaresItalyXuxue Feng NEW
David H StockhamSpainAnna Fali PROPOSAL
Salvatore P DilliardGermanyIoni Bowcher PROPOSAL
Antonio D IturbideRussiaAmy Elsner NEW
Stacey B SergiItalyAnna Fali NEGOTIATION
Johnson R BologniaItalyStephen Shaw NEGOTIATION
Antonio M TollnerJapanIvan Magalhaes QUALIFIED
Ricardo V WhobreyUnited KingdomAnna Fali RENEWAL
Deepesh Y OstroskyIndiaElwin Sharvill RENEWAL
Juan C PoquetteArgentinaStephen Shaw RENEWAL
Costa X ShinkoGermanyAnna Fali NEW
David A AmigonBrazilXuxue Feng UNQUALIFIED
Morrow L FigeroaRussiaOnyama Limba QUALIFIED
Izzy J InouyeUnited KingdomXuxue Feng NEGOTIATION
David L FlosiAustraliaStephen Shaw QUALIFIED
Munro N OldroydIndiaAsiya Javayant QUALIFIED
Munro Y FlosiGermanyAnna Fali QUALIFIED
Jefferson L GlickCanadaAsiya Javayant PROPOSAL
Clifford F PaprockiItalyBernardo Dominic NEW
Aruna W FollerAustraliaBernardo Dominic NEW
Maisha Q BriddickGermanyAmy Elsner UNQUALIFIED
Kadeem V StensethGermanyIoni Bowcher PROPOSAL
Ricardo C WaycottAustraliaElwin Sharvill NEGOTIATION
Isabel D SchemmerGermanyBernardo Dominic NEGOTIATION
Jennifer K PoquetteFranceIoni Bowcher NEGOTIATION
Jeanfrancois H StensethRussiaOnyama Limba RENEWAL
James O BriddickSpainElwin Sharvill RENEWAL
Kaitlin B MaletItalyAmy Elsner PROPOSAL
Johnson X MaletAustraliaIoni Bowcher UNQUALIFIED
Mayumi I ChuiIndiaAnna Fali PROPOSAL
Salvatore Z FigeroaItalyAmy Elsner NEGOTIATION
Johnson Z BowleyRussiaAnna Fali UNQUALIFIED
Emily M MaletArgentinaElwin Sharvill UNQUALIFIED
Rodrigues L GillianCanadaOnyama Limba UNQUALIFIED
Maisha X MarrierJapanAsiya Javayant UNQUALIFIED
Ricardo G PaprockiIndiaAnna Fali PROPOSAL
Aditya P CampainJapanElwin Sharvill PROPOSAL
Tony C GlickCanadaStephen Shaw QUALIFIED
Ashley B GauchoBrazilXuxue Feng NEW
Leon A CaldareraItalyElwin Sharvill UNQUALIFIED
Rodrigues M CaudyBrazilAnna Fali UNQUALIFIED
Izzy V StensethAustraliaXuxue Feng UNQUALIFIED
Adams V GauchoFranceAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore I MaletFranceAnna Fali PROPOSAL
Jeanfrancois G MarrierJapanOnyama Limba UNQUALIFIED
Adams J ChuiGermanyBernardo Dominic QUALIFIED
Costa T RoysterRussiaIvan Magalhaes PROPOSAL
Clifford Y RutaAustraliaIoni Bowcher NEGOTIATION
Jones N MorascaItalyAnna Fali RENEWAL
Darci G PerinGermanyOnyama Limba NEW
Nicolas B IturbideJapanIoni Bowcher QUALIFIED
Morrow C TollnerGermanyAmy Elsner NEW
Wickens B AlbaresSpainOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan D AmigonAustralia2026-07-02Chapman, Ross E Esq NEGOTIATION88Amy Elsner
1001Jennifer P FollerCanada2026-06-10Commercial Press NEGOTIATION20Ivan Magalhaes
1002Stacey T FlosiArgentina2026-06-22Commercial Press UNQUALIFIED70Anna Fali
1003Jennifer R FollerIndia2026-06-16Benton, John B Jr PROPOSAL60Amy Elsner
1004Costa G ButtUnited Kingdom2026-06-11Benton, John B Jr QUALIFIED75Bernardo Dominic
1005Jeanfrancois I GillianBrazil2026-06-29Dorl, James J Esq NEW2Elwin Sharvill
1006Maisha X BriddickRussia2026-06-23Morlong Associates UNQUALIFIED68Ioni Bowcher
1007Misaki D BriddickSpain2026-06-24Benton, John B Jr QUALIFIED20Ioni Bowcher
1008Maria Y CaudyFrance2026-06-26Commercial Press NEGOTIATION99Asiya Javayant
1009Stacey N BowleyRussia2026-06-29Truhlar And Truhlar Attys PROPOSAL22Anna Fali
1010Aruna R AlbaresCanada2026-07-06Chapman, Ross E Esq UNQUALIFIED38Xuxue Feng
1011Kaitlin E InouyeIndia2026-06-16Morlong Associates PROPOSAL30Onyama Limba
1012Stacey R CampainFrance2026-06-16Truhlar And Truhlar Attys UNQUALIFIED15Anna Fali
1013Jennifer Y CaudyBrazil2026-06-29Truhlar And Truhlar Attys NEW42Asiya Javayant
1014Jennifer N PoquetteBrazil2026-07-06Chapman, Ross E Esq NEW16Elwin Sharvill
1015Francesco T CaldareraSpain2026-07-03Commercial Press PROPOSAL15Xuxue Feng
1016Jeanfrancois C GillianCanada2026-06-21Chapman, Ross E Esq UNQUALIFIED67Bernardo Dominic
1017Maisha O BologniaAustralia2026-06-07Commercial Press PROPOSAL61Elwin Sharvill
1018Isabel R InouyeItaly2026-06-15Truhlar And Truhlar Attys UNQUALIFIED38Anna Fali
1019Aruna B VenereGermany2026-06-28Morlong Associates PROPOSAL78Bernardo Dominic
1020Octavia N ButtSpain2026-06-30Buckley Miller Wright PROPOSAL80Anna Fali
1021Sinclair X WaycottRussia2026-06-28Dorl, James J Esq RENEWAL81Ioni Bowcher
1022Johnson H DarakjyArgentina2026-06-07Rangoni Of Florence PROPOSAL45Onyama Limba
1023Antonio V BologniaGermany2026-07-04Printing Dimensions PROPOSAL48Anna Fali
1024Tony R MarrierRussia2026-06-24Buckley Miller Wright NEW34Asiya Javayant
1025Johnson G GarufiSpain2026-06-29Feltz Printing Service QUALIFIED23Onyama Limba
1026Kaitlin Y AmigonIndia2026-07-05Commercial Press NEW48Ivan Magalhaes
1027Silvio Z FerenczUnited Kingdom2026-07-05Commercial Press RENEWAL71Stephen Shaw
1028Ricardo F FollerIndia2026-06-22Feiner Bros RENEWAL91Stephen Shaw
1029Juan M MacleadCanada2026-07-01Dorl, James J Esq UNQUALIFIED43Ivan Magalhaes
1030Darci A BologniaArgentina2026-06-29Printing Dimensions UNQUALIFIED2Bernardo Dominic
1031Mayumi I ChuiJapan2026-07-03Morlong Associates UNQUALIFIED98Amy Elsner
1032Maria J NestleFrance2026-06-19Printing Dimensions UNQUALIFIED18Bernardo Dominic
1033Antonio V AmigonRussia2026-07-06Feiner Bros QUALIFIED15Anna Fali
1034Emily W GauchoGermany2026-06-28Dorl, James J Esq NEGOTIATION89Elwin Sharvill
1035Francesco W BologniaCanada2026-06-16Benton, John B Jr QUALIFIED89Ivan Magalhaes
1036Julie C DoeJapan2026-06-13Chemel, James L Cpa PROPOSAL55Onyama Limba
1037Tony Q MacleadArgentina2026-06-13Commercial Press PROPOSAL24Amy Elsner
1038Kaitlin S PaprockiRussia2026-06-16Printing Dimensions PROPOSAL0Xuxue Feng
1039Francesco H FlosiCanada2026-06-22Commercial Press NEW39Amy Elsner
1040Maisha H AlbaresSpain2026-06-29Commercial Press NEGOTIATION65Amy Elsner
1041Ashley O CaudyArgentina2026-07-01Dorl, James J Esq NEGOTIATION48Ivan Magalhaes
1042Smith C StockhamJapan2026-06-13Chanay, Jeffrey A Esq NEGOTIATION31Asiya Javayant
1043Rodrigues Z GarufiItaly2026-06-28Commercial Press QUALIFIED49Ivan Magalhaes
1044Darci X MarrierJapan2026-06-10Feltz Printing Service NEGOTIATION91Anna Fali
1045Silvio T MorascaBrazil2026-06-13Chanay, Jeffrey A Esq RENEWAL38Bernardo Dominic
1046Julie N RulapaughUnited Kingdom2026-06-26King, Christopher A Esq NEW87Onyama Limba
1047Darci Z ButtItaly2026-06-11Commercial Press QUALIFIED96Xuxue Feng
1048Wickens A StensethRussia2026-07-02Printing Dimensions PROPOSAL67Stephen Shaw
1049James R WieserGermany2026-06-19Feltz Printing Service NEW67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maisha I FollerJapanElwin Sharvill UNQUALIFIED
Jennifer Z KuskoItalyElwin Sharvill NEGOTIATION
Claire N InouyeCanadaElwin Sharvill NEGOTIATION
Munro E BologniaArgentinaIvan Magalhaes QUALIFIED
Murillo Q NestleFranceElwin Sharvill PROPOSAL
Juan G StensethBrazilElwin Sharvill QUALIFIED
Julie X GillianRussiaIoni Bowcher QUALIFIED
Kaitlin G MaletCanadaIoni Bowcher NEGOTIATION
Costa O WieserArgentinaElwin Sharvill PROPOSAL
David E FlosiJapanOnyama Limba PROPOSAL
Sinclair M SchemmerGermanyXuxue Feng NEW
Jefferson G PerinSpainIoni Bowcher PROPOSAL
Darci S InouyeItalyAmy Elsner RENEWAL
Kadeem E NestleBrazilAmy Elsner PROPOSAL
Aruna O PaprockiFranceIvan Magalhaes NEGOTIATION
Greenwood U KolmetzUnited KingdomAsiya Javayant PROPOSAL
Kadeem Q PaprockiSpainStephen Shaw RENEWAL
Murillo O FlosiFranceAsiya Javayant NEW
Costa W CaudyFranceXuxue Feng RENEWAL
Greenwood O StockhamUnited KingdomIvan Magalhaes PROPOSAL
Clifford N PerinFranceAsiya Javayant NEGOTIATION
Tony Z BowleyAustraliaOnyama Limba PROPOSAL
Aditya C IturbideUnited KingdomAmy Elsner RENEWAL
Smith A RutaBrazilXuxue Feng NEW
Salvatore J CaudyCanadaAmy Elsner UNQUALIFIED
Maisha W ChuiJapanAsiya Javayant RENEWAL
Nicolas W OstroskyFranceOnyama Limba RENEWAL
Kadeem F MorascaRussiaXuxue Feng NEW
Julie I ShinkoRussiaOnyama Limba NEGOTIATION
Greenwood D BriddickGermanyIvan Magalhaes NEW
Stacey I DilliardJapanOnyama Limba RENEWAL
Maria H IturbideIndiaIoni Bowcher QUALIFIED
Adams Z FigeroaIndiaIoni Bowcher RENEWAL
Misaki M RulapaughJapanXuxue Feng PROPOSAL
Johnson C GillianUnited KingdomBernardo Dominic RENEWAL
Izzy L BriddickFranceXuxue Feng PROPOSAL
Rodrigues J IturbideJapanAnna Fali RENEWAL
Juan Y CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois W IturbideCanadaAmy Elsner NEW
Jennifer S RutaCanadaOnyama Limba RENEWAL
Isabel T ShinkoIndiaElwin Sharvill QUALIFIED
Emily D AmigonItalyElwin Sharvill UNQUALIFIED
Morrow H PoquetteIndiaIoni Bowcher NEGOTIATION
Salvatore G MaletUnited KingdomAsiya Javayant PROPOSAL
Darci O MaletUnited KingdomIoni Bowcher QUALIFIED
Silvio R KuskoItalyStephen Shaw UNQUALIFIED
Mayumi V WaycottArgentinaOnyama Limba QUALIFIED
Octavia U MacleadJapanOnyama Limba PROPOSAL
Leja L MarrierBrazilElwin Sharvill RENEWAL
James P AmigonGermanyAnna Fali NEGOTIATION
Frozen Columns
Name
Greenwood I Ruta
Julie I Marrier
Antonio I Amigon
Misaki P Shinko
Greenwood V Morasca
Aika I Darakjy
Costa K Vocelka
Kadeem R Darakjy
Deepesh Q Chui
Smith R Dilliard
Aruna Q Briddick
Silvio C Chui
Johnson Z Amigon
Mujtaba H Sergi
Salvatore Y Darakjy
Juan D Whobrey
Jennifer M Garufi
Mujtaba H Malet
Morrow W Nestle
Rodrigues Y Malet
Alejandro P Saylors
Emily S Butt
Leja D Waycott
Wickens Q Malet
Clifford O Caudy
Jefferson X Maclead
Jones Q Wieser
Izzy C Albares
Julie M Saylors
Octavia I Kolmetz
Leja S Briddick
Tony N Shinko
Munro H Ferencz
Jennifer A Caudy
Aditya J Whobrey
Aruna A Rim
David B Gillian
Morrow J Stockham
Claire M Kusko
Clifford W Doe
Jones R Stockham
Jones M Flosi
Jennifer J Figeroa
Octavia L Venere
Mayumi X Dilliard
Jennifer X Briddick
Adams X Gillian
Leja W Chui
Leja M Tollner
Stacey H Rulapaugh
IdCountryDate
1000Australia2026-06-22
1001United Kingdom2026-06-27
1002United Kingdom2026-06-13
1003Brazil2026-06-12
1004Brazil2026-06-12
1005Argentina2026-06-08
1006India2026-06-21
1007India2026-06-24
1008Australia2026-07-06
1009Italy2026-06-08
1010Canada2026-07-06
1011Australia2026-06-27
1012Germany2026-06-25
1013Spain2026-06-16
1014Argentina2026-06-26
1015India2026-06-21
1016Argentina2026-06-30
1017Canada2026-06-23
1018United Kingdom2026-06-19
1019Russia2026-06-11
1020Spain2026-06-10
1021Italy2026-07-06
1022France2026-06-25
1023Japan2026-06-11
1024Australia2026-06-29
1025Japan2026-06-29
1026Australia2026-06-09
1027Brazil2026-06-18
1028Brazil2026-06-21
1029Russia2026-06-16
1030United Kingdom2026-06-08
1031Germany2026-07-05
1032Italy2026-06-20
1033Italy2026-06-09
1034Japan2026-06-23
1035Spain2026-06-12
1036United Kingdom2026-07-06
1037Argentina2026-06-11
1038Australia2026-06-11
1039Japan2026-06-09
1040United Kingdom2026-07-04
1041Australia2026-06-24
1042France2026-06-24
1043Australia2026-06-09
1044Italy2026-06-26
1045Brazil2026-06-13
1046Germany2026-06-26
1047Spain2026-06-24
1048Australia2026-06-18
1049France2026-06-28

On-Demand Data

NameIdCountryDate
Octavia E Maclead1000India2026-06-25
Stacey O Amigon1001France2026-06-12
Misaki H Caldarera1002Brazil2026-06-09
Rodrigues K Morasca1003Japan2026-06-09
Ricardo T Maclead1004Spain2026-06-30
Salvatore B Stenseth1005Russia2026-07-06
Ricardo R Rulapaugh1006Argentina2026-06-15
Clifford M Nestle1007Italy2026-06-24
Munro F Amigon1008Canada2026-07-03
Clifford P Ruta1009Russia2026-06-28
Deepesh N Tollner1010Australia2026-06-27
Tony B Slusarski1011India2026-06-15
Leja C Oldroyd1012Brazil2026-06-10
Morrow U Ostrosky1013Canada2026-06-15
Deepesh T Garufi1014Japan2026-06-17
Maria J Morasca1015United Kingdom2026-07-01
Alejandro P Rulapaugh1016Spain2026-06-12
Misaki E Sergi1017Italy2026-06-09
Juan J Amigon1018Russia2026-06-15
Kaitlin W Campain1019Italy2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair T TollnerItalyAsiya Javayant QUALIFIED
Maria V MaletAustraliaIvan Magalhaes NEGOTIATION
Aditya B GarufiSpainIvan Magalhaes UNQUALIFIED
Octavia I ShinkoCanadaAmy Elsner UNQUALIFIED
Mujtaba Z MacleadArgentinaIvan Magalhaes PROPOSAL
Silvio K RutaFranceAmy Elsner QUALIFIED
Aruna T GillianArgentinaElwin Sharvill QUALIFIED
Claire T SlusarskiGermanyOnyama Limba QUALIFIED
Munro Q FollerJapanBernardo Dominic NEGOTIATION
Ashley Z MaletFranceIvan Magalhaes NEGOTIATION
Octavia L GauchoItalyIvan Magalhaes RENEWAL
Salvatore W BriddickJapanAsiya Javayant PROPOSAL
Morrow Q KolmetzSpainIoni Bowcher QUALIFIED
Alejandro O AmigonBrazilAsiya Javayant UNQUALIFIED
Emily P RutaSpainAsiya Javayant RENEWAL
Munro R BologniaIndiaIvan Magalhaes UNQUALIFIED
Juan D BowleyRussiaAmy Elsner RENEWAL
Clifford J FollerBrazilXuxue Feng QUALIFIED
Nicolas P RimItalyIvan Magalhaes NEW
James Q PoquetteCanadaElwin Sharvill QUALIFIED
Silvio L DoeJapanStephen Shaw RENEWAL
Munro L AlbaresJapanElwin Sharvill NEGOTIATION
Murillo A DarakjySpainXuxue Feng PROPOSAL
Costa H PerinJapanIvan Magalhaes NEW
Aditya H FlosiIndiaBernardo Dominic NEW
Darci N SergiJapanElwin Sharvill UNQUALIFIED
Costa U ChuiRussiaIoni Bowcher NEW
Maisha D MorascaArgentinaAnna Fali NEW
Kadeem Z GlickCanadaStephen Shaw RENEWAL
Juan K FlosiRussiaIoni Bowcher UNQUALIFIED
Costa E GarufiGermanyBernardo Dominic NEGOTIATION
Deepesh Z WieserUnited KingdomOnyama Limba PROPOSAL
Maisha X AlbaresUnited KingdomXuxue Feng NEGOTIATION
Greenwood O WieserJapanOnyama Limba NEGOTIATION
Murillo P WhobreyGermanyElwin Sharvill PROPOSAL
Claire Z MacleadArgentinaAsiya Javayant RENEWAL
Clifford M CampainCanadaElwin Sharvill RENEWAL
Arvin A SchemmerItalyOnyama Limba NEGOTIATION
Ivar V StensethJapanAsiya Javayant QUALIFIED
Tony A DoeRussiaElwin Sharvill 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>