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 C FlosiItalyBernardo Dominic NEW
Rodrigues Q PaprockiGermanyIoni Bowcher PROPOSAL
Tony X SaylorsUnited KingdomAmy Elsner RENEWAL
Francesco K CampainCanadaAmy Elsner PROPOSAL
Leja P ButtRussiaAmy Elsner NEW
Chavez H GillianFranceOnyama Limba UNQUALIFIED
Nicolas B IturbideCanadaAsiya Javayant NEGOTIATION
Maria Q VocelkaRussiaElwin Sharvill QUALIFIED
Aika I BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Smith Q MarrierCanadaAsiya Javayant PROPOSAL
Munro R MaletFranceBernardo Dominic RENEWAL
Silvio A SergiUnited KingdomIoni Bowcher QUALIFIED
Julie M WieserFranceOnyama Limba RENEWAL
Maria N CaudyUnited KingdomXuxue Feng QUALIFIED
Misaki M SchemmerSpainIvan Magalhaes UNQUALIFIED
Julie O IturbideArgentinaAnna Fali QUALIFIED
Antonio X MacleadCanadaIoni Bowcher UNQUALIFIED
Morrow K ShinkoRussiaIvan Magalhaes PROPOSAL
Aruna Q CaldareraCanadaElwin Sharvill NEGOTIATION
Kaitlin O RimArgentinaAnna Fali UNQUALIFIED
Juan C BowleyJapanIoni Bowcher NEGOTIATION
Chavez K VocelkaItalyBernardo Dominic UNQUALIFIED
Clifford I WaycottRussiaBernardo Dominic QUALIFIED
Jefferson C CaldareraUnited KingdomXuxue Feng PROPOSAL
Morrow D GillianRussiaIvan Magalhaes RENEWAL
David Z FigeroaCanadaElwin Sharvill UNQUALIFIED
Maria J WaycottArgentinaElwin Sharvill QUALIFIED
Stacey T VenereJapanBernardo Dominic UNQUALIFIED
Ivar B GlickBrazilAmy Elsner RENEWAL
Leja F IturbideBrazilAnna Fali NEW
Jefferson P RoysterItalyXuxue Feng RENEWAL
Nicolas D NickaRussiaAnna Fali NEGOTIATION
Emily R ChuiArgentinaBernardo Dominic NEW
Nicolas X GlickFranceXuxue Feng PROPOSAL
Rodrigues W MorascaAustraliaIvan Magalhaes NEGOTIATION
Nicolas S SaylorsSpainIvan Magalhaes UNQUALIFIED
Smith N DoeFranceIoni Bowcher UNQUALIFIED
Morrow Q FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia R KolmetzJapanBernardo Dominic UNQUALIFIED
Ivar V WieserJapanBernardo Dominic NEGOTIATION
Antonio U WieserJapanIoni Bowcher PROPOSAL
Isabel X AmigonCanadaElwin Sharvill NEGOTIATION
Ivar F ChuiCanadaAmy Elsner RENEWAL
David D SchemmerIndiaIvan Magalhaes NEGOTIATION
Cody F MorascaBrazilXuxue Feng NEW
Antonio T MarrierJapanIoni Bowcher NEGOTIATION
Johnson Q DarakjyIndiaElwin Sharvill RENEWAL
Darci V OstroskyFranceOnyama Limba RENEWAL
Ricardo B CaldareraSpainIvan Magalhaes PROPOSAL
Aditya L ButtUnited KingdomStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna V PerinUnited KingdomIoni Bowcher RENEWAL
Aika H OldroydRussiaAsiya Javayant QUALIFIED
Munro A ShinkoUnited KingdomXuxue Feng QUALIFIED
Kaitlin G BowleyItalyIoni Bowcher QUALIFIED
Salvatore V DarakjySpainIvan Magalhaes QUALIFIED
Aruna I MaletArgentinaIoni Bowcher QUALIFIED
Isabel K FigeroaItalyAsiya Javayant QUALIFIED
Arvin E VenereCanadaElwin Sharvill NEW
Cody A SchemmerUnited KingdomIvan Magalhaes RENEWAL
Francesco D PoquetteArgentinaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco O ButtIndia2024-06-06Dorl, James J Esq UNQUALIFIED80Xuxue Feng
1001Tony P MorascaRussia2024-06-02Feltz Printing Service UNQUALIFIED42Ioni Bowcher
1002Stacey F BowleyGermany2024-06-02Feiner Bros RENEWAL72Asiya Javayant
1003Kaitlin L WhobreyRussia2024-06-16Benton, John B Jr QUALIFIED99Bernardo Dominic
1004Julie C VenereSpain2024-06-21Printing Dimensions RENEWAL58Asiya Javayant
1005Morrow S SchemmerGermany2024-05-23Feltz Printing Service PROPOSAL25Stephen Shaw
1006Emily K InouyeIndia2024-06-03Buckley Miller Wright QUALIFIED42Ioni Bowcher
1007Faith G MaletAustralia2024-06-10Chanay, Jeffrey A Esq PROPOSAL59Ivan Magalhaes
1008Juan Q IturbideJapan2024-06-07Printing Dimensions PROPOSAL93Ioni Bowcher
1009Jones S PaprockiIndia2024-06-13Rousseaux, Michael Esq NEW96Elwin Sharvill
1010Kadeem R IturbideIndia2024-06-08King, Christopher A Esq NEGOTIATION93Onyama Limba
1011Mayumi D PoquetteBrazil2024-05-27Feiner Bros NEW97Elwin Sharvill
1012Mujtaba M WieserArgentina2024-06-11Commercial Press PROPOSAL19Stephen Shaw
1013Rodrigues L PerinSpain2024-06-07Chanay, Jeffrey A Esq NEGOTIATION22Bernardo Dominic
1014Salvatore C DilliardCanada2024-06-15Chemel, James L Cpa QUALIFIED18Bernardo Dominic
1015Ivar E FigeroaGermany2024-05-24Commercial Press NEGOTIATION48Asiya Javayant
1016Claire G GarufiJapan2024-05-31Chanay, Jeffrey A Esq QUALIFIED91Asiya Javayant
1017Aditya J ChuiItaly2024-06-14Feltz Printing Service NEW93Anna Fali
1018Kadeem M MaletAustralia2024-05-26Benton, John B Jr NEW4Anna Fali
1019Arvin R TollnerSpain2024-06-10Feiner Bros RENEWAL35Xuxue Feng
1020Leja H StockhamAustralia2024-05-24Printing Dimensions QUALIFIED4Ioni Bowcher
1021Jefferson Q GillianAustralia2024-06-21Chemel, James L Cpa RENEWAL74Bernardo Dominic
1022Kadeem M SaylorsItaly2024-06-06Truhlar And Truhlar Attys UNQUALIFIED45Elwin Sharvill
1023Claire X ButtItaly2024-06-17Benton, John B Jr RENEWAL21Ivan Magalhaes
1024Leja Z OldroydBrazil2024-06-01Rangoni Of Florence NEW77Ivan Magalhaes
1025Cody U MacleadIndia2024-06-01Dorl, James J Esq UNQUALIFIED74Amy Elsner
1026Clifford Z KuskoBrazil2024-05-30Rangoni Of Florence NEW87Onyama Limba
1027Arvin K CampainFrance2024-06-21Commercial Press NEGOTIATION87Asiya Javayant
1028Izzy M GillianIndia2024-06-10Benton, John B Jr QUALIFIED47Amy Elsner
1029Isabel A SaylorsSpain2024-06-13Truhlar And Truhlar Attys RENEWAL66Xuxue Feng
1030Clifford L FlosiCanada2024-05-27Printing Dimensions RENEWAL65Onyama Limba
1031Octavia E StensethUnited Kingdom2024-06-17Chanay, Jeffrey A Esq RENEWAL90Asiya Javayant
1032Deepesh D MaletIndia2024-06-05King, Christopher A Esq PROPOSAL25Onyama Limba
1033Ricardo D MaletItaly2024-06-18Chanay, Jeffrey A Esq QUALIFIED71Anna Fali
1034Alejandro B CaudyJapan2024-06-10Chapman, Ross E Esq QUALIFIED72Stephen Shaw
1035Murillo L GarufiCanada2024-06-19Feiner Bros QUALIFIED50Amy Elsner
1036Greenwood M DilliardIndia2024-06-02Rousseaux, Michael Esq QUALIFIED86Ioni Bowcher
1037Antonio L NickaBrazil2024-05-30Morlong Associates UNQUALIFIED96Amy Elsner
1038Francesco L DarakjySpain2024-06-20Rousseaux, Michael Esq UNQUALIFIED61Asiya Javayant
1039Aditya E FerenczJapan2024-06-17Commercial Press UNQUALIFIED57Ivan Magalhaes
1040Izzy E TollnerGermany2024-06-04Chemel, James L Cpa PROPOSAL53Xuxue Feng
1041Darci L RimJapan2024-05-29Printing Dimensions QUALIFIED81Xuxue Feng
1042Greenwood L MaletGermany2024-06-20Commercial Press PROPOSAL36Bernardo Dominic
1043Chavez H GillianJapan2024-06-03Truhlar And Truhlar Attys NEW18Anna Fali
1044Cody B MorascaFrance2024-06-17Buckley Miller Wright RENEWAL66Ioni Bowcher
1045Ricardo H MaletFrance2024-06-18Chemel, James L Cpa QUALIFIED60Elwin Sharvill
1046Greenwood L WaycottBrazil2024-06-07Rangoni Of Florence PROPOSAL33Amy Elsner
1047Jennifer H ShinkoRussia2024-06-12Printing Dimensions NEGOTIATION73Amy Elsner
1048Aruna G KuskoUnited Kingdom2024-06-13Rousseaux, Michael Esq QUALIFIED7Anna Fali
1049Salvatore B PaprockiRussia2024-06-02Commercial Press QUALIFIED59Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aika B GlickBrazilOnyama Limba QUALIFIED
Izzy O CaldareraItalyXuxue Feng QUALIFIED
Johnson B ButtCanadaIoni Bowcher RENEWAL
Kadeem S DarakjyFranceElwin Sharvill RENEWAL
Leja M SchemmerArgentinaStephen Shaw QUALIFIED
Chavez J WieserBrazilIvan Magalhaes NEW
Leon C WieserFranceOnyama Limba NEW
Sinclair M WhobreyArgentinaAsiya Javayant QUALIFIED
Faith Z DilliardJapanIvan Magalhaes NEGOTIATION
Emily M GauchoBrazilAsiya Javayant NEW
Salvatore Q WieserBrazilIoni Bowcher QUALIFIED
Clifford N WieserArgentinaAnna Fali PROPOSAL
Aika R BowleyUnited KingdomIoni Bowcher PROPOSAL
Aditya L SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Arvin T PoquetteGermanyAsiya Javayant NEGOTIATION
Jefferson O KolmetzItalyXuxue Feng RENEWAL
Rodrigues H BologniaCanadaIvan Magalhaes PROPOSAL
Rodrigues U SchemmerBrazilIvan Magalhaes RENEWAL
Nicolas H KolmetzCanadaAmy Elsner RENEWAL
Rodrigues U OldroydItalyOnyama Limba RENEWAL
Greenwood V StensethArgentinaAsiya Javayant UNQUALIFIED
Jennifer A KolmetzUnited KingdomBernardo Dominic PROPOSAL
Salvatore Z RulapaughCanadaAnna Fali UNQUALIFIED
Ashley C RulapaughIndiaIvan Magalhaes RENEWAL
Francesco W WieserBrazilAsiya Javayant UNQUALIFIED
Isabel T AmigonArgentinaIoni Bowcher NEW
Jennifer J CaldareraBrazilElwin Sharvill NEGOTIATION
Costa B RimSpainIoni Bowcher NEGOTIATION
James S MacleadFranceBernardo Dominic PROPOSAL
Misaki Q SaylorsCanadaAmy Elsner QUALIFIED
Ivar S RutaSpainAnna Fali RENEWAL
Silvio A VenereItalyAsiya Javayant PROPOSAL
Faith Q NestleSpainXuxue Feng QUALIFIED
Izzy I WhobreyIndiaOnyama Limba NEGOTIATION
Deepesh P SchemmerIndiaAnna Fali NEW
Jefferson R FlosiJapanAmy Elsner NEW
Jefferson N StensethItalyBernardo Dominic UNQUALIFIED
Jennifer U MorascaBrazilAnna Fali QUALIFIED
Deepesh P FerenczCanadaElwin Sharvill NEW
Misaki A MaletItalyBernardo Dominic NEW
Izzy N MaletAustraliaAsiya Javayant QUALIFIED
Murillo Q KolmetzGermanyAnna Fali PROPOSAL
Leon Y SchemmerFranceAsiya Javayant UNQUALIFIED
Costa M KolmetzBrazilOnyama Limba RENEWAL
Claire R BowleyFranceIoni Bowcher RENEWAL
Adams K TollnerRussiaIoni Bowcher PROPOSAL
David A RoysterGermanyXuxue Feng NEGOTIATION
Jennifer Z FigeroaArgentinaXuxue Feng UNQUALIFIED
Greenwood S DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Silvio M FerenczBrazilXuxue Feng NEGOTIATION
Frozen Columns
Name
Emily R Albares
Deepesh H Poquette
Wickens Y Inouye
Rodrigues Q Poquette
Mayumi J Rulapaugh
Adams M Poquette
Morrow G Maclead
Aika W Doe
Claire X Whobrey
Jefferson G Nicka
Leja Y Morasca
Sinclair G Ferencz
Darci T Venere
David L Maclead
Nicolas Q Stenseth
Aditya N Ferencz
James F Chui
David Q Malet
Isabel Q Nicka
Octavia N Iturbide
Kadeem H Amigon
Francesco S Morasca
Aika J Rim
Julie V Dilliard
Mayumi R Malet
Murillo Q Albares
Aika Z Kolmetz
Munro G Schemmer
Aruna Y Whobrey
Leja P Albares
Jefferson X Morasca
Kadeem Q Tollner
Antonio I Malet
Alejandro M Wieser
Murillo S Gaucho
Johnson L Waycott
Kaitlin R Vocelka
Kaitlin S Stenseth
Salvatore F Sergi
Clifford R Maclead
Leon W Perin
Mujtaba F Venere
Faith B Saylors
Jefferson O Malet
Smith R Ostrosky
Wickens E Whobrey
Deepesh F Ostrosky
Misaki F Nestle
Mujtaba Y Ostrosky
Emily I Flosi
IdCountryDate
1000United Kingdom2024-06-12
1001Brazil2024-06-02
1002Spain2024-06-19
1003United Kingdom2024-06-21
1004Canada2024-06-03
1005France2024-05-30
1006United Kingdom2024-06-14
1007Germany2024-06-19
1008Canada2024-05-27
1009Russia2024-06-14
1010Australia2024-06-10
1011Russia2024-06-14
1012Germany2024-06-06
1013United Kingdom2024-05-29
1014Russia2024-05-26
1015Spain2024-06-20
1016Germany2024-06-21
1017Germany2024-06-03
1018Spain2024-06-14
1019Italy2024-06-06
1020Italy2024-06-15
1021Canada2024-06-02
1022Australia2024-05-26
1023Brazil2024-05-23
1024Russia2024-05-26
1025India2024-05-27
1026United Kingdom2024-05-29
1027Russia2024-05-24
1028Italy2024-05-28
1029Brazil2024-06-13
1030Canada2024-06-19
1031India2024-05-23
1032Germany2024-06-13
1033France2024-05-28
1034United Kingdom2024-06-20
1035France2024-05-24
1036Italy2024-06-09
1037France2024-05-25
1038Spain2024-05-24
1039Japan2024-05-27
1040France2024-06-09
1041Germany2024-06-20
1042Australia2024-06-12
1043Germany2024-05-28
1044Italy2024-06-15
1045Germany2024-06-21
1046India2024-06-05
1047Spain2024-06-12
1048Spain2024-06-06
1049Australia2024-06-04

On-Demand Data

NameIdCountryDate
Leja M Campain1000Australia2024-06-19
Deepesh G Malet1001Russia2024-05-31
Smith J Maclead1002Italy2024-06-13
Salvatore S Gaucho1003France2024-06-01
Julie Y Tollner1004Japan2024-05-23
Ashley C Slusarski1005India2024-06-17
Jefferson I Inouye1006Russia2024-06-03
Claire Z Dilliard1007Germany2024-05-31
Antonio O Stockham1008Japan2024-06-15
Adams T Caldarera1009France2024-05-23
Arvin Z Doe1010France2024-05-24
Clifford E Malet1011Russia2024-06-19
Maisha H Ferencz1012Japan2024-06-05
Morrow I Ferencz1013Italy2024-05-28
Jones E Ostrosky1014France2024-06-15
Aruna G Bowley1015Argentina2024-06-11
James Q Tollner1016Brazil2024-06-10
Wickens G Maclead1017Canada2024-05-25
Jefferson D Briddick1018Italy2024-05-30
Emily K Butt1019Russia2024-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Q NestleArgentinaBernardo Dominic QUALIFIED
Claire U ButtSpainIvan Magalhaes UNQUALIFIED
Aika F RimJapanIvan Magalhaes NEW
Aika B GarufiRussiaBernardo Dominic PROPOSAL
Octavia D GlickRussiaAmy Elsner QUALIFIED
Mujtaba K PaprockiRussiaAsiya Javayant NEW
Aditya C GauchoItalyXuxue Feng QUALIFIED
Kaitlin S GillianItalyAnna Fali PROPOSAL
Smith W OldroydArgentinaElwin Sharvill NEW
Antonio M MacleadGermanyElwin Sharvill NEW
Salvatore M FlosiItalyBernardo Dominic UNQUALIFIED
David P KolmetzCanadaXuxue Feng UNQUALIFIED
Johnson B VenereJapanBernardo Dominic RENEWAL
Leon G BowleyItalyXuxue Feng NEW
Aruna Z NickaItalyAsiya Javayant QUALIFIED
Francesco L NickaItalyXuxue Feng RENEWAL
Salvatore K FollerIndiaXuxue Feng QUALIFIED
Octavia I FerenczAustraliaXuxue Feng UNQUALIFIED
Aika E AmigonBrazilOnyama Limba UNQUALIFIED
Jones F MorascaFranceBernardo Dominic NEGOTIATION
Francesco H SergiArgentinaStephen Shaw NEGOTIATION
Jennifer U AlbaresItalyAnna Fali NEGOTIATION
Munro D CaldareraSpainStephen Shaw RENEWAL
Murillo M RutaItalyStephen Shaw RENEWAL
Murillo Z NickaRussiaIvan Magalhaes NEGOTIATION
Octavia P KuskoSpainIoni Bowcher NEGOTIATION
Sinclair F IturbideRussiaAnna Fali NEW
Jeanfrancois O WaycottIndiaOnyama Limba NEGOTIATION
Antonio U InouyeJapanOnyama Limba NEW
Wickens E FlosiArgentinaAnna Fali RENEWAL
Octavia T CaldareraAustraliaIvan Magalhaes NEGOTIATION
Salvatore R FerenczAustraliaXuxue Feng NEGOTIATION
Rodrigues U TollnerRussiaIvan Magalhaes RENEWAL
Aika K OldroydRussiaIvan Magalhaes PROPOSAL
Isabel Y MarrierBrazilXuxue Feng RENEWAL
Julie G DilliardSpainXuxue Feng NEGOTIATION
Ivar M WhobreyCanadaStephen Shaw RENEWAL
Maria D OstroskyIndiaIvan Magalhaes UNQUALIFIED
Octavia R KuskoUnited KingdomIvan Magalhaes RENEWAL
Maisha O DarakjyBrazilAsiya Javayant 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>