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
Izzy R TollnerGermanyXuxue Feng UNQUALIFIED
Aika X FerenczSpainAmy Elsner RENEWAL
Salvatore P SaylorsItalyOnyama Limba RENEWAL
Jeanfrancois N SaylorsSpainXuxue Feng QUALIFIED
Claire L AmigonItalyElwin Sharvill PROPOSAL
Chavez B AlbaresUnited KingdomAnna Fali UNQUALIFIED
Leja B DarakjySpainOnyama Limba RENEWAL
Johnson Y BriddickArgentinaXuxue Feng UNQUALIFIED
Nicolas W NestleCanadaAnna Fali NEW
Wickens C KuskoRussiaAmy Elsner NEGOTIATION
Nicolas C SaylorsBrazilAmy Elsner QUALIFIED
Silvio V PaprockiAustraliaAsiya Javayant NEW
Greenwood C RutaArgentinaAmy Elsner NEGOTIATION
Alejandro Q VenereIndiaAsiya Javayant PROPOSAL
Jeanfrancois S DilliardBrazilAmy Elsner QUALIFIED
Leon V MacleadRussiaXuxue Feng RENEWAL
Jennifer L KuskoFranceAsiya Javayant NEW
Emily I DoeSpainStephen Shaw UNQUALIFIED
Kaitlin X BowleyAustraliaAsiya Javayant PROPOSAL
Faith I MorascaUnited KingdomIoni Bowcher PROPOSAL
Jones I AlbaresBrazilIvan Magalhaes PROPOSAL
Silvio U RutaGermanyAmy Elsner RENEWAL
Cody L RoysterArgentinaElwin Sharvill RENEWAL
Alejandro N StensethGermanyXuxue Feng RENEWAL
Munro Z RutaGermanyAnna Fali PROPOSAL
Adams N SlusarskiCanadaXuxue Feng UNQUALIFIED
Aditya X GarufiUnited KingdomElwin Sharvill NEW
Kaitlin H FerenczIndiaElwin Sharvill PROPOSAL
Kadeem W CaudyGermanyAsiya Javayant PROPOSAL
Ivar H InouyeAustraliaAsiya Javayant UNQUALIFIED
Arvin C PoquetteAustraliaIoni Bowcher NEW
Octavia O BowleyItalyOnyama Limba NEW
Aika O NestleItalyAmy Elsner UNQUALIFIED
Leon Z StensethFranceAsiya Javayant QUALIFIED
Faith Q CaldareraUnited KingdomElwin Sharvill NEW
Aika F FollerGermanyIvan Magalhaes NEGOTIATION
Aruna T DoeRussiaBernardo Dominic PROPOSAL
Ashley J CampainItalyIvan Magalhaes RENEWAL
Ivar N FerenczAustraliaXuxue Feng NEGOTIATION
Deepesh F NickaItalyAsiya Javayant RENEWAL
Ivar V GarufiFranceAnna Fali PROPOSAL
James B SlusarskiJapanAmy Elsner QUALIFIED
Francesco L GarufiBrazilAsiya Javayant NEW
Maisha G SaylorsUnited KingdomAsiya Javayant QUALIFIED
Emily R CaudyItalyStephen Shaw NEW
Leja G ChuiGermanyAnna Fali NEGOTIATION
Isabel D RulapaughItalyAsiya Javayant UNQUALIFIED
Kadeem I FollerSpainOnyama Limba RENEWAL
Morrow P OstroskySpainStephen Shaw RENEWAL
Kaitlin L VenereSpainAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Francesco E DoeCanadaOnyama Limba NEW
Ricardo S StockhamAustraliaOnyama Limba UNQUALIFIED
Ricardo Y WieserSpainIoni Bowcher NEGOTIATION
Aditya F PerinArgentinaAsiya Javayant NEW
Leon S RoysterAustraliaElwin Sharvill RENEWAL
Cody B CaldareraGermanyOnyama Limba RENEWAL
Mayumi V DilliardUnited KingdomElwin Sharvill QUALIFIED
Nicolas V KuskoRussiaElwin Sharvill NEW
Darci B StensethArgentinaIvan Magalhaes NEW
Ricardo M GillianItalyBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley M GauchoGermany2026-07-08Morlong Associates QUALIFIED38Asiya Javayant
1001David L AlbaresBrazil2026-07-05King, Christopher A Esq PROPOSAL4Bernardo Dominic
1002Arvin P MarrierJapan2026-07-11Feltz Printing Service QUALIFIED68Anna Fali
1003Leon V AlbaresJapan2026-07-10Feltz Printing Service QUALIFIED47Xuxue Feng
1004Clifford Z CaudyCanada2026-07-25Commercial Press NEGOTIATION40Anna Fali
1005Ivar H VocelkaIndia2026-07-05Dorl, James J Esq UNQUALIFIED33Amy Elsner
1006Tony D MacleadRussia2026-07-29Commercial Press RENEWAL34Ivan Magalhaes
1007Greenwood M DarakjyIndia2026-07-27Rousseaux, Michael Esq PROPOSAL43Stephen Shaw
1008Maria D PerinJapan2026-07-13King, Christopher A Esq PROPOSAL57Stephen Shaw
1009Ivar T IturbideArgentina2026-07-06Commercial Press NEGOTIATION8Xuxue Feng
1010Leon M OstroskyIndia2026-07-04Buckley Miller Wright QUALIFIED79Xuxue Feng
1011Jeanfrancois A FigeroaCanada2026-07-30Chanay, Jeffrey A Esq NEGOTIATION95Amy Elsner
1012Tony A FollerUnited Kingdom2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED54Stephen Shaw
1013Misaki P GillianSpain2026-07-03Rousseaux, Michael Esq RENEWAL91Elwin Sharvill
1014Murillo H WieserBrazil2026-07-08Benton, John B Jr QUALIFIED43Ivan Magalhaes
1015Stacey I GillianSpain2026-07-21Benton, John B Jr RENEWAL30Elwin Sharvill
1016Octavia Y StensethAustralia2026-07-08Truhlar And Truhlar Attys QUALIFIED91Asiya Javayant
1017Maria V ButtAustralia2026-07-10Truhlar And Truhlar Attys UNQUALIFIED22Xuxue Feng
1018Aditya W SaylorsItaly2026-07-05King, Christopher A Esq RENEWAL92Ioni Bowcher
1019Ricardo E BriddickJapan2026-07-31Benton, John B Jr NEW50Elwin Sharvill
1020Claire Z KuskoUnited Kingdom2026-07-06Dorl, James J Esq NEW4Xuxue Feng
1021Rodrigues W CampainCanada2026-07-15Truhlar And Truhlar Attys RENEWAL88Stephen Shaw
1022Kaitlin L MacleadGermany2026-07-12Dorl, James J Esq UNQUALIFIED59Elwin Sharvill
1023Nicolas Q OldroydSpain2026-07-16Printing Dimensions UNQUALIFIED54Ioni Bowcher
1024Antonio Q WhobreyItaly2026-07-10Benton, John B Jr NEW48Xuxue Feng
1025Arvin K OstroskyArgentina2026-07-20Chemel, James L Cpa RENEWAL53Ivan Magalhaes
1026Alejandro H BowleyGermany2026-07-31Truhlar And Truhlar Attys QUALIFIED4Ivan Magalhaes
1027Jefferson J RutaCanada2026-07-17Chapman, Ross E Esq UNQUALIFIED54Elwin Sharvill
1028Jennifer S MaletRussia2026-07-17Rangoni Of Florence QUALIFIED45Ivan Magalhaes
1029Wickens T SchemmerArgentina2026-07-08Feltz Printing Service PROPOSAL61Asiya Javayant
1030Deepesh A TollnerArgentina2026-07-22Printing Dimensions PROPOSAL51Anna Fali
1031Adams H TollnerBrazil2026-07-14Benton, John B Jr UNQUALIFIED32Ioni Bowcher
1032Juan K RoysterCanada2026-07-31Truhlar And Truhlar Attys RENEWAL53Ivan Magalhaes
1033Mayumi H VenereFrance2026-07-02Truhlar And Truhlar Attys RENEWAL57Ivan Magalhaes
1034Smith Z AlbaresItaly2026-07-05Printing Dimensions NEGOTIATION55Amy Elsner
1035Johnson U GlickBrazil2026-07-03Rangoni Of Florence NEGOTIATION71Anna Fali
1036Jones M FollerUnited Kingdom2026-07-07Rangoni Of Florence QUALIFIED21Onyama Limba
1037Aditya I MaletJapan2026-07-06Rousseaux, Michael Esq RENEWAL0Ivan Magalhaes
1038Ashley M AmigonFrance2026-07-17Dorl, James J Esq UNQUALIFIED66Ivan Magalhaes
1039Faith I GauchoBrazil2026-07-29Feiner Bros PROPOSAL24Asiya Javayant
1040Munro T KolmetzGermany2026-07-12Truhlar And Truhlar Attys PROPOSAL61Anna Fali
1041Tony K GlickIndia2026-07-06Commercial Press NEGOTIATION50Bernardo Dominic
1042Juan J SaylorsGermany2026-07-08Rousseaux, Michael Esq PROPOSAL23Onyama Limba
1043Silvio E FigeroaArgentina2026-07-26Rangoni Of Florence QUALIFIED33Ivan Magalhaes
1044Chavez Z AlbaresRussia2026-07-11Morlong Associates RENEWAL58Elwin Sharvill
1045Rodrigues K SaylorsIndia2026-07-17Printing Dimensions UNQUALIFIED75Asiya Javayant
1046Sinclair C MaletCanada2026-07-31Chemel, James L Cpa QUALIFIED48Asiya Javayant
1047Arvin O WaycottItaly2026-07-21Buckley Miller Wright PROPOSAL35Asiya Javayant
1048Izzy Y StensethCanada2026-07-29Morlong Associates UNQUALIFIED31Onyama Limba
1049Faith E VocelkaItaly2026-07-03Buckley Miller Wright UNQUALIFIED25Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jennifer T DarakjyAustraliaBernardo Dominic NEGOTIATION
Misaki G MorascaGermanyAmy Elsner PROPOSAL
Aditya V FerenczUnited KingdomAsiya Javayant NEW
Stacey H WhobreyArgentinaAsiya Javayant PROPOSAL
Rodrigues N SergiFranceIoni Bowcher NEGOTIATION
Morrow P SchemmerFranceStephen Shaw PROPOSAL
Adams Q MarrierItalyOnyama Limba QUALIFIED
Darci S GlickBrazilStephen Shaw UNQUALIFIED
Johnson P PoquetteSpainIvan Magalhaes NEGOTIATION
Smith N AlbaresBrazilIoni Bowcher PROPOSAL
Stacey B MacleadJapanElwin Sharvill UNQUALIFIED
Kaitlin K OldroydFranceOnyama Limba RENEWAL
Greenwood P PaprockiItalyElwin Sharvill NEGOTIATION
Isabel V AmigonIndiaXuxue Feng RENEWAL
Adams J OldroydIndiaOnyama Limba NEW
Kaitlin D GillianIndiaAmy Elsner NEGOTIATION
Aika Q IturbideArgentinaIoni Bowcher QUALIFIED
Costa M PaprockiAustraliaOnyama Limba QUALIFIED
Jeanfrancois W NestleBrazilBernardo Dominic PROPOSAL
Silvio V InouyeBrazilIvan Magalhaes QUALIFIED
Johnson X WieserSpainXuxue Feng UNQUALIFIED
Greenwood V FlosiFranceBernardo Dominic UNQUALIFIED
Costa L ButtAustraliaAmy Elsner QUALIFIED
Stacey R PoquetteRussiaAmy Elsner NEW
Darci Z KolmetzIndiaAnna Fali QUALIFIED
Antonio U FollerItalyAmy Elsner UNQUALIFIED
Costa D AmigonAustraliaStephen Shaw NEW
Aditya B MorascaIndiaBernardo Dominic NEW
Adams W DilliardUnited KingdomElwin Sharvill RENEWAL
Antonio Q IturbideCanadaIoni Bowcher PROPOSAL
Juan P SaylorsGermanyIoni Bowcher QUALIFIED
Darci H KolmetzItalyOnyama Limba NEGOTIATION
Jefferson Q BologniaJapanBernardo Dominic UNQUALIFIED
Johnson F ShinkoAustraliaXuxue Feng RENEWAL
Emily K CaldareraBrazilAsiya Javayant RENEWAL
Maisha Y KuskoJapanStephen Shaw NEW
Tony D MarrierAustraliaElwin Sharvill NEGOTIATION
Morrow S WieserJapanIvan Magalhaes NEGOTIATION
Chavez E InouyeUnited KingdomIoni Bowcher QUALIFIED
Kadeem L RutaItalyIvan Magalhaes NEGOTIATION
David S DilliardArgentinaStephen Shaw RENEWAL
Jeanfrancois J StensethSpainStephen Shaw PROPOSAL
Greenwood K RulapaughCanadaElwin Sharvill NEGOTIATION
Ricardo A WhobreyItalyIvan Magalhaes UNQUALIFIED
Juan M PoquetteJapanIoni Bowcher NEW
Smith B FollerItalyOnyama Limba NEW
Maria G FigeroaFranceAsiya Javayant RENEWAL
Antonio E PaprockiUnited KingdomAnna Fali RENEWAL
Smith J IturbideItalyElwin Sharvill NEGOTIATION
Leja C ButtBrazilStephen Shaw UNQUALIFIED
Frozen Columns
Name
Leja F Saylors
Greenwood Q Schemmer
Silvio V Bowley
Aika Y Gaucho
Aruna B Campain
Smith E Paprocki
Octavia Z Kusko
Faith K Kusko
Rodrigues S Flosi
Rodrigues C Tollner
Maria K Gaucho
Smith M Saylors
Salvatore B Stenseth
James U Malet
Octavia N Darakjy
Ivar V Waycott
Faith X Nicka
Smith J Caldarera
Jones J Shinko
Jennifer G Nicka
Maria Z Schemmer
Kaitlin N Flosi
Julie H Paprocki
Tony D Flosi
Kadeem I Dilliard
Stacey E Maclead
Darci P Glick
Aruna G Stockham
Kadeem L Schemmer
Kadeem D Caldarera
Ashley C Poquette
Maisha L Gaucho
Jones O Wieser
Jefferson M Ferencz
Aditya H Poquette
Nicolas V Marrier
Mayumi F Tollner
Johnson X Poquette
Adams F Albares
Silvio U Campain
Francesco U Chui
Costa I Gillian
Izzy Y Chui
Nicolas K Albares
Ashley Z Tollner
Aditya Y Stenseth
David P Flosi
Sinclair I Malet
Jeanfrancois P Saylors
Leja N Venere
IdCountryDate
1000Russia2026-07-11
1001Russia2026-07-19
1002India2026-07-13
1003Argentina2026-07-29
1004Italy2026-07-13
1005Spain2026-07-20
1006India2026-07-28
1007Russia2026-07-08
1008Brazil2026-07-26
1009Brazil2026-07-15
1010United Kingdom2026-07-15
1011Spain2026-07-24
1012Italy2026-07-30
1013France2026-07-02
1014Canada2026-07-09
1015Russia2026-07-02
1016Russia2026-07-05
1017France2026-07-07
1018Germany2026-07-15
1019Argentina2026-07-27
1020Japan2026-07-26
1021Spain2026-07-05
1022Brazil2026-07-29
1023France2026-07-17
1024Germany2026-07-16
1025Germany2026-07-24
1026Spain2026-07-10
1027Brazil2026-07-04
1028France2026-07-20
1029Germany2026-07-18
1030Brazil2026-07-09
1031Spain2026-07-07
1032Canada2026-07-28
1033Italy2026-07-30
1034France2026-07-10
1035Australia2026-07-12
1036France2026-07-23
1037Italy2026-07-06
1038Canada2026-07-11
1039Australia2026-07-08
1040Italy2026-07-12
1041Brazil2026-07-27
1042Spain2026-07-06
1043United Kingdom2026-07-04
1044India2026-07-27
1045Argentina2026-07-14
1046Russia2026-07-13
1047France2026-07-25
1048Japan2026-07-22
1049Canada2026-07-23

On-Demand Data

NameIdCountryDate
Aruna W Rulapaugh1000Italy2026-07-22
Antonio K Saylors1001Australia2026-07-23
Greenwood B Royster1002United Kingdom2026-07-31
Sinclair Y Figeroa1003Russia2026-07-10
Rodrigues M Maclead1004Argentina2026-07-12
Julie O Malet1005Russia2026-07-22
Jones H Ferencz1006Germany2026-07-14
Deepesh Q Wieser1007Spain2026-07-20
Emily F Bolognia1008Canada2026-07-08
Costa L Stenseth1009Canada2026-07-25
Emily T Ostrosky1010Russia2026-07-04
Morrow S Royster1011Russia2026-07-29
Juan F Perin1012Brazil2026-07-30
Tony T Nicka1013Japan2026-07-24
David D Inouye1014Russia2026-07-14
Nicolas E Morasca1015United Kingdom2026-07-07
Greenwood V Glick1016Australia2026-07-27
Johnson B Glick1017Spain2026-07-19
Juan O Dilliard1018Germany2026-07-11
James P Stenseth1019Russia2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro J PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Juan P CampainCanadaAsiya Javayant NEGOTIATION
Juan C GauchoFranceAsiya Javayant RENEWAL
Kaitlin M IturbideGermanyIoni Bowcher PROPOSAL
Isabel N StockhamItalyBernardo Dominic RENEWAL
Deepesh T StensethSpainElwin Sharvill RENEWAL
Maisha I BologniaRussiaIoni Bowcher NEGOTIATION
Maisha U PoquetteAustraliaStephen Shaw NEW
Isabel K OldroydFranceAsiya Javayant RENEWAL
Chavez Q NickaBrazilStephen Shaw NEW
Deepesh W BologniaIndiaAnna Fali QUALIFIED
Juan V PoquetteIndiaAmy Elsner PROPOSAL
Darci H ChuiRussiaStephen Shaw RENEWAL
Kadeem F CampainIndiaOnyama Limba NEW
Kadeem K PoquetteCanadaAsiya Javayant QUALIFIED
Ashley T GlickItalyBernardo Dominic NEW
Salvatore V PerinArgentinaAsiya Javayant NEW
Deepesh B SchemmerRussiaAsiya Javayant RENEWAL
Jennifer M GauchoFranceElwin Sharvill PROPOSAL
Claire Y GillianArgentinaIvan Magalhaes UNQUALIFIED
Aika X WieserBrazilIvan Magalhaes QUALIFIED
Claire U FlosiSpainIoni Bowcher NEGOTIATION
Adams Q SlusarskiCanadaAmy Elsner RENEWAL
Munro I TollnerBrazilIvan Magalhaes NEW
Octavia B BowleyCanadaXuxue Feng UNQUALIFIED
Juan B InouyeAustraliaAsiya Javayant PROPOSAL
Aditya W MaletJapanIvan Magalhaes UNQUALIFIED
Mayumi M GillianFranceIvan Magalhaes NEW
Darci L KuskoArgentinaOnyama Limba UNQUALIFIED
Nicolas V IturbideArgentinaXuxue Feng NEW
Antonio S CaldareraCanadaBernardo Dominic PROPOSAL
Maria B MaletUnited KingdomOnyama Limba UNQUALIFIED
Claire A MaletRussiaStephen Shaw QUALIFIED
Jennifer N WhobreyCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois C GauchoItalyIoni Bowcher UNQUALIFIED
Arvin E GlickArgentinaIoni Bowcher NEW
Cody E MorascaItalyOnyama Limba NEW
Stacey N KuskoItalyAmy Elsner PROPOSAL
Costa Z ButtAustraliaOnyama Limba NEW
Greenwood Y FollerCanadaAmy Elsner 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>