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
Maisha L MacleadJapanAnna Fali NEW
Juan R KuskoFranceOnyama Limba NEW
Wickens H InouyeBrazilAsiya Javayant NEW
Juan O MaletItalyElwin Sharvill NEW
Leja Q IturbideSpainAnna Fali NEW
Maria U GillianCanadaAsiya Javayant QUALIFIED
Aruna B SchemmerSpainBernardo Dominic NEW
Faith U TollnerSpainElwin Sharvill PROPOSAL
Francesco T KuskoUnited KingdomOnyama Limba NEGOTIATION
Claire P GauchoGermanyXuxue Feng NEW
Munro Q CaldareraRussiaXuxue Feng RENEWAL
Mayumi O FlosiBrazilBernardo Dominic NEW
David A CampainRussiaXuxue Feng PROPOSAL
Octavia E InouyeFranceStephen Shaw NEGOTIATION
Aditya F WaycottUnited KingdomIvan Magalhaes PROPOSAL
Johnson U VenereUnited KingdomBernardo Dominic UNQUALIFIED
Maisha U StensethFranceElwin Sharvill RENEWAL
Misaki F PoquetteGermanyAsiya Javayant NEGOTIATION
Julie R StockhamAustraliaBernardo Dominic UNQUALIFIED
Munro K WhobreyRussiaOnyama Limba RENEWAL
Maria E BowleyFranceStephen Shaw NEW
Clifford C GauchoRussiaOnyama Limba PROPOSAL
Misaki G DilliardSpainBernardo Dominic NEW
Alejandro Y AmigonFranceStephen Shaw UNQUALIFIED
Arvin V VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Emily V KolmetzCanadaAmy Elsner RENEWAL
Kadeem O OstroskyUnited KingdomAmy Elsner NEW
Salvatore S TollnerSpainAsiya Javayant UNQUALIFIED
Julie I RutaItalyAsiya Javayant UNQUALIFIED
Deepesh D RimUnited KingdomIvan Magalhaes QUALIFIED
Juan H SlusarskiJapanOnyama Limba NEGOTIATION
Octavia L KolmetzBrazilElwin Sharvill RENEWAL
Maria B IturbideArgentinaOnyama Limba NEGOTIATION
Julie H NestleBrazilAnna Fali QUALIFIED
Julie J DarakjyArgentinaIoni Bowcher NEW
Rodrigues M ChuiIndiaOnyama Limba RENEWAL
Maria E StensethItalyElwin Sharvill PROPOSAL
Wickens S AlbaresArgentinaElwin Sharvill QUALIFIED
Clifford F RimItalyStephen Shaw NEGOTIATION
Sinclair U RulapaughArgentinaElwin Sharvill NEGOTIATION
Alejandro F BologniaCanadaStephen Shaw QUALIFIED
Greenwood Y FollerArgentinaAmy Elsner QUALIFIED
Ashley A NestleFranceIvan Magalhaes QUALIFIED
Smith N StensethGermanyAnna Fali NEW
Kadeem L GlickJapanIoni Bowcher NEGOTIATION
Morrow I OldroydSpainXuxue Feng RENEWAL
Aika Z DarakjyFranceAsiya Javayant PROPOSAL
Darci P RimAustraliaIvan Magalhaes NEGOTIATION
Tony T WhobreyFranceXuxue Feng NEW
Cody P NestleBrazilElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Stacey H GarufiFranceXuxue Feng NEW
Aruna P DoeAustraliaAnna Fali NEGOTIATION
Aika P OstroskyFranceStephen Shaw NEGOTIATION
Aditya U TollnerItalyAmy Elsner RENEWAL
Emily M SergiGermanyXuxue Feng NEW
Deepesh P WieserFranceElwin Sharvill NEGOTIATION
Cody A MaletAustraliaStephen Shaw PROPOSAL
Mayumi E ShinkoIndiaIoni Bowcher RENEWAL
Mujtaba M DarakjyAustraliaElwin Sharvill RENEWAL
Darci V NickaArgentinaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez K GauchoSpain2026-07-18King, Christopher A Esq NEW37Ioni Bowcher
1001Costa V KuskoItaly2026-08-06Rousseaux, Michael Esq UNQUALIFIED27Anna Fali
1002Izzy Z SlusarskiGermany2026-07-16Chemel, James L Cpa RENEWAL35Bernardo Dominic
1003Misaki D WieserSpain2026-07-18Printing Dimensions UNQUALIFIED42Amy Elsner
1004Chavez H RulapaughAustralia2026-08-14King, Christopher A Esq RENEWAL27Onyama Limba
1005Jennifer F VenereAustralia2026-08-04Chapman, Ross E Esq NEGOTIATION38Stephen Shaw
1006Leon M MacleadBrazil2026-07-18Rousseaux, Michael Esq NEW85Onyama Limba
1007Costa I FollerAustralia2026-08-07Chanay, Jeffrey A Esq PROPOSAL79Amy Elsner
1008Maria S SergiIndia2026-08-04Commercial Press NEGOTIATION73Amy Elsner
1009Nicolas P BriddickSpain2026-08-02Printing Dimensions QUALIFIED29Ivan Magalhaes
1010Smith O GlickFrance2026-08-05King, Christopher A Esq NEGOTIATION64Bernardo Dominic
1011Izzy N BologniaIndia2026-07-29Truhlar And Truhlar Attys QUALIFIED27Xuxue Feng
1012Darci W PerinSpain2026-07-29King, Christopher A Esq NEW78Bernardo Dominic
1013Rodrigues Z DarakjyAustralia2026-08-07Dorl, James J Esq NEW25Asiya Javayant
1014Tony Y RoysterFrance2026-07-30Feiner Bros PROPOSAL28Amy Elsner
1015Jefferson Y BriddickGermany2026-08-05Benton, John B Jr NEGOTIATION34Ioni Bowcher
1016Maisha X MaletCanada2026-08-01Chemel, James L Cpa RENEWAL53Onyama Limba
1017Stacey A FollerAustralia2026-08-05King, Christopher A Esq UNQUALIFIED28Asiya Javayant
1018Aika Z ButtGermany2026-07-16Feiner Bros PROPOSAL70Bernardo Dominic
1019Ivar E MacleadSpain2026-08-07Feiner Bros QUALIFIED31Bernardo Dominic
1020Misaki Y VocelkaJapan2026-07-28Chanay, Jeffrey A Esq QUALIFIED67Asiya Javayant
1021Wickens Z VocelkaCanada2026-08-05Feltz Printing Service UNQUALIFIED29Amy Elsner
1022Morrow R RutaUnited Kingdom2026-08-14Morlong Associates NEW65Asiya Javayant
1023Smith V PerinGermany2026-08-13Truhlar And Truhlar Attys RENEWAL87Bernardo Dominic
1024Octavia V RimIndia2026-08-01Feltz Printing Service PROPOSAL22Ivan Magalhaes
1025Jones H FlosiSpain2026-07-19Dorl, James J Esq NEW87Ivan Magalhaes
1026Morrow Q GauchoSpain2026-07-26Buckley Miller Wright UNQUALIFIED76Onyama Limba
1027Izzy R GarufiCanada2026-08-13Morlong Associates NEW1Anna Fali
1028Murillo M DoeUnited Kingdom2026-07-17Rousseaux, Michael Esq RENEWAL22Onyama Limba
1029Deepesh S AlbaresGermany2026-07-29Feiner Bros NEGOTIATION66Xuxue Feng
1030Greenwood H VenereGermany2026-08-12Dorl, James J Esq RENEWAL94Onyama Limba
1031Antonio O NestleFrance2026-08-11Buckley Miller Wright PROPOSAL66Stephen Shaw
1032Leon D CampainCanada2026-08-03Chanay, Jeffrey A Esq QUALIFIED80Amy Elsner
1033Greenwood U CampainCanada2026-07-21Printing Dimensions PROPOSAL89Ioni Bowcher
1034Munro Y RoysterGermany2026-08-08Benton, John B Jr NEW43Bernardo Dominic
1035Leon V WieserUnited Kingdom2026-08-14Truhlar And Truhlar Attys QUALIFIED24Elwin Sharvill
1036Mujtaba O VenereFrance2026-08-06King, Christopher A Esq PROPOSAL31Bernardo Dominic
1037Francesco O PoquetteItaly2026-08-04Chemel, James L Cpa UNQUALIFIED54Ivan Magalhaes
1038Chavez H PerinCanada2026-07-23Morlong Associates RENEWAL50Bernardo Dominic
1039Jennifer R MaletGermany2026-07-29Feiner Bros NEW49Amy Elsner
1040Sinclair Z FollerJapan2026-07-24Feiner Bros QUALIFIED5Amy Elsner
1041Greenwood Y RutaFrance2026-07-29Chemel, James L Cpa NEW7Ivan Magalhaes
1042David T WhobreyAustralia2026-07-25Truhlar And Truhlar Attys PROPOSAL73Elwin Sharvill
1043Chavez F StockhamAustralia2026-07-24Chanay, Jeffrey A Esq PROPOSAL76Xuxue Feng
1044Ivar B IturbideFrance2026-07-19Morlong Associates QUALIFIED7Xuxue Feng
1045Munro W RoysterSpain2026-08-03Feltz Printing Service PROPOSAL23Asiya Javayant
1046Deepesh M GillianArgentina2026-08-03Printing Dimensions QUALIFIED69Asiya Javayant
1047Ashley K GillianGermany2026-08-12King, Christopher A Esq PROPOSAL52Stephen Shaw
1048Kaitlin T MorascaSpain2026-07-26Commercial Press NEW10Onyama Limba
1049Tony T StockhamSpain2026-07-22Rangoni Of Florence PROPOSAL77Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ricardo K BowleyIndiaOnyama Limba QUALIFIED
Wickens H RutaAustraliaElwin Sharvill QUALIFIED
Stacey W SchemmerIndiaAnna Fali NEGOTIATION
Maisha D RutaRussiaAsiya Javayant NEW
Adams U PoquetteAustraliaIvan Magalhaes PROPOSAL
Adams U SchemmerItalyBernardo Dominic NEGOTIATION
Costa O DoeAustraliaIoni Bowcher NEGOTIATION
Greenwood U GlickArgentinaXuxue Feng RENEWAL
Kadeem Q MorascaBrazilOnyama Limba UNQUALIFIED
Chavez K CampainArgentinaBernardo Dominic NEGOTIATION
Aika J SaylorsArgentinaIoni Bowcher RENEWAL
Alejandro W WhobreyGermanyOnyama Limba UNQUALIFIED
Rodrigues H MaletJapanIvan Magalhaes NEW
Leon Z FlosiFranceAnna Fali NEGOTIATION
James W GarufiIndiaBernardo Dominic UNQUALIFIED
Octavia D MarrierCanadaElwin Sharvill RENEWAL
Aruna L PerinItalyBernardo Dominic RENEWAL
Maria S KuskoJapanAnna Fali UNQUALIFIED
Claire F WaycottUnited KingdomXuxue Feng RENEWAL
Kadeem U DoeArgentinaIoni Bowcher QUALIFIED
Stacey V MarrierArgentinaOnyama Limba UNQUALIFIED
Ivar G SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Isabel S NestleArgentinaAnna Fali PROPOSAL
Chavez D InouyeCanadaStephen Shaw NEGOTIATION
Antonio N MaletSpainBernardo Dominic QUALIFIED
Jones P WhobreyItalyAsiya Javayant NEGOTIATION
Stacey G MacleadIndiaAnna Fali NEGOTIATION
Deepesh C BologniaGermanyAmy Elsner QUALIFIED
Johnson I RutaItalyOnyama Limba QUALIFIED
Alejandro R WhobreyFranceStephen Shaw UNQUALIFIED
Salvatore W MaletUnited KingdomAnna Fali QUALIFIED
Cody Y KolmetzArgentinaIvan Magalhaes NEW
Claire V RulapaughArgentinaAnna Fali PROPOSAL
Aruna N GarufiIndiaAsiya Javayant PROPOSAL
Jefferson P VenereGermanyOnyama Limba UNQUALIFIED
Ricardo L FollerIndiaAsiya Javayant RENEWAL
Jones E GillianJapanIvan Magalhaes QUALIFIED
Stacey I ShinkoRussiaBernardo Dominic RENEWAL
Nicolas U PoquetteIndiaStephen Shaw NEGOTIATION
Cody T FigeroaFranceOnyama Limba NEW
Costa O GauchoBrazilAmy Elsner UNQUALIFIED
Ricardo C GauchoArgentinaAsiya Javayant NEGOTIATION
Aruna P MaletCanadaStephen Shaw PROPOSAL
David I ChuiSpainXuxue Feng PROPOSAL
David J ChuiGermanyElwin Sharvill QUALIFIED
Faith O WieserJapanIvan Magalhaes UNQUALIFIED
Juan O CampainItalyIoni Bowcher QUALIFIED
Izzy D MaletAustraliaAmy Elsner PROPOSAL
Ricardo T ShinkoGermanyAmy Elsner NEW
Emily X RulapaughItalyAnna Fali NEGOTIATION
Frozen Columns
Name
Clifford G Doe
Kaitlin V Albares
Kaitlin D Caldarera
Nicolas V Sergi
Juan H Butt
Arvin U Tollner
Salvatore E Morasca
Mayumi X Rim
Leon Y Malet
Leja G Campain
Greenwood A Bowley
Rodrigues D Briddick
Greenwood X Albares
Stacey T Foller
Alejandro L Ferencz
David T Poquette
Wickens J Amigon
Adams J Briddick
Leja A Wieser
Darci Q Whobrey
Mujtaba C Malet
Antonio Z Paprocki
Sinclair M Shinko
Maria V Amigon
Julie L Inouye
Claire Y Royster
Aditya M Caldarera
Kaitlin G Gaucho
Aruna W Maclead
Cody L Gillian
Leja V Malet
Isabel W Rim
Clifford T Malet
Aika N Doe
Claire V Rulapaugh
Aruna H Campain
Jones E Paprocki
Kaitlin D Vocelka
Sinclair I Iturbide
Kaitlin G Ruta
Mayumi I Royster
Antonio H Paprocki
Murillo Y Glick
Ivar R Briddick
James I Gaucho
Francesco H Darakjy
Emily Y Briddick
Aruna H Caldarera
Misaki R Inouye
Murillo D Nicka
IdCountryDate
1000Italy2026-08-01
1001Brazil2026-08-02
1002Australia2026-08-05
1003France2026-08-14
1004Canada2026-07-16
1005Spain2026-08-02
1006Japan2026-07-16
1007Brazil2026-08-06
1008United Kingdom2026-07-22
1009Australia2026-07-22
1010Spain2026-08-04
1011Spain2026-07-30
1012Germany2026-07-23
1013Spain2026-08-01
1014Germany2026-07-27
1015United Kingdom2026-07-23
1016Italy2026-07-30
1017Canada2026-07-31
1018Germany2026-07-23
1019France2026-08-12
1020Australia2026-07-26
1021Germany2026-07-16
1022Canada2026-07-27
1023United Kingdom2026-08-05
1024Brazil2026-07-25
1025France2026-08-02
1026Brazil2026-08-02
1027Canada2026-07-19
1028Russia2026-07-25
1029Brazil2026-07-31
1030Germany2026-08-03
1031Brazil2026-07-28
1032Germany2026-08-05
1033Russia2026-07-26
1034Australia2026-08-03
1035Japan2026-08-13
1036United Kingdom2026-07-30
1037Canada2026-07-17
1038Japan2026-08-03
1039Canada2026-08-02
1040India2026-07-28
1041India2026-07-23
1042Spain2026-07-20
1043Canada2026-07-22
1044Russia2026-07-20
1045Spain2026-07-22
1046Russia2026-07-24
1047India2026-08-06
1048Canada2026-07-25
1049Italy2026-07-19

