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
Mayumi N FollerArgentinaIvan Magalhaes NEGOTIATION
Munro P VocelkaIndiaStephen Shaw RENEWAL
Nicolas Q NickaAustraliaAsiya Javayant NEW
Maisha H ChuiIndiaIoni Bowcher RENEWAL
Francesco W GlickAustraliaBernardo Dominic NEGOTIATION
Wickens W GillianItalyElwin Sharvill NEGOTIATION
Murillo J FlosiCanadaStephen Shaw NEGOTIATION
Claire D TollnerFranceAmy Elsner QUALIFIED
Johnson A RoysterSpainOnyama Limba NEW
Chavez C AmigonFranceXuxue Feng QUALIFIED
Silvio W StockhamGermanyBernardo Dominic NEGOTIATION
Arvin O RulapaughAustraliaAnna Fali NEGOTIATION
Stacey F WieserRussiaIvan Magalhaes UNQUALIFIED
Julie Z ShinkoFranceStephen Shaw RENEWAL
Mujtaba H ShinkoItalyIvan Magalhaes NEGOTIATION
Deepesh Q VocelkaGermanyAsiya Javayant NEGOTIATION
Wickens H CaudyItalyBernardo Dominic PROPOSAL
Smith P NickaFranceXuxue Feng PROPOSAL
Sinclair V FollerJapanElwin Sharvill PROPOSAL
Greenwood F ChuiUnited KingdomIvan Magalhaes QUALIFIED
Clifford E AmigonItalyStephen Shaw NEGOTIATION
Claire L GauchoArgentinaXuxue Feng UNQUALIFIED
Jefferson T ButtJapanXuxue Feng PROPOSAL
Emily Y ShinkoGermanyElwin Sharvill PROPOSAL
Julie G SchemmerGermanyBernardo Dominic UNQUALIFIED
Jennifer D NickaCanadaAmy Elsner UNQUALIFIED
Cody Z StockhamItalyAsiya Javayant RENEWAL
Izzy D MacleadItalyElwin Sharvill RENEWAL
Francesco Q WaycottUnited KingdomOnyama Limba UNQUALIFIED
Jefferson K ShinkoIndiaAsiya Javayant RENEWAL
Octavia R OldroydArgentinaIvan Magalhaes NEGOTIATION
Wickens Q IturbideBrazilOnyama Limba UNQUALIFIED
Claire W DoeFranceIoni Bowcher PROPOSAL
Misaki U ButtItalyAmy Elsner PROPOSAL
Clifford B SergiCanadaBernardo Dominic PROPOSAL
Jefferson J NestleCanadaElwin Sharvill UNQUALIFIED
Morrow S AlbaresArgentinaAmy Elsner PROPOSAL
Jennifer I RutaJapanXuxue Feng NEGOTIATION
Darci W MarrierArgentinaAnna Fali NEW
Murillo P CampainJapanAsiya Javayant RENEWAL
Maria C RutaSpainAsiya Javayant UNQUALIFIED
Maisha H TollnerItalyElwin Sharvill UNQUALIFIED
Mujtaba D MaletBrazilAnna Fali QUALIFIED
Deepesh F RulapaughArgentinaAmy Elsner QUALIFIED
Darci K MorascaAustraliaStephen Shaw PROPOSAL
Maria N DoeGermanyAsiya Javayant PROPOSAL
Emily Y TollnerAustraliaIvan Magalhaes NEW
Francesco L TollnerJapanStephen Shaw NEW
Silvio H CaldareraItalyOnyama Limba NEGOTIATION
Aditya S PoquetteBrazilOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jones I WieserSpainOnyama Limba NEW
Smith J IturbideCanadaElwin Sharvill PROPOSAL
Munro M SchemmerSpainBernardo Dominic RENEWAL
Munro F VenereItalyAmy Elsner RENEWAL
Tony G KolmetzBrazilBernardo Dominic UNQUALIFIED
Mayumi M BologniaArgentinaOnyama Limba NEW
Smith Y SlusarskiArgentinaOnyama Limba NEW
Costa O GlickBrazilIvan Magalhaes QUALIFIED
Jeanfrancois V ShinkoGermanyIvan Magalhaes QUALIFIED
Francesco L MorascaItalyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas G RutaRussia2026-07-23Feltz Printing Service NEW0Elwin Sharvill
1001Maisha N FollerIndia2026-07-22Chapman, Ross E Esq QUALIFIED2Asiya Javayant
1002Mayumi G ButtAustralia2026-07-21Morlong Associates PROPOSAL73Stephen Shaw
1003Deepesh B BologniaArgentina2026-07-21King, Christopher A Esq NEGOTIATION32Xuxue Feng
1004Wickens J VocelkaCanada2026-07-23Rousseaux, Michael Esq RENEWAL66Asiya Javayant
1005Clifford N AlbaresFrance2026-07-08Chapman, Ross E Esq UNQUALIFIED86Asiya Javayant
1006Salvatore G WaycottAustralia2026-07-25Dorl, James J Esq NEW48Asiya Javayant
1007Aruna B MaletRussia2026-07-07Chanay, Jeffrey A Esq PROPOSAL80Ivan Magalhaes
1008Chavez D VocelkaCanada2026-07-27Truhlar And Truhlar Attys RENEWAL51Bernardo Dominic
1009Antonio H NestleRussia2026-07-21King, Christopher A Esq RENEWAL98Anna Fali
1010Silvio H CaudyItaly2026-07-12Rousseaux, Michael Esq PROPOSAL55Stephen Shaw
1011Arvin O GauchoIndia2026-08-02Commercial Press RENEWAL10Anna Fali
1012Jefferson E PerinBrazil2026-07-12Chemel, James L Cpa PROPOSAL94Xuxue Feng
1013Emily G PerinBrazil2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED38Ivan Magalhaes
1014Jeanfrancois C IturbideItaly2026-07-13Printing Dimensions PROPOSAL4Ioni Bowcher
1015Clifford G RulapaughIndia2026-07-20Feiner Bros NEW36Stephen Shaw
1016Maria K RutaUnited Kingdom2026-07-10Printing Dimensions PROPOSAL54Asiya Javayant
1017Isabel U SergiUnited Kingdom2026-07-22Printing Dimensions PROPOSAL25Ioni Bowcher
1018Kadeem V SlusarskiGermany2026-08-03Buckley Miller Wright PROPOSAL94Asiya Javayant
1019James L PoquetteGermany2026-07-16Chemel, James L Cpa QUALIFIED95Asiya Javayant
1020Aika E VenereJapan2026-07-16Rousseaux, Michael Esq NEGOTIATION2Xuxue Feng
1021Izzy I NickaFrance2026-07-28Truhlar And Truhlar Attys NEW25Onyama Limba
1022Izzy X OldroydArgentina2026-07-19King, Christopher A Esq UNQUALIFIED51Onyama Limba
1023Aditya T BowleyItaly2026-07-29Chanay, Jeffrey A Esq NEW25Amy Elsner
1024Mayumi X NickaItaly2026-07-20Chemel, James L Cpa RENEWAL51Stephen Shaw
1025Emily M KolmetzGermany2026-07-26Rousseaux, Michael Esq NEW60Onyama Limba
1026Smith T StensethSpain2026-07-22Rousseaux, Michael Esq PROPOSAL68Bernardo Dominic
1027David F DilliardCanada2026-07-08Printing Dimensions QUALIFIED15Anna Fali
1028Izzy G ChuiRussia2026-07-13Benton, John B Jr RENEWAL0Elwin Sharvill
1029Kaitlin U GarufiAustralia2026-07-06Printing Dimensions PROPOSAL65Ioni Bowcher
1030Octavia E NickaItaly2026-07-29Morlong Associates QUALIFIED63Xuxue Feng
1031David A SlusarskiRussia2026-07-29Truhlar And Truhlar Attys UNQUALIFIED44Bernardo Dominic
1032Jones O WieserCanada2026-07-28Dorl, James J Esq PROPOSAL82Anna Fali
1033David S PerinSpain2026-07-18Printing Dimensions PROPOSAL33Ivan Magalhaes
1034Nicolas X PerinItaly2026-08-01Buckley Miller Wright NEGOTIATION51Onyama Limba
1035Jennifer E NestleUnited Kingdom2026-07-24Morlong Associates PROPOSAL77Stephen Shaw
1036Stacey J ChuiFrance2026-07-22Chemel, James L Cpa NEGOTIATION53Xuxue Feng
1037Ivar H DoeRussia2026-08-01Benton, John B Jr NEW6Bernardo Dominic
1038Juan G PoquetteBrazil2026-07-20Commercial Press RENEWAL50Asiya Javayant
1039Arvin Y VenereFrance2026-07-08Commercial Press PROPOSAL1Asiya Javayant
1040Costa I FlosiBrazil2026-07-10Buckley Miller Wright PROPOSAL41Ioni Bowcher
1041Ivar B OstroskyAustralia2026-08-02Chemel, James L Cpa UNQUALIFIED64Stephen Shaw
1042Rodrigues S PoquetteIndia2026-07-15Feltz Printing Service PROPOSAL19Onyama Limba
1043Francesco O GauchoSpain2026-07-09Feltz Printing Service PROPOSAL15Ioni Bowcher
1044Morrow F FerenczItaly2026-07-15Benton, John B Jr NEW50Ivan Magalhaes
1045Antonio B RulapaughUnited Kingdom2026-07-15Feiner Bros NEGOTIATION89Bernardo Dominic
1046Jeanfrancois P SlusarskiBrazil2026-07-20King, Christopher A Esq QUALIFIED61Onyama Limba
1047Jennifer G CampainItaly2026-08-02Morlong Associates QUALIFIED65Ioni Bowcher
1048Salvatore V MorascaIndia2026-08-01King, Christopher A Esq NEW71Amy Elsner
1049Octavia A CaldareraItaly2026-07-20Rousseaux, Michael Esq UNQUALIFIED32Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja E DilliardAustraliaAmy Elsner QUALIFIED
Leon C FigeroaBrazilOnyama Limba RENEWAL
Murillo M GarufiItalyXuxue Feng UNQUALIFIED
Ashley Y WieserGermanyAnna Fali UNQUALIFIED
Nicolas J GlickGermanyAsiya Javayant QUALIFIED
Johnson U BriddickSpainBernardo Dominic PROPOSAL
Jefferson W VocelkaBrazilXuxue Feng NEW
Octavia I AmigonItalyOnyama Limba UNQUALIFIED
Tony O RutaItalyStephen Shaw PROPOSAL
Murillo U KuskoItalyXuxue Feng NEW
Julie D AmigonFranceOnyama Limba NEW
Clifford R MorascaIndiaAmy Elsner PROPOSAL
Aika V AmigonBrazilAmy Elsner NEW
Kadeem H CaudyAustraliaElwin Sharvill QUALIFIED
Emily Q KolmetzGermanyIvan Magalhaes QUALIFIED
Francesco B OldroydGermanyElwin Sharvill UNQUALIFIED
Wickens S StockhamGermanyIvan Magalhaes NEW
David U MorascaCanadaAmy Elsner NEGOTIATION
Wickens T AlbaresBrazilBernardo Dominic UNQUALIFIED
Leon H RulapaughRussiaAnna Fali RENEWAL
Mujtaba X VenereGermanyAsiya Javayant NEGOTIATION
Kadeem K DilliardAustraliaAmy Elsner RENEWAL
Ivar M BriddickSpainIvan Magalhaes NEW
Jennifer G RimJapanIoni Bowcher NEGOTIATION
Chavez L DarakjyUnited KingdomAmy Elsner QUALIFIED
Juan S InouyeRussiaAnna Fali QUALIFIED
Clifford C MaletArgentinaAsiya Javayant QUALIFIED
Salvatore I ChuiSpainAnna Fali UNQUALIFIED
Claire H GauchoAustraliaXuxue Feng UNQUALIFIED
Adams P NestleSpainAmy Elsner QUALIFIED
Darci T GlickIndiaElwin Sharvill QUALIFIED
Sinclair H DoeBrazilIoni Bowcher QUALIFIED
James F ShinkoArgentinaElwin Sharvill NEGOTIATION
Tony J DarakjyCanadaAmy Elsner QUALIFIED
Leja S RimBrazilOnyama Limba RENEWAL
Jennifer O OstroskyRussiaElwin Sharvill NEW
Jones F InouyeBrazilStephen Shaw NEW
Aditya L MacleadSpainAsiya Javayant UNQUALIFIED
Misaki J StockhamRussiaStephen Shaw PROPOSAL
Nicolas R FlosiSpainAnna Fali QUALIFIED
Smith X KolmetzUnited KingdomXuxue Feng RENEWAL
Murillo G FlosiArgentinaAnna Fali PROPOSAL
Cody H SchemmerFranceBernardo Dominic NEGOTIATION
Morrow S WaycottArgentinaAmy Elsner RENEWAL
Tony O RoysterFranceStephen Shaw PROPOSAL
Johnson Y DarakjyIndiaStephen Shaw RENEWAL
David N FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Misaki W BologniaCanadaXuxue Feng QUALIFIED
Antonio Y GarufiFranceIvan Magalhaes NEW
Leja T IturbideRussiaIoni Bowcher NEW
Frozen Columns
Name
Adams W Nestle
Chavez C Whobrey
Jeanfrancois F Ferencz
Leja W Flosi
Munro R Foller
Jones Q Waycott
Costa H Garufi
Johnson K Kusko
David D Ostrosky
Wickens W Bolognia
Costa E Nicka
Mayumi O Caldarera
Salvatore N Doe
Izzy I Gaucho
Sinclair N Bowley
Leon O Slusarski
David L Glick
Octavia J Doe
Wickens D Foller
Mujtaba V Saylors
Tony E Briddick
Darci D Poquette
Salvatore M Sergi
Deepesh Y Amigon
Silvio G Schemmer
Antonio Y Flosi
Greenwood N Dilliard
Antonio G Slusarski
Arvin P Inouye
Emily V Rim
Chavez G Shinko
Arvin O Dilliard
Ricardo X Bolognia
Wickens F Glick
Mujtaba Z Saylors
Rodrigues R Paprocki
Maisha Z Waycott
Nicolas G Vocelka
Johnson I Dilliard
Julie F Albares
Misaki N Maclead
Emily C Doe
Misaki L Saylors
Misaki O Oldroyd
Adams D Amigon
Julie K Garufi
Aruna D Albares
Jeanfrancois G Sergi
Maria F Malet
Julie L Saylors
IdCountryDate
1000Germany2026-07-18
1001Australia2026-07-24
1002India2026-07-27
1003France2026-07-20
1004Canada2026-07-25
1005Australia2026-07-22
1006Canada2026-07-07
1007United Kingdom2026-07-28
1008Canada2026-07-19
1009Japan2026-08-03
1010Russia2026-07-18
1011Japan2026-08-03
1012Australia2026-07-30
1013United Kingdom2026-07-21
1014Japan2026-08-02
1015Russia2026-07-12
1016Germany2026-07-17
1017Germany2026-07-21
1018India2026-07-27
1019Japan2026-07-27
1020United Kingdom2026-08-02
1021United Kingdom2026-07-21
1022Spain2026-07-15
1023Russia2026-08-04
1024Argentina2026-07-21
1025Canada2026-08-01
1026India2026-07-30
1027Argentina2026-07-06
1028United Kingdom2026-07-18
1029Canada2026-07-17
1030Spain2026-08-03
1031Argentina2026-07-17
1032Argentina2026-07-29
1033United Kingdom2026-07-14
1034Germany2026-07-07
1035Australia2026-07-09
1036Germany2026-07-21
1037France2026-07-15
1038Spain2026-08-04
1039United Kingdom2026-07-07
1040Japan2026-07-31
1041Australia2026-07-16
1042United Kingdom2026-08-04
1043Brazil2026-07-07
1044Brazil2026-07-23
1045United Kingdom2026-07-31
1046Argentina2026-08-01
1047Russia2026-07-16
1048Russia2026-07-24
1049Germany2026-07-09

