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
Emily I PoquetteJapanElwin Sharvill NEGOTIATION
Jefferson T NickaBrazilAsiya Javayant PROPOSAL
Faith P VenereUnited KingdomIoni Bowcher NEGOTIATION
Aruna Z BologniaRussiaOnyama Limba RENEWAL
Costa H TollnerItalyOnyama Limba NEGOTIATION
Maisha V BowleyGermanyAsiya Javayant RENEWAL
Kaitlin V TollnerArgentinaAmy Elsner NEW
Leon S MaletItalyAmy Elsner PROPOSAL
Adams O BowleyAustraliaElwin Sharvill NEW
Costa G BologniaArgentinaAsiya Javayant RENEWAL
Octavia N FollerUnited KingdomAmy Elsner NEGOTIATION
Nicolas J WieserArgentinaElwin Sharvill QUALIFIED
Julie P FerenczUnited KingdomStephen Shaw RENEWAL
Kadeem K SlusarskiRussiaAnna Fali NEW
Jefferson H ButtFranceElwin Sharvill NEW
Salvatore V ShinkoArgentinaOnyama Limba NEW
Ricardo E WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Misaki X OldroydArgentinaIoni Bowcher NEGOTIATION
Costa J BriddickGermanyStephen Shaw PROPOSAL
Leon L CaldareraJapanIoni Bowcher RENEWAL
Murillo W BologniaItalyIoni Bowcher NEW
Jennifer A SergiJapanBernardo Dominic RENEWAL
Misaki P RulapaughBrazilAsiya Javayant NEGOTIATION
Munro V RimBrazilStephen Shaw PROPOSAL
Greenwood W CaldareraGermanyElwin Sharvill NEW
Rodrigues F VenereCanadaBernardo Dominic UNQUALIFIED
Jefferson R StockhamArgentinaStephen Shaw UNQUALIFIED
Aditya U GlickCanadaAmy Elsner NEW
Murillo V WaycottArgentinaIoni Bowcher UNQUALIFIED
Clifford Y StockhamArgentinaXuxue Feng UNQUALIFIED
Salvatore R ButtIndiaStephen Shaw UNQUALIFIED
Julie X KuskoRussiaStephen Shaw QUALIFIED
James Q MaletFranceBernardo Dominic PROPOSAL
Jeanfrancois M GarufiAustraliaIvan Magalhaes QUALIFIED
Isabel P ButtArgentinaIvan Magalhaes NEW
Mayumi E MaletBrazilStephen Shaw QUALIFIED
Darci W ChuiItalyIvan Magalhaes NEGOTIATION
James L WieserBrazilIvan Magalhaes QUALIFIED
Tony N InouyeIndiaStephen Shaw RENEWAL
Leja O VenereUnited KingdomIoni Bowcher RENEWAL
Juan Y SlusarskiRussiaOnyama Limba NEW
Jeanfrancois K WhobreyCanadaOnyama Limba UNQUALIFIED
Rodrigues Y StensethCanadaBernardo Dominic QUALIFIED
Jeanfrancois H OstroskyUnited KingdomIoni Bowcher RENEWAL
Ashley K GauchoFranceAsiya Javayant QUALIFIED
Jefferson H ButtAustraliaBernardo Dominic PROPOSAL
Kadeem Y VenereGermanyAsiya Javayant NEW
Aditya U RimSpainXuxue Feng RENEWAL
Smith A GlickSpainStephen Shaw QUALIFIED
Alejandro A MacleadRussiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem A StockhamGermanyAsiya Javayant NEGOTIATION
James C SchemmerArgentinaIoni Bowcher RENEWAL
Leon N KolmetzArgentinaIoni Bowcher RENEWAL
Kadeem R FollerGermanyAmy Elsner QUALIFIED
James F SaylorsArgentinaElwin Sharvill NEW
Darci Q WieserIndiaIvan Magalhaes NEW
Maria X ChuiSpainOnyama Limba NEGOTIATION
Aika G NestleSpainAnna Fali RENEWAL
Ashley H SaylorsItalyOnyama Limba QUALIFIED
Octavia S TollnerFranceAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan Z MorascaRussia2024-06-04Morlong Associates UNQUALIFIED25Elwin Sharvill
1001Greenwood P KolmetzItaly2024-06-18Commercial Press QUALIFIED98Stephen Shaw
1002Cody C MaletIndia2024-06-12Morlong Associates PROPOSAL26Amy Elsner
1003Faith P RoysterAustralia2024-06-15Feiner Bros NEGOTIATION41Amy Elsner
1004Emily J BologniaGermany2024-06-05Truhlar And Truhlar Attys NEGOTIATION60Asiya Javayant
1005Alejandro V MaletBrazil2024-06-07Chapman, Ross E Esq UNQUALIFIED9Onyama Limba
1006Salvatore U AmigonSpain2024-06-14Rousseaux, Michael Esq NEGOTIATION86Amy Elsner
1007Leon J StensethAustralia2024-06-20Feiner Bros QUALIFIED33Asiya Javayant
1008Faith T KolmetzGermany2024-06-07Commercial Press UNQUALIFIED3Onyama Limba
1009Cody H DoeArgentina2024-05-29Chanay, Jeffrey A Esq RENEWAL65Anna Fali
1010Rodrigues J NickaAustralia2024-06-13Chanay, Jeffrey A Esq UNQUALIFIED77Ivan Magalhaes
1011Jones O BriddickGermany2024-06-06Buckley Miller Wright NEW2Bernardo Dominic
1012Aditya H MaletSpain2024-05-31Printing Dimensions NEGOTIATION47Bernardo Dominic
1013Kaitlin Y AlbaresJapan2024-06-07King, Christopher A Esq RENEWAL6Xuxue Feng
1014Chavez F NestleAustralia2024-06-11Commercial Press RENEWAL84Xuxue Feng
1015Kaitlin T CampainIndia2024-06-09Chapman, Ross E Esq UNQUALIFIED87Ioni Bowcher
1016Jones N RoysterSpain2024-05-26Buckley Miller Wright PROPOSAL4Onyama Limba
1017Aruna S PerinSpain2024-06-19Benton, John B Jr PROPOSAL1Onyama Limba
1018Cody A SlusarskiAustralia2024-06-15Feiner Bros RENEWAL11Anna Fali
1019Aruna Q IturbideIndia2024-06-02Chanay, Jeffrey A Esq NEW69Anna Fali
1020Silvio S GlickArgentina2024-06-01Rangoni Of Florence RENEWAL76Xuxue Feng
1021Deepesh I TollnerCanada2024-06-19Truhlar And Truhlar Attys UNQUALIFIED70Ivan Magalhaes
1022Leon O CaudyIndia2024-05-31Benton, John B Jr PROPOSAL47Stephen Shaw
1023Ivar G BriddickUnited Kingdom2024-06-19Rangoni Of Florence RENEWAL21Onyama Limba
1024Clifford T VenereItaly2024-06-22Printing Dimensions PROPOSAL83Bernardo Dominic
1025Arvin T MaletAustralia2024-06-14Buckley Miller Wright RENEWAL47Amy Elsner
1026Darci H FlosiBrazil2024-06-02Commercial Press NEW72Xuxue Feng
1027Mayumi M MarrierAustralia2024-06-18Chanay, Jeffrey A Esq RENEWAL86Amy Elsner
1028David U PoquetteAustralia2024-05-27Feltz Printing Service PROPOSAL9Amy Elsner
1029Juan I MaletIndia2024-05-27Chemel, James L Cpa NEGOTIATION86Ioni Bowcher
1030Adams H FlosiFrance2024-05-26Chapman, Ross E Esq QUALIFIED15Stephen Shaw
1031Isabel L GarufiSpain2024-05-27Rousseaux, Michael Esq QUALIFIED79Asiya Javayant
1032Antonio M PerinUnited Kingdom2024-06-08Chanay, Jeffrey A Esq UNQUALIFIED36Bernardo Dominic
1033Misaki E RoysterRussia2024-06-03King, Christopher A Esq PROPOSAL36Ivan Magalhaes
1034Francesco W VocelkaItaly2024-05-26Chemel, James L Cpa NEGOTIATION66Ioni Bowcher
1035Smith B MaletUnited Kingdom2024-06-21Chapman, Ross E Esq RENEWAL49Onyama Limba
1036Murillo K SchemmerUnited Kingdom2024-06-15King, Christopher A Esq PROPOSAL69Ioni Bowcher
1037Stacey E BowleyArgentina2024-06-07Truhlar And Truhlar Attys NEGOTIATION7Amy Elsner
1038Octavia Q PerinFrance2024-06-08Feltz Printing Service PROPOSAL16Onyama Limba
1039Aditya U SaylorsBrazil2024-06-22King, Christopher A Esq NEGOTIATION49Onyama Limba
1040Izzy N StensethArgentina2024-06-07Chemel, James L Cpa RENEWAL51Amy Elsner
1041Munro D DilliardJapan2024-06-11Feltz Printing Service PROPOSAL68Amy Elsner
1042Aika X PoquetteSpain2024-06-18Rousseaux, Michael Esq PROPOSAL56Xuxue Feng
1043Mayumi Y PerinRussia2024-06-06Chanay, Jeffrey A Esq RENEWAL87Ivan Magalhaes
1044Ricardo L CaldareraRussia2024-05-31Truhlar And Truhlar Attys UNQUALIFIED62Elwin Sharvill
1045Julie B SchemmerIndia2024-05-24Chapman, Ross E Esq RENEWAL17Stephen Shaw
1046Darci C GillianGermany2024-05-28Dorl, James J Esq NEGOTIATION9Elwin Sharvill
1047Murillo V WhobreySpain2024-05-26Benton, John B Jr UNQUALIFIED99Asiya Javayant
1048Maisha P AmigonFrance2024-06-15Truhlar And Truhlar Attys RENEWAL91Stephen Shaw
1049Murillo E BologniaRussia2024-06-01Commercial Press NEGOTIATION84Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith V ShinkoGermanyAnna Fali NEGOTIATION
Maria R WieserFranceAnna Fali NEGOTIATION
Arvin X SchemmerJapanAmy Elsner QUALIFIED
Jeanfrancois N KuskoRussiaXuxue Feng QUALIFIED
Octavia S PerinCanadaIvan Magalhaes NEW
Deepesh R StockhamAustraliaOnyama Limba PROPOSAL
Faith X FerenczRussiaIoni Bowcher NEW
Ashley U FigeroaIndiaAnna Fali PROPOSAL
Aditya W FigeroaJapanIoni Bowcher UNQUALIFIED
Kaitlin U StensethArgentinaStephen Shaw NEW
Kaitlin D PoquetteSpainIvan Magalhaes QUALIFIED
Kadeem V OstroskyUnited KingdomOnyama Limba PROPOSAL
Isabel B MaletUnited KingdomStephen Shaw QUALIFIED
Aruna O KuskoSpainOnyama Limba QUALIFIED
Ricardo X WaycottRussiaElwin Sharvill QUALIFIED
Aika D CaudyGermanyBernardo Dominic NEW
James F InouyeUnited KingdomIoni Bowcher NEGOTIATION
Leja Y KuskoCanadaAsiya Javayant PROPOSAL
Isabel T PerinJapanAsiya Javayant NEGOTIATION
Murillo C StockhamSpainIvan Magalhaes PROPOSAL
Munro J IturbideItalyAsiya Javayant NEW
Clifford I RoysterGermanyIvan Magalhaes PROPOSAL
Munro K PerinIndiaBernardo Dominic UNQUALIFIED
Ashley Y MacleadCanadaXuxue Feng UNQUALIFIED
Murillo K BriddickSpainOnyama Limba NEW
Ivar O RutaIndiaStephen Shaw NEGOTIATION
Nicolas N KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Tony T GlickJapanOnyama Limba PROPOSAL
Alejandro R KolmetzItalyAnna Fali UNQUALIFIED
Chavez M IturbideAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin X CampainGermanyIoni Bowcher QUALIFIED
Julie Z IturbideIndiaAmy Elsner NEW
Alejandro B GillianJapanAnna Fali PROPOSAL
Ricardo G FollerItalyAsiya Javayant NEGOTIATION
Leon Z PoquetteArgentinaAnna Fali PROPOSAL
Johnson G AmigonJapanAnna Fali PROPOSAL
Jefferson G AlbaresAustraliaAmy Elsner QUALIFIED
Stacey Q BologniaArgentinaBernardo Dominic NEGOTIATION
Antonio S SchemmerBrazilIoni Bowcher NEW
Juan Q ButtAustraliaAsiya Javayant RENEWAL
Emily E CaudySpainElwin Sharvill QUALIFIED
Jefferson V AlbaresSpainOnyama Limba UNQUALIFIED
Jeanfrancois S MacleadJapanBernardo Dominic NEW
Smith T ChuiItalyOnyama Limba QUALIFIED
Sinclair Q MaletRussiaStephen Shaw QUALIFIED
Faith H SergiFranceBernardo Dominic NEW
Silvio W BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro O OstroskySpainStephen Shaw RENEWAL
Darci E TollnerItalyIoni Bowcher RENEWAL
Mayumi P FlosiBrazilStephen Shaw QUALIFIED
Frozen Columns
Name
Jeanfrancois N Ferencz
Salvatore S Inouye
Munro P Dilliard
Leon C Figeroa
Aika Y Slusarski
Sinclair F Shinko
Darci Y Albares
Octavia R Chui
Sinclair P Maclead
Maisha I Ruta
Francesco A Darakjy
Aditya L Dilliard
Faith H Whobrey
Johnson U Glick
Jennifer I Caudy
Munro H Chui
Nicolas G Caudy
Adams J Slusarski
Ivar Z Glick
Octavia N Wieser
Octavia N Flosi
Kaitlin U Briddick
Mayumi C Slusarski
Sinclair O Vocelka
Munro R Perin
Silvio B Rim
Nicolas S Maclead
Sinclair X Chui
Francesco H Saylors
Mujtaba Y Nestle
Ashley N Schemmer
David I Perin
Clifford O Stenseth
Jennifer J Inouye
Faith U Stockham
Stacey H Poquette
Claire Z Bowley
Wickens A Slusarski
Julie R Amigon
Jones R Ostrosky
Nicolas T Kusko
Adams U Wieser
Francesco A Stenseth
Faith R Stockham
Misaki D Venere
Julie B Nicka
Salvatore E Doe
Ashley N Stenseth
Chavez T Foller
Arvin G Saylors
IdCountryDate
1000Brazil2024-05-31
1001India2024-06-21
1002United Kingdom2024-06-02
1003Germany2024-06-22
1004France2024-05-27
1005Russia2024-06-21
1006Spain2024-05-30
1007Canada2024-06-02
1008Brazil2024-06-06
1009France2024-05-26
1010Argentina2024-06-08
1011India2024-06-12
1012United Kingdom2024-06-02
1013Canada2024-06-21
1014Russia2024-05-25
1015Brazil2024-06-19
1016Australia2024-05-26
1017India2024-06-10
1018Canada2024-05-28
1019Australia2024-06-06
1020Russia2024-06-14
1021Italy2024-06-14
1022Australia2024-06-18
1023Japan2024-06-17
1024Japan2024-06-16
1025Argentina2024-06-07
1026France2024-06-10
1027Germany2024-05-28
1028Russia2024-06-17
1029United Kingdom2024-06-21
1030Canada2024-06-09
1031Brazil2024-05-28
1032Australia2024-06-16
1033Brazil2024-06-01
1034Italy2024-05-29
1035France2024-06-18
1036Australia2024-06-02
1037Brazil2024-06-11
1038Germany2024-06-19
1039United Kingdom2024-06-17
1040Argentina2024-06-22
1041France2024-06-02
1042United Kingdom2024-06-16
1043Germany2024-05-25
1044Russia2024-06-11
1045Italy2024-06-15
1046Canada2024-06-03
1047Spain2024-06-07
1048United Kingdom2024-06-22
1049Argentina2024-06-17

