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
Leon B DilliardAustraliaAsiya Javayant RENEWAL
Kadeem G NickaItalyXuxue Feng NEW
Clifford N VenereArgentinaAnna Fali UNQUALIFIED
Murillo T AlbaresItalyAmy Elsner QUALIFIED
Stacey L PerinCanadaAmy Elsner RENEWAL
Ashley A CampainAustraliaStephen Shaw NEW
Leon D PerinGermanyAmy Elsner NEGOTIATION
Maisha U GarufiUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois D GlickAustraliaStephen Shaw NEW
Alejandro V PerinBrazilOnyama Limba PROPOSAL
Izzy B MaletBrazilIvan Magalhaes NEGOTIATION
Stacey E GlickUnited KingdomAmy Elsner QUALIFIED
Maria Q DoeIndiaAnna Fali QUALIFIED
Wickens P WhobreyArgentinaBernardo Dominic NEW
Misaki I VocelkaRussiaOnyama Limba QUALIFIED
Juan A KolmetzFranceOnyama Limba QUALIFIED
Rodrigues M FerenczAustraliaIvan Magalhaes PROPOSAL
Chavez R NickaAustraliaAmy Elsner PROPOSAL
Alejandro K GillianArgentinaAsiya Javayant QUALIFIED
Antonio S NestleFranceIoni Bowcher UNQUALIFIED
Clifford I VocelkaUnited KingdomBernardo Dominic RENEWAL
Clifford W RoysterItalyIoni Bowcher NEW
Juan X IturbideIndiaOnyama Limba NEW
Deepesh R IturbideSpainAsiya Javayant NEW
Smith T GlickJapanAmy Elsner PROPOSAL
Kadeem W VenereGermanyElwin Sharvill NEGOTIATION
Julie F ChuiBrazilBernardo Dominic PROPOSAL
Antonio P GauchoBrazilStephen Shaw NEW
Mayumi E FerenczGermanyIvan Magalhaes UNQUALIFIED
Stacey N RulapaughJapanAmy Elsner RENEWAL
Kaitlin Z BowleyUnited KingdomStephen Shaw UNQUALIFIED
Leon R FlosiAustraliaXuxue Feng PROPOSAL
Kadeem I RoysterItalyAsiya Javayant NEW
Emily A ShinkoGermanyAnna Fali NEW
Claire O SaylorsGermanyOnyama Limba NEGOTIATION
David B GillianArgentinaOnyama Limba QUALIFIED
Wickens D RimSpainIvan Magalhaes QUALIFIED
Alejandro O VocelkaJapanXuxue Feng UNQUALIFIED
Aditya X CaudyJapanIoni Bowcher QUALIFIED
Kaitlin T AlbaresArgentinaIoni Bowcher RENEWAL
Isabel M FlosiSpainBernardo Dominic QUALIFIED
Jones C VocelkaCanadaOnyama Limba NEGOTIATION
Ricardo B GarufiAustraliaOnyama Limba UNQUALIFIED
Aruna Y FollerRussiaIvan Magalhaes UNQUALIFIED
Murillo S GarufiGermanyElwin Sharvill NEGOTIATION
Deepesh Q VocelkaSpainAmy Elsner NEW
Jones R KuskoItalyAnna Fali RENEWAL
Nicolas C BowleySpainOnyama Limba UNQUALIFIED
Aika H MarrierAustraliaElwin Sharvill QUALIFIED
Francesco K SergiFranceIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith N RutaArgentinaOnyama Limba NEGOTIATION
Darci K PerinCanadaAsiya Javayant NEGOTIATION
Antonio S SlusarskiArgentinaOnyama Limba PROPOSAL
Francesco E StensethArgentinaOnyama Limba RENEWAL
Greenwood W KuskoArgentinaIoni Bowcher UNQUALIFIED
Murillo R MarrierArgentinaOnyama Limba NEGOTIATION
Costa U NickaJapanAnna Fali QUALIFIED
Isabel L WieserIndiaAsiya Javayant UNQUALIFIED
David H RimJapanIoni Bowcher NEW
Sinclair U WhobreyCanadaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams H StensethCanada2026-08-17Dorl, James J Esq UNQUALIFIED83Bernardo Dominic
1001Faith N ShinkoUnited Kingdom2026-08-03Commercial Press NEGOTIATION31Ioni Bowcher
1002Octavia Y MacleadBrazil2026-08-03Chanay, Jeffrey A Esq RENEWAL32Anna Fali
1003Octavia J FerenczRussia2026-07-26Feltz Printing Service NEGOTIATION71Stephen Shaw
1004Morrow R ChuiIndia2026-08-17Rangoni Of Florence NEW38Elwin Sharvill
1005Ricardo T MorascaGermany2026-07-27Feltz Printing Service UNQUALIFIED54Bernardo Dominic
1006Cody B MaletAustralia2026-08-03Feltz Printing Service NEGOTIATION58Ivan Magalhaes
1007Adams L WaycottIndia2026-08-03Commercial Press NEW14Xuxue Feng
1008Deepesh Z BriddickItaly2026-08-04Buckley Miller Wright PROPOSAL20Stephen Shaw
1009Kaitlin V FlosiItaly2026-07-26Commercial Press UNQUALIFIED82Onyama Limba
1010Kadeem W AmigonCanada2026-08-03Buckley Miller Wright UNQUALIFIED77Stephen Shaw
1011Cody O GlickRussia2026-08-10Dorl, James J Esq RENEWAL39Anna Fali
1012Mujtaba R MaletJapan2026-08-08Commercial Press PROPOSAL17Ioni Bowcher
1013Johnson G PoquetteJapan2026-08-05Commercial Press UNQUALIFIED12Bernardo Dominic
1014James A FerenczAustralia2026-08-01Truhlar And Truhlar Attys RENEWAL25Amy Elsner
1015Chavez Q GauchoFrance2026-07-28Feltz Printing Service NEGOTIATION31Xuxue Feng
1016Darci B OldroydJapan2026-07-30Chapman, Ross E Esq RENEWAL21Elwin Sharvill
1017Tony I RutaRussia2026-07-26Printing Dimensions PROPOSAL32Asiya Javayant
1018Ivar P PerinFrance2026-07-27Chapman, Ross E Esq NEGOTIATION98Elwin Sharvill
1019Mayumi I OldroydRussia2026-07-29Morlong Associates NEGOTIATION36Elwin Sharvill
1020Costa K ButtIndia2026-08-21Feiner Bros RENEWAL40Bernardo Dominic
1021Ricardo W RoysterAustralia2026-08-11Benton, John B Jr NEW35Onyama Limba
1022Aditya J DarakjySpain2026-07-28Chanay, Jeffrey A Esq QUALIFIED51Ivan Magalhaes
1023Jennifer Y GillianArgentina2026-07-30Rangoni Of Florence QUALIFIED44Bernardo Dominic
1024Julie H RimUnited Kingdom2026-08-01Chanay, Jeffrey A Esq NEW56Amy Elsner
1025Leon S SergiIndia2026-07-31Benton, John B Jr UNQUALIFIED46Amy Elsner
1026Kaitlin L GauchoGermany2026-08-19Truhlar And Truhlar Attys NEGOTIATION35Ioni Bowcher
1027Morrow E StensethCanada2026-08-22Benton, John B Jr UNQUALIFIED80Elwin Sharvill
1028Kaitlin H BowleyAustralia2026-08-06Commercial Press NEGOTIATION27Anna Fali
1029Cody M StockhamAustralia2026-07-27Feiner Bros RENEWAL70Anna Fali
1030Jennifer I WieserSpain2026-08-20King, Christopher A Esq NEW68Stephen Shaw
1031Antonio P MaletBrazil2026-07-28Rousseaux, Michael Esq NEW56Ioni Bowcher
1032James M RoysterFrance2026-07-28Rangoni Of Florence QUALIFIED38Xuxue Feng
1033Jennifer E ChuiUnited Kingdom2026-08-05Rousseaux, Michael Esq NEGOTIATION98Asiya Javayant
1034Juan M PerinGermany2026-08-13Printing Dimensions NEGOTIATION55Ivan Magalhaes
1035Alejandro U FerenczGermany2026-08-21Buckley Miller Wright RENEWAL72Amy Elsner
1036Aika W BologniaFrance2026-08-04Morlong Associates NEW21Anna Fali
1037Jones Q RulapaughBrazil2026-07-27Commercial Press NEGOTIATION16Asiya Javayant
1038Deepesh C PoquetteArgentina2026-07-28Chapman, Ross E Esq PROPOSAL96Xuxue Feng
1039Jeanfrancois C PoquetteRussia2026-08-13Truhlar And Truhlar Attys QUALIFIED85Bernardo Dominic
1040Leon T SergiRussia2026-08-12Rousseaux, Michael Esq PROPOSAL7Stephen Shaw
1041Ivar J PaprockiAustralia2026-08-09Commercial Press UNQUALIFIED44Stephen Shaw
1042Maria O BowleyAustralia2026-07-26Benton, John B Jr UNQUALIFIED89Anna Fali
1043Misaki H FollerSpain2026-07-31Feltz Printing Service UNQUALIFIED32Stephen Shaw
1044Juan D VenereGermany2026-08-23Chanay, Jeffrey A Esq UNQUALIFIED28Amy Elsner
1045Maisha U KuskoItaly2026-08-22Rangoni Of Florence NEW41Ioni Bowcher
1046Jones K StockhamIndia2026-08-02Benton, John B Jr NEGOTIATION59Onyama Limba
1047Arvin K WaycottSpain2026-08-04Chanay, Jeffrey A Esq RENEWAL13Stephen Shaw
1048Deepesh B MacleadItaly2026-08-11Dorl, James J Esq NEW79Onyama Limba
1049Claire B SergiArgentina2026-08-07Rousseaux, Michael Esq UNQUALIFIED37Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Emily E BriddickBrazilAnna Fali PROPOSAL
Isabel H ButtCanadaOnyama Limba RENEWAL
Mujtaba G OldroydRussiaAsiya Javayant RENEWAL
Ashley B ButtJapanAmy Elsner QUALIFIED
Jeanfrancois C NickaAustraliaOnyama Limba UNQUALIFIED
Julie N WhobreyAustraliaElwin Sharvill UNQUALIFIED
Rodrigues C StensethArgentinaIvan Magalhaes NEGOTIATION
Jones T CaudyFranceBernardo Dominic PROPOSAL
Emily P AlbaresCanadaAmy Elsner RENEWAL
Leon P OldroydFranceXuxue Feng RENEWAL
James J GauchoUnited KingdomAnna Fali NEW
Deepesh R AlbaresUnited KingdomIoni Bowcher NEW
Alejandro O BriddickSpainXuxue Feng UNQUALIFIED
Leon H BologniaIndiaOnyama Limba RENEWAL
Antonio Z RutaAustraliaXuxue Feng RENEWAL
Ricardo O WieserUnited KingdomBernardo Dominic UNQUALIFIED
Misaki T GillianCanadaAnna Fali UNQUALIFIED
Kadeem J BriddickArgentinaAmy Elsner NEW
Mayumi B AmigonRussiaStephen Shaw RENEWAL
Murillo R FollerArgentinaOnyama Limba NEGOTIATION
Emily L GillianFranceIvan Magalhaes UNQUALIFIED
Nicolas W FollerArgentinaBernardo Dominic NEW
Antonio N SlusarskiIndiaAsiya Javayant PROPOSAL
Clifford V WhobreyIndiaAmy Elsner NEGOTIATION
Deepesh F RulapaughSpainXuxue Feng PROPOSAL
Octavia E TollnerGermanyBernardo Dominic RENEWAL
Greenwood T PoquetteSpainAsiya Javayant NEW
Jones S InouyeAustraliaAsiya Javayant PROPOSAL
Maisha D AlbaresItalyAnna Fali RENEWAL
Kaitlin S GarufiIndiaXuxue Feng NEGOTIATION
Sinclair D ChuiAustraliaIoni Bowcher RENEWAL
Deepesh K MarrierJapanStephen Shaw NEW
Tony B DarakjyRussiaIoni Bowcher PROPOSAL
Cody N StockhamAustraliaElwin Sharvill RENEWAL
Claire T BowleyIndiaAsiya Javayant PROPOSAL
Cody H FlosiArgentinaElwin Sharvill PROPOSAL
Aruna C GarufiCanadaStephen Shaw PROPOSAL
Costa H CampainArgentinaElwin Sharvill RENEWAL
Stacey B RoysterCanadaStephen Shaw UNQUALIFIED
Juan R DoeSpainXuxue Feng PROPOSAL
Stacey D BowleyAustraliaIvan Magalhaes QUALIFIED
Wickens D SaylorsBrazilXuxue Feng NEW
Juan G RulapaughRussiaBernardo Dominic RENEWAL
Mayumi B TollnerUnited KingdomElwin Sharvill NEW
Clifford I CampainIndiaAnna Fali PROPOSAL
Claire U PaprockiIndiaOnyama Limba PROPOSAL
Ricardo A VenereGermanyIoni Bowcher RENEWAL
Jones H SergiSpainAmy Elsner UNQUALIFIED
Kaitlin E IturbideBrazilOnyama Limba RENEWAL
Mayumi P OldroydGermanyBernardo Dominic QUALIFIED
Frozen Columns
Name
Mayumi D Stenseth
Jeanfrancois F Paprocki
Silvio Z Kolmetz
Rodrigues S Bolognia
Antonio U Kusko
Ivar O Gillian
Cody P Amigon
Jones Z Ferencz
Greenwood L Schemmer
Aika S Glick
Francesco C Darakjy
Maisha I Royster
Cody U Ostrosky
Kaitlin Q Malet
Greenwood P Albares
Octavia U Malet
Kadeem S Malet
Rodrigues N Iturbide
Sinclair I Nicka
Ricardo W Marrier
Mayumi A Waycott
Aika A Saylors
Izzy C Slusarski
Ivar X Ruta
Deepesh I Ostrosky
Jones L Ostrosky
Salvatore O Saylors
James M Schemmer
Cody D Oldroyd
Julie V Perin
Aika H Bolognia
Kaitlin E Maclead
Antonio U Chui
Clifford M Garufi
Claire W Wieser
Izzy H Nestle
Kaitlin A Waycott
Chavez S Dilliard
Octavia W Butt
Johnson K Doe
Costa F Flosi
Clifford Y Nicka
Clifford T Doe
Salvatore N Marrier
Clifford F Stenseth
Izzy O Figeroa
Johnson R Ostrosky
Kadeem E Gillian
Chavez D Malet
David Q Bolognia
IdCountryDate
1000Australia2026-08-13
1001Russia2026-08-22
1002United Kingdom2026-08-09
1003Spain2026-08-15
1004Italy2026-08-01
1005Germany2026-07-25
1006Australia2026-08-14
1007Italy2026-08-13
1008Brazil2026-08-18
1009Germany2026-08-21
1010Argentina2026-07-30
1011Australia2026-08-18
1012France2026-07-29
1013Russia2026-08-12
1014Italy2026-08-10
1015United Kingdom2026-07-29
1016Spain2026-08-22
1017Russia2026-08-06
1018France2026-08-12
1019Canada2026-08-09
1020Russia2026-08-10
1021Germany2026-08-01
1022Brazil2026-08-02
1023United Kingdom2026-08-04
1024Brazil2026-08-22
1025India2026-08-22
1026Russia2026-08-20
1027Argentina2026-08-16
1028Russia2026-08-19
1029Argentina2026-08-21
1030Italy2026-08-09
1031France2026-08-23
1032Russia2026-08-20
1033India2026-08-15
1034India2026-08-11
1035France2026-08-16
1036United Kingdom2026-07-27
1037Brazil2026-07-27
1038Russia2026-07-30
1039Russia2026-07-30
1040Italy2026-08-20
1041Canada2026-08-06
1042Spain2026-08-06
1043Australia2026-08-01
1044Italy2026-07-25
1045Japan2026-08-14
1046Argentina2026-08-06
1047Spain2026-08-07
1048India2026-08-12
1049United Kingdom2026-08-07

On-Demand Data

NameIdCountryDate
Misaki B Vocelka1000France2026-08-17
Leon J Nicka1001Japan2026-08-20
Ivar R Caldarera1002Japan2026-08-07
Darci H Nicka1003France2026-07-28
Ashley K Rim1004India2026-08-08
David O Nicka1005United Kingdom2026-08-03
Chavez M Slusarski1006France2026-08-15
Leja M Iturbide1007Italy2026-08-22
Tony I Paprocki1008India2026-07-27
Juan Z Darakjy1009Germany2026-08-05
Tony A Whobrey1010Japan2026-08-02
Aika T Butt1011Australia2026-08-16
Jeanfrancois K Ostrosky1012Brazil2026-08-04
Silvio U Ostrosky1013Canada2026-08-18
Ricardo A Saylors1014Germany2026-08-09
Jefferson H Slusarski1015Japan2026-08-10
Tony U Shinko1016Brazil2026-08-11
Leon F Vocelka1017France2026-08-02
Julie H Nicka1018Italy2026-08-14
Munro K Perin1019India2026-08-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore X BologniaFranceStephen Shaw RENEWAL
Claire X ButtFranceIoni Bowcher QUALIFIED
Stacey H KolmetzUnited KingdomIoni Bowcher QUALIFIED
Misaki V OstroskyUnited KingdomAsiya Javayant QUALIFIED
Ivar Z FlosiUnited KingdomXuxue Feng NEW
James M SchemmerBrazilXuxue Feng QUALIFIED
Aruna M VocelkaSpainStephen Shaw PROPOSAL
Johnson A MacleadSpainStephen Shaw NEW
Darci H MarrierCanadaElwin Sharvill RENEWAL
Adams I VenereAustraliaBernardo Dominic RENEWAL
Aika E PaprockiRussiaElwin Sharvill RENEWAL
Emily P VocelkaCanadaIvan Magalhaes RENEWAL
Deepesh R WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues K PoquetteArgentinaIvan Magalhaes QUALIFIED
Aruna B FerenczJapanStephen Shaw NEW
Rodrigues F NestleItalyOnyama Limba NEGOTIATION
Aruna T OstroskyRussiaOnyama Limba NEGOTIATION
Munro Q OldroydFranceStephen Shaw RENEWAL
Aika J OstroskyArgentinaIvan Magalhaes RENEWAL
Sinclair H SchemmerJapanElwin Sharvill NEGOTIATION
Isabel Z BriddickCanadaIvan Magalhaes PROPOSAL
Johnson Q BologniaAustraliaAmy Elsner NEW
Wickens I ShinkoItalyStephen Shaw PROPOSAL
Jones S FlosiCanadaIvan Magalhaes NEGOTIATION
Jones O GillianGermanyIoni Bowcher UNQUALIFIED
Aruna B MacleadRussiaElwin Sharvill PROPOSAL
Leja L OldroydArgentinaAsiya Javayant PROPOSAL
Antonio H PoquetteGermanyIvan Magalhaes QUALIFIED
Clifford Q FollerJapanIoni Bowcher PROPOSAL
Francesco Q PoquetteCanadaXuxue Feng QUALIFIED
Ashley W TollnerSpainAmy Elsner RENEWAL
Emily T FollerJapanStephen Shaw UNQUALIFIED
Kadeem L RoysterFranceStephen Shaw UNQUALIFIED
Nicolas I IturbideAustraliaIoni Bowcher QUALIFIED
Jones T CaldareraBrazilBernardo Dominic PROPOSAL
Ashley I BowleyCanadaStephen Shaw PROPOSAL
Ricardo C InouyeJapanAnna Fali NEGOTIATION
Kadeem H FigeroaRussiaXuxue Feng UNQUALIFIED
Octavia E OldroydSpainXuxue Feng NEW
Jones W SergiUnited KingdomIvan Magalhaes 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>