On-Demand Data

NameIdCountryDate
Leja S Ruta1000Italy2026-07-20
Faith I Kusko1001Germany2026-07-21
Alejandro Q Vocelka1002Italy2026-07-19
Jones O Doe1003Brazil2026-07-16
David D Doe1004India2026-08-07
Murillo V Ruta1005India2026-07-18
Leja D Ferencz1006Brazil2026-08-01
Ashley Q Gillian1007United Kingdom2026-07-22
Leja G Chui1008Italy2026-07-20
Aruna V Malet1009Germany2026-08-11
Jones T Briddick1010Italy2026-07-25
David U Gillian1011Russia2026-07-23
Cody L Doe1012Australia2026-07-24
Julie D Stenseth1013Canada2026-08-13
Stacey S Chui1014France2026-08-10
Ashley O Stenseth1015Spain2026-07-28
Julie X Sergi1016Brazil2026-07-25
Jennifer B Garufi1017France2026-07-25
Morrow U Ruta1018United Kingdom2026-07-25
Munro B Oldroyd1019Brazil2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci L KuskoGermanyIoni Bowcher PROPOSAL
Sinclair Q RulapaughFranceAnna Fali UNQUALIFIED
Emily R MorascaItalyAsiya Javayant NEW
James D SergiFranceAsiya Javayant NEW
Emily T KolmetzAustraliaOnyama Limba UNQUALIFIED
Wickens F MaletGermanyAnna Fali QUALIFIED
Francesco P SergiSpainElwin Sharvill NEW
Mayumi X WhobreyRussiaBernardo Dominic QUALIFIED
Cody C BriddickIndiaAnna Fali NEGOTIATION
Clifford B DoeBrazilOnyama Limba PROPOSAL
Murillo O SchemmerArgentinaAnna Fali NEW
Mayumi A TollnerIndiaOnyama Limba NEW
Misaki J VocelkaArgentinaIoni Bowcher UNQUALIFIED
Misaki S InouyeSpainElwin Sharvill RENEWAL
Sinclair J OstroskyArgentinaBernardo Dominic NEW
Ivar O PoquetteFranceIoni Bowcher NEW
Aruna X InouyeCanadaAsiya Javayant RENEWAL
Francesco C FlosiRussiaElwin Sharvill NEW
Salvatore I NickaUnited KingdomStephen Shaw NEW
David V InouyeFranceStephen Shaw PROPOSAL
Arvin P OldroydAustraliaAnna Fali QUALIFIED
Antonio S FigeroaAustraliaStephen Shaw PROPOSAL
Sinclair A ButtAustraliaOnyama Limba PROPOSAL
Johnson A BowleyBrazilElwin Sharvill PROPOSAL
Antonio Z GauchoCanadaOnyama Limba QUALIFIED
Octavia A WaycottIndiaBernardo Dominic RENEWAL
Darci H ButtJapanOnyama Limba QUALIFIED
Leon R StensethGermanyAmy Elsner PROPOSAL
Ricardo F PaprockiJapanXuxue Feng NEW
Aditya K BologniaAustraliaOnyama Limba NEW
Clifford P OstroskyCanadaXuxue Feng UNQUALIFIED
Greenwood X GauchoAustraliaIoni Bowcher QUALIFIED
Greenwood W GauchoArgentinaAmy Elsner PROPOSAL
Ricardo S DarakjyRussiaIvan Magalhaes PROPOSAL
Clifford A MorascaFranceAsiya Javayant QUALIFIED
Ricardo T IturbideIndiaAmy Elsner NEW
Greenwood G FlosiJapanOnyama Limba RENEWAL
Faith H PaprockiRussiaBernardo Dominic UNQUALIFIED
Morrow M InouyeSpainXuxue Feng QUALIFIED
Wickens I PaprockiRussiaAmy Elsner 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>