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
Francesco V GauchoUnited KingdomOnyama Limba NEGOTIATION
Aika L IturbideItalyXuxue Feng QUALIFIED
Jennifer V FerenczUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin H ChuiUnited KingdomAsiya Javayant QUALIFIED
Silvio R StensethUnited KingdomOnyama Limba NEW
Silvio I OldroydIndiaBernardo Dominic NEW
Aruna E SchemmerSpainAmy Elsner NEGOTIATION
Sinclair N BowleyCanadaIvan Magalhaes NEW
Johnson G SergiItalyAmy Elsner RENEWAL
Claire P FollerSpainAnna Fali UNQUALIFIED
Nicolas S GillianBrazilAmy Elsner NEGOTIATION
Chavez H VenereAustraliaAmy Elsner PROPOSAL
Claire B VenereRussiaIoni Bowcher NEW
Kaitlin T SergiGermanyIvan Magalhaes PROPOSAL
Maria B MarrierItalyIvan Magalhaes UNQUALIFIED
Salvatore V VenereItalyBernardo Dominic UNQUALIFIED
Isabel S SlusarskiItalyXuxue Feng QUALIFIED
Cody F TollnerArgentinaIvan Magalhaes NEGOTIATION
Murillo E KuskoAustraliaStephen Shaw PROPOSAL
Wickens J BowleyBrazilStephen Shaw QUALIFIED
Cody K TollnerSpainElwin Sharvill UNQUALIFIED
Chavez M VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Nicolas T ShinkoJapanXuxue Feng NEW
Wickens Y OldroydUnited KingdomAsiya Javayant NEGOTIATION
Costa O MacleadBrazilIvan Magalhaes NEGOTIATION
Claire Q KolmetzBrazilBernardo Dominic PROPOSAL
Emily U SergiJapanAmy Elsner UNQUALIFIED
Aika B RimJapanOnyama Limba UNQUALIFIED
Chavez I MaletItalyAsiya Javayant RENEWAL
Mayumi E StensethArgentinaXuxue Feng NEGOTIATION
Clifford G BologniaFranceOnyama Limba UNQUALIFIED
Juan L WieserCanadaIvan Magalhaes UNQUALIFIED
Jennifer I RulapaughFranceAsiya Javayant RENEWAL
Johnson E MaletIndiaElwin Sharvill NEGOTIATION
James F MaletSpainAmy Elsner NEW
Mayumi S SaylorsArgentinaOnyama Limba RENEWAL
Juan B VocelkaCanadaXuxue Feng NEGOTIATION
David E BriddickAustraliaOnyama Limba QUALIFIED
Salvatore C FigeroaGermanyAsiya Javayant PROPOSAL
Juan H SergiItalyAmy Elsner PROPOSAL
Francesco Z PerinSpainIoni Bowcher UNQUALIFIED
Aika G TollnerArgentinaBernardo Dominic PROPOSAL
Stacey C FlosiJapanElwin Sharvill NEGOTIATION
Francesco C RoysterUnited KingdomBernardo Dominic NEW
Arvin E TollnerRussiaIoni Bowcher NEGOTIATION
Emily A WieserItalyAmy Elsner UNQUALIFIED
Clifford Z ChuiSpainXuxue Feng UNQUALIFIED
Francesco F GauchoItalyOnyama Limba NEGOTIATION
Silvio W BowleyArgentinaIvan Magalhaes QUALIFIED
Adams M PaprockiIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika P GauchoBrazilElwin Sharvill PROPOSAL
Munro V BologniaIndiaXuxue Feng QUALIFIED
Nicolas A AlbaresFranceIvan Magalhaes NEGOTIATION
Aditya L RoysterUnited KingdomStephen Shaw QUALIFIED
Maria E DarakjyCanadaStephen Shaw UNQUALIFIED
Smith E ChuiUnited KingdomBernardo Dominic NEGOTIATION
Tony T PaprockiGermanyAnna Fali NEW
Emily T RulapaughItalyIoni Bowcher RENEWAL
Jennifer R SchemmerArgentinaBernardo Dominic RENEWAL
Sinclair L MarrierRussiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon H AmigonFrance2026-08-25Truhlar And Truhlar Attys RENEWAL7Anna Fali
1001Ashley E CampainSpain2026-08-19Feltz Printing Service UNQUALIFIED88Anna Fali
1002David Y RutaAustralia2026-08-08Benton, John B Jr NEGOTIATION6Asiya Javayant
1003Costa Q RoysterGermany2026-08-20Buckley Miller Wright PROPOSAL94Ioni Bowcher
1004Alejandro L NestleJapan2026-08-26Rousseaux, Michael Esq RENEWAL59Asiya Javayant
1005Mayumi S FerenczItaly2026-08-22Chanay, Jeffrey A Esq RENEWAL3Ioni Bowcher
1006Claire S WieserFrance2026-08-21Feiner Bros NEGOTIATION96Stephen Shaw
1007Silvio Q PerinFrance2026-08-26Chapman, Ross E Esq NEGOTIATION97Xuxue Feng
1008Izzy X GauchoSpain2026-08-22Chemel, James L Cpa RENEWAL11Amy Elsner
1009Kadeem W VenereAustralia2026-08-12King, Christopher A Esq PROPOSAL22Xuxue Feng
1010Wickens Q FollerGermany2026-08-25Truhlar And Truhlar Attys NEGOTIATION19Ioni Bowcher
1011Emily W KolmetzUnited Kingdom2026-08-27Rangoni Of Florence NEW35Ioni Bowcher
1012Francesco E PoquetteFrance2026-08-20Chapman, Ross E Esq NEGOTIATION28Elwin Sharvill
1013Ricardo J FlosiBrazil2026-08-08Printing Dimensions RENEWAL98Xuxue Feng
1014Smith L BowleyGermany2026-08-15Morlong Associates UNQUALIFIED53Asiya Javayant
1015Kadeem Q NickaBrazil2026-08-22Printing Dimensions RENEWAL33Xuxue Feng
1016Emily Z SchemmerIndia2026-08-07Printing Dimensions PROPOSAL24Elwin Sharvill
1017Wickens S MaletUnited Kingdom2026-08-31Chapman, Ross E Esq RENEWAL97Stephen Shaw
1018Ivar U DoeCanada2026-08-08Rangoni Of Florence QUALIFIED49Ivan Magalhaes
1019Silvio X CaudyBrazil2026-08-10Truhlar And Truhlar Attys UNQUALIFIED63Xuxue Feng
1020Costa K GillianGermany2026-08-03Rangoni Of Florence PROPOSAL27Ioni Bowcher
1021Morrow F SlusarskiIndia2026-08-27Feiner Bros NEW97Elwin Sharvill
1022Alejandro E CaldareraItaly2026-08-05Truhlar And Truhlar Attys NEW68Amy Elsner
1023Mujtaba E MarrierCanada2026-08-28Rousseaux, Michael Esq QUALIFIED87Asiya Javayant
1024Juan R ShinkoCanada2026-08-23Truhlar And Truhlar Attys NEGOTIATION20Asiya Javayant
1025Juan X OldroydUnited Kingdom2026-08-03Commercial Press UNQUALIFIED20Onyama Limba
1026Jones N MaletRussia2026-08-30Chemel, James L Cpa NEGOTIATION69Bernardo Dominic
1027Julie T TollnerRussia2026-08-14Printing Dimensions NEW96Xuxue Feng
1028Smith Y SergiGermany2026-09-01King, Christopher A Esq QUALIFIED1Ioni Bowcher
1029Sinclair R ShinkoIndia2026-08-06Rangoni Of Florence RENEWAL89Ioni Bowcher
1030Julie U VenereFrance2026-08-18Benton, John B Jr UNQUALIFIED52Elwin Sharvill
1031Julie F SchemmerFrance2026-08-17King, Christopher A Esq QUALIFIED66Amy Elsner
1032Juan U BologniaBrazil2026-08-14Buckley Miller Wright PROPOSAL24Ivan Magalhaes
1033Stacey A OstroskyIndia2026-08-21Rousseaux, Michael Esq NEGOTIATION51Ioni Bowcher
1034Nicolas Q PaprockiArgentina2026-08-20Feiner Bros NEW6Xuxue Feng
1035Murillo N MaletSpain2026-08-09Printing Dimensions RENEWAL93Ioni Bowcher
1036Octavia J NestleIndia2026-08-05Printing Dimensions NEW89Anna Fali
1037Greenwood S VocelkaFrance2026-08-27Buckley Miller Wright NEW37Stephen Shaw
1038Ivar E SlusarskiCanada2026-08-29Chapman, Ross E Esq UNQUALIFIED58Anna Fali
1039Aditya B SlusarskiGermany2026-08-17Buckley Miller Wright NEGOTIATION0Anna Fali
1040Leja A AmigonFrance2026-09-01King, Christopher A Esq NEW71Asiya Javayant
1041Jones V GauchoUnited Kingdom2026-08-25Rangoni Of Florence QUALIFIED43Anna Fali
1042Aika R CaudyArgentina2026-08-22Commercial Press NEW6Ioni Bowcher
1043Chavez C DoeUnited Kingdom2026-08-25Truhlar And Truhlar Attys NEGOTIATION9Xuxue Feng
1044Costa V WhobreyItaly2026-08-26Printing Dimensions PROPOSAL16Onyama Limba
1045Rodrigues N PaprockiCanada2026-08-03Commercial Press UNQUALIFIED98Ivan Magalhaes
1046Clifford Z WhobreyFrance2026-08-30Buckley Miller Wright UNQUALIFIED78Ioni Bowcher
1047Maria I FerenczCanada2026-08-21Morlong Associates NEW45Xuxue Feng
1048Chavez U FollerArgentina2026-08-05Morlong Associates UNQUALIFIED34Amy Elsner
1049Julie P CampainUnited Kingdom2026-08-27Chapman, Ross E Esq NEGOTIATION47Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aika P SlusarskiSpainIvan Magalhaes UNQUALIFIED
Aditya S RutaAustraliaBernardo Dominic NEW
Chavez M SchemmerSpainIoni Bowcher NEW
Isabel G CampainBrazilXuxue Feng RENEWAL
Leon A SaylorsItalyStephen Shaw NEW
Clifford F OstroskyUnited KingdomStephen Shaw RENEWAL
Antonio N MorascaUnited KingdomIvan Magalhaes QUALIFIED
Clifford F GlickBrazilOnyama Limba NEGOTIATION
Nicolas F FlosiJapanIvan Magalhaes RENEWAL
Leon B CampainGermanyAmy Elsner RENEWAL
Sinclair C SergiRussiaXuxue Feng NEGOTIATION
Darci G BowleyRussiaIvan Magalhaes RENEWAL
Claire R BriddickRussiaStephen Shaw NEGOTIATION
Maria W GauchoUnited KingdomAsiya Javayant NEGOTIATION
Darci O ShinkoUnited KingdomAsiya Javayant RENEWAL
Misaki O GauchoAustraliaOnyama Limba RENEWAL
Chavez Y RulapaughItalyIoni Bowcher QUALIFIED
Sinclair Q TollnerCanadaAnna Fali UNQUALIFIED
Maria E PerinGermanyStephen Shaw NEW
Maria Z MacleadCanadaStephen Shaw PROPOSAL
Deepesh F PaprockiIndiaOnyama Limba UNQUALIFIED
Kaitlin Q StockhamIndiaAmy Elsner NEGOTIATION
Kaitlin R GillianUnited KingdomStephen Shaw QUALIFIED
Faith B SergiSpainAsiya Javayant NEGOTIATION
Salvatore C OldroydBrazilElwin Sharvill PROPOSAL
Aditya K FollerBrazilAmy Elsner PROPOSAL
Greenwood R CampainGermanyOnyama Limba NEW
Johnson S GillianCanadaXuxue Feng NEGOTIATION
Arvin Q VocelkaRussiaAsiya Javayant NEW
Sinclair F GauchoCanadaAmy Elsner NEGOTIATION
Misaki P MaletCanadaAnna Fali NEGOTIATION
Jeanfrancois T MacleadSpainOnyama Limba PROPOSAL
Julie H BriddickJapanAmy Elsner RENEWAL
Antonio J SergiCanadaStephen Shaw QUALIFIED
Mayumi W MaletUnited KingdomBernardo Dominic NEW
Maisha A WhobreyFranceIvan Magalhaes NEW
Aruna E IturbideJapanIoni Bowcher QUALIFIED
Leon U NickaBrazilStephen Shaw NEGOTIATION
Kadeem L SaylorsGermanyIvan Magalhaes QUALIFIED
Mujtaba T FigeroaGermanyAsiya Javayant PROPOSAL
Nicolas T SaylorsBrazilAsiya Javayant UNQUALIFIED
Jefferson P ButtIndiaStephen Shaw QUALIFIED
Costa N WieserUnited KingdomAnna Fali PROPOSAL
Rodrigues A BowleyAustraliaAnna Fali QUALIFIED
Tony I GillianItalyBernardo Dominic PROPOSAL
Jeanfrancois Z BriddickUnited KingdomStephen Shaw UNQUALIFIED
Ivar V DarakjyBrazilAsiya Javayant RENEWAL
Tony U MaletJapanIvan Magalhaes QUALIFIED
Munro Y OldroydFranceBernardo Dominic UNQUALIFIED
Ashley N WaycottIndiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Aditya G Kusko
Emily W Maclead
Cody Y Poquette
Claire C Dilliard
Misaki O Flosi
Jones Y Poquette
Costa Y Perin
Nicolas H Whobrey
Clifford W Bowley
James P Iturbide
Darci H Caudy
Jennifer Q Stenseth
Morrow I Kusko
Mayumi X Dilliard
Mayumi Y Tollner
Misaki R Venere
Maisha K Gaucho
Maisha D Gaucho
Ashley P Shinko
Greenwood R Caldarera
Munro S Iturbide
Tony Q Ferencz
Mujtaba S Butt
Kaitlin X Dilliard
Isabel I Rulapaugh
Mujtaba F Ferencz
Clifford K Morasca
Emily D Sergi
Smith Y Bolognia
Munro Q Ruta
Rodrigues I Kolmetz
Octavia E Nicka
Stacey O Saylors
Rodrigues E Oldroyd
Juan Y Bolognia
Cody W Stockham
Claire I Royster
Adams K Ferencz
Aruna G Dilliard
Mayumi Y Nestle
Arvin I Iturbide
Clifford M Butt
Mayumi N Paprocki
Deepesh C Doe
Leon K Malet
Silvio P Royster
Aika D Perin
Julie P Flosi
Deepesh K Maclead
Salvatore G Flosi
IdCountryDate
1000Spain2026-08-18
1001France2026-08-11
1002Italy2026-08-04
1003Russia2026-08-28
1004Russia2026-08-26
1005Spain2026-08-13
1006Russia2026-08-25
1007Japan2026-08-12
1008Canada2026-08-27
1009Russia2026-08-06
1010Argentina2026-08-31
1011Germany2026-08-19
1012Argentina2026-08-21
1013Australia2026-08-25
1014Japan2026-08-29
1015Germany2026-08-12
1016Japan2026-08-11
1017Japan2026-08-30
1018Germany2026-08-24
1019Argentina2026-08-22
1020Spain2026-08-26
1021Russia2026-08-12
1022Argentina2026-08-23
1023Italy2026-08-06
1024Italy2026-08-06
1025Germany2026-08-21
1026Italy2026-08-15
1027Russia2026-08-20
1028India2026-08-29
1029Russia2026-08-30
1030United Kingdom2026-08-13
1031Brazil2026-08-03
1032India2026-08-12
1033Australia2026-08-31
1034Japan2026-08-22
1035Canada2026-08-31
1036Brazil2026-08-03
1037Germany2026-08-17
1038Brazil2026-08-28
1039France2026-08-15
1040Japan2026-08-11
1041Italy2026-08-28
1042United Kingdom2026-08-26
1043Spain2026-08-11
1044United Kingdom2026-08-05
1045Brazil2026-08-31
1046Germany2026-08-05
1047France2026-08-07
1048Italy2026-08-19
1049Brazil2026-09-01

