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
Aditya N DarakjyFranceIoni Bowcher NEGOTIATION
Aditya T InouyeArgentinaAnna Fali PROPOSAL
Claire W OldroydSpainIoni Bowcher QUALIFIED
Sinclair M CaudyArgentinaXuxue Feng PROPOSAL
Faith L PoquetteRussiaBernardo Dominic UNQUALIFIED
Stacey A MaletSpainStephen Shaw PROPOSAL
Clifford V KolmetzFranceOnyama Limba QUALIFIED
Jennifer Y NickaArgentinaAnna Fali NEW
Alejandro G FigeroaGermanyAsiya Javayant NEW
Munro R WaycottFranceOnyama Limba NEW
James P DoeArgentinaAsiya Javayant UNQUALIFIED
Stacey W DarakjyAustraliaStephen Shaw NEGOTIATION
Mujtaba N PoquetteAustraliaBernardo Dominic PROPOSAL
Aditya G DoeIndiaAmy Elsner UNQUALIFIED
Ivar D ButtBrazilAmy Elsner UNQUALIFIED
Claire M DoeSpainXuxue Feng UNQUALIFIED
Nicolas U BologniaBrazilIoni Bowcher NEW
Stacey L CaldareraItalyAmy Elsner PROPOSAL
Aruna S SaylorsArgentinaStephen Shaw QUALIFIED
Silvio U SlusarskiAustraliaIvan Magalhaes PROPOSAL
Mujtaba P FollerIndiaElwin Sharvill NEW
Tony I MarrierJapanElwin Sharvill QUALIFIED
Emily F DarakjyGermanyIoni Bowcher NEGOTIATION
Deepesh S FerenczArgentinaXuxue Feng QUALIFIED
Stacey C FerenczItalyIoni Bowcher QUALIFIED
Clifford P InouyeUnited KingdomAnna Fali RENEWAL
Johnson S GillianRussiaStephen Shaw NEGOTIATION
Maisha F TollnerGermanyBernardo Dominic UNQUALIFIED
Isabel B StensethJapanBernardo Dominic PROPOSAL
David G BriddickGermanyElwin Sharvill PROPOSAL
Maisha E BologniaItalyIoni Bowcher QUALIFIED
Leon Q GlickUnited KingdomXuxue Feng NEGOTIATION
Leja G NestleIndiaElwin Sharvill QUALIFIED
Maisha K OldroydItalyIoni Bowcher RENEWAL
Salvatore Y KolmetzGermanyAnna Fali NEGOTIATION
Octavia M MacleadArgentinaIvan Magalhaes UNQUALIFIED
Kaitlin Z GarufiSpainBernardo Dominic PROPOSAL
Sinclair X GlickItalyBernardo Dominic QUALIFIED
Ivar W AmigonFranceIvan Magalhaes QUALIFIED
Francesco P RutaArgentinaOnyama Limba RENEWAL
Aika O FollerArgentinaXuxue Feng NEGOTIATION
Tony U RoysterUnited KingdomIoni Bowcher RENEWAL
Deepesh N BowleyIndiaElwin Sharvill PROPOSAL
Sinclair V MacleadCanadaIoni Bowcher UNQUALIFIED
Murillo B PaprockiFranceAnna Fali QUALIFIED
Aruna P MarrierUnited KingdomXuxue Feng NEGOTIATION
Ashley V OldroydGermanyBernardo Dominic NEW
Morrow T CaudyIndiaAmy Elsner NEGOTIATION
Smith A FlosiIndiaXuxue Feng NEW
Stacey O IturbideBrazilStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer U WaycottItalyAsiya Javayant NEGOTIATION
Greenwood O FigeroaBrazilStephen Shaw PROPOSAL
Alejandro I ButtIndiaOnyama Limba UNQUALIFIED
Aika Z WhobreyFranceBernardo Dominic NEGOTIATION
Tony K SaylorsCanadaStephen Shaw NEGOTIATION
Murillo Z FigeroaSpainAsiya Javayant PROPOSAL
Mayumi F FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Munro R ShinkoIndiaIvan Magalhaes QUALIFIED
Morrow Y MarrierGermanyIoni Bowcher QUALIFIED
Johnson F StockhamArgentinaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco D IturbideUnited Kingdom2024-05-14Buckley Miller Wright NEW71Amy Elsner
1001Emily C BriddickGermany2024-05-22Benton, John B Jr NEGOTIATION36Onyama Limba
1002Faith Q RutaGermany2024-05-30Rousseaux, Michael Esq UNQUALIFIED58Bernardo Dominic
1003Claire D OldroydAustralia2024-05-21Chapman, Ross E Esq PROPOSAL58Xuxue Feng
1004Cody B BowleyGermany2024-05-25King, Christopher A Esq QUALIFIED96Amy Elsner
1005Darci X GarufiCanada2024-05-28Morlong Associates RENEWAL99Onyama Limba
1006David D OstroskyUnited Kingdom2024-05-25Chemel, James L Cpa PROPOSAL64Elwin Sharvill
1007Costa U CampainIndia2024-05-19King, Christopher A Esq RENEWAL98Asiya Javayant
1008Cody X PaprockiIndia2024-05-28Rousseaux, Michael Esq PROPOSAL25Asiya Javayant
1009Chavez W NestleSpain2024-05-20Morlong Associates NEW40Asiya Javayant
1010Maisha Z GarufiBrazil2024-06-02Commercial Press NEW37Onyama Limba
1011Mujtaba F PaprockiIndia2024-05-27Truhlar And Truhlar Attys PROPOSAL81Anna Fali
1012Munro R CampainUnited Kingdom2024-05-31Chanay, Jeffrey A Esq RENEWAL52Onyama Limba
1013Julie C CaudyGermany2024-06-01Dorl, James J Esq NEGOTIATION19Ivan Magalhaes
1014Emily L CampainAustralia2024-05-25Feltz Printing Service NEGOTIATION30Onyama Limba
1015Misaki K VocelkaSpain2024-05-28Chemel, James L Cpa UNQUALIFIED51Asiya Javayant
1016Emily J DarakjyArgentina2024-05-10Chapman, Ross E Esq PROPOSAL68Bernardo Dominic
1017Munro K InouyeCanada2024-05-13Chemel, James L Cpa PROPOSAL5Asiya Javayant
1018Leja I SaylorsItaly2024-05-08Commercial Press UNQUALIFIED85Ivan Magalhaes
1019Stacey B ChuiBrazil2024-06-01Truhlar And Truhlar Attys UNQUALIFIED20Elwin Sharvill
1020Leon O SergiJapan2024-05-17Truhlar And Truhlar Attys UNQUALIFIED24Ioni Bowcher
1021Nicolas U CampainArgentina2024-05-20Chapman, Ross E Esq PROPOSAL26Amy Elsner
1022Izzy N IturbideRussia2024-05-18Chemel, James L Cpa PROPOSAL8Ivan Magalhaes
1023Stacey Y ButtSpain2024-05-07Rangoni Of Florence PROPOSAL5Stephen Shaw
1024Leja K DoeCanada2024-06-03Feiner Bros QUALIFIED19Asiya Javayant
1025Maria X MorascaBrazil2024-05-21Chanay, Jeffrey A Esq UNQUALIFIED48Asiya Javayant
1026Darci L PoquetteFrance2024-05-16Printing Dimensions UNQUALIFIED77Onyama Limba
1027Cody N RoysterAustralia2024-06-02Morlong Associates UNQUALIFIED38Xuxue Feng
1028Aruna J TollnerIndia2024-05-07Buckley Miller Wright QUALIFIED91Ioni Bowcher
1029Faith C MaletFrance2024-05-08Rousseaux, Michael Esq RENEWAL82Asiya Javayant
1030Rodrigues H FigeroaItaly2024-05-31Buckley Miller Wright QUALIFIED45Stephen Shaw
1031Aditya K OldroydBrazil2024-05-18Printing Dimensions RENEWAL73Anna Fali
1032Stacey D IturbideItaly2024-05-24Benton, John B Jr PROPOSAL9Elwin Sharvill
1033Jefferson E AlbaresGermany2024-05-26Rangoni Of Florence UNQUALIFIED64Stephen Shaw
1034Salvatore R TollnerUnited Kingdom2024-05-17Buckley Miller Wright NEW72Elwin Sharvill
1035Jennifer X WhobreyArgentina2024-05-14King, Christopher A Esq NEW31Onyama Limba
1036Silvio V SergiCanada2024-05-31Printing Dimensions PROPOSAL58Stephen Shaw
1037Rodrigues T SaylorsArgentina2024-05-16Buckley Miller Wright PROPOSAL58Elwin Sharvill
1038David V GillianIndia2024-05-20Rangoni Of Florence NEW91Onyama Limba
1039Juan O FlosiUnited Kingdom2024-06-01King, Christopher A Esq RENEWAL41Stephen Shaw
1040Rodrigues O GlickUnited Kingdom2024-05-12Chemel, James L Cpa QUALIFIED38Stephen Shaw
1041Salvatore G DilliardAustralia2024-05-11Printing Dimensions UNQUALIFIED32Onyama Limba
1042Ashley F ShinkoJapan2024-05-28Buckley Miller Wright UNQUALIFIED62Xuxue Feng
1043Octavia R FigeroaFrance2024-05-17Chanay, Jeffrey A Esq RENEWAL12Amy Elsner
1044Salvatore V ButtJapan2024-05-19Chemel, James L Cpa QUALIFIED92Xuxue Feng
1045Ivar E NestleArgentina2024-05-13Morlong Associates QUALIFIED95Asiya Javayant
1046Aditya A WhobreyArgentina2024-05-08Buckley Miller Wright NEGOTIATION2Xuxue Feng
1047Tony V SergiUnited Kingdom2024-05-13King, Christopher A Esq UNQUALIFIED18Ivan Magalhaes
1048Jones F FlosiItaly2024-05-11Chapman, Ross E Esq QUALIFIED44Bernardo Dominic
1049Clifford N InouyeIndia2024-05-30Commercial Press QUALIFIED76Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aditya O VenereItalyStephen Shaw QUALIFIED
Aika O GillianAustraliaStephen Shaw NEW
Greenwood D MarrierIndiaXuxue Feng UNQUALIFIED
Murillo G MarrierArgentinaElwin Sharvill PROPOSAL
Stacey U NestleSpainIvan Magalhaes NEGOTIATION
Adams M KuskoAustraliaAmy Elsner NEW
Juan V AmigonArgentinaStephen Shaw NEW
Rodrigues S SlusarskiFranceStephen Shaw QUALIFIED
Jennifer T BriddickArgentinaAsiya Javayant QUALIFIED
Claire U GauchoCanadaBernardo Dominic RENEWAL
Francesco X SlusarskiJapanElwin Sharvill PROPOSAL
Julie Z TollnerCanadaBernardo Dominic RENEWAL
Isabel B PaprockiRussiaElwin Sharvill NEW
Murillo R FigeroaSpainIvan Magalhaes NEW
Arvin S OldroydAustraliaStephen Shaw UNQUALIFIED
Octavia T SchemmerAustraliaAsiya Javayant NEGOTIATION
Tony V NestleAustraliaIvan Magalhaes NEGOTIATION
Munro G FlosiArgentinaAsiya Javayant RENEWAL
Francesco S ButtAustraliaIoni Bowcher RENEWAL
Leon I FigeroaSpainStephen Shaw UNQUALIFIED
Adams A PaprockiIndiaIvan Magalhaes NEW
Deepesh G FollerCanadaIvan Magalhaes RENEWAL
Aruna N GauchoUnited KingdomBernardo Dominic QUALIFIED
Jones B IturbideJapanIoni Bowcher PROPOSAL
Mayumi C DoeUnited KingdomAmy Elsner PROPOSAL
Wickens Y DarakjyAustraliaBernardo Dominic NEGOTIATION
Aika K TollnerGermanyOnyama Limba PROPOSAL
Jefferson Q DoeCanadaElwin Sharvill QUALIFIED
Ivar W BologniaBrazilAmy Elsner QUALIFIED
Costa F PerinAustraliaIvan Magalhaes NEGOTIATION
Sinclair Z OstroskyUnited KingdomAnna Fali RENEWAL
Chavez K ChuiSpainStephen Shaw QUALIFIED
Maisha Y DarakjyFranceIvan Magalhaes NEGOTIATION
Murillo X DilliardSpainAsiya Javayant UNQUALIFIED
Claire X BriddickUnited KingdomOnyama Limba PROPOSAL
Tony Z GlickSpainAmy Elsner PROPOSAL
Izzy O FlosiItalyOnyama Limba UNQUALIFIED
Jefferson I SergiIndiaAsiya Javayant NEGOTIATION
Jennifer U SchemmerRussiaOnyama Limba QUALIFIED
Darci M WieserJapanStephen Shaw NEW
Claire Q OstroskyCanadaElwin Sharvill UNQUALIFIED
Mayumi T PerinSpainStephen Shaw RENEWAL
Emily P NestleItalyIvan Magalhaes RENEWAL
Costa P RutaUnited KingdomStephen Shaw QUALIFIED
Wickens K SaylorsBrazilAsiya Javayant NEGOTIATION
Costa F MaletRussiaAsiya Javayant NEW
Izzy W CaldareraUnited KingdomBernardo Dominic PROPOSAL
Mujtaba D StockhamAustraliaXuxue Feng RENEWAL
Leon X AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Maisha W FollerArgentinaOnyama Limba NEGOTIATION
Frozen Columns
Name
Francesco H Rulapaugh
Leon Q Dilliard
Ricardo V Bowley
Faith K Poquette
Mayumi I Sergi
Ivar P Inouye
Deepesh I Bolognia
Ricardo G Poquette
Morrow T Gaucho
Smith I Butt
Cody L Kusko
Octavia S Marrier
Wickens Z Schemmer
Jefferson M Malet
Greenwood R Bowley
Mujtaba F Caldarera
Kaitlin O Rulapaugh
Leon X Foller
Misaki O Kusko
Maria K Venere
Ashley V Nestle
Wickens P Morasca
Johnson J Venere
Wickens K Garufi
Claire C Caudy
David R Saylors
Jefferson N Kusko
Misaki Z Sergi
Mayumi J Butt
Ivar A Stenseth
Jeanfrancois Z Dilliard
Emily A Garufi
Aruna Y Shinko
Johnson J Amigon
Adams F Poquette
Salvatore E Bowley
Jones L Albares
Ivar Q Stenseth
Sinclair A Perin
Leon G Figeroa
David W Gillian
Juan G Glick
Cody O Butt
Julie P Kusko
Wickens P Stockham
Jefferson J Maclead
Jeanfrancois Q Morasca
Ashley O Oldroyd
Wickens R Ruta
Tony J Glick
IdCountryDate
1000United Kingdom2024-05-06
1001Spain2024-05-05
1002Japan2024-05-05
1003Germany2024-05-30
1004Spain2024-06-02
1005Canada2024-05-24
1006Spain2024-05-10
1007Argentina2024-05-18
1008France2024-05-16
1009Australia2024-05-20
1010Russia2024-06-01
1011Russia2024-05-21
1012Argentina2024-05-15
1013Russia2024-05-22
1014Australia2024-05-14
1015France2024-05-15
1016Spain2024-05-16
1017Russia2024-05-16
1018Russia2024-05-05
1019France2024-05-28
1020India2024-05-07
1021France2024-05-30
1022Australia2024-05-10
1023United Kingdom2024-05-29
1024France2024-05-11
1025Argentina2024-05-11
1026Japan2024-06-01
1027Australia2024-05-27
1028Russia2024-05-14
1029Germany2024-05-12
1030Brazil2024-05-31
1031Argentina2024-05-10
1032France2024-05-26
1033Brazil2024-05-10
1034India2024-05-18
1035Russia2024-05-28
1036Germany2024-05-19
1037Russia2024-05-31
1038Australia2024-05-23
1039Japan2024-05-18
1040Canada2024-05-09
1041France2024-05-26
1042United Kingdom2024-06-02
1043Australia2024-05-16
1044France2024-05-20
1045Russia2024-05-29
1046Australia2024-05-27
1047India2024-06-03
1048Germany2024-05-16
1049Australia2024-05-09

