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
Chavez S WhobreyRussiaOnyama Limba NEW
Mayumi H AlbaresGermanyAsiya Javayant NEGOTIATION
Kaitlin G BriddickAustraliaIoni Bowcher UNQUALIFIED
Costa R WaycottJapanAsiya Javayant NEW
Ricardo P PoquetteCanadaAsiya Javayant QUALIFIED
Greenwood A SchemmerCanadaAnna Fali NEGOTIATION
Smith M DarakjyArgentinaAnna Fali RENEWAL
Mujtaba E RimBrazilAsiya Javayant PROPOSAL
Kadeem F AmigonSpainOnyama Limba UNQUALIFIED
Ashley B StensethIndiaElwin Sharvill NEGOTIATION
Antonio O FlosiCanadaAmy Elsner QUALIFIED
Ashley X GillianArgentinaIoni Bowcher NEGOTIATION
Rodrigues Z BologniaGermanyXuxue Feng PROPOSAL
Murillo J RimAustraliaAnna Fali UNQUALIFIED
Juan P FollerArgentinaAmy Elsner NEGOTIATION
Costa S WhobreyIndiaXuxue Feng NEGOTIATION
Kadeem J MorascaArgentinaAnna Fali NEW
Maria D WaycottGermanyOnyama Limba QUALIFIED
Smith C GlickUnited KingdomBernardo Dominic QUALIFIED
Leja Z FerenczFranceAmy Elsner UNQUALIFIED
Ashley R KuskoBrazilIvan Magalhaes NEGOTIATION
Ashley J FollerRussiaAnna Fali NEGOTIATION
Juan O MorascaIndiaXuxue Feng NEGOTIATION
Ivar A FlosiFranceOnyama Limba QUALIFIED
Leon M RoysterGermanyAmy Elsner NEGOTIATION
Maria C AmigonAustraliaXuxue Feng QUALIFIED
Julie F DarakjyItalyBernardo Dominic QUALIFIED
Aruna D GlickFranceAnna Fali NEW
Jennifer A RoysterUnited KingdomElwin Sharvill QUALIFIED
Emily A FerenczCanadaBernardo Dominic NEGOTIATION
Antonio B GarufiArgentinaXuxue Feng NEW
Smith Q OstroskyCanadaIvan Magalhaes RENEWAL
Costa S BriddickFranceAsiya Javayant NEW
Aditya Q CampainCanadaBernardo Dominic PROPOSAL
David V MarrierFranceAmy Elsner PROPOSAL
Ashley G GauchoSpainIoni Bowcher QUALIFIED
Julie P WhobreyUnited KingdomElwin Sharvill PROPOSAL
Arvin O SchemmerItalyAsiya Javayant RENEWAL
Julie Z MaletBrazilStephen Shaw RENEWAL
Antonio V KolmetzCanadaIoni Bowcher UNQUALIFIED
Wickens O FigeroaSpainBernardo Dominic RENEWAL
Arvin B SchemmerRussiaAmy Elsner PROPOSAL
Arvin Q RoysterRussiaAsiya Javayant UNQUALIFIED
Leja C VenereBrazilXuxue Feng NEW
Aruna R AlbaresIndiaBernardo Dominic NEGOTIATION
Munro P BriddickIndiaIvan Magalhaes RENEWAL
Murillo U StockhamBrazilAnna Fali UNQUALIFIED
Kadeem Y SchemmerSpainBernardo Dominic UNQUALIFIED
Salvatore A RulapaughIndiaIvan Magalhaes RENEWAL
Aika Y AlbaresIndiaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya L IturbideSpainXuxue Feng QUALIFIED
Jones N WaycottJapanBernardo Dominic QUALIFIED
Rodrigues G InouyeFranceIvan Magalhaes UNQUALIFIED
Nicolas M RulapaughJapanIoni Bowcher RENEWAL
Aruna Q GillianRussiaAnna Fali PROPOSAL
Tony P GillianFranceAmy Elsner RENEWAL
Izzy G MarrierGermanyElwin Sharvill UNQUALIFIED
Julie V GarufiSpainStephen Shaw PROPOSAL
Ashley V SaylorsJapanAnna Fali PROPOSAL
Mayumi S StockhamRussiaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria T DilliardCanada2026-08-27Rousseaux, Michael Esq NEGOTIATION25Ivan Magalhaes
1001Antonio I BowleyGermany2026-08-20King, Christopher A Esq NEW51Ioni Bowcher
1002Munro N MacleadBrazil2026-08-19Rangoni Of Florence QUALIFIED12Ioni Bowcher
1003Costa Y NestleRussia2026-08-25Feiner Bros QUALIFIED78Asiya Javayant
1004Claire S NickaFrance2026-08-19Commercial Press NEW21Xuxue Feng
1005Kadeem W WaycottCanada2026-08-12Morlong Associates PROPOSAL26Anna Fali
1006Mujtaba T NickaSpain2026-08-29Chanay, Jeffrey A Esq UNQUALIFIED78Xuxue Feng
1007Isabel K RoysterJapan2026-08-24Feltz Printing Service PROPOSAL64Onyama Limba
1008Ricardo G FerenczItaly2026-08-02Dorl, James J Esq RENEWAL96Anna Fali
1009Wickens Q BologniaUnited Kingdom2026-08-20Chemel, James L Cpa RENEWAL75Stephen Shaw
1010Mayumi E PerinFrance2026-08-15Commercial Press NEW27Bernardo Dominic
1011Adams X WaycottGermany2026-08-19Commercial Press QUALIFIED33Ioni Bowcher
1012David A BowleyIndia2026-08-25Truhlar And Truhlar Attys RENEWAL13Xuxue Feng
1013Leon Y CaldareraAustralia2026-08-01Commercial Press NEW13Ioni Bowcher
1014Murillo X FerenczUnited Kingdom2026-07-31King, Christopher A Esq RENEWAL7Amy Elsner
1015Aika Q BowleyItaly2026-08-05Buckley Miller Wright UNQUALIFIED29Onyama Limba
1016Murillo I CampainAustralia2026-08-06Rangoni Of Florence UNQUALIFIED2Ioni Bowcher
1017Misaki D OldroydCanada2026-08-26Rousseaux, Michael Esq NEGOTIATION48Xuxue Feng
1018Jeanfrancois G VocelkaUnited Kingdom2026-08-24Chanay, Jeffrey A Esq UNQUALIFIED23Asiya Javayant
1019Aruna E ChuiJapan2026-08-09Rangoni Of Florence NEW15Onyama Limba
1020Johnson P FerenczAustralia2026-08-29Truhlar And Truhlar Attys NEW89Asiya Javayant
1021Darci U FlosiCanada2026-08-26Feiner Bros RENEWAL71Stephen Shaw
1022Costa W BologniaIndia2026-08-12Feltz Printing Service PROPOSAL45Xuxue Feng
1023Deepesh U CaldareraSpain2026-08-26Chapman, Ross E Esq PROPOSAL22Bernardo Dominic
1024Chavez K BologniaUnited Kingdom2026-08-10Rangoni Of Florence QUALIFIED39Onyama Limba
1025Aditya F WaycottArgentina2026-08-16Chapman, Ross E Esq RENEWAL97Xuxue Feng
1026Smith J SlusarskiArgentina2026-08-15Dorl, James J Esq RENEWAL60Ioni Bowcher
1027Jennifer H InouyeUnited Kingdom2026-08-24Truhlar And Truhlar Attys RENEWAL8Onyama Limba
1028Cody G PaprockiRussia2026-07-31Truhlar And Truhlar Attys RENEWAL28Ivan Magalhaes
1029Rodrigues B GillianBrazil2026-08-25Chemel, James L Cpa RENEWAL46Bernardo Dominic
1030Juan Y ButtFrance2026-08-16Printing Dimensions RENEWAL81Ivan Magalhaes
1031Morrow T TollnerJapan2026-08-10Commercial Press NEGOTIATION21Ivan Magalhaes
1032Deepesh Y PerinUnited Kingdom2026-08-21Chapman, Ross E Esq NEW86Bernardo Dominic
1033Faith T FlosiUnited Kingdom2026-08-26Rangoni Of Florence PROPOSAL11Asiya Javayant
1034Jefferson U DarakjyGermany2026-08-21Rousseaux, Michael Esq QUALIFIED61Ivan Magalhaes
1035Jennifer I KuskoAustralia2026-08-18Benton, John B Jr RENEWAL28Anna Fali
1036Clifford C MaletSpain2026-08-20Truhlar And Truhlar Attys UNQUALIFIED90Bernardo Dominic
1037Jones F ButtBrazil2026-08-09King, Christopher A Esq QUALIFIED28Ioni Bowcher
1038Sinclair H PerinFrance2026-08-15Chapman, Ross E Esq UNQUALIFIED68Onyama Limba
1039Darci H SchemmerArgentina2026-08-18Feiner Bros NEW64Asiya Javayant
1040Leja W BowleyBrazil2026-08-26Rousseaux, Michael Esq RENEWAL45Ioni Bowcher
1041Sinclair J MacleadJapan2026-08-11Morlong Associates RENEWAL64Stephen Shaw
1042Ricardo C DarakjyUnited Kingdom2026-08-20Commercial Press RENEWAL67Ivan Magalhaes
1043Greenwood U CaldareraSpain2026-08-04Dorl, James J Esq NEGOTIATION33Ivan Magalhaes
1044Jefferson O RutaJapan2026-08-06Rangoni Of Florence UNQUALIFIED14Anna Fali
1045Nicolas R ButtIndia2026-08-23Benton, John B Jr QUALIFIED3Xuxue Feng
1046Isabel B IturbideItaly2026-08-06Feltz Printing Service UNQUALIFIED70Amy Elsner
1047Stacey H SergiBrazil2026-08-24Chanay, Jeffrey A Esq UNQUALIFIED5Anna Fali
1048Isabel T MaletJapan2026-08-08Feiner Bros QUALIFIED30Amy Elsner
1049Cody V MorascaRussia2026-08-23Printing Dimensions UNQUALIFIED47Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aika O VenereAustraliaAnna Fali RENEWAL
Alejandro O KuskoSpainBernardo Dominic RENEWAL
Jennifer R SaylorsBrazilElwin Sharvill NEGOTIATION
Aruna H KolmetzBrazilBernardo Dominic NEGOTIATION
Silvio X ShinkoJapanOnyama Limba PROPOSAL
Mayumi Q CaldareraCanadaAsiya Javayant NEGOTIATION
James S MorascaRussiaXuxue Feng NEW
Leon R MaletIndiaAnna Fali UNQUALIFIED
Kaitlin X IturbideCanadaElwin Sharvill QUALIFIED
Cody L BriddickBrazilIoni Bowcher RENEWAL
Misaki P DoeSpainXuxue Feng QUALIFIED
Wickens V KuskoAustraliaIoni Bowcher UNQUALIFIED
Morrow T OldroydRussiaIvan Magalhaes NEW
Jeanfrancois P StockhamBrazilElwin Sharvill NEW
Alejandro M SergiRussiaAnna Fali NEW
Antonio M GlickUnited KingdomAnna Fali NEW
Ricardo F CampainBrazilXuxue Feng PROPOSAL
Cody W SaylorsGermanyIoni Bowcher QUALIFIED
Nicolas F KolmetzGermanyIvan Magalhaes QUALIFIED
Claire S WaycottIndiaXuxue Feng QUALIFIED
Jefferson R ShinkoArgentinaStephen Shaw NEW
Kaitlin E RulapaughFranceOnyama Limba RENEWAL
Aditya E MaletJapanElwin Sharvill NEGOTIATION
Murillo D DarakjyAustraliaIoni Bowcher QUALIFIED
Smith A GlickRussiaOnyama Limba NEW
Wickens D ButtGermanyAmy Elsner PROPOSAL
Cody N ShinkoAustraliaAmy Elsner QUALIFIED
Ivar G GauchoArgentinaBernardo Dominic QUALIFIED
Claire Y MarrierRussiaBernardo Dominic NEGOTIATION
Adams C SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Chavez T SchemmerUnited KingdomAmy Elsner NEW
Kaitlin M MaletRussiaBernardo Dominic UNQUALIFIED
Emily X BowleyBrazilAmy Elsner UNQUALIFIED
Faith Q ShinkoItalyXuxue Feng NEW
Juan L NickaUnited KingdomOnyama Limba UNQUALIFIED
Faith X BologniaFranceXuxue Feng QUALIFIED
Cody P StensethJapanStephen Shaw UNQUALIFIED
Aruna S MarrierGermanyAsiya Javayant NEW
Jones U GlickJapanElwin Sharvill NEW
Sinclair T KolmetzGermanyXuxue Feng RENEWAL
Antonio K DilliardIndiaIvan Magalhaes NEGOTIATION
Adams W RulapaughRussiaXuxue Feng NEW
Maria F FerenczJapanIoni Bowcher NEGOTIATION
Faith T ChuiIndiaBernardo Dominic NEGOTIATION
Jones E PaprockiCanadaBernardo Dominic PROPOSAL
Kadeem Z ChuiSpainAsiya Javayant QUALIFIED
Silvio I SlusarskiRussiaAsiya Javayant QUALIFIED
Kadeem M BriddickFranceAmy Elsner NEGOTIATION
Julie U SaylorsFranceIoni Bowcher RENEWAL
Leon I FerenczCanadaAmy Elsner PROPOSAL
Frozen Columns
Name
Costa R Saylors
Wickens W Vocelka
Deepesh N Slusarski
David U Marrier
Maisha Z Schemmer
Faith O Vocelka
Francesco J Morasca
Antonio L Schemmer
Isabel P Gillian
Silvio I Caudy
Clifford T Amigon
Ivar N Doe
Jones X Gillian
Aditya D Amigon
Ivar S Bowley
Wickens E Kusko
Nicolas V Maclead
Mujtaba X Royster
Nicolas U Ruta
Ricardo R Butt
Aika P Shinko
Alejandro M Campain
Alejandro O Figeroa
Leja J Campain
Arvin R Glick
Chavez A Doe
Clifford P Bowley
Octavia Z Darakjy
Claire V Darakjy
Jefferson X Kolmetz
Mayumi I Waycott
Maisha Y Malet
Leon Y Ferencz
Tony F Saylors
Claire C Kusko
Aditya J Rulapaugh
Aruna U Gaucho
David Y Oldroyd
Chavez C Venere
Sinclair O Venere
Darci G Inouye
Adams P Ferencz
Wickens M Kolmetz
Tony F Gillian
Misaki B Malet
Jennifer H Malet
James L Stenseth
Kadeem K Gaucho
Francesco D Kusko
Claire P Bowley
IdCountryDate
1000Russia2026-08-27
1001Japan2026-08-20
1002Germany2026-08-15
1003Canada2026-08-25
1004Australia2026-08-13
1005Brazil2026-08-21
1006Russia2026-08-03
1007Brazil2026-08-07
1008Canada2026-08-15
1009Brazil2026-08-27
1010Germany2026-08-17
1011Russia2026-08-15
1012Brazil2026-08-10
1013Japan2026-08-19
1014India2026-08-05
1015Argentina2026-08-04
1016Argentina2026-08-05
1017Canada2026-08-28
1018Germany2026-08-10
1019Italy2026-08-29
1020Argentina2026-08-16
1021Argentina2026-08-28
1022Brazil2026-08-02
1023Germany2026-08-14
1024Russia2026-08-13
1025Australia2026-08-07
1026Germany2026-08-14
1027Brazil2026-08-13
1028Japan2026-08-03
1029Japan2026-08-05
1030India2026-08-21
1031Germany2026-08-03
1032United Kingdom2026-08-12
1033Japan2026-08-05
1034Australia2026-07-31
1035United Kingdom2026-08-25
1036Brazil2026-08-03
1037Brazil2026-08-28
1038Japan2026-08-04
1039Spain2026-08-13
1040Italy2026-08-09
1041France2026-07-31
1042United Kingdom2026-08-27
1043Spain2026-08-21
1044Spain2026-08-13
1045Italy2026-08-29
1046Brazil2026-08-05
1047Argentina2026-08-20
1048Australia2026-08-02
1049Spain2026-08-16

