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
Greenwood P NickaIndiaAsiya Javayant NEW
Jones Z GillianAustraliaOnyama Limba NEGOTIATION
Maisha G MorascaAustraliaOnyama Limba UNQUALIFIED
Aika E SlusarskiSpainIvan Magalhaes NEGOTIATION
David A AlbaresItalyAnna Fali UNQUALIFIED
Costa P OldroydUnited KingdomIoni Bowcher RENEWAL
Deepesh S ChuiArgentinaStephen Shaw RENEWAL
Alejandro J BowleyItalyIvan Magalhaes RENEWAL
Kadeem D MarrierJapanBernardo Dominic QUALIFIED
Sinclair V OstroskyGermanyOnyama Limba UNQUALIFIED
Mayumi C ChuiCanadaOnyama Limba RENEWAL
Johnson Y KuskoFranceIoni Bowcher RENEWAL
Julie Q ChuiJapanStephen Shaw PROPOSAL
Silvio Y RimIndiaIvan Magalhaes QUALIFIED
Claire F SchemmerCanadaXuxue Feng NEGOTIATION
Jeanfrancois H TollnerIndiaAnna Fali QUALIFIED
Julie C KuskoCanadaIvan Magalhaes RENEWAL
Aditya A ButtFranceXuxue Feng UNQUALIFIED
Ricardo U SergiGermanyIvan Magalhaes UNQUALIFIED
Morrow C GauchoSpainAmy Elsner RENEWAL
Leon J NickaJapanIoni Bowcher PROPOSAL
Sinclair H RulapaughAustraliaAmy Elsner RENEWAL
Claire X MaletFranceBernardo Dominic RENEWAL
Stacey I CampainAustraliaIoni Bowcher PROPOSAL
Deepesh B SlusarskiItalyAnna Fali NEW
Stacey I KolmetzSpainIoni Bowcher NEGOTIATION
Mujtaba S ShinkoSpainIoni Bowcher PROPOSAL
Arvin P MarrierGermanyXuxue Feng PROPOSAL
Alejandro R IturbideItalyIvan Magalhaes RENEWAL
Stacey L ShinkoRussiaXuxue Feng NEGOTIATION
Maisha E RoysterUnited KingdomIvan Magalhaes RENEWAL
Misaki P PoquetteIndiaIvan Magalhaes RENEWAL
Arvin O BowleyBrazilElwin Sharvill NEW
Jeanfrancois G CaudyFranceIvan Magalhaes PROPOSAL
Maria A BologniaUnited KingdomOnyama Limba UNQUALIFIED
Morrow U OstroskyFranceIoni Bowcher RENEWAL
Chavez C RutaGermanyAmy Elsner PROPOSAL
David K SaylorsGermanyAmy Elsner NEGOTIATION
Rodrigues N DilliardUnited KingdomAsiya Javayant RENEWAL
Aika W DilliardArgentinaStephen Shaw NEW
Jennifer K WhobreyJapanIvan Magalhaes NEW
Juan M GillianFranceElwin Sharvill UNQUALIFIED
Arvin T GauchoArgentinaElwin Sharvill QUALIFIED
Nicolas Z NickaAustraliaIvan Magalhaes NEW
Juan O GarufiItalyBernardo Dominic UNQUALIFIED
David A PerinCanadaStephen Shaw PROPOSAL
Mayumi B VenereGermanyOnyama Limba QUALIFIED
Rodrigues J KuskoRussiaIvan Magalhaes QUALIFIED
Smith X GauchoJapanAnna Fali QUALIFIED
David X CaudyJapanIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas C WieserCanadaIoni Bowcher QUALIFIED
Ashley T RimCanadaIvan Magalhaes NEW
Mujtaba R RimGermanyAmy Elsner PROPOSAL
Wickens F PaprockiItalyStephen Shaw QUALIFIED
Salvatore R OldroydRussiaAmy Elsner NEW
Aditya A TollnerCanadaAsiya Javayant NEGOTIATION
Mayumi S InouyeArgentinaIvan Magalhaes NEW
Munro Q DoeRussiaOnyama Limba NEGOTIATION
Kadeem Y KuskoJapanIoni Bowcher QUALIFIED
Francesco B RoysterItalyStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley R WieserFrance2024-06-03Morlong Associates NEW39Xuxue Feng
1001Leon X RoysterBrazil2024-06-03Feltz Printing Service QUALIFIED20Xuxue Feng
1002Jefferson H StensethSpain2024-05-30Buckley Miller Wright PROPOSAL76Elwin Sharvill
1003Isabel R CaudyGermany2024-06-16King, Christopher A Esq PROPOSAL13Elwin Sharvill
1004Ricardo P AlbaresArgentina2024-05-22Commercial Press PROPOSAL1Ivan Magalhaes
1005Claire H BowleyArgentina2024-05-29Buckley Miller Wright PROPOSAL93Amy Elsner
1006Johnson H MacleadItaly2024-06-10Chemel, James L Cpa NEGOTIATION61Stephen Shaw
1007Francesco N StockhamUnited Kingdom2024-05-31Benton, John B Jr QUALIFIED93Onyama Limba
1008Izzy A SergiFrance2024-05-22Rangoni Of Florence UNQUALIFIED38Bernardo Dominic
1009Julie N CampainFrance2024-06-11Feiner Bros NEGOTIATION18Asiya Javayant
1010Arvin C RulapaughAustralia2024-05-30Chapman, Ross E Esq QUALIFIED19Xuxue Feng
1011Mujtaba X WieserRussia2024-06-01Morlong Associates NEGOTIATION43Stephen Shaw
1012Costa B MorascaArgentina2024-06-14Benton, John B Jr PROPOSAL16Ivan Magalhaes
1013Alejandro N ShinkoGermany2024-06-10King, Christopher A Esq NEW42Ivan Magalhaes
1014Octavia Z RulapaughSpain2024-06-01Commercial Press PROPOSAL44Xuxue Feng
1015Chavez X DarakjyJapan2024-05-30Feltz Printing Service QUALIFIED54Bernardo Dominic
1016Misaki T DarakjyGermany2024-06-13Benton, John B Jr RENEWAL93Elwin Sharvill
1017Ivar B BowleyArgentina2024-06-15Chemel, James L Cpa QUALIFIED3Asiya Javayant
1018Murillo S SchemmerItaly2024-05-21Chapman, Ross E Esq QUALIFIED77Bernardo Dominic
1019Wickens V SaylorsArgentina2024-05-27Buckley Miller Wright QUALIFIED27Onyama Limba
1020Adams I RulapaughUnited Kingdom2024-06-05Feiner Bros RENEWAL13Asiya Javayant
1021Maisha M PerinJapan2024-05-28Benton, John B Jr PROPOSAL89Ioni Bowcher
1022Kadeem S ButtFrance2024-05-20Benton, John B Jr NEW26Onyama Limba
1023Stacey D BowleyCanada2024-05-26Dorl, James J Esq QUALIFIED92Xuxue Feng
1024Deepesh L CaudyArgentina2024-06-01Chapman, Ross E Esq QUALIFIED22Elwin Sharvill
1025Jefferson F WaycottCanada2024-06-04Benton, John B Jr UNQUALIFIED2Ivan Magalhaes
1026Jones O KolmetzItaly2024-06-16Chemel, James L Cpa PROPOSAL98Anna Fali
1027Jefferson H WaycottFrance2024-06-03Printing Dimensions NEW51Stephen Shaw
1028Arvin S PaprockiFrance2024-06-18Buckley Miller Wright NEW94Elwin Sharvill
1029Maria V SlusarskiUnited Kingdom2024-05-21Dorl, James J Esq NEGOTIATION2Amy Elsner
1030Rodrigues C GlickGermany2024-06-09Truhlar And Truhlar Attys PROPOSAL87Anna Fali
1031Izzy P AmigonFrance2024-06-02Commercial Press QUALIFIED99Amy Elsner
1032Deepesh R MacleadSpain2024-05-24Feiner Bros NEW90Asiya Javayant
1033Kadeem L StensethRussia2024-05-23Feltz Printing Service NEW99Bernardo Dominic
1034Smith D OldroydBrazil2024-06-17Feiner Bros NEGOTIATION78Ioni Bowcher
1035Murillo D AmigonFrance2024-06-14Benton, John B Jr PROPOSAL98Bernardo Dominic
1036Clifford T IturbideJapan2024-05-29Rousseaux, Michael Esq QUALIFIED77Amy Elsner
1037Greenwood N AmigonArgentina2024-06-04King, Christopher A Esq QUALIFIED13Onyama Limba
1038Wickens D VenereSpain2024-05-25Buckley Miller Wright NEGOTIATION60Xuxue Feng
1039Rodrigues C GauchoJapan2024-05-24Rangoni Of Florence RENEWAL14Elwin Sharvill
1040Ricardo Q WaycottFrance2024-06-11Benton, John B Jr UNQUALIFIED48Onyama Limba
1041Leon N MorascaUnited Kingdom2024-06-18King, Christopher A Esq RENEWAL61Stephen Shaw
1042Mujtaba P OstroskyIndia2024-06-10Chemel, James L Cpa PROPOSAL89Amy Elsner
1043Morrow W TollnerCanada2024-05-23Morlong Associates NEGOTIATION64Onyama Limba
1044Antonio G StensethRussia2024-05-25Rousseaux, Michael Esq RENEWAL79Asiya Javayant
1045Arvin Z KuskoIndia2024-06-18Chapman, Ross E Esq NEGOTIATION65Bernardo Dominic
1046Antonio Y BologniaSpain2024-06-09Feltz Printing Service QUALIFIED54Amy Elsner
1047Aika K WaycottArgentina2024-05-26Chanay, Jeffrey A Esq NEGOTIATION38Xuxue Feng
1048Ricardo J CaudyUnited Kingdom2024-05-24Rangoni Of Florence QUALIFIED84Bernardo Dominic
1049Johnson O OstroskyItaly2024-06-14Chemel, James L Cpa QUALIFIED43Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
David U MaletFranceStephen Shaw UNQUALIFIED
Smith L SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Ricardo A FollerCanadaIvan Magalhaes QUALIFIED
Alejandro K FerenczCanadaIoni Bowcher NEW
Antonio A KolmetzAustraliaAnna Fali UNQUALIFIED
Smith K FollerGermanyBernardo Dominic NEGOTIATION
Julie B AlbaresAustraliaIoni Bowcher QUALIFIED
Cody O OldroydAustraliaAmy Elsner QUALIFIED
Adams B MaletGermanyIvan Magalhaes NEGOTIATION
Aditya O RutaItalyBernardo Dominic UNQUALIFIED
Sinclair C ButtJapanAmy Elsner NEGOTIATION
Claire H IturbideArgentinaAmy Elsner RENEWAL
Nicolas Y MaletCanadaStephen Shaw RENEWAL
Greenwood C FerenczBrazilBernardo Dominic RENEWAL
Cody V StensethCanadaXuxue Feng RENEWAL
Aika G ButtCanadaAnna Fali UNQUALIFIED
Ivar O MaletJapanIoni Bowcher PROPOSAL
Alejandro E RulapaughBrazilOnyama Limba UNQUALIFIED
Wickens Q BowleyArgentinaAmy Elsner RENEWAL
Salvatore T RutaRussiaElwin Sharvill NEGOTIATION
Adams O RimSpainBernardo Dominic RENEWAL
Alejandro U WieserBrazilXuxue Feng PROPOSAL
David O GarufiSpainXuxue Feng UNQUALIFIED
Sinclair Z RimFranceElwin Sharvill QUALIFIED
Johnson Z ButtSpainElwin Sharvill UNQUALIFIED
Aruna E CaudyItalyBernardo Dominic PROPOSAL
Antonio A WaycottItalyBernardo Dominic NEGOTIATION
Ivar L GauchoCanadaAsiya Javayant NEGOTIATION
Cody B RutaSpainXuxue Feng NEW
Julie T MaletGermanyStephen Shaw NEGOTIATION
Misaki D KuskoIndiaIvan Magalhaes NEGOTIATION
Costa N StockhamArgentinaIoni Bowcher RENEWAL
Ricardo I WhobreyRussiaStephen Shaw NEW
Silvio W GillianCanadaAmy Elsner UNQUALIFIED
Alejandro P FlosiJapanAmy Elsner NEGOTIATION
Silvio A SergiRussiaAsiya Javayant NEGOTIATION
Deepesh F OstroskyArgentinaXuxue Feng QUALIFIED
Jones C IturbideUnited KingdomStephen Shaw QUALIFIED
Ivar B GlickArgentinaStephen Shaw NEGOTIATION
Mujtaba W BologniaGermanyStephen Shaw NEGOTIATION
Munro M InouyeRussiaAsiya Javayant UNQUALIFIED
Darci T MarrierArgentinaElwin Sharvill PROPOSAL
Alejandro H NickaFranceIoni Bowcher NEW
Salvatore P InouyeCanadaXuxue Feng RENEWAL
Smith R StockhamCanadaElwin Sharvill NEW
Johnson I WhobreyBrazilBernardo Dominic NEGOTIATION
Stacey W RimFranceIvan Magalhaes RENEWAL
Stacey I IturbideBrazilAmy Elsner UNQUALIFIED
Greenwood I ChuiRussiaOnyama Limba PROPOSAL
Leon Y ButtItalyOnyama Limba QUALIFIED
Frozen Columns
Name
Maisha R Marrier
Salvatore B Ruta
Claire B Tollner
Darci K Gaucho
David F Albares
James M Ruta
Izzy B Caudy
Ashley H Stockham
Maria G Schemmer
Adams S Poquette
Julie J Ferencz
Arvin N Kolmetz
Jones U Whobrey
Juan Y Slusarski
David P Slusarski
Emily T Glick
Aditya H Marrier
Antonio Y Oldroyd
Ashley G Morasca
Mayumi C Iturbide
Jennifer H Poquette
Misaki R Chui
Mayumi E Garufi
Salvatore J Nicka
Munro O Inouye
Tony C Whobrey
Morrow N Royster
Francesco N Stockham
Deepesh X Gillian
Ivar H Oldroyd
Aika E Iturbide
Leon N Inouye
Misaki V Wieser
Morrow W Paprocki
Clifford J Amigon
Leja L Oldroyd
Rodrigues L Caldarera
Antonio H Malet
Mayumi P Foller
Arvin S Bowley
Antonio G Briddick
Tony N Royster
Clifford D Bolognia
Cody L Amigon
Munro H Poquette
Mujtaba N Venere
Jefferson N Ferencz
David N Ferencz
Leja O Caldarera
Kadeem N Doe
IdCountryDate
1000Argentina2024-06-18
1001Japan2024-06-04
1002France2024-06-11
1003Germany2024-06-03
1004Germany2024-06-02
1005Italy2024-06-16
1006Spain2024-06-03
1007Germany2024-05-31
1008Brazil2024-05-31
1009Brazil2024-06-01
1010Brazil2024-06-17
1011Canada2024-05-24
1012Argentina2024-06-12
1013Russia2024-06-11
1014Spain2024-06-05
1015Japan2024-05-28
1016Russia2024-05-22
1017Brazil2024-05-20
1018Australia2024-06-06
1019India2024-06-06
1020France2024-06-07
1021Brazil2024-06-11
1022Australia2024-05-30
1023Italy2024-06-11
1024Brazil2024-06-15
1025Italy2024-05-25
1026France2024-06-08
1027Canada2024-06-02
1028India2024-05-27
1029Brazil2024-05-31
1030Russia2024-06-13
1031Russia2024-05-30
1032Italy2024-05-23
1033France2024-06-14
1034Argentina2024-06-11
1035Canada2024-06-08
1036Canada2024-05-26
1037Spain2024-05-23
1038France2024-05-23
1039Germany2024-05-26
1040Brazil2024-06-02
1041India2024-06-13
1042Russia2024-05-22
1043India2024-06-07
1044United Kingdom2024-06-18
1045Argentina2024-06-09
1046Brazil2024-05-30
1047Germany2024-05-30
1048Australia2024-06-04
1049Argentina2024-06-18