On-Demand Data

NameIdCountryDate
Jennifer J Paprocki1000Russia2026-07-16
Ivar K Campain1001Germany2026-08-03
Clifford M Briddick1002Brazil2026-07-18
Aruna F Chui1003Japan2026-08-02
Jeanfrancois V Inouye1004Australia2026-08-04
Faith C Figeroa1005United Kingdom2026-07-22
Kadeem U Malet1006Italy2026-08-04
Costa E Caudy1007Canada2026-07-20
Greenwood L Darakjy1008Australia2026-07-14
Aditya A Iturbide1009Brazil2026-07-14
Clifford C Garufi1010Argentina2026-07-25
Ivar Z Flosi1011India2026-07-30
Leon G Schemmer1012Argentina2026-07-26
Ashley B Slusarski1013Argentina2026-07-21
Ashley R Malet1014Argentina2026-07-08
Arvin Q Foller1015Spain2026-07-12
Cody O Ruta1016Russia2026-07-07
Johnson V Albares1017Germany2026-07-20
Juan S Vocelka1018Japan2026-07-30
Leja Y Briddick1019Germany2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa D MacleadUnited KingdomXuxue Feng RENEWAL
Isabel S SlusarskiFranceIoni Bowcher UNQUALIFIED
Arvin O AlbaresGermanyAnna Fali PROPOSAL
Costa W RimSpainIoni Bowcher NEW
Jeanfrancois J GauchoBrazilXuxue Feng NEW
Adams Y AmigonGermanyAsiya Javayant NEW
Nicolas C DarakjyJapanAmy Elsner RENEWAL
Jefferson J StensethAustraliaAnna Fali PROPOSAL
Antonio U IturbideRussiaAmy Elsner PROPOSAL
Greenwood N FollerIndiaElwin Sharvill RENEWAL
Jefferson K GlickRussiaAmy Elsner PROPOSAL
Johnson D BriddickGermanyStephen Shaw NEW
Alejandro J GauchoAustraliaIvan Magalhaes NEGOTIATION
Izzy O PoquetteUnited KingdomAmy Elsner RENEWAL
Clifford Z DarakjyCanadaBernardo Dominic PROPOSAL
Octavia K SlusarskiJapanAnna Fali NEW
Jefferson W ChuiRussiaIoni Bowcher NEW
Maria V NestleRussiaAsiya Javayant RENEWAL
Jones P MaletUnited KingdomOnyama Limba PROPOSAL
James S FlosiGermanyBernardo Dominic RENEWAL
Salvatore R FerenczJapanStephen Shaw NEW
Clifford O AmigonUnited KingdomAsiya Javayant PROPOSAL
Julie O ButtRussiaIvan Magalhaes NEGOTIATION
Ashley D BowleyAustraliaAmy Elsner PROPOSAL
James M ShinkoSpainBernardo Dominic UNQUALIFIED
Clifford Z DilliardBrazilBernardo Dominic PROPOSAL
Jefferson I DilliardItalyAsiya Javayant QUALIFIED
Tony C WhobreySpainAsiya Javayant UNQUALIFIED
Aika G ButtGermanyIoni Bowcher RENEWAL
Ricardo O NickaBrazilAsiya Javayant NEW
Leja Z GarufiSpainStephen Shaw PROPOSAL
Nicolas Y SchemmerBrazilElwin Sharvill NEW
Morrow R OstroskyRussiaAsiya Javayant NEW
Julie J DarakjyJapanIoni Bowcher NEW
Ricardo V GillianSpainXuxue Feng QUALIFIED
Maria O GlickSpainAmy Elsner NEGOTIATION
Sinclair D TollnerBrazilAnna Fali RENEWAL
Wickens S DoeRussiaIvan Magalhaes RENEWAL
Ivar D DarakjyArgentinaIvan Magalhaes NEGOTIATION
Antonio H CampainRussiaAnna Fali 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>