On-Demand Data

NameIdCountryDate
Darci Q Slusarski1000Germany2024-05-07
Jefferson B Glick1001Spain2024-05-14
Faith M Dilliard1002Spain2024-05-21
Smith A Amigon1003Japan2024-05-24
Antonio M Poquette1004Australia2024-06-03
Morrow N Perin1005Italy2024-06-02
Alejandro H Inouye1006France2024-05-29
Munro Z Bowley1007Germany2024-05-25
Aruna R Foller1008France2024-05-29
Maisha B Ferencz1009Argentina2024-05-19
Aditya J Perin1010Brazil2024-05-20
Clifford D Figeroa1011Russia2024-05-09
Murillo S Gillian1012United Kingdom2024-05-17
Tony X Inouye1013India2024-05-06
Izzy D Marrier1014Italy2024-05-20
Jones U Malet1015Germany2024-05-12
Ivar J Sergi1016Germany2024-06-02
Jennifer O Figeroa1017Argentina2024-05-09
Greenwood Y Kusko1018Russia2024-05-27
Ashley Q Iturbide1019France2024-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia L FigeroaBrazilStephen Shaw NEGOTIATION
Morrow M KuskoItalyBernardo Dominic NEW
Wickens V DilliardSpainElwin Sharvill UNQUALIFIED
Arvin H CampainCanadaXuxue Feng NEW
Isabel J ChuiUnited KingdomAmy Elsner RENEWAL
Juan X AlbaresGermanyXuxue Feng NEW
Nicolas I WieserBrazilAnna Fali NEW
Jones L PaprockiArgentinaOnyama Limba RENEWAL
Maria Z TollnerRussiaIvan Magalhaes NEW
Silvio X KuskoItalyAnna Fali NEGOTIATION
Rodrigues A AlbaresCanadaAnna Fali NEGOTIATION
Maisha M ChuiSpainAnna Fali RENEWAL
Ashley Q TollnerArgentinaAnna Fali UNQUALIFIED
Tony O WaycottSpainOnyama Limba NEW
Rodrigues N KuskoGermanyAnna Fali RENEWAL
Smith D OstroskyJapanElwin Sharvill UNQUALIFIED
Aditya G ButtItalyAsiya Javayant NEGOTIATION
David A WaycottSpainIoni Bowcher QUALIFIED
Mujtaba Q DilliardRussiaAnna Fali UNQUALIFIED
Wickens Z CampainUnited KingdomStephen Shaw UNQUALIFIED
Jones W MaletBrazilBernardo Dominic NEGOTIATION
Julie L DilliardSpainIoni Bowcher NEW
Johnson I RulapaughCanadaIvan Magalhaes QUALIFIED
Munro K ChuiSpainAnna Fali PROPOSAL
Maria I CaldareraJapanBernardo Dominic QUALIFIED
Juan P PoquetteJapanAmy Elsner RENEWAL
David U BriddickRussiaStephen Shaw RENEWAL
Sinclair W FerenczBrazilAmy Elsner NEGOTIATION
Arvin M KuskoFranceStephen Shaw UNQUALIFIED
Jones P SlusarskiBrazilBernardo Dominic NEGOTIATION
Aika O GauchoSpainBernardo Dominic NEW
Tony E FigeroaUnited KingdomAsiya Javayant RENEWAL
Kaitlin Q MorascaItalyIvan Magalhaes UNQUALIFIED
Chavez H AlbaresBrazilStephen Shaw UNQUALIFIED
Johnson E VocelkaRussiaAnna Fali RENEWAL
Greenwood X StensethUnited KingdomOnyama Limba QUALIFIED
Salvatore Y NestleSpainAsiya Javayant PROPOSAL
Julie W BowleyGermanyAmy Elsner PROPOSAL
Sinclair O BriddickUnited KingdomXuxue Feng PROPOSAL
Murillo T VocelkaArgentinaIvan Magalhaes RENEWAL

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