On-Demand Data

NameIdCountryDate
Aditya A Royster1000France2024-06-18
Smith O Malet1001Spain2024-05-24
Izzy M Ostrosky1002India2024-05-23
Jennifer V Nestle1003France2024-06-08
Sinclair M Schemmer1004Argentina2024-06-11
Morrow B Gillian1005Brazil2024-05-21
David Q Nicka1006France2024-06-13
James X Sergi1007Russia2024-06-03
Costa W Darakjy1008Germany2024-06-02
Darci G Schemmer1009United Kingdom2024-06-11
Murillo E Tollner1010United Kingdom2024-05-27
Rodrigues U Iturbide1011Australia2024-06-02
Alejandro F Bolognia1012Spain2024-06-15
Chavez O Whobrey1013Japan2024-06-05
Costa C Iturbide1014Germany2024-06-16
Maisha F Saylors1015Japan2024-06-10
Leja H Sergi1016Australia2024-05-30
Stacey F Glick1017Russia2024-06-18
Mujtaba D Saylors1018United Kingdom2024-06-14
Jones R Iturbide1019Canada2024-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja R StockhamFranceBernardo Dominic RENEWAL
Leon H DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues S RulapaughIndiaAsiya Javayant UNQUALIFIED
Wickens K ShinkoIndiaStephen Shaw QUALIFIED
Ricardo U StockhamIndiaAnna Fali NEGOTIATION
Sinclair K BowleyRussiaAsiya Javayant QUALIFIED
Ivar K SchemmerGermanyIoni Bowcher NEW
Francesco O VocelkaRussiaStephen Shaw NEW
Darci F RulapaughUnited KingdomStephen Shaw PROPOSAL
Francesco Y GarufiBrazilOnyama Limba RENEWAL
Aruna T ChuiCanadaXuxue Feng RENEWAL
Murillo K GillianBrazilElwin Sharvill UNQUALIFIED
Stacey P FlosiAustraliaElwin Sharvill QUALIFIED
Wickens Z PerinSpainAmy Elsner NEW
Leon K WieserCanadaBernardo Dominic PROPOSAL
Octavia B BologniaUnited KingdomAmy Elsner NEGOTIATION
Tony C GlickCanadaBernardo Dominic PROPOSAL
Rodrigues Z PaprockiIndiaOnyama Limba NEW
Juan I VocelkaFranceAsiya Javayant PROPOSAL
Kadeem K CaldareraItalyOnyama Limba PROPOSAL
Mujtaba E RoysterArgentinaAsiya Javayant NEGOTIATION
Aruna S ButtBrazilAnna Fali RENEWAL
Salvatore G BowleyFranceXuxue Feng NEW
Johnson J BologniaJapanIoni Bowcher RENEWAL
Aruna B PoquetteArgentinaAnna Fali PROPOSAL
Misaki T IturbideItalyOnyama Limba RENEWAL
Cody Q StockhamItalyStephen Shaw PROPOSAL
Clifford Q MaletAustraliaIvan Magalhaes NEGOTIATION
Deepesh D RimGermanyStephen Shaw PROPOSAL
Francesco H DoeAustraliaBernardo Dominic NEW
Ricardo Y RulapaughSpainStephen Shaw UNQUALIFIED
James W NestleItalyBernardo Dominic PROPOSAL
Ricardo T SlusarskiSpainAnna Fali QUALIFIED
Adams H IturbideGermanyAnna Fali NEGOTIATION
Francesco W CaldareraJapanBernardo Dominic NEW
David O NestleUnited KingdomIoni Bowcher RENEWAL
Arvin F SlusarskiItalyIvan Magalhaes QUALIFIED
Isabel F NickaJapanElwin Sharvill NEW
Octavia E WhobreyIndiaAmy Elsner NEGOTIATION
Mayumi M StockhamFranceElwin Sharvill UNQUALIFIED

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