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
David H WieserGermanyAsiya Javayant UNQUALIFIED
Leon K GarufiIndiaAmy Elsner NEGOTIATION
Jones L PoquetteFranceIvan Magalhaes UNQUALIFIED
Aditya D SchemmerFranceAsiya Javayant RENEWAL
Octavia J GillianFranceBernardo Dominic PROPOSAL
Julie N GarufiBrazilXuxue Feng NEW
Claire V RulapaughUnited KingdomAmy Elsner QUALIFIED
Ashley L WaycottJapanAnna Fali NEW
Maisha D FollerRussiaAmy Elsner QUALIFIED
Ashley L KuskoSpainIvan Magalhaes NEGOTIATION
Kaitlin Z ShinkoUnited KingdomStephen Shaw NEW
Mayumi X ButtSpainOnyama Limba PROPOSAL
Julie Q DoeJapanBernardo Dominic NEW
Ashley V VocelkaRussiaStephen Shaw QUALIFIED
David L AmigonJapanAnna Fali RENEWAL
Octavia B MorascaGermanyIoni Bowcher NEGOTIATION
Claire K MacleadCanadaOnyama Limba NEW
Nicolas K CaudySpainStephen Shaw UNQUALIFIED
Juan L RulapaughIndiaXuxue Feng QUALIFIED
Tony B SchemmerSpainBernardo Dominic QUALIFIED
Jeanfrancois B RimArgentinaOnyama Limba PROPOSAL
Emily R FigeroaFranceIoni Bowcher NEGOTIATION
Cody O StockhamGermanyAmy Elsner QUALIFIED
Julie G FlosiItalyOnyama Limba NEGOTIATION
Smith E IturbideJapanIvan Magalhaes NEGOTIATION
Ashley A PoquetteGermanyElwin Sharvill NEW
Silvio O RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Julie E GlickArgentinaStephen Shaw NEGOTIATION
Faith X DilliardAustraliaOnyama Limba NEW
Aika E ChuiJapanXuxue Feng QUALIFIED
Ivar K RutaSpainOnyama Limba NEW
Ivar A KolmetzBrazilOnyama Limba RENEWAL
Alejandro F ShinkoGermanyElwin Sharvill NEW
Francesco K OldroydIndiaAnna Fali NEGOTIATION
Juan X ChuiUnited KingdomStephen Shaw NEW
Aditya V MaletFranceIoni Bowcher NEGOTIATION
Chavez C FollerBrazilXuxue Feng UNQUALIFIED
Alejandro P SchemmerGermanyAsiya Javayant RENEWAL
Mayumi L MaletIndiaAnna Fali NEGOTIATION
Mujtaba R RimRussiaStephen Shaw NEW
Salvatore O TollnerJapanAnna Fali NEW
Smith Y GlickGermanyAsiya Javayant NEGOTIATION
Rodrigues I TollnerUnited KingdomAnna Fali QUALIFIED
Kaitlin D BriddickJapanXuxue Feng PROPOSAL
Wickens C CampainSpainXuxue Feng UNQUALIFIED
Claire T RoysterSpainAnna Fali NEGOTIATION
Aruna D VocelkaItalyXuxue Feng UNQUALIFIED
Jones U CaldareraFranceElwin Sharvill QUALIFIED
Leja H KuskoAustraliaIvan Magalhaes UNQUALIFIED
Munro F TollnerJapanAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
David F BologniaGermanyIvan Magalhaes PROPOSAL
Tony O FollerItalyIvan Magalhaes NEW
Wickens Z FigeroaSpainStephen Shaw RENEWAL
Claire H RoysterIndiaIoni Bowcher NEW
Rodrigues A KolmetzUnited KingdomIoni Bowcher QUALIFIED
Alejandro X KolmetzSpainAnna Fali UNQUALIFIED
Morrow C MarrierArgentinaBernardo Dominic UNQUALIFIED
Salvatore O GillianIndiaStephen Shaw RENEWAL
Antonio Q ShinkoAustraliaAmy Elsner NEW
Morrow R PoquetteItalyAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel L MarrierUnited Kingdom2026-07-19Feiner Bros NEW98Asiya Javayant
1001Francesco P KolmetzCanada2026-07-16Rousseaux, Michael Esq RENEWAL8Xuxue Feng
1002Johnson X KolmetzSpain2026-07-14Chemel, James L Cpa PROPOSAL34Onyama Limba
1003Chavez K RoysterCanada2026-07-12Morlong Associates NEGOTIATION93Amy Elsner
1004Morrow Q SergiUnited Kingdom2026-07-02Feiner Bros NEGOTIATION91Elwin Sharvill
1005Cody L RoysterSpain2026-06-25King, Christopher A Esq PROPOSAL51Ioni Bowcher
1006Clifford Z GillianRussia2026-07-17King, Christopher A Esq NEW8Ioni Bowcher
1007Arvin B VocelkaAustralia2026-07-07Benton, John B Jr NEGOTIATION29Onyama Limba
1008Wickens E MacleadArgentina2026-07-18Benton, John B Jr UNQUALIFIED43Anna Fali
1009James J NickaArgentina2026-07-09Dorl, James J Esq NEGOTIATION3Asiya Javayant
1010Smith A OstroskyBrazil2026-07-06Printing Dimensions QUALIFIED42Elwin Sharvill
1011Julie X PoquetteIndia2026-06-24Feltz Printing Service UNQUALIFIED65Ioni Bowcher
1012Darci Q BologniaSpain2026-07-07Chemel, James L Cpa NEGOTIATION74Xuxue Feng
1013Alejandro L IturbideSpain2026-06-23Feiner Bros UNQUALIFIED24Anna Fali
1014Ivar J WaycottBrazil2026-07-06Truhlar And Truhlar Attys PROPOSAL48Anna Fali
1015Faith O PoquetteUnited Kingdom2026-07-18Rangoni Of Florence UNQUALIFIED40Asiya Javayant
1016Costa A BologniaGermany2026-07-11Benton, John B Jr NEW65Ivan Magalhaes
1017Costa H RimAustralia2026-07-14Buckley Miller Wright UNQUALIFIED7Ioni Bowcher
1018Tony F FerenczItaly2026-07-05Rangoni Of Florence QUALIFIED26Ioni Bowcher
1019Antonio U GillianUnited Kingdom2026-07-19Feiner Bros UNQUALIFIED9Onyama Limba
1020Maria J VenereIndia2026-07-17Rangoni Of Florence NEW51Asiya Javayant
1021Stacey J OldroydJapan2026-07-17King, Christopher A Esq NEGOTIATION34Elwin Sharvill
1022Leon L OstroskyUnited Kingdom2026-06-26Dorl, James J Esq RENEWAL46Stephen Shaw
1023Mujtaba X AlbaresFrance2026-07-04Truhlar And Truhlar Attys QUALIFIED6Elwin Sharvill
1024Silvio F PerinRussia2026-06-26Rangoni Of Florence QUALIFIED72Amy Elsner
1025Cody Y BologniaFrance2026-06-30Chanay, Jeffrey A Esq QUALIFIED76Bernardo Dominic
1026Mujtaba B RimUnited Kingdom2026-07-18Rousseaux, Michael Esq NEW82Asiya Javayant
1027Jeanfrancois P ButtIndia2026-07-02Buckley Miller Wright QUALIFIED60Xuxue Feng
1028Aruna T KolmetzItaly2026-07-06Commercial Press QUALIFIED61Ivan Magalhaes
1029Murillo W MarrierAustralia2026-07-01Chapman, Ross E Esq PROPOSAL3Ioni Bowcher
1030Aika S PerinUnited Kingdom2026-06-22Morlong Associates UNQUALIFIED62Anna Fali
1031Munro B SaylorsBrazil2026-06-24Benton, John B Jr PROPOSAL0Xuxue Feng
1032Ivar J PoquetteFrance2026-07-19Rousseaux, Michael Esq NEW34Amy Elsner
1033David E StensethIndia2026-07-11Feltz Printing Service PROPOSAL12Anna Fali
1034Cody E MacleadBrazil2026-06-28Rangoni Of Florence UNQUALIFIED70Stephen Shaw
1035Aika L PerinJapan2026-07-16Buckley Miller Wright PROPOSAL84Bernardo Dominic
1036Julie U FerenczIndia2026-07-04Morlong Associates RENEWAL82Anna Fali
1037Wickens U TollnerGermany2026-06-24Rousseaux, Michael Esq QUALIFIED91Asiya Javayant
1038Jefferson X PaprockiFrance2026-07-07Chemel, James L Cpa UNQUALIFIED28Bernardo Dominic
1039James O MaletBrazil2026-07-08Rousseaux, Michael Esq NEGOTIATION17Onyama Limba
1040Costa C MaletAustralia2026-07-03Feltz Printing Service NEGOTIATION3Amy Elsner
1041Jefferson E RimBrazil2026-06-24King, Christopher A Esq UNQUALIFIED42Anna Fali
1042Mujtaba B MaletArgentina2026-07-08Morlong Associates RENEWAL99Ioni Bowcher
1043Nicolas V FollerSpain2026-07-03Chemel, James L Cpa NEW19Ioni Bowcher
1044Deepesh C GauchoSpain2026-07-03Commercial Press RENEWAL85Ioni Bowcher
1045Morrow X WhobreyItaly2026-06-26Chapman, Ross E Esq NEGOTIATION93Stephen Shaw
1046Clifford K VenereBrazil2026-07-03Truhlar And Truhlar Attys QUALIFIED55Amy Elsner
1047Salvatore O GillianFrance2026-07-11Truhlar And Truhlar Attys UNQUALIFIED89Elwin Sharvill
1048Aruna B CampainBrazil2026-07-10Truhlar And Truhlar Attys RENEWAL6Stephen Shaw
1049James P KuskoJapan2026-07-20Truhlar And Truhlar Attys RENEWAL4Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow D FlosiUnited KingdomAnna Fali RENEWAL
Ashley Y PerinSpainElwin Sharvill PROPOSAL
Leja D WieserBrazilXuxue Feng QUALIFIED
Murillo X KolmetzRussiaElwin Sharvill UNQUALIFIED
Alejandro P WaycottItalyXuxue Feng UNQUALIFIED
Munro F AmigonAustraliaBernardo Dominic NEW
Aruna F PerinSpainElwin Sharvill PROPOSAL
Juan J CampainAustraliaAmy Elsner RENEWAL
Darci Y FigeroaJapanAnna Fali NEW
Cody R OstroskyJapanOnyama Limba NEGOTIATION
Aruna F OstroskyIndiaXuxue Feng PROPOSAL
Misaki D PoquetteUnited KingdomOnyama Limba NEGOTIATION
Maisha P RulapaughBrazilXuxue Feng NEW
Mujtaba X CampainGermanyXuxue Feng NEGOTIATION
Aditya A AmigonUnited KingdomXuxue Feng NEW
Leja B KolmetzRussiaAsiya Javayant NEW
Isabel R FlosiFranceXuxue Feng UNQUALIFIED
Chavez G WieserSpainOnyama Limba NEGOTIATION
Costa C GillianUnited KingdomAmy Elsner PROPOSAL
Octavia G RutaGermanyStephen Shaw QUALIFIED
Darci Y AlbaresSpainStephen Shaw NEGOTIATION
Kaitlin X WieserCanadaAsiya Javayant NEGOTIATION
Jeanfrancois G ShinkoItalyBernardo Dominic NEW
Claire X BologniaAustraliaElwin Sharvill NEGOTIATION
Izzy P MaletSpainAmy Elsner QUALIFIED
Rodrigues D MarrierCanadaElwin Sharvill NEW
Maisha E CampainFranceStephen Shaw PROPOSAL
David O CampainCanadaXuxue Feng NEW
Emily N BowleyItalyAnna Fali NEGOTIATION
Wickens L MacleadIndiaAsiya Javayant QUALIFIED
Francesco M InouyeUnited KingdomAmy Elsner RENEWAL
Ricardo V KolmetzItalyIvan Magalhaes NEGOTIATION
Faith V FigeroaRussiaXuxue Feng NEGOTIATION
Stacey Z NickaFranceOnyama Limba RENEWAL
Antonio M SergiIndiaElwin Sharvill QUALIFIED
Kadeem K GauchoBrazilAmy Elsner PROPOSAL
Sinclair X NestleFranceXuxue Feng NEGOTIATION
Misaki J DarakjyBrazilAmy Elsner NEW
Chavez I SchemmerRussiaIoni Bowcher PROPOSAL
James O WaycottSpainIoni Bowcher QUALIFIED
Smith L MorascaSpainStephen Shaw UNQUALIFIED
Antonio E AlbaresSpainAnna Fali RENEWAL
Mayumi B DarakjyUnited KingdomIvan Magalhaes NEW
Ashley U AmigonBrazilElwin Sharvill QUALIFIED
Julie D PaprockiJapanIvan Magalhaes RENEWAL
Leja A AlbaresAustraliaIoni Bowcher NEGOTIATION
Costa R FerenczJapanXuxue Feng UNQUALIFIED
Ricardo X ChuiFranceElwin Sharvill RENEWAL
Maria C SaylorsFranceIoni Bowcher NEGOTIATION
Mujtaba E RulapaughArgentinaOnyama Limba RENEWAL
Frozen Columns
Name
Chavez U Malet
Silvio F Royster
Kadeem N Bowley
Darci E Slusarski
Izzy U Waycott
Isabel O Oldroyd
Antonio V Rulapaugh
Murillo G Gaucho
James Y Waycott
Salvatore Q Glick
Morrow S Glick
Greenwood C Paprocki
Izzy A Royster
Silvio M Malet
Tony U Iturbide
Jennifer N Marrier
Octavia V Nestle
Julie S Caldarera
Ashley F Paprocki
Morrow V Iturbide
Costa N Wieser
Claire Y Flosi
Julie U Campain
Mujtaba P Whobrey
Jones B Oldroyd
Alejandro K Malet
Leon H Kusko
Cody C Figeroa
Juan M Stenseth
Adams H Amigon
Nicolas X Stockham
Faith I Schemmer
Jennifer G Schemmer
Johnson I Slusarski
Mayumi A Nestle
Morrow Z Inouye
Mujtaba J Doe
James Q Rim
Wickens P Vocelka
Alejandro C Perin
Jeanfrancois Z Schemmer
Clifford Z Albares
Kaitlin K Rim
Clifford F Paprocki
Salvatore E Inouye
Rodrigues L Rim
Johnson W Stockham
Chavez M Albares
Antonio H Paprocki
Francesco U Chui
IdCountryDate
1000Japan2026-07-20
1001United Kingdom2026-06-26
1002Australia2026-07-07
1003Brazil2026-06-27
1004Spain2026-07-12
1005Germany2026-07-09
1006Australia2026-07-12
1007Italy2026-07-11
1008Canada2026-07-14
1009Russia2026-07-03
1010Argentina2026-07-04
1011Russia2026-06-29
1012Argentina2026-07-07
1013Russia2026-07-15
1014France2026-07-16
1015United Kingdom2026-07-20
1016Argentina2026-06-27
1017Spain2026-07-01
1018Germany2026-07-21
1019Russia2026-07-08
1020United Kingdom2026-07-21
1021Australia2026-07-19
1022United Kingdom2026-07-15
1023Italy2026-07-01
1024Spain2026-06-28
1025Argentina2026-07-17
1026United Kingdom2026-07-02
1027India2026-07-10
1028Germany2026-07-20
1029India2026-07-03
1030France2026-06-24
1031Brazil2026-06-22
1032France2026-06-22
1033Canada2026-07-07
1034India2026-07-01
1035Spain2026-07-19
1036Russia2026-07-21
1037Canada2026-07-15
1038Argentina2026-06-24
1039India2026-07-03
1040Brazil2026-06-23
1041Japan2026-07-13
1042France2026-06-22
1043Russia2026-06-23
1044India2026-07-10
1045Canada2026-07-08
1046Australia2026-07-12
1047Argentina2026-06-26
1048United Kingdom2026-07-09
1049Spain2026-07-10

