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
Munro M GauchoGermanyAmy Elsner UNQUALIFIED
Jeanfrancois X BologniaJapanIvan Magalhaes PROPOSAL
Misaki S BologniaJapanAmy Elsner NEGOTIATION
Stacey I OstroskyRussiaIoni Bowcher QUALIFIED
James X IturbideGermanyElwin Sharvill RENEWAL
Silvio P TollnerRussiaAnna Fali QUALIFIED
Morrow V VenereJapanIoni Bowcher RENEWAL
Deepesh C WhobreyIndiaAnna Fali RENEWAL
Aika Q VenereSpainAnna Fali PROPOSAL
Isabel M BowleyArgentinaAnna Fali PROPOSAL
Clifford R MarrierGermanyAsiya Javayant PROPOSAL
Greenwood K CampainIndiaIvan Magalhaes NEW
Aruna U DilliardBrazilIoni Bowcher RENEWAL
Clifford J GlickCanadaIoni Bowcher RENEWAL
Darci U MaletGermanyStephen Shaw NEGOTIATION
Jones D CampainRussiaAsiya Javayant QUALIFIED
Octavia X InouyeJapanIvan Magalhaes QUALIFIED
Leon B IturbideIndiaAnna Fali NEGOTIATION
Octavia R BowleyUnited KingdomAnna Fali UNQUALIFIED
Aika D AlbaresJapanAmy Elsner QUALIFIED
Kaitlin F PerinBrazilAmy Elsner NEW
Isabel D DarakjyGermanyXuxue Feng UNQUALIFIED
Leja P MaletAustraliaBernardo Dominic PROPOSAL
Izzy Q MaletAustraliaIoni Bowcher QUALIFIED
Wickens N BriddickRussiaStephen Shaw RENEWAL
Johnson A RoysterSpainIvan Magalhaes PROPOSAL
Claire G WaycottAustraliaAnna Fali NEW
Alejandro U AlbaresIndiaXuxue Feng NEGOTIATION
Antonio X RutaIndiaXuxue Feng PROPOSAL
Morrow Q CaudyBrazilAnna Fali UNQUALIFIED
Jones S WieserIndiaElwin Sharvill NEW
Francesco F TollnerJapanOnyama Limba NEW
Arvin T GillianBrazilAmy Elsner PROPOSAL
Stacey J StockhamItalyStephen Shaw UNQUALIFIED
Aika A FerenczRussiaXuxue Feng NEW
Munro Y GarufiJapanAnna Fali NEW
Isabel W NestleGermanyXuxue Feng UNQUALIFIED
Arvin S DoeCanadaOnyama Limba UNQUALIFIED
Aditya Q StockhamRussiaOnyama Limba NEW
Mujtaba E FlosiSpainElwin Sharvill PROPOSAL
Wickens B BologniaJapanStephen Shaw NEW
Mayumi L SaylorsBrazilOnyama Limba PROPOSAL
James H CaudyGermanyAnna Fali RENEWAL
Aruna C WhobreyAustraliaIoni Bowcher NEGOTIATION
Maria N FerenczItalyBernardo Dominic RENEWAL
Jeanfrancois X PaprockiUnited KingdomOnyama Limba RENEWAL
Aditya H ButtJapanElwin Sharvill RENEWAL
Deepesh M PerinArgentinaElwin Sharvill NEGOTIATION
Ashley J CampainCanadaAnna Fali PROPOSAL
David I MorascaIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones C WaycottSpainAnna Fali NEGOTIATION
Costa A FigeroaRussiaAsiya Javayant PROPOSAL
Jefferson L MorascaBrazilAsiya Javayant QUALIFIED
Nicolas V FollerBrazilIvan Magalhaes NEW
Julie S FlosiGermanyXuxue Feng PROPOSAL
Deepesh K KolmetzItalyAnna Fali PROPOSAL
Cody A SlusarskiFranceStephen Shaw PROPOSAL
Darci J FerenczRussiaXuxue Feng PROPOSAL
Smith G BriddickFranceXuxue Feng UNQUALIFIED
Aika E WaycottIndiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan H CaudyRussia2026-08-02Rangoni Of Florence UNQUALIFIED28Elwin Sharvill
1001Leja M FigeroaBrazil2026-08-13Feltz Printing Service QUALIFIED68Elwin Sharvill
1002Tony R RulapaughGermany2026-07-31Dorl, James J Esq NEGOTIATION72Bernardo Dominic
1003Rodrigues O RoysterArgentina2026-08-14Chemel, James L Cpa NEGOTIATION53Xuxue Feng
1004Silvio V CaudySpain2026-07-25Chemel, James L Cpa NEGOTIATION0Ivan Magalhaes
1005Faith B CaldareraArgentina2026-08-15Printing Dimensions NEGOTIATION89Amy Elsner
1006Octavia M RoysterAustralia2026-08-03Morlong Associates PROPOSAL33Bernardo Dominic
1007Adams X BowleyCanada2026-08-19Buckley Miller Wright NEW3Ivan Magalhaes
1008Alejandro D OstroskyArgentina2026-08-05Dorl, James J Esq QUALIFIED88Ivan Magalhaes
1009Octavia H OldroydIndia2026-07-30Chanay, Jeffrey A Esq QUALIFIED44Asiya Javayant
1010Mujtaba T AlbaresCanada2026-08-07Rangoni Of Florence QUALIFIED73Amy Elsner
1011Salvatore Q CampainRussia2026-08-03Chanay, Jeffrey A Esq PROPOSAL53Ivan Magalhaes
1012Wickens W PerinSpain2026-08-08Feiner Bros PROPOSAL58Anna Fali
1013Francesco P NickaArgentina2026-08-18Rangoni Of Florence RENEWAL39Asiya Javayant
1014Mayumi Q CaudyArgentina2026-08-02Benton, John B Jr RENEWAL93Onyama Limba
1015Juan J MaletJapan2026-08-17Chapman, Ross E Esq NEW84Ivan Magalhaes
1016James Q CaldareraGermany2026-08-06Printing Dimensions QUALIFIED37Xuxue Feng
1017Rodrigues V FollerCanada2026-07-26Rousseaux, Michael Esq UNQUALIFIED43Elwin Sharvill
1018Juan W WhobreyIndia2026-08-21Buckley Miller Wright UNQUALIFIED21Ioni Bowcher
1019Rodrigues H KolmetzItaly2026-08-12Commercial Press RENEWAL35Bernardo Dominic
1020Arvin C CampainJapan2026-08-10Chanay, Jeffrey A Esq QUALIFIED36Asiya Javayant
1021Salvatore K SlusarskiItaly2026-07-30Chapman, Ross E Esq NEGOTIATION9Onyama Limba
1022Darci Q MarrierIndia2026-08-07Rangoni Of Florence UNQUALIFIED27Ivan Magalhaes
1023Costa W BowleySpain2026-08-14Benton, John B Jr RENEWAL87Onyama Limba
1024Clifford I RoysterRussia2026-08-22Feltz Printing Service PROPOSAL87Anna Fali
1025Mujtaba U ButtBrazil2026-08-20King, Christopher A Esq PROPOSAL9Anna Fali
1026Kadeem Q WieserGermany2026-08-09King, Christopher A Esq RENEWAL59Ioni Bowcher
1027Chavez I BologniaBrazil2026-08-21Buckley Miller Wright RENEWAL75Anna Fali
1028Faith X MaletAustralia2026-08-08King, Christopher A Esq NEGOTIATION1Onyama Limba
1029Nicolas W CaudyItaly2026-07-31Dorl, James J Esq NEW24Ivan Magalhaes
1030Wickens T NickaJapan2026-08-16Rousseaux, Michael Esq NEW56Onyama Limba
1031Cody G WhobreyUnited Kingdom2026-08-12Rousseaux, Michael Esq PROPOSAL58Anna Fali
1032Murillo P MacleadBrazil2026-08-09Chanay, Jeffrey A Esq NEGOTIATION96Elwin Sharvill
1033Maisha X PoquetteUnited Kingdom2026-08-11Buckley Miller Wright NEW48Ioni Bowcher
1034Cody H VenereCanada2026-08-21Benton, John B Jr QUALIFIED74Amy Elsner
1035Isabel U MacleadAustralia2026-08-10Rousseaux, Michael Esq RENEWAL52Amy Elsner
1036Sinclair W OldroydRussia2026-07-27Morlong Associates QUALIFIED57Ivan Magalhaes
1037Juan B PoquetteAustralia2026-08-17Buckley Miller Wright NEW43Elwin Sharvill
1038Emily K IturbideArgentina2026-08-03Commercial Press NEGOTIATION9Elwin Sharvill
1039Maisha Z CaudyAustralia2026-07-29Rousseaux, Michael Esq NEGOTIATION4Amy Elsner
1040Salvatore D GarufiAustralia2026-07-25Rousseaux, Michael Esq RENEWAL75Amy Elsner
1041Wickens L SergiArgentina2026-08-09Rangoni Of Florence NEGOTIATION93Amy Elsner
1042Maria R NestleFrance2026-08-12Dorl, James J Esq UNQUALIFIED74Ioni Bowcher
1043Aruna I DilliardArgentina2026-07-28Chanay, Jeffrey A Esq RENEWAL81Ioni Bowcher
1044David O DoeUnited Kingdom2026-08-08Buckley Miller Wright QUALIFIED73Amy Elsner
1045Jennifer I BowleyIndia2026-08-03Commercial Press RENEWAL39Amy Elsner
1046Jeanfrancois V GillianArgentina2026-08-14Chemel, James L Cpa QUALIFIED16Amy Elsner
1047Adams Z MaletJapan2026-08-16Feiner Bros RENEWAL28Anna Fali
1048Clifford V OstroskyArgentina2026-08-07King, Christopher A Esq RENEWAL1Bernardo Dominic
1049Mayumi B CaudyGermany2026-08-08Morlong Associates QUALIFIED57Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo P MarrierFranceOnyama Limba RENEWAL
Clifford Z WaycottAustraliaOnyama Limba RENEWAL
Darci B BologniaRussiaAnna Fali NEGOTIATION
Smith C NickaCanadaXuxue Feng QUALIFIED
Munro B WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Misaki M BowleyUnited KingdomElwin Sharvill RENEWAL
Francesco T DilliardUnited KingdomAnna Fali NEGOTIATION
Kaitlin A WaycottItalyOnyama Limba PROPOSAL
Nicolas C GlickSpainIvan Magalhaes QUALIFIED
Sinclair L OldroydJapanElwin Sharvill NEW
David M VocelkaFranceIoni Bowcher RENEWAL
Francesco W FigeroaAustraliaStephen Shaw NEW
Ricardo Q KolmetzCanadaStephen Shaw NEGOTIATION
Salvatore H ButtAustraliaIvan Magalhaes QUALIFIED
Misaki G GillianUnited KingdomAmy Elsner PROPOSAL
Jennifer F ShinkoJapanBernardo Dominic UNQUALIFIED
Izzy V FollerRussiaElwin Sharvill PROPOSAL
Ricardo J KuskoIndiaAnna Fali RENEWAL
Smith X VocelkaArgentinaXuxue Feng RENEWAL
Mayumi C StockhamSpainIvan Magalhaes UNQUALIFIED
Aruna Y SaylorsGermanyIvan Magalhaes UNQUALIFIED
Juan F NickaAustraliaAsiya Javayant QUALIFIED
Ricardo E MaletIndiaIvan Magalhaes NEGOTIATION
Ricardo J RulapaughRussiaBernardo Dominic NEW
Stacey S GillianRussiaAsiya Javayant QUALIFIED
Deepesh X VenereArgentinaBernardo Dominic QUALIFIED
Silvio F DilliardSpainIvan Magalhaes NEGOTIATION
Salvatore U AmigonSpainIoni Bowcher UNQUALIFIED
Chavez X RutaItalyOnyama Limba QUALIFIED
Smith S GillianUnited KingdomXuxue Feng QUALIFIED
Ivar H KuskoSpainAmy Elsner PROPOSAL
Octavia U RoysterUnited KingdomStephen Shaw UNQUALIFIED
Leja J FollerIndiaIoni Bowcher RENEWAL
Jeanfrancois B ChuiArgentinaElwin Sharvill QUALIFIED
Deepesh B VocelkaCanadaElwin Sharvill NEW
Juan A RutaArgentinaXuxue Feng NEW
James P PaprockiItalyIoni Bowcher QUALIFIED
Murillo Q ChuiRussiaElwin Sharvill RENEWAL
Darci J CaudyItalyElwin Sharvill NEW
Nicolas O ChuiIndiaBernardo Dominic RENEWAL
Johnson G DilliardSpainAsiya Javayant NEGOTIATION
Aruna B MaletFranceAnna Fali NEGOTIATION
Juan M GauchoIndiaAsiya Javayant NEGOTIATION
Jennifer C MarrierSpainAmy Elsner UNQUALIFIED
Deepesh R DilliardUnited KingdomBernardo Dominic NEGOTIATION
Isabel Q CaldareraArgentinaAnna Fali QUALIFIED
Julie F ButtSpainAmy Elsner QUALIFIED
Silvio D MarrierGermanyIvan Magalhaes NEGOTIATION
Chavez I KolmetzItalyStephen Shaw RENEWAL
Costa D SaylorsSpainAmy Elsner QUALIFIED
Frozen Columns
Name
Maisha X Rulapaugh
Isabel U Slusarski
Arvin K Ferencz
Ivar M Nicka
Munro Y Inouye
Alejandro Y Vocelka
Ivar F Oldroyd
Izzy D Nicka
Wickens P Perin
Costa H Marrier
Ricardo X Albares
Leja E Stockham
Octavia X Albares
Kaitlin H Gaucho
Mujtaba X Paprocki
Claire O Stockham
Emily M Whobrey
Cody Z Malet
Julie B Iturbide
Ivar B Doe
Adams F Nestle
Greenwood V Butt
Kaitlin D Sergi
Leon V Saylors
Emily D Bowley
Jennifer A Vocelka
Darci C Sergi
Tony V Albares
Ivar K Venere
Rodrigues F Butt
Stacey W Ruta
Tony S Sergi
Aruna N Whobrey
Deepesh S Kolmetz
Kaitlin S Campain
James Z Amigon
Stacey X Garufi
Juan U Nestle
Ashley B Dilliard
Clifford X Albares
Antonio O Caudy
Tony U Figeroa
Misaki R Paprocki
Darci H Nestle
Jones F Schemmer
Nicolas T Venere
Chavez Y Rim
Greenwood X Stockham
Leja Y Glick
Jeanfrancois F Stockham
IdCountryDate
1000Spain2026-08-22
1001Italy2026-08-19
1002Japan2026-08-11
1003United Kingdom2026-08-06
1004United Kingdom2026-08-22
1005Brazil2026-08-12
1006United Kingdom2026-08-02
1007Australia2026-08-14
1008Japan2026-07-29
1009France2026-07-27
1010Germany2026-08-22
1011Japan2026-08-06
1012Brazil2026-08-03
1013United Kingdom2026-08-21
1014India2026-08-13
1015Russia2026-07-30
1016Germany2026-08-07
1017Italy2026-08-03
1018France2026-08-05
1019Canada2026-08-12
1020Argentina2026-08-03
1021Australia2026-08-19
1022Argentina2026-08-03
1023Brazil2026-08-19
1024Germany2026-08-21
1025India2026-08-07
1026Russia2026-07-25
1027Argentina2026-07-31
1028France2026-08-18
1029France2026-08-18
1030France2026-08-14
1031India2026-08-08
1032Italy2026-08-19
1033Spain2026-08-02
1034Brazil2026-08-05
1035Argentina2026-08-22
1036United Kingdom2026-08-07
1037Russia2026-08-05
1038Canada2026-07-25
1039Argentina2026-08-13
1040Japan2026-08-23
1041Brazil2026-08-17
1042United Kingdom2026-08-12
1043Brazil2026-08-22
1044Australia2026-08-12
1045Canada2026-07-25
1046Italy2026-08-18
1047Brazil2026-07-27
1048United Kingdom2026-08-01
1049Russia2026-08-07