On-Demand Data

NameIdCountryDate
Aika N Waycott1000United Kingdom2026-08-07
Sinclair Q Caudy1001United Kingdom2026-08-03
Izzy R Tollner1002Russia2026-08-15
Morrow O Marrier1003Argentina2026-08-10
Tony S Kusko1004Canada2026-08-15
Julie M Marrier1005Australia2026-08-09
Stacey R Vocelka1006Australia2026-08-26
Sinclair X Rulapaugh1007Germany2026-08-29
Francesco P Kusko1008United Kingdom2026-08-22
Nicolas N Maclead1009Canada2026-08-18
Alejandro Z Chui1010Brazil2026-08-25
Emily U Venere1011India2026-08-16
Clifford W Dilliard1012India2026-08-06
Arvin A Poquette1013United Kingdom2026-08-14
Adams U Poquette1014India2026-08-23
Isabel N Stockham1015Spain2026-08-20
Isabel N Nestle1016Russia2026-08-25
Leja V Stenseth1017Russia2026-08-07
Mayumi B Oldroyd1018India2026-08-27
Isabel E Maclead1019Canada2026-08-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro Z StensethIndiaXuxue Feng RENEWAL
Antonio K GlickRussiaElwin Sharvill PROPOSAL
Kadeem G GauchoRussiaOnyama Limba QUALIFIED
Maria K PerinIndiaAmy Elsner PROPOSAL
Claire D PaprockiItalyStephen Shaw RENEWAL
Jennifer Z WhobreyRussiaElwin Sharvill PROPOSAL
Leja H FlosiJapanAsiya Javayant QUALIFIED
Isabel A BowleyRussiaAsiya Javayant QUALIFIED
Leja O PoquetteItalyIoni Bowcher QUALIFIED
Maisha O RoysterGermanyAsiya Javayant NEW
Chavez Q ShinkoCanadaStephen Shaw RENEWAL
Smith Z StensethAustraliaElwin Sharvill UNQUALIFIED
Kaitlin H SergiRussiaXuxue Feng PROPOSAL
Jeanfrancois W BologniaUnited KingdomIvan Magalhaes QUALIFIED
Salvatore C ButtGermanyAsiya Javayant NEGOTIATION
Octavia S AmigonSpainXuxue Feng NEGOTIATION
Murillo O CaldareraGermanyElwin Sharvill PROPOSAL
Kaitlin Y FlosiGermanyXuxue Feng PROPOSAL
Aruna H DarakjyGermanyElwin Sharvill RENEWAL
Deepesh V SaylorsArgentinaAmy Elsner QUALIFIED
David X ShinkoAustraliaIoni Bowcher PROPOSAL
Smith R RutaArgentinaElwin Sharvill RENEWAL
Greenwood O ShinkoArgentinaIvan Magalhaes NEW
James U GlickItalyAmy Elsner NEGOTIATION
Wickens H BowleyAustraliaAmy Elsner NEW
Aika S DilliardUnited KingdomXuxue Feng NEW
Smith L CampainItalyIoni Bowcher PROPOSAL
Francesco E CaldareraJapanAnna Fali PROPOSAL
Misaki P KuskoJapanOnyama Limba NEW
Leja N PerinFranceXuxue Feng UNQUALIFIED
Adams R BologniaAustraliaStephen Shaw RENEWAL
Jennifer W FlosiItalyAnna Fali NEW
Leja Q SergiIndiaAnna Fali PROPOSAL
Isabel E AmigonArgentinaXuxue Feng PROPOSAL
Darci D RoysterArgentinaOnyama Limba QUALIFIED
Alejandro T InouyeItalyAmy Elsner PROPOSAL
Sinclair D StockhamAustraliaBernardo Dominic QUALIFIED
Misaki V RutaIndiaIoni Bowcher QUALIFIED
James L PerinCanadaIoni Bowcher QUALIFIED
Isabel T CampainBrazilElwin Sharvill 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>