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
Ivar Y NickaItalyIoni Bowcher NEW
Sinclair A FigeroaFranceIoni Bowcher NEW
Clifford Z GlickFranceAnna Fali NEW
Adams E NestleCanadaStephen Shaw RENEWAL
Chavez B FerenczItalyOnyama Limba UNQUALIFIED
Cody N GillianUnited KingdomXuxue Feng NEGOTIATION
Murillo X MorascaSpainIvan Magalhaes RENEWAL
Tony Z GauchoGermanyIvan Magalhaes RENEWAL
Johnson T BriddickUnited KingdomOnyama Limba NEW
Sinclair W RimIndiaIvan Magalhaes NEW
Emily Z PoquetteJapanIoni Bowcher PROPOSAL
Leon B AmigonBrazilAmy Elsner UNQUALIFIED
Antonio Y GlickItalyAmy Elsner NEGOTIATION
Aditya W BologniaSpainAnna Fali QUALIFIED
Munro Z InouyeGermanyXuxue Feng PROPOSAL
Aruna R BowleyCanadaOnyama Limba QUALIFIED
Adams P MacleadJapanBernardo Dominic UNQUALIFIED
Silvio L RulapaughFranceStephen Shaw NEW
Wickens S RoysterFranceElwin Sharvill QUALIFIED
Deepesh T OldroydBrazilAsiya Javayant UNQUALIFIED
Arvin U ButtSpainElwin Sharvill NEW
Jones L GillianJapanAmy Elsner NEW
Chavez S PaprockiFranceOnyama Limba NEW
Maria U OstroskyArgentinaXuxue Feng QUALIFIED
Kadeem E PoquetteItalyStephen Shaw QUALIFIED
Greenwood H RimCanadaIoni Bowcher UNQUALIFIED
Emily T TollnerJapanIoni Bowcher UNQUALIFIED
Izzy S SaylorsIndiaAmy Elsner NEW
Mujtaba F FollerAustraliaOnyama Limba NEGOTIATION
Misaki M DarakjyGermanyIoni Bowcher QUALIFIED
Greenwood O GillianItalyBernardo Dominic QUALIFIED
Johnson Y MacleadRussiaIoni Bowcher NEW
Juan Y RoysterRussiaBernardo Dominic QUALIFIED
Francesco D RoysterGermanyOnyama Limba QUALIFIED
Alejandro R CampainRussiaAnna Fali NEGOTIATION
Leja F ShinkoSpainAmy Elsner UNQUALIFIED
Leja D MaletCanadaBernardo Dominic NEGOTIATION
Octavia T CaudyCanadaAmy Elsner NEW
Silvio M SaylorsArgentinaXuxue Feng PROPOSAL
Morrow V BowleyUnited KingdomAnna Fali UNQUALIFIED
Clifford L WaycottItalyIoni Bowcher PROPOSAL
Morrow X BriddickUnited KingdomStephen Shaw NEW
Isabel X BriddickSpainIoni Bowcher QUALIFIED
Cody D PerinUnited KingdomAsiya Javayant NEGOTIATION
Octavia D CampainGermanyXuxue Feng NEGOTIATION
Cody D SergiArgentinaIoni Bowcher QUALIFIED
Munro C GlickIndiaStephen Shaw RENEWAL
Salvatore F MaletUnited KingdomOnyama Limba NEGOTIATION
Juan G ButtJapanIoni Bowcher RENEWAL
Tony D KuskoSpainAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel T VocelkaIndiaAsiya Javayant RENEWAL
Alejandro M GlickGermanyAsiya Javayant QUALIFIED
Adams A OldroydRussiaBernardo Dominic UNQUALIFIED
Leon S GarufiAustraliaAmy Elsner NEGOTIATION
Cody L StockhamArgentinaAmy Elsner NEW
Rodrigues O MaletBrazilAmy Elsner PROPOSAL
Johnson L IturbideBrazilIvan Magalhaes RENEWAL
Mayumi G AmigonBrazilIoni Bowcher NEGOTIATION
Ricardo D MarrierUnited KingdomStephen Shaw UNQUALIFIED
Maria W RoysterSpainElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa F GlickFrance2025-06-04Morlong Associates PROPOSAL23Anna Fali
1001Costa V BologniaSpain2025-06-07Commercial Press QUALIFIED45Ioni Bowcher
1002Chavez X StensethAustralia2025-05-24Chemel, James L Cpa PROPOSAL9Anna Fali
1003Morrow N OstroskyAustralia2025-06-10Chapman, Ross E Esq NEW63Asiya Javayant
1004Julie X RutaArgentina2025-05-31Rousseaux, Michael Esq UNQUALIFIED99Amy Elsner
1005Clifford A MacleadCanada2025-06-16Rangoni Of Florence QUALIFIED4Elwin Sharvill
1006Aika E MarrierItaly2025-06-10Morlong Associates NEGOTIATION93Xuxue Feng
1007Misaki M MacleadJapan2025-06-09King, Christopher A Esq PROPOSAL63Anna Fali
1008Stacey V VenereBrazil2025-06-02Buckley Miller Wright UNQUALIFIED73Stephen Shaw
1009Smith V GarufiAustralia2025-05-19Benton, John B Jr RENEWAL44Ivan Magalhaes
1010Alejandro M MarrierSpain2025-06-03Chemel, James L Cpa RENEWAL37Xuxue Feng
1011Ricardo C WieserCanada2025-05-19Chemel, James L Cpa NEGOTIATION77Xuxue Feng
1012Octavia D MarrierUnited Kingdom2025-06-09King, Christopher A Esq PROPOSAL53Stephen Shaw
1013Cody P ButtSpain2025-06-04Chapman, Ross E Esq QUALIFIED8Bernardo Dominic
1014Adams K RimItaly2025-05-18Benton, John B Jr QUALIFIED51Bernardo Dominic
1015Cody J StensethBrazil2025-05-19Commercial Press PROPOSAL59Xuxue Feng
1016Julie P KolmetzRussia2025-06-16Feltz Printing Service UNQUALIFIED34Stephen Shaw
1017Isabel P CampainItaly2025-05-31Dorl, James J Esq NEGOTIATION14Ivan Magalhaes
1018Mujtaba M SlusarskiUnited Kingdom2025-05-18Printing Dimensions RENEWAL47Amy Elsner
1019Izzy S MaletArgentina2025-06-07Dorl, James J Esq RENEWAL77Ivan Magalhaes
1020James M DoeAustralia2025-06-14Rousseaux, Michael Esq NEW68Bernardo Dominic
1021Faith V PaprockiCanada2025-05-28Chemel, James L Cpa UNQUALIFIED88Anna Fali
1022Morrow U SchemmerArgentina2025-06-15Dorl, James J Esq UNQUALIFIED75Ioni Bowcher
1023Tony C MarrierJapan2025-06-15Dorl, James J Esq NEGOTIATION33Xuxue Feng
1024Jefferson G SlusarskiIndia2025-05-26Commercial Press RENEWAL18Xuxue Feng
1025Antonio F DarakjyIndia2025-05-18Morlong Associates RENEWAL11Xuxue Feng
1026Isabel D StensethItaly2025-06-08King, Christopher A Esq NEGOTIATION89Ivan Magalhaes
1027Costa U RulapaughRussia2025-05-27Benton, John B Jr RENEWAL65Ioni Bowcher
1028Francesco L OldroydSpain2025-06-10Feltz Printing Service PROPOSAL80Ivan Magalhaes
1029Johnson R DilliardRussia2025-05-27Buckley Miller Wright NEW27Stephen Shaw
1030Wickens E MarrierArgentina2025-06-12Rangoni Of Florence QUALIFIED41Bernardo Dominic
1031Mujtaba H FigeroaBrazil2025-05-28Chanay, Jeffrey A Esq UNQUALIFIED0Elwin Sharvill
1032Chavez Q BriddickFrance2025-06-08King, Christopher A Esq NEW97Amy Elsner
1033Claire D SchemmerSpain2025-05-29Truhlar And Truhlar Attys UNQUALIFIED33Elwin Sharvill
1034Emily Q FigeroaItaly2025-06-03Rangoni Of Florence RENEWAL22Asiya Javayant
1035Jefferson J VenereAustralia2025-05-29Feltz Printing Service NEW45Stephen Shaw
1036Cody S VenereIndia2025-05-19Rangoni Of Florence NEW78Asiya Javayant
1037Jennifer J WieserItaly2025-05-24Printing Dimensions PROPOSAL40Ivan Magalhaes
1038Faith S SergiUnited Kingdom2025-06-12Dorl, James J Esq NEGOTIATION74Ivan Magalhaes
1039Smith V IturbideRussia2025-06-10Dorl, James J Esq NEW35Bernardo Dominic
1040David M KolmetzJapan2025-05-27Buckley Miller Wright NEGOTIATION30Asiya Javayant
1041Costa G TollnerItaly2025-06-15Buckley Miller Wright RENEWAL1Amy Elsner
1042David R CaudyAustralia2025-05-30Buckley Miller Wright NEGOTIATION99Ivan Magalhaes
1043Izzy T WhobreyFrance2025-05-29Rangoni Of Florence NEW76Xuxue Feng
1044Kaitlin E CaudyRussia2025-06-12Morlong Associates NEGOTIATION84Elwin Sharvill
1045Juan V KuskoItaly2025-05-26Benton, John B Jr NEW30Amy Elsner
1046Ashley F SergiArgentina2025-06-08Rousseaux, Michael Esq UNQUALIFIED28Amy Elsner
1047Antonio B WieserIndia2025-05-31Truhlar And Truhlar Attys NEW23Bernardo Dominic
1048Leja N MarrierGermany2025-06-13Feiner Bros QUALIFIED18Onyama Limba
1049Kadeem R RulapaughUnited Kingdom2025-06-09Chanay, Jeffrey A Esq QUALIFIED48Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jefferson T DarakjyArgentinaIvan Magalhaes RENEWAL
Jefferson L OstroskyCanadaAnna Fali RENEWAL
Ashley D VenereCanadaBernardo Dominic QUALIFIED
Jeanfrancois I RulapaughAustraliaAsiya Javayant PROPOSAL
Silvio R AmigonAustraliaIvan Magalhaes NEW
Mayumi I BowleyJapanAmy Elsner UNQUALIFIED
Mujtaba V WhobreyAustraliaAnna Fali PROPOSAL
Stacey P WaycottAustraliaIvan Magalhaes UNQUALIFIED
Ivar S MacleadArgentinaAnna Fali UNQUALIFIED
Isabel C DoeRussiaBernardo Dominic UNQUALIFIED
Aditya X RutaBrazilOnyama Limba RENEWAL
Chavez P OstroskyGermanyOnyama Limba PROPOSAL
Jefferson W WaycottBrazilXuxue Feng UNQUALIFIED
Tony X ButtJapanElwin Sharvill RENEWAL
Murillo G StensethRussiaOnyama Limba QUALIFIED
Adams Y FigeroaAustraliaAmy Elsner UNQUALIFIED
Greenwood D VenereUnited KingdomAsiya Javayant RENEWAL
Ashley N GillianJapanOnyama Limba UNQUALIFIED
Maria R OldroydGermanyElwin Sharvill RENEWAL
Deepesh P NickaItalyAsiya Javayant QUALIFIED
Ashley W BriddickRussiaIvan Magalhaes UNQUALIFIED
Adams S StockhamSpainXuxue Feng RENEWAL
Mujtaba K SaylorsBrazilBernardo Dominic UNQUALIFIED
Maisha E FollerBrazilAnna Fali QUALIFIED
Rodrigues S BologniaArgentinaBernardo Dominic PROPOSAL
Jeanfrancois P OldroydUnited KingdomAmy Elsner RENEWAL
Salvatore U OstroskyGermanyAsiya Javayant RENEWAL
Aika O FigeroaRussiaIvan Magalhaes QUALIFIED
Arvin S RimFranceIvan Magalhaes NEW
Nicolas J KuskoCanadaAnna Fali NEGOTIATION
Silvio H StensethArgentinaAmy Elsner UNQUALIFIED
Smith M FerenczIndiaAsiya Javayant NEGOTIATION
Rodrigues A MacleadAustraliaElwin Sharvill RENEWAL
Izzy M SaylorsFranceAnna Fali RENEWAL
Smith E MaletJapanElwin Sharvill NEGOTIATION
Wickens I KolmetzJapanIoni Bowcher UNQUALIFIED
Costa V GauchoRussiaAnna Fali NEGOTIATION
Aruna F FollerFranceBernardo Dominic QUALIFIED
Octavia F BologniaAustraliaXuxue Feng NEW
Maria Q NestleCanadaStephen Shaw NEW
Salvatore C PaprockiIndiaIoni Bowcher NEW
Cody B FerenczCanadaAmy Elsner PROPOSAL
Munro T SergiArgentinaXuxue Feng UNQUALIFIED
Kadeem E TollnerItalyIoni Bowcher RENEWAL
Mujtaba Y ButtBrazilOnyama Limba RENEWAL
Kaitlin U NickaJapanXuxue Feng UNQUALIFIED
Cody O BologniaRussiaElwin Sharvill NEW
Jennifer D WhobreyBrazilXuxue Feng PROPOSAL
James K PaprockiAustraliaAsiya Javayant QUALIFIED
Clifford Y OldroydJapanXuxue Feng NEW
Frozen Columns
Name
Octavia V Malet
Silvio E Rim
Ricardo X Garufi
Nicolas O Nicka
Munro G Amigon
Ricardo F Chui
Munro U Maclead
James P Caldarera
Silvio B Albares
Mujtaba F Shinko
Tony W Schemmer
Mayumi I Bowley
Johnson N Albares
Kaitlin Y Ruta
Mayumi V Doe
Jeanfrancois X Royster
Misaki B Dilliard
Stacey Q Schemmer
Chavez Z Inouye
Ashley D Rulapaugh
Johnson F Kusko
Silvio G Wieser
Aruna Z Venere
James I Doe
Jeanfrancois A Albares
Chavez V Kusko
Nicolas K Kolmetz
Adams N Doe
Munro K Maclead
Adams H Royster
Jefferson N Marrier
Johnson Q Slusarski
Isabel Y Amigon
Izzy J Gillian
Sinclair R Doe
Claire S Iturbide
Aditya S Malet
Faith M Vocelka
Jones H Perin
Antonio T Vocelka
Kaitlin Z Shinko
Murillo X Nestle
Silvio T Gillian
Octavia C Sergi
Claire H Briddick
Nicolas M Inouye
Aditya D Nicka
Izzy D Poquette
Aditya I Slusarski
Octavia T Amigon
IdCountryDate
1000Argentina2025-06-09
1001Italy2025-06-09
1002Australia2025-05-27
1003Brazil2025-05-18
1004Australia2025-05-21
1005Australia2025-05-19
1006India2025-06-12
1007Brazil2025-05-26
1008Canada2025-05-19
1009Brazil2025-06-08
1010Australia2025-05-28
1011Canada2025-05-21
1012India2025-05-28
1013Germany2025-05-18
1014Argentina2025-05-22
1015France2025-05-31
1016Italy2025-06-06
1017Italy2025-05-18
1018United Kingdom2025-05-29
1019Russia2025-05-20
1020Canada2025-05-22
1021Spain2025-06-10
1022Spain2025-06-16
1023Canada2025-06-04
1024Australia2025-06-04
1025Canada2025-06-09
1026Italy2025-06-15
1027Japan2025-05-29
1028Japan2025-06-10
1029Japan2025-06-12
1030Germany2025-05-30
1031France2025-05-29
1032Australia2025-06-14
1033Argentina2025-06-13
1034Canada2025-05-24
1035Canada2025-06-06
1036Brazil2025-05-22
1037Japan2025-06-07
1038Italy2025-05-22
1039Russia2025-06-10
1040United Kingdom2025-06-15
1041Canada2025-05-30
1042Japan2025-06-01
1043Spain2025-05-22
1044Japan2025-06-02
1045France2025-05-21
1046Canada2025-06-07
1047Brazil2025-05-22
1048Brazil2025-05-29
1049India2025-05-19