On-Demand Data

NameIdCountryDate
Nicolas B Rim1000Canada2026-08-08
Octavia K Briddick1001Italy2026-08-04
Mayumi E Amigon1002France2026-08-02
Smith W Caudy1003Italy2026-08-17
Maria V Gillian1004Germany2026-08-15
Cody E Dilliard1005Italy2026-08-21
Cody S Caudy1006Australia2026-08-19
Isabel G Iturbide1007India2026-08-09
Julie X Slusarski1008India2026-08-05
Izzy T Malet1009Brazil2026-07-29
Misaki D Rim1010Japan2026-08-06
Jennifer I Kolmetz1011Spain2026-07-25
Greenwood G Kusko1012Japan2026-07-31
Wickens C Ferencz1013United Kingdom2026-08-21
Munro A Rim1014India2026-08-14
Stacey H Oldroyd1015Russia2026-08-13
Jones V Saylors1016France2026-08-08
Maria K Ruta1017Australia2026-07-25
Izzy N Glick1018United Kingdom2026-08-13
Rodrigues Q Venere1019Spain2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon M StockhamRussiaAnna Fali QUALIFIED
Maisha Q GarufiCanadaIvan Magalhaes QUALIFIED
Aditya Y CaldareraSpainIvan Magalhaes PROPOSAL
Wickens J RulapaughIndiaIoni Bowcher PROPOSAL
Emily Z BowleyJapanAnna Fali UNQUALIFIED
Claire I ChuiRussiaBernardo Dominic PROPOSAL
Jefferson D KuskoItalyAmy Elsner QUALIFIED
Claire I RutaRussiaIoni Bowcher RENEWAL
Costa A InouyeFranceXuxue Feng QUALIFIED
Tony Y InouyeIndiaIoni Bowcher NEGOTIATION
Jeanfrancois D RutaIndiaElwin Sharvill NEW
Misaki Y CaudyGermanyStephen Shaw PROPOSAL
Ricardo N KolmetzBrazilOnyama Limba UNQUALIFIED
Morrow V CampainJapanIoni Bowcher RENEWAL
David P MaletSpainAmy Elsner NEW
Tony Y FerenczFranceElwin Sharvill NEW
Leon C KolmetzCanadaAmy Elsner PROPOSAL
Jefferson T FlosiCanadaStephen Shaw UNQUALIFIED
Jefferson J TollnerItalyIoni Bowcher NEW
Greenwood S FigeroaAustraliaAsiya Javayant RENEWAL
Leja L BologniaGermanyXuxue Feng NEW
Morrow T CampainSpainIoni Bowcher NEW
James A StockhamFranceXuxue Feng UNQUALIFIED
Maria W FollerArgentinaAmy Elsner UNQUALIFIED
Morrow X SchemmerAustraliaElwin Sharvill UNQUALIFIED
Francesco C PaprockiAustraliaBernardo Dominic NEW
Alejandro F IturbideRussiaStephen Shaw NEW
James C DoeCanadaAmy Elsner NEW
Izzy E WieserFranceAmy Elsner PROPOSAL
David T WieserCanadaAnna Fali NEW
Johnson V RutaJapanBernardo Dominic UNQUALIFIED
Wickens K GillianUnited KingdomAmy Elsner NEGOTIATION
Salvatore U AmigonJapanAnna Fali RENEWAL
Ricardo B DoeItalyStephen Shaw QUALIFIED
Francesco T RulapaughFranceElwin Sharvill RENEWAL
Jefferson Q BowleyBrazilAnna Fali UNQUALIFIED
Cody W WieserAustraliaAsiya Javayant UNQUALIFIED
Stacey S RutaCanadaElwin Sharvill UNQUALIFIED
Munro E MacleadAustraliaIoni Bowcher RENEWAL
Arvin N RimCanadaAmy Elsner 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>