On-Demand Data

NameIdCountryDate
Leon X Flosi1000Australia2024-06-21
Kadeem D Tollner1001Russia2024-06-10
Adams C Ruta1002Italy2024-06-12
Ricardo N Stockham1003Russia2024-05-25
Izzy A Stockham1004Spain2024-06-02
Chavez T Royster1005Brazil2024-06-03
Darci E Morasca1006India2024-06-14
Claire C Perin1007United Kingdom2024-06-17
James A Tollner1008United Kingdom2024-06-20
Isabel F Maclead1009France2024-06-02
Darci R Flosi1010Brazil2024-06-04
Jones R Marrier1011Russia2024-05-28
Greenwood D Dilliard1012Germany2024-06-21
Salvatore Q Kolmetz1013Italy2024-05-29
Misaki R Albares1014Spain2024-06-14
Salvatore G Tollner1015Italy2024-06-17
Tony C Slusarski1016Spain2024-06-18
Jeanfrancois H Campain1017Canada2024-06-01
Arvin U Briddick1018Russia2024-05-31
Faith G Gillian1019Japan2024-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia X IturbideItalyBernardo Dominic PROPOSAL
Isabel B BologniaAustraliaAmy Elsner PROPOSAL
Octavia P TollnerFranceOnyama Limba UNQUALIFIED
Tony R BriddickJapanIoni Bowcher PROPOSAL
Antonio P AmigonJapanIoni Bowcher RENEWAL
Kadeem B StockhamItalyBernardo Dominic NEGOTIATION
Arvin V AlbaresSpainOnyama Limba NEGOTIATION
Faith G SaylorsFranceXuxue Feng NEGOTIATION
Smith P FigeroaAustraliaOnyama Limba NEGOTIATION
Nicolas I BriddickJapanBernardo Dominic PROPOSAL
Johnson V FlosiSpainIvan Magalhaes RENEWAL
Emily B InouyeSpainElwin Sharvill QUALIFIED
Jefferson U GarufiAustraliaXuxue Feng RENEWAL
Isabel L VocelkaGermanyAsiya Javayant NEGOTIATION
Kadeem C GlickSpainAsiya Javayant RENEWAL
Darci Z AlbaresUnited KingdomOnyama Limba NEW
Maisha T PaprockiRussiaStephen Shaw UNQUALIFIED
Mayumi A RimAustraliaOnyama Limba NEW
Izzy F WieserGermanyIvan Magalhaes RENEWAL
Morrow O GillianFranceOnyama Limba QUALIFIED
Izzy R ShinkoAustraliaElwin Sharvill NEGOTIATION
Juan E CampainCanadaXuxue Feng NEW
Aruna S CampainFranceAsiya Javayant NEGOTIATION
Costa W MarrierJapanStephen Shaw UNQUALIFIED
Jeanfrancois F RulapaughArgentinaAsiya Javayant PROPOSAL
Ivar Y RutaItalyElwin Sharvill RENEWAL
Ivar B BriddickRussiaAmy Elsner NEGOTIATION
Nicolas R FerenczSpainOnyama Limba UNQUALIFIED
Clifford T TollnerItalyOnyama Limba NEW
Adams M FlosiAustraliaAsiya Javayant NEW
Maisha P SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois G DarakjyBrazilXuxue Feng PROPOSAL
Jennifer O KolmetzArgentinaIvan Magalhaes RENEWAL
Tony K OstroskyArgentinaBernardo Dominic PROPOSAL
Aruna D PaprockiAustraliaAnna Fali QUALIFIED
Juan M OldroydSpainAsiya Javayant UNQUALIFIED
Antonio U MacleadItalyOnyama Limba RENEWAL
Wickens N NickaBrazilIvan Magalhaes QUALIFIED
James F NickaSpainOnyama Limba RENEWAL
Misaki M KolmetzCanadaStephen Shaw 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>