On-Demand Data

NameIdCountryDate
Chavez B Dilliard1000Australia2026-07-04
Claire X Caldarera1001India2026-07-01
Smith A Slusarski1002France2026-06-24
James P Waycott1003Japan2026-07-10
Greenwood L Tollner1004India2026-07-12
Maisha K Waycott1005Canada2026-07-18
Smith J Stenseth1006Argentina2026-06-23
Jones R Royster1007United Kingdom2026-07-02
Aika F Schemmer1008France2026-07-01
Aruna D Wieser1009Argentina2026-07-08
Faith I Doe1010Spain2026-07-15
Maisha U Nicka1011Argentina2026-06-28
James L Gillian1012Italy2026-06-22
Leja X Shinko1013France2026-07-10
Silvio Z Stockham1014France2026-07-13
Murillo R Bowley1015United Kingdom2026-07-12
Tony L Iturbide1016Brazil2026-06-26
Adams G Rim1017France2026-07-13
Tony U Marrier1018Germany2026-07-21
Julie D Vocelka1019India2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow H SergiCanadaAmy Elsner UNQUALIFIED
Rodrigues J PerinGermanyAsiya Javayant QUALIFIED
Cody L OstroskyJapanAsiya Javayant NEW
James Q IturbideCanadaIvan Magalhaes QUALIFIED
Nicolas I StockhamBrazilXuxue Feng UNQUALIFIED
Stacey L FlosiBrazilIvan Magalhaes NEGOTIATION
Emily H CaudyCanadaAmy Elsner NEW
Kaitlin A MaletGermanyStephen Shaw NEW
Tony K TollnerUnited KingdomElwin Sharvill PROPOSAL
Kaitlin E FlosiJapanStephen Shaw PROPOSAL
Cody U DilliardRussiaElwin Sharvill UNQUALIFIED
Leon Z WaycottSpainAmy Elsner NEGOTIATION
Deepesh A WieserJapanAnna Fali NEGOTIATION
Misaki N FlosiFranceAnna Fali RENEWAL
Ricardo K RoysterRussiaBernardo Dominic RENEWAL
Francesco W VocelkaBrazilAsiya Javayant PROPOSAL
Antonio M ButtItalyBernardo Dominic UNQUALIFIED
Aruna U AmigonArgentinaAmy Elsner QUALIFIED
Aditya Q WaycottArgentinaAmy Elsner RENEWAL
Jones Y NestleGermanyXuxue Feng QUALIFIED
Darci V MacleadRussiaIoni Bowcher NEGOTIATION
Cody D FerenczUnited KingdomOnyama Limba UNQUALIFIED
Kadeem V PaprockiSpainXuxue Feng UNQUALIFIED
Morrow O VenereItalyStephen Shaw NEW
Darci W WieserGermanyStephen Shaw NEW
Morrow D ChuiRussiaBernardo Dominic UNQUALIFIED
Clifford V SaylorsIndiaXuxue Feng PROPOSAL
Jennifer V VenereCanadaBernardo Dominic RENEWAL
Arvin B MaletRussiaElwin Sharvill NEW
Misaki J OstroskyRussiaIvan Magalhaes NEGOTIATION
Claire K KuskoItalyStephen Shaw UNQUALIFIED
Clifford R ButtRussiaStephen Shaw UNQUALIFIED
Ashley W MaletSpainAnna Fali RENEWAL
Wickens H IturbideRussiaXuxue Feng QUALIFIED
Chavez D CaldareraItalyAnna Fali NEW
Stacey F TollnerGermanyIoni Bowcher RENEWAL
Munro O FlosiCanadaStephen Shaw UNQUALIFIED
Aika I AmigonGermanyOnyama Limba QUALIFIED
Costa K RutaGermanyBernardo Dominic RENEWAL
Maisha Q VenereJapanStephen Shaw PROPOSAL

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