On-Demand Data

NameIdCountryDate
Greenwood P Foller1000Argentina2025-05-24
Francesco S Briddick1001Australia2025-06-09
Johnson Y Ruta1002France2025-05-21
Arvin K Wieser1003Brazil2025-05-26
Isabel C Rulapaugh1004United Kingdom2025-05-23
Alejandro Z Butt1005Argentina2025-06-09
Jefferson W Venere1006Italy2025-05-29
David A Foller1007India2025-05-19
Aika L Iturbide1008India2025-06-16
Isabel R Bowley1009Canada2025-05-27
Stacey G Rulapaugh1010United Kingdom2025-06-10
Aika K Ruta1011Italy2025-06-05
Jefferson G Caldarera1012France2025-06-07
Murillo K Bowley1013Italy2025-05-24
Munro L Chui1014Japan2025-06-16
Mujtaba X Schemmer1015Canada2025-06-03
Ashley G Gillian1016France2025-06-14
Wickens L Bowley1017India2025-05-18
Aika R Doe1018Australia2025-05-27
Chavez N Morasca1019Russia2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones W RulapaughUnited KingdomStephen Shaw RENEWAL
Jones P InouyeArgentinaAnna Fali QUALIFIED
Salvatore F StockhamRussiaAmy Elsner RENEWAL
Ivar R SlusarskiCanadaAnna Fali RENEWAL
Adams O DarakjyArgentinaIoni Bowcher NEGOTIATION
Octavia T IturbideIndiaIoni Bowcher PROPOSAL
Aruna Y CampainCanadaAmy Elsner RENEWAL
Kadeem K MorascaArgentinaStephen Shaw NEGOTIATION
Jefferson O CaldareraGermanyIvan Magalhaes RENEWAL
Leja E RutaJapanBernardo Dominic QUALIFIED
Aika Q RutaRussiaIoni Bowcher NEGOTIATION
Kaitlin V SaylorsGermanyOnyama Limba UNQUALIFIED
Jeanfrancois C PoquetteRussiaAnna Fali PROPOSAL
Ashley R CampainUnited KingdomElwin Sharvill NEW
Jennifer M StensethSpainBernardo Dominic NEW
Munro L NestleUnited KingdomAsiya Javayant UNQUALIFIED
Aruna E GillianIndiaOnyama Limba NEW
Ivar P WaycottJapanIvan Magalhaes QUALIFIED
Kadeem L DoeAustraliaAsiya Javayant NEW
Alejandro B MorascaCanadaBernardo Dominic QUALIFIED
Jennifer Z WieserUnited KingdomOnyama Limba UNQUALIFIED
Misaki K WhobreyJapanElwin Sharvill UNQUALIFIED
Aruna D PoquetteJapanAnna Fali NEW
Jones J VocelkaFranceAnna Fali NEW
Antonio R MacleadUnited KingdomIoni Bowcher QUALIFIED
Leja J GillianJapanBernardo Dominic QUALIFIED
Leon Q InouyeGermanyElwin Sharvill PROPOSAL
Nicolas E PerinCanadaOnyama Limba NEW
Juan R KolmetzRussiaAsiya Javayant NEW
Octavia N PerinAustraliaAnna Fali NEW
Maria I InouyeCanadaStephen Shaw PROPOSAL
Salvatore Q MaletSpainOnyama Limba NEW
Tony A WieserArgentinaOnyama Limba NEW
Stacey L StockhamAustraliaBernardo Dominic QUALIFIED
Clifford M WaycottBrazilIvan Magalhaes PROPOSAL
Ricardo Q MacleadArgentinaXuxue Feng QUALIFIED
Salvatore A RutaUnited KingdomXuxue Feng NEW
Jeanfrancois T FigeroaItalyAmy Elsner QUALIFIED
Jefferson N NickaGermanyElwin Sharvill RENEWAL
Silvio X TollnerItalyXuxue Feng NEGOTIATION

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