On-Demand Data

NameIdCountryDate
Jeanfrancois A Nicka1000Argentina2026-08-17
Silvio A Ferencz1001United Kingdom2026-08-13
Smith J Morasca1002Japan2026-08-28
Sinclair S Perin1003France2026-07-31
Kadeem K Stenseth1004Japan2026-08-17
Juan L Gaucho1005Brazil2026-08-25
Murillo B Ferencz1006Australia2026-08-02
Ivar G Stockham1007Germany2026-08-21
Leon H Inouye1008Argentina2026-08-19
Morrow N Malet1009Spain2026-08-07
Jennifer L Rulapaugh1010Argentina2026-08-27
Juan I Bolognia1011Australia2026-08-02
Faith J Nicka1012Italy2026-08-01
Morrow V Ostrosky1013Argentina2026-08-21
Morrow L Perin1014France2026-08-27
Sinclair Q Albares1015Russia2026-08-12
Greenwood K Slusarski1016United Kingdom2026-08-11
Ricardo I Whobrey1017Italy2026-08-12
Wickens K Foller1018Italy2026-08-14
Izzy O Amigon1019Canada2026-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair O PoquetteCanadaOnyama Limba RENEWAL
Juan N NestleJapanBernardo Dominic NEGOTIATION
David Q StensethAustraliaIoni Bowcher NEGOTIATION
Emily H MaletFranceBernardo Dominic NEGOTIATION
David T FigeroaIndiaOnyama Limba PROPOSAL
Adams O GauchoIndiaAnna Fali QUALIFIED
Jones V PaprockiAustraliaElwin Sharvill QUALIFIED
Aika T ChuiAustraliaOnyama Limba NEW
Greenwood P NickaCanadaXuxue Feng UNQUALIFIED
Emily B DoeFranceIvan Magalhaes RENEWAL
Silvio Y SergiIndiaIvan Magalhaes QUALIFIED
Aika Z SlusarskiAustraliaBernardo Dominic NEW
Rodrigues X DilliardUnited KingdomStephen Shaw RENEWAL
Costa Y GarufiAustraliaBernardo Dominic UNQUALIFIED
Deepesh Y CampainRussiaBernardo Dominic UNQUALIFIED
Jennifer V StensethArgentinaBernardo Dominic PROPOSAL
Ricardo Q VenereJapanStephen Shaw RENEWAL
Morrow E MaletRussiaIvan Magalhaes NEGOTIATION
Octavia O CaldareraRussiaAnna Fali NEW
Darci O AlbaresBrazilAmy Elsner UNQUALIFIED
Darci E MacleadUnited KingdomOnyama Limba PROPOSAL
Juan A DilliardItalyIvan Magalhaes NEW
Maisha T MorascaIndiaIvan Magalhaes RENEWAL
Isabel T RulapaughAustraliaIoni Bowcher QUALIFIED
Julie Z PoquetteBrazilOnyama Limba UNQUALIFIED
Julie X WaycottArgentinaIvan Magalhaes QUALIFIED
Mujtaba Q PaprockiCanadaStephen Shaw UNQUALIFIED
Cody A GarufiBrazilAsiya Javayant NEW
Jeanfrancois F OstroskyFranceAmy Elsner RENEWAL
Greenwood I MaletAustraliaXuxue Feng UNQUALIFIED
Ivar P RoysterItalyAnna Fali QUALIFIED
Maria D BowleyFranceOnyama Limba UNQUALIFIED
Leon H BowleyIndiaAsiya Javayant PROPOSAL
Sinclair O BowleyArgentinaStephen Shaw PROPOSAL
Emily Q KolmetzCanadaStephen Shaw PROPOSAL
Adams V CaudyFranceIvan Magalhaes UNQUALIFIED
Cody X GauchoGermanyAnna Fali NEGOTIATION
Johnson Y WaycottJapanAnna Fali RENEWAL
Costa U BriddickSpainAsiya Javayant UNQUALIFIED
Deepesh A FlosiSpainXuxue Feng UNQUALIFIED

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