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
Salvatore J ChuiGermanyOnyama Limba NEW
James V FollerArgentinaOnyama Limba PROPOSAL
Wickens T MacleadSpainIvan Magalhaes QUALIFIED
Cody Q CaudyFranceAnna Fali PROPOSAL
Ivar U BowleyArgentinaElwin Sharvill NEW
Darci U AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Clifford R AmigonFranceAsiya Javayant RENEWAL
Stacey P GauchoGermanyBernardo Dominic PROPOSAL
Greenwood O KuskoRussiaBernardo Dominic NEW
Clifford D BologniaSpainIoni Bowcher NEGOTIATION
Darci L WaycottIndiaIvan Magalhaes NEW
Cody Y SlusarskiAustraliaIvan Magalhaes RENEWAL
Morrow Q ButtItalyIoni Bowcher QUALIFIED
Silvio S WhobreyJapanOnyama Limba QUALIFIED
Murillo B WieserAustraliaAmy Elsner NEW
Aditya V ChuiIndiaBernardo Dominic QUALIFIED
Misaki O CaldareraItalyAmy Elsner NEW
Adams Z RulapaughIndiaAmy Elsner UNQUALIFIED
Jennifer X ShinkoRussiaIvan Magalhaes NEW
Jones I MacleadSpainAsiya Javayant RENEWAL
David J WhobreyItalyBernardo Dominic PROPOSAL
James L MaletJapanIvan Magalhaes QUALIFIED
Julie R BowleyArgentinaBernardo Dominic NEW
Mayumi I NestleIndiaIvan Magalhaes QUALIFIED
Mujtaba I SergiBrazilBernardo Dominic RENEWAL
Jones P FlosiAustraliaIoni Bowcher UNQUALIFIED
Greenwood I CampainItalyElwin Sharvill PROPOSAL
Munro I FerenczItalyAnna Fali UNQUALIFIED
Johnson I MacleadRussiaOnyama Limba UNQUALIFIED
Mujtaba D ShinkoItalyOnyama Limba UNQUALIFIED
Julie K PaprockiCanadaAmy Elsner QUALIFIED
Emily I GarufiIndiaIvan Magalhaes PROPOSAL
Izzy H IturbideBrazilElwin Sharvill PROPOSAL
James U CaudyBrazilBernardo Dominic PROPOSAL
Octavia X MacleadItalyAsiya Javayant RENEWAL
Silvio C SergiBrazilStephen Shaw NEW
Mujtaba Q KuskoJapanAsiya Javayant NEGOTIATION
Maisha N RimIndiaIvan Magalhaes UNQUALIFIED
Ashley N PaprockiSpainBernardo Dominic QUALIFIED
Nicolas I NickaGermanyOnyama Limba PROPOSAL
Ricardo H SergiIndiaIvan Magalhaes NEGOTIATION
Aruna U SlusarskiRussiaOnyama Limba RENEWAL
Julie Y AmigonBrazilAmy Elsner PROPOSAL
Greenwood B DilliardRussiaOnyama Limba NEW
Isabel Z AlbaresUnited KingdomBernardo Dominic NEGOTIATION
Leon P CaldareraGermanyIvan Magalhaes NEW
Julie H RoysterCanadaAsiya Javayant RENEWAL
Aditya A RutaItalyOnyama Limba NEW
Darci N SlusarskiAustraliaAmy Elsner QUALIFIED
Mayumi C WaycottArgentinaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson N VenereItalyAmy Elsner NEW
Octavia O CaudyFranceElwin Sharvill QUALIFIED
Isabel Z DilliardIndiaOnyama Limba QUALIFIED
Tony H DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Tony G AlbaresRussiaAsiya Javayant RENEWAL
Mujtaba T BowleyUnited KingdomStephen Shaw NEGOTIATION
Emily H GillianUnited KingdomIvan Magalhaes RENEWAL
Alejandro H NickaUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba M KolmetzSpainIoni Bowcher NEGOTIATION
Murillo R PerinGermanyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones B SchemmerJapan2024-06-24Benton, John B Jr QUALIFIED88Amy Elsner
1001Mujtaba H CampainJapan2024-05-30King, Christopher A Esq UNQUALIFIED77Ioni Bowcher
1002Tony I CaudyRussia2024-06-15Commercial Press PROPOSAL15Xuxue Feng
1003Juan H GarufiFrance2024-06-10Benton, John B Jr QUALIFIED2Xuxue Feng
1004Ashley T SergiCanada2024-06-03Commercial Press PROPOSAL20Ioni Bowcher
1005Mujtaba H GauchoIndia2024-06-21King, Christopher A Esq NEW91Ioni Bowcher
1006Faith Q DilliardUnited Kingdom2024-06-04Rangoni Of Florence QUALIFIED43Stephen Shaw
1007Aika Q SlusarskiJapan2024-06-03Chemel, James L Cpa QUALIFIED70Bernardo Dominic
1008Chavez O WaycottCanada2024-06-01Feltz Printing Service QUALIFIED25Onyama Limba
1009Leja Z InouyeBrazil2024-06-13Truhlar And Truhlar Attys NEGOTIATION20Ivan Magalhaes
1010Francesco C ShinkoUnited Kingdom2024-06-12Morlong Associates RENEWAL6Onyama Limba
1011Kaitlin R GillianFrance2024-06-20Rangoni Of Florence QUALIFIED42Anna Fali
1012Juan M FlosiBrazil2024-06-08Chapman, Ross E Esq QUALIFIED44Bernardo Dominic
1013Nicolas E PerinGermany2024-06-13Buckley Miller Wright UNQUALIFIED13Xuxue Feng
1014Adams C OstroskyGermany2024-05-27Rousseaux, Michael Esq NEGOTIATION83Anna Fali
1015Izzy A GillianArgentina2024-06-17Chemel, James L Cpa UNQUALIFIED6Ivan Magalhaes
1016Claire W IturbideRussia2024-06-21Dorl, James J Esq NEGOTIATION85Asiya Javayant
1017Maisha J NickaCanada2024-06-02Rangoni Of Florence PROPOSAL9Ivan Magalhaes
1018Clifford Q WaycottAustralia2024-06-17Commercial Press QUALIFIED13Ioni Bowcher
1019Julie W VenereItaly2024-05-29Dorl, James J Esq RENEWAL26Bernardo Dominic
1020Adams H WaycottSpain2024-06-10Chemel, James L Cpa NEGOTIATION88Stephen Shaw
1021Kaitlin R OstroskySpain2024-06-16King, Christopher A Esq UNQUALIFIED9Amy Elsner
1022Ivar H MorascaArgentina2024-06-03Commercial Press NEW69Elwin Sharvill
1023Greenwood H DarakjyRussia2024-05-31Morlong Associates NEGOTIATION73Bernardo Dominic
1024Mujtaba Z DarakjyItaly2024-06-13Chapman, Ross E Esq QUALIFIED33Onyama Limba
1025Julie T ChuiCanada2024-06-20Morlong Associates QUALIFIED52Elwin Sharvill
1026Kadeem E RoysterGermany2024-06-07Feltz Printing Service NEW5Amy Elsner
1027Ivar I DoeJapan2024-06-24King, Christopher A Esq UNQUALIFIED56Asiya Javayant
1028Morrow Y AlbaresUnited Kingdom2024-06-10Printing Dimensions NEGOTIATION88Xuxue Feng
1029Julie H BriddickBrazil2024-06-23Benton, John B Jr PROPOSAL40Anna Fali
1030Adams P CaudyFrance2024-06-07Printing Dimensions RENEWAL69Onyama Limba
1031Jefferson C CampainArgentina2024-06-11Buckley Miller Wright RENEWAL10Ioni Bowcher
1032Aruna S WhobreyFrance2024-06-12King, Christopher A Esq QUALIFIED21Amy Elsner
1033Deepesh S RulapaughBrazil2024-06-06Morlong Associates UNQUALIFIED62Xuxue Feng
1034Greenwood M CaldareraBrazil2024-06-20Buckley Miller Wright NEW88Asiya Javayant
1035Adams F WieserJapan2024-06-15Feiner Bros NEW39Onyama Limba
1036Jeanfrancois P FigeroaRussia2024-05-31Feltz Printing Service NEGOTIATION90Onyama Limba
1037Clifford A StensethArgentina2024-06-22Commercial Press PROPOSAL81Ioni Bowcher
1038Emily U PerinBrazil2024-06-08Chanay, Jeffrey A Esq NEGOTIATION68Stephen Shaw
1039Rodrigues Y IturbideAustralia2024-06-21Chanay, Jeffrey A Esq UNQUALIFIED3Anna Fali
1040Costa X MaletUnited Kingdom2024-06-08Chanay, Jeffrey A Esq QUALIFIED45Bernardo Dominic
1041Wickens B InouyeCanada2024-06-14Feltz Printing Service NEGOTIATION8Ivan Magalhaes
1042Alejandro U RimArgentina2024-06-10Rousseaux, Michael Esq NEGOTIATION65Ivan Magalhaes
1043Ashley J OldroydSpain2024-06-19Rangoni Of Florence UNQUALIFIED62Bernardo Dominic
1044Jeanfrancois I DilliardRussia2024-06-03Commercial Press RENEWAL33Asiya Javayant
1045Mayumi P NestleArgentina2024-06-23Chapman, Ross E Esq PROPOSAL59Stephen Shaw
1046Clifford G IturbideCanada2024-06-06Printing Dimensions NEGOTIATION37Amy Elsner
1047Ricardo T MaletArgentina2024-05-30Morlong Associates QUALIFIED24Onyama Limba
1048Rodrigues X IturbideUnited Kingdom2024-06-07Dorl, James J Esq RENEWAL46Ioni Bowcher
1049Isabel U MorascaGermany2024-06-17Printing Dimensions UNQUALIFIED28Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aika N CaldareraItalyIvan Magalhaes NEGOTIATION
Tony F WieserItalyIoni Bowcher RENEWAL
Wickens D NickaFranceElwin Sharvill RENEWAL
Kadeem V WaycottRussiaBernardo Dominic RENEWAL
Morrow G DilliardRussiaElwin Sharvill NEW
Stacey T MorascaRussiaElwin Sharvill UNQUALIFIED
Stacey A VocelkaJapanStephen Shaw NEW
James O BriddickAustraliaBernardo Dominic PROPOSAL
Kaitlin Q PerinFranceAmy Elsner NEGOTIATION
Johnson O BowleyBrazilAnna Fali NEGOTIATION
Arvin J ChuiGermanyIvan Magalhaes UNQUALIFIED
David J VocelkaBrazilAsiya Javayant PROPOSAL
Jennifer D GarufiArgentinaXuxue Feng QUALIFIED
David B FlosiSpainAnna Fali QUALIFIED
Deepesh I GauchoSpainBernardo Dominic NEW
Aruna P DilliardIndiaAsiya Javayant NEW
Izzy E StensethSpainIoni Bowcher QUALIFIED
Claire C OstroskyIndiaStephen Shaw UNQUALIFIED
Wickens P MaletBrazilIoni Bowcher NEGOTIATION
Leon I CaudyFranceIvan Magalhaes NEGOTIATION
Antonio L KolmetzGermanyStephen Shaw RENEWAL
Leja T FerenczAustraliaIvan Magalhaes UNQUALIFIED
Clifford T PaprockiUnited KingdomStephen Shaw UNQUALIFIED
Cody N BowleySpainAnna Fali NEW
Jones Q WieserJapanAmy Elsner QUALIFIED
Tony E MorascaBrazilAnna Fali RENEWAL
Jeanfrancois G CaudyJapanBernardo Dominic QUALIFIED
Murillo F IturbideAustraliaStephen Shaw RENEWAL
Izzy H GillianArgentinaBernardo Dominic NEGOTIATION
Morrow D AlbaresRussiaIoni Bowcher NEGOTIATION
Aruna X MarrierRussiaAnna Fali RENEWAL
Morrow B BologniaGermanyOnyama Limba QUALIFIED
Jennifer Y KuskoArgentinaStephen Shaw NEW
Aruna Y BologniaIndiaIvan Magalhaes NEGOTIATION
James X CaudyAustraliaIvan Magalhaes UNQUALIFIED
Isabel N RulapaughGermanyIvan Magalhaes NEW
Salvatore G WieserAustraliaAnna Fali NEGOTIATION
Juan T BriddickGermanyAmy Elsner PROPOSAL
Leja U BowleyArgentinaBernardo Dominic UNQUALIFIED
Octavia H CaldareraGermanyIvan Magalhaes QUALIFIED
Murillo V KuskoFranceXuxue Feng NEW
Stacey F RoysterRussiaStephen Shaw UNQUALIFIED
Juan Z ShinkoFranceAsiya Javayant RENEWAL
Izzy A BowleyFranceAsiya Javayant NEGOTIATION
Ivar F OstroskyIndiaStephen Shaw NEW
Murillo S PaprockiRussiaIvan Magalhaes PROPOSAL
Jeanfrancois X MaletCanadaOnyama Limba NEGOTIATION
Stacey T OldroydBrazilIvan Magalhaes PROPOSAL
Antonio J RutaFranceIoni Bowcher PROPOSAL
Leja B GillianCanadaStephen Shaw PROPOSAL
Frozen Columns
Name
Jennifer B Ruta
Silvio D Iturbide
Rodrigues T Poquette
Leon V Morasca
Jeanfrancois V Flosi
Jones Q Garufi
Faith M Wieser
Deepesh D Malet
Kadeem B Gillian
Arvin R Morasca
Misaki W Ferencz
Aditya G Gaucho
Clifford W Ostrosky
David T Flosi
Chavez K Schemmer
Jeanfrancois E Chui
Tony R Perin
Tony T Gillian
Wickens E Venere
Salvatore R Waycott
Morrow C Campain
Greenwood Z Dilliard
Julie X Maclead
Ricardo D Schemmer
Leja B Rim
Nicolas T Maclead
Salvatore W Venere
Murillo Y Rim
Leja S Venere
Smith L Malet
Kaitlin G Sergi
Costa M Vocelka
Emily Y Tollner
Maisha H Garufi
Nicolas M Whobrey
Darci U Sergi
Cody R Tollner
Tony M Tollner
Adams Z Tollner
Alejandro U Nestle
Juan E Nicka
Jeanfrancois T Dilliard
Ashley L Bowley
Maisha N Butt
Francesco U Ostrosky
Claire O Campain
Jennifer B Nicka
Greenwood V Albares
Greenwood K Doe
Salvatore Z Flosi
IdCountryDate
1000Canada2024-06-16
1001Argentina2024-06-05
1002Japan2024-06-12
1003Russia2024-06-23
1004Brazil2024-05-29
1005Brazil2024-06-10
1006United Kingdom2024-06-21
1007France2024-06-24
1008Germany2024-06-06
1009United Kingdom2024-06-11
1010France2024-05-30
1011Italy2024-06-12
1012Australia2024-06-06
1013Germany2024-05-27
1014India2024-06-21
1015France2024-06-01
1016United Kingdom2024-06-12
1017Brazil2024-06-19
1018Argentina2024-06-02
1019Germany2024-06-17
1020Brazil2024-06-04
1021Japan2024-06-18
1022India2024-06-21
1023Russia2024-05-29
1024Germany2024-05-31
1025Russia2024-06-12
1026Australia2024-06-05
1027Germany2024-06-13
1028Australia2024-06-24
1029Germany2024-06-15
1030Brazil2024-06-21
1031Australia2024-06-07
1032Germany2024-05-28
1033Italy2024-06-14
1034Argentina2024-06-20
1035France2024-06-13
1036Australia2024-06-01
1037Canada2024-06-13
1038France2024-06-22
1039India2024-06-03
1040Russia2024-06-10
1041Italy2024-06-17
1042India2024-05-28
1043Canada2024-06-01
1044India2024-06-14
1045Canada2024-05-29
1046Italy2024-06-20
1047Germany2024-06-23
1048Spain2024-06-02
1049Canada2024-05-28

On-Demand Data

NameIdCountryDate
Greenwood Y Perin1000Germany2024-05-26
Claire W Darakjy1001Brazil2024-06-09
Mayumi D Darakjy1002Australia2024-05-30
Isabel V Schemmer1003Spain2024-06-11
Sinclair Z Slusarski1004Italy2024-06-06
Costa D Perin1005Germany2024-06-19
Aruna X Bolognia1006France2024-05-28
Maisha E Nicka1007Argentina2024-06-16
Kaitlin T Venere1008Italy2024-05-26
Murillo Y Nestle1009United Kingdom2024-06-24
Deepesh E Doe1010United Kingdom2024-06-07
Francesco S Doe1011Brazil2024-06-08
Jefferson P Nicka1012Canada2024-06-13
Aika G Saylors1013Canada2024-05-27
Wickens U Kusko1014France2024-06-01
Isabel G Saylors1015Italy2024-05-26
Murillo G Malet1016United Kingdom2024-06-06
David E Doe1017Canada2024-06-19
Ricardo K Schemmer1018Germany2024-06-04
Stacey B Caldarera1019Argentina2024-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio S PoquetteJapanElwin Sharvill NEW
Salvatore N FigeroaCanadaAmy Elsner UNQUALIFIED
Stacey W SchemmerUnited KingdomStephen Shaw RENEWAL
Antonio Z GarufiFranceIoni Bowcher QUALIFIED
Stacey P DilliardGermanyStephen Shaw UNQUALIFIED
Wickens P InouyeBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois X FigeroaGermanyXuxue Feng UNQUALIFIED
Jefferson K SergiSpainBernardo Dominic RENEWAL
Kadeem H BriddickCanadaElwin Sharvill NEGOTIATION
Aruna B AlbaresSpainIvan Magalhaes UNQUALIFIED
Kadeem A NickaArgentinaAmy Elsner NEW
Salvatore H WhobreyFranceOnyama Limba NEW
Chavez F StensethItalyIoni Bowcher QUALIFIED
Ashley H RulapaughIndiaStephen Shaw NEGOTIATION
Julie I FerenczAustraliaIoni Bowcher QUALIFIED
Sinclair P OstroskyAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois Q BowleyItalyIoni Bowcher NEGOTIATION
Aika T DoeItalyBernardo Dominic PROPOSAL
Cody G VocelkaCanadaStephen Shaw RENEWAL
Ashley Q RutaGermanyBernardo Dominic RENEWAL
James F BowleyAustraliaAmy Elsner NEGOTIATION
Jennifer R InouyeBrazilAnna Fali RENEWAL
Clifford Y DoeAustraliaStephen Shaw NEW
Mujtaba X BriddickUnited KingdomIvan Magalhaes NEGOTIATION
Leon O VenereUnited KingdomBernardo Dominic PROPOSAL
Leja L VocelkaAustraliaBernardo Dominic RENEWAL
Misaki I VenereItalyIvan Magalhaes PROPOSAL
Antonio D GlickItalyAnna Fali NEW
Maisha S BologniaSpainBernardo Dominic PROPOSAL
David P VocelkaJapanAsiya Javayant QUALIFIED
Jeanfrancois P RulapaughUnited KingdomXuxue Feng PROPOSAL
David T BowleySpainXuxue Feng RENEWAL
Wickens N WieserJapanElwin Sharvill PROPOSAL
Cody F KuskoSpainIvan Magalhaes UNQUALIFIED
Chavez F SaylorsIndiaIoni Bowcher UNQUALIFIED
Aika F NickaItalyStephen Shaw RENEWAL
Aika V WaycottCanadaIoni Bowcher UNQUALIFIED
Misaki Z BologniaItalyAmy Elsner UNQUALIFIED
Murillo L FlosiUnited KingdomElwin Sharvill NEGOTIATION
Chavez R ChuiUnited KingdomIoni Bowcher NEW

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