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
Ashley G SergiItalyIoni Bowcher QUALIFIED
Chavez W AmigonBrazilOnyama Limba NEGOTIATION
David M GauchoJapanAmy Elsner RENEWAL
James O PoquetteJapanOnyama Limba RENEWAL
Juan Z CaldareraJapanAsiya Javayant NEW
Smith B BologniaRussiaAmy Elsner PROPOSAL
Julie S VenereRussiaXuxue Feng NEW
Ashley C KolmetzUnited KingdomAmy Elsner PROPOSAL
Jefferson O RoysterJapanOnyama Limba NEGOTIATION
Leon S FerenczFranceXuxue Feng UNQUALIFIED
Ricardo C AlbaresIndiaAmy Elsner RENEWAL
Julie Y CaudySpainIvan Magalhaes NEGOTIATION
Claire N RoysterBrazilAnna Fali QUALIFIED
Aruna K SaylorsBrazilIoni Bowcher UNQUALIFIED
Misaki E MaletFranceIvan Magalhaes UNQUALIFIED
Juan Z RulapaughGermanyAnna Fali NEGOTIATION
Cody Z SlusarskiIndiaXuxue Feng PROPOSAL
Stacey M RulapaughUnited KingdomAsiya Javayant NEW
Mayumi U FerenczFranceXuxue Feng RENEWAL
David Y AlbaresSpainElwin Sharvill QUALIFIED
James W SergiAustraliaXuxue Feng NEW
Jones I GauchoAustraliaXuxue Feng PROPOSAL
Kadeem Z PoquetteGermanyXuxue Feng UNQUALIFIED
Murillo T VenereItalyOnyama Limba RENEWAL
Tony H RutaIndiaStephen Shaw NEGOTIATION
Rodrigues S ChuiRussiaStephen Shaw RENEWAL
David M WieserItalyAsiya Javayant PROPOSAL
Clifford T CampainGermanyXuxue Feng UNQUALIFIED
Silvio C OldroydFranceStephen Shaw UNQUALIFIED
Izzy T DilliardAustraliaElwin Sharvill NEW
Stacey P ChuiGermanyBernardo Dominic NEGOTIATION
Adams K StensethItalyAsiya Javayant NEGOTIATION
Maisha N WhobreyJapanElwin Sharvill UNQUALIFIED
Costa H BowleyRussiaXuxue Feng NEGOTIATION
Ashley K ChuiItalyXuxue Feng NEW
Aika C FerenczRussiaIoni Bowcher RENEWAL
Faith C InouyeCanadaIvan Magalhaes UNQUALIFIED
David R InouyeFranceIoni Bowcher NEW
David L DilliardAustraliaElwin Sharvill UNQUALIFIED
Jeanfrancois N OldroydRussiaAnna Fali UNQUALIFIED
James T BriddickAustraliaAsiya Javayant NEW
Johnson R WieserAustraliaStephen Shaw QUALIFIED
Sinclair W InouyeUnited KingdomElwin Sharvill QUALIFIED
Leon M RutaGermanyBernardo Dominic UNQUALIFIED
Nicolas X PaprockiRussiaAnna Fali UNQUALIFIED
Nicolas Y SergiGermanyAsiya Javayant RENEWAL
Adams V RimGermanyIvan Magalhaes UNQUALIFIED
Jones Y BowleyGermanyIvan Magalhaes QUALIFIED
Deepesh W MorascaIndiaXuxue Feng QUALIFIED
Aditya L CampainItalyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
David Q FlosiUnited KingdomElwin Sharvill PROPOSAL
Stacey K WaycottJapanIvan Magalhaes NEW
Octavia U GillianIndiaBernardo Dominic UNQUALIFIED
Julie P FerenczItalyAsiya Javayant UNQUALIFIED
Francesco U CampainUnited KingdomStephen Shaw PROPOSAL
Tony K FigeroaArgentinaOnyama Limba NEW
Maisha A BowleyFranceIvan Magalhaes NEGOTIATION
Salvatore R MacleadItalyIoni Bowcher RENEWAL
Ricardo E NestleCanadaIoni Bowcher UNQUALIFIED
Mujtaba Y SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa P FerenczArgentina2025-06-10Benton, John B Jr UNQUALIFIED66Ivan Magalhaes
1001Faith Q PaprockiItaly2025-06-06Feltz Printing Service QUALIFIED35Stephen Shaw
1002Adams K IturbideAustralia2025-06-08Truhlar And Truhlar Attys PROPOSAL26Ioni Bowcher
1003Ashley K OstroskyAustralia2025-06-05Rousseaux, Michael Esq QUALIFIED16Stephen Shaw
1004Johnson X RoysterIndia2025-06-15Chanay, Jeffrey A Esq NEGOTIATION41Stephen Shaw
1005Clifford Y VocelkaItaly2025-05-27Chemel, James L Cpa NEW87Stephen Shaw
1006Deepesh Q MarrierRussia2025-05-21Feiner Bros PROPOSAL30Ivan Magalhaes
1007Mujtaba D SlusarskiUnited Kingdom2025-05-23Feltz Printing Service NEGOTIATION53Ivan Magalhaes
1008Francesco W AlbaresUnited Kingdom2025-06-12Rousseaux, Michael Esq NEW28Ioni Bowcher
1009Sinclair U PerinFrance2025-05-29Truhlar And Truhlar Attys RENEWAL6Elwin Sharvill
1010James R RoysterGermany2025-06-15Feiner Bros PROPOSAL65Ioni Bowcher
1011Salvatore E KolmetzUnited Kingdom2025-05-26Feiner Bros NEGOTIATION33Bernardo Dominic
1012Morrow N ButtSpain2025-06-02Morlong Associates UNQUALIFIED66Anna Fali
1013Ashley U RimUnited Kingdom2025-06-13Feiner Bros NEW9Bernardo Dominic
1014Johnson F AlbaresItaly2025-05-29Benton, John B Jr QUALIFIED63Elwin Sharvill
1015Jefferson X MorascaSpain2025-06-01Buckley Miller Wright UNQUALIFIED17Ioni Bowcher
1016Maisha M GauchoSpain2025-05-31Commercial Press PROPOSAL63Asiya Javayant
1017Jones B MaletFrance2025-06-16Chapman, Ross E Esq RENEWAL81Bernardo Dominic
1018Jefferson O WhobreyUnited Kingdom2025-05-19Truhlar And Truhlar Attys QUALIFIED26Onyama Limba
1019Aruna X CampainGermany2025-06-05Commercial Press PROPOSAL20Onyama Limba
1020Murillo X KuskoAustralia2025-06-16Chapman, Ross E Esq NEW69Xuxue Feng
1021Cody K KolmetzUnited Kingdom2025-06-15Buckley Miller Wright PROPOSAL37Ioni Bowcher
1022Jefferson R SlusarskiUnited Kingdom2025-06-06Benton, John B Jr UNQUALIFIED89Amy Elsner
1023Misaki O SchemmerGermany2025-05-23Feltz Printing Service UNQUALIFIED31Ioni Bowcher
1024Francesco Z SlusarskiUnited Kingdom2025-05-22Chanay, Jeffrey A Esq NEW41Onyama Limba
1025Aika I PoquetteItaly2025-05-30Commercial Press QUALIFIED50Stephen Shaw
1026Morrow Z AmigonGermany2025-05-25Rangoni Of Florence NEW78Ivan Magalhaes
1027David I RimSpain2025-05-30Truhlar And Truhlar Attys RENEWAL87Anna Fali
1028Kadeem Y MarrierGermany2025-06-11Chanay, Jeffrey A Esq RENEWAL33Anna Fali
1029Silvio N IturbideSpain2025-06-02Benton, John B Jr QUALIFIED67Ivan Magalhaes
1030Costa W AmigonFrance2025-05-20Morlong Associates NEW92Ivan Magalhaes
1031Jefferson F MarrierUnited Kingdom2025-05-24Feltz Printing Service RENEWAL49Elwin Sharvill
1032Nicolas A MarrierArgentina2025-06-05Truhlar And Truhlar Attys PROPOSAL90Amy Elsner
1033Nicolas A FlosiUnited Kingdom2025-05-18Truhlar And Truhlar Attys RENEWAL12Elwin Sharvill
1034Deepesh K MorascaRussia2025-05-18Rangoni Of Florence NEGOTIATION90Anna Fali
1035Sinclair Q KuskoJapan2025-05-27Feiner Bros PROPOSAL72Bernardo Dominic
1036Adams S FigeroaAustralia2025-06-13Truhlar And Truhlar Attys UNQUALIFIED18Asiya Javayant
1037Izzy P KuskoUnited Kingdom2025-06-15Rousseaux, Michael Esq RENEWAL59Stephen Shaw
1038Rodrigues Z PaprockiAustralia2025-05-18Truhlar And Truhlar Attys UNQUALIFIED59Elwin Sharvill
1039Maisha A OstroskyIndia2025-05-21Truhlar And Truhlar Attys UNQUALIFIED50Ioni Bowcher
1040Silvio B KuskoCanada2025-06-04Dorl, James J Esq NEGOTIATION97Xuxue Feng
1041Faith X DoeUnited Kingdom2025-06-10Printing Dimensions NEW47Ivan Magalhaes
1042Adams I MorascaCanada2025-05-24Printing Dimensions NEW33Stephen Shaw
1043Antonio W SchemmerBrazil2025-05-31Printing Dimensions RENEWAL87Stephen Shaw
1044Aditya N GauchoItaly2025-06-11Commercial Press UNQUALIFIED32Bernardo Dominic
1045Ivar A GauchoBrazil2025-05-23Feltz Printing Service RENEWAL70Xuxue Feng
1046Maria K ShinkoSpain2025-06-11Chanay, Jeffrey A Esq QUALIFIED69Asiya Javayant
1047Wickens I RutaCanada2025-05-25Chapman, Ross E Esq QUALIFIED98Onyama Limba
1048Smith L BologniaItaly2025-06-02Dorl, James J Esq NEGOTIATION1Stephen Shaw
1049Izzy N DarakjyUnited Kingdom2025-05-19Morlong Associates RENEWAL72Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie J KuskoIndiaStephen Shaw PROPOSAL
Aditya N MorascaSpainIoni Bowcher QUALIFIED
Jones C FerenczFranceAnna Fali RENEWAL
Juan G SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Ivar Y BowleyRussiaAmy Elsner NEGOTIATION
Ivar Q ShinkoUnited KingdomStephen Shaw RENEWAL
Leja R RutaAustraliaIvan Magalhaes NEW
Kaitlin X DilliardIndiaAnna Fali PROPOSAL
Juan G StockhamItalyXuxue Feng NEW
Jefferson G VenereFranceBernardo Dominic PROPOSAL
Mujtaba R MacleadItalyOnyama Limba RENEWAL
Misaki P StensethUnited KingdomIoni Bowcher QUALIFIED
Ricardo R OstroskyIndiaAmy Elsner UNQUALIFIED
Julie D SaylorsSpainOnyama Limba NEW
Greenwood R NickaBrazilAnna Fali PROPOSAL
Johnson Q DilliardItalyBernardo Dominic NEGOTIATION
Munro A WieserSpainStephen Shaw UNQUALIFIED
Deepesh A StensethJapanOnyama Limba PROPOSAL
Alejandro M FollerIndiaXuxue Feng RENEWAL
Aditya Z KuskoUnited KingdomBernardo Dominic PROPOSAL
James C KolmetzGermanyElwin Sharvill QUALIFIED
Maria I FerenczJapanOnyama Limba QUALIFIED
Arvin N ShinkoJapanElwin Sharvill PROPOSAL
Rodrigues G BriddickRussiaAmy Elsner NEW
Alejandro O AmigonUnited KingdomElwin Sharvill NEW
Tony I VocelkaItalyAmy Elsner NEGOTIATION
Stacey B NickaIndiaIvan Magalhaes NEGOTIATION
David X ShinkoItalyXuxue Feng NEW
Mayumi Q FigeroaAustraliaAmy Elsner RENEWAL
Smith Q OstroskyUnited KingdomStephen Shaw NEW
Leja I NestleSpainElwin Sharvill UNQUALIFIED
Adams A OstroskyAustraliaAmy Elsner NEGOTIATION
Murillo P RimRussiaAnna Fali UNQUALIFIED
Juan C IturbideFranceElwin Sharvill NEW
Nicolas K TollnerItalyStephen Shaw QUALIFIED
Mujtaba V VenereJapanIvan Magalhaes NEGOTIATION
Leja J NestleIndiaElwin Sharvill NEW
Emily I RimBrazilBernardo Dominic UNQUALIFIED
Misaki P StensethBrazilAmy Elsner NEGOTIATION
Aruna Z PoquetteUnited KingdomAnna Fali NEW
Isabel I AlbaresRussiaStephen Shaw NEW
Octavia R GauchoArgentinaStephen Shaw RENEWAL
Chavez V BologniaJapanAsiya Javayant PROPOSAL
Maisha I VenereBrazilXuxue Feng NEW
Nicolas D StensethJapanStephen Shaw QUALIFIED
Leon T OstroskyCanadaXuxue Feng QUALIFIED
Smith V NestleJapanIvan Magalhaes NEGOTIATION
Salvatore U KuskoCanadaIoni Bowcher NEW
Sinclair U VenereAustraliaIoni Bowcher PROPOSAL
Costa P SaylorsBrazilAmy Elsner RENEWAL
Frozen Columns
Name
Leon U Stockham
Clifford F Malet
Ivar L Vocelka
James Y Bolognia
Ashley X Ferencz
Arvin O Paprocki
Faith E Dilliard
Morrow Q Stenseth
Antonio S Amigon
Izzy H Wieser
Mujtaba G Caudy
Costa S Rulapaugh
Ivar G Schemmer
Kaitlin S Tollner
Kadeem O Darakjy
Johnson M Sergi
Francesco C Ferencz
Clifford A Morasca
Maria E Rulapaugh
Alejandro U Shinko
Jeanfrancois C Ferencz
Mujtaba F Iturbide
Antonio X Glick
Ashley M Stenseth
James I Darakjy
Stacey G Garufi
Johnson Y Rulapaugh
Adams T Inouye
Ivar K Kolmetz
Rodrigues N Vocelka
Arvin W Tollner
Costa W Oldroyd
Aruna M Caldarera
Antonio X Vocelka
Munro H Garufi
Aditya O Malet
David I Whobrey
Adams U Poquette
Rodrigues K Nestle
Kadeem T Butt
Isabel I Marrier
Emily L Gillian
Octavia P Glick
Faith J Waycott
Salvatore I Whobrey
Chavez L Paprocki
Ashley Y Glick
Munro S Sergi
Leon U Rim
Aditya F Butt
IdCountryDate
1000Japan2025-06-05
1001India2025-06-07
1002Spain2025-05-23
1003Spain2025-06-11
1004Japan2025-06-10
1005India2025-06-05
1006Brazil2025-06-04
1007Russia2025-06-01
1008Germany2025-05-18
1009India2025-05-18
1010Australia2025-05-23
1011Spain2025-06-14
1012Japan2025-06-07
1013United Kingdom2025-06-04
1014Russia2025-05-29
1015Germany2025-06-12
1016Russia2025-05-25
1017Japan2025-05-20
1018Japan2025-05-24
1019Spain2025-06-13
1020Italy2025-05-29
1021Spain2025-06-13
1022Australia2025-05-24
1023United Kingdom2025-06-09
1024India2025-05-20
1025Canada2025-05-23
1026Brazil2025-06-10
1027France2025-06-14
1028Italy2025-06-11
1029Brazil2025-06-11
1030India2025-05-27
1031India2025-05-19
1032France2025-05-31
1033Spain2025-05-20
1034Germany2025-06-13
1035Brazil2025-06-07
1036Brazil2025-06-09
1037Japan2025-05-18
1038Japan2025-05-28
1039Russia2025-06-06
1040Australia2025-05-25
1041Russia2025-05-18
1042India2025-06-15
1043Brazil2025-06-12
1044Canada2025-05-31
1045Japan2025-05-31
1046United Kingdom2025-06-04
1047Italy2025-06-10
1048India2025-06-15
1049Spain2025-05-18

On-Demand Data

NameIdCountryDate
Wickens S Kusko1000Italy2025-06-11
Wickens V Whobrey1001United Kingdom2025-06-06
Maria R Briddick1002France2025-05-29
Maisha F Kolmetz1003India2025-05-24
Rodrigues U Rulapaugh1004India2025-06-01
Nicolas Q Chui1005India2025-06-10
David K Slusarski1006Germany2025-05-26
Emily H Caldarera1007Australia2025-05-23
Darci R Sergi1008France2025-06-05
Kadeem A Caudy1009Canada2025-05-27
James C Paprocki1010Germany2025-05-31
Nicolas Q Rim1011Spain2025-05-20
Jennifer Y Butt1012India2025-05-25
Stacey A Malet1013Argentina2025-06-14
James E Butt1014Italy2025-05-20
Ricardo Q Whobrey1015Spain2025-05-19
Aditya E Campain1016Italy2025-06-13
Isabel E Shinko1017Canada2025-06-14
Tony S Shinko1018Germany2025-05-29
Alejandro W Malet1019Russia2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel H GlickItalyIoni Bowcher NEW
Maisha L StensethAustraliaBernardo Dominic PROPOSAL
Ivar I CampainBrazilIvan Magalhaes QUALIFIED
Leja O VenereItalyAnna Fali RENEWAL
Silvio E NickaGermanyXuxue Feng RENEWAL
Leon X PoquetteFranceBernardo Dominic UNQUALIFIED
Leon E NestleFranceElwin Sharvill PROPOSAL
Cody F WhobreyItalyOnyama Limba NEGOTIATION
Stacey R GlickRussiaXuxue Feng NEGOTIATION
Johnson O PoquetteRussiaIoni Bowcher PROPOSAL
Wickens L SergiJapanIvan Magalhaes UNQUALIFIED
Izzy N VocelkaSpainIvan Magalhaes RENEWAL
Mujtaba X ButtSpainOnyama Limba UNQUALIFIED
Jeanfrancois D GlickArgentinaStephen Shaw NEGOTIATION
Mayumi C DarakjyItalyAnna Fali NEW
Kaitlin T FerenczGermanyOnyama Limba UNQUALIFIED
Alejandro V OldroydRussiaOnyama Limba QUALIFIED
Ashley N ShinkoCanadaAmy Elsner UNQUALIFIED
Wickens H BowleyArgentinaBernardo Dominic NEW
Julie Q RimSpainIvan Magalhaes UNQUALIFIED
Isabel O AmigonGermanyElwin Sharvill QUALIFIED
Costa Y MaletBrazilAsiya Javayant PROPOSAL
Darci U MacleadGermanyAmy Elsner QUALIFIED
Kaitlin L PerinItalyIvan Magalhaes PROPOSAL
James J AlbaresBrazilAmy Elsner UNQUALIFIED
Mayumi T GauchoBrazilAsiya Javayant NEGOTIATION
Chavez B GauchoFranceStephen Shaw RENEWAL
Maisha M MarrierItalyStephen Shaw RENEWAL
Arvin W GlickCanadaAsiya Javayant QUALIFIED
Cody A InouyeJapanAnna Fali NEGOTIATION
James U RimGermanyAnna Fali NEW
James Q SchemmerUnited KingdomIoni Bowcher NEW
Francesco P NestleIndiaAnna Fali PROPOSAL
Aditya S CaudyJapanAsiya Javayant NEW
Murillo Q GillianBrazilStephen Shaw QUALIFIED
Julie N ChuiBrazilAnna Fali NEW
James U DoeFranceAsiya Javayant RENEWAL
Jennifer S GillianItalyIoni Bowcher UNQUALIFIED
Juan M GarufiFranceStephen Shaw RENEWAL
Jeanfrancois D SergiFranceIvan Magalhaes 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>