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
Jennifer W InouyeArgentinaAsiya Javayant QUALIFIED
Mujtaba I AmigonSpainAnna Fali RENEWAL
Jennifer L PaprockiArgentinaAsiya Javayant QUALIFIED
Julie V BologniaAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois U PaprockiUnited KingdomIvan Magalhaes NEW
Salvatore P FlosiIndiaXuxue Feng UNQUALIFIED
David U WhobreyRussiaAsiya Javayant UNQUALIFIED
Maisha X NickaArgentinaElwin Sharvill PROPOSAL
David J NickaJapanStephen Shaw NEGOTIATION
Jefferson X BologniaJapanElwin Sharvill RENEWAL
Deepesh E TollnerIndiaIvan Magalhaes NEGOTIATION
Jeanfrancois K AlbaresRussiaBernardo Dominic PROPOSAL
Faith B WaycottArgentinaBernardo Dominic NEW
Cody Q MorascaIndiaXuxue Feng NEW
Silvio J MaletFranceXuxue Feng PROPOSAL
Clifford A ChuiFranceBernardo Dominic QUALIFIED
Kadeem T StockhamGermanyOnyama Limba NEW
Silvio Q VenereRussiaBernardo Dominic QUALIFIED
Tony I MaletRussiaIoni Bowcher NEW
Izzy E OldroydItalyOnyama Limba NEGOTIATION
Faith U RutaJapanStephen Shaw UNQUALIFIED
Murillo Z StockhamFranceOnyama Limba PROPOSAL
Murillo E StockhamCanadaAnna Fali QUALIFIED
Julie W SchemmerFranceStephen Shaw UNQUALIFIED
Stacey I VocelkaAustraliaBernardo Dominic PROPOSAL
Salvatore P ButtCanadaXuxue Feng PROPOSAL
Stacey M CaudyFranceElwin Sharvill PROPOSAL
Claire Y WhobreyBrazilBernardo Dominic QUALIFIED
Alejandro S GauchoSpainBernardo Dominic PROPOSAL
David I OldroydCanadaAmy Elsner UNQUALIFIED
Izzy H MarrierJapanAnna Fali UNQUALIFIED
Francesco Y MarrierUnited KingdomStephen Shaw NEGOTIATION
Greenwood C GillianUnited KingdomIvan Magalhaes NEW
Aruna C FollerIndiaStephen Shaw RENEWAL
Darci N GillianJapanBernardo Dominic PROPOSAL
Maria N PaprockiRussiaBernardo Dominic UNQUALIFIED
Smith N GarufiGermanyStephen Shaw UNQUALIFIED
Jefferson S FlosiBrazilAmy Elsner RENEWAL
Nicolas V VocelkaJapanAmy Elsner NEGOTIATION
Kadeem Z KolmetzRussiaBernardo Dominic NEW
Aditya Q RutaItalyIvan Magalhaes PROPOSAL
Costa P CaudyRussiaElwin Sharvill UNQUALIFIED
Morrow J WaycottAustraliaAsiya Javayant PROPOSAL
Aditya Q StensethGermanyBernardo Dominic QUALIFIED
Maria U FollerIndiaBernardo Dominic UNQUALIFIED
Leja D WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Wickens C MaletFranceAnna Fali RENEWAL
Maisha H MorascaArgentinaIvan Magalhaes NEW
Darci Z FollerUnited KingdomStephen Shaw NEW
Murillo P SaylorsFranceIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi S RulapaughUnited KingdomElwin Sharvill NEW
Izzy K WhobreyUnited KingdomBernardo Dominic NEW
Antonio K SchemmerJapanOnyama Limba NEGOTIATION
David J AlbaresSpainIoni Bowcher UNQUALIFIED
Alejandro K RoysterFranceOnyama Limba RENEWAL
Jefferson O BriddickCanadaAmy Elsner QUALIFIED
Aika Q SlusarskiUnited KingdomAnna Fali NEW
Smith S MorascaIndiaBernardo Dominic NEGOTIATION
David Q RimArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois F MarrierUnited KingdomAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Q MarrierSpain2026-08-21Rangoni Of Florence NEGOTIATION67Elwin Sharvill
1001Greenwood F WaycottItaly2026-08-09King, Christopher A Esq UNQUALIFIED89Bernardo Dominic
1002Tony B MaletUnited Kingdom2026-08-17Feltz Printing Service NEW78Elwin Sharvill
1003Chavez Q NickaJapan2026-07-26Chanay, Jeffrey A Esq UNQUALIFIED91Xuxue Feng
1004Ivar V RulapaughIndia2026-08-11Buckley Miller Wright UNQUALIFIED1Anna Fali
1005Antonio I SchemmerAustralia2026-08-02Feiner Bros QUALIFIED88Ioni Bowcher
1006Izzy G BriddickArgentina2026-07-25Chapman, Ross E Esq RENEWAL12Elwin Sharvill
1007Leja B SergiUnited Kingdom2026-08-17King, Christopher A Esq NEGOTIATION51Xuxue Feng
1008Aruna C PaprockiSpain2026-08-15King, Christopher A Esq PROPOSAL28Xuxue Feng
1009Octavia I CampainSpain2026-08-18Dorl, James J Esq QUALIFIED52Anna Fali
1010Murillo E FlosiJapan2026-08-13Feiner Bros UNQUALIFIED55Amy Elsner
1011Maisha I GillianGermany2026-07-27Truhlar And Truhlar Attys QUALIFIED20Bernardo Dominic
1012Wickens A OstroskyGermany2026-08-09Commercial Press NEW20Stephen Shaw
1013Antonio K BriddickRussia2026-08-11Feltz Printing Service QUALIFIED8Anna Fali
1014Rodrigues C SlusarskiRussia2026-07-30King, Christopher A Esq UNQUALIFIED6Amy Elsner
1015Murillo J RulapaughFrance2026-08-15Truhlar And Truhlar Attys UNQUALIFIED91Bernardo Dominic
1016Kaitlin K SlusarskiFrance2026-07-25Chanay, Jeffrey A Esq NEGOTIATION82Onyama Limba
1017Claire C AlbaresRussia2026-07-26Rousseaux, Michael Esq PROPOSAL68Elwin Sharvill
1018Munro T StensethBrazil2026-08-12Benton, John B Jr PROPOSAL18Ivan Magalhaes
1019Costa G BriddickArgentina2026-08-17Printing Dimensions NEW71Anna Fali
1020Ashley M GillianFrance2026-08-19Feiner Bros NEW9Asiya Javayant
1021Arvin K SaylorsArgentina2026-08-17Chemel, James L Cpa PROPOSAL72Xuxue Feng
1022James L ButtAustralia2026-08-13Rangoni Of Florence PROPOSAL67Elwin Sharvill
1023Juan X BriddickIndia2026-08-21Commercial Press UNQUALIFIED62Amy Elsner
1024Juan E IturbideGermany2026-07-26Chapman, Ross E Esq NEW96Onyama Limba
1025Costa G FigeroaFrance2026-08-09Printing Dimensions QUALIFIED39Xuxue Feng
1026Izzy Z VenereSpain2026-08-15Dorl, James J Esq NEW48Anna Fali
1027Silvio R RoysterCanada2026-08-17Benton, John B Jr PROPOSAL31Anna Fali
1028Misaki Y KuskoCanada2026-08-08Feiner Bros NEW44Anna Fali
1029Claire V PoquetteUnited Kingdom2026-08-20Chemel, James L Cpa RENEWAL86Bernardo Dominic
1030David B WhobreyArgentina2026-08-23Rousseaux, Michael Esq NEW42Amy Elsner
1031Kadeem Y AmigonCanada2026-08-18Truhlar And Truhlar Attys NEGOTIATION77Xuxue Feng
1032Morrow T MaletIndia2026-08-12Rousseaux, Michael Esq PROPOSAL29Elwin Sharvill
1033Wickens G BologniaIndia2026-07-29Buckley Miller Wright NEW89Ivan Magalhaes
1034Aditya N PerinGermany2026-08-14Chanay, Jeffrey A Esq NEGOTIATION39Stephen Shaw
1035Nicolas G FigeroaCanada2026-08-11Truhlar And Truhlar Attys UNQUALIFIED8Onyama Limba
1036Izzy V FlosiCanada2026-07-31Feltz Printing Service NEGOTIATION68Stephen Shaw
1037Izzy U MaletSpain2026-07-26Benton, John B Jr NEGOTIATION12Ivan Magalhaes
1038Aruna J CaudyJapan2026-08-19Truhlar And Truhlar Attys NEW3Asiya Javayant
1039Salvatore H GillianItaly2026-08-16Commercial Press PROPOSAL18Onyama Limba
1040Tony X StensethRussia2026-08-19Printing Dimensions RENEWAL52Ivan Magalhaes
1041Munro L KuskoArgentina2026-08-21Rousseaux, Michael Esq RENEWAL94Ivan Magalhaes
1042Ivar M SergiBrazil2026-08-01Truhlar And Truhlar Attys QUALIFIED95Asiya Javayant
1043Adams K DilliardIndia2026-07-28Dorl, James J Esq NEGOTIATION23Onyama Limba
1044Ricardo V DilliardSpain2026-08-17Dorl, James J Esq QUALIFIED93Onyama Limba
1045Salvatore N BriddickAustralia2026-08-08Chanay, Jeffrey A Esq QUALIFIED7Bernardo Dominic
1046Juan L TollnerUnited Kingdom2026-08-17Truhlar And Truhlar Attys NEGOTIATION46Onyama Limba
1047Aruna R KolmetzArgentina2026-08-04Rangoni Of Florence PROPOSAL41Amy Elsner
1048Ivar J DoeRussia2026-08-19Chemel, James L Cpa RENEWAL22Ioni Bowcher
1049Francesco I RulapaughIndia2026-08-06Rangoni Of Florence PROPOSAL9Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel R KolmetzItalyIoni Bowcher QUALIFIED
Faith P OldroydSpainAnna Fali UNQUALIFIED
Nicolas G PoquetteArgentinaIvan Magalhaes UNQUALIFIED
James I CaudyBrazilIvan Magalhaes NEW
Munro T WhobreyAustraliaAmy Elsner NEGOTIATION
Chavez H BologniaAustraliaAnna Fali NEW
Ricardo E NestleRussiaAsiya Javayant RENEWAL
Aruna L InouyeGermanyIvan Magalhaes UNQUALIFIED
Tony L SlusarskiRussiaIoni Bowcher NEW
Smith Y MorascaGermanyElwin Sharvill RENEWAL
Jefferson E MorascaArgentinaAmy Elsner NEW
Deepesh C IturbideGermanyXuxue Feng NEGOTIATION
Chavez F CampainArgentinaStephen Shaw RENEWAL
Costa E MorascaGermanyXuxue Feng PROPOSAL
Aika Y PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Francesco X MorascaFranceElwin Sharvill NEGOTIATION
Leja L RoysterGermanyAnna Fali RENEWAL
Ashley I MaletIndiaElwin Sharvill NEW
Alejandro U BowleyUnited KingdomAnna Fali PROPOSAL
Maisha E CampainBrazilAnna Fali UNQUALIFIED
Smith L MacleadJapanIvan Magalhaes UNQUALIFIED
Antonio N DarakjyUnited KingdomOnyama Limba NEW
Ricardo D TollnerIndiaStephen Shaw RENEWAL
Ricardo C SaylorsFranceOnyama Limba PROPOSAL
Alejandro N BriddickCanadaXuxue Feng PROPOSAL
Aruna O CampainFranceIvan Magalhaes RENEWAL
David S StensethItalyIoni Bowcher RENEWAL
Kaitlin V GlickJapanIvan Magalhaes PROPOSAL
Claire D BologniaAustraliaAnna Fali QUALIFIED
Munro A GauchoRussiaAsiya Javayant NEW
Octavia D DoeUnited KingdomOnyama Limba RENEWAL
Claire S BriddickAustraliaElwin Sharvill NEW
Aruna A PerinBrazilStephen Shaw NEW
Adams G FollerJapanBernardo Dominic NEW
Nicolas G SlusarskiAustraliaBernardo Dominic NEW
Misaki R WhobreyUnited KingdomElwin Sharvill UNQUALIFIED
Cody A NestleItalyAnna Fali QUALIFIED
Greenwood G MacleadJapanElwin Sharvill NEGOTIATION
Misaki L BologniaItalyStephen Shaw QUALIFIED
David Z CaldareraIndiaElwin Sharvill NEGOTIATION
Aika M AlbaresRussiaAnna Fali QUALIFIED
Faith E BowleyIndiaOnyama Limba UNQUALIFIED
Juan C OstroskyAustraliaAmy Elsner QUALIFIED
Juan Q CampainBrazilStephen Shaw NEGOTIATION
Jones P KolmetzSpainIvan Magalhaes PROPOSAL
Cody N InouyeJapanIvan Magalhaes NEGOTIATION
Aika Q ButtRussiaElwin Sharvill NEGOTIATION
Mujtaba X BriddickBrazilAmy Elsner NEW
Silvio M MarrierArgentinaIvan Magalhaes NEW
Nicolas K GlickAustraliaElwin Sharvill NEW
Frozen Columns
Name
Wickens O Nestle
Tony O Perin
Chavez Q Royster
Morrow R Gillian
Deepesh E Gaucho
Misaki F Dilliard
Kadeem B Tollner
Murillo G Inouye
Leja C Vocelka
Nicolas B Ferencz
Nicolas N Waycott
Maria M Vocelka
Francesco R Dilliard
Isabel X Shinko
Izzy Y Dilliard
Jefferson R Tollner
Kaitlin P Venere
Cody Y Paprocki
Rodrigues L Saylors
Rodrigues V Schemmer
Leja I Ruta
Kaitlin G Venere
Ivar Y Malet
Izzy N Marrier
Adams L Shinko
Izzy U Poquette
Emily I Albares
Alejandro U Nestle
Izzy Z Glick
Misaki V Darakjy
Morrow A Caldarera
Isabel L Gaucho
Darci W Albares
Adams W Darakjy
Izzy J Paprocki
Jennifer I Schemmer
Costa V Kolmetz
Julie R Albares
Costa O Iturbide
Leon J Ruta
Munro S Malet
Isabel P Bolognia
Maisha B Venere
Murillo U Albares
Arvin K Malet
Kadeem A Rim
Faith S Kusko
Costa V Bowley
Darci Z Ostrosky
Leon V Glick
IdCountryDate
1000India2026-07-28
1001Russia2026-08-10
1002Canada2026-07-29
1003Italy2026-07-29
1004United Kingdom2026-08-12
1005Brazil2026-08-14
1006India2026-08-20
1007Italy2026-07-28
1008Brazil2026-08-12
1009Spain2026-08-20
1010Germany2026-08-21
1011Argentina2026-08-20
1012Spain2026-08-22
1013United Kingdom2026-08-20
1014Germany2026-08-11
1015Australia2026-08-01
1016Australia2026-07-25
1017Brazil2026-08-01
1018France2026-08-20
1019Russia2026-08-13
1020Argentina2026-08-13
1021Brazil2026-08-09
1022Canada2026-07-26
1023France2026-08-01
1024Italy2026-07-28
1025Italy2026-08-22
1026India2026-08-20
1027Japan2026-07-30
1028Italy2026-08-22
1029Russia2026-07-31
1030Canada2026-07-31
1031Australia2026-08-12
1032United Kingdom2026-08-19
1033Germany2026-07-30
1034Australia2026-08-04
1035Australia2026-08-19
1036Australia2026-07-28
1037Brazil2026-08-15
1038Germany2026-07-27
1039India2026-08-10
1040Russia2026-08-04
1041Russia2026-07-29
1042Germany2026-07-28
1043Brazil2026-07-27
1044Japan2026-08-01
1045United Kingdom2026-08-08
1046Australia2026-08-09
1047Australia2026-08-17
1048United Kingdom2026-08-10
1049Argentina2026-07-31

On-Demand Data

NameIdCountryDate
Mujtaba I Kolmetz1000Argentina2026-08-22
Mujtaba A Caldarera1001United Kingdom2026-08-05
Tony A Briddick1002Argentina2026-08-09
Cody K Chui1003France2026-08-05
Cody V Iturbide1004Canada2026-08-09
Rodrigues R Campain1005United Kingdom2026-08-22
Maria L Shinko1006France2026-08-22
Darci P Bolognia1007Japan2026-08-18
Arvin H Inouye1008Australia2026-07-26
Tony M Poquette1009Japan2026-08-06
James B Morasca1010United Kingdom2026-08-20
Stacey Z Venere1011Argentina2026-08-20
David S Vocelka1012United Kingdom2026-07-30
Jones F Albares1013France2026-08-13
Jones X Shinko1014Italy2026-08-20
Arvin W Butt1015Russia2026-08-16
Leon B Schemmer1016France2026-07-28
Nicolas L Darakjy1017France2026-08-17
Isabel I Bowley1018Italy2026-08-22
Darci L Gaucho1019Australia2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan Q RutaCanadaOnyama Limba QUALIFIED
Alejandro V GauchoUnited KingdomAmy Elsner QUALIFIED
Jefferson O SaylorsArgentinaAnna Fali NEW
Johnson E FigeroaRussiaBernardo Dominic RENEWAL
Ashley G KolmetzAustraliaAmy Elsner QUALIFIED
Maisha D RulapaughJapanIoni Bowcher NEGOTIATION
Cody K NestleRussiaAmy Elsner PROPOSAL
Izzy X WieserJapanBernardo Dominic PROPOSAL
Aditya D GarufiIndiaOnyama Limba QUALIFIED
Rodrigues O PoquetteFranceOnyama Limba PROPOSAL
Antonio H MaletIndiaAsiya Javayant NEW
Tony Z BriddickSpainStephen Shaw NEGOTIATION
Darci Y FigeroaBrazilStephen Shaw UNQUALIFIED
Morrow X RimUnited KingdomAnna Fali NEGOTIATION
Mayumi H FlosiItalyAsiya Javayant NEGOTIATION
Greenwood H GlickRussiaElwin Sharvill NEW
Tony Q FigeroaSpainXuxue Feng NEW
Jennifer V WaycottFranceBernardo Dominic NEW
Jefferson B MaletGermanyAnna Fali RENEWAL
Jones V ButtJapanElwin Sharvill NEW
Stacey H FlosiIndiaIoni Bowcher NEW
Jeanfrancois U WhobreyArgentinaXuxue Feng NEGOTIATION
Stacey H DoeUnited KingdomIoni Bowcher PROPOSAL
Mayumi Q DarakjyCanadaAmy Elsner RENEWAL
Mayumi I StensethGermanyBernardo Dominic UNQUALIFIED
Ricardo M CampainSpainBernardo Dominic UNQUALIFIED
Faith V AmigonJapanAsiya Javayant QUALIFIED
Ricardo R RimFranceStephen Shaw PROPOSAL
Maisha L FerenczRussiaElwin Sharvill QUALIFIED
Silvio L GillianRussiaBernardo Dominic QUALIFIED
Mayumi U WaycottRussiaAsiya Javayant NEW
Jones E ChuiUnited KingdomElwin Sharvill NEW
Ricardo J MarrierArgentinaAnna Fali UNQUALIFIED
Salvatore F KuskoArgentinaAnna Fali NEGOTIATION
Leon K VenereGermanyIvan Magalhaes QUALIFIED
Kaitlin E PaprockiCanadaElwin Sharvill PROPOSAL
Kaitlin S PoquetteBrazilElwin Sharvill RENEWAL
Alejandro O AmigonFranceElwin Sharvill QUALIFIED
Francesco F MarrierItalyXuxue Feng NEGOTIATION
Ashley H IturbideIndiaAsiya